Estoy tratando de buscar información sobre por qué el nombre de una interfaz de red tendría un signo de arroba, pero hay demasiado ruido en los resultados que estoy obteniendo hasta ahora (me falta la terminología correcta para buscar)
Tengo un contenedor LXC en un host Ubuntu. Dentro del contenedor corro y obtengo:
# 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
Tenga en cuenta queeth0@if10
¿A qué @
se llama/se refiere esta porción?
En el host no existe tal if10
, otro contenedor que tengo tiene un eth0@if8
- Debo asumir que esto es parte del manejo de las traducciones de red por parte de LXC/contenedores de alguna manera, pero no había notado que esto existiera anteriormente, y me pregunto si es un complemento al puente. que podría existir en otros escenarios?
Respuesta1
eth0@if10
medio:
- su interfaz de red tiene un nombre aún más simple
eth0
y las herramientas y aplicaciones de red solo pueden hacer referencia a este nombre, sin el apéndice @. (Como nota al margen, lo más probable es que se trate de un quinto par, pero no es necesario que el nombre refleje esto). @if10
significa:eth0
está conectado a alguna (otra) interfaz de red con índice 10 (decimal). Dado que también selink-netnsid 0
muestra una, esta otra interfaz de red está en otro espacio de nombres de red (una especie de pila de IP virtual), presumiblemente el espacio de nombres de red raíz (también conocido como host).
Si lo usa ip link show
en su host y no en su contenedor, entonces una de las interfaces de red enumeradas allí debería tener un @9
apéndice; el nombre de la interfaz probablemente comenzará con veth...
. Esta interfaz es igual a la eth0@10
interfaz sobre la que preguntaste. Las interfaces Veth vienen en pares conectados entre sí, como un cable virtual.
Entonces, @...
es un apéndice creado por la ip
herramienta y no forma parte de los nombres de las interfaces de red de Linux. El número después de @ se refiere a otra interfaz de red con el número de índice que se muestra después de @. Los números de índice se imprimen antes de los nombres de las interfaces de red, como en 9: eth0@if10
. La interfaz de red del mismo nivel puede estar en un espacio de nombres de red diferente.
Desafortunadamente, encontrar el espacio de nombres de red correcto para el link-netnsid ..
es bastante complicado, consultecómo encontrar el espacio de nombres de red de un par veth ifindex.
ACTUALIZACIÓN 2023:Siemens ya ha lanzadotiburón bordecomo OSS que proporciona una interfaz de usuario web gráfica agradable que representa las relaciones de las interfaces de red en contenedores, el host, etc.
Respuesta2
Busque un archivo como 70-persistent-net.rules en /etc/udev/rules.d o en /lib/udev/rules.d. Debería haber una línea con el nombre de la interfaz de red y la dirección MAC. Modificar eso y reiniciar debería cambiar el nombre de la NIC.