![OUTPUT 이후 두 번째 경로 조회의 요점은 무엇입니까?](https://linux55.com/image/56879/OUTPUT%20%EC%9D%B4%ED%9B%84%20%EB%91%90%20%EB%B2%88%EC%A7%B8%20%EA%B2%BD%EB%A1%9C%20%EC%A1%B0%ED%9A%8C%EC%9D%98%20%EC%9A%94%EC%A0%90%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
~에 따르면패킷 경로 다이어그램,그리고설명하다:
표 6-2. 소스 localhost (자체 머신)
[...]
- 라우팅 결정. 이전의 mangle 및 nat 변경으로 인해 패킷 라우팅 방식이 변경되었을 수 있기 때문입니다.
[...]
NAT 및 기타 사항으로 인해 실제 출력 인터페이스가 변경되었을 수 있으므로 OUTPUT 체인 뒤에 두 번째 경로 조회가 있습니다. 그러나 테스트에서 나는 발견했습니다.출력 인터페이스를 선택하면 변경할 수 없습니다..
예를 들어 바인딩되지 않은 소켓에서 대상으로 UDP 패킷을 보내는 애플리케이션이 있습니다. 기본 테이블을 쿼리하고 기본 소스, 인터페이스 및 게이트웨이를 선택합니다. 그런 다음 fwmark를 설정하고 정책 기반 라우팅에서 이를 사용하여 패킷을 다른 인터페이스에 배치해 봅니다.
[root@localhost ~]# ip rule add fwmark 1 lookup 1
[root@localhost ~]# ip route add default dev lo table 1
패킷은 이러한 조회를 수행합니다.
#first lookup, assuming main NIC is in LAN with address 192.168.1.2/24, gateway 192.168.1.1
[root@localhost ~]# ip route get 8.8.8.8
8.8.8.8 from 192.168.1.2 via 192.168.1.1 dev eth0
cache
#second lookup, source address and oif chosen
[root@localhost ~]# ip route get 8.8.8.8 oif eth0 from 192.168.1.2 mark 1
8.8.8.8 from 192.168.1.2 via 192.168.1.1 dev wlp3s0 mark 1
cache
패킷에는 여전히 선택된 출력 인터페이스가 있습니다. 매개변수를 설정하지 않으면 oif
올바른 인터페이스를 얻게 됩니다.
[root@localhost ~]# ip route get 8.8.8.8 from 192.168.1.2 mark 1
8.8.8.8 from 192.168.1.2 dev lo mark 1
cache
그래서 요점은 무엇입니까? (테스트해본 결과) 게이트웨이만 효과적으로 변경할 수 있는 것 같지만 blackhole
또는 unreachable
.