Consistente nome da interface de rede do ubuntu usando o slot pci

1

É possível definir nomes de interface consistentes por meio do endereço mac, modificando /etc/udev/rules.d/70-persistent-net.rules .

  • Você pode estabelecer uma nomenclatura de interface consistente pelo número do slot PCI? (Eu tentei mas falhei)
  • Existe algum outro método para definir nomes de interface consistentes em vez de endereço MAC?

Estou usando o Ubuntu 14.04.

A modificação do slot 70-persistent-net.rules per pci não funcionou no caso de eu ter uma NIC de 4 portas conectada ao slot pci mais alto:

$ lspci -D | grep -i ether

0000:04:00.0 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)
0000:04:00.1 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)
0000:05:00.0 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)
0000:05:00.1 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)
0000:0b:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection
0000:0c:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection

Este é o arquivo que usei: /etc/udev/rules.d/70-persistent-net.rules

# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.


# PCI device 0x8086:0x10d3 (e1000e)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="aa:bb:cc:dd:ee:ff", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

# PCI device 0x8086:0x10d3 (e1000e)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:aa:bb:cc:dd:ee", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

SUBSYSTEM=="net", ACTION=="add", KERNELS="0000:04:00.0", NAME="eth2"
SUBSYSTEM=="net", ACTION=="add", KERNELS="0000:04:00.1", NAME="eth3"
SUBSYSTEM=="net", ACTION=="add", KERNELS="0000:05:00.0", NAME="eth4"
SUBSYSTEM=="net", ACTION=="add", KERNELS="0000:05:00.1", NAME="eth5"

Agora, se eu conectar uma NIC de duas portas no mesmo slot:

0000:02:00.0 Ethernet controller: Intel Corporation 82580 Gigabit Fiber Network Connection (rev 01)
0000:02:00.1 Ethernet controller: Intel Corporation 82580 Gigabit Fiber Network Connection (rev 01)
0000:06:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection
0000:07:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection

Você pode ver os números dos slots PCI alterados.

    
por user1527227 09.07.2014 / 03:27

1 resposta

1

Você deve ter um arquivo em /etc/udev/rules.d/70-persistent-net.rules que contenha uma linha semelhante à seguinte: -

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="04:01:07:ab:6e:01", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

Faça um backup deste arquivo (fora do rules.d ) e edite o original para: -

SUBSYSTEM=="net", ACTION=="add", KERNELS=="0000:00:03.0", NAME="eth0"

em que o valor KERNELS pode ser obtido da primeira coluna de lspci -D

0000:00:03.0 Ethernet controller: Red Hat, Inc Virtio network device

O endereço PCI acima é dividido em Domain:Bus:Slot.Function , então o dispositivo acima é ajustado ao slot 3.

Observação: não tenho acesso ao console da VM que usei enquanto escrevia isso (estou conectado por SSH), por isso não posso verificá-lo, pois ser bloqueado se der errado. A linha inferior é - tenha cuidado ao fazer isso, pois você pode se bloquear de um sistema remoto; você ficará bem em um sistema local.

    
por 09.07.2014 / 11:07