Я пытаюсь использовать TCP Anycast без дополнительных протоколов для подключения одного клиента к одному из нескольких хостов с одним и тем же IP anycast.
Моя топология выглядит следующим образом:
сервер в середине-Это машина Ubuntu, предоставляющая два маршрута для адреса anycast.
Моя конфигурация многопутевой маршрутизации (на маршрутизаторе):
`10.11.12.13 proto static
nexthop via 192.168.2.1 dev enp0s9 weight 1
nexthop via 192.168.3.1 dev enp0s10 weight 1`
адрес anycast 10.11.12.13
и assinged к локальная петля двух маршрутизаторов на правой стороне.
На левой стороне находится клиент с маршрутизатором в центре в качестве шлюза по умолчанию.
Сценарий 1: маршрутизатор в середине начинает сеанс tcp с адресом anycast в качестве назначения.
Сценарий 2: Клиент слева запускает сеанс tcp с адресом anycast в качестве назначения.
наблюдения:
при запуске tcp сессии с маршрутизатора (ubuntu linux), все работает по желанию. Пакет SYN с равной вероятностью пересылается по одному из прыжков. Когда сеанс установлен, все пакеты этого сеанса проходят через тот же переход, сохраняя соединение живым (успешная многопутевая маршрутизация на основе потока).
проблема возникает в сценарии 2, Когда я пытаюсь установить сеанс tcp от клиента в 192.168.1.1 / 24. Роутер всегда отправляет пакеты только один из узлов (один с ИС-суффикс 3.1). Если я принимаю соединение eth2 к этому хосту вниз, маршрутизатор вперед пакеты ко второму хосту. Но при вводе для eth2 обратно, соединение переключается на узел 3.1 приводит к связи между клиентом и хостом на суффикс 2.1.
Я могу разместить только одну ссылку на видео, поэтому вот видео, показывающее, как это выглядит с точки зрения клиента:https://youtu.be/kthYK9uEwvM
Обратите внимание, как tcp SYN от клиента получает всегда перенаправляется на хост с суффиксом 3.1 (нижний правый угол).
разъемы:
Маршрутизатор: верхний левый, заказчик: внизу слева, узел 2.1: верхний правый, узел 3.1: внизу справа.
моя версия ядра является ядром Linux 4.4.
Сеанс tcp устанавливается с помощью netcat (сервер) и telnet(клиент).
изменение веса nexthops также влияет только на маршрутизацию от маршрутизатора (192.168.1.254 > 10.11.12.13).
почему маршрутизатор SYN-пакет diffrent, когда пакет отправляется от клиента, чем когда он отправляется с самого маршрутизатора?
Спасибо за вашу помощь!