LINUX.ORG.RU

Почитай, пожалуйста про модель OSI.

Любой VPN реализует первые 2 или 3 уровня этой модели.

И то пойдёт ли пакет через VPN сеть или нет решается на 3-ем уровне модели OSI, т.е. маршрутизация.

На уровне маршрутизации нет понятия URL и прочего.

Понятие URL существует на 7-ом (прикладном уровне) модели OSI.

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

kostik87 ★★★★★
()
Последнее исправление: kostik87 (всего исправлений: 1)

dnsmasq умеет складывать IP-шники определённых доменов в ipset. Маркируешь пакеты, принадлежащие этому сету, и заворачиваешь их в отдельную таблицу маршрутизации. Клиент Амнезии по-любому делает что-то похожее, но, как у любого приложения с одной кнопкой, более-менее нестандартные настройки клиентской системы ставят его в тупик.

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

Он же не про IP пишет, а про URL.

Тут ещё нюанс в том, что в DNS можно настроить различные view и для запросов с IP адресов одного региона отдавать одни IP, а для другого - другие.

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

и как-то можно проксей на Амнезию отправлять или другие какие протоколы и клиенты есть, vless там, не знаю, много всякого?

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

Я тебе всё написал. :

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

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

Ну вот у меня на роутере 2 интернет соединения: PPPoE провайдера и амнезия. И есть tinyproxy - в нём можно писать URL, куда отправлять его. Эта фича есть почти во всех http/https прокси. Если нужно внутри домена подробные URL разводить - тогда надо поднимать MitM и класть свой сертификат на всех клиентов.

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

не, только wildcard, так что правильно называется, без поддоменов и прочего

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

Ты не понял написанного в первом сообщении. VPN не оперирует URL.

Если ты хочешь как-то задавать именно просто URL - то абстракция URL появляется на уровне приложений. Т.е. браузер, proxy сервер. На уровне реализуемом VPN есть только IP адреса и mac адреса.

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

Если ты хочешь выборочно отправлять обращения к части URL, т.е. доменных имён через VPN, а часть - чтобы работала через твоего основного провайдера тебе нужно:

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

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

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

url из чего состоит, гений?

я описал рабочую конфигурацию. прокси-херокси, уровни osi… теоретики, мля.

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

URL: [протокол://][субдомен]<домен>[/location].

  • Протокол - ftp, http, https …

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

Более того, если мы говорим про современные сайты, которые подгружают ресурсы с других сайтов, а также вызывают скрипты, которые отправляют POST или GET запросы на другие домены, то в твой список IP адресов нужно ещё помещать и IP адреса этих доменов.

Вот тебе пример для squid

acl yandex dstdomain .yandex.ru
acl google dstdomain .google.com

tcp_outgoing_address 192.168.100.100 yandex
tcp_outgoing_address 192.168.100.101 google

Тут все поддомены уходят с определённого адреса источника и далее в mangle пакеты маркируются по адресу источника и отправляются на соответствующую таблицу маршрутизации.

Так что иди учись дальше.

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

По факту у ТС-а проблема XY и тема с dnsmasq рабочая, так например работает kvas для кинетиков 🤷

Gary ★★★★★
()

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

WSL_user
()
Ответ на: комментарий от Ros

Я vless и использую через v2rayN. Если протокол именно амнезии собственный то скорее всего не умеет его.

WSL_user
()

Если у тебя кинетик - просто поставь на него kvas под ентваре и все. Инструкций полно. Так-же не вижу проблем с адаптацией оного на любой линукс машине. Это будет самый оптимальный способ решения твоей проблемы. Разумеется это будет работать исключительно с доменами. В том числе с вайлкард. Если ты хочешь чтоб, к примеру https://supersite.pupkin.com/page1 шла в vpn а https://supersite.pupkin.com/page2 по обычному маршруту - тебе надо предварительно настроить прокси

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

и как-то можно проксей на Амнезию отправлять

Я юзаю wireproxy-awg (прокси-клиент для AmneziaWG), в сочетании с FoxyProxy.

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

Хм, прикольно не знал про эту фичу.

Но это не маркировка пакетов если что, и к адвансед раутингом никаким боком.

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

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

Если у тебя кинетик - просто поставь на него kvas под ентваре и все

А мне квас не понравился. Проц он нагружал знатно. Перешел на Гидру. И проц не грузит и управлять доменами удобнее из вэб-морды.

mergood
()

Из коробки оно не работает? В клиенте амнезии есть раздельное туннелирование, но я никогда его не включал, нужды не было.

Friearch
()
Ответ на: комментарий от mx__

Я не писал про маркировку пакетов в сквиде. Маркировка пакетов будет идти в iptables / nf_tables на основе IP адреса источника, а IP адрес источника будет назначает squid.

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

А ну тогда нормально, видать я где то пропустил упоминание про фиревалл.

И намекни ему, что адреса источника должны быть реальные адреса (ну альяс и т.д.) а то могут налепить там чего нибудь :)

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

