Jump to content

Drafted

Forum Members
  • Posts

    10
  • Joined

  • Last visited

Equipment

  • Keenetic
    KN-1011, KN-1912

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

Drafted's Achievements

Member

Member (2/5)

5

Reputation

  1. Кстати, диапазон или конкретный IP для роутинга в нужный интерфейс можно указать в UI, через панель Статические маршруты. Вот например 111.111.111.X
  2. Если кому интересно вот инструкция: Сносим opkg и ставим заново на всякий случай. Я устанавливаю во внутреннюю память роутера. Все нужные пакеты занимают около 7мб. После установки opkg заходим по SSH в Entware. Для этого в командной строке: ssh root@192.168.1.1 -p 222 Устанавливаем пакеты: opkg update && opkg install ipset iptables dnsmasq Создаем файл конфигурации: 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 Создаем хук ifstatechanged.d: vi /opt/etc/ndm/ifstatechanged.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 [ "${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 Даем права на запуск: chmod +x /opt/etc/ndm/ifstatechanged.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=5353 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 Готово! Перезапускаем роутер. Добавляем нужные хосты в интернет-фильтр, как в инструкции в шапке темы: Если @Александр Рыжов сделает из этого пакет, то будет вообще сказка) Повторюсь это решение работает намного стабильнее и быстрее чем при использовании ipset-dns.
  3. Короче заменил ipset-dns на dnsmasq и все полетело, не висит на резолвинге и нормально работает с локальным DoT/DoH. И стартует всегда без проблем при перезапуске Dnsmasq тоже может добавлять все зарезолвенные адреса в ipset: ipset=/#/bypass В остальном все тоже самое.
  4. Пока решил диким костылем. 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 через туннель и выпадает с ошибкой таймаута.
  5. @Александр Рыжов можете подсказать по двум моментам почему так. 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. При этом вроде все работает, странно.
  6. Как бы не так. Последний хендшейк 10860 секунд назад, а логи до сих пор спамит. Прекращается где-то плюс минус через день.
  7. Привет! Настроен Wireguard на Keenetic 3.9.3. Все работает - на устройствах все подключается, интернет есть, все работает. Но после отключения клиента в логах кинетика начинается бесконечный спам: Фев 24 21:20:25 kernel wireguard: Wireguard1: handshake for peer "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" (26) (XX.XXX.XXX.XX:38319) did not complete after 5 seconds, retrying (try 18) Фев 24 21:20:30 kernel wireguard: Wireguard1: handshake for peer "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" (26) (XX.XXX.XXX.XX:38319) did not complete after 5 seconds, retrying (try 19) Фев 24 21:20:35 kernel wireguard: Wireguard1: handshake for peer "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" (26) (XX.XXX.XXX.XX:38319) did not complete after 5 seconds, retrying (try 20) Фев 24 21:20:41 kernel wireguard: Wireguard1: handshake for peer "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" (26) (XX.XXX.XXX.XX:38319) did not complete after 20 attempts, giving up Фев 24 21:21:11 kernel wireguard: Wireguard1: handshake for peer "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" (26) (XX.XXX.XXX.XX:38319) did not complete after 5 seconds, retrying (try 2) Фев 24 21:21:16 kernel wireguard: Wireguard1: handshake for peer "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" (26) (XX.XXX.XXX.XX:38319) did not complete after 5 seconds, retrying (try 3) Фев 24 21:21:22 kernel wireguard: Wireguard1: handshake for peer "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" (26) (XX.XXX.XXX.XX:38319) did not complete after 5 seconds, retrying (try 4) Фев 24 21:21:27 kernel wireguard: Wireguard1: handshake for peer "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" (26) (XX.XXX.XXX.XX:38319) did not complete after 5 seconds, retrying (try 5) Конфигурация сервера: Клиент: Не понимаю в чем дело.
  8. Доброго времени суток! Добавьте пожалуйста возможность создавать маршруты по адресу хоста в статических маршрутах, как это сделано например в Микротике. Очень актуально сейчас и очень не хватает для удобства. UPD: Тут тоже просят.
×
×
  • Create New...