iptables 패킷 src ip는 icmp 응답 및 tcp ack의 경우 NAT를 통과하지 않습니다.

iptables 패킷 src ip는 icmp 응답 및 tcp ack의 경우 NAT를 통과하지 않습니다.

iptables프로그래밍 방식으로 패킷을 변경하기 위해 대기열과 함께 사용하고 있습니다 net-filter.

저는 iptables인터넷에 연결된 2개의 NIC eth0과 LAN에 연결된 eth1을 사용하여 우분투 랩에서 규칙을 사용하고 있습니다. NAT에 잘 알려진 iptables 규칙을 사용하고 eth0에서 가장합니다.

sudo iptables --table nat --append POSTROUTING -o eth0 -j MASQUERADE 
sudo iptables -append FORWARD -i eth1 -j ACCEPT. 
sudo iptables -t mangle -A PREROUTING -j NFQUEUE --queue-num 0 
sudo iptables -t mangle -A OUTPUT -j NFQUEUE

이 4가지 규칙은 프로그램 내에서 패킷을 캡처하고 패킷을 수정하거나 사용하려는 것을 삭제하는 데 사용됩니다 nfq_set_verdict.

실제로 모든 것이 예상대로 작동합니다. 즉, 세 가지 프로토콜 유형 icmp, 즉 tcp패킷이 udp수정되고 다시 주입됩니다. 그런 다음 eth0 IP 주소를 소스 주소로 사용하여 인터넷 대기열에서 eth0을 종료합니다(MASQUERADE NAT 규칙 사용의 효과).
이는 다음을 제외한 모든 패킷에 해당됩니다. ICMP ping회신하다또는 TCP확인하다데이터 팩.
그들은 eth1 - 192.168.xx에 있는 LAN 장치의 개인 IP를 사용하여 인터넷으로 나가고 이 개인 소스 IP 주소를 사용하여 다른 쪽 끝에 도달합니다.

어떤 아이디어라도 가능합니다. 감사해요.

관련 정보