iptables를 사용한 패킷의 선택적 NAT

iptables를 사용한 패킷의 선택적 NAT

192.168.254.0/24 서브넷의 대상 주소를 가진 패킷을 제외하고 iptables가 모든 패킷을 NAT하도록 하려면 어떻게 해야 합니까?

답변1

-d내가 당신을 잘 이해한다면, 부정 옵션을 사용하면 꽤 쉬울 것입니다 . 예를 들어, 다음과 같은 규칙이 있습니다.

$ iptables -A POSTROUTING ! -d 192.168.254.0/24 -j SNAT --to-source new_source_ip

물론 필요에 따라 규칙을 변경할 수 있습니다. 이는 표시된 서브넷을 제외한 모든 대상으로 향하는 모든 패킷의 소스 IP를 변경합니다.

답변2

제 생각에는 iptables 명령의 순서는 다음과 같습니다.

1. iptables -t nat -A POSTROUTING -s 192.168.254.0/24 -o eth0 -j RETURN
2. iptables -t nat -A POSTROUTING -s 0.0.0.0/0 -o eth0 -j MASQUERADE

규칙 1은 네트워크와 일치하고 가장하지 않습니다. 규칙 2는 모든 것을 가장하지만 일반적으로 0.0.0.0 와일드카드를 제공하는 것은 좋지 않습니다(작동할지 확실하지 않습니다). 위장하려는 모든 네트워크를 선택적으로 추가해야 하며 나머지는 위장되지 않습니다.

관련 정보