
blitzen
로컬 네트워크에 있는 모든 컴퓨터가 인터넷에 액세스하는 데 사용할 VPN 게이트웨이 역할을 하도록 로컬 네트워크에 Raspberry Pi(Jessie와 함께 설치됨)를 설정했습니다 .
저는 iptables
OpenVPN 연결( tun0
)을 NAT하고 eth0
여기에서 패킷을 전달하는 데 사용하고 있습니다. 저는 dnsmasq
DHCP를 사용하여 네트워크의 모든 컴퓨터가 이 서버를 인터넷의 기본 경로로 사용하도록 구성하고 있습니다.
이것은 잘 작동합니다.
그러나 ADSL 모델이 충돌하면 문제가 발생합니다. OpenVPN은 결함이 있음을 확인 tun0
하고 연결을 끊습니다. 그런 다음 다시 연결을 시도하지만 VPN 서버의 호스트 이름을 확인할 수 없기 때문에 실패합니다.
Nov 3 17:27:20 blitzen ovpn-TunnelBearGermany[3020]: RESOLVE: Cannot resolve host address: de.tunnelbear-ios.com: Temporary failure in name resolution
조사 결과, 터널이 철거되면 이전 경로 테이블이 활성 상태로 유지되는 것으로 나타났습니다.
$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 172.18.13.37 0.0.0.0 UG 0 0 0 tun0
46.101.162.205 192.168.2.1 255.255.255.255 UGH 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 202 0 0 eth0
172.18.13.1 172.18.13.37 255.255.255.255 UGH 0 0 0 tun0
172.18.13.37 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
기본 경로를 수동으로 제거하고 ADSL 모뎀을 가리키도록 재구성하면 Pi는 VPN 서버 이름을 확인하고 즉시 다시 연결합니다. 모든 것이 행복한 상태로 돌아갑니다.
내 질문은 - 이 동작이 정상이라고 가정할 때 - 터널이 붕괴될 때 경로 테이블 되돌리기를 자동화할 수 있는 방법은 무엇입니까? 이를 수행하기 위한 적절한 후크(OpenVPN 또는 일반 네트워크 패키지)가 있습니까?