【linux 虚拟网络实战之veth下】

linux 虚拟网络实战之veth下

写在前面

 上一篇介绍了veth和veth之间的通信,这一片、篇还是基于veth和veth之间,但是是通过一种新的方式,我们接下来看具体实现。

创建veth

首先还是创建一对网卡和一个命名空间,并且启动起来。

ip link add veth2 type veth peer name veth3
ip netns add ns2
ip link set veth2 netns ns2
ip netns exec ns2 ip addr add 192.168.100.12/24 dev veth2
ip netns exec ns2 ip link set veth2 up
ip link set veth3 up 

这里我们创建veth2和veth3,并且把veth2放到了ns2的命名空间中。
需要注意的是这里并没有给veth3设置网卡的ip地址。

接下来我们打开veth3的arp代答

echo 1 > /proc/sys/net/ipv4/conf/veth3/proxy_arp

给我们的ns2空间中的veth2加上默认路由

ip netns exec ns2 ip route add 0.0.0.0/0 via 169.2.2.2 dev veth2 onlink

查看此时路由
在这里插入图片描述

然后在当前主的命名空间中增加一天去veth2的路由策略

ip route add 192.168.100.12 dev veth3 scope link

同时打开转发包的功能

echo 1 > /proc/sys/net/ipv4/ip_forward

然后ping一下发现可以,ping通
在这里插入图片描述

跨命名空间

先试试veth1能不能ping到veth2.

在这里插入图片描述
很明显失败了。

这里先给veth0配置一个arp代答并且加上默认路由

echo 1 > /proc/sys/net/ipv4/conf/veth0/proxy_arp

再试试可以了
在这里插入图片描述

好的veth到这里就结束了。接下来继续bridge的。

说一下为什么要ns2空间中的veth2加上默认路由是这么奇怪的ip。
这个是因为将169.2.2.2设置成了下一跳的地址,然后发出arp广播,然后veth3开启了arp代答,就将veth3的arp复制过来,然后再开启了转发,因此ns2的到ns1空间,就经过了veth3转发到了veth1,然后也得到了响应。

感谢:理解linux虚拟网络设备veth

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值