#1
|
|||
|
|||
VPN с агрегацией 2-3 каналов
Dmitry Dolzenko написал(а) к All в May 20 14:30:21 по местному времени:
From: Dmitry Dolzenko <dol@mig.phys.msu.ru> Привет! Есть эфирный LTE интернет с 2-3 каналами, с разной скоростью, падениями канала итп. Посоветуйте, есть ли софт, который позволяет сделать VPN с агрегацией 2-3 каналов и отказоустойчивостью? /D --- ifmail v.2.15dev5.4 |
#2
|
|||
|
|||
Re: VPN с агрегацией 2-3 каналов
Eugene Grosbein написал(а) к Dmitry Dolzenko в May 20 01:36:29 по местному времени:
13 мая 2020, среда, в 14:30 NOVT, Dmitry Dolzenko написал(а): DD> Есть эфирный LTE интернет с 2-3 каналами, с разной скоростью, падениями DD> канала итп. DD> Посоветуйте, есть ли софт, который позволяет сделать VPN с агрегацией DD> 2-3 каналов и отказоустойчивостью? Failover сделать проблем нет, но если под агрегацией каналов с разной пропускной способностью ты имеешь в виду ускорение прокачки, то сперва нужно осознать, что TCP устроен так, что каждый конкретный TCP-коннект поверх такого агрегата будет работать с минимальной из скоростей отдельных трасс и ускорения не будет независимо от софта, даже если тебе вообще удастся завести такую схему. Вторая проблема в том, что мало раскидать исходящие пакеты по нескольким путям: нужно, чтобы кто-то "на той стороне" агрегата раскидывал обратные пакеты по разным трассам в твою сторону, а кто там этим будет заниматься? Либо ты заключаешь договор с оператором связи, по которому он соглашается настроить на своей стороне какого-то вида агрегат для тебя, либо у тебя остаётся только один вариант: раскидывать по разным линкам пакеты разных потоков трафика так, чтобы пакеты одного потока шли только через один линк. Таким образом, балансировка нагрузки в какой-то мере может быть достигнута (L3 per-flow load sharing), но на практике и тут полно проблем. Во-первых, есть ли у тебя достаточное множество TCP-коннектов и при этом достаточная ширина отдельных линков LTE, чтобы каждый конкретный линк не забивался одной-двумя прокачками по TCP? Если нет, то овчинка не стоит выделки. И даже если есть - многие современные интернет-сервисы очень не любят, когда запросы от одного и того же пользователя вдруг приходят с разных IP-адресов в течение одной и той же "сессии" и их работа тупо ломается в таком случае. Это значит, что если у тебя нет возможности назначить каждому юзеру локальной сети отдельный IP, тебе придется транслировать исходящий трафик каждого юзера в один конкретный внешний IP-адрес одного конкретного линка, то есть делить трафик не per-flow, а per-user, что ещё больше усугубляет проблему распределения нагрузки пропорционально ширинам каналов. Я тебе больше скажу: даже когда у тебя есть по IP-адресу на пользователя, всё равно задача распределения нагрузки по каналам неравной ширины в современном интернете нетривиальна и требует регулярного ручного вмешательства. Eugene -- Научить не кланяться авторитетам, а исследовать их и сравнивать их поучения с жизнью. Научить настороженно относиться к опыту бывалых людей, потому что жизнь меняется необычайно быстро. --- slrn/1.0.3 (FreeBSD) |
#3
|
|||
|
|||
Re: VPN с агрегацией 2-3 каналов
Dmitry Dolzenko написал(а) к Eugene Grosbein в May 20 23:08:35 по местному времени:
From: Dmitry Dolzenko <dol@mig.phys.msu.ru> 14.05.2020 1:36, Eugene Grosbein пишет: > 13 мая 2020, среда, в 14:30 NOVT, Dmitry Dolzenko написал(а): > > DD> Есть эфирный LTE интернет с 2-3 каналами, с разной скоростью, падениями > DD> канала итп. > DD> Посоветуйте, есть ли софт, который позволяет сделать VPN с агрегацией > DD> 2-3 каналов и отказоустойчивостью? > > Failover сделать проблем нет, но если под агрегацией каналов > с разной пропускной способностью ты имеешь в виду ускорение прокачки, > то сперва нужно осознать, что TCP устроен так, что каждый конкретный > TCP-коннект поверх такого агрегата будет работать с минимальной > из скоростей отдельных трасс и ускорения не будет независимо от софта, > даже если тебе вообще удастся завести такую схему. > > Вторая проблема в том, что мало раскидать исходящие пакеты > по нескольким путям: нужно, чтобы кто-то "на той стороне" > агрегата раскидывал обратные пакеты по разным трассам в твою сторону, > а кто там этим будет заниматься? Я как раз имел в виду что с другой стороны, в быстром проводном интернете, стоит сервер, который собирает пакеты и пихает их в nat Т.е. сервис диспетчер --- 2-3 канала LTE --- сервис сборщик -- nat --- ifmail v.2.15dev5.4 |
#4
|
|||
|
|||
Re: VPN с агрегацией 2-3 каналов
Eugene Grosbein написал(а) к Dmitry Dolzenko в May 20 05:51:28 по местному времени:
13 мая 2020, среда, в 23:08 NOVT, Dmitry Dolzenko написал(а): DD> Я как раз имел в виду что с другой стороны, в быстром проводном DD> интернете, стоит сервер, который собирает пакеты и пихает их в nat DD> Т.е. сервис диспетчер --- 2-3 канала LTE --- сервис сборщик -- nat Минус одна проблема. Но остальные проболемы никуда не делись. Тебе придётся поднять несколько p2p-туннелей, по одному на линк LTE и на стороне "диспетчера" использовать правила ipfw типа такого: ipfw table vpngw create type addr ipfw add 50000 fwd tablearg ip from 'table(vpngw)' to not $LAN out ipfw table vpngw add 192.168.0.1/32 10.0.0.2 ipfw table vpngw add 192.168.0.2/32 10.0.0.2 ipfw table vpngw add 192.168.0.3/32 10.0.0.6 ipfw table vpngw add 192.168.0.4/32 10.0.0.6 Тут 10.0.0.2 - IP-адрес "сборщика" с первого туннеля, 10.0.0.6 - IP-адрес "сборщика" со второго туннеля, и так далее, а 192.168.X.X - адреса пользователей. Таблица vpngw (её можно динамически пополнять/чистить) содежит соответствия для IP пользователя и туннеля, который используется для его трафика, обозначаемого по адресу удаленной стороны туннеля. А на этой самой удаленной стороне (на сборщике) просто в таблицу маршрутизации любым способом добавляешь маршруты до конкретных IP-адресов юзеров /32 в соответствующий туннель, чтобы обратные пакеты шли симметричным маршрутом. Если дружишь с протоколами динамической маршрутизации, можешь поднять что-нибудь между роутерами по туннелю, iBGP сойдёт, но можно заморочиться и с OSPF и даже с RIPv2, чтобы маршруты распространялись автоматически. Если не дружишь, можно вручную распространять маршруты через ssh gw route add / ssh gw route delete. Из-за того, что линки у тебя LTE и наверняка трафик идёт через провайдерский NAT, тип VPN надо выбирать такой, что без проблем пролазит через чужой NAT, то есть с инкапсуляцией в UDP. Это может быть L2TP/MPPE (mpd5/ngX) или несколько копий openvpn (tunX), или что тебе больше нравится. Eugene --- slrn/1.0.3 (FreeBSD) |
#5
|
|||
|
|||
VPN с агрегацией 2-3 каналов
Victor Sudakov написал(а) к eugen в May 20 22:12:02 по местному времени:
Dear eugen, 14 May 20 01:36, Eugene Grosbein wrote to Dmitry Dolzenko: DD>> Есть эфирный LTE интернет с 2-3 каналами, с разной скоростью, DD>> падениями канала итп. Посоветуйте, есть ли софт, который DD>> позволяет сделать VPN с агрегацией 2-3 каналов и DD>> отказоустойчивостью? EG> Failover сделать проблем нет, но если под агрегацией каналов EG> с разной пропускной способностью ты имеешь в виду ускорение прокачки, EG> то сперва нужно осознать, что TCP устроен так, что каждый конкретный EG> TCP-коннект поверх такого агрегата будет работать с минимальной EG> из скоростей отдельных трасс и ускорения не будет независимо от софта, EG> даже если тебе вообще удастся завести такую схему. Но у Дмитрия речь вроде бы идет о VPN, а это значит 1. Есть контроль над обеими сторонами 2. Нужно организовать не ускорение доступа в Интернет через несколько каналов, а пропуск одного виртуального канала по нескольким реальным, типа бандлов в PPP. Вдруг какой-то VPN-софт умеет так? Victor Sudakov, VAS4-RIPE, VAS47-RIPN --- GoldED+/BSD 1.1.5-b20170303-b20170303 |
#6
|
|||
|
|||
Re: VPN с агрегацией 2-3 каналов
Eugene Grosbein написал(а) к Victor Sudakov в May 20 08:40:10 по местному времени:
14 мая 2020, четверг, в 22:12 NOVT, Victor Sudakov написал(а): VS> Но у Дмитрия речь вроде бы идет о VPN, а это значит VS> 1. Есть контроль над обеими сторонами VS> 2. Нужно организовать не ускорение доступа в Интернет через несколько каналов, VS> а пропуск одного виртуального канала по нескольким реальным, типа бандлов в PPP. VS> Вдруг какой-то VPN-софт умеет так? mpd5 умеет, но именно что несколько линков в одном бандле PPP, а PPP рассчитан на линки одинаковой ширины плюс PPP по стандарту не имеет права доставлять фреймы с нарушением порядка. Если пакеты систематически приходят переупорядоченными, то PPP их будет постоянно дропать и доля дропов может достигать десятков процентов, а это смерть для современных приложений типа НTTP(s) over TCP. Я такое не так давно наблюдал вживую в LeaseWeb даже с единственным PPtP-туннелем: сеть LW систематически переупорядочивала доставляемые IP-пакеты GRE с PPP внутри. При нескольких независимых линках LTE в агрегате любого вида такое переупорядочивание неизбежно. Если в картинке будет PPP, схема будет практически непригодна к использованию. Без PPP всё равно будут тормоза на восстановлении порядка и какой-то процент дропов всё равно останется, ведь это LTE с непредсказуемыми задержками, а ожидать припозднившиеся пакеты вечно нельзя, нужен какой-то лимит. Per-flow (а на практике per-IP) горяздо прямее. Eugene --- slrn/1.0.3 (FreeBSD) |
#7
|
|||
|
|||
VPN с агрегацией 2-3 каналов
Sergei Podstrigailo написал(а) к Victor Sudakov в May 20 07:41:18 по местному времени:
Нello Victor! 14 May 20 22:12, Victor Sudakov wrote to eugen: VS> о у Дмитрия речь вроде бы идет о VPN, а это значит VS> 1. Есть контроль над обеими сторонами VS> 2. ужно организовать не ускорение доступа в Интернет через несколько VS> каналов, а пропуск одного виртуального канала по нескольким реальным, VS> типа бандлов в PPP. VS> Вдруг какой-то VPN-софт умеет так? Ну tinc, в принципе, позволяет каждой ноде VPN-сети назначить несколько внешних IP-адресов и обещает как-то определять оптимальный маршрут. И даже как-то действительно в такой конфигурации работает :-) Sergei --- GoldED/W32 3.0.1 |
#8
|
|||
|
|||
VPN с агрегацией 2-3 каналов
Stanislav Vlasov написал(а) к Dmitry Dolzenko в May 20 17:36:18 по местному времени:
Привет, Dmitry! 13 May 20 14:30, Dmitry Dolzenko -> All: DD> Есть эфирный LTE интернет с 2-3 каналами, с разной скоростью, DD> падениями канала итп. DD> Посоветуйте, есть ли софт, который позволяет сделать VPN с агрегацией DD> 2-3 каналов и отказоустойчивостью? При помощи ospf и какой-то матери делали лет 15 назад. На наземных каналах между центром и филиалами, но тут это не важно. Основная идея - внутри выданных каналов делается впн/туннель, в котором при помощи ospf и какой-то матери делаются равноправные маршруты между двумя точками с разных концов каналов. У вас второй точкой может быть какой-нибудь вдс. С наилучшими пожеланиями, Stanislav. --- -.-.-.-.-.- |