Jump to content

ipset-dns для выборочного роутинга


Recommended Posts

3 минуты назад, madsen сказал:

Так и не понял, как из списка найти нужный VPN интерфейс 😒

Ну вы тип VPN своего знаете? OpenVPN, WireGuard или иное. IP адреса, шлюз, подсеть тоже должны видеть когда подключаетесь. Или знать. Вот и найдите в этом списке запись которая соответствует вашим данным.

Edited by keenet07
Link to comment
Share on other sites

В 26.04.2023 в 20:44, Александр Рыжов сказал:

Список ресурсов для открытия через VPN-соединение удобно вести на странице Сетевые правила → Интернет фильтры → Настройка DNS. Пример добавления домена intel.com вместе с субдоменами:

DNS_add_record.png

 

Выполнил я данную процедуру и все работает, но вот как только я включаю протокол ipv6 в роутере все ломается и маршруты почему то не работают, кто нибудь знает как исправить?

Link to comment
Share on other sites

В 26.04.2023 в 19:44, Александр Рыжов сказал:

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

Решение основано на немного допиленной мелкой утилите ipset-dns. Прошивка будет обращаться к ней для разрешения определённого доменного имени из пользовательского перечня, а та, в свою очередь, будет складывать результаты работы в отдельный набор ip-адресов. Далее этот набор используется для выборочного роутинга в VPN-соединение ровно так же, как в аналогичных решениях по соседству. Тем самым сохраняются все возможности прошивочного сервиса.

Перед установкой настройте в веб-интерфейсе любое VPN-соединение.

Установка возможна с помощью пакета, подходящего под любую архитектуру кинетика:

opkg install http://bin.entware.net/mipselsf-k3.4/test/ipset-dns-keenetic_0.2-1_all.ipk

Для настройки вам понадобится имя и подсеть VPN-интерфейса. Их можно увидеть в выводе команды ip addr. В примере это nwg3 и 10.7.0.0/24:

…
37: nwg3: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1324 qdisc noqueue qlen 50
    link/[65534] 
    inet 10.7.0.8/24 scope global nwg3

Внесите эти два параметра любым удобным способом в /opt/etc/bypass.conf по имеющемуся примеру в переменные VPN_NAME и VPN_SUBNET:

vi /opt/etc/bypass.conf

После чего решение готово к использованию. Запустите утилиту ipset-dns или просто перегрузите роутер:

/opt/etc/init.d/S52ipset-dns start

 

Список ресурсов для открытия через VPN-соединение удобно вести на странице Сетевые правила → Интернет фильтры → Настройка DNS. Пример добавления домена intel.com вместе с субдоменами:

DNS_add_record.png

где 192.168.1.1 — IP-адрес роутера. Если вам привычней CLI-интерфейс, то аналог записи выше:

ip name-server 192.168.1.1:5353 intel.com

Число записей ограничено 64. 

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

 

 

 

У меня если выбираю любая сеть то почему то не идёт через ВПН ,если выбираю свой ВПН тогда идёт но те домены что не добавлял тоже почему то не идут от провайдера а с ВПН, то есть ВПН всё начинает брать на себя)

Link to comment
Share on other sites

18 часов назад, SAGAK сказал:

Подскажите, как вы "отключили у соединения внутренний DNS"?

в настройках DHCP убрал адрес внутреннего (расположенного на хранилке) DNS сервера

Link to comment
Share on other sites

В 10.09.2024 в 02:47, zako сказал:

Кто-нибудь пробовал комбо sing-box (протокол vless xtls reality)  + ipset-dns? 

Пробовал, настроил подключение sing-box-go c shadowsocks2022, vless и заворачиванием трафика в tun0, само соединение работает проверял через curl, но с ipset-dns не получилось заставить работать. Забавно что ip адреса в bypass list добавляет и на этом все, сайты не открывает. Возможно какого то правила в iptables не хватает или конфиг с подключение sing-box надо настроить по другому.

Edited by applick
  • Thanks 1
Link to comment
Share on other sites

Товарищи, доброго дня.

Настроил все по инструкции уважаемого @Drafted и в течение ~недели все было ок, но после столкнулся с тормозами на ютубе. При этом в консоли гугл хрома время от времени вижу fetch-запросы к googlevideo.com со статусом "(canceled)", которые как раз и приводят к зависаниям.

