Как я могу МАСКАРАДИТЬ между мостами VLAN

Как я могу МАСКАРАДИТЬ между мостами VLAN

Я создал два моста VLAN в системе на базе OpenWRT с одним физическим интерфейсом.

*) eth0->lan->br-lan
*) br-lan->br-lan.2(VLAN INTF)->br-vlan2(BRIDGE INTF)
*) br-lan->br-lan.20(VLAN INTF)->br-vlan20(BRIDGE INTF)

Я запускаю DHCP-сервер на машине с Ubuntu.

Я пытаюсь маршрутизировать между vlan, чтобы открыть межvlan-коммуникацию. Но у меня не получилось.

то, что я сделал, это

 iptables -t nat -I POSTROUTING -o br-vlan2 -j MASQUERADE

 iptables -A FORWARD -i br-vlan2 -o br-vlan20 -mstate --state RELATED,ESTABLISHED -j ACCEPT

 iptables -A FORWARD -i br-vlan20 -o br-vlan2 -j
 ACCEPT

 echo 1 > /proc/sys/net/ipv4/ip_forward

И я попробовал обновить /etc/config/firewall с правилами пересылки

config zone
        option name 'vlan2'
        list network 'br-lan.2'
        option input 'ACCEPT'
        option output 'ACCEPT'
        option forward 'ACCEPT'

config zone
        option name 'vlan20'
        list network 'br-lan.20'
        option input 'ACCEPT'
        option output 'ACCEPT'
        option forward 'ACCEPT'

config forwarding
        option src 'br-lan.2'
        option dest 'br-lan.20'

config forwarding
        option src 'br-lan.20'
        option dest 'br-lan.2'

Что здесь не так? А я новичок в концепциях маршрутизаторов.

Редактировать:

Вот как выглядит моя установка

             IP:  192.168.2.10     192.168.20.10
             GW:  192.168.2.1      192.168.20.1
                   |client 1|       |client 2|
                         ^              ^
                     ____|______________|________
                    |  br-vlan2   |   br-vlan20  |    
 _____________      |192.168.2.2  | 192.168.20.2 |   
|             |     |_____________|______________|
| 192.168.1.1 |     |    |br-lan  IP: 192.168.1.2|
|   router    |---->|eth0|   GW: 192.168.1.1     |
|_____________|     |____|_______________________|          
                    |    x86 machine as AP       |
                    |____________________________|

решение1

Обычный маршрутизатор OpenWRT обычно имеет один интерфейс Ethernet в ЦП, который внутренне подключен к чипу «умного коммутатора». Другие порты коммутатора доступны снаружи как разъемы, один обычно помечен как «WAN», а другие как «LAN». Коммутатор настраивается следующим образом: соединение ЦП-коммутатор является магистральным (все VLAN помечены), один порт («WAN») делается одним VLAN без тега, а остальные порты («LAN») делаются другими VLAN без тега. По сути, это стандартная настройка «маршрутизатора на палочке», где коммутатор работает как простой расширитель портов для маршрутизатора с малым количеством портов.

Остальное выглядит точно так же, как в вашем случае, компьютер Linux с одним интерфейсом Ethernet. Чтобы дополнить настройку коммутатора, он разделен на подынтерфейсы VLAN. Затем эти подынтерфейсы настраиваются в соответствии с их функцией: LAN помещается в мост с интерфейсом(ами) WLAN, в то время как WAN настраивается без мостов.

Эта настройка выглядит следующим образом (eth0 — единственный интерфейс маршрутизатора):

  • eth0 имеет два подинтерфейса VLAN, .1 и .2
  • eth0.1, wlan0 и wlan1 объединены в br-lan, которому назначен IP-адрес и который помещен в зону LAN.
  • eth0.2 также имеет назначенный адрес.

Если вам действительно нужны мосты, вот способ:

config interface 'vlan20'
        option ifname 'eth0.20'
        option type 'bridge'
        option proto 'static'
        option netmask '255.255.255.0'
        option ipaddr '192.168.20.1'

config interface 'vlan2'
        option ifname 'eth0.2'
        option type 'bridge'
        option proto 'static'
        option netmask '255.255.255.0'
        option ipaddr '192.168.2.1'

Это будет переведено в: Два подынтерфейса VLAN будут созданы из eth0, и два моста созданы, br-vlan20и br-vlan2. Каждый подынтерфейс VLAN будет участвовать в своем собственном мосте. Затем мостам назначаются IP-адреса.

Если вам не нужен мост (например, вы не планируете добавлять другие интерфейсы), просто удалите option type 'bridge'строку из определения.

Будьте осторожны, в этом случае устройство на другой стороне соединения eth0должно быть готово работать с маркированными кадрами!

Настройка брандмауэра для этого случая может выглядеть следующим образом:

config zone
        option name 'zone20'
        option input 'ACCEPT'
        option output 'ACCEPT'
        option forward 'ACCEPT'
        option network 'vlan20'

config zone
        option name 'zone2'
        option input 'ACCEPT'
        option output 'ACCEPT'
        option forward 'ACCEPT'
        option masq '1'
        option network 'vlan2'

config forwarding
        option src 'zone20'
        option dest 'zone2'

config forwarding
        option src 'zone2'
        option dest 'zone20'

Обратите внимание, как параметры zone' networkв брандмауэре соответствуют interfaceименам ' в networkфайле конфигурации. Имена интерфейсов Linux появляются только один раз в networkфайле конфигурации и больше нигде. Однако параметры forwarding' srcи dstсоответствуют параметрам zone' name.

Связанный контент