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이 작동 중입니다.
추가 경로 설정:
backend
10.8.0.0/24 via 172.16.7.2
경로 가 있고224.0.0.0/4 via eth0
.openvpn-server
10.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-client
tcpdump -i tun0 net 224.0.0.0/4
openvpn-client
ping -t3 239.1.2.3
또한 on 을 실행하면 backend
해당 호스트를 통해 종료되고 on 에 eth0
들어갑니다 . 를 사용 하면 볼 수 있습니다 .openvpn-server
eth0
openvpn-server
tcpdump -i eth0 net 224.0.0.0/4
문제:
마치 핑을 받은 것처럼 ping -t3 239.1.2.3
계속 실행 backend
하여 핑을 으로 전달할 수 있기를 바랍니다 . (최종 목표는 UDP 패킷을 모든 VPN 클라이언트로 멀티캐스트하는 것입니다.)openvpn-client
10.8.0.2
backend
내 시도:
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-server
openvpn-client
backend
openvpn-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
필요합니다. 이 작업은 두 단계로만 수행됩니다.smcroute -d
-- 데몬 시작smcroute -j tun0 239.1.2.3
-- 그룹에 가입하려면
하나의 명령( )으로 두 가지를 모두 실행할 수는 없습니다
smcroute -d -j tun0 ...
.
이렇게 하면 모든 것이 예상대로 작동합니다.
메모:OpenVPN이 구성되기 전에 pimd
또는 데몬을 시작하면 모든 것이 작동하지 않습니다. OpenVPN의 후크를 사용하여 시작하는 것이 가장 좋습니다 .smcroute
tun0
route-up