Problem configuring VLANS using DSA on OpenWrt to a wired AP

I am using an GL.iNet GL-MT6000 with OpenWrt 21.02 / LuCI openwrt-21.02 and I am unable to get Vlans working properly with any of the configurations published on the net so far.

The setup:
I have a layer 3 switch (HP 2530-48G) that tags my VLAN traffic from my PFsense gateway for a public WIFI (VLAN10) and I am connected to the WAN port on the MT6000 (though I did try Lan1 with no luck).

VLAN sort of working:
By adapting a working version from my existing ZyXEL NBG6817 I did manage to get it working, but the WIFI on VLAN 10 is really slow (15 Mbps vs 1.2 Gbps on the private non-vlanned wifi). I was hoping that someone might be able to steer me in the right direction as to where I am going wrong, or maybe its the device itself that is not working.

Here are my configs:

Network Config:

# cat /etc/config/network

config interface 'loopback'
        option device 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'

config globals 'globals'
        option ula_prefix 'fd62:ae03:65b5::/48'

config device
        option name 'br-lan'
        option type 'bridge'
        option macaddr 'xx'
        list ports 'eth1'
        list ports 'lan1'
        list ports 'lan2'
        list ports 'lan3'
        list ports 'lan4'
        list ports 'lan5'
        option mtu '1500'

config device
        option name 'lan1'
        option macaddr 'xx'

config device
        option name 'lan3'
        option macaddr xx'

config device
        option name 'lan4'
        option macaddr 'xx'

config device
        option name 'lan5'
        option macaddr 'xx'

config interface 'lan'
        option device 'br-lan'
        option proto 'dhcp'
        option ipaddr_old '192.168.1.22'
        option netmask '255.255.255.0'
        option ip6assign '60'
        option isolate '0'
        option classlessroute '0'

config device
        option name 'eth1'
        option macaddr 'x'

config interface 'wan'
        option device 'eth1'
        option proto 'dhcp'
        option force_link '0'
        option ipv6 '0'
        option metric '10'
        option disabled '1'
        option classlessroute '0'

config rule 'policy_direct_rt'
        option lookup 'main'
        option suppress_prefixlength '0'
        option priority '1100'

config rule 'policy_default_rt_vpn'
        option mark '0x8000/0xc000'
        option lookup '8000'
        option priority '1101'
        option invert '1'

config rule6 'policy_direct_rt6'
        option lookup 'main'
        option suppress_prefixlength '0'
        option priority '1100'

config rule6 'policy_default_rt_vpn6'
        option mark '0x8000/0xc000'
        option lookup '8000'
        option priority '1101'
        option invert '1'

config device
        option type '8021q'
        option ifname 'br-lan'
        option vid '10'
        option name 'br-lan.10'
        option mtu '1500'

config device
        option type 'bridge'
        option name 'VLAN_10'
        list ports 'br-lan.10'
        option mtu '1500'

config interface 'Public'
        option proto 'static'
        option ipaddr '192.168.10.33'
        option netmask '255.255.255.0'
        option gateway '192.168.10.10'
        option device 'VLAN_10'

config interface 'wwan6'
        option proto 'dhcpv6'
        option disabled '1'
        option device '@wwan'
        option ifname '@wwan'

config rule 'policy_default_rt_vpn_ts'
        option lookup 'main'
        option priority '1099'
        option mark '0x80000/0xc0000'
        option invert '0'

config interface 'modem_1_1_2_6'
        option proto 'dhcpv6'
        option disabled '1'
        option device '@modem_1_1_2'

Wireless Config:

# cat /etc/config/wireless

config wifi-device 'mt798611'
        option band '2g'
        option cell_density '0'
        option type 'mtk'
        option txpower '100'
        option random_bssid '1'
        option channel '1'
        option country 'CA'
        option htmode 'HE20'

config wifi-iface 'wifi2g'
        option device 'mt798611'
        option network 'lan'
        option mode 'ap'
        option encryption 'psk2'
        option key xx'
        option wds '1'
        option ifname 'ra0'
        option ssid 'Larwood_Int'
        option macaddr 'xx'

config wifi-device 'mt798612'
        option band '5g'
        option country 'CA'
        option cell_density '0'
        option type 'mtk'
        option txpower '100'
        option random_bssid '1'
        option channel '60'
        option htmode 'HE80'

config wifi-iface 'wifi5g'
        option device 'mt798612'
        option network 'lan'
        option mode 'ap'
        option encryption 'psk2'
        option key 'xx'
        option wds '1'
        option ifname 'rax0'
        option ssid 'Larwood_Int'
        option macaddr 'xx'

config wifi-iface 'guest2g'
        option device 'mt798611'
        option mode 'ap'
        option encryption 'psk2'
        option key 'xx'
        option guest '1'
        option wds '1'
        option network 'Public'
        option ifname 'ra1'
        option ssid 'Larwood'
        option macaddr 'xx'
        option disabled '1'

config wifi-iface 'guest5g'
        option device 'mt798612'
        option mode 'ap'
        option encryption 'psk2'
        option key 'xx'
        option guest '1'
        option wds '1'
        option network 'Public'
        option ifname 'rax1'
        option ssid 'Larwood'
        option macaddr 'x'
        option disabled '1'

It appears you are using firmware that is not from the official OpenWrt project.

When using forks/offshoots/vendor-specific builds that are "based on OpenWrt", there may be many differences compared to the official versions (hosted by OpenWrt.org). Some of these customizations may fundamentally change the way that OpenWrt works. You might need help from people with specific/specialized knowledge about the firmware you are using, so it is possible that advice you get here may not be useful.

You may find that the best options are:

  1. Install an official version of OpenWrt, if your device is supported (see https://firmware-selector.openwrt.org).
  2. Ask for help from the maintainer(s) or user community of the specific firmware that you are using.
  3. Provide the source code for the firmware so that users on this forum can understand how your firmware works (OpenWrt forum users are volunteers, so somebody might look at the code if they have time and are interested in your issue).

If you believe that this specific issue is common to generic/official OpenWrt and/or the maintainers of your build have indicated as such, please feel free to clarify.

1 Like

I was just looking at the Gl.int site and I see that they are offering a version of Native OpenWrt 24 Firmware (This release is based on the OpenWrt main branch (from ebe7c5f commit), kernel version 6.6.36.) Maybe I should try installing that or should I just go with the official Openwrt version here?

You can install the latest official OpenWrt stable release here:
https://firmware-selector.openwrt.org/?version=23.05.4&target=mediatek%2Ffilogic&id=glinet_gl-mt6000

I recommend using official OpenWrt, but that is up to you. If you do install the official version, we are able to help you here. If you want to continue running the GL-Inet firmware, you will need to ask for help on their support channels since their fork is considerably different than genuine OpenWrt.

2 Likes