Перейти к содержанию

Drafted

Участники форума
  • Постов

    28
  • Зарегистрирован

  • Посещение

  • Победитель дней

    1

Весь контент Drafted

  1. Если резолвить KeenDNS домен (xxxxx.keenetic.pro) через Яндекс (77.88.8.8) или Quad9 (9.9.9.9), то 1-2 ответа из 10-20 может содержать неожиданные AAAA записи, указывающие на хосты 2a01:4f8:271:5a5c:: и 2a01:4f9:3b:29a0::, которые не имеют отношения к моему устройству/провайдеру. Это приводит к ошибкам валидации сертификата, которые я описал в другом посте. Мой провайдер не предоставляет IPv6 адреса. IPv6 в KeeneticOS отключен. Режим работы KeenDNS IPv4: прямой, статический внешний IP. KeenDNS IPv6 через облако выключен. Воспроизводится на 4 разных инстансах, на актуальных прошивках. Везде домены в зоне keenetic.pro. При резолвинге через 1.1.1.1 и 8.8.8.8 проблему поймать не удалось - вероятно из-за кеширования CF/Google. Кроме этого, один раз удалось поймать и некорректные IPv4 записи (см. скрин). На всякий случай уточню, что в момент тестирования никаких настройки в роутере не менялись.
  2. Примерно после нового года начались проблемы с запросами из Умного Дома Яндекса в локальный Home Assistant за KeenDNS (тип подключения: прямое). Некоторые POST запросы не доходят до HA, терминируясь на роутере. Никаких ошибок в журнале/дебаг-журнале Кинетика не увидел. Со стороны Яндекса ошибка следующая: tls: failed to verify certificate: x509: certificate is valid for *.keenetic.pro, keenetic.pro, not ha.XXXXXXX.keenetic.pro Частота проявления: 1-2 из 10. Воспроизводится на 4 разных инстансах, на 4 разных провайдерах. Версия KeeneticOS: 4.2.6.1 (latest)
  3. Да, я и написал вручную (через команду ipset flush bypass), либо ребут
  4. Да, все верно. Удалять нужно вручную, либо ребутить роутер. Надо посмотреть есть ли хук на удаление записей из интернет-фильтра, чтобы чистить таблицу автоматически. Здесь не подскажу - не использую. По логике делается это так: Дублируете скрипт запуска S56dnsmasq в /opt/etc/init.d/ и указываете в параметрах запуска через ключ -conf-file другой конфиг (например: /opt/etc/dnsmasq2.conf), в котором прописан новый pid-file (например /var/run/opt-dnsmasq2.pid), другой порт (например, 5301) и другой ipset (например bypass2). Далее дублируете и изменяете скрипт запуска /opt/etc/init.d/S52ipset-bypass и все хуки в /opt/etc/ndm/netfilter.d/ под новый ipset.
  5. Добавьте play.google.com в список.
  6. Вероятно кинопоиск сидит на том же CDN/IP что и гуглвидео, поэтому так. Можете попробовать добавить в Интернет-фильтр kinopoisk.ru с альтернативным вышестоящим DNS, например 9.9.9.9, чтобы его резолвило на другие адреса: В моей инструкции параметра DNS нет в bypass.conf. Указывать вышестоящий DNS нужно в dnsmasq.conf, параметр server. Пример: user=nobody pid-file=/var/run/opt-dnsmasq.pid port=5300 min-port=4096 cache-size=1536 bogus-priv no-negcache no-resolv no-poll no-hosts clear-on-reload server=127.0.0.1#40500 ipset=/#/bypass
  7. Тут некоторые еще на 3.х сидят, чуть позже обновлю )
  8. 403 ошибка возможна из-за каких-нибудь расширений хрома для блокировки рекламы.
  9. Проверяйте что траффик к хостам идет через VPN. Можно через tracert (traceroute если Mac/Unix):
  10. @Александр Рыжов можно Вас попросить добавить ссылку на мой способ через dnsmasq в шапку темы? Что-то тут все очень сильно оживилось и мой пост уже где-то в середине темы.
  11. Так в этом то и цимус способов из этой темы, что можно указывать корневые домены (например: 1e100.net) и все поддомены (типа hem09s02-in-f14.1e100.net) подтянутся автоматом.
  12. Просто удаляете хост и полностью перезагружаете роутер. Значит где-то остался, либо другой домен резолвится на те же IP адреса.
  13. Что значит несколько DNS адресов? Upstream DNS server? Или Вы хотите сделать отдельный резолвер с другой таблицей для заворачивания в другой тоннель?
  14. Большое спасибо за подсказку! Теперь понятно откуда ноги Race Condition растут в обоих решениях при старте. Обновил инструкцию с решением через dnsmasq.
  15. Подтверждаю проблему. Версия Chrome 124. В iOS Safari (17.4.1) и Firefox 123 (Win) все ок. Проблема проявляется только при SSL подключении, по HTTP все работает. Выключение TLS 1.3 hybridized Kyber support через флаги в Chrome вроде решает проблему.
  16. Есть подозрение что сначала нужно указать роут таблицы через нужный интерфейс, и только потом работать с ipset. По правде говоря я в этом не спец, может не прав. Но в любом случае перезапуск dnsmasq после поднятия интерфейса и добавления роута помогает всегда. Из 10 рестартов устройства все 10 успешные.
  17. В /opt/etc/ndm/ifstatechanged.d/010-bypass-table.sh строчку внизу на рестарт dnsmasq не забыли добавить? #!/bin/sh . /opt/etc/bypass.conf [ "$1" == "hook" ] || exit 0 [ "$system_name" == "$VPN_NAME" ] || exit 0 [ ! -z "$(ipset --quiet list bypass)" ] || exit 0 [ "${connected}-${link}-${up}" == "yes-up-up" ] || exit 0 if [ -z "$(ip route list table 1001)" ]; then ip route add default dev $system_name table 1001 fi . /opt/etc/init.d/S56dnsmasq restart
  18. Кстати, диапазон или конкретный IP для роутинга в нужный интерфейс можно указать в UI, через панель Статические маршруты. Вот например 111.111.111.X
  19. Если кому интересно вот инструкция: Предполагается что у вас уже настроено VPN соединение на роутере. В инструкции используется новый хук iflayerchanged.d, который работает только на прошивках 4.0+. Сносим opkg и ставим заново на всякий случай. Я устанавливаю во внутреннюю память роутера. Все нужные пакеты занимают около 7мб. После установки opkg заходим по SSH в Entware. Для этого в командной строке: ssh root@192.168.1.1 -p 222 Устанавливаем пакеты: opkg update && opkg install ipset iptables dnsmasq Внимание: Далее будет работа с редактором vi. Прежде чем вставить текст в редакторе нужно нажать кнопку i на клавиатуре чтобы войти в режим редактирования, вставить текст, затем нажать ESC на клавиатуре, написать :wq и нажать Enter чтобы сохранить файл и закрыть редактор. Создаем файл конфигурации: vi /opt/etc/bypass.conf В него вставляем содержимое, отредактировав VPN_NAME и VPN_SUBNET (можно подсмотреть командой: ip addr): VPN_NAME=nwg0 VPN_SUBNET=10.77.77.0/24 Даем права на запуск: chmod +x /opt/etc/bypass.conf Создаем скрипт запуска: vi /opt/etc/init.d/S52ipset-bypass В него вставляем содержимое: #!/bin/sh PATH=/opt/sbin:/opt/bin:/opt/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin . /opt/etc/bypass.conf if [ "$1" = "start" ]; then ipset create bypass hash:ip ip rule add fwmark 1001 table 1001 fi Даем права на запуск: chmod +x /opt/etc/init.d/S52ipset-bypass Создаем хук iflayerchanged.d: vi /opt/etc/ndm/iflayerchanged.d/010-bypass-table.sh В него вставляем содержимое: #!/bin/sh . /opt/etc/bypass.conf [ "$1" == "hook" ] || exit 0 [ "$system_name" == "$VPN_NAME" ] || exit 0 [ ! -z "$(ipset --quiet list bypass)" ] || exit 0 [ "${layer}-${level}" == "link-running" ] || exit 0 if [ -z "$(ip route list table 1001)" ]; then ip route add default dev $system_name table 1001 fi Даем права на запуск: chmod +x /opt/etc/ndm/iflayerchanged.d/010-bypass-table.sh Создаем хук netfilter.d: vi /opt/etc/ndm/netfilter.d/010-bypass-table.sh В него вставляем содержимое: #!/bin/sh . /opt/etc/bypass.conf [ "$type" == "ip6tables" ] && exit [ "$table" != "mangle" ] && exit [ -z "$(ip link list | grep $VPN_NAME)" ] && exit [ -z "$(ipset --quiet list bypass)" ] && exit if [ -z "$(iptables-save | grep bypass)" ]; then iptables -w -t mangle -A PREROUTING ! -s $VPN_SUBNET -m conntrack --ctstate NEW -m set --match-set bypass dst -j CONNMARK --set-mark 1001 iptables -w -t mangle -A PREROUTING ! -s $VPN_SUBNET -m set --match-set bypass dst -j CONNMARK --restore-mark fi Даем права на запуск: chmod +x /opt/etc/ndm/netfilter.d/010-bypass-table.sh Правим конфиг dnsmasq.conf: vi /opt/etc/dnsmasq.conf В него вставляем новый конфиг, заменяя старый. Адрес в server можно поменять на предпочтительный DNS сервер, например 1.1.1.1 или 9.9.9.9. user=nobody pid-file=/var/run/opt-dnsmasq.pid port=5300 min-port=4096 cache-size=1536 bogus-priv no-negcache no-resolv no-poll no-hosts clear-on-reload server=8.8.8.8 ipset=/#/bypass Если вы используете DoT или DoH на роутере, то можно указать их, чтобы DNS запросы к перенаправленным хостам также шифровались. Подсмотреть адреса и порты локальных резолверов можно командой cat /tmp/ndnproxymain.stat Все что с портами 405*** это DoH/DoT серверы кинетика. Выбираем любой. Адрес с портом указываем так: server=127.0.0.1#40500 Готово! Перезапускаем роутер. Добавляем нужные хосты в разделе Интернет-фильтры -> Настройка DNS, указывая адрес сервера DNS: 192.168.1.1:5300 Если @Александр Рыжов сделает из этого пакет, то будет вообще сказка) Повторюсь - это решение, за счет встроенного кеширования dnsmasq, работает намного стабильнее и быстрее в плане резолвинга, чем при использовании ipset-dns.
  20. Короче заменил ipset-dns на dnsmasq и все полетело, не висит на резолвинге и нормально работает с локальным DoT/DoH. И стартует всегда без проблем при перезапуске Dnsmasq тоже может добавлять все зарезолвенные адреса в ipset: ipset=/#/bypass В остальном все тоже самое.
  21. Пока решил диким костылем. S52ipset-dns: #!/bin/sh PATH=/opt/sbin:/opt/bin:/opt/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin . /opt/etc/bypass.conf if [ "$1" = "start" ]; then ipset create $SET_NAME hash:ip ip rule add fwmark 1001 table 1001 ipset-dns $SET_NAME $SET_NAME 0.0.0.0:5353 $DNS sleep 30s ipset-dns $SET_NAME $SET_NAME 0.0.0.0:5353 $DNS fi Не хотите попробовать? Все-таки работа через локальный (прошивочный) резолвер мне показалась гораздо быстрее, чем если гнать DNS через туннель. Плюс он вроде как должен кешировать. ipset-dns походу всегда стучит в upstream на каждый запрос (что логично), из-за этого первичное открытие сайта прям сильно долгое. Последующие, когда браузер уже закешировался по DNS лучше, но до перезагрузки браузера или ttl. А интеграция Bosch Home Connect (с недавнего времени их API не работает в РФ) в Home Assistant вообще не может подключится если DNS через туннель и выпадает с ошибкой таймаута.
  22. @Александр Рыжов можете подсказать по двум моментам почему так. 1. После перезагрузки роутера служба иногда не стартует, приходится запускать ее вручную через /opt/etc/init.d/S52ipset-dns start. Причем такое чаще бывает именно при установке на OPKG установленный во внутреннюю память. Походу какой-то race condition, не могу понять. 2. При попытке использовать прошивочный DoT/DOH резолвер в логах спамятся ошибки: При использовании DoT (127.0.0.1:40500 -> CloudFlare 1.1.1.1): Мар 11 19:21:20 stubby Could not get qname from query: A helper function for dicts had a name argument that for a name that is not in the dict. При использовании DoH (127.0.0.1:40508 -> CloudFlare https://cloudflare-dns.com/dns-query) Мар 11 19:05:21 https-dns-proxy 0000: 0000: 49 6e 76 61 6c 69 64 20 71 75 65 72 79 2e Invalid query. При этом вроде все работает, странно.
  23. Очень изящное решение! Спасибо 👍
×
×
  • Создать...

Важная информация

На этом сайте используются файлы cookie. Нажимая "Я принимаю" или продолжая просмотр сайта, вы разрешаете их использование: Политика конфиденциальности.