패킷이 항상 기본 경로를 찾는 방법을 찾는 이유는 무엇입니까?

패킷이 항상 기본 경로를 찾는 방법을 찾는 이유는 무엇입니까?

더 자세히 알고 싶은 흥미로운 질문이 있습니다.

다음은 다음에 대한 규칙 목록입니다.

# 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, unreachableblackhole.

답변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에게 감사드립니다.

관련 정보