-
Posts
1,212 -
Joined
-
Last visited
-
Days Won
25
Content Type
Profiles
Forums
Gallery
Downloads
Blogs
Events
Everything posted by Александр Рыжов
-
IMHO, логи существуют отнюдь не для того, чтобы кому-то нравится. Если они помогают в диагностике проблем — это хорошие логи.
-
ipset-dns для выборочного роутинга
Александр Рыжов replied to Александр Рыжов's topic in Каталог готовых решений Opkg
Похоже из [ "${change}-${connected}-${link}-${up}" == "link-yes-up-up" ] можно выкинуть $change. Поскольку "${connected}-${link}-${up}" == "yes-up-up" и у меня и у вас встречается только один раз и, следственно, однозначно определяет статус интерфейса. Обновлю линк на пакет в первом посте. -
ipset-dns для выборочного роутинга
Александр Рыжов replied to Александр Рыжов's topic in Каталог готовых решений Opkg
По идее можно, у записей в ipset'е предусмотрено поле для комментов. Проверял на 3.9.х. Перед отловом нужных событий сперва собираю все возможные варианты, положив в нужную папку /opt/etc/ndm/<name it>.d такое: #!/bin/sh LOG='/opt/tmp/hook.log' echo -e "\n\n--- $(date '+%T') $0 fired ---" >> $LOG echo $@ >> $LOG set | grep -vE "^'\$|^HOME|^HOSTNAME|^IFS|^LANG|^LD_|^LINENO|^LOG|^NDM_MOUNT|^OPTIND|^PATH|^PPID|^PS|^PWD|^SHELL|^SHLVL|^TERM|^timezone|^USER|^FUNCNAME" >> $LOG exit 0 Во вложении выхлоп скрипта при выключении и повторном включении VPN-соединения. hook.log -
ipset-dns для выборочного роутинга
Александр Рыжов replied to Александр Рыжов's topic in Каталог готовых решений Opkg
Никаких. Лишь бы список выбранных доменов влез на флешку. Хотя такой способ уже трудно будет назвать точечным:) Посмотрите раздел «Диагностика проблем». netfilter c доменами не работает, после того как ipset-dns разрешила очередное доменное имя в IP-адрес(а), способа сопоставить назад эти адреса с исходным доменом нет. Reverse DNS resolving будет не всегда показательным и я бы на него не стал ориентироваться вовсе. Вы вольны выбрать любой DNS-сервер для работы утилиты ipset-dns в конфиге /opt/etc/bypass.conf Он первым делом добавится в ipset, следственно, обращения к нему будут идти тем же путём, что и к выбранным для выборочного роутинга ресурсам. В принципе, можно, только в общем случае не нужно (см. выше). В соседних темах можно найти инфу на каких портах работают прошивочные DoH/DoT. -
ipset-dns для выборочного роутинга
Александр Рыжов replied to Александр Рыжов's topic in Каталог готовых решений Opkg
Что-нибудь основанное на dnsmasq или adguardhome, они так же умеют наполнять ipset по результатам разрешения DNS-имён. Лично я до последнего использовал это. Ещё отмечу, если DNS-сервер в ответ присылает сразу несколько A/AAAA-записей, то они заносятся в ipset сразу все. С лёгкой доработкой это решение может быть развёрнуто на любом кинетике, где USB-накопители вообще не предусмотрены. Дело в том, что нужные хук скрипты работают и там, хоть это нигде не документировано. Именно поэтому в роутерах без USB доступен в компонентах OPKG. Другими словами, если вы соберёте прошивку со своими дополнительными компонентами (busybox, iptables, ipset), то оно будет прекрасно себя чувствовать, к примеру, на Keenetic Start. Никаких логов или динамических конфигов у приведённого решения нет, все файлы статичные. Ни USB-флешку, ни флешку роутера протирать не будут. -
Самостоятельная Сборка Прошивок Keenetic SDK
Александр Рыжов replied to sergeidavg91's question in Развитие
Не собирается хостовый cmake. Либо хостовое окружение (Ubuntu? Debian?) не отвечают требованиям сборки, либо собираемая версия стара настолько, что не собирается на (слишком:) современном для неё хосте. -
Если уж делать в прошивке, то законченную фичу по выборочному роутингу.
- 1 reply
-
- 1
-
ipset-dns для выборочного роутинга
Александр Рыжов replied to Александр Рыжов's topic in Каталог готовых решений Opkg
В первой прикидке все зависимости менее одного мегабайта, а значит, решение с помощью SDK можно поднять хоть на Keenetic Start. Необходимые для конфигурирования имена VPN-интерфейса и его подсеть можно выуживать, к примеру, по названию соединения. Если надо больше, то вряд ли стоит это помещать в прошивочный конфиг или WebUI. Я бы использовал другое решение. @keenet07, всё так. По вопросам: Да, всё в памяти. Решение, по сути, три статичных файла обвязки вокруг iptables и ipset. Ничего. Таблица наполняется адресами, но роутинг ничем не отличается от роутинга по умолчанию. Прошивка. Глубина бесконечна. Да. Понимаю, что при высоких аптаймах сет может накапливать лишнее, но при точечном обходе я бы не стал заморачиваться. Если хочется такое реализовать, то создавайте ipset сразу указывая время жизни элементов и ограничивайте TTL записей DNS-кэша в прошивочном сервисе с помощью dns-proxy max-ttl … Нет. Прошивка не отображает роутинг по таблицам/сетам. Т.е. маршруты по умолчанию так же окажутся в таблице для отдельного роутинга. Зачем? -
Ещё один легковесный способ выборочного роутинга с однократной настройкой в консоли. Основан на том, что актуальная прошивка может использовать разные 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 вместе с субдоменами: где 192.168.1.1 — IP-адрес роутера. Если вам привычней CLI-интерфейс, то аналог записи выше: ip name-server 192.168.1.1:5353 intel.com Число записей ограничено 64. Изменение списка доменов применяется налету. Для того, чтобы новые настройки вступили в силу ничего делать не надо.
- 75 replies
-
- 18
-
В новой версии изменился формат конфига. Проще переименовать старый и настроить заново. mv /opt/etc/AdGuardHome/AdGuardHome.yaml /opt/etc/AdGuardHome/AdGuardHome.yaml.prev
-
KMS сервер vlmcsd на Linux
Александр Рыжов replied to SigmaPlus's topic in Вопросы по сборке и настройке Opkg
Вареза в репозитории не будет. -
Свой собственный vtuner на keenetic
Александр Рыжов replied to Mr.Hunt's topic in Каталог готовых решений Opkg
Часто используемые (и тяжело собираемые нативно) python-модули уже есть в репозитории, в том числе python3-pillow. -
«Белый» IP от Ростелеком с помощью Entware
Александр Рыжов replied to Khaninea's topic in Вопросы по сборке и настройке Opkg
Только довольно устаревший из-за использования ndmq. Надо бы переписать под актуальный API. -
Тоже был вынужден ограничить журнал запросов до 24 часов из-за размера лога, теперь: # du -hs /opt/etc/AdGuardHome/data/* 961.0K /opt/etc/AdGuardHome/data/filters 7.5M /opt/etc/AdGuardHome/data/querylog.json 29.2M /opt/etc/AdGuardHome/data/querylog.json.1 25.0K /opt/etc/AdGuardHome/data/sessions.db 185.0K /opt/etc/AdGuardHome/data/stats.db
-
Нет.
-
Пару лет назад прошивочный DNS-сервис научили запоминать имена хостов, которыми они представляются в момент обращения к DHCP.
-
Нет.
-
Добавьте в скрипт ниже свои учётные данные для AGH, проверьте список блокируемых сервисов и запускайте из cron с нужным параметром: cat ./agh_block_svc.sh #!/bin/sh # user:pass - учётка для WebUI API='http://user:pass@localhost:3000/control' # список сервисов для блокировки, возможные варианты в выводе ./agh_block_svc.sh list BLOCKED='["youtube","wechat"]' case $1 in block) curl --header 'Content-Type: application/json' --request POST --data-binary "$BLOCKED" $API/blocked_services/set ;; unblock) curl --header 'Content-Type: application/json' --request POST --data-binary "[]" $API/blocked_services/set ;; list) curl --silent $API/blocked_services/all | jq '.blocked_services[].id' ;; list_blocked) curl --silent $API/blocked_services/list | jq '.[]' ;; *) echo "Usage: $0 block|unblock|list|list_blocked" ;; esac Для работы придётся установить пакеты curl, jq, cron. Задания для cron попробуйте сделать самостоятельно:)
-
В случае использования Wireguard'а заменить: protocol bgp antifilter { import filter { if martians() then reject; gw = 10.9.0.1; # override route nexthop accept; }; на: protocol bgp antifilter { import filter { if martians() then reject; ifname = "nwg1"; # override route nexthop accept; }; Спасибо за решение, изложенное в начале темы. Для чего нужен bird, если не используется BGP?
-
Стриминг аудио в локалку
Александр Рыжов replied to p4tz's topic in Вопросы по сборке и настройке Opkg
Для icecast вам нужен источник, например, mpd. Для управления mpd вам понадобится клиент, например ympd. Ничего специфичного для роутера в настройке стриминга нет, поэтому на профильных форумах будет быстрее найти ответ.