[cloud][sdn] network namespace
man 手册关于IP netns的介绍:
http://man7.org/linux/man-pages/man8/ip-netns.8.html
一个非常好的介绍,有概念,有操作:
http://cizixs.com/2017/02/10/network-virtualization-network-namespace
一:
以下,操作都是根据上边这个文档来的,详细的我推荐去参见原文档!
创建namespace test1,以及一个veth
[root@vrouter-ovs ~]# ip netns add test1 [root@vrouter-ovs ~]# ip link add type veth [root@vrouter-ovs ~]# ip link set veth0 netns test1 [root@vrouter-ovs ~]# ip netns exec test1 bash
再使用同样的操作创建 test2
为了防止搞不清楚自己在什么地方,bash之后一般可以改一下命令行的提示符,加以区分:
[root@vrouter-ovs ~]# PS1="172-ns > " 172-ns > 172-ns > ls
在test1 和test2中会分别出现一个可以联通的网卡,配上IP之后就可以互ping了。
[root@vrouter-ovs ~]# ip netns exec test1 ip link 1: lo: <LOOPBACK> mtu 65536 qdisc noop state DOWN mode DEFAULT link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 10: veth0@if11: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000 link/ether f6:30:1f:4a:97:2f brd ff:ff:ff:ff:ff:ff link-netnsid 1 [root@vrouter-ovs ~]#
二:
更高级一点的就bridge。这就和我的QEMU虚拟机的网络配置方法一样了。不再赘述,可以翻全面的qemu网络相关的文档,原理相同。
三:
一直用btctl管理bridge,这个文档里提到了用ip命令怎么处理,摘要如下:
[root@localhost ~]# ip link add br0 type bridge [root@localhost ~]# ip link set dev br0 up [root@localhost ~]# ip link set dev veth0 master br0 [root@localhost ~]# ip link set dev veth0 up