
Xubuntu 18.04에서 VRF를 사용해 보았지만 멀티캐스트 IP 주소가 없었습니다. 나는 사용해왔다https://www.kernel.org/doc/Documentation/networking/vrf.txt지침으로.
이것은 내 설정입니다.
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
다음과 같습니다.
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
:
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-blue
로컬 주소를 핑하면 인터페이스와 VRF 마스터에서 ICMP 패킷을 볼 수 있지만, tcpdump -I enp0s8
멀티캐스트 주소를 핑하면 VRF에서 실행 중인 캡처의 패킷만 볼 수 있습니다.아니요상호 작용. VRF에 멀티캐스트 플래그를 설정해 보았으나 거의 효과가 없었습니다.
ping 224.0.0.1 -I vrf-blue
ping 192.168.0.2 -I vrf-blue
내가 이해한 바에 따르면 멀티캐스트 핑은 VRF에 연결된 모든 인터페이스에서 전송되어야 합니다. 누구든지 제안할 수 있습니까?
답변1
나는 Cumulus Networks 포럼에 동일한 질문을 게시했습니다. David Ahern(커널의 대부분의 VRF 코드 작성자)은 다음과 같이 대답했습니다.
IPv4 멀티캐스트 패킷은 VRF 장치에서 수신될 수 있습니다. 이는 사용자의 의도하지 않은 부작용이며 변경할 수 없습니다. 일반적으로 멀티캐스트 및 링크-로컬(IPv6)은 VRF 장치가 아닌 실제 장치에 바인딩되도록 고안되었습니다. 이는 슬레이브 장치에서 패킷 전송이 이루어져야 함을 의미합니다. VRF 장치를 통해 멀티캐스트 주소로 패킷을 보내보세요.아니요슬레이브 장치별로 복제됩니다.
아니면 적어도 그것이 작동했던 것으로 기억합니다.
현재 v4.17에서 이것을 사용하고 있으며 멀티캐스트 IP를 보낼 때 소켓은 VRF 대신 인터페이스에 바인딩됩니다.