편집하다

편집하다

배경: VPN 제공업체의 다양한 서버의 속도를 확인하고 싶어서 iperf3각 서버에 대해 실행되는 스크립트를 작성했습니다. 이 스크립트는 어떤 방식으로든 네트워크 설정을 수정하지 않습니다.

질문: 간단한 openvpn명령은 기능적 터널링을 가져오지만 스크립트를 추가하면 통신이 중단됩니다.

내 것도 확인해 보세요.편집하다질문이 끝나면 이것이 무슨 일이 일어나고 있는지 나타낼 수 있습니다. 이런 이유로 질문 제목도 변경했습니다.

사례 0: 아니요 openvpn- 네트워크 정상

라우팅 테이블은

default via 10.0.3.1 dev eth0
10.0.3.0/24 dev eth0  proto kernel  scope link  src 10.0.3.46

상황 1: 정상 openvpn- 정상적인 네트워크 연결

주문하다

# openvpn --config at3.nordvpn.com.tcp443.ovpn --auth-user-pass auth.txt

(...)
Sat Mar  5 19:06:17 2016 /sbin/ip link set dev tun0 up mtu 1500
Sat Mar  5 19:06:17 2016 /sbin/ip addr add dev tun0 local 10.7.7.210 peer 10.7.7.209
Sat Mar  5 19:06:17 2016 /sbin/ip route add 37.252.190.165/32 via 10.0.3.1
Sat Mar  5 19:06:17 2016 /sbin/ip route add 0.0.0.0/1 via 10.7.7.209
Sat Mar  5 19:06:17 2016 /sbin/ip route add 128.0.0.0/1 via 10.7.7.209
Sat Mar  5 19:06:17 2016 /sbin/ip route add 10.7.7.1/32 via 10.7.7.209
Sat Mar  5 19:06:17 2016 Initialization Sequence Completed

연결된 경로가 있는 터널을 소개합니다.

0.0.0.0/1 via 10.7.7.209 dev tun0
default via 10.0.3.1 dev eth0
10.0.3.0/24 dev eth0  proto kernel  scope link  src 10.0.3.46
10.7.7.1 via 10.7.7.209 dev tun0
10.7.7.209 dev tun0  proto kernel  scope link  src 10.7.7.210
37.252.190.165 via 10.0.3.1 dev eth0
128.0.0.0/1 via 10.7.7.209 dev tun0

Traceroute www.google.com는 괜찮습니다

# traceroute 66.102.1.103
traceroute to 66.102.1.103 (66.102.1.103), 30 hops max, 60 byte packets
 1  10.7.7.1 (10.7.7.1)  32.933 ms  65.328 ms  65.332 ms
 2  37-252-190-129.rev.ipax.at (37.252.190.129)  65.341 ms  65.337 ms  65.335 ms
(...)

사례 2: openvpn스크립트 사용 - 네트워크 오류

OpenVPN은 다음으로 시작됩니다

# openvpn --config at3.nordvpn.com.tcp443.ovpn --auth-user-pass auth.txt --script-security 2 --route-delay 5 --route-up "./testlink.sh at3.nordvpn.com.tcp443.ovpn"

(...)
Sat Mar  5 19:11:20 2016 /sbin/ip link set dev tun0 up mtu 1500
Sat Mar  5 19:11:20 2016 /sbin/ip addr add dev tun0 local 10.7.7.210 peer 10.7.7.209
Sat Mar  5 19:11:25 2016 /sbin/ip route add 37.252.190.165/32 via 10.0.3.1
Sat Mar  5 19:11:25 2016 /sbin/ip route add 0.0.0.0/1 via 10.7.7.209
Sat Mar  5 19:11:25 2016 /sbin/ip route add 128.0.0.0/1 via 10.7.7.209
Sat Mar  5 19:11:25 2016 /sbin/ip route add 10.7.7.1/32 via 10.7.7.209
+ server=at3.nordvpn.com.tcp443.ovpn
+ iperf3 -J -c ping.online.net

마지막 두 줄은 내 스크립트의 시작 부분입니다. iperf3서버에 연결할 수 없기 때문에 iperf3중단됩니다 .

라우팅 테이블은 좋아 보입니다(= 이전의 일반 라우팅 테이블과 동일하며 openvpn출력도 확인했습니다 diff).

0.0.0.0/1 via 10.7.7.209 dev tun0
default via 10.0.3.1 dev eth0
10.0.3.0/24 dev eth0  proto kernel  scope link  src 10.0.3.46
10.7.7.1 via 10.7.7.209 dev tun0
10.7.7.209 dev tun0  proto kernel  scope link  src 10.7.7.210
37.252.190.165 via 10.0.3.1 dev eth0
128.0.0.0/1 via 10.7.7.209 dev tun0

그러나 동일한 추적 경로가 www.google.com실패합니다.

# traceroute 66.102.1.103
traceroute to 66.102.1.103 (66.102.1.103), 30 hops max, 60 byte packets
 1  * * *
 2  * * *
 (...)

왜?

편집하다

나는 또 다른 테스트를 했습니다. "hello"를 에코하고 종료하는 간단한 비차단 스크립트가 있습니다.

놀랍게도 라인을 녹음한 후 traceroute이제 작동합니다.Initialization Sequence Completed

스크립트 시작과 이 로그 항목 사이에 추가 초기화 단계가 수행되는 것 같습니다.이 상황에서 차단 스크립트를 어떻게 실행합니까?(차단이란 네트워크 시작에 따라 일부 작업을 수행한다는 의미입니다), 즉 초기화가 완료된 후?

답변1

--route-up터널이 나올 때 경로를 추가하는 것이므로 사용하지 마십시오 .

를 사용해 볼 수 있습니다 --up. 터널이 완전히 설정된 후 실행되는 스크립트에 대해 작동합니다. 여전히 멈춘다면 하위 프로세스 &스타일을 시작해야 합니다.

관련 정보