LINUX.ORG.RU
ФорумAdmin

Объединение 2 шлюзов FreeBSD через OpenVPN в несколько экземпляров

 , ,


0

1

Приветствую. Возникла задача - объединить 2 шлюза. Реализовал посредством туннеля OpenVPN с шифрованием. Скорость, мягко говоря, не блещет. В интернетах находил указание на то, что можно объединить несколько запущенных экземпляров в 1 виртуальный интерфейс, чтобы поднять общую пропускную способность. Аналог bonding на FreeBSD LAGG. На текущий момент имею - запущено 2 tap-интерфейса на разных портах, объединяю оба tap в LAGG, всё это без ошибок(не могу проверить пашет ли LAGG). Как быть с клиентской стороной?

Как быть с клиентской стороной?

Что-то мешает аналогично на клиентской стороне объединить два tap?

mky ★★★★★
()

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

С другой стороны, в сам OpenVPN я слабо верю - идея хорошая, но реализация страдает из-за постоянных context switching'ов между ядром и userspace (демон в пользовательском режиме работает).

nickleiten ★★★
()

Один экземпляр OpenVPN упрётся в одно ядро процессора, плюс ещё и шифрование. Запусти несколько экземпляров и сделай поверх них бондинг. Олсо, IPSec у нас показал лучшие результаты в такой ситуации, чем OpenVPN.

Upd. а, до бондинга ты сам дошёл. Тогда что ты подразумеваешь под «клиентом»? Два шлюза, между ними несколько тоннелей (IPSec или OpenVPN), поверх этих тоннелей делаешь виртуальный тоннель, то бишь бондинг, он на обеих сторонах настраивается, иначе не работает.

tiandrey ★★★★★
()
Последнее исправление: tiandrey (всего исправлений: 1)
Ответ на: комментарий от tiandrey

поднял 2 tap-соединения между клиентом и сервером, траффик шел только через один tap-интерфейс, объединил в LAGG - вообще перестало ходить. Куда копать?

repsac1987
() автор топика
Ответ на: комментарий от tiandrey

настраиваю GRE+IPSec в качестве альтернативы, но хочется это всё-таки настроить. Есть вариант запуска экземпляров OpenVPN с привязкой к ядру.

repsac1987
() автор топика
Ответ на: комментарий от repsac1987

объединил в LAGG

Как объединил? На обеих сторонах настроил? Догадался для разных tap-интерфейсов разные сети выбрать?

tiandrey ★★★★★
()
Ответ на: комментарий от repsac1987

поднял 2 tap-соединения между клиентом и сервером, траффик шел только через один tap-интерфейс

1) добейся того, чтобы у тебя оба tap-соединения работали;
2) что вообще в твоей терминологии клиент и сервер? Изобрази уже схему сети.

tiandrey ★★★★★
()
Ответ на: комментарий от repsac1987

″ifconfig lagg0 create″

″ifconfig lagg0 laggproto roundrobin laggport tap0 laggport tap1 up″

Ну там ip-адрес назначить.

Только не понятно, что значит:

траффик шел только через один tap-интерфейс

Второй tap-интерфейс был не рабочий, или просто туда маршрута не было?

mky ★★★★★
()
Ответ на: комментарий от mky

без объединения в lagg оба tap-интерфейса пашут. Объединяю в lagg - lagg-интерфейсы на сервере и клиенте видят друг друга, но траффик дальше не идет. Вероятно косяк с маршрутами. сетка 172.168.1.0/24. На шлюзе, который как openvpn server:

tap0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=80000<LINKSTATE> ether 00:bd:d6:5a:a0:00 inet 172.168.1.248 netmask 0xffffff00 broadcast 172.168.1.255 nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL> media: Ethernet autoselect status: active Opened by PID 12642

tap1: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=80000<LINKSTATE> ether 00:bd:d6:5a:a0:00 inet 172.168.1.249 netmask 0xffffff00 broadcast 172.168.1.255 nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL> media: Ethernet autoselect status: active Opened by PID 12802

lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=80000<LINKSTATE> ether 00:bd:d6:5a:a0:00 inet 10.10.10.10 netmask 0xffffff00 broadcast 10.10.10.255 nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL> media: Ethernet autoselect status: active laggproto roundrobin lagghash l2,l3,l4 laggport: tap1 flags=4<ACTIVE> laggport: tap0 flags=4<ACTIVE>

на клиенте openvpn: tap0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=80000<LINKSTATE> ether 00:bd:3e:06:6d:00 inet 172.168.1.245 netmask 0xffffff00 broadcast 172.168.1.255 nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL> media: Ethernet autoselect status: active Opened by PID 46838

tap1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=80000<LINKSTATE> ether 00:bd:3e:06:6d:00 inet 172.168.1.246 netmask 0xffffff00 broadcast 172.168.1.255 nd6 options=21<PERFORMNUD,AUTO_LINKLOCAL> media: Ethernet autoselect status: active Opened by PID 46969

lagg0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=80000<LINKSTATE> ether 00:bd:3e:06:6d:00 inet 10.10.10.11 netmask 0xffffff00 broadcast 10.10.10.255 nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL> media: Ethernet autoselect status: active laggproto roundrobin lagghash l2,l3,l4 laggport: tap1 flags=4<ACTIVE> laggport: tap0 flags=4<ACTIVE>

repsac1987
() автор топика
Ответ на: комментарий от repsac1987

lagg-интерфейсы на сервере и клиенте видят друг друга

Если это означает, что с openvpn server'а пинг на 10.10.10.11 проходит успешно, при этом во время пинга растут счётчики интерфейсов (″systat -ifstat″), то lag-интерфейс работает. И тогда нужно искать проблему в другом — маршрутах, файерволе, может ещё в чём.

mky ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.