Никак не выходит настроить 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. Пигую разные хосты - все равно идет по одному тоннелю. Ничего другого на сервере не настроено, ничего мешать не может.
ЧЯДНТ?