Jump to content

Маршрутизация в VPN на основании доменных имен


Recommended Posts

Здравствуйте.

Имеется:

 - Keenetic Giga KN-1010

- VPN соеденение L2TP/IPSEC

- основное соеденение "провайдер"

 

Задача:

Нужно пустить весь трафик через VPN (с этим проблем нет, есть отдельный профиль где в 1 приоритете стоит VPN соеденение, на 2 месте стоит провайдер), но с некоторыми исключениями (для сайтов/ресурсов которым важна хорошая скорость).

В настройках маршрутизации настроил все что смог, НО там есть настройки только на основе IP.

Что насчет доменных имен? 

Как пример, мне нужно добавить исключение для всех поддоменов *.discord.gg

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

В том числе ознакомился со следующими темами. Но они опять таки предлагают решение на базе IP. 

 

Edited by mr4k
  • Upvote 1
Link to comment
Share on other sites

19 минут назад, Le ecureuil сказал:

Задача на самом деле очень нетривиальная, потому мы сами тоже до конца не понимаем, как это правильно сделать.

Забавно. Я надеялся что есть простое решение и это я просто плохо его ищу. Но так как у вас под аватарой написано "Администраторы", то видимо все плохо...

Link to comment
Share on other sites

  • 3 years later...

Было бы очень кстати, особенно в нынешние времена, ибо часть ресурсов внутри РФ сейчас недоступны извне.

  • Upvote 1
Link to comment
Share on other sites

  • 2 weeks later...
  • 1 month later...
В 30.07.2018 в 18:34, Le ecureuil сказал:

Задача на самом деле очень нетривиальная, потому мы сами тоже до конца не понимаем, как это правильно сделать.

Очевидно, что посредством собственного DNS-сервера, сравнивающего запросы со списком (в том числе, по маске), разрешающего их в ip адреса на вышестоящем, заслуживающем доверия сервере, и добавляющего нужный маршрут в таблицу маршрутизации.

У меня, кстати, сейчас та же задача нарисовалась.

Поднял VPN на VDS, и теперь надо как-то по-умному его использовать.

Причём, делать это нужно как-то силами роутера.

Может, подскажете направление, если есть какие-то наработки?

Link to comment
Share on other sites

Все упирается в то, то современный "сайт" это не один сервер, а куча шардированных CDN, которые даже общего доменного имени не имеют. И вот тут начинается адок.

Link to comment
Share on other sites

3 часа назад, Le ecureuil сказал:

Все упирается в то, то современный "сайт" это не один сервер, а куча шардированных CDN, которые даже общего доменного имени не имеют. И вот тут начинается адок.

А в чем ад то? Если это реальный CDN, то их не так и много какие нужно добавить, если не реальный, а просто микросервисная архитектура, то тоже решаемо и список не столь длинный.

Никто не просит решать задачу разбора на какую страницу сайта Ajax запросы идут(что наверное нельзя сделать в принципе не имея доступа к браузеру), просто хочется делать правила на базе URI(с вайлдкардами/регулярными выражениями для описания) а не IP

это как минимум поможет побороть load balancer на уровне DNS, который любит возвращать произвольные IP (ещё и не всегда сохраняя аффинность запросов)

  • Thanks 1
Link to comment
Share on other sites

13 часа назад, Tarnak сказал:

А в чем ад то? Если это реальный CDN, то их не так и много какие нужно добавить, если не реальный, а просто микросервисная архитектура, то тоже решаемо и список не столь длинный.

Никто не просит решать задачу разбора на какую страницу сайта Ajax запросы идут(что наверное нельзя сделать в принципе не имея доступа к браузеру), просто хочется делать правила на базе URI(с вайлдкардами/регулярными выражениями для описания) а не IP

это как минимум поможет побороть load balancer на уровне DNS, который любит возвращать произвольные IP (ещё и не всегда сохраняя аффинность запросов)

А можете подсказать, например, список доменов чтобы направить ютуб в VPN? А то вот придут к нам пользователи в поддержку, которые добавили только youtube.com, им на вас ссылку давать, что "это решаемо и список не столь длинный"? Кто будет поддерживать актуальность списков?

  • Upvote 1
Link to comment
Share on other sites

8 часов назад, Aleh сказал:

Да данный сабж очень актуален. И видимо на других роутерах так сделать можно. 

Вот например предпоследний пост

https://forum.ru-board.com/topic.cgi?forum=5&topic=50283&start=300#lt

