Выборочная маршрутизация на роутерах "Keenetic"
Давно надо было написать, но сегодня наконец собрал оптимальный алгоритм.
I. Роутер фирмы Keenetic (а может быть даже Netcraze) c версией прошивки больше или равной 4.2.
II. Вот этот текст из сообщения "Список роутинга" сохранить в виде текстового файла.
III. VPS-сервер или просто конфиг от AmneziaWG.
Приложение Amnezia VPN
Необходимо получить файл конфигурации VPN для протокола AmneziaWG, но не для приложения AmneziaVPN, а для оригинального формата AmneziaWG.
Роутер Keenetic
2. Проверить, что установлен клиент VPN для протокола Wireguard. Если не установлен, то доустановить его.
3. Используя файл конфигурации, установить данный VPN на роутер. Не забыть поставить галочку "Использовать для выхода в Интернет". Добавить профиль соединения, куда добавить соединения с этим VPN. Если не знаете, как это делать, почитайте вот эту страничку на официальном сайте Keenetic.
4. Открываем файл конфигурации VPN в любом текстовом формате.
Нам из него понадобятся вот это строчки:
Jc = 4 Jmin = 50 Jmax = 1000 S1 = 18 S2 = 82 H1 = 18005218 H2 = 422258465 H3 = 638849812 H4 = 1227747503
5. В web-конфигурации роутера открываем командную строчку.
show interface
и нажмите кнопку "Отправить запрос".
Копируем ответ в любой текстовый редактор.
6. Теперь нужно узнать имя нужного интерфейса по названию созданного ранее подключения. Для этого откройте поиск (это можно сделать, одновременно нажав две клавиши Ctrl+F). Введите для поиска название созданного ранее подключения. В данном примере это VPN. Должно быть найдено одно уникальное название в поле "description". А рядом с ним будет находиться другое поле "interface-name", в котором отображается имя нужного интерфейса. В данном примере это Wireguard0 (цитата из аналогичного руководства на сайте Amnezia).
"Wireguard0": {
"id": "Wireguard0",
"index": 0,
"interface-name": "Wireguard0",
"type": "Wireguard",
"description": "VPN",
"traits": [
"Ip",
"Ip6",
"Wireguard"
],7. Используя следующий шаблон, формируем новую команду.
interface {name} wireguard asc {jc} {jmin} {jmax} {s1} {s2} {h1} {h2} {h3} {h4}- {name} - имя из п.6 (Wireguard0),
- {js}, {jmin} и т.д. значения этих самых js, jmin и т.д. из п.4.
Для нашего примера это будет вот такая команда:
interface Wireguard0 wireguard asc 4 50 1000 18 82 18005218 422258465 638849812 1227747503
8. Копируем эту команду в командную строку и нажмите кнопку "Отправить запрос".
system configuration save
и нажмите кнопку "Отправить запрос".
10. Переходим в раздел "Сетевые правила -> Маршрутизация".
Там загружаем текстовый файл (см. п.II в начале сообщения). Не забываем указать интерфейс, для которого этот роутинг будет работать (из п.4).