Как пересылать пакеты между VLAN на маршрутизаторе Open vSwitch?
Я пытаюсь настроить маршрутизатор OVS. Я хочу добиться того, чтобы, добавляя потоки на маршрутизаторе OVS, устройства, подключенные с помощью портов коммутатора (порт 2-5), могли получить доступ к Интернету, если кабель Интернета подключен к порту WAN (порт 1).
Моя конфигурация VLAN в файле /etc/config/network
роутера OVS это:
eth1.1: 0t, 2
eth1.2: 0t, 3
eth1.3: 0t, 4
eth1.4: 0t, 5
eth1.5: 1, 6
Выход из ovs-vsctl show
является:
root@OpenWrt:~# ovs-vsctl show
84d9ab2f-a3e6-46e3-874f-156ef975d673
Bridge "br0"
Controller "tcp:<an IP address>"
is_connected: true
fail_mode: standalone
Port "eth1.4"
Interface "eth1.4"
Port "eth1.2"
Interface "eth1.2"
Port "eth1.1"
Interface "eth1.1"
Port "br0"
Interface "br0"
type: internal
Port "eth1.3"
Interface "eth1.3"
Усеченный вывод ifconfig
является:
br0: 192.168.3.1
eth0: 192.168.0.105 (There is another home router)
eth1, eth1.1-1.4
Поскольку подсеть предоставляет префикс IP 192.168.3.*, А самому маршрутизатору назначается IP 192.168.0.Интересно, полезно ли добавить поток для пересылки пакетов из 192.168.3. до 192.168.0.104.
Так ли это правильно, если я предполагаю, что машина с IP 192.168.3.10, например, хочет сделать запрос к Google, путь должен быть 192.168.3.10->192.168.0.105->192.168.0.1(домашний маршрутизатор)-> вне?
Это для создания потока на основе Layer3. Но мне интересно, могу ли я создавать потоки между VLAN? Согласно моей конфигурации, порт WAN - это порт 1, принадлежит VLAN 5. Считаете ли вы целесообразным двунаправленное добавление потоков из VLAN 1 (машина подключена) в VLAN 5 и из VLAN 5 в VLAN 1? Если да, то есть ли примеры, которые я могу привести, пожалуйста?
Еще одна деталь. Выход из ifconfig
показывает, что интерфейсу eth0 был присвоен IP 192.168.0.105, что означает, что он подключен к моему домашнему маршрутизатору (192.168.0.1). Так нужно ли пересылать пакеты между ними на IP-адреса?
Я действительно ценю любую помощь.
2 ответа
Я решил эту проблему. Ниже приводится решение.
Основная идея заключается в создании моста linux, соединенного с мостом OVS, когда мне нужны виртуальные локальные сети для связи с внешним интернетом. Я могу использовать brctl для управления Linux-мостом. Сначала я попробовал:
brctl addbr br-lan
brctl addif br-lan br0
Тогда все машины могут получить доступ к интернету. Но, к сожалению, только на пару минут. После этого роутер рухнул. Я больше не мог получить доступ к маршрутизатору OVS, пока не сбросил его. Это может быть вызвано неправильной конфигурацией моста. Я пробовал много способов, и, наконец, этот работает:
brctl addbr br-lan
ifconfig br-lan 192.168.3.1
brctl addif br-lan br0
ifconfig br0 0.0.0.0
Я считал, что Linux-мост br-lan должен быть изначально связан с eth0 (wan). И, как я знаю, br0 может означать "локальный" с IP-адресом 192.168.3.1. Все VLAN общаются с этим IP-адресом. Если я перенесу "local" на linux bridge, который соединен с портом wan, он должен работать.
Спасибо всем, кто смотрел и пытался мне помочь!
Следующие команды добавляют два правила для отправки пакета из VLAN 5 и порта 5 в порт 1 с VLAN 1 и наоборот:
ovs-ofctl add-flow br0 in_port=5,dl_vlan=5,actions=mod_vlan_vid:1,output:1
ovs-ofctl add-flow br0 in_port=1,dl_vlan=1,actions=mod_vlan_vid:5,output:5