На нашем тоже сделать можно. Entware поставьте и развлекайтесь.

Link to comment
Share on other sites

2 часа назад, Le ecureuil сказал:

А можете подсказать, например, список доменов чтобы направить ютуб в VPN? А то вот придут к нам пользователи в поддержку, которые добавили только youtube.com, им на вас ссылку давать, что "это решаемо и список не столь длинный"? Кто будет поддерживать актуальность списков?

Думаю список такойimage.thumb.jpg.60430b4c146e2b6cc8d7628c0672668f.jpg, поддерживать все URI которые нужны для переадресации пользователю, задача разумеется пользователя.

Link to comment
Share on other sites

5 часов назад, avn сказал:

На нашем тоже сделать можно. Entware поставьте и развлекайтесь.

это что? И мне надо чтобы это ставилось прямо на роутер а не комп.

Link to comment
Share on other sites

2 часа назад, Aleh сказал:

это что? И мне надо чтобы это ставилось прямо на роутер а не комп.

Тут читай. Решений 100500 проскакивали. У многих по три-четыре типа (Тор,впн,shadowsock) обхода настроено.

Link to comment
Share on other sites

33 минуты назад, avn сказал:

Тут читай. Решений 100500 проскакивали. У многих по три-четыре типа (Тор,впн,shadowsock) обхода настроено.

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

Link to comment
Share on other sites

Вот блин, надеялся что все таки дождусь эту фичу. Но почитав форум сегодня я понял что не дождусь :)

Link to comment
Share on other sites

21 час назад, Tarnak сказал:

Думаю список такойimage.thumb.jpg.60430b4c146e2b6cc8d7628c0672668f.jpg, поддерживать все URI которые нужны для переадресации пользователю, задача разумеется пользователя.

Цитата

задача разумеется пользователя

Такой подход имеет право на существование, но дружелюбность его где-то на уровне ebtables для блокировки DHCP.

Link to comment
Share on other sites

Posted (edited)
В 19.05.2022 в 23:28, Tarnak сказал:

Никто не просит решать задачу разбора на какую страницу сайта Ajax запросы идут(что наверное нельзя сделать в принципе не имея доступа к браузеру),

А почему не решать? А почему не имея доступа к браузеру?

Расширение для браузера, дёргающее маршруты на роутере... Или даже пускающее отдельные страницы через прокси, который смотрит в нужную сеть.

Если уж стоит задача "всю страницу завернуть в ВПН" - ну, может, в этом и есть свой смысл...

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

Та же hdrezka, например, прекрасно воспроизводит уже запущенное видео без всяких "обходов". Т.е. сам контент - он на других ресурсах, и доступен, а вот получить к нему доступ можно "в обход".

 

Edited by Pop70
Link to comment
Share on other sites

13 часа назад, Pop70 сказал:

А почему не решать? А почему не имея доступа к браузеру?

Расширение для браузера, дёргающее маршруты на роутере... Или даже пускающее отдельные страницы через прокси, который смотрит в нужную сеть.

Если уж стоит задача "всю страницу завернуть в ВПН" - ну, может, в этом и есть свой смысл...

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

Та же hdrezka, например, прекрасно воспроизводит уже запущенное видео без всяких "обходов". Т.е. сам контент - он на других ресурсах, и доступен, а вот получить к нему доступ можно "в обход".

 

Расширение для браузера(колоссальная работа, чтобы тестировать на всех платформах и браузерах) - это несколько выходит за пределы того, что мы кажется имеем право ожидать от разработчиков сетевого оборудования

 

плюс возможность произвольный запрос направлять через то или иное соединение динамически насколько я понимаю на текущий момент тоже не реализована.

ну и динамическое реагирование, скорее всего потянут не все роутеры и не во всех сценариях чисто по железу

изначальная хотелка пользователей(во всяком случае то, что хотел я и то, что прочитал хотят другие пользователи) просто добавить к адресации по IP то же самое но на базе маске URI. Не знаю насколько это сложно с точки зрения существующей внутренней архитектуры, но со стороны выглядит вроде вполне реализуемым

позиция насколько я понимаю разработчиков в том, чтобы предоставить именно удобный инструмент вида «возьми адрес сайта-отдай его через конкретное соединение»(хотя я может быть часть траффика и не хотел так пускать, если оно уже работает), а это действительно задача уже сложнее

