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

maksimkurb

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

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

  • Посещение

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

  1. Тоже столкнулся с похожей проблемой при разработке своей утилиты "keenetic-pbr". Мне необходимо из Entware каким-то образом узнавать, активно ли текущее WireGuard/OpenVPN/etc соедниение. Через ip addr (и соотв. библиотеку netlink) можно узнать только состояние up=true/false (т.е. интерфейс административно включён или выключен). Через RCI (curl localhost:79/rci/show/interface) доступно больше информации, там есть поле connected=yes/no и link=up/down. Вот это поле connected меня полностью устраивает, чтобы понять, активно ли текущее соединение (напр. для WireGuard это значит, что keepalive пакеты проходят), однако чтобы понять, что nwg1 это то же самое, что и WireGuard1, нужно их соотностить по какому-то полю. Если бы RCI отдавал название системного интерфейса nwg1, это бы облегчило сопоставление. --- UPD: Сопоставление по IP не очень надёжное, т.к. если интерфейс выключен в Keenetic UI, то в RCI у него не будет IP-адреса, соотв. сопоставить его будет невозможно. MAC-адрес тоже есть не у всех интерфейсов (напр. у WireGuard его нет)
  2. Добрый день. Сори, что пишу в старую тему, случайно нашёл этот тред, тот набор ansible-скриптов писал я Скрипты ansible нужно запускать на вашей собственной машине (под Linux или WSL). Ваша машина сама подключится по SSH к роутеру и всё там настроит, ставить python на роутер не нужно. Идея Ansible в том, чтобы хранить конфигурацию "как код" для последующего воспроизведения. Это удобно, если у вас есть сотня роутеров Keenetic и вы хотите одной командой поставить этот скрипт сразу на все эти роутеры. Я заархивировал этот репозиторий https://github.com/maksimkurb/ansible-keenetic-domain-routing, т.к. сам больше не пользуюсь данной конфигурацией, т.к. её сложно поддерживать и обновлять. На его замену я запаковал подобную конфигурацию в OPKG-пакет, который можно установить на роутер. Пакет содержит утилиту для скачивания и обработки списков, а также набор скриптов для простановки fwmark пакетам и создания правил маршрутизации (на подобие тому, что было в ansible-keenetic-domain-routing). Скрипты для маршрутизации написаны на BASH, чтобы их можно было поменять под себя, а утилита для обработки списков на GoLang для быстродействия (сейчас списки из 27000 ip и подсетей, а также 43000 доменов импортируются в ipset и dnsmasq за 7 секунд на моём Keenetic Viva). Одно из отличий от старого ansible-скрипта в том, что домены резолвятся не в момент импорта списка, а в момент DNS-запросов от клиентов локальной сети (через dnsmasq). Если будете этим пользоваться, дополнительно рекомендую настроить dnscrypt-proxy2 и указать у dnsmasq его как upstream-сервер вместо гугловского 8.8.8.8 по умолчанию.
  3. Тоже наткнулся на эту проблему. У меня есть желание прокинуть через VPN-соединение только два конкретных устройства, но если назначить их на неосновную политику, проброс портов перестаёт работать. Мне нужно, чтобы отдельный сервер выходил в сеть через WireGuard-туннель, но при этом, чтобы я мог подключаться извне к этому серверу по портам 80/443. Если сделать наоборот: на основной политике поставить первым туннель и остальных клиентов перекинуть в неосновную политику (чтобы они не шли через туннель), тогда я не смогу пробросить порт уже на них.
  4. Нет, не удалось. Написал Ansible-скрипт для автоматической настройки роутера, чтобы он сам скачивал списки и прописывал их в ipset (+ есть возможность добавить свои домены), на этом успокоился.
  5. Тоже долго не мог разобраться (подключаюсь по L2TP/IPSec), вписывал и 192.168.xx.150 (IP клиента) и 192.168.xx.1 (Gateway IP), но решилось тем, что вписал IP адрес из параметра P-t-P из вывода ifconfig: # ifconfig ... ppp3 Link encap:Point-to-Point Protocol inet addr:192.168.xx.150 P-t-P:>>>>1.0.0.1<<<< Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1392 Metric:1 RX packets:75585 errors:0 dropped:0 overruns:0 frame:0 TX packets:50265 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:62505563 (59.6 MiB) TX bytes:3430496 (3.2 MiB) ... В моём случае будет gw = 1.0.0.1;. После этого маршруты стали нормально создаваться. Кстати, IP адрес 1.0.0.1 является публичным и принадлежит DNS-серверу Cloudflare. Это баг VPN-сервера, который я использую, в будущих версиях они собираются выдавать другой IP для L2-соединений. По L2TP таким образом заработало, а с OpenVPN настроить пока не получается (такая же ошибка "invalid gw address", что бы ни вписывал), экспериментирую.
×
×
  • Создать...

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

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