↩️ Назад

Тонкости маршрутизации на Keenetic / WireGuard

02.03.2026 | Статья из категории: Сети LAN

📌 Суть проблемы: Ноутбук подключён к офисному Keenetic через VPN (пир programm). На роутере есть второй туннель — к PFsense с подсетью 10.10.30.0/24. Конфликт маршрутов: трафик ноутбука в локальную сеть уходит не туда. Решение — заставить роутер отправлять пакеты от конкретного IP (ноутбука) через нужный интерфейс. Для этого нужен Policy‑Based Routing.

📚 Содержание

  1. Почему стандартного веб‑интерфейса недостаточно?
  2. Анатомия маршрутизации в Linux (ядро Keenetic)
  3. Policy‑Based Routing — маршрутизация по источнику
  4. Живой пример на CLI (ip rule / ip route)
  5. ❓ Где же keen‑pbr? (Entware и неофициальные пакеты)
  6. 📦 Как установить keen‑pbr (по шагам)
  7. Сравнение CLI, keen‑pbr и AntiKeen
  8. Выводы и полезные ссылки

🔍 Почему веб‑интерфейс Keenetic не умеет PBR?

Веб‑морда Keenetic отлично подходит для 95% сценариев: статические маршруты, политики Multi‑WAN, проброс портов. Но логика «если источник — IP 172.16.88.50, то для подсети 10.10.30.0/24 используй интерфейс dlyaudalenki» требует работы с несколькими таблицами маршрутизации и правилами (RPDB). Это уровень опытного администратора, поэтому в интерфейс такую гибкость не закладывают.

🧠 Анатомия маршрутизации (ядро Linux)

В основе Keenetic — Linux. Маршрутизация строится на трёх китах:

  1. Таблицы маршрутизации — обычные списки: «сеть назначения → шлюз/интерфейс». По умолчанию таблица main.
  2. Правила (ip rule) — диспетчер: «для пакетов с признаком X используй таблицу Y».
  3. Дополнительные таблицы — особые маршруты для избранных пакетов.
# Стандартный маршрут в 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:

✅ Поддержка открытых пакетов — Обязательный
❌ Модули ядра подсистемы Netfilter — Не установлен
❌ WireGuard VPN-сервер — Не установлен
✅ Сервер SSH — Будет обновлен
... и ещё 50+ компонентов, но нет keen‑pbr

И это абсолютно нормально, потому что:

⚠️ Важно: keen‑pbr не является официальным продуктом Keenetic. Всю ответственность за его работу берёте на себя. Но он реально работает и решает задачи PBR «из коробки» с удобными конфигами.

📦 Как установить keen‑pbr (пошагово)

Шаг 1. Подготовка роутера

Шаг 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)
Веб‑интерфейсОчень низкаяДаТолько базовые сценарии

📌 Итоги и полезные ссылки

🔗 Полезные ресурсы

«Иногда, чтобы трафик пошёл туда, куда нужно, приходится заглядывать под капот. CLI и Entware открывают дверь в мир настоящей маршрутизации».

🧠 Если копать глубже — можно даже маршрутизировать по доменам через keen‑pbr. Но это уже совсем другая история.



Категории:

Категории

Комментарии

Пока нет комментариев. Будьте первым!

Оставить комментарий

← Назад к списку статей

Посетителей сегодня: 0
о блоге | карта блога

© Digital Specialist | Не являемся сотрудниками Google, Яндекса и NASA