iptables는 모든 트래픽을 2개의 다른 인터페이스로 전달합니다.

iptables는 모든 트래픽을 2개의 다른 인터페이스로 전달합니다.

저는 현재 dnsmasq를 사용하여 DHCP 및 DNS 캐싱 서버 역할을 하는 작은 Debian 상자를 만들고 있습니다. 현재로서는 2개의 인터페이스(eth0, eth1)만 있습니다. 하나는 내 WAN(eth0)에 연결되고 다른 하나는 내 LAN(eth1)에 연결되어 IP를 할당합니다.

NIC 간에 트래픽을 전달하기 위해 다음과 같이 iptables를 설정했습니다.

iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
iptables --append FORWARD --in-interface eth1 -j ACCEPT

그런 다음 iptables-persist를 사용하여 규칙을 수정했습니다.

새 NIC(eth2)를 설치하고 dnsmasq를 구성했으므로 이제 2개의 서브넷이 있습니다. 나는 다음을 추가했다:

iptables --append FORWARD --in-interface eth2 -j ACCEPT

효과가있다. iptables-percious를
정리 /etc/iptables/rules.v4하고 다시 설치했는데 /etc/iptables/rules.v4를 편집했을 때 구성 파일에 eth2의 흔적이 없었습니다.

문제는 작동한다는 것인데, 내가 뭘 잘못하고 있는 걸까요?

답변1

/etc/iptables/rules.v4명령을 실행할 때 업데이트되지 않으므로 iptables직접 업데이트해야 합니다. 예를 들면 다음과 같습니다.

iptables-save > /etc/iptables/rules.v4

관련 정보