가상화 IPTables 규칙

가상화 IPTables 규칙

아직까지 이에 대한 해결책을 찾지 못했습니다. 저는 IPTables에 대한 경험이 많지 않으므로 귀하가 제공할 수 있는 지원에 감사하겠습니다.

거기에 몇 개의 VM이 있는 서버가 있습니다. 기본 노드에는 원격 IP와 서브넷이 있습니다. 각 VM은 Linux 가상화 및 라우팅된 네트워크를 사용하여 생성되고 로컬 IP가 할당됩니다. 그런 다음 IP 테이블을 사용하여 전용 원격 IP의 모든 트래픽을 로컬 IP로 전달하여 원격 IP를 할당합니다. 이는 대부분 작동하는 것으로 보이지만 각 VM에서 전송되는 모든 트래픽은 VM에 전달한 원격 IP가 아닌 노드 기본 IP에서 나오는 것 같습니다.

내 IPTables 규칙은 다음과 같습니다.

iptables -t nat -A POSTROUTING -s 192.168.123.0/24 ! -d 192.168.123.0/24 -j MASQUERADE

iptables -A FORWARD -d 192.168.123.0/24 -o virbr1 -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A FORWARD -s 192.168.123.0/24 -i virbr1 -j ACCEPT iptables -A FORWARD -i virbr1 -o virbr1 -j ACCEPT

그런 다음 각 VM에 대해 다음을 수행합니다.

iptables -t nat -A PREROUTING -d {Their-remote-IP} -j DNAT --to-destination 192.168.123.3
iptables -A FORWARD -p tcp -d 192.168.123.3 -m state --state NEW,ESTABLISHED,RELATED -j   ACCEPT
iptables -A FORWARD -m udp -p udp -d 192.168.123.3 -j ACCEPT
iptables -A FORWARD -m icmp -p icmp -d 192.168.123.3 -j ACCEPT

예시 설정

Primary Node IP: X.X.X.172
Additional IP X.X.X.173 1 (NATed to VM 1) to local address 192.168.123.2
Additional IP X.X.X.174 1 (NATed to VM 2) to local address 192.168.123.3
Additional IP X.X.X.175 1 (NATed to VM 3) to local address 192.168.123.4

그러나 VM의 모든 아웃바운드 트래픽은 XXX172를 통해 나갑니다.

귀하가 제공할 수 있는 모든 제안은 대단히 감사하겠습니다.

답변1

그것이 바로 그 일 MASQUERADE입니다. 원래 소스 주소를 패킷이 나가려는 인터페이스의 주소로 대체합니다. 원래 주소를 유지하려면 매스커레이딩을 사용하지 마세요.

관련 정보