使用以下命令輸出:
~$
~$ 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
~$
~$
~$
我可以說,有兩個 ipv4 堆疊(Linux 網路子系統)在運作嗎?一個用於
eno1
接口,另一個用於wlp2s0
接口...我的理解是,每個網路堆疊(ipv4 或 ip6 或其他)都有路由表和 eth 介面。
lo
還有ipv4堆疊(Linux網路子系統)嗎?是的,為什麼路由表中route -nVee
沒有顯示介面?lo
答案1
每個網路命名空間都有一個作業系統網路資料結構實例。你可以算這是一個「堆疊」。您也可以分別計算不同的網路協定堆疊(例如 IPv4 和 IPv6,甚至是 Linux 仍支援的舊協定棧),然後每個網路命名空間各有一個。
網路命名空間中的所有網路介面都屬於同一個網路堆疊(或多個,如果計算不同的協定)。有各種表格要麼引用特定介面(路由、防火牆),要麼針對每個介面(位址分配),但它們仍然屬於同一核心資料結構實例。
環回介面在這方面沒有什麼不同,儘管它在網路堆疊中扮演著特殊的角色(每當涉及從本地位址到本地位址的傳輸時就會使用它,並且它還提供了一種分配專用本地IP地址的方法) 。因此,每個網路命名空間(以及網路堆疊)都有一個環回介面。
答案2
首先,您正在運行的命令顯示有關關聯- 實體介面(這就是您在此處看到 MAC 位址的原因) - 該命令show ip addr
可能會更好。
您的範例中可能只會執行 2 個 IP 堆疊 - 1 個 IPv4 堆疊和 1 個 IPv6 堆疊。
一種方便的判斷方法是根據所看到的內容進行iptables
判斷ip6tables
。
可以說,在單個 IPv4 堆疊上運行的所有內容都可以通過 訪問iptables
,並且在單個 IPv6 堆疊上運行的所有內容都可以通過 訪問ip6tables
,這可能是一個很好的抽象。根據您提供的信息,這可能是正確的。所有這些介面(包括介面lo
)都由同一堆堆疊提供服務。
可能讓多個獨立堆疊為同一協定運行的唯一方法是使用網路命名空間或虛擬化。
答案3
該eno1
介面沒有 IPv4 位址,但該介面wlp2s0
有。
該lo
介面還有一個 IPv4 位址。
總而言之,有兩個 ipv4 堆疊正在運行。