Почитай, пожалуйста про модель OSI. Любой VPN реализует первые 2 или 3 уровня этой модели.

Проблема в том, что OSI нигде не применятся, это сферические бредни организации по стандартизации в вакууме.

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

В смысле не применяется? Не понял. Оно типа работает кругом. Или ВАМ что нужно то?

Типа в названии маршрутизатора до какого уровня он управляется?

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

В смысле не применяется? Не понял. Оно типа работает кругом. Или ВАМ что нужно то?

В смысле в tcp/ip 4 уровня.

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

вот ваша фраза:

Проблема в том, что OSI нигде не применятся, это сферические бредни организации по стандартизации в вакууме.

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

Это не проблема, а абстракция, дающая модель, показывающую, что оперировать URL на уровне протоколов 2-го и 3-го уровня нельзя.

Так что модель OSI применяется. Существуют и другие модели, но в них картина будет схожей, на уровне MAC и IP адресов, т.е. того, что реализует любой VPN нельзя оперировать URL.

kostik87 ★★★★★
()

Зря с ней возишься. Её блочить научились по всем протоколам. Вопрос только когда расползётся по всем провайдерам.

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

наверно, как не лень будет, гляну в сторону vless и другого софта

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

абстракция, дающая модель

Модель OSI именно что лютая абстракция, не знаю ни одной реализации 7-уровневой модели в протоколе. 4 уровня знаю, все знают, а 7-уровневая модель существует только для почёсывания ЧСВ организации по стандартизации и для того чтобы дол…бы спрашивали об этом бреде на собеседованиях, при этом не приходя в сознание и не понимая сути происходящего :)

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

Ты не понимаешь что говоришь. На каждом уровне свои механизмы сетевого взаимодействия. И на каждом уровне свои стандарты. Которые описаны в RFC.

1 уровень - физический, к нему относятся стандарты на среду передачи данных, требования к проводам, медным или оптическим, частоты и параметры радиосигнала, сетевые карты, беспроводные адаптеры, оптические трансиверы, т.е. передатчики.

2 уровень - канальный, описание формирования кадров, передаваемых на физическом уровне, защита от помех, размер кадров, параметры модуляции.

3 уровень - описание стандартов по передаче данных, статическая, динамическая маршрутизация, т.е. управление потоком данных, стандарты IPv4, IPv6 и прочие протоколы относящиеся к сетевому стеку.

4 уровень - уже сами протоколы, обеспечивающие надёжность передачи данных, т.е. TCP / UDP и описание прочих сетевых пакетов.

5 уровень - описание установки, поддержания и завершения сетевых соединение, сеансов.

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

7 уровень - приложения, которые формируют данные и оперируют другими понятиям, стандартами, в том числе и URL, который фигурирует в стандарте, описывающем протокол HTTP(S). А далее чтобы по этому URL приложение знало куда отослать пакет - оно посредством стандартов, описывающих систему доменных имён (DNS) в начале посредством DNS клиенты выполнит рекурсивный или не рекурсивный запрос к DNS серверу, узнает IP, сформирует HTTP GET или POST запрос, далее сформирует TCP пакет, укажет в качестве IP адреса отправителя свой адрес, отправит пакет, установит сеанс (соединение ) с сервером и так далее.

OSI показывает иерархию модели обмена данными по сети. И на основании этого ты получаешь представление какими средствами реализуется задача.

kostik87 ★★★★★
()
Последнее исправление: kostik87 (всего исправлений: 2)

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

KillTheCat ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.