網路介面名稱帶有 at 符號 - 它是什麼?

網路介面名稱帶有 at 符號 - 它是什麼?

我正在嘗試尋找資訊來了解為什麼網路介面名稱會有一個 at 符號,但到目前為止我得到的結果中有太多噪音(我缺乏正確的術語來搜尋)

我在 Ubuntu 主機上有一個 LXC 容器。在容器內我運行並得到:

# 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

注意eth0@if10

@部分被稱為/指的是什麼?

在主機上沒有這樣的if10,我的另一個容器有一個eth0@if8- 我必須假設這是LXC/容器以某種方式處理網路轉換的一部分,但我以前沒有註意到這個存在,並且想知道它是否是橋接的補充,這可能存在於其他場景中?

答案1

eth0@if10方法:

  • 您的網路介面的命名仍然很簡單eth0,網路工具和應用程式只能引用這個名稱,沒有@附錄。 (作為旁注,這很可能是 veth 對等點,但名稱不需要反映這一點。)
  • @if10表示:eth0連接到索引為 10(十進位)的某個(其他)網路介面。由於也顯示了一個link-netnsid 0網路接口,因此該另一個網路介面位於另一個網路命名空間(一種虛擬 IP 堆疊)中,可能是根(也稱為主機)網路命名空間。

如果您ip link show在主機中使用,而不是在容器中使用,那麼其中列出的網路介面之一應該有一個@9附錄;介面名稱可能以veth....此介面是eth0@10您詢問的介面的對等介面。 Veth 介面成對相互連接,就像虛擬電纜一樣。

因此,@...是該工具創建的附錄ip,它不是 Linux 網路介面名稱的一部分。 @後面的數字指的是另一個網絡接口,其索引號顯示在@後面。索引號列印在網路介面名稱之前,例如在 中9: eth0@if10。對等網路介面可以位於不同的網路命名空間。

不幸的是,找到正確的網路命名空間link-netnsid ..相當複雜,請參閱如何找出 veth 對等點的網路命名空間 ifindex

2023 年更新:西門子現已發布邊緣鯊作為 OSS,它提供了一個漂亮的圖形 Web UI,呈現容器、主機等中網路介面的關係。

答案2

檢查 /etc/udev/rules.d 或 /lib/udev/rules.d 下是否有類似 70-persistent-net.rules 的檔案。應該有一行包含網路介面名稱和 MAC 位址。更改它並重新啟動應該重命名 NIC。

相關內容