2 провайдера + nat + проброс портов
Добрый день. Столкнулся с небольшой проблемой. Тема уже поднималась и неоднократно, однако я не вижу способа побороть проблему. Прочитал http://www.opennet.ru/docs/RUS/LARTC/ не помогло(( Имею шлюз со статическими ip-адресами от двух различных провайдеров и один интерфейс для локальной сети. Внутри локальной сети имеется сервер который надо опубликовать наружу через 2-х провайдеров. Написал скрипт для изменения маршрутов:
#!/bin/env bash
# Интерфейс внутренней сети
IP_LOCAL="a.a.a.15"
IF_LOCAL="eth0"
NET_LOCAL="a.a.a.0/24"
# Интерфейс внешней сети от провайдера 1
IP_INET1="x.x.x.157"
IF_INET1="eth1"
NET_INET1="x.x.x.152/29"
GW1="x.x.x.153"
# Интерфейс внешней сети от провайдера 2
IP_INET2="y.y.y.180"
IF_INET2="eth3"
NET_INET2="y.y.y.176/28"
GW2="y.y.y.177"
ip route flush table P1
ip route flush table P2
ip rule delete table P1
ip rule delete table P2
ip route add $NET_INET1 dev $IF_INET1 src $IP_INET1 table P1
ip route add $NET_LOCAL dev $IF_LOCAL table P1
ip route add $NET_INET2 dev $IF_INET2 table P1
ip route add 127.0.0.0/8 dev lo table P1
ip route add default via $GW1 table P1
ip route add $NET_INET2 dev $IF_INET2 src $IP_INET2 table P2
ip route add $NET_LOCAL dev $IF_LOCAL table P2
ip route add $NET_INET1 dev $IF_INET1 table P2
ip route add 127.0.0.0/8 dev lo table P2
ip route add default via $GW2 table P2
ip route del default
ip route add default via $GW2
ip rule add from $IP_INET1 table P1
ip rule add from $IP_INET2 table P2
ip route flush cache
iptables -t nat -A PREROUTING -d $IP_INET2 -p tcp --dport 443 -j DNAT --to-destination a.a.a.5:443
Внутренний ресурс доступен только с первого провайдера