网络知识---如何查看docker veth pair与宿主机上网卡的对应关系

 

 

 

正文

1. 方法

可以通过iflink 找到对应关系。

  • 在宿主机上执行命令ip link
$ ip link
......
13: veth56ecf40@if12: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue mast
er docker0 state UP mode DEFAULT group default
    link/ether 56:17:10:68:88:b1 brd ff:ff:ff:ff:ff:ff link-netnsid 4
15: veth0f80cbf@if14: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue mast
er docker0 state UP mode DEFAULT group default
    link/ether fa:e6:8f:3b:01:54 brd ff:ff:ff:ff:ff:ff link-netnsid 5
  • 在容器内查看iflink文件
root@336043b07211:/# docker exec -it nginx-1 bash
root@336043b07211:/# cat /sys/class/net/eth0/iflink
13

root@336043b07211:/# docker exec -it nginx-2 bash
root@336043b07211:/# cat /sys/class/net/eth0/iflink
15

这样就可以确定:
nginx-1这个容器在物理机上对应的veth pair是veth56ecf40@if12
nginx-2这个容器在物理机上对应的veth pair是veth0f80cbf@if14

2. 其它方法

  • 通过ethtool来查看
    首先在容器中执行:ethtool -S eth0

eth0为容器中的网卡的名字

root@336043b07211:/# ethtool -S eth0
NIC statistics:
     peer_ifindex: 13

然后在宿主机上执行: ip link show

$ ip link show
...
13: veth56ecf40@if12: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP mode DEFAULT group default
    link/ether 56:17:10:68:88:b1 brd ff:ff:ff:ff:ff:ff link-netnsid 4
15: veth0f80cbf@if14: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP mode DEFAULT group default
    link/ether fa:e6:8f:3b:01:54 brd ff:ff:ff:ff:ff:ff link-netnsid 5
posted @ 2021-03-15 09:55  技术颜良  阅读(439)  评论(0编辑  收藏  举报