Abilitare e configurare scheda rete CentOS

Se con:

# ifconfig

su una CentOS 6.2 appena installata, appare solo l’interfaccia di loopback, occorre configurare la scheda di rete.

Ho lanciato:

# ifup eth0
# vi /etc/sysconfig/network-scripts/ifcfg-eth0

il contenuto del file era:

DEVICE="eth0"
HWADDR="aa:bb:cc:dd:ee:ff"
NM_CONTROLLED="yes"
ONBOOT="no"

ho modificato il file aggiungendo:

BOOTPROTO="dhcp"

e ho modificato la riga ONBOOT=”no” in:

ONBOOT="yes"

Se al posto del dhcp si usa un indirizzo statico, usare:

BOOTPROTO="none"
NETMASK="255.255.255.0"
IPADDR="192.168.0.18"
GATEWAY="192.168.0.1"

Infine ho riavviato l’interfaccia con:

# ifdown eth0
# ifup eth0

SIOCSIFNETMASK No such device

Mentre avviavo una Debian, ho visto dei messaggi che mi hanno insospettito:

SIOCSIFNETMASK: No such device
SIOCSGIFADDR: No such device
eth0: ERROR while getting interface flags: no such device
eth1: ERROR while getting interface flags: no such device

Facendo:

$ ifconfig

veniva visualizzata solo l’interfaccia loopback, mentre con:

$ ifconfig -a

non c’erano più la eth0 e la eth1, ma la eth2 e eth3 (Figura 1):

Andando a vedere il log: /var/log/messages ho notato:

kernel: [..] udev: renamed network interface eth0 to eth2
kernel: [..] udev: renamed network interface eth1 to eth3

Successivamente ho controllato il file:

/etc/udev/rules.d/70-persistent-net.rules

e ho visto le seguenti righe:

# PCI device 0x8086:0x1076 (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="*:*:*:*:*:*c",
ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
# PCI device 0x8086:0x1076 (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="*:*:*:*:*:*d",
ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
# PCI device 0x8086:0x1076 (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="*:*:*:*:*:*6",
ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth2"
# PCI device 0x8086:0x1076 (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="*:*:*:*:*:*7",
ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth3"

A questo punto sono andato a controllare (sempre da ifconfig -a, vedi Figura 1) i MAC delle schede, ho commentato le prime due righe (con MAC diverso) e ho modificato le ultime due mettendo “eth0” e “eth1” al posto di “eth2” e “eth3” (Figura 2):

# PCI device 0x8086:0x1076 (e1000)
#SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="*:*:*:*:*:*c",
ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
# PCI device 0x8086:0x1076 (e1000)
#SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="*:*:*:*:*:*d",
ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
# PCI device 0x8086:0x1076 (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="*:*:*:*:*:*6",
ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
# PCI device 0x8086:0x1076 (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="*:*:*:*:*:*7",
ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

Dopo aver fatto ciò, ho riavviato ed è tornato tutto come prima.