Estou tentando buscar informações sobre por que o nome de uma 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 container eu corro e obtenho:
# 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 queeth0@if10
Como esta @
parte é chamada/se refere?
No host não existe tal if10
, outro contêiner que tenho tem um eth0@if8
- devo assumir que isso faz parte do tratamento de traduções de rede do LXC/contêineres de alguma forma, mas eu não tinha notado isso anteriormente, e me pergunto se é um complemento para a ponte, que pode existir em outros cenários?
Responder1
eth0@if10
significa:
- sua interface de rede ainda tem um nome simples
eth0
e as ferramentas e aplicativos de rede só podem se referir a esse nome, sem o apêndice @. (Como nota lateral, este é provavelmente um veth peer, mas o nome não precisa refletir isso.) @if10
significa:eth0
está conectado a alguma (outra) interface de rede com índice 10 (decimal). Como também élink-netnsid 0
mostrado, essa outra interface de rede está em outro namespace de rede (espécie de pilha IP virtual), presumivelmente o namespace de rede raiz (também conhecido como host).
Se você usar ip link show
em seu host, e não em seu contêiner, uma das interfaces de rede listadas deverá ter um @9
apêndice; o nome da interface provavelmente começará com veth...
. Esta interface é o ponto da eth0@10
interface que você perguntou. As interfaces Veth vêm em pares conectados entre si, como um cabo virtual.
Portanto, @...
é um apêndice criado pela ip
ferramenta e não faz parte dos nomes das interfaces de rede do Linux. O número após @ refere-se a outra interface de rede com o número de índice mostrado após @. Os números de índice são impressos antes dos nomes das interfaces de rede, como em 9: eth0@if10
. A interface de rede peer pode estar em um namespace de rede diferente.
Infelizmente, encontrar o namespace de rede correto para o link-netnsid ..
é bastante complicado, consultecomo encontrar o namespace de rede de um veth peer ifindex.
ATUALIZAÇÃO 2023:A Siemens acaba de lançarEdgesharkcomo OSS que fornece uma interface de usuário gráfica agradável que renderiza os relacionamentos de interfaces de rede em contêineres, o host, etc.
Responder2
Verifique se há 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 reinicializar deve renomear a NIC.