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

2 туннеля VPN через 2 независимых подключения и маршрутизация

Раньше у нас был 1 туннель VPN через 1 подключение к Интернету, соединяющий 2 центра обработки данных в 1 виртуальную локальную сеть (10.x.x.x). Это было очень просто с таблицами маршрутов и т. Д.

Теперь, когда мы добавили еще один туннель ко второму независимому физическому соединению, становится очень сложно обрабатывать маршрутизацию. Достаточно легко маршрутизировать все новое соединение, но что, если мы хотим маршрутизировать только определенный хост на хост или подсеть в подсеть ??

e.g.  
client1-site1 <--> vpn-on-site1 <--tun1--> vpn-on-site2 <--> service1-on-site2  
client2-site1 <--> vpn-on-site1 <--tun2--> vpn-on-site2 <--> service2-on-site2

Обратите внимание, что на каждой стороне есть только 1 узел vpn. Что нам удается сделать, так это обеспечить правильную маршрутизацию пакетов от client2-site1 к service2-on-site2, но возвращаемые пакеты иногда попадают в tun1 ...

вам нужны правила ip + iptables и таблицы маршрутизации ip. 2 таблицы маршрутов:

1st -- with default output via tun1. 
2nd -- with default output via tun2.

Когда пакет получен на tun1 -> iptables mangle, отметьте его как 0x1, затем правило ip направляет его через отметку 0x1 в 1-ю таблицу маршрутизации. Таким образом, когда будет дан ответ, пакет будет идти через интерфейс, который был получен, а не по умолчанию.

Такая же логика для tun2.

Я не знаю, поможет ли это, но попробуйте также с rp_filter = 0 (получен этот вариант ядра для ответа на интерфейсный пакет, помогает с LAN)

Я сделал что-то подобное, вот статья, которую я нашел и перепечатал о моем старом lj. Источник пока не нашел.

проверьте эту статью, я репостил на lj