Re: События с линком Wireguard

2022-08-09 Пенетрантность Eugene Berdnikov
On Tue, Aug 09, 2022 at 12:53:53PM +0300, Maksim Dmitrichenko wrote:
>К вопросу об OSPF, BGP и иже с ними. Допустим мы решили задачу
>конфигурации и получения базы маршрутов. Если это девайс уровня домашнего
>роутера с OpenWRT, он потянет такую большую таблицу маршрутизации?

 Вопрос насколько большую. Если база под рукой, посчитайте число префиксов.
 Насколько я помню, у full view сейчас префиксов где-то 800 тысяч, так что
 рунет с его 3% от населения Земли скорее всего < 40 тысяч маршрутов требует.
 Это 5-10 мег памяти, у современного домашнего роутера столько найдётся.
 По cpu нужно смотреть, но думаю что в линуксе просмотр таблиц маршрутизации
 хорошо оптимизирован и узким местом будет не процессор, а шина.
-- 
 Eugene Berdnikov



Re: События с линком Wireguard

2022-08-09 Пенетрантность Maksim Dmitrichenko
вт, 9 авг. 2022 г. в 13:00, Andrey Jr. Melnikov :

> Maksim Dmitrichenko  wrote:
> > [-- text/plain, encoding base64, charset: UTF-8, 70 lines --]
>
> > > Проблема в том, что инструмент надо использовать по назначению. Модули
> > > netfilter с geoip списками сетей были придуманы для того, чтоб можно
> было
> > > распихивать пакеты в разные стороны исходя из SRC.
>
>
> > Такая проблема имеется у вас в мозгу в виде ненужного догмата. UNIX way
> не
> > предполагает ограничения списка задач для того или иного инструмента,
> если
> > он разрабатывался под решение одной проблемы, но также работает и для
> > другой проблемы. И в данном случае свою задачу этот инструмент решает.
> > Проблема с другим инструментом.
>
> Проблема с изначальной постановкой задачи и общим понимание применимости
> конкретных инструментов.
>

Постановка задачи вполне валидная. Применимость конкретных инструментов
обсуждаемая. Но твой довод сводится к тому, что если Эйнштейн придумал ОТО
пытаясь объяснить себе что сфотографирует фотоаппарат, движущийся со
скоростью света от объекта, то ОТО нельзя применять для GPS.


> Исходя из DST, родной. Из DST.


Я цитирую тебя. Ты описывал сценария с SRC. Так вот в том сценарии проблема
такая же.


> > > Просто. Берёшь базы от geoip и вливаешь их в таблицу роутинга и через
> bgp
> > > их  в свой туннель экспортируешь.
> > >
>
> > Мои сомнения в предыдущем письме как раз связаны с отсутствием готового
> > инструмента, который подобную базу конвертирует в вид, пригодный для
> > использования демоном того или иного протокола распространения
> маршрутов. А
> > у вас всё "просто". Однако, вы сейчас выполняете роль чукчи из анекдота
> > ниже )
> Я тебе один умный вешь скажу, только ты не обижайся - эти данные есть
> изначально только в одном виде - список сетей с масками. Текстовый. Лежит в
> RIPE.


Секрет полишинеля, ганацвале. Или ты хочешь сказать, что не стал
использовать плоды работы доброго дяди и сам героически составил такую базу
исключительно на данных RIPE?


> То, что добрый дядя, взял его и перевёл в бинарный формат (устраивая
> при этом vendor lock) - так это задачи дяди, он на этом деньги
> зарабатывает.
>

Для баз maxmind есть тулзы, которые конвертируют этот формат в формат,
понятный geoip для iptables и nftables. Неужели ты думаешь, что они
работают с неизвестным никому форматом? )


> И в оригинале - все эти базы maxmind были вообще для применения в
> web-серверах.


Какая разница для чего? Опять ты со своим догматом "где родился только там
и пригодился".


> И только потом их начали прикручивать куда попало.
>

Ииии?


> Поэтому - изначально идея правильная, а решение кривое до невозможности.
> Ровно из-за микроскопа, которым пытаются забивать в землю дождевых червей.
>

Я по прежнему не прочитал правильное решение в твоем исполнении на
практике, кроме того, как это может работать в теории. Я не против поднятия
демонов для роутинга и прочее. Однако конкретные нюансы, без решения
которых на практике эту теорию не воплотить, ты обходишь стороной, как этот
самый скользкий дождевой червь )


