输出中的 IP 地址“@”(at)

输出中的 IP 地址“@”(at)

我很难阅读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>.

至于为什么界面并不总是这样格式化,我至少可以看到两个可能的原因。

  1. 该接口不是 macvlan 的一部分。
  2. 主机没有至少两个位于不同 macvlan 上的接口。

因此,如果您的容器主机有一个 macvlaned 接口,它不会仅显示 macvlanid 接口昵称。但是,如果您的主机有两个位于不同 macvlan 上的接口,那么至少其中一个接口将标有该<nic>@<macvlan>格式。

要深入了解 LXC 网络的 macvlan 配置,请查看这篇写得好的文章(大约三分之一的内容,在标题为“Macvlan”的部分中,作者深入研究了您的特定配置)。

相关内容