私は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チェーンで特定のタスクを実行する必要がある場合は、新しい質問をしてください。