-- 
With best regards
  Maksim Dmitrichenko


Re: События с линком Wireguard

2022-08-09 Пенетрантность Andrey Jr. Melnikov
Maksim Dmitrichenko  wrote:
> [-- text/plain, encoding base64, charset: UTF-8, 70 lines --]

> > Проблема в том, что инструмент надо использовать по назначению. Модули
> > netfilter с geoip списками сетей были придуманы для того, чтоб можно было
> > распихивать пакеты в разные стороны исходя из SRC.


> Такая проблема имеется у вас в мозгу в виде ненужного догмата. UNIX way не
> предполагает ограничения списка задач для того или иного инструмента, если
> он разрабатывался под решение одной проблемы, но также работает и для
> другой проблемы. И в данном случае свою задачу этот инструмент решает.
> Проблема с другим инструментом.

Проблема с изначальной постановкой задачи и общим понимание применимости
конкретных инструментов.

> Более того, в nftables нет вообще никакого geoip модуля, там это работает
> просто из коробки благодаря тому, что там есть более высокоуровневые
> сущности, которых нет в iptables, из-за чего приходилось решать гораздо
> более частные задачи написанием целых модулей для iptables. Отвлеклись от
> темы, но от того, что ваш кругозор расширится, вреда не будет.

Спасибо, о великий, за расширение моего кругозора. Только это не тебе - а
роскомнадзору. Благодоря ему, я уже не один год знаю - как, что, зачем и
куда отправлять. Через туннели с шифрованием и без, с помощью BGP и прочих
самопальных демонов на nfqueue. 

> > А тут стильно-модно-молодёжно они используются ровно в обратном виде, с
> > кучей проблем.

> Здесь нету никаких проблем в использовании его в обратном виде. Если в том
> сценарии, о котором пишите вы, ложится одна из дырок, куда надо было
> запихать, исходя из SRC, то решение так же не будет работать, но не из-за
> того, что решение не правильное, а из-за проблем другого порядка. Как
> собственно и у меня.
Исходя из DST, родной. Из DST. И на эту задачу этот инструмент ложится -
криво. Но если вам мотать изолентой скрипты не лень - можете. Благо, UNIX
way такое позволяет. Мне лень, мне проще bird2+bgp поднять. В одном месте
прописал - весь мой домашний mesh уже знает. И нет проблем с выяснением
связанности, оно без меня и скриптов разберется - как туда попасть.

> > Просто. Берёшь базы от geoip и вливаешь их в таблицу роутинга и через bgp
> > их  в свой туннель экспортируешь.
> >

> Мои сомнения в предыдущем письме как раз связаны с отсутствием готового
> инструмента, который подобную базу конвертирует в вид, пригодный для
> использования демоном того или иного протокола распространения маршрутов. А
> у вас всё "просто". Однако, вы сейчас выполняете роль чукчи из анекдота
> ниже )
Я тебе один умный вешь скажу, только ты не обижайся - эти данные есть
изначально только в одном виде - список сетей с масками. Текстовый. Лежит в
RIPE. То, что добрый дядя, взял его и перевёл в бинарный формат (устраивая
при этом vendor lock) - так это задачи дяди, он на этом деньги зарабатывает.
И в оригинале - все эти базы maxmind были вообще для применения в
web-серверах. И только потом их начали прикручивать куда попало.

Поэтому - изначально идея правильная, а решение кривое до невозможности.
Ровно из-за микроскопа, которым пытаются забивать в землю дождевых червей.



Re: События с линком Wireguard

2022-08-09 Пенетрантность Maksim Dmitrichenko
вт, 9 авг. 2022 г. в 11:48, Eugene Berdnikov :

>  Речь шла о том, чтобы юзеров выпускать в мир через прокси.


Детям, всё лучшее - детям! )


> >Коллега, а как вы думаете - без списка российских сетей модуль geoip
> как
> >трудится? Никак. Список очевидно есть. В пожатом виде это 70Кб в
> некотором
> >бинарном виде. Можно, конечно, написать тул, который перегоняет это в
> вид,
> >понятный OSPF'у. Но тут надо понять, что проще - писать тул или писать
> >демона, который будет следить за keepalive-статистикой wireguard и
> дёргать
> >нужные хуки.
>
>  Ага, за время пока мы тут дискутируем, можно было пару раз пинговалку
>  написать. А поскольку риалтайм тут не нужен, то всякие bgp и ospf здесь
>  перебор, десяток строчек на шелле решат задачу.
>

