Назад | Перейти на главную страницу

Понимание маршрутизации с двойным WAN

Хорошо, это может показаться немного запутанным, но я все же попытаюсь описать это: у меня в локальной сети есть два маршрутизатора, на которых выполняется настройка HA-CARP, подключенная к двум линиям DSL WAN. CARP работает по назначению: когда один модем DSL перестает работать, сетевой трафик автоматически маршрутизируется по второй резервной линии, и я появляюсь в Интернете с IP-номером второго модема.

Шлюз по умолчанию для доступа в Интернет через основной DSL - это 192.168.32.1, который является виртуальным IP-адресом для обоих pfsenses, подключенных через модем DSL на 192.168.13.1 к Интернету. Резервное соединение идет ко второму модему DSL на 192.168.23.1.

В случае сбоя CARP удается направить весь интернет-трафик через .23.1. Я тестировал оба, вытаскивая маршрутизатор pfsense и отключая модемы DSL.

Однако я почему-то не могу добраться до .23.1 из локальной сети в Нормальная операция, означает, что .13.1 обслуживает доступ в Интернет. Пакеты Traceroute всегда проходят через .13.1 в Интернет, но маршрутизатор знает, что доступ к .23.0 / 24 осуществляется через его интерфейс для резервной линии, и на маршрутизаторе я могу пинговать .23.1 только не из локальной сети.

Таблица маршрутизации на роутере

Internet:
Destination        Gateway            Flags     Netif Expire
default            192.168.13.1       UGS         re0
127.0.0.1          link#4             UH          lo0
192.168.13.0/24    link#1             U           re0 <- Default WAN
192.168.13.2       link#1             UHS         lo0 <- vIP for CARP
192.168.13.3       link#1             UHS         lo0 <- Real IP
192.168.23.0/24    link#2             U           re1 <- Backup WAN
192.168.23.2       link#2             UHS         lo0 <- vIP for CARP
192.168.23.3       link#2             UHS         lo0 <- Real IP
192.168.32.0/24    link#3             U           re2 <- LAN
192.168.32.1       link#3             UHS         lo0 <- vIP for CARP
192.168.32.2       link#3             UHS         lo0 <- Real IP

Проверка связи резервного модема с маршрутизатора межсетевого экрана .32.1:

ping 192.168.23.1
PING 192.168.23.1 (192.168.23.1): 56 data bytes
64 bytes from 192.168.23.1: icmp_seq=0 ttl=64 time=0.477 ms
64 bytes from 192.168.23.1: icmp_seq=1 ttl=64 time=0.509 ms

Traceroute из LAN отправляет пакеты через WAN по умолчанию в Интернет, где они умирают у моего провайдера

traceroute 192.168.23.1
traceroute to 192.168.23.1 (192.168.23.1), 30 hops max, 60 byte packets
 1  192.168.13.1 (192.168.13.1)  1.101 ms  1.087 ms  1.431 ms
 2  <some ISP IP number> (ISP IP number)  15.299 ms  15.883 ms  15.871 ms
 3  * * *

Я пробовал добавить маршрут на LAN-сервере, но это тоже не помогает

route add -net 192.168.23.0/24 gw 192.168.32.1
route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.32.1    0.0.0.0         UG    0      0        0 eno1
192.168.23.0    192.168.32.1    255.255.255.0   UG    0      0        0 eno1
192.168.32.0    0.0.0.0         255.255.255.0   U     0      0        0 eno1

Почему маршрутизатор пытается отправить все пакеты по маршруту по умолчанию, когда он действительно знает сеть 23.0 / 24 и ее интерфейс, который подключается к этой сети? Я думал, что рабочий процесс всегда похож на «загляните в таблицу маршрутизации, если вы знаете, как подключиться к сети, а если нет, используйте маршрут по умолчанию».

Подозреваю, что у клиентов есть 192.168.13.0/24 адреса. Это означает, что диапазон 192.168.23.0/24 будет рассматриваться как чужой, поэтому будет отправлен через шлюз по умолчанию (.13.). Если вам нужно, чтобы резервный маршрутизатор был управляемым, я бы предложил два варианта:

1) Поместите их в общую сеть, не нужно иметь .13. и .23.

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

Предлагаю просто объединить все устройства в один сегмент. В любом случае, это то, что представляет собой CARP. У вас не должно быть разных адресов для каждого резервного маршрутизатора.