首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux VRF和多播IP

Linux VRF和多播IP
EN

Unix & Linux用户
提问于 2018-07-20 22:38:54
回答 1查看 831关注 0票数 1

我试图在Xubuntu18.04中使用VRF,但在多播IP地址方面,我运气不佳。我一直使用https://www.kernel.org/doc/Documentation/networking/vrf.txt作为指导方针。

这是我的设计:

代码语言:javascript
复制
sudo ip addr add 192.168.0.1/24 dev enp0s8
sudo ip li set dev enp0s8 up
sudo ip link add vrf-blue type vrf table 10
sudo ip link set dev vrf-blue up
sudo ip link set dev enp0s8 master vrf-blue

ip a的输出如下:

代码语言:javascript
复制
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
    link/ether 08:00:27:0c:19:91 brd ff:ff:ff:ff:ff:ff
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master vrf-blue state UP group default qlen 1000
    link/ether 08:00:27:5e:ed:76 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.1/24 scope global enp0s8
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fe5e:ed76/64 scope link 
       valid_lft forever preferred_lft forever
4: vrf-blue: <NOARP,MASTER,UP,LOWER_UP> mtu 65536 qdisc noqueue state UP group default qlen 1000
    link/ether 8a:f6:90:1c:c1:1e brd ff:ff:ff:ff:ff:ff

ip route show table 10的输出:

代码语言:javascript
复制
default via 192.168.0.2 dev enp0s8 
broadcast 192.168.0.0 dev enp0s8 proto kernel scope link src 192.168.0.1 
192.168.0.0/24 dev enp0s8 proto kernel scope link src 192.168.0.1 
local 192.168.0.1 dev enp0s8 proto kernel scope host src 192.168.0.1 
broadcast 192.168.0.255 dev enp0s8 proto kernel scope link src 192.168.0.1 

当我平一个本地地址时,我可以通过运行tcpdump -I vrf-bluetcpdump -I enp0s8在接口和VRF主设备上看到ICMP数据包,但是如果我平了一个多播地址,我只能看到在VRF上运行的捕获上的数据包,而不是接口。我尝试过在VRF上设置多播标志,但效果很小。

代码语言:javascript
复制
ping 224.0.0.1 -I vrf-blue
ping 192.168.0.2 -I vrf-blue

据我了解,组播平应该在任何附在VRF上的接口上发送,有人能告诉我吗?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2018-07-25 12:24:53

我在论坛上发布了同样的问题;David (内核中许多VRF代码的作者)回答道:

IPv4多播数据包可以在VRF设备上接收--这是用户利用的意外副作用,因此无法进行更改。通常,多播和链路本地(IPv6)是指绑定到真正的设备,而不是VRF设备。也就是说,包的传输必须在被奴役的装置上进行。试图通过VRF设备将数据包发送到mcast地址的每个被奴役设备不会被复制。或者至少我记得是这样运作的。

现在,我可以在v4.17上使用套接字绑定到接口,而不是在发送多播IP时使用VRF。

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

https://unix.stackexchange.com/questions/457559

复制
相关文章

相似问题

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