Le nom de l'interface réseau a un signe - qu'est-ce que c'est?

10

J'essaie de rechercher des informations pour savoir pourquoi un nom d'interface réseau aurait un signe at, mais il y a trop de bruit dans les résultats que j'obtiens jusqu'à présent (je n'ai pas la bonne terminologie pour rechercher)

J'ai un conteneur LXC sur un hôte Ubuntu. À l'intérieur du conteneur, je cours et récupère:

# 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

Notez que eth0@if10

Comment @s'appelle / se réfère cette partie?

Sur l'hôte, il n'y en a pas if10, un autre conteneur que j'ai a eth0@if8- je dois supposer que cela fait partie de la gestion des traductions réseau par LXC / containers, mais je ne l'avais pas remarqué auparavant, et je me demande si c'est un complément au pontage, qui pourrait exister dans d'autres scénarios?

taifwa
la source

Réponses:

6

eth0@if10 veux dire:

  • votre interface réseau est nommée simplement eth0et les outils et applications réseau ne peuvent faire référence qu'à ce nom, sans l'appendice @. (En tant que sidenote, il s'agit très probablement d'un pair Veth, mais le nom n'a pas besoin de refléter cela.)
  • @if10signifie: eth0est connecté à une (autre) interface réseau avec un index 10 (décimal). Puisqu'il y a aussi un link-netnsid 0montré, cette autre interface réseau se trouve dans un autre espace de noms réseau (sorte de pile IP virtuelle), vraisemblablement l'espace de noms réseau racine (aka hôte).

Si tu utilises ip link show dans votre hôte, et non dans votre conteneur, alors l'une des interfaces réseau répertoriées doit avoir une @9annexe; le nom de l'interface commencera probablement par veth.... Cette interface est l'homologue de l' eth0@10interface sur laquelle vous avez posé des questions. Les interfaces Veth viennent par paires connectées les unes aux autres, comme un câble virtuel.

Alors le @... c'est une annexe créée par l' ipoutil, et elle ne fait pas partie des noms d'interface réseau de Linux. Le numéro après le @ fait référence à une autre interface réseau avec le numéro d'index qui apparaît après le @. Les numéros d'index sont imprimés avant les noms d'interface réseau, comme dans 9: eth0@if10. L'interface réseau homologue peut se trouver dans un espace de noms de réseau différent.

Malheureusement, la recherche de l'espace de noms réseau correct pour le link-netnsid ..est plutôt impliquée, voyez comment trouver l'espace de noms réseau d'un homologue veth ifindex .

TheDiveO
la source
Merci - à la suite de cette explication, il semble que ce que je regarde est ce qui est correctement appelé "espaces de noms réseau". Ta.
taifwa
1
La notation @ est également utilisée dans d'autres situations non liées aux espaces de noms réseau, telles que les interfaces MACVLAN attachées à une autre interface réseau physique. C'est le link-netnsid 0qui signale qu'un autre espace de noms de réseau est impliqué. Le @ indique simplement qu'une autre interface est impliquée, mais pas où se trouve cette autre interface.
TheDiveO
0

Recherchez un fichier comme 70-persistent-net.rules sous /etc/udev/rules.d ou sous /lib/udev/rules.d. Il doit y avoir une ligne avec le nom de l'interface réseau et l'adresse MAC. La modification et le redémarrage devraient renommer la carte réseau.

bootbeast
la source
Je n'essaie pas de renommer la carte réseau - j'essaie de comprendre ce qui est présent ....
taifwa
Compris. Mais existe-t-il un fichier de règles de réseau persistant avec le signe "at" dans le nom de la carte réseau?
Bootbeast
Dans ce cas, le signe @ ne fait pas partie du nom de l'interface, mais plutôt un artefact de l' ipoutil. Comparez simplement avec ifconfig... ou faites quelques rapides noms d'interface de vidage de script Python en utilisant pyroute2. Tous y afficheront des noms d'interface réseau réels non ornés.
TheDiveO