Категории
Тонкости маршрутизации на Keenetic / WireGuard
02.03.2026 | из категории: Сети LANprogramm). На роутере есть второй туннель — к PFsense с подсетью 10.10.30.0/24. Конфликт маршрутов: трафик ноутбука в локальную сеть уходит не туда. Решение — заставить роутер отправлять пакеты от конкретного IP (ноутбука) через нужный интерфейс. Для этого нужен Policy‑Based Routing.
📚 Содержание
- Почему стандартного веб‑интерфейса недостаточно?
- Анатомия маршрутизации в Linux (ядро Keenetic)
- Policy‑Based Routing — маршрутизация по источнику
- Живой пример на CLI (ip rule / ip route)
- ❓ Где же keen‑pbr? (Entware и неофициальные пакеты)
- 📦 Как установить keen‑pbr (по шагам)
- Сравнение CLI, keen‑pbr и AntiKeen
- Выводы и полезные ссылки
🔍 Почему веб‑интерфейс Keenetic не умеет PBR?
Веб‑морда Keenetic отлично подходит для 95% сценариев: статические маршруты, политики Multi‑WAN, проброс портов. Но логика «если источник — IP 172.16.88.50, то для подсети 10.10.30.0/24 используй интерфейс dlyaudalenki» требует работы с несколькими таблицами маршрутизации и правилами (RPDB). Это уровень опытного администратора, поэтому в интерфейс такую гибкость не закладывают.
🧠 Анатомия маршрутизации (ядро Linux)
В основе Keenetic — Linux. Маршрутизация строится на трёх китах:
- Таблицы маршрутизации — обычные списки: «сеть назначения → шлюз/интерфейс». По умолчанию таблица
main. - Правила (
ip rule) — диспетчер: «для пакетов с признаком X используй таблицу Y». - Дополнительные таблицы — особые маршруты для избранных пакетов.
# Стандартный маршрут в main
10.10.30.0/24 via 172.16.88.1 dev wg1 # весь трафик уходит на PFsense
# Правило: пакеты с источника 172.16.88.50 смотрят в таблицу 100
ip rule add from 172.16.88.50 lookup 100
# Таблица 100 содержит обходной путь
ip route add 10.10.30.0/24 dev dlyaudalenki table 100
🎯 Policy‑Based Routing (PBR) — маршрутизация по источнику
Именно это и нужно: пакеты от ноутбука (172.16.88.50) к 10.10.30.0/24 направлять не на шлюз PFsense, а через интерфейс dlyaudalenki. Обычный статический маршрут здесь не поможет — он конфликтует с основным. Выход — разделение на уровне правил.
⚙️ Живой пример команд CLI (сохраняются до перезагрузки)
Подключаемся по SSH и выполняем:
# 1. Создаём отдельную таблицу маршрутизации (число 100, можно другое)
ip route add 10.10.30.0/24 dev dlyaudalenki table 100
# 2. Добавляем правило: если источник — IP ноутбука (172.16.88.50), смотрим таблицу 100
ip rule add from 172.16.88.50 lookup 100
# 3. Проверяем
ip route show table 100
ip rule show
Важно: после перезагрузки правила исчезнут. Для автоматизации можно использовать /opt/etc/ndm/startup.sh (если есть Entware) или /etc/rc.local.
❓ Где же keen‑pbr? Почему его нет в списке компонентов?
Вот фрагмент списка компонентов из веб‑интерфейса Keenetic:
И это абсолютно нормально, потому что:
- keen‑pbr — неофициальный (сторонний) пакет, созданный разработчиком maksimkurb. Он никак не связан с компанией Keenetic и распространяется "как есть".
- Он устанавливается через Entware — систему пакетов для роутеров на базе Linux, а не через официальный репозиторий Keenetic.
- Для работы Entware необходим USB‑накопитель и включённый компонент "Поддержка открытых пакетов" (у вас он установлен).
- Модули "Модули ядра подсистемы Netfilter" должны быть установлены — это требуется для keen‑pbr. В вашем списке они не установлены.
📦 Как установить keen‑pbr (пошагово)
Шаг 1. Подготовка роутера
- Вставьте USB‑накопитель (минимум 512 МБ, отформатирован в ext2/3/4 или NTFS).
- В разделе Управление → Параметры системы убедитесь, что установлены:
- ✅ Протокол IPv6
- ✅ Поддержка открытых пакетов
- ✅ Модули ядра подсистемы Netfilter (если нет — установите)
Шаг 2. Установка Entware
Entware установится автоматически после подключения USB и включения "Поддержки открытых пакетов". Проверить можно через SSH:
opkg list
Шаг 3. Установка keen‑pbr
Подключитесь по SSH к роутеру и выполните команды (взято из официальной документации пакета):
# Добавляем репозиторий keen-pbr
mkdir -p /opt/etc/opkg
echo "src/gz keen-pbr https://maksimkurb.github.io/keen-pbr" > /opt/etc/opkg/keen-pbr.conf
# Обновляем списки пакетов
opkg update
# Устанавливаем зависимости (если ещё не установлены)
opkg install ca-certificates wget-ssl
opkg remove wget-nossl
# Устанавливаем keen-pbr
opkg install keen-pbr
Шаг 4. Настройка под вашу задачу
После установки отредактируйте файл /opt/etc/keen-pbr/keen-pbr.conf. Укажите интерфейс, через который должен идти трафик (например, dlyaudalenki), и в списке local.lst пропишите IP вашего ноутбука (172.16.88.50). Подробности — в документации пакета.
📊 Сравнение методов: CLI, keen‑pbr, AntiKeen
| Метод | Сложность | Гибкость | Постоянство | Примечание |
|---|---|---|---|---|
| Чистый CLI (ip rule) | Средняя | 🔥 Полная | Требует скриптов | Подходит для разовых экспериментов |
| keen‑pbr | Выше (Entware) | 🔥🔥 Огромная (домены, списки) | Автоматически | Удобно для постоянной сложной маршрутизации |
| AntiKeen | Низкая | 📋 Только статика | Загрузка файла | Только статические маршруты (не для PBR) |
| Веб‑интерфейс | Очень низкая | ❌ | Да | Только базовые сценарии |
📌 Итоги и полезные ссылки
- Маршрутизация по источнику (PBR) — единственный способ обойти конфликт двух маршрутов к одной сети.
- keen‑pbr существует, но это сторонний пакет, который устанавливается через Entware с USB‑накопителя.
- В официальном списке компонентов Keenetic его нет и не будет.
- Если не хотите ставить Entware — используйте чистые команды
ip ruleв CLI (они работают сразу).
🔗 Полезные ресурсы
- Официальный репозиторий keen‑pbr на GitHub — документация, issues, примеры
- База знаний Keenetic: Entware и открытые пакеты
- Ветка на 4PDA про keen‑pbr
«Иногда, чтобы трафик пошёл туда, куда нужно, приходится заглядывать под капот. CLI и Entware открывают дверь в мир настоящей маршрутизации».