VLAN на OpenWrt x86_64

Openwrt

Обсуждение тут

🧩 1. Что нужно знать заранее

  • OpenWrt x86/64 не использует аппаратный switch как роутеры, поэтому VLAN настраиваются через Linux software VLAN (802.1q).
  • Интерфейсы называются обычно eth0, eth1 и т. д.
  • VLAN создаются как виртуальные интерфейсы:
    eth0.10 = VLAN ID 10 на физическом порту eth0.

⚙️ 2. Пример сценария

Предположим:

  • eth0 — подключён к trunk-порту коммутатора (VLAN 10 и 20).
  • eth1 — WAN (интернет).
  • VLAN 10 — сеть пользователей (192.168.10.0/24).
  • VLAN 20 — IoT-сеть (192.168.20.0/24).

🧾 3. Настройка через LuCI (веб-интерфейс)

  1. Перейди в Network → Interfaces → Devices
  2. Нажми “Add device configuration”
    • Type: 802.1Q VLAN (eth0)
    • Base device: eth0
    • VLAN ID: 10
    • Имя интерфейса: eth0.10
  3. Повтори для VLAN 20 → eth0.20
  4. Теперь в Network → Interfaces создай логические интерфейсы:
    • LAN10
      • Device: eth0.10
      • Protocol: Static address
      • IP: 192.168.10.1/24
      • DHCP: включён
    • LAN20
      • Device: eth0.20
      • Protocol: Static address
      • IP: 192.168.20.1/24
      • DHCP: включён
  5. Настрой Firewall zones:
    • Создай зоны lan10 и lan20 (или используй одну LAN-зону, если сети должны видеть друг друга).
    • WAN оставь как есть.

🧑‍💻 4. Настройка через UCI (консоль / SSH)

# VLAN 10
uci set network.vlan10=device
uci set network.vlan10.name='eth0.10'
uci set network.vlan10.type='8021q'
uci set network.vlan10.ifname='eth0'
uci set network.vlan10.vid='10'

# VLAN 20
uci set network.vlan20=device
uci set network.vlan20.name='eth0.20'
uci set network.vlan20.type='8021q'
uci set network.vlan20.ifname='eth0'
uci set network.vlan20.vid='20'

# LAN10 interface
uci set network.lan10=interface
uci set network.lan10.device='eth0.10'
uci set network.lan10.proto='static'
uci set network.lan10.ipaddr='192.168.10.1'
uci set network.lan10.netmask='255.255.255.0'

# LAN20 interface
uci set network.lan20=interface
uci set network.lan20.device='eth0.20'
uci set network.lan20.proto='static'
uci set network.lan20.ipaddr='192.168.20.1'
uci set network.lan20.netmask='255.255.255.0'

# Сохранить и применить
uci commit network
/etc/init.d/network restart

🔥 5. Проверка

ip link show type vlan

Должно показать:

eth0.10@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> ...
eth0.20@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> ...

Пингуй, подключайся к соответствующим VLAN-портам на коммутаторе и проверяй раздачу DHCP.