tai*_*fwa 12 lxc network-interface
我试图寻找有关为什么网络接口名称会有 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
Run Code Online (Sandbox Code Playgroud)
注意 eth0@if10
这@
部分被称为/指的是什么?
在主机上没有这样的if10
,我有另一个容器eth0@if8
- 我必须假设这是 LXC/容器以某种方式处理网络翻译的一部分,但我以前没有注意到这个存在,并且想知道它是否是桥接的补充,这可能存在于其他场景中?
eth0@if10
方法:
eth0
,网络工具和应用程序只能引用此名称,而没有@ 附录。(作为旁注,这很可能是一个 veth peer,但名称不需要反映这一点。)@if10
表示:eth0
连接到某个(其他)网络接口,索引为 10(十进制)。由于还有一个link-netnsid 0
显示,这个其他网络接口位于另一个网络命名空间(一种虚拟 IP 堆栈)中,大概是根(又名主机)网络命名空间。如果您ip link show
在主机中使用,而不是在容器中使用,则此处列出的网络接口之一应该有一个@9
附录;接口名称可能以veth...
. 此接口是eth0@10
您询问的接口的对等体。Veth 接口成对连接,就像虚拟电缆一样。
因此,这@...
是由该ip
工具创建的附录,它不是 Linux 网络接口名称的一部分。@ 后面的数字指的是另一个网络接口,其索引号显示在@ 后面。索引号打印在网络接口名称之前,例如 in 9: eth0@if10
。对等网络接口可以位于不同的网络命名空间中。
不幸的是,为 找到正确的网络命名空间link-netnsid ..
相当复杂,请参阅如何找到 veth peer ifindex 的网络命名空间。