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