ЛОЛ! Я написал свой вопрос 8 июля и тогда вообще никто не ответил. Я уже и
забыл про это, как вдруг спустя месяц обнаружил эту довольно токсичную
дискуссию, где участники практически с ходу перешли на личности. Неужели вы
думаете, что за это время я не приделал костыль? И зачем пинги, когда у
wireguard есть свои keepalive'ы? Приделал, конечно, но тем не менее, я был
бы счастлив узнать что-то новое и узнать способ решения такой задачи
правильным путем.

К вопросу об OSPF, BGP и иже с ними. Допустим мы решили задачу конфигурации
и получения базы маршрутов. Если это девайс уровня домашнего роутера с
OpenWRT, он потянет такую большую таблицу маршрутизации? Для случая с
policy routing эта проблема во много решается connmark'ом, чтобы не
прогонять каждый пакет через модуль geoip. А как скажется на нагрузке
использование огромной таблицы маршрутов?

-- 
With best regards
  Maksim Dmitrichenko


Re: События с линком Wireguard

2022-08-09 Пенетрантность Eugene Berdnikov
On Tue, Aug 09, 2022 at 10:44:42AM +0300, Maksim Dmitrichenko wrote:
>вт, 9 авг. 2022 г. в 08:46, Eugene Berdnikov <[1]b...@protva.ru>:
>  решать
>   задачу не в плоскости ip, а в плоскости прокси и доменных имён, то
>  завернуть
>   домены ru/su/рф/рус и ещё пяток через российский parent очень просто.
> 
>Не приходит в голову сходу как можно заворачивать трафик по DNS, тем паче,

 Речь шла о том, чтобы юзеров выпускать в мир через прокси. A на прокси,
 как вариант, прописать проксирование российских доменов через российский
 parent-прокси, доступный через туннель. Для сквида это директивы вида
 "dstdomain .ru .su ..." и "cache_peer_access ...", ну и prefer_direct
 и never_direct по вкусу.

 Для сквида есть ещё вариант пометить обращения к целевым доменам через
 tcp_outgoing_address / tcp_outgoing_mark / tcp_outgoing_tos, и далее
 через ip rules отправлять их в туннель. Но не уверен, что это можно
 сделать по имени домена -- у сквида есть ограничения на тип acl-ей
 для таких директив.

>Коллега, а как вы думаете - без списка российских сетей модуль geoip как
>трудится? Никак. Список очевидно есть. В пожатом виде это 70Кб в некотором
>бинарном виде. Можно, конечно, написать тул, который перегоняет это в вид,
>понятный OSPF'у. Но тут надо понять, что проще - писать тул или писать
>демона, который будет следить за keepalive-статистикой wireguard и дёргать
>нужные хуки.

 Ага, за время пока мы тут дискутируем, можно было пару раз пинговалку
 написать. А поскольку риалтайм тут не нужен, то всякие bgp и ospf здесь
 перебор, десяток строчек на шелле решат задачу.
-- 
 Eugene Berdnikov



Re: События с линком Wireguard

2022-08-09 Пенетрантность Maksim Dmitrichenko
> Проблема в том, что инструмент надо использовать по назначению. Модули
> netfilter с geoip списками сетей были придуманы для того, чтоб можно было
> распихивать пакеты в разные стороны исходя из SRC.


Такая проблема имеется у вас в мозгу в виде ненужного догмата. UNIX way не
предполагает ограничения списка задач для того или иного инструмента, если
он разрабатывался под решение одной проблемы, но также работает и для
другой проблемы. И в данном случае свою задачу этот инструмент решает.
Проблема с другим инструментом.

Более того, в nftables нет вообще никакого geoip модуля, там это работает
просто из коробки благодаря тому, что там есть более высокоуровневые
сущности, которых нет в iptables, из-за чего приходилось решать гораздо
более частные задачи написанием целых модулей для iptables. Отвлеклись от
темы, но от того, что ваш кругозор расширится, вреда не будет.


> А тут стильно-модно-молодёжно они используются ровно в обратном виде, с
> кучей проблем.


