Mit der folgenden Befehlsausgabe:
~$
~$ ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eno1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN mode DEFAULT group default qlen 1000
link/ether f0:ff:ff:f9:f1:06 brd ff:ff:ff:ff:ff:ff
3: wlp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000
link/ether ff:ff:ff:ff:ff:44 brd ff:ff:ff:ff:ff:ff
~$
~$
~$
~$
~$
~$ ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
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
2: eno1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
link/ether f0:ff:ff:f9:f1:06 brd ff:ff:ff:ff:ff:ff
3: wlp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether ff:ff:ff:ff:ff:44 brd ff:ff:ff:ff:ff:ff
inet 192.168.68.103/24 brd 192.168.68.255 scope global dynamic noprefixroute wlp2s0
valid_lft 5181sec preferred_lft 5181sec
inet6 fe80::6fff:7fff:7ddd:3ddf/64 scope link noprefixroute
valid_lft forever preferred_lft forever
~$
~$
~$
~$
~$
~$ route -nNvee
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface MSS Window irtt
0.0.0.0 192.168.68.1 0.0.0.0 UG 600 0 0 wlp2s0 0 0 0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 wlp2s0 0 0 0
192.168.68.0 0.0.0.0 255.255.255.0 U 600 0 0 wlp2s0 0 0 0
~$
~$
~$
Kann ich sagen, dass zwei IPv4-Stacks (Linux-Netzwerksubsystem) ausgeführt werden? Einer für
eno1
die Schnittstelle und der andere fürwlp2s0
die Schnittstelle ...Nach meinem Verständnis gibt es für jeden Netzwerkstapel (IPv4 oder IP6 oder was auch immer) eine Routing-Tabelle und eine ETH-Schnittstelle. Gibt
lo
es auch einen IPv4-Stapel (Linux-Netzwerksubsystem)? Ja, warum wird die Schnittstelle nicht in der Routing-Tabelleroute -nVee
angezeigt ?lo
Antwort1
Es gibt eine Instanz der Netzwerkdatenstrukturen des Betriebssystems pro Netzwerk-Namespace. Sie könnten dies als einen „Stapel“ zählen. Sie könnten auch verschiedene Netzwerkprotokollstapel (wie IPv4 und IPv6 oder sogar ältere, die noch von Linux unterstützt werden) separat zählen, dann hätten Sie jeweils einen pro Netzwerk-Namespace.
Alle Netzwerkschnittstellen in einem Netzwerk-Namespace gehören zum selben Netzwerkstapel (oder zu mehreren, wenn Sie verschiedene Protokolle zählen). Es gibt verschiedene Tabellen, die entweder auf eine bestimmte Schnittstelle verweisen (Routing, Firewall) oder pro Schnittstelle gelten (Adresszuweisung), aber sie gehören immer noch zur selben Kernel-Datenstrukturinstanz.
Die Loopback-Schnittstelle ist in dieser Hinsicht nicht anders, obwohl sie im Netzwerkstapel eine besondere Rolle spielt (sie wird immer dann verwendet, wenn eine Übertragung von einer lokalen Adresse zu einer anderen lokalen Adresse erforderlich ist, und sie bietet auch eine Möglichkeit, dedizierte lokale IP-Adressen zuzuweisen). Es gibt also eine Loopback-Schnittstelle pro Netzwerk-Namespace (und damit Netzwerkstapel).
Antwort2
Erstens zeigt der von Ihnen ausgeführte Befehl Informationen über dieVerknüpfung- die physische Schnittstelle (und deshalb sehen Sie hier MAC-Adressen) – der Befehl show ip addr
könnte besser sein.
In Ihrem Beispiel werden wahrscheinlich nur zwei IP-Stacks ausgeführt – 1 IPv4-Stapel und 1 IPv6-Stapel.
Eine praktische Möglichkeit, dies festzustellen, besteht darin, sich danach zu richten, was iptables
man ip6tables
sehen kann.
Es ist wahrscheinlich eine gute Abstraktion zu sagen, dass alles, was auf einem einzelnen IPv4-Stack läuft, über erreichbar wäre iptables
, und alles, was auf einem einzelnen IPv6-Stack läuft, über erreichbar wäre ip6tables
. Dies ist wahrscheinlich mit den von Ihnen bereitgestellten Informationen wahr. Alle diese Schnittstellen – einschließlich lo
– werden vom selben Stack bedient.
Die einzige Möglichkeit, mehrere unabhängige Stacks für dasselbe Protokoll zum Laufen zu bringen, ist wahrscheinlich die Verwendung vonNetzwerk-Namespacesoder Virtualisierung.
Antwort3
Die eno1
Schnittstelle hat keine IPv4-Adresse, die Schnittstelle selbst jedoch wlp2s0
schon.
Die lo
Schnittstelle verfügt auch über eine IPv4-Adresse.
Insgesamt sind zwei IPv4-Stacks im Einsatz.