云原生必备知识: Netns-阿里云开发者社区

开发者社区> 阿里云术语库> 正文

云原生必备知识: Netns

简介: netns是在linux中提供网络虚拟化的一个项目,使用netns网络空间虚拟化可以在本地虚拟化出多个网络环境,目前netns在lxc容器中被用来为容器提供网络。 使用netns创建的网络空间独立于当前系统的网络空间,其中的网络设备以及iptables规则等都是独立的,就好像进入了另外一个网络一样。

所属技术领域:

云原生

| 名词定义 |

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/
net0

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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:

阿里云术语库提供术语的标准定义、缩略语、术语用法及多语言等,提供术语的增删改查等功能。

官方博客
官网链接