ネットワーク インターフェイス名にアット マークが付いていますが、これは何ですか?

ネットワーク インターフェイス名にアット マークが付いていますが、これは何ですか?

ネットワーク インターフェイス名にアット マークが付いている理由に関する情報を探していますが、これまでのところ、得られた結果にはノイズが多すぎます (検索するための正しい用語が不足しています)

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 (10 進数) の (他の) ネットワーク インターフェイスに接続されています。 もlink-netnsid 0表示されているため、この他のネットワーク インターフェイスは別のネットワーク名前空間 (一種の仮想 IP スタック) にあり、おそらくルート (別名ホスト) ネットワーク名前空間にあります。

ip link showコンテナではなくホストで を使用する場合、そこにリストされているネットワーク インターフェイスの 1 つに@9付録があり、インターフェイス名はおそらく で始まりますveth...。このインターフェイスは、質問したインターフェイスのピアですeth0@10。Veth インターフェイスは、仮想ケーブルのように互いに接続されたペアになっています。

したがって、 はツール@...によって作成された付録でありip、Linux のネットワーク インターフェイス名の一部ではありません。 @ の後の番号は、 @ の後に表示されるインデックス番号を持つ別のネットワーク インターフェイスを参照します。 のように、インデックス番号はネットワーク インターフェイス名の前に印刷されます。9: eth0@if10ピア ネットワーク インターフェイスは、別のネットワーク名前空間に存在する場合があります。

残念ながら、正しいネットワーク名前空間を見つけるのはlink-netnsid ..かなり複雑です。veth ピア ifindex のネットワーク名前空間を見つける方法

2023年更新:シーメンスは現在、エッジシャークコンテナ、ホストなどのネットワーク インターフェイスの関係をレンダリングする優れたグラフィカル Web UI を提供する OSS です。

答え2

/etc/udev/rules.d または /lib/udev/rules.d の下にある 70-persistent-net.rules のようなファイルを確認します。ネットワーク インターフェイス名と MAC アドレスを含む行があるはずです。それを変更して再起動すると、NIC の名前が変更されます。

関連情報