URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 94412
[ Назад ]

Исходное сообщение
"Equal cost multipath в Linux"

Отправлено justadmin , 27-Фев-13 00:36 
Никак не выходит настроить ECMP. Я или не понимаю алгоритм, или что-то не так делаю.
Подскажите пожалуйста?

Есть хост X. От него до хоста Y висит два ipip tunnel'а.

Со стороны хоста Х это выглядит так:

tun0      Link encap:IPIP Tunnel    
          inet addr:10.10.254.5  P-t-P:10.10.254.6


tun1      Link encap:IPIP Tunnel    
          inet addr:10.10.254.9  P-t-P:10.10.254.10

Вторая сторона тоннеля с хоста X (т.е. адреса 254.6 и 254.10) пингуются, и все хорошо.

Теперь представим что за хостом Y есть подсеть 192.168.0.0/24.

Пишу на хосте Х: ip route add 192.168.0.0/24 via 10.10.254.6 - хосты в 192.168.0.0 пингуются.
Меняю  на via 254.10 - тоже пингуется. Все хорошо. Оба тоннеля в порядке.

Теперь удаляем все маршруты на 192.168.0.0 и делаем так:

ip route add 192.168.0.0/24 nexthop via 10.10.254.10 nexthop via 10.10.254.6

В ip route sh наблюдаю:
192.168.0.0/24
    nexthop via 10.10.254.10  dev tun1 weight 1
    nexthop via 10.10.254.6  dev tun0 weight 1

И судя по всем документациям которые я нашел - должен включится Equal cost multi-path и траффик с хоста Х на сеть 192.168.0.0/0 должен ходить поочередно о обоим тоннелям.
Делаю пинг - хрен. Идет только по одному. Вижу в tcpdump.
Ядро скомпилено с поддержкой multipath. Пигую разные хосты - все равно идет по одному тоннелю. Ничего другого на сервере не настроено, ничего мешать не может.

ЧЯДНТ?


Содержание

Сообщения в этом обсуждении
"Equal cost multipath в Linux"
Отправлено Z0termaNN , 27-Фев-13 10:19 
это нормально. скорее всего ecmp распихивает трафик по интерфейсам
на основе некоего хэша (src,dst,sport,dport и пр.), так что каждая
сессия будет идти только по одному физическому интерфейсу и соответственно
для сессии суммарную скорость для двух интерфейсов никак не получится.
А в общем трафик достаточно равномерно размазывается по интерфейсам.

"Equal cost multipath в Linux"
Отправлено Miha , 28-Фев-13 00:27 
> это нормально. скорее всего ecmp распихивает трафик по интерфейсам
> на основе некоего хэша (src,dst,sport,dport и пр.), так что каждая
> сессия будет идти только по одному физическому интерфейсу и соответственно
> для сессии суммарную скорость для двух интерфейсов никак не получится.
> А в общем трафик достаточно равномерно размазывается по интерфейсам.

Я думаю, что ваше суждение будет правильно для "сессионных" протоколов, например ТСР. А вот пинг должен распределяться по направлениям с учетом весов.
У меня Equal cost multipath работает на FreeBSD.


"Equal cost multipath в Linux"
Отправлено Z0termaNN , 28-Фев-13 10:42 
>> это нормально. скорее всего ecmp распихивает трафик по интерфейсам
>> на основе некоего хэша (src,dst,sport,dport и пр.), так что каждая
>> сессия будет идти только по одному физическому интерфейсу и соответственно
>> для сессии суммарную скорость для двух интерфейсов никак не получится.
>> А в общем трафик достаточно равномерно размазывается по интерфейсам.
> Я думаю, что ваше суждение будет правильно для "сессионных" протоколов, например ТСР.
> А вот пинг должен распределяться по направлениям с учетом весов.
>  У меня Equal cost multipath работает на FreeBSD.

даже спорить не буду, можно самому попробовать или посмотреть код в ядре.
и да - это совсем не freebsd.



"Equal cost multipath в Linux"
Отправлено McLeod095 , 27-Фев-13 18:54 
>[оверквотинг удален]
>  nexthop via 10.10.254.10  dev tun1 weight 1
>  nexthop via 10.10.254.6  dev tun0 weight 1
> И судя по всем документациям которые я нашел - должен включится Equal
> cost multi-path и траффик с хоста Х на сеть 192.168.0.0/0 должен
> ходить поочередно о обоим тоннелям.
> Делаю пинг - хрен. Идет только по одному. Вижу в tcpdump.
> Ядро скомпилено с поддержкой multipath. Пигую разные хосты - все равно идет
> по одному тоннелю. Ничего другого на сервере не настроено, ничего мешать
> не может.
> ЧЯДНТ?

А после того как прописали
ip route add 192.168.0.0/24 nexthop via 10.10.254.10 nexthop via 10.10.254.6
выполнили команду
ip route flush
если нет то плохо Вы читали доки.


"Equal cost multipath в Linux"
Отправлено John , 27-Фев-13 21:05 
> А после того как прописали
> ip route add 192.168.0.0/24 nexthop via 10.10.254.10 nexthop via 10.10.254.6
> выполнили команду
> ip route flush
> если нет то плохо Вы читали доки.

Не обижайтесь, но Вы её тоже не очень читали.
Выполнение
ip route flush
приведет к _удалению_ всех маршрутов (с практически 100% необходимостью перезагрузки)

Вохможно, Вы имели ввиду
ip route flush cache


"Equal cost multipath в Linux"
Отправлено McLeod095 , 27-Фев-13 22:05 
>[оверквотинг удален]
>> ip route add 192.168.0.0/24 nexthop via 10.10.254.10 nexthop via 10.10.254.6
>> выполнили команду
>> ip route flush
>> если нет то плохо Вы читали доки.
> Не обижайтесь, но Вы её тоже не очень читали.
> Выполнение
> ip route flush
> приведет к _удалению_ всех маршрутов (с практически 100% необходимостью перезагрузки)
> Вохможно, Вы имели ввиду
> ip route flush cache

Именно это и имел ввиду, писал по памяти, а делал такое года 4 назад.


"Equal cost multipath в Linux"
Отправлено ALex_hha , 28-Фев-13 00:27 
я бы еще подкрутил /proc/sys/net/ipv4/route/secret_interval



"Equal cost multipath в Linux"
Отправлено justadmin , 28-Фев-13 21:28 
Да, пинги действительно должны распределятся по обоим каналам.
Я это лично видел в подобной конфигурации, тоже на линуксе.

И нет - сброс кеша я не делал. Уже не следующий день тоже нашел это в доке :)
Судя по всему дело в нем.
Проверю - отпишусь.

Всем спасибо!


"Equal cost multipath в Linux"
Отправлено Roman , 22-Июн-21 17:33 
> Да, пинги действительно должны распределятся по обоим каналам.
> Я это лично видел в подобной конфигурации, тоже на линуксе.
> И нет - сброс кеша я не делал. Уже не следующий день
> тоже нашел это в доке :)
> Судя по всему дело в нем.
> Проверю - отпишусь.
> Всем спасибо!

Ну как успехи?