首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过VRF设备连接Linux网络命名空间

通过VRF设备连接Linux网络命名空间
EN

Stack Overflow用户
提问于 2022-09-07 14:55:40
回答 1查看 126关注 0票数 -1

我正试着把头转到Linux设备上。

我正在尝试连接两个网络名称空间(在不同的IP网络上),通过VRF设备进行通信。我通过veth对将每个NetNS连接到VRF设备上.我在VRF表中设置路由,以在NetNs之间路由通信量。最后,我尝试在一个NetNs中运行'python -m http.server‘,并尝试从另一个NetN中获得一个带有'wget’的文件。使用Tshark,我可以看到“客户端”veth对的末尾是针对服务器IP/Eth地址的ARP‘,但是没有进行路由。我的设置如下:

代码语言:javascript
复制
sudo ip netns add east
sudo ip netns add west
sudo ip link add vrf-0 type vrf table 10
sudo ip link set dev vrf-0 up
sudo ip link add veth-east type veth peer name veth-east-vrf
sudo ip link add veth-west type veth peer name veth-west-vrf
sudo ip link add xcable type veth peer name xcable-vrf
sudo ip link set veth-east netns east
sudo ip link set veth-east-vrf master vrf-0
sudo ip link set veth-west netns west
sudo ip link set veth-west-vrf master vrf-0
sudo ip link set xcable-vrf master vrf-0
sudo ip -n east addr add 192.168.15.2/24 dev veth-east
sudo ip -n east link set veth-east up
sudo ip addr add 192.168.15.1/24 dev veth-east-vrf
sudo ip link set veth-east-vrf up
sudo ip -n east route add default dev veth-east
sudo ip route add 192.168.15.0/24 dev vrf-0
sudo ip -n west addr add 192.168.16.2/24 dev veth-west
sudo ip -n west link set veth-west up
sudo ip addr add 192.168.16.1/24 dev veth-west-vrf
sudo ip link set veth-west-vrf up
sudo ip -n west route add default dev veth-west
sudo ip route add 192.168.16.0/24 dev vrf-0
sudo ip addr add 192.168.99.2/24 dev xcable
sudo ip link set xcable up
sudo ip addr add 192.168.99.1/24 dev xcable-vrf
sudo ip link set xcable-vrf up

我不确定它是否会像这样工作,所以任何洞察力都会很好。重新创建此功能的完整脚本可在以下位置找到:https://github.com/etnt/vrf-experiments

总结我的问题:在Linux上,如何设置两个网络名称空间之间的IP通信,让流量通过VRF路由表路由?

EN

回答 1

Stack Overflow用户

发布于 2022-09-15 20:41:07

好的,解决方案是将NetNS中的默认路由设置更改为:

代码语言:javascript
复制
sudo ip -n east route add default via 192.168.15.1
sudo ip -n west route add default via 192.168.16.1

尽管如此,在一些Linux系统上,这还不够,我也找不出原因。但是,我使用了另一种方法,使用了从unshare中获得的https://stbuehler.de/blog/article/2020/02/29/using_vrf__virtual_routing_and_forwarding__on_linux.html命令。此解决方案也可在我的git中获得:https://github.com/etnt/vrf-experiments

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73637626

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档