iptables-mod-tee로 복제된 패킷은 복제 후 어디로 가나요?

iptables-mod-tee로 복제된 패킷은 복제 후 어디로 가나요?

iptables-mod-tee다음과 같은 규칙을 추가하면 복제 후 팩이 복제되었나요 ?:

iptables -t mangle -A POSTROUTING -o eth2 -j TEE --gateway 192.168.0.3

아래 다이어그램을 참조하십시오. 위의 명령을 사용하면 모듈이 를 복제로 iptables-mod-tee사용한다는 것이 분명하다고 생각합니다.POSTROUTING chainmangle table원천그런데 패킷은 어떻게 되나요?~ 후에복제됐나요? 즉, 클론이 어느 체인과 테이블로 이동합니까?

여기에 이미지 설명을 입력하세요

편집: 답변에 설명된 복제된 패킷의 경로를 설명하기 위해 위 다이어그램에 빨간색 점선을 추가했습니다.

여기에 이미지 설명을 입력하세요

답변1

패킷TEE를 통해 복제됨,conntrack에 의해 추적되지 않도록 설정되었습니다.,되는 것을 방지함 다시 복제됨을 통해 방출됩니다.로컬 출력라우팅 스택의 일부이므로 처음에는 raw/OUTPUT에서 볼 수 있습니다(이 내용도 참조할 수 있습니다).Netfilter 및 일반 네트워킹 회로도의 패킷 흐름: 로컬 프로세스 직후에 발생합니다). 라우팅된 패킷에 대해 이전에 복제가 수행된 경우(예: mangle 또는 원시 PREROUTING에서) 이는 동일합니다. 이로 인해 어려움을 겪게 됩니다(그러나불가능하지 않다) 추적이 되지 않아 원본과 구별이 어렵기 때문에 추가 NAT와 같은 추가 처리를 받으시기 바랍니다.

여기에 예가 있습니다추적하다(iptables-legacy 버전 사용) 192.168.0.2에서 8.8.8.8까지 만들어진 핑의 OP와 유사한 설정에서 캡처: 캡처는 다음을 사용하여 라우터에서 이루어졌습니다.iptables -t raw -A OUTPUT -j TRACE . 원래라우팅됨패킷은 raw/PREROUTING에서 캡처해야 하므로 나타나지 않습니다. 따라서 출력에서 ​​완료되었음을 알리는 위의 설명을 검증합니다.

TRACE: raw:OUTPUT:policy:2 IN= OUT=eth1 SRC=192.168.0.2 DST=8.8.8.8 LEN=84 TOS=0x00 PREC=0x00 TTL=63 ID=39209 DF PROTO=ICMP TYPE=8 CODE=0 ID=3070 SEQ=1 
TRACE: mangle:OUTPUT:policy:1 IN= OUT=eth1 SRC=192.168.0.2 DST=8.8.8.8 LEN=84 TOS=0x00 PREC=0x00 TTL=63 ID=39209 DF PROTO=ICMP TYPE=8 CODE=0 ID=3070 SEQ=1 
TRACE: mangle:POSTROUTING:policy:2 IN= OUT=eth1 SRC=192.168.0.2 DST=8.8.8.8 LEN=84 TOS=0x00 PREC=0x00 TTL=63 ID=39209 DF PROTO=ICMP TYPE=8 CODE=0 ID=3070 SEQ=1

관련 정보