중간 홉을 통한 멀티캐스트 경로 설정

중간 홉을 통한 멀티캐스트 경로 설정

NET_ADMIN두 개의 Docker 컨테이너( 기능 포함) 가 있는 호스트가 있습니다 .

  • backend인터페이스 eth0( 172.16.7.3)
  • openvpn-server인터페이스 eth0( 172.16.7.2) 및 tun0( 10.8.0.1) 사용, OpenVPN 서버 실행(tun 모드)

openvpn-client인터페이스 tun0( )가 있는 다른 시스템에 OpenVPN 클라이언트가 있습니다 10.8.0.2. VPN이 작동 중입니다.

추가 경로 설정:

  • backend10.8.0.0/24 via 172.16.7.2경로 가 있고 224.0.0.0/4 via eth0.
  • openvpn-server10.8.0.0/24 dev tun0경로 가 있고 224.0.0.0/4 dev tun0.

backend성공적으로 ping할 수 있습니다 openvpn-client(를 통해 라우팅 openvpn-server): ping 10.8.0.2매력처럼 작동합니다.

관찰:

ping -t3 239.1.2.3에서 실행하면 VPN 터널을 통과하고 ( on 사용) openvpn-server에 도착하는 ICMP 패킷을 볼 수 있습니다 .openvpn-clienttcpdump -i tun0 net 224.0.0.0/4openvpn-client

ping -t3 239.1.2.3또한 on 을 실행하면 backend해당 호스트를 통해 종료되고 on 에 eth0들어갑니다 . 를 사용 하면 볼 수 있습니다 .openvpn-servereth0openvpn-servertcpdump -i eth0 net 224.0.0.0/4

문제:

마치 핑을 받은 것처럼 ping -t3 239.1.2.3계속 실행 backend하여 핑을 으로 전달할 수 있기를 바랍니다 . (최종 목표는 UDP 패킷을 모든 VPN 클라이언트로 멀티캐스트하는 것입니다.)openvpn-client10.8.0.2backend

내 시도:

smcroute -d -n -j eth0 239.1.2.3 -a eth0 172.16.7.3 239.1.2.3 tun0

나는 이것이 멀티캐스트 경로를 설정할 것이라고 생각했지만 실제로는 아무것도 하지 않습니다. openvpn-server에서 나가는 ICMP 패킷을 볼 수 없습니다 tun0. -- 뭐가 문제 야?


또한 세 호스트 중 두 쌍에 설정을 시도했고 pimd세 호스트 모두에도 설정을 시도했습니다. 결과적으로 iperf(제안된 대로) 벤치마크를 수행할 수 있었습니다.여기) backend와 사이 및 와 openvpn-server사이에도 있지만 과 사이에는 해당되지 않습니다 . 중간에 홉을 통한 전달/라우팅이 어떻게든 작동하지 않는 것 같습니다. (TTL을 5로 설정했기 때문에 문제가 되지 않습니다.)openvpn-serveropenvpn-clientbackendopenvpn-client

필요한 경우 더 자세한 내용(예: 출력)을 제공할 수 있지만 ip route list질문을 불필요하게 복잡하게 만들고 싶지는 않습니다.

답변1

문제는 가 openvpn-client멀티캐스트 그룹에 합류하는지 확인하지 않았기 때문에 중간( openvpn-server)에 있는 라우터가 그곳으로 멀티캐스트 트래픽을 보내야 한다는 사실을 몰랐다는 것입니다.

다음 설정이면 충분합니다.

  • On에서 backend경로를 설정합니다 224.0.0.0/4 via 172.16.7.2. 이렇게 하면 멀티캐스트 IP 범위에 대한 트래픽이 다음으로 전송됩니다 openvpn-server(더 좁은 범위를 지정할 수 있음).
  • 설치 및 pimd시작openvpn-server
  • openvpn-client멀티캐스트 그룹에 가입하겠다는 메시지 가 표시되는지 확인하세요 .이를 위해서는 다음과 같은 IGMP 데몬이 scmroute필요합니다. 이 작업은 두 단계로만 수행됩니다.

    1. smcroute -d-- 데몬 시작
    2. smcroute -j tun0 239.1.2.3-- 그룹에 가입하려면

    하나의 명령( )으로 두 가지를 모두 실행할 수는 없습니다 smcroute -d -j tun0 ....

이렇게 하면 모든 것이 예상대로 작동합니다.

메모:OpenVPN이 구성되기 전에 pimd또는 데몬을 시작하면 모든 것이 작동하지 않습니다. OpenVPN의 후크를 사용하여 시작하는 것이 가장 좋습니다 .smcroutetun0route-up

관련 정보