더 자세히 알고 싶은 흥미로운 질문이 있습니다.
다음은 다음에 대한 규칙 목록입니다.
# ip rule show
0: from all lookup local
32761: from all to 188.40.122.95 lookup vpn
32762: from all to 178.63.26.145 lookup vpn
32763: from all to 176.9.71.146 lookup vpn
32764: from all to 159.69.66.229 lookup vpn
32765: from 192.168.100.0/28 lookup vpn
32766: from all lookup main
32767: from all lookup default
VPN 테이블은 아래와 같습니다
# ip route show table vpn
default dev tun0 scope link
192.168.100.0/28 dev eth0 scope link
IP 주소로 ping을 보내면 88.40.122.95
아웃바운드 인터페이스는 입니다 . 여기서 기본 경로를 찾았 tun0
으므로 이해할 수 있습니다 .table vpn
그러나 기본 경로를 제거하면 패킷은 여전히 경로를 찾고 인터페이스를 통해 나갈 수 있습니다 eth0
.
왜 이런거야? 이 규칙을 지정하고 싶습니다.
32761: from all to 188.40.122.95 lookup vpn
32762: from all to 178.63.26.145 lookup vpn
32763: from all to 176.9.71.146 lookup vpn
32764: from all to 159.69.66.229 lookup vpn
패킷은 테이블의 규칙을 따라야 하며 vpn
, 테이블에 기본값이 없으면 패킷이 실패합니다.
이 설계를 하는 이유는 이러한 IP에 대해 생성된 트래픽이 통과하고 나가는 것만을 원하기 때문입니다 tun0
. 어떤 이유로 default
규칙을 찾을 수 없으면 규칙은 실패해야 합니다.
답변1
그러나 기본 경로를 제거하면 패킷은 여전히 경로를 찾고 인터페이스 eth0을 통해 나갈 수 있습니다.
예, VPN 테이블에 더 이상 일치하는 항목이 없고 ip Route가 다음 조회를 수행하기 때문입니다.
throw
이를 방지하려면 VPN 테이블 끝에 경로 유형을 사용할 수 있습니다 . 예를 들면 다음과 같습니다.
ip route add throw default table vpn
그런 다음 VPN 테이블에 기본 경로가 없으면 조회가 거기서 중지됩니다.
매뉴얼 페이지를 확인하십시오 ip-route
. 귀하의 경우에 관심을 가질 수 있는 다른 유형의 경로: prohibit
, unreachable
및 blackhole
.
답변2
라우팅 테이블에 다음 규칙을 추가했습니다.
ip route add unreachable default metric 100 table vpn
다음과 같이 진행됩니다.
➜ ip route show table vpn
default dev tun0 scope link
unreachable default metric 100
192.168.100.0/28 dev eth0 scope link
따라서 기본 라우팅 테이블이 있으면 트래픽이 나갈 수 있지만, 기본 라우팅 테이블이 없으면 해당 메트릭이 있는 규칙이 일치 100
하므로 인터넷에 액세스할 수 없게 됩니다.
테스트를 거쳐 작동합니다. 매뉴얼 페이지를 지적해준 AB와 Eduardo에게 감사드립니다.