image.thumb.png.aa4ccc7e0f4ead3b19b842ad4d2591d5.png

Не эксперт, но мне кажется, будто некоторые запросы к googlevideo.com идут через ip, которых нет в роутере. Проблема не зависит от конкретного железа, но чаще всего проявляется на ПК, гугл хром.

Что пробовал:

1. Переустановил opkg и ко на внутреннюю память роутера, было на usb

2. Сбрасывал настроки сети в windows, гугл хроме (отключал quic, внутренний DoH, сброс dns и сокетов, удалял все расширения)

3. Отключал IPv6, ставил игнорирование DNS провайдера в настройках роутера

4. Ставил единый DNS (8.8.8.8) для всей системы (dnsmasq.conf и интернет-фильтры). Пробовал в чистом виде и через DoT/DoH

5. Несколько раз проверял ip адреса ресурса на ПК и на роутере, различий пока не было замечено

В общем, не знаю, что еще можно сделать. Если пустить весь трафик через VPN, то никаких проблем нет. Я один с такой проблемой? Буду рад, если кто-то сможет подсказать в какую сторону смотреть.

Edited by Rndn
Link to comment
Share on other sites

Не дождался релиза Keenetic OS 4.2,  так как после аварии у провайдера OpenVPN попал под блокировку.

Поставил 4.2 Beta 3, настроил OpenConnect через GUI, поменял в bypass.conf (использую метод с использованием dnsmasq) имя интерфейса и подсеть.

Сбросил ipset, перегрузил роутер, записи в ipset пошли, но записей в таблице маршрутизации нет, смотрел

ip route list table 1001

В чем может быть дело?

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

Edited by Dalex
Link to comment
Share on other sites

Еще один момент нашел - довольно часто, при соединении через OPENVPN (не знаю как на WireGuard, у меня он жутко нестабилен, хз почему) меняются адреса VPN, после чего отключаются сайты на ПК.
Помогает ipconfig /flushdns
Как вариант, я сделал утилитку на питоне, которая по клику ПКМ позволяет выполнить эту команду.
Утилитка exe файл.
Исходник

image.png.9b491c6424bee28fb5be7dc53c49693c.png

Edited by Dmitriy Krasko
Link to comment
Share on other sites

Всем привет. Подскажите нужно что-то делать если меняешь конфиг bypass.conf ? Меняю в нем VPN_NAME и VPN_SUBNET и перестает работать. Меняю обратно и тоже не работает.

Link to comment
Share on other sites

В 12.09.2024 в 17:39, applick сказал:

Пробовал, настроил подключение sing-box-go c shadowsocks2022, vless и заворачиванием трафика в tun0, само соединение работает проверял через curl, но с ipset-dns не получилось заставить работать. Забавно что ip адреса в bypass list добавляет и на этом все, сайты не открывает. Возможно какого то правила в iptables не хватает или конфиг с подключение sing-box надо настроить по другому.

Тестировал позавчера, почему то не создается запись в таблице маршрутизации.

ipset работает и в правилах появляются записи (у меня способ с dnsmasq - Но там разницы нет).

В bypass.conf добавлял и tun0 172.16.250.1/24 и tun0 172.16.250.0/24, но несмотря на правильный "tun" интерфейс от sing-box запись в маршрутизации не создается.

Если руками добавить "ip route add default dev tun0 table 1001", начнет работать.

 

Edited by Dalex
Link to comment
Share on other sites

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

Подскажите как сделать, чтобы при отсутствии vpn соединения, блокировался доступ к указанным адресам?
Блокировался или dns возвращал не валидный адрес.

Link to comment
Share on other sites

4 часа назад, info сказал:

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

Подскажите как сделать, чтобы при отсутствии vpn соединения, блокировался доступ к указанным адресам?
Блокировался или dns возвращал не валидный адрес.

Галочка Эксклюзивный маршрут в пользовательских правилах маршрутизации.

Link to comment
Share on other sites

Здравствуйте, подскажите пожалуйста, как применить данное решение для другой политики доступа в интернет? На устройствах, которые я переношу в новую политику, интернет работает, а трафик в впн не уходит.

