재부팅하지 않고 기본 Mac OSX 라우팅 테이블을 재로드하는 방법 등에 계속 액세스 할

인사말,

vpncVPN 클라이언트에 사용 하고 있습니다. 또한 route로컬 네트워크 등에 계속 액세스 할 수 있도록 까다로운 작업을 수행하고 있습니다 (여기서는 그다지 중요하지 않습니다).

때때로 나는 라우팅 테이블을 얻었으므로 ping: sendto: Network is unreachable다른 방법으로 해결해야 할 URL을 얻습니다 .

현재 Mac OS X을 재시동하면 모든 것이 정상으로 돌아옵니다. 전체 시스템을 재부팅 하지 않고 라우팅 테이블을 “기본”(예 : 부팅시 설정)으로 재설정하고 싶습니다 .

1 단계는 route flush(모든 경로를 제거 하는 것)이라고 생각합니다 . 그리고 2 단계는 모든 기본 경로를 다시로드해야합니다.

이 작업을 수행하는 방법에 대한 생각이 있습니까? (예 : 2 단계 란 무엇입니까?)

편집
또한, 나는 또 다른 증상이 traceroute해당 주소에서 실패한다는 것을 알았습니다 . 예를 들어 :

traceroute the.good.dns.name

traceroute: bind: Can't assign requested address



답변

경로를 플러시해야합니다. route -n flush를 여러 번 사용하십시오 . 그런 다음 경로 추가로 경로를 추가하십시오.


답변

가정용 OpenVPN 서버를 사용하고 Mac의 Tunnelblick 응용 프로그램을 사용하여 연결하는 동안이 문제가 발생했습니다.

내 끝에서 일어난 일은 VPN으로 연결을 끊은 후 내 집 IP가 대상이고 잘못된 게이트웨이가 남은 경로입니다. 이 경로를 삭제하면 문제가 해결되었습니다.

$ sudo route -n delete the.good.dns.name

예 : 학교에 있고 컴퓨터를 새로 부팅 한 후 무선 네트워크에 연결합니다. Tunnelblick을 사용하여 가정용 OpenVPN 서버에 연결합니다.

$ netstat -nr
Destination                   Gateway
....
[home-ip]/32                  [school-default-gateway-1] ....
....

VPN 서버에서 연결을 끊습니다. 무선 네트워크를 변경합니다. 기본 게이트웨이가 변경됩니다.

$ netstat -nr
Destination                   Gateway
...
[home-ip]/32                  [school-default-gateway-1] ...
...
$ ping [home-ip]
PING [home-ip]: 56 data bytes
ping: sendto: Network is unreachable
ping: sendto: Network is unreachable
Request timeout for icmp_seq 0
...

이 상황이 발생하면 어떤 상황에서도 내 홈 네트워크 (VPN, 핑 등)에 연결할 수 없습니다. 그런 다음 경로를 삭제하면

$ sudo route -n delete [home-ip]
delete net [home-ip]
$ ping [home-ip]
PING [home-ip]: 56 data bytes
64 bytes from [home-ip]: icmp_seq=1 ttl=56 time=13.111 ms

잘 작동합니다.

OpenVPN 서버 / 클라이언트가 어떻게 구성되는지에 문제가있을 수 있습니다 (이것을 찾는 데 관심이 있습니다). 그러나이 경로 삭제를 자동화하는 Tunnelblick post-disconnect 스크립트를 설치했습니다.


답변

먼저 네트워크 인터페이스에 대한 경로가 필요합니다. VPN 연결이 끊어지면 네트워크 인터페이스를 중단 한 다음 ifconfig로 다시 가져 오십시오. 그런 다음 경로 명령을 사용하여 기본 gw를 빌드하십시오. 그래서 같은 :

ifconfig en0 down

ifconfig en0 up

route add <ip address> default


답변

홈 네트워크와 회사 네트워크를 전환 할 때 기본 경로가 삭제되지 않았다는 점에서 @Sean과 동일한 문제가 발생했습니다 (OS X도 실행 중임).

완전성을 위해 집에서 VPN에 연결하고 다음 명령을 실행하면 아래와 같은 기본 게이트웨이가 표시됩니다.

$ netstat -nr
Destination                   Gateway
...
[home-ip]/32                  [work-default-gateway-1]

연결을 끊어도 [home-ip] 게이트웨이는 여전히 존재합니다. 회사 네트워크에 연결할 때 인터넷에 전혀 연결할 수 없었고 OP와 같은 문제가 발생했습니다.

$ traceroute the.good.dns.name
$ traceroute: bind: Can't assign requested address

그런 다음 경로를 수동으로 삭제해야합니다.

$ sudo route -n delete [home-ip]

처음에는 post-disconnect.sh스크립트 에 “route -n delete”를 넣었 지만 약간 지저분해서 대신이 링크를 찾았습니다.

https://code.google.com/p/tunnelblick/issues/detail?id=177

분명히 이유는 내 .ovpn파일에 다음을 설정했기 때문입니다.

user nobody
group nogroup

이는 루트가 루트로 설정되었지만 연결이 끊어지면 더 이상 루트가 아니므로 루트를 삭제할 수 없습니다.

.ovpn파일 에서이 두 줄을 주석 처리하면 을 사용할 필요없이 문제가 해결되었습니다 post-disconnect.sh.