理解linux虚拟网络设备veth
上一章介绍了linux network namespace,接着来讨论一下如何让一个独立的网络命名空间的和主机的网络相互通信,这里我们需要用到linux虚拟网络设备veth。
veth设备
veth设备总是成对出现,通常就是用来连接不同网络命名空间(下面开始简称NS),一端连着NS1的内核协议栈,另一端连着NS2的内核协议栈,一端发送的数据会被另一端接收。
我们接下来试一下创建一个新的NS,然后跟主机的NS连接起来
通过下面的命令可以创建一对VETH设备
ip link add veth0 type veth peer name veth1
然后创建一个新NS
ip netns add ns1
然后把刚创建的VETH网卡的其中一端转到NS1,这就好像一端插到NS1上,另一端插在主机的NS上
ip link set veth0 netns ns1
给两端都设置个IP,设置veth0时,要用ip netns exec ns1,因为veth0此时在ns1中,
ip netns exec ns1 ip addr add 192.168.10.10/24 dev veth0
ip addr add 192.168.10.11/24 dev veth1