еще как вариант что можно(наверное) сделать - это включить режим, где данные будут одновременно запрашиваться через каждое соединение и те, которые быстрее придут - те и отдавать на устройство, результат того, откуда быстрее можно поместить в LRU кэш и в последствии пытаться только через одно соединение тащить

Link to comment
Share on other sites

Posted (edited)
1 час назад, Tarnak сказал:

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

 

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

И как их различать, при устраиваемом всевозможными "надзорами" и прочими новоявленными "хозяевами интернета" бардаке?

Я понимаю @Le_ecureuil, желающего решить проблему полностью и кардинально. Чтобы весь трафик конкретной страницы шёл через конкретный маршрут. Только так можно гарантировать, что ни сегодня, ни завтра никто не сможет отличить обычного пользователя от "хитроопого", и использовать это в своих целях. Но это, действительно, возможно только в браузере, потому, что никто дальше не знает и не может знать к какой странице относится тот или иной элементарный запрос. И да. Дёргать маршруты из браузера - плохой вариант - согласен. Потому, что одновременно к тем же адресам могут обращаться и другие страницы, и другие браузеры других пользователей в этой же сети.

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

В качестве прокси прекрасно сойдёт уже имеющийся nginx. Ему только конфиг сформировать в зависимости от сетевых настроек - и это вполне себе задача для разработчиков сетевого оборудования, в который встроен этот самый nginx. Но без соответствующего браузера или расширения для браузера, это не имеет смысла.

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

Edited by Pop70
Link to comment
Share on other sites

8 часов назад, Pop70 сказал:

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

И как их различать, при устраиваемом всевозможными "надзорами" и прочими новоявленными "хозяевами интернета" бардаке?

Я понимаю @Le_ecureuil, желающего решить проблему полностью и кардинально. Чтобы весь трафик конкретной страницы шёл через конкретный маршрут. Только так можно гарантировать, что ни сегодня, ни завтра никто не сможет отличить обычного пользователя от "хитроопого", и использовать это в своих целях. Но это, действительно, возможно только в браузере, потому, что никто дальше не знает и не может знать к какой странице относится тот или иной элементарный запрос. И да. Дёргать маршруты из браузера - плохой вариант - согласен. Потому, что одновременно к тем же адресам могут обращаться и другие страницы, и другие браузеры других пользователей в этой же сети.

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

В качестве прокси прекрасно сойдёт уже имеющийся nginx. Ему только конфиг сформировать в зависимости от сетевых настроек - и это вполне себе задача для разработчиков сетевого оборудования, в который встроен этот самый nginx. Но без соответствующего браузера или расширения для браузера, это не имеет смысла.

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

Ну в целом-то я согласен, но костыль хоть как-то работать будет(при этом это костыль лишь в данной ситуации, концептуально выбирать соединение не только по ip но и по URI - абсолютно нормально и для пользователя даже работает стабильнее, так как полагается на DNS). 
 

Впрочем мои личные потребности перенаправления запросов ограничиваются линкедином, поэтому если чего-то не будет в роутере - переживу:)

Link to comment
Share on other sites

58 минут назад, Tarnak сказал:

Ну в целом-то я согласен, но костыль хоть как-то работать будет(при этом это костыль лишь в данной ситуации, концептуально выбирать соединение не только по ip но и по URI - абсолютно нормально и для пользователя даже работает стабильнее, так как полагается на DNS). 
 

 

Да это как бы "есть в роутере". Через Entware.

Список URI, и маршруты в отдельное подключение по этому списку.

Тем более, работает даже на встроенном флеше.(где есть такая возможность).

Другое дело, что там список конкретных URI  нужен, и "на лету" это не работает.

А так, чтобы по регулярке, тут уже нужно функционал встраивать в днс-релей. Объём работы увеличивается многократно, а результат - практически никак не улучшается.

Link to comment
Share on other sites

  • 2 weeks later...
В 20.05.2022 в 16:13, Le ecureuil сказал:

А то вот придут к нам пользователи в поддержку,

Подсказку (?) как это работает + статья на сайте + заготовки для ТП (для направления пользователей в нужную сторону)) не вариант?

Или реализовать для начала только в CLI.

В 21.05.2022 в 00:26, avn сказал:

Тут читай. Решений 100500 проскакивали. У многих по три-четыре типа (Тор,впн,shadowsock) обхода настроено.

Костыль работающий через одно место (спасибо постоянной перезаписи таблиц).

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...