我正在寻找输入是否预期以下与网络命名空间到期相关的观察结果,或者应该报告为错误?
/proc/<pid>/net/dev它可以防止/延迟另一个进程的命名空间到期,直到它关闭此文件。这样做不需要成为该命名空间的一部分。这似乎是非常令人惊讶的行为。它允许本地用户访问适当的proc文件来延迟/防止网络命名空间的 veth 接口的破坏。一个有问题的监控工具打开文件/proc而不关闭它们也可能导致这种情况。
(在 Debian Buster - Linux 5.4.0-0.bpo.4-amd64 上)
1)创建网络命名空间:
$ unshare -n
$ echo $BASHPID
18807
Run Code Online (Sandbox Code Playgroud)
2)创建veth并将一端移动到上面创建的网络命名空间中
$ ip link add dev veth18807 type veth peer name eth18807
$ ip link set eth18807 netns 18807
$ ip addr | grep veth
14: veth18807@if13: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
Run Code Online (Sandbox Code Playgroud)
3)tail -f /proc/18807/net/dev在单独的终端中启动
$ tail -f /proc/18807/net/dev
...
tail: /proc/18807/net/dev: file truncated
...leave …Run Code Online (Sandbox Code Playgroud)