O nome da interface de rede tem um sinal de arroba - o que é?


10

Estou tentando procurar informações sobre por que um nome de interface de rede teria um sinal de arroba, mas há muito ruído nos resultados que estou obtendo até agora (não tenho a terminologia correta para pesquisar)

Eu tenho um contêiner LXC em um host Ubuntu. Dentro do contêiner, corro e recebo:

# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
9: eth0@if10: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 00:16:3e:37:a0:7a brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 10.0.3.195/24 brd 10.0.3.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::216:3eff:fe37:a07a/64 scope link 
       valid_lft forever preferred_lft forever

Observe que eth0@if10

Como essa @parte é chamada / se refere?

No host, não existe, existe if10outro contêiner que eu tenho eth0@if8- devo assumir que isso faz parte da manipulação de traduções de rede do LXC / containers de alguma forma, mas eu não havia percebido isso anteriormente e me pergunto se é um complemento para a ponte, que pode existir em outros cenários?

Respostas:


6

eth0@if10 significa:

  • sua interface de rede ainda é nomeada de maneira simples eth0e as ferramentas e aplicativos de rede só podem se referir a esse nome, sem o apêndice @. (Como nota de rodapé, esse provavelmente é um veth peer, mas o nome não precisa refletir isso.)
  • @if10significa: eth0está conectado a alguma (outra) interface de rede com o índice 10 (decimal). Como também é link-netnsid 0mostrado, essa outra interface de rede está em outro espaço para nome da rede (tipo de pilha IP virtual), presumivelmente o espaço para nome da rede raiz (também conhecido como host).

Se você usa ip link showno seu host e não no seu contêiner, uma das interfaces de rede listadas lá deve ter um @9apêndice; o nome da interface provavelmente começará com veth.... Essa interface é semelhante à eth0@10interface que você perguntou. As interfaces Veth vêm em pares conectados entre si, como um cabo virtual.

Portanto, o @...é um apêndice criado pela ipferramenta e não faz parte dos nomes de interface de rede do Linux. O número após o @ refere-se a outra interface de rede com o número de índice que é mostrado após o @. Os números de índice são impressos antes dos nomes das interfaces de rede, como em 9: eth0@if10. A interface de rede de mesmo nível pode estar em um namespace de rede diferente.

Infelizmente, encontrar o espaço de nome de rede correto para o link-netnsid ..está bastante envolvido, veja como encontrar o espaço de nome de rede de um veth peer ifindex .


Obrigado - seguindo essa explicação, parece que estou vendo o que é chamado corretamente de "namespaces de rede". Ta.
27418 taifwa

1
A notação @ também é usada em outras situações não relacionadas aos namespaces de rede, como interfaces MACVLAN conectadas a outra interface de rede física. É o link-netnsid 0que sinaliza que outro espaço para nome da rede está envolvido. O @ apenas diz que existe outra interface envolvida, mas não onde está essa outra interface.
TheDiveO

0

Procure um arquivo como 70-persistent-net.rules em /etc/udev/rules.d ou em /lib/udev/rules.d. Deve haver uma linha com o nome da interface de rede e o endereço MAC. Alterar isso e reiniciar deve renomear a NIC.


Eu não estou tentando mudar o nome do NIC - Estou tentando entender o que está presente ....
taifwa

Entendido. Mas existe um arquivo de regras da rede persistente com o sinal "at" no nome da NIC?
bootbeast

O sinal @, nesse caso, não faz parte do nome da interface, mas um artefato da ipferramenta. Basta comparar com ifconfig... ou fazer alguns nomes rápidos da interface de despejo de scripts Python usando pyroute2. Todos mostrarão nomes de interface de rede reais não adornados.
TheDiveO
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.