天天看点

云原生必备知识: Netns

所属技术领域:

云原生

| 名词定义 |

netns是在linux中提供网络虚拟化的一个项目,使用netns网络空间虚拟化可以在本地虚拟化出多个网络环境,目前netns在lxc容器中被用来为容器提供网络。

使用netns创建的网络空间独立于当前系统的网络空间,其中的网络设备以及iptables规则等都是独立的,就好像进入了另外一个网络一样。

|相关名词|

Ip netns相关命令

1.增加虚拟网络命名空间

ipnetns add net0

2.显示所有的虚拟网络命名空间

EULER:~ # ipnetns list

net0

也可通过查看/var/run/netns目录下的文件来list

EULER:~ # ls /var/run/netns/

3.进入虚拟机网络环境

ipnetns exec net0

command

EULER:~ # ipnetns exec net0 bash #打开虚拟网络环境net0的bash窗口

EULER:~ # ipaddr #显示所有虚拟网络环境的设备

EULER:~ # exit #退出该网络虚拟环境

exit

4.增加一对veth虚拟网卡

EULER:~ # ip link add type veth

5.将veth0添加到net0虚拟网络环境

ip link set veth0 netns net0

6.将虚拟网卡veth1改名并添加到net1虚拟网络环境中

ip link set dev veth1 name net1-bridge netns net1

7.设置虚拟网络环境net0的veth0设备处于激活状态

ipnetns exec net0 ip link set veth0 up

8.为虚拟网络环境net0的veth0设备增加IP地址

ipnetns exec net0 ip address add 10.0.1.1/24 dev veth0

用法

ip [ OPTIONS ]netns { COMMAND | help }

ipnetns list - show all of the named network namespaces 列出所有名称空间

ipnetns add NETNSNAME - create a new named network namespace 创建一个新的名称空间

ipnetns delete NETNSNAME - delete the name of a network namespace 删除一个名称空间

ipnetns exec NETNSNAME cmd ... - Run cmd in the named network namespace 在网络名称空间中执行系统命令

ip [-all] netns exec [ NAME ]cmd ... - Run cmd in the named network namespace.

If -all option was specified then cmd will be executed synchronously on the each named network namespace.

资料来源:

1、 阿里云大学

2、 百度百科

3、 CSDN

继续阅读