业务场景中,需要创建指定的network namespace, 并且内核模块中的netfilter逻辑只应生效在该network namespace中。这就需要我们创建network namespace之后,将指定的namespace传递给内核模块。
用户态创建network namespace可以使用ip命令指定名称,如:
1 | ip netns add ns1 |
但实际上在内核中,network namespace并不具备名称信息,名称信息只存在于用户态。可以参考man ip-netns:
1 | By convention a named network namespace is an object at /var/run/netns/NAME that can be opened. The file descriptor resulting |