Конфигурация нескольких провайдеров linux nat

У меня есть Linux-сервер, который служит маршрутизатором / брандмауэром и к которому подключены 2 интернет-провайдера. Я бы хотел с его помощью сделать распределение нагрузки с аварийным переключением. Я сделал это много лет назад, и это было довольно просто - просто добавьте 2 таблицы маршрутизации для 2 соединений, а затем используйте 2 маршрута по умолчанию с требуемым весом:

 ip route add default scope global nexthop via 1.2.3.4 dev dev100 weight 10

И тогда Linux будет случайным образом добавлять маршруты в кеш, разделяя соединения между ссылками. .

Но теперь я обнаружил, что он больше не работает с linux 3.16, и больше нет кеша маршрутов, и все мои старые скрипты не работают, и я не могу установить соединение.

Моя конфигурация:

-------------
- ip route list table prov1
default via 217.147.175.129 dev eth1
46.164.150.48/29 dev eth2  scope link  src 46.164.150.51
127.0.0.0/8 dev lo  scope link
172.16.0.0/16 dev br0  scope link  src 172.16.1.1
217.147.175.128/25 dev eth1  scope link  src 217.147.175.165
-------------
- ip route list table prov2
default via 46.164.150.49 dev eth2
46.164.150.48/29 dev eth2  scope link  src 46.164.150.51
127.0.0.0/8 dev lo  scope link
172.16.0.0/16 dev br0  scope link  src 172.16.1.1
217.147.175.128/25 dev eth1  scope link  src 217.147.175.165
-------------
- ip route list table main
default
        nexthop via 217.147.175.129  dev eth1 weight 10
        nexthop via 46.164.150.49  dev eth2 weight 10
46.164.150.48/29 dev eth2  proto kernel  scope link  src 46.164.150.51
172.16.0.0/16 dev br0  proto kernel  scope link  src 172.16.1.1
176.37.229.77 via 217.147.175.129 dev eth1
195.12.244.0/22 via 217.147.175.129 dev eth1
213.248.127.0/24 via 217.147.175.129 dev eth1
217.147.175.128/25 dev eth1  proto kernel  scope link  src 217.147.175.165
239.0.0.0/8 dev br0  scope link
--------------
- ip route list table default
--------------------
- ip rule list
0:      from all lookup local
32756:  from all fwmark 0xb iif br0 lookup prov2
32757:  from all fwmark 0xa iif br0 lookup prov1
32758:  from 46.164.150.51 lookup prov2
32760:  from 217.147.175.165 lookup prov1
32766:  from all lookup main
32767:  from all lookup default

 cat /etc/iproute2/rt_tables
#
# reserved values
#
255     local
254     main
253     default
0       unspec
#
# local
#
#1      inr.ruhep
10       prov1
11       prov2

Но с этой конфигурацией все работает нормально с самого хоста, но не работает для IP-адресов с NAT за этим хостом. Чтобы быть более конкретным, то, что я вижу на хосте с NAT:

vik@Pro:~ $ ping 193.193.193.100
PING 193.193.193.100 (193.193.193.100): 56 data bytes
64 bytes from 193.193.193.100: icmp_seq=0 ttl=59 time=3.737 ms
64 bytes from 193.193.193.100: icmp_seq=1 ttl=59 time=4.198 ms
64 bytes from 193.193.193.100: icmp_seq=2 ttl=59 time=3.934 ms
Request timeout for icmp_seq 3
64 bytes from 193.193.193.100: icmp_seq=4 ttl=60 time=3.650 ms
64 bytes from 193.193.193.100: icmp_seq=5 ttl=60 time=3.616 ms
Request timeout for icmp_seq 6
64 bytes from 193.193.193.100: icmp_seq=7 ttl=60 time=3.509 ms
64 bytes from 193.193.193.100: icmp_seq=8 ttl=60 time=3.417 ms
64 bytes from 193.193.193.100: icmp_seq=9 ttl=60 time=3.635 ms
Request timeout for icmp_seq 10

Как вы можете заметить, много пакетов было просто потеряно. И хосты за этим Linux-маршрутизатором не могут открывать веб-страницы и т. Д. - соединение просто разрывается: Пожалуйста, помогите)

2
задан 2 September 2016 в 01:55
1 ответ

Похоже, что потеря пакета происходит, когда пакеты возвращаются не по исходному маршруту. IP-маршрутизация не имеет состояния. Я думаю, вы можете перейти по этой ссылке , чтобы заархивировать двойной WAN.

0
ответ дан 3 December 2019 в 14:21

Теги

Похожие вопросы