Добрый день. Вопрос с проброcoм портов.
iptables настроены таким образом что при обращении к серверу по внешнему ip, он транслирует запрос в локальную сеть на веб-сервер.
Теперь стоит задача - при запросе на внешний- ip_inet:port перенаправлять запрос на другой локальный веб-сервер ip_local:port.
Вроде делаю по мануалам, но при рестарте сетевых интерфейсов локальный не стартует и крашится с ошибкой.
Надеюсь что опытный взгляд опытных товарищей мне поможет. =)
enp2s0 - внешний интерфейс
enp3s0 - внутренний интерфейс
$IP_INET - ip внешнего интерфейса шлюза
$IP_GATEWAY ip локального интерфейса шлюза
$IP_LOCAL_1 - ip локального веб-сервера - 1
$IP_LOCAL_2 - ip локального веб-сервера - 2
iptables:
# Generated by iptables-save v1.6.0 on Sat Apr 28 10:40:15 2018
*nat
-A PREROUTING --dst $IP_INET -p tcp -j DNAT --to-destination $IP_LOCAL_1
-A PREROUTING --dst $IP_INET -p tcp --dport 8081 -j DNAT --to-destination $IP_LOCAL_1:8081
-I FORWARD 1 -i enp2s0 -o enp3s0 -d $IP_LOCAL_2 -p tcp -m tcp --dport 8081 -j ACCEPT
-A POSTROUTING -o enp2s0 -j MASQUERADE
-A POSTROUTING --dst $IP_LOCAL_1 -p tcp -j SNAT --to-source $IP_GATEWAY
#-A POSTROUTING --dst $IP_LOCAL_2 -p tcp --dport 8081 -j SNAT --to sourece $IP_GATEWAY
-A OUTPUT --dst $IP_INET -p tcp -j DNAT --to-destination $IP_LOCAL_1
-A OUTPUT --dst $IP_INET -p tcp --dport 8081 -j DNAT --to-destination $IP_LOCAL_2
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
COMMIT
# Completed on Sat Apr 28 10:40:15 2018
# Generated by iptables-save v1.6.0 on Sat Apr 28 10:40:15 2018
*filter
:INPUT ACCEPT [184:15331]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [192:16022]
COMMIT
# Completed on Sat Apr 28 10:40:15 2018
Ошибка в консоль:
root@giprogateway:/home/usergipro# /etc/init.d/networking restart
[....] Restarting networking (via systemctl): networking.serviceJob for networking.service failed because the control process exited with error code. See "systemctl status networking.service" and "journalctl -xe" for details.
failed!
Лог в journalctl
авг 15 11:46:04 giprogateway systemd[1]: Stopped Raise network interfaces.
авг 15 11:46:04 giprogateway systemd[1]: Starting Raise network interfaces...
авг 15 11:46:04 giprogateway ifup[11716]: iptables-restore v1.6.0: unknown option "--to-destination"
авг 15 11:46:04 giprogateway ifup[11716]: Error occurred at line: 5
авг 15 11:46:04 giprogateway ifup[11716]: Try `iptables-restore -h' or 'iptables-restore --help' for more information.
авг 15 11:46:04 giprogateway ifup[11716]: Failed to bring up enp3s0.
авг 15 11:46:04 giprogateway named[1032]: received control channel command 'reconfig'
авг 15 11:46:04 giprogateway named[1032]: loading configuration from '/etc/bind/named.conf'
авг 15 11:46:04 giprogateway named[1032]: reading built-in trusted keys from file '/etc/bind/bind.keys'
авг 15 11:46:04 giprogateway named[1032]: configuring command channel from '/etc/bind/rndc.key'
авг 15 11:46:04 giprogateway named[1032]: configuring command channel from '/etc/bind/rndc.key'
авг 15 11:46:04 giprogateway named[1032]: couldn't add command channel ::1#953: address not available
авг 15 11:46:04 giprogateway named[1032]: address not available resolving './DNSKEY/IN': 2001:500:3::42#53
авг 15 11:46:04 giprogateway named[1032]: address not available resolving './NS/IN': 2001:500:3::42#53
авг 15 11:46:04 giprogateway named[1032]: reloading configuration succeeded
авг 15 11:46:04 giprogateway named[1032]: any newly configured zones are now loaded
авг 15 11:46:04 giprogateway systemd[1]: networking.service: Main process exited, code=exited, status=1/FAILURE
авг 15 11:46:04 giprogateway systemd[1]: Failed to start Raise network interfaces.
авг 15 11:46:04 giprogateway systemd[1]: networking.service: Unit entered failed state.
авг 15 11:46:04 giprogateway systemd[1]: networking.service: Failed with result 'exit-code'.