Создал новую политику ("Приоритеты подключений" - "Политики доступа в интернет") аналогичную политике по умолчанию с тем же ethernet подключением. Хочу на разных устройствах сделать разный набор адресов для прогонки через впн. Споткнулся в самом начале получается (потом хочу на другой порт повесить ещё один экземпляр решения и сделать разные таблицы для разных политик)

Link to comment
Share on other sites

Добрый день.

Для proxy подключения применим данный способ? Я использую VPN клиента на android. И раздаю vpn в роутер через soks5. Теперь бы прикрутить выборочных обход с помощью данного решения. Вместо wg* использовать t2s

Link to comment
Share on other sites

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

Если ваш прокси виден в системе как подключение, то можно.

Да, настроил. Достаточно изменить bypass.conf и рестартануть.

Link to comment
Share on other sites

В 24.08.2024 в 00:19, avn сказал:

Используйте таймаут, равный таймауту dns (MaxTTL), записи сами удаляться будут.

 

image.png.786807111e967ee7ff195d4c14330ee6.png

Как то можно исключить адрес DNS (8.8.8.8) из списка? Таймаут же к любой записи будет применяться?

Link to comment
Share on other sites

16 минут назад, Александр Рыжов сказал:

Из /opt/etc/init.d/S52ipset-dns убрать строчку ipset add $SET_NAME $DNS.

Подразумевается, разумеется, что из списка адресов с таймаутом. DNS будет тоже дропаться по таймауту. 

Хотя, можно при добавлении его, наверное, так как то прописать ipset add $SET_NAME $DNS timeout 0 (или maxvalue, если 0 это не перманент)

Edited by fateev
Link to comment
Share on other sites

Доброго времени! Настроил всё по инструкции, единственное, у меня amneziaWG,  если поставить в приоритет сам впн, то он работает. Если через днс как в данном посте, сайты указанные в фильтре, не резолвятся. На примере 2ip.ru. Куда копать? 


 

 nslookup www.2ip.ru
╤хЁтхЁ:  UnKnown
Address:  192.168.1.1

DNS request timed out.
    timeout was 2 seconds.
DNS request timed out.
    timeout was 2 seconds.
*** Превышено время ожидания запроса UnKnown


UPD. поменяв в bypass 1.1.1.1 на 8.8.8.8, заработало)

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

Добрый день!

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

opkg install http://bin.entware.net/
Link to comment
Share on other sites

подскажите а можно настроить что весь p2p траффик пошел бы по VPN, c youtube то все понятно, но появилась проблема с p2p

Link to comment
Share on other sites

19 часов назад, Владимир Дубинин сказал:

а через этот способ можно ли так же и дискорд сделать ? 

Для дискорда проще добавить маршруты в маршрутизацию. 

Link to comment
Share on other sites

Как диагностировать в чём может быть проблема? Добавил в bypass.conf имя и подсеть туннеля, через cli "ip name-server 192.168.1.1:5353 2ip.ru", перезагрузил роутер и при заходе на 2ip.ru вижу свой ip. Маршрутов новых в ip route не появляется. Если руками добавить маршрут вида: ip route add 11.11.11.11/24 via tunnel gateway всё работает, вижу внешний адрес туннеля. В интернет-фильтрах > Системном профиле сейчас два сервера. Первый - 192.168.1.1:5353 2ip.ru, второй поумолчанию adguard dns over https. По ощущениям когда захожу на добавленный сайт он всё равно идёт через dns поумолчанию. Не хотелось бы отключать дефолтный dns over https. Как можно всё таки пустить 2ip.ru через ipset?

Link to comment
Share on other sites

В 23.09.2024 в 21:43, Dalex сказал:

Тестировал позавчера, почему то не создается запись в таблице маршрутизации.

ipset работает и в правилах появляются записи (у меня способ с dnsmasq - Но там разницы нет).

В bypass.conf добавлял и tun0 172.16.250.1/24 и tun0 172.16.250.0/24, но несмотря на правильный "tun" интерфейс от sing-box запись в маршрутизации не создается.

Если руками добавить "ip route add default dev tun0 table 1001", начнет работать.

 

Вот и у меня sing-box

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.

×
×
  • Create New...