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

Как добиться переключения при отказе с сохранением состояния при использовании нескольких восходящих каналов?

У меня есть несколько линий ISP, по которым я балансирую сетевой трафик на моем Linux-компьютере с несколькими интерфейсами (eth0, eth1, eth2, eth3). Я делаю это, создавая таблицы маршрутизации и правила, которые к ним применяются.

Соединения распределяются в соответствии с этими правилами, и достигается балансировка сетевого трафика. Теперь меня беспокоит отказ. В случае сбоя одного из каналов все установленные на нем соединения теряются, и их необходимо восстановить. Это не то, что я хочу. Я хочу, чтобы эти соединения переместились на другие активные каналы без необходимости повторного установления в случае сбоя канала (переключение с отслеживанием состояния).

Как мне этого добиться? Могут ли помочь инструменты conntrack?

Это невозможно, если все компьютеры во внутренней сети не имеют общедоступных IP-адресов.

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

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

В том маловероятном случае, если все ваши компьютеры имеют общедоступные IP-адреса, протоколы маршрутизации позаботятся о том, чтобы трафик направлялся через новые ссылки.