Ich versuche, Informationen darüber zu finden, warum der Name einer Netzwerkschnittstelle ein At-Zeichen enthält, aber die Ergebnisse, die ich bisher erhalte, sind zu verwirrend (mir fehlt die richtige Terminologie für die Suche).
Ich habe einen LXC-Container auf einem Ubuntu-Host. Innerhalb des Containers führe ich Folgendes aus und erhalte:
# 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, dasseth0@if10
Wie heißt dieser @
Teil bzw. worauf bezieht er sich?
Auf dem Host gibt es keins if10
, ein anderer Container von mir hat eins eth0@if8
– ich muss davon ausgehen, dass dies irgendwie Teil der Handhabung von Netzwerkübersetzungen durch LXC/Container ist, aber mir war zuvor nicht aufgefallen, dass es das gibt, und frage mich, ob es eine Ergänzung zum Bridging ist, das in anderen Szenarien existieren könnte?
Antwort1
eth0@if10
bedeutet:
- Ihre Netzwerkschnittstelle hat immer noch einen einfachen Namen
eth0
und Netzwerktools und -anwendungen können nur auf diesen Namen ohne den @-Anhang verweisen. (Nebenbemerkung: Dies ist höchstwahrscheinlich ein Veth-Peer, aber der Name muss dies nicht widerspiegeln.) @if10
bedeutet:eth0
ist mit einer (anderen) Netzwerkschnittstelle mit Index 10 (dezimal) verbunden. Da auch einlink-netnsid 0
angezeigt wird, befindet sich diese andere Netzwerkschnittstelle in einem anderen Netzwerk-Namespace (eine Art virtueller IP-Stack), vermutlich dem Root-Netzwerk-Namespace (auch Host-Namespace genannt).
Wenn Sie ip link show
in Ihrem Host und nicht in Ihrem Container verwenden, sollte eine der dort aufgeführten Netzwerkschnittstellen einen @9
Anhang haben; der Schnittstellenname beginnt wahrscheinlich mit veth...
. Diese Schnittstelle ist der Peer der eth0@10
Schnittstelle, nach der Sie gefragt haben. Veth-Schnittstellen werden paarweise miteinander verbunden geliefert, wie ein virtuelles Kabel.
Es handelt sich also @...
um einen vom ip
Tool erstellten Anhang, der nicht zu den Netzwerkschnittstellennamen von Linux gehört. Die Nummer nach dem @ bezieht sich auf eine andere Netzwerkschnittstelle mit der Indexnummer, die nach dem @ angezeigt wird. Die Indexnummern werden vor den Netzwerkschnittstellennamen gedruckt, z. B. in 9: eth0@if10
. Die Peer-Netzwerkschnittstelle kann sich in einem anderen Netzwerk-Namespace befinden.
Leider ist es ziemlich kompliziert, den richtigen Netzwerk-Namespace für zu finden link-netnsid ..
, sieheSo finden Sie den Netzwerk-Namespace eines Veth-Peers mit ifindex.
UPDATE 2023:Siemens hat nunKantenhaials OSS, das eine schöne grafische Web-Benutzeroberfläche bereitstellt, die die Beziehungen von Netzwerkschnittstellen in Containern, dem Host usw. darstellt.
Antwort2
Suchen Sie unter /etc/udev/rules.d oder unter /lib/udev/rules.d nach einer Datei wie 70-persistent-net.rules. Dort sollte eine Zeile mit dem Namen der Netzwerkschnittstelle und der MAC-Adresse vorhanden sein. Wenn Sie diese ändern und neu starten, sollte die Netzwerkkarte umbenannt werden.