Привет


Есть машина, на которой поднята пара соединений с OVPN серверами.


При направлении трафика в одно из них всё работает хорошо.


default via vpn-gateway-1-ip \ default via vpn-gateway-2-ip


Если же я добавляю в схему маршрутизации второе, через nexthop, – возникают проблемы.


scope global default
nexthop via vpn-gateway-1-ip weight 1
nexthop via vpn-gateway-2-ip weight 1


Под проблемами подразумеваю то, что при пинге какого-либо ресурса возвращаются лишь чётные пакеты


$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=2 ttl=119 time=271 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=119 time=271 ms
64 bytes from 8.8.8.8: icmp_seq=6 ttl=119 time=271 ms
64 bytes from 8.8.8.8: icmp_seq=8 ttl=119 time=271 ms
64 bytes from 8.8.8.8: icmp_seq=10 ttl=119 time=271 ms
^C
--- 8.8.8.8 ping statistics ---
11 packets transmitted, 5 received, 54,5455% packet loss, time 10079ms
rtt min/avg/max/mdev = 270.648/270.672/270.691/0.016 ms


либо же они вообще могут не вернуться


$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=2 ttl=119 time=270 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=119 time=270 ms
64 bytes from 8.8.8.8: icmp_seq=6 ttl=119 time=271 ms
64 bytes from 8.8.8.8: icmp_seq=8 ttl=119 time=279 ms
^C
--- 8.8.8.8 ping statistics ---
8 packets transmitted, 4 received, 50% packet loss, time 7067ms
rtt min/avg/max/mdev = 270.264/272.631/279.198/3.793 ms
$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=2 ttl=119 time=271 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=119 time=270 ms
^C
--- 8.8.8.8 ping statistics ---
4 packets transmitted, 2 received, 50% packet loss, time 3026ms
rtt min/avg/max/mdev = 270.292/270.453/270.615/0.161 ms
$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=119 time=271 ms
^C
--- 8.8.8.8 ping statistics ---
29 packets transmitted, 1 received, 96,5517% packet loss, time 28627ms
rtt min/avg/max/mdev = 270.649/270.649/270.649/0.000 ms


Ресурсы по http(-s) открываются по своему усмотрению.


Например, морда гугла может открыться и запросы на его сервера будут проходить. Но не все используемые на странице гуглом ресурсы будут доступны, что приведёт к «бесконечной» загрузке.


Яндекс и абсолютное большинство из других проверенных мной ресурсов недоступны.


Нашёл информацию о том, что линь умеет то что мне нужно из коробки с версии ядра >= 4.4 линк


IPv4: Hash-based multipath routing. When the routing cache was removed in 3.6, the IPv4 multipath algorithm changed from more or less being destination-based into being quasi-random per-packet scheduling. This increased the risk of out-of-order packets and made it impossible to use multipath together with anycast services. In this release, the multipath routing implementation is replaced with a flow-based load balancing based on a hash over the source and destination addresses merge commit


Однако в одном из ответов к вопросу на https://unix.stackexchange.com/ человек написал, что этот способ балансировки подойдёт лишь в том случае, если выходной адрес балансируемых интерфейсов будет одинаков. Например, два канала под одним и тем же айпишником.


Ищу помощь. Подскажите куда посмотреть, где копнуть. Может кто-нибудь уже решал подобную проблему? Подходит ли для решения вопроса nexthop?









 , , , ,






URL записи