相关疑难解决方法(0)

如何找到 veth peer ifindex 的网络命名空间?

任务

我需要明确地并且没有“整体”猜测地在另一个网络命名空间中找到veth 端的对等网络接口。

理论 。/。现实

尽管有很多文档并且在 SO 上的回答也假设网络接口的 ifindex 索引在每个主机的网络命名空间中是全局唯一的,但这在许多情况下并不成立ifindex/iflink 是模棱两可的。甚至环回已经显示出相反的情况,在任何网络命名空间中都有一个 ifindex 为 1。此外,根据容器环境,ifindex数字会在不同的命名空间中重用。这使得跟踪 veth 布线成为一场噩梦,特别是有很多容器和一个带有 veth peers 的主机桥都以@if3 左右结尾......

例子: link-netnsid0

启动一个 Docker 容器实例,只是为了获得一个新的 veth从主机网络命名空间连接到新容器网络命名空间对......

$ sudo docker run -it debian /bin/bash

现在,在主机网络命名空间中列出网络接口(我已经省略了对这个问题不感兴趣的那些接口):

$ ip链接显示
1: lo: mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    链接/环回 00:00:00:00:00:00 brd 00:00:00:00:00:00
...
4: docker0: mtu 1500 qdisc noqueue state UP mode DEFAULT group default 
    链接/以太 …

networking network-namespaces veth

11
推荐指数
2
解决办法
1万
查看次数

标签 统计

network-namespaces ×1

networking ×1

veth ×1