Здесь нету никаких проблем в использовании его в обратном виде. Если в том
сценарии, о котором пишите вы, ложится одна из дырок, куда надо было
запихать, исходя из SRC, то решение так же не будет работать, но не из-за
того, что решение не правильное, а из-за проблем другого порядка. Как
собственно и у меня.


> Просто. Берёшь базы от geoip и вливаешь их в таблицу роутинга и через bgp
> их
> в свой туннель экспортируешь.
>

Мои сомнения в предыдущем письме как раз связаны с отсутствием готового
инструмента, который подобную базу конвертирует в вид, пригодный для
использования демоном того или иного протокола распространения маршрутов. А
у вас всё "просто". Однако, вы сейчас выполняете роль чукчи из анекдота
ниже )

Геологи едут по тундре, и у них застревает машина. Они и так и эдак — не
могут вытащить. Подъезжает чукча на оленях:
— Однако давай бутылку — скажу что вам надо.
Геологи:
— Да иди ты чукча! Без тебя вытащим.
Весь день вытаскивали — не вытащили. Снова проезжает чукча на оленях.
Геологи его останавливают, говорят:
— Чукча, вот тебе бутылка, скажи, что нам надо?
— А! Однако теперь две бутылки давай!
Дали чукче две бутылки. Чукча уложил их в сани, сел сам и говорит:
— Однако ТРАКТОР вам надо!

-- 
With best regards
  Maksim Dmitrichenko


Re: События с линком Wireguard

2022-08-09 Пенетрантность Maksim Dmitrichenko
вт, 9 авг. 2022 г. в 08:46, Eugene Berdnikov :

>  А зачем заворачивать в туннель ВЕСЬ рунет? Заворачивайте то, что нужно
>  завернуть ("отгородившиеся" сервисы), тогда если туннель отваливается,
>  то менять правила на ротутере будет незачем. К отвалившимся хостам ведь
>  напрямую ходить не следует, разве не так?
>

Затем, что не никакого желания составлять список отгородившихся. Более
того, этот список постоянно меняется. Тот, кто ещё вчера не отгораживался,
сегодня может уже отгородится. Пользователи об этом не будут репортить
своевременно, так как для большинства из них "сайт лёг" - это событие не
связанное с тем, что сервис находится в РФ.


>  Вопрос, конечно, как составить список "отгородившихся"... Но если решать
>  задачу не в плоскости ip, а в плоскости прокси и доменных имён, то
> завернуть
>  домены ru/su/рф/рус и ещё пяток через российский parent очень просто.
>

Не приходит в голову сходу как можно заворачивать трафик по DNS, тем паче,
что некоторые юзеры с своих настройках ставят фиксированный публичный DNS
типа google или adguard. Схема не должна ломаться в этом случае.


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

Коллега, а как вы думаете - без списка российских сетей модуль geoip как
трудится? Никак. Список очевидно есть. В пожатом виде это 70Кб в некотором
бинарном виде. Можно, конечно, написать тул, который перегоняет это в вид,
понятный OSPF'у. Но тут надо понять, что проще - писать тул или писать
демона, который будет следить за keepalive-статистикой wireguard и дёргать
нужные хуки.

-- 
With best regards
  Maksim Dmitrichenko


Re: События с линком Wireguard

2022-08-09 Пенетрантность Andrey Jr. Melnikov
Maksim Dmitrichenko  wrote:
> [-- text/plain, encoding base64, charset: UTF-8, 66 lines --]

> пн, 8 авг. 2022 г. в 01:19, Eugene Berdnikov :

[...]

> Проблема: если туннель ложится (причины не обсуждаем сейчас), то
> отваливается весь рунет. То есть нужна некоторая активная сущность, которая
> будет отключать классификатор пакетов, либо менять правила policy routing.

Проблема в том, что инструмент надо использовать по назначению. Модули
netfilter с geoip списками сетей были придуманы для того, чтоб можно было
распихивать пакеты в разные стороны исходя из SRC. 
А тут стильно-модно-молодёжно они используются ровно в обратном виде, с
кучей проблем. 

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

Просто. Берёшь базы от geoip и вливаешь их в таблицу роутинга и через bgp их
в свой туннель экспортируешь. Заодно, вливать можно самим демоном роутинга -
демона пристрелил - маршруты пропали.