![Настройте VPN-туннель только для одной VLAN](https://rvso.com/image/1557202/%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D1%82%D0%B5%20VPN-%D1%82%D1%83%D0%BD%D0%BD%D0%B5%D0%BB%D1%8C%20%D1%82%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE%20%D0%B4%D0%BB%D1%8F%20%D0%BE%D0%B4%D0%BD%D0%BE%D0%B9%20VLAN.png)
У меня следующая топология:
- маршрутизатор (192.168.10.1, 192.168.11.1)
- WAN - eth1 (1.2.3.4)
- VLAN1 (br-lan) - eth0 (ПК1, 192.168.10.2, ПК2, 192.168.10.3)
- VLAN2 (br-lantv) - eth2 (Smart TV, 192.168.11.2)
и у меня запущен клиент OpenVPN на маршрутизаторе. Я хочу направить ТОЛЬКО трафик от Smart TV (VLAN2) через VPN-туннель, остальной трафик (маршрутизатор, VLAN1) должен идти напрямую в WAN, без того, чтобы телевизор даже заметил (это довольно глупо, и я не могу настроить на нем VPN-клиент).
Маршрутизатор работает под управлением OpenWRT (turris omnia).
В итоге у меня получилось следующее:
/etc/config/брандмауэр
config zone
option name 'lan'
list network 'lan'
config zone
option name 'lantv'
list network 'lantv'
config zone
option name 'vpn'
list network 'vpntun0'
config forwarding
option src 'lantv'
option dest 'vpn'
config forwarding
option src 'lan'
option dest 'wan'
/etc/config/сеть
config interface 'lan'
option ifname 'eth0'
option force_link '1'
option type 'bridge'
option proto 'static'
option netmask '255.255.255.0'
option ip6assign '60'
option ipaddr '192.168.10.1'
config interface 'lantv'
option ifname 'eth2'
option type 'bridge'
option proto 'static'
option netmask '255.255.255.0'
option ipaddr '192.168.11.1'
config interface 'nordvpntun'
option proto 'none'
option ifname 'tun0'
option delegate '0'
config interface 'wan'
option ifname 'eth1'
option proto 'dhcp'
И в итоге получаем следующую таблицу маршрутизации:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 10.7.7.1 128.0.0.0 UG 0 0 0 tun0
default 1.2.3.4 0.0.0.0 UG 0 0 0 eth1
10.7.7.0 * 255.255.255.0 U 0 0 0 tun0
78.45.252.0 * 255.255.255.0 U 0 0 0 eth1
78.45.252.1 * 255.255.255.255 UH 0 0 0 eth1
128.0.0.0 10.7.7.1 128.0.0.0 UG 0 0 0 tun0
173.209.60.43 1.2.3.4 255.255.255.255 UGH 0 0 0 eth1
192.168.10.0 * 255.255.255.0 U 0 0 0 br-lan
192.168.11.0 * 255.255.255.0 U 0 0 0 br-lantv
Трафик из локальной сети не может выйти в Интернет.
Я попробовал следующее:
config forwarding
option src 'lan'
option dest 'vpn'
который направляет все, даже с ПК и роутера, через VPN, а это нежелательно.
ИЛИ
--route-nopull
в конфигурацию VPN, которая в итоге оказалась без маршрутов, и lantv
был перенаправлен на vpn
, но там он и закончился, и интернет был недоступен.
Вероятно, я упускаю способ определения route default gw
для конкретной VLAN и настройки lantv
таким образом. Или я делаю это совершенно неправильно? Нужна ли вообще отдельная VLAN? Я хочу перенаправить только одно устройство. Спасибо!
решение1
Операторы "пересылки" в конфигурации luci относятся к брандмауэру (и, похоже, для его работы нужны дополнительные записи). Взглянитездесь(OpenWRT WiKi).
Что вам действительно нужно сделать, так это реализовать маршрутизацию на основе политики (источника), которую можно настроить с помощью правил и различных таблиц маршрутизации. Для этого вам понадобится iproute2, и краткий HowTo doc доступенздесь(OpenWrt WiKi).