Как пересылать пакеты между 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
Другие вопросы по тегам