2016-11-29 61 views
0

我們有Proxmox虛擬環境巫婆夫婦的虛擬機。主機服務器有多個外部IP地址。我們使用iptables將連接轉發到特定的外部IP +端口到選定的虛擬機。我們使用NAT來從VM發出連接。無法從iptables後面的本地網絡連接到外部IP NAT

到目前爲止一切正常。當虛擬機嘗試連接到主機外部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 - 虛擬機

的內部IP

10.0.0.1 - 內部的IP主機

回答

0
iptables -A POSTROUTING -t nat -s 10.0.0.0/16 -d 1.2.3.4 -j MASQUERADE 
+0

隱而不宣的工作無論是。我已經嘗試過類似的規則(只適用於所有虛擬機的-s 10.0.0.0/16) –

+0

然後使用iptables -A PREROUTING -t nat -s 10.0.0.0/16 -d 1.2.3.4 -j DNAT - 到10.0 .60.10'(錯誤) –

+0

這應該取代? -A PREROUTING -d 1.2.3.4/32 -p tcp -m tcp --dport 80 -j DNAT - 到目的地10.0.60.10:80 –

0

解決了!我錯在我身邊。

髮夾NAT這是工作的解決方案:

# === 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 -s 10.0.0.0/16 -d 10.0.0.0/16 -p tcp -j SNAT --to-source 10.0.0.1 
-A POSTROUTING -o vmbr0 -j SNAT --to-source 1.2.3.4 

COMMIT 
相關問題