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 와일드카드를 제공하는 것은 좋지 않습니다(작동할지 확실하지 않습니다). 위장하려는 모든 네트워크를 선택적으로 추가해야 하며 나머지는 위장되지 않습니다.