IPTables転送とMASQが機能しない

IPTables転送とMASQが機能しない

私はVMシステムのトラフィック転送とNATを設定しようとしています。 2つのLinuxオペレーティングシステム(UbuntuやCENTOSなど)がある環境を設定しており、トラフィックをUbuntuからCENTOSに転送し、CENTOSの他のインターフェイスにNATする必要があります。 CENTOS で次の構成を見つけます。

ens33 :- Internal Interface
ens34 :- External Interface

CENTOSとUbuntuが接続されています(仮想マシンのホストアダプタ)。次の出力はCENTOS用です。

root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.16.251.2    0.0.0.0         UG    101    0        0 ens34
172.16.251.0    0.0.0.0         255.255.255.0   U     101    0        0 ens34
192.168.6.0     0.0.0.0         255.255.255.0   U     100    0        0 ens33

CENTOSのIPtablesで、次のトラフィック転送とNAT設定を完了しました。

*nat
:PREROUTING ACCEPT [1030:71552]
:INPUT ACCEPT [4:848]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A POSTROUTING -o eth34 -j MASQUERADE


*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [269:27758]
**-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT**
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
**-A FORWARD -i ens33 -o ens34 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i ens34 -o ens33 -j ACCEPT**
-A FORWARD -j REJECT --reject-with icmp-host-prohibited

cat /proc/sys/net/ipv4/ip_forward
1

UbuntuからCENTOSにトラフィックが転送されるトラフィックを確認しましたが、NATと転送が機能していないようです。

192.168.6.2(UbuntuシステムのIPアドレス)

03:54:20.331164 IP 192.168.6.2 > 8.8.8.8: ICMP echo request, id 34419, seq 791, length 64
03:54:21.339241 IP 192.168.6.2 > 8.8.8.8: ICMP echo request, id 34419, seq 792, length 64

答え1

FORWARD ルールで内部インターフェイスと外部インターフェイスを交換しました。設定で

-A FORWARD -i ens33 -o ens34 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i ens34 -o ens33 -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp-host-prohibited

ens33開こうとしている接続(Ubuntuシステムで仮定)からの着信パケットは、最初の行と一致します。ただし、接続は確立されず、パケットは最後の行で拒否されます。

あなたに必要なもの

-A FORWARD -i ens34 -o ens33 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i ens33 -o ens34 -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp-host-prohibited

または、次のプレースホルダを使用してシェルスクリプトを作成することをお勧めします。

INTIF=ens33
EXTIF=ens34
# flush rules
iptables -F FORWARD 
iptables -t nat -F
# rules
iptables -A FORWARD -i $EXTIF -o $INTIF -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i $INTIF -o $EXTIF -j ACCEPT
iptables -A FORWARD -j REJECT --reject-with icmp-host-prohibited
iptables -t nat -A POSTROUTING -o $EXTIF -j MASQUERADE
# more rules if required

その後、混乱することなくさまざまなインターフェースを使用してさまざまな状況で再利用できます。

INPUTチェーンで何をしたいのかわかりません。デバッグを簡素化するには、これらのルールをすべて削除することをお勧めします。これらのルールなしで配信が機能し、まだINPUTチェーンで特定のタスクを実行する必要がある場合は、新しい質問をしてください。

関連情報