Категории: Сети и серверы

Настройка нескольких подсетей и маршрутизации в OpenWrt

Так бывает, что у вас два интернет канала или две сети, одна из которых подключается в интернет через VPN, а другая — напрямую. Соответственно, обе этих внутренних сети будут иметь разные публичные IP в интернет, что может быть полезно. Также вам может потребоваться разнести сети на два устройства, потому что пропускная способность одного не достаточна, но при этом пустить интернет трафик из обоих сетей через один интернет канал. Во всех случаях настройка сети штатными средствами заводской прошивки роутера для выполнения описанных задач чаще всего не возможна. Для этого надо использовать роутеры с прошивками OpenWrt, DD-WRT, LEDE и другими Linux-подобными. Мы рассмотрим решение раздач на OpenWrt как наиболее удобной и часто обновляемой.

Задача

Есть в 2 роутера, один в сети 192.168.1.0/24, другой — 192.168.2.0/24, необходимо их соединить и настроить маршрутизацию меду ними. Оба роутера TP-Link, один с заводской прошивкой (192.168.1.1), другой на OpenWrt 18.06 (192.168.2.1). Необходимо соединить сети, но обеспечить независимое подключение к Интернет пользователей из двух сетей.

Исходная информация: eth0 — встроенный свитч в OpenWrt; eth0.1 — порты, свитча, относящиеся к VLAN 1, eth0.2 — порты, свитча, относящиеся к VLAN 2,

Решение

Исходная информация: eth0 — встроенный свитч в OpenWrt; eth0.1 — порты, свитча, относящиеся к VLAN 1, eth0.2 — порты, свитча, относящиеся к VLAN 2. eth1 — WAN интерфейс.

  1. Подключаем роутер 192.168.2.1 через WAN порт к Интернет и патч-кордом порт LAN4 с любым LAN портом роутера 192.168.1.1. Не обязательно использовать порт LAN4, но в данном случае настройка будет показана на его примере.
  2. В роутере на OpenWrt идем в Network -> Switch. Создаем VLAN с ID 2 (кнопка Add). Настраиваем порт LAN 4 таким образом, чтобы он относился к VLAN 2:
  3. Идем Network -> Interfaces. Выбираем интерфейс LAN (br-lan), нажимаем Edit. Переключаемся на закладку Physical Settings. Там в разделе Interface выбираем только eth0.1 и Wireless network:
  4. Создаем новый интерфейс Network -> Interfaces -> Add new interface, называем его Uplink (или как угодно).
  5. Присваиваем новому интерфейсу IPv4 адрес 192.168.1.98 и IP gateway 192.168.1.1. Указываем DNS сервера из сети 192.168.1.0. На закладке Physical Settings указываем использование интерфейса eth0.2. Тем самым мы выносим данный порт в отдельный VLAN 2, который относится к подсети другого роутера.
  6. На закладке Firewall settings нового интерфейса создаем новую firewall zone, назовем её uplink.
  7. Идем в Network -> Firewall. В Zones напротив зоны lan нажимаем Edit и редактируем Inter-Zone Forwarding, разрешив форвард трафика из lan в uplink и из uplink в lan. Это действие создает цепочку zone_lan_forward и zone_uplink_forward в таблице Filter файрвола:
  8. К сожалению, этого недостаточно, потому что forward пакетов будет происходить, а трансляция адресов между разными сетями — нет. Для трансляции адресов необходимо включить маскарадинг.  В Network -> Firewall в Zones напротив зоны lan и uplink ставим галку Masquerading:
  9. Идем в Status  -> Routes и проверяем Active IPv4-Routes. Мы должны увидеть, что сеть 192.168.2.0/24 идет через интерфейс lan, 192.168.1.0/24 через uplink, а 0.0.0.0/0 (то есть все другие адреса Интернет) через wan. Если мы дополнительно хотим машрутизировать доступ в интернет через первый роутер, то необходимо или настроить интерфейс uplink на динамический IP адрес — в этом случае первый роутер будет присваивать адрес интерфейсу uplink самостоятельно, а в OpenWrt динамический адрес приоритет, поэтому он будет пересылать весь трафик в первый роутер.
  10. Второй вариант — добавить статический маршрут на роутере OpenWrt для сети 0.0.0.0/0. Для этого идем в Network -> Static Routes создаем маршрут в сеть 0.0.0.0/0.

Все работает!

Уточню, что для разрешения неполных имен из домена, который находится в сети 192.168.1.0/24, необходимо настроить DNS. Для этого в разделе Network -> DHCP and DNS необходимо отключить Domain required, настроить Local domain и в DNS forwardings указать DNS сервер домена, имена из которого вы хотите разрешать с помощью доменного контроллера.

Альтернативный вариант — настроить использование DNS серверов домена в свойствах DHCP. Для этого в интерфейсе lan перейдите в Network -> Interfaces -> LAN -> Edit. В разделе DHCP server на закладке Advanced Settings в окне DHCP-Options укажите 6,192.168.1.1, где 6 — это 6-я опция, указывающая на альтернативные DNS сервера, а 192.168.1.1 — это DNS сервер в первой сети.

Для маршрутизации из первой сети во вторую на первом роутере также необходимо добавить маршрут. В заводской прошивке TP-link это делается в разделе Дополнительные настройки маршрутизации -> Список статических маршрутов. Добавляем маршрут:

[Посещений: 14 676, из них сегодня: 21]

Свежие посты

Процессы зомби, демоны и сироты в Linux

Процессы и программы Программа в Unix — это последовательность исполняемых инструкций на диске. Вы можете…

12 октября 2024

Изучаем сертификаты, приватные ключи и keystore

Существует большое разнообразие форматов, в которых создаются сертификаты и приватные ключи для них. Часто они…

20 июля 2024

Восстановление доступа к Docker Hub

Все известно, что Докерхаб закрыл доступ для пользователей из санкционных стран, включая РФ и РБ.…

30 мая 2024

Как посмотреть сертификат хоста через командную строку

Зачастую бывает необходимо проверить, а какой SSL сертификат отдает тот или иной хост на определенном…

21 февраля 2024

Использование choco через прокси

Choco - лучший пакетный менеджер для Windows. Чтобы использовать его в корпоративной среде за прокси,…

21 февраля 2024

Обзор SSD диска XrayDisk

В России становится все больше малоизвестных китайских товаров, поэтому сегодня у нас на обзоре китайский…

3 декабря 2023