2016-11-29 16 views
0

私たちは、Proxmoxの仮想環境の魔法使いの仮想マシンをいくつか持っています。ホストサーバーには、複数の外部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 - ホストの外部IP

10.0.60.10、10.0.60.20 - 仮想マシン

10.0.0.1の内部IPアドレス - の内部IPホスト

答えて

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

のdoesnの仕事。私は既に同様のルールを試しました(すべての仮想マシンに対して-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 
関連する問題