홈 네트워크 라우터로서의 CentOS: IPTables 포트 전달 실패

홈 네트워크 라우터로서의 CentOS: IPTables 포트 전달 실패

현재 CentOS 6.6이 설치된 홈 서버가 설치되어 있습니다. 서버에는 라우터와 DHCP 서버로 사용하는 두 개의 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

여러 기사를 읽었지만 여전히 문제가 무엇인지 알 수 없으므로 도움을 주시면 대단히 감사하겠습니다. 이 구성을 사용하는 모든 장치는 인터넷에 액세스할 수 있습니다.

추신: 내 질문은 위에 굵게 표시되어 있습니다. 혹시 놓친 경우를 대비해 다시 한 번 말씀드리겠습니다.

장치 1에서 실행 중인 Counter-Strike 서버를 인터넷(장치 1에는 고정 IP가 할당되어 있음)에 노출시키기 위해 포트 27015(및 몇 가지 다른 포트)를 전달하려고 하는데 작동하지 않습니다.

관련 정보