ホームネットワークルーターとしてのCentOS:IPTablesポート転送に失敗する

ホームネットワークルーターとしてのCentOS:IPTablesポート転送に失敗する

現在、CentOS 6.6がインストールされているホームサーバーがインストールされています。サーバーには、ルーターと DHCP サーバーとして使用する 2 つの NIC インターフェースがあります。次の図は、ネットワークトポロジを示しています。

ホームネットワークトポロジ このトポロジは特定のポート転送なしで機能しますが、特定のポートを特定のデバイスに転送することは機能しません。例えば、デバイス1で実行されているCounter-Strikeサーバーをインターネット(デバイス1には固定IPが割り当てられている)に公開するためにポート27015(およびいくつかの他のポート)を転送しようとしても機能しません。

次の構成では、機能しない理由についての洞察を得ることができます。この問題を解決するために、MACとIPアドレスを偽造しました。

/etc/sysconfig/network-scripts/ifcfg-eth0 (モデムに接続されたネットワークカード):

DEVICE=eth0
HWADDR=00:11:22:33:44:55
TYPE=Ethernet
UUID=aaaaaaaa-bbbb-cccc-dddd-eeeeffff0000
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=dhcp

/etc/sysconfig/network-scripts/ifcfg-eth1 (スイッチに接続されたネットワークカード):

DEVICE=eth1
TYPE=Ethernet
UUID=11111111-2222-3333-4444-555566667777
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=none
HWADDR=aa:bb:cc:dd:ee:ff
IPADDR=192.168.1.1
NETMASK=255.255.255.0

/etc/sysconfig/iptables:

*nat
:PREROUTING ACCEPT [3:653]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:DOCKER - [0:0]
-A PREROUTING -i eth0 -p tcp -m tcp --dport 1200 -j DNAT --to-destination 192.168.1.101:1200 
-A PREROUTING -i eth0 -p udp -m udp --dport 1200 -j DNAT --to-destination 192.168.1.101:1200 
-A PREROUTING -i eth0 -p tcp -m tcp --dport 3478 -j DNAT --to-destination 192.168.1.101:3478 
-A PREROUTING -i eth0 -p udp -m udp --dport 3478 -j DNAT --to-destination 192.168.1.101:3478 
-A PREROUTING -i eth0 -p tcp -m tcp --dport 4379:4380 -j DNAT --to-destination 192.168.1.101:4379-4380 
-A PREROUTING -i eth0 -p udp -m udp --dport 4379:4380 -j DNAT --to-destination 192.168.1.101:4379-4380 
-A PREROUTING -i eth0 -p tcp -m tcp --dport 27000:27050 -j DNAT --to-destination 192.168.1.101:27000-27050 
-A PREROUTING -i eth0 -p udp -m udp --dport 27000:27050 -j DNAT --to-destination 192.168.1.101:27000-27050 
-A POSTROUTING -o eth0 -j MASQUERADE 
COMMIT
*filter
:INPUT ACCEPT [5:1091]
:FORWARD ACCEPT [1:48]
:OUTPUT ACCEPT [1:330]
-A FORWARD -p tcp -m tcp --dport 27015 -j ACCEPT 
-A FORWARD -p udp -m udp --dport 27015 -j ACCEPT 
COMMIT

$route -n(10.8.xxでは何でも無視できます。Dockerに関連しています)

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.8.0.2        0.0.0.0         255.255.255.255 UH    0      0        0 tun0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1
10.8.0.0        10.8.0.2        255.255.255.0   UG    0      0        0 tun0
111.111.32.0      0.0.0.0         255.255.224.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1003   0        0 eth1
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
0.0.0.0         111.111.32.1      0.0.0.0         UG    0      0        0 eth0

いくつかの記事を読んでいますが、まだ問題が何であるかわからないので、助けてくれてありがとう。この構成を使用するすべてのデバイスはインターネットにアクセスできます。

PS:私の質問は上に太字で表示されています。もし逃した場合に備えてもう一度申し上げます。

デバイス1で実行されているCounter-Strikeサーバーをインターネット(デバイス1には固定IPが割り当てられている)に公開するためにポート27015(およびいくつかの他のポート)を転送しようとしても機能しません。

ベストアンサー1

おすすめ記事