Wie viele IP-Stacks werden verwendet?

Wie viele IP-Stacks werden verwendet?

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
~$ 
~$ 
~$ 

  1. Kann ich sagen, dass zwei IPv4-Stacks (Linux-Netzwerksubsystem) ausgeführt werden? Einer für eno1die Schnittstelle und der andere für wlp2s0die Schnittstelle ...

  2. 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 loes auch einen IPv4-Stapel (Linux-Netzwerksubsystem)? Ja, warum wird die Schnittstelle nicht in der Routing-Tabelle route -nVeeangezeigt ?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 addrkö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 iptablesman ip6tablessehen 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 eno1Schnittstelle hat keine IPv4-Adresse, die Schnittstelle selbst jedoch wlp2s0schon.

Die loSchnittstelle verfügt auch über eine IPv4-Adresse.

Insgesamt sind zwei IPv4-Stacks im Einsatz.

verwandte Informationen