我很难阅读ip a
命令的输出。
通常它会打印这样的内容:
3: enp0s25: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP group default qlen 1000
link/ether aa:bb:cc:dd:ee:ff brd ff:ff:ff:ff:ff:ff
这很好。
但在 LXC 容器内(并不总是)我可以看到类似的东西:
11: eth0@if12: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether XX:XX:XX:XX:XX:XX brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 10.10.44.44/16 brd 10.10.255.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::24cb:a3ff:fefe:72cc/64 scope link
valid_lft forever preferred_lft forever
13: eth1@if14: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether XX:XX:XX:XX:XX:XX brd ff:ff:ff:ff:ff:ff link-netnsid 0
inet 192.168.1.29/24 brd 192.168.1.255 scope global eth1
valid_lft forever preferred_lft forever
inet6 fe80::b471:7eff:fea7:a8bc/64 scope link
valid_lft forever preferred_lft forever
这是什么@if1[2,4]
?
而且ifconfig
总是打印eth[0,1]
答案1
您的接口属于单独的 macvlan。
上面列出的输出ip
表明您的主机配置了两个接口,每个接口eth0@if12
都是eth1@if14
以桥接模式配置的单独 macvlan 的成员(一个物理接口到多个虚拟网络接口,每个接口都有一个单独的 MAC 地址)。
我相信符号是<interfaceNickname>@<macvlanID>
.
至于为什么界面并不总是这样格式化,我至少可以看到两个可能的原因。
- 该接口不是 macvlan 的一部分。
- 主机没有至少两个位于不同 macvlan 上的接口。
因此,如果您的容器主机有一个 macvlaned 接口,它不会仅显示 macvlanid 接口昵称。但是,如果您的主机有两个位于不同 macvlan 上的接口,那么至少其中一个接口将标有该<nic>@<macvlan>
格式。
要深入了解 LXC 网络的 macvlan 配置,请查看这篇写得好的文章(大约三分之一的内容,在标题为“Macvlan”的部分中,作者深入研究了您的特定配置)。