우리는 Proxmox vitual environmenet 마녀의 가상 컴퓨터를 가지고 있습니다. 호스트 서버에는 여러 개의 외부 IP 주소가 있습니다. iptables를 사용하여 특정 외부 IP + 포트에 대한 연결을 선택한 가상 시스템에 전달합니다. 또한 VM에서 나가는 연결에 NAT를 사용합니다.iptables 뒤에있는 로컬 네트워크에서 외부 IP에 연결할 수 없습니다. NAT
지금까지 모든 것이 작동합니다. VM이 작동하지 않는 외부 IP 호스트에 연결하려고하면 문제가 발생합니다.
내가 아는 한은 머리핀 NAT (NAT 반영)입니다. 그러나 우리가 발견 한 지침에 따라 작동시킬 수는 없습니다.
우리의 iptables 규칙 :
# === FIREWALL ===
*filter
:INPUT ACCEPT [3174:1555907]
:FORWARD ACCEPT [2521:547542]
:OUTPUT ACCEPT [2753:2039466]
:fail2ban-ssh - [0:0]
# allow returnig packets
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# drop all other
-A INPUT -p tcp -d 1.2.3.4/32 -j DROP
COMMIT
# === NAT ===
*nat
:PREROUTING ACCEPT [140854:7345476]
:POSTROUTING ACCEPT [2635:170444]
:OUTPUT ACCEPT [25596:1617170]
# INCOMING
-A PREROUTING -d 1.2.3.4/32 -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.0.60.10:80
-A PREROUTING -d 1.2.3.4/32 -p tcp -m tcp --dport 443 -j DNAT --to-destination 10.0.60.10:443
-A PREROUTING -d 1.2.3.4/32 -p tcp -m tcp --dport 8080 -j DNAT --to-destination 10.0.60.20:80
# OUTGOING
-A POSTROUTING -d 10.0.60.10 -s 10.0.0.0/16 -p tcp --dport 80 -j SNAT --to 10.0.0.1
-A POSTROUTING -o vmbr0 -j SNAT --to-source 1.2.3.4
COMMIT
1.2.3.4 - 호스트
10.0.60.10, 10.0.60.20의 외부 IP - VM을
의 내부 IP를10.0.0.1 -의 내부 IP 호스트
아무튼 '작업. 나는 이미 비슷한 규칙을 시도했다 (모든 가상 머신에 대해 -s 10.0.0.0/16 만 사용). –
그런 다음'iptables -A PREROUTING -t nat -s 10.0.0.0/16 -d 1.2.3.4 -j DNAT - 10.0 .60.10' (실수로) –
대체해야합니까? -A PREROUTING -d 1.2.3.4/32 -p tcp -m tcp -dport 80 -j DNAT - 목적지 10.0.60.10:80 –