Ethernet
interfaces are identified by the system using the naming convention of ethX,
where X represents a numeric value. The first Ethernet interface is
typically identified as eth0, the second as eth1, and all others
should move up in numerical order.
Identify Ethernet Interfaces
To quickly
identify all available Ethernet interfaces, you can use the ifconfig command
as shown below.
ifconfig -a | grep eth
eth0 Link encap:Ethernet HWaddr 00:15:c5:4a:16:5a
Another
application that can help identify all network interfaces available to your
system is the lshw command. In the example below, lshwshows a
single Ethernet interface with the logical name of eth0 along with
bus information, driver details and all supported capabilities.
sudo lshw -class network
*-network
description: Ethernet interface
product: BCM4401-B0 100Base-TX
vendor: Broadcom Corporation
physical id: 0
bus info: pci@0000:03:00.0
logical name: eth0
version: 02
serial: 00:15:c5:4a:16:5a
size: 10MB/s
capacity: 100MB/s
width: 32 bits
clock: 33MHz
capabilities: (snipped for brevity)
configuration: (snipped for brevity)
resources: irq:17 memory:ef9fe000-ef9fffff
Ethernet Interface Logical Names
Interface
logical names are configured in the file /etc/udev/rules.d/70-persistent-net.rules. If
you would like control which interface receives a particular logical name, find
the line matching the interfaces physical MAC address and modify the value of NAME=ethX to
the desired logical name. Reboot the system to commit your changes.
Ethernet Interface Settings
ethtool is
a program that displays and changes Ethernet card settings such as
auto-negotiation, port speed, duplex mode, and Wake-on-LAN. It is not installed
by default, but is available for installation in the repositories.
sudo apt-get install ethtool
The following
is an example of how to view supported features and configured settings of an
Ethernet interface.
sudo ethtool eth0
Settings for eth0:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Advertised auto-negotiation: Yes
Speed: 1000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: g
Wake-on: d
Current message level: 0x000000ff (255)
Link detected: yes
Changes made with the ethtool command
are temporary and will be lost after a reboot. If you would like to retain settings,
simply add the desired ethtool command to a pre-up statement
in the interface configuration file /etc/network/interfaces.
The following is an example of how the
interface identified as eth0 could be permanently configured with a
port speed of 1000Mb/s running in full duplex mode.
auto eth0
iface eth0 inet static
pre-up /sbin/ethtool -s eth0 speed 1000 duplex full
Although the example above shows the
interface configured to use the static method, it actually works with
other methods as well, such as DHCP. The example is meant to demonstrate only
proper placement of the pre-up statement in relation to the rest of
the interface configuration.