net namespace--ip ntens

net namespace:可以在单机上面创建相互隔离开的网络环境,步骤如下:

第一种模拟案例:两个network namespace之间互相通信,既ns1和ns2之间通信

net namespace--ip ntens_第1张图片

第一步:创建网络空间。工具:ip netns

1.介绍:ip netns是进程网络空间管理

2.用法:ip netns {list | add  delete | exec | identify | pids | monitor等}

3.创建两个网络空间ns1和ns2,互不干扰,有独立的网络环境如:ip、网管、掩码等

ip netns add ns1

ip netns add ns2

第二步:如果没有多个网卡,需要创建虚拟网卡设配。工具ip link add XXX type veth peer name XXX.

1.介绍:虚拟网络创建的时候都是成对出现,一端接受信息一端发送信息,创建成对的虚拟网卡可以放到不同的network namespace里面去从而达到network namespace之间互相通信。

2.用法:ip [{-s | -v 等等}]  link  [ {add | delete | set | show} ]  type [{bridge| bond | can | vcan | veth | vlan 等}]  

3.创建一对虚拟网卡tap1和tap2

ip link add tap1 type veth peer name tap2

第三步:把两个虚拟网卡move到两个network namespace中去。工具:ip link set 网络空间的名字 netns 虚拟网卡的名字

1.介绍:把创建好的一对虚拟网卡分别移到不同的网络 空间中去。

2.用法ip link set {DEVICE | group GROUP} {up | down | arp {on | off}} | promisc {on | off} | mtu MTU | netns NAME等

3.把tap1、tap2 move到ns1 和 ns2中去。

ip link set tap1 netns ns1

ip link set tap2 netns ns2

第四步:可以查看不同的network namespace 中的网络设备、IP情况。工具:ip netns exec ns1 comman

1.ip netns exec ns1 查看ns1这个网络空间的情况。comman是在 ns1 空间中要执行的关于网络的命令,用法和真是的机器一样

2.用法:略

3.给ns1空间中的stap1网卡设置IP,子网掩码并且开启

1)ip netns exec ns1 ip link show|list :查看ns1空间中网卡情况

2)ip netns exec ns1 ip link set dev tap1 down :关闭ns1空间中的tap1网卡

3)ip netns exec ns1 ip address add 192.68.102.40/24 broadcast + dev tap1:给ns1空间中的tap1网卡设置IP和掩码相关信息

4)ip netns exec ns1 ip link set dev tap1 up 开启ns1空间中的tap1网卡

ns2同样操作,略;

第二种模拟案例:多个network namespace和物理主机之间互相通信,既ns1和ns2和eth0之间通信。需要桥工具,bridge-utils

net namespace--ip ntens_第2张图片

第一步:创建桥

1.brctl 用来创建管理桥的工具,和 ip link add xxx type bridge 一样功能

2.创建br0-test桥,类似交换机,把多个网卡绑定到br0-test上面,类似VLAN功能。br0-test就是交换机/VLAN的名字,类似把网线插到交换机上面一样

1).brctl addbr br0-test 创建一个桥

2)brctl stp br0-test off 关闭stp功能,减少网络传输过程中数据”变脏“

3)ip link set dev br0-test up 开启网桥

第二步:创建network namespace

1.ip netns add ns1/ns2

第三步创建虚拟网卡

1.创建两队虚拟网卡

1) ip link add tap1 type veth peer name br-tap1 创建一对虚拟网卡,tap1(网络空间中)和br-tap1(网桥端)

2)brctl addif addif br0-test  br-tap1 把”网线br-tap1“插到”交换机“br0-test上面。

3)ip link set tap1 netns ns1 把虚拟网卡tap1move到ns1网络环境中去。

4)ip netns exec ip link set dev tap1 up 开启ns1空间中的网卡

5)ip link set dev br-tap1 up 开启虚拟网卡的另一端br-tap1

ns2中通ns1一样。略

其余同上



你可能感兴趣的:(net namespace--ip ntens)