Der Name der Netzwerkschnittstelle hat ein Vorzeichen - was ist das?


10

Ich versuche, Informationen zu finden, warum ein Netzwerkschnittstellenname ein at-Zeichen haben würde, aber die Ergebnisse, die ich bisher erhalte, enthalten zu viel Rauschen (mir fehlt die richtige Terminologie für die Suche).

Ich habe einen LXC-Container auf einem Ubuntu-Host. In dem Container renne ich und bekomme:

# 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

Beachten Sie, dass eth0@if10

Wie heißt dieser @Teil?

Auf dem Host gibt es keinen solchen if10, ein anderer Container, den ich habe, hat einen eth0@if8- ich muss annehmen, dass dies irgendwie Teil der Handhabung von Netzwerkübersetzungen durch LXC / Container ist, aber ich hatte dies vorher nicht bemerkt und frage mich, ob es eine Ergänzung zur Überbrückung ist. das könnte in anderen szenarien existieren?

Antworten:


6

eth0@if10 meint:

  • Ihre Netzwerkschnittstelle wird immer noch einfach benannt eth0und Netzwerk-Tools und Apps können nur auf diesen Namen verweisen, ohne den @ -Anhang. (Als Nebenbemerkung ist dies höchstwahrscheinlich ein veth Peer, aber der Name muss dies nicht widerspiegeln.)
  • @if10bedeutet: eth0ist mit einer (anderen) Netzwerkschnittstelle mit Index 10 (dezimal) verbunden. Da auch eine link-netnsid 0angezeigt wird, befindet sich diese andere Netzwerkschnittstelle in einem anderen Netzwerk-Namespace (Art virtueller IP-Stack), vermutlich im Root-Netzwerk-Namespace (auch bekannt als Host).

Wenn Sie ip link showin Ihrem Host und nicht in Ihrem Container verwenden, sollte eine der dort aufgeführten Netzwerkschnittstellen einen @9Anhang enthalten. Der Name der Schnittstelle beginnt wahrscheinlich mit veth.... Diese Schnittstelle ist der Peer zu der eth0@10Schnittstelle, nach der Sie gefragt haben. Veth-Schnittstellen werden paarweise wie ein virtuelles Kabel miteinander verbunden.

Dies @...ist also ein vom ipTool erstellter Anhang, der nicht Teil der Netzwerkschnittstellennamen von Linux ist. Die Nummer nach dem @ bezieht sich auf eine andere Netzwerkschnittstelle mit der Indexnummer, die nach dem @ angezeigt wird. Die Indexnummern werden vor den Namen der Netzwerkschnittstelle gedruckt, z. B. in 9: eth0@if10. Die Peer-Netzwerkschnittstelle kann sich in einem anderen Netzwerk-Namespace befinden.

Leider link-netnsid ..ist es ziemlich aufwendig , den richtigen Netzwerk-Namespace für das zu finden. Sehen Sie, wie Sie den Netzwerk-Namespace eines veth peer ifindex finden .


Vielen Dank - nach dieser Erklärung sieht es so aus, als würde ich "Netzwerk-Namespaces" nennen. Ta.
Taifwa

1
Die @ -Notation wird auch in anderen Situationen verwendet, die sich nicht auf Netzwerk-Namespaces beziehen, z. B. MACVLAN-Schnittstellen, die an eine andere physische Netzwerkschnittstelle angeschlossen sind. Es ist die , link-netnsid 0dass die Signale , dass eine andere Netzwerk - Namespace beteiligt ist. Das @ sagt nur, dass es sich um eine andere Schnittstelle handelt, aber nicht, wo sich diese andere Schnittstelle befindet.
TheDiveO

0

Suchen Sie unter /etc/udev/rules.d oder unter /lib/udev/rules.d nach einer Datei wie 70-persistent-net.rules. Es sollte eine Zeile mit dem Namen der Netzwerkschnittstelle und der MAC-Adresse vorhanden sein. Wenn Sie dies ändern und neu starten, sollte die Netzwerkkarte umbenannt werden.


Ich versuche nicht, die
Netzwerkkarte

Verstanden. Aber gibt es eine Persistent-Net-Regeldatei mit dem "at" -Zeichen im NIC-Namen?
Bootbeast

Das @ -Zeichen ist in diesem Fall nicht Teil des Schnittstellennamens, sondern ein Artefakt des ipTools. Vergleichen Sie einfach mit ifconfig... oder machen Sie einige schnelle Python-Skript-Dumping-Schnittstellennamen mit pyroute2. Alle zeigen dort ungeschmückte echte Netzwerkschnittstellennamen.
TheDiveO
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.