Sorry for my delay in responding! I was waiting on a managed switch coming which is now in place, so I should be good to set this up.
Here's the output from my main router:
root@GL-MT6000:~# ubus call system board
{
"kernel": "6.6.63",
"hostname": "GL-MT6000",
"system": "ARMv8 Processor rev 4",
"model": "GL.iNet GL-MT6000",
"board_name": "glinet,gl-mt6000",
"rootfs_type": "squashfs",
"release": {
"distribution": "OpenWrt",
"version": "24.10.0-rc2",
"revision": "r28161-ea17e958b9",
"target": "mediatek/filogic",
"description": "OpenWrt 24.10.0-rc2 r28161-ea17e958b9",
"builddate": "1733226068"
}
}
root@GL-MT6000:~# 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 'fdf8:5aeb:d8fb::/48'
config device
option name 'br-lan'
option type 'bridge'
option macaddr '94:83:c4:a8:8d:6c'
list ports 'lan1'
list ports 'lan2'
list ports 'lan3'
list ports 'lan4'
list ports 'lan5'
config device
option macaddr '94:83:c4:a8:8d:6b'
option name 'lan1.901'
config device
option name 'lan2'
option macaddr '94:83:c4:a8:8d:6c'
config device
option name 'lan3'
option macaddr '94:83:c4:a8:8d:6c'
config device
option name 'lan4'
option macaddr '94:83:c4:a8:8d:6c'
config device
option name 'lan5'
option macaddr '94:83:c4:a8:8d:6c'
config interface 'lan'
option device 'br-lan'
option proto 'static'
option netmask '255.255.255.0'
option ip6assign '60'
option isolate '0'
option ipaddr '192.168.68.1'
config device
option macaddr '94:83:c4:a8:8d:6a'
option name 'eth1'
config interface 'wan'
option force_link '0'
option ipv6 '0'
option classlessroute '0'
option metric '10'
option proto 'pppoe'
option password '<redacted>'
option disabled '0'
option peerdns '1'
option username '<redacted>'
option device 'eth1'
option vlanid '0'
config interface 'wan6'
option proto 'dhcpv6'
option device '@wan'
option disabled '1'
config interface 'tethering6'
option device '@tethering'
option proto 'dhcpv6'
option disabled '1'
config interface 'wwan6'
option device '@wwan'
option proto 'dhcpv6'
option disabled '1'
config interface 'guest'
option proto 'static'
option ipaddr '192.168.9.1'
option netmask '255.255.255.0'
option ip6assign '60'
option multicast_querier '1'
option igmp_snooping '0'
option isolate '0'
option bridge_empty '1'
option device 'br-guest'
list dns '192.168.9.1'
config interface 'wwan'
option proto 'dhcp'
option classlessroute '0'
option metric '20'
config interface 'secondwan'
option ipv6 '0'
option metric '15'
option force_link '0'
option classlessroute '0'
option proto 'pppoe'
option username '<redacted>'
option disabled '0'
option peerdns '1'
option password '<redacted>'
option vlanid '901'
config interface 'secondwan6'
option proto 'dhcpv6'
option device '@secondwan'
option disabled '1'
option metric '15'
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 rule 'policy_default_rt_vpn_ts'
option lookup 'main'
option priority '1099'
option mark '0x80000/0xc0000'
option invert '0'
config rule 'policy_relay_lo_rt_lan'
option lookup '16800'
option in 'loopback'
option priority '1'
config device
option name 'br-guest'
option type 'bridge'
option bridge_empty '1'
config device
option type '8021q'
option ifname 'lan5'
option vid '20'
option name 'lan5.20'
config interface 'lan5_20guest'
option proto 'dhcp'
option device 'lan5.20'
config interface 'br_guest20'
option proto 'dhcp'
option device 'br-guest.20'
root@GL-MT6000:~# cat /etc/config/wireless
config wifi-device 'radio0'
option type 'mac80211'
option band '2g'
option htmode 'HE40'
option channel 'auto'
option country 'GB'
option random_bssid '1'
option disabled '0'
option hwmode '11g'
option path 'platform/soc/18000000.wifi'
option cell_density '0'
config wifi-iface 'wifi2g'
option device 'radio0'
option mode 'ap'
option network 'lan'
option ifname 'wlan0'
option wds '1'
option isolate '0'
option ieee80211k '1'
option bss_transition '1'
option ssid 'Main Wifi'
option hidden '0'
option encryption 'sae-mixed'
option key '<redacted>'
option macaddr '0E:42:F2:6E:F8:78'
config wifi-device 'radio1'
option type 'mac80211'
option band '5g'
option channel 'auto'
option htmode 'HE80'
option country 'DE'
option random_bssid '1'
option disabled '0'
option hwmode '11a'
option path 'platform/soc/18000000.wifi+1'
option channels '36,40,44,48,149,153,157,161'
option cell_density '0'
option legacy_rates '0'
config wifi-iface 'wifi5g'
option device 'radio1'
option mode 'ap'
option network 'lan'
option ifname 'wlan1'
option wds '1'
option isolate '0'
option ieee80211k '1'
option bss_transition '1'
option ssid 'Main Wifi'
option hidden '0'
option encryption 'sae-mixed'
option key '<redacted>'
option macaddr 'C2:BB:4A:70:AE:11'
config wifi-iface 'guest2g'
option device 'radio0'
option mode 'ap'
option ifname 'guest-2.4'
option guest '1'
option wds '1'
option disabled '0'
option ssid 'Guest Wifi'
option encryption 'sae-mixed'
option key 'Guest123'
option macaddr '7E:25:4A:A9:C8:E7'
option ocv '0'
option isolate '1'
option network 'br_guest20'
config wifi-iface 'guest5g'
option device 'radio1'
option mode 'ap'
option ifname 'wlan1-1'
option guest '1'
option wds '1'
option isolate '1'
option disabled '1'
option ssid 'Guest Wifi'
option encryption 'sae-mixed'
option key 'Guest123'
option macaddr '3A:46:5D:8E:B9:27'
option ocv '0'
root@GL-MT6000:~# cat /etc/config/dhcp
config dnsmasq
option domainneeded '1'
option boguspriv_old '1'
option localise_queries '1'
option local '/lan/'
option domain 'local'
option expandhosts '1'
option authoritative '1'
option readethers '1'
option leasefile '/tmp/dhcp.leases'
option localservice '1'
option ednspacket_max '1232'
option rebind_protection '0'
option filter_aaaa '1'
option noresolv '1'
option localuse '0'
list server '127.0.0.1#3053'
option logdhcp '1'
config dhcp 'lan'
option interface 'lan'
option dhcpv4 'server'
option ra_slaac '1'
option force '1'
option dhcpv6 'disabled'
option ra 'disabled'
option ignore '0'
option start '10'
option limit '240'
option leasetime '720m'
config dhcp 'wan'
option interface 'wan'
option ignore '1'
config odhcpd 'odhcpd'
option maindhcp '0'
option leasefile '/tmp/hosts/odhcpd'
option leasetrigger '/usr/sbin/odhcpd-update'
option loglevel '4'
config domain
option name 'console.gl-inet.com'
option ip '192.168.68.1'
config domain
option name 'console.gl-inet.com'
option ip '::ffff:192.168.68.1'
config dhcp 'guest'
option interface 'guest'
option start '100'
option limit '150'
option leasetime '12h'
config dhcp 'secondwan'
option interface 'secondwan'
option ignore '1'
config dhcp 'br_guest20'
option interface 'br_guest20'
option ignore '1'
root@GL-MT6000:~# cat /etc/config/firewall
config defaults
option input 'ACCEPT'
option output 'ACCEPT'
option forward 'REJECT'
option synflood_protect '1'
option flow_offloading '1'
option flow_offloading_hw '1'
config zone
option name 'lan'
option input 'ACCEPT'
option output 'ACCEPT'
option forward 'ACCEPT'
list network 'lan'
config zone
option name 'wan'
option output 'ACCEPT'
option forward 'REJECT'
option mtu_fix '1'
option input 'DROP'
option masq '1'
list network 'wan'
list network 'wan6'
list network 'wwan'
list network 'secondwan'
config forwarding
option src 'lan'
option dest 'wan'
option enabled '1'
config rule
option name 'Allow-DHCP-Renew'
option proto 'udp'
option dest_port '68'
option target 'ACCEPT'
option family 'ipv4'
option src 'lan'
config rule
option name 'Allow-IGMP'
option src 'wan'
option proto 'igmp'
option family 'ipv4'
option target 'ACCEPT'
config rule
option name 'Allow-DHCPv6'
option src 'wan'
option proto 'udp'
option dest_port '546'
option family 'ipv6'
option target 'ACCEPT'
config rule
option name 'Allow-MLD'
option src 'wan'
option proto 'icmp'
option src_ip 'fe80::/10'
list icmp_type '130/0'
list icmp_type '131/0'
list icmp_type '132/0'
list icmp_type '143/0'
option family 'ipv6'
option target 'ACCEPT'
config rule
option name 'Allow-ICMPv6-Input'
option src 'wan'
option proto 'icmp'
list icmp_type 'echo-request'
list icmp_type 'echo-reply'
list icmp_type 'destination-unreachable'
list icmp_type 'packet-too-big'
list icmp_type 'time-exceeded'
list icmp_type 'bad-header'
list icmp_type 'unknown-header-type'
list icmp_type 'router-solicitation'
list icmp_type 'neighbour-solicitation'
list icmp_type 'router-advertisement'
list icmp_type 'neighbour-advertisement'
option limit '1000/sec'
option family 'ipv6'
option target 'ACCEPT'
config rule
option name 'Allow-ICMPv6-Forward'
option src 'wan'
option dest '*'
option proto 'icmp'
list icmp_type 'echo-request'
list icmp_type 'echo-reply'
list icmp_type 'destination-unreachable'
list icmp_type 'packet-too-big'
list icmp_type 'time-exceeded'
list icmp_type 'bad-header'
list icmp_type 'unknown-header-type'
option limit '1000/sec'
option family 'ipv6'
option target 'ACCEPT'
config rule
option name 'Allow-IPSec-ESP'
option src 'wan'
option dest 'lan'
option proto 'esp'
option target 'ACCEPT'
config rule
option name 'Allow-ISAKMP'
option src 'wan'
option dest 'lan'
option dest_port '500'
option proto 'udp'
option target 'ACCEPT'
config rule
option name 'Support-UDP-Traceroute'
option src 'wan'
option dest_port '33434:33689'
option proto 'udp'
option family 'ipv4'
option target 'REJECT'
option enabled '0'
config include
option path '/etc/firewall.user'
config include 'nat6'
option path '/etc/firewall.nat6'
option reload '1'
config zone
option name 'guest'
option forward 'REJECT'
option output 'ACCEPT'
option input 'REJECT'
list network 'guest'
list network 'br_guest20'
config forwarding
option src 'guest'
option dest 'wan'
option enabled '1'
config rule
option name 'Allow-DHCP'
option src 'guest'
option target 'ACCEPT'
option proto 'udp'
option dest_port '67-68'
config rule
option name 'Allow-DNS'
option src 'guest'
option target 'ACCEPT'
option proto 'tcp udp'
option dest_port '53'
config include 'vpn_server_policy'
option type 'script'
option path '/etc/firewall.vpn_server_policy.sh'
option reload '1'
option enabled '1'
config include 'vpn_client_deal_leak'
option type 'script'
option reload '1'
option path '/etc/firewall.vpn_client_deal_leak.sh'
option enabled '1'
config rule 'sambasharewan'
option src 'wan'
option dest_port '137 138 139 445'
option dest_proto 'tcpudp'
option target 'DROP'
config rule 'sambasharelan'
option src 'lan'
option dest_port '137 138 139 445'
option dest_proto 'tcpudp'
option target 'ACCEPT'
config rule 'glnas_ser'
option src 'wan'
option dest_port '6000-6002'
option dest_proto 'tcp'
option target 'DROP'
config rule 'webdav_wan'
option src 'wan'
option dest_port '6008'
option dest_proto 'tcp'
option target 'DROP'
config rule
option name 'block-internet-access'
option src 'lan'
list src_ip '192.168.68.208'
option dest 'wan'
option target 'REJECT'
config redirect 'adguard_home'
option name 'Adguard Home'
option src 'lan'
option src_dport '53'
option dest 'lan'
option dest_port '3053'
option proto 'tcp udp'
option mark '!0x8/0x8'
option enabled '1'
config redirect 'adguard_home_guest'
option name 'Adguard Home guest'
option src 'guest'
option src_dport '53'
option dest 'guest'
option dest_port '3053'
option proto 'tcp udp'
option mark '!0x8/0x8'
option enabled '1'
config include 'glblock'
option type 'script'
option path '/usr/bin/gl_block.sh'
option reload '1'
And here's my guest router. Please excuse the absolute mess of me trying to figure this out myself with little luck 
root@OpenWrt:~# ubus call system board
{
"kernel": "5.15.167",
"hostname": "OpenWrt",
"system": "ARMv8 Processor rev 4",
"model": "Netgear WAX220",
"board_name": "netgear,wax220",
"rootfs_type": "squashfs",
"release": {
"distribution": "OpenWrt",
"version": "23.05.5",
"revision": "r24106-10cc5fcd00",
"target": "mediatek/filogic",
"description": "OpenWrt 23.05.5 r24106-10cc5fcd00"
}
}
root@OpenWrt:~# 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 'fd4b:02f1:c737::/48'
config device
option name 'br-lan'
option type 'bridge'
list ports 'eth0'
config device
option name 'eth0'
option macaddr '94:18:65:4e:28:d9'
config interface 'lan'
option device 'br-lan'
option proto 'static'
option ipaddr '192.168.68.2'
option netmask '255.255.255.0'
option ip6assign '60'
option gateway '192.168.68.1'
config interface 'guest_vlan20'
option proto 'static'
option device 'br-lan.20'
option ipaddr '192.168.9.2'
option gateway '192.168.9.1'
config device
option type '8021q'
option ifname 'eth0'
option vid '20'
option name 'eth0.20'
config interface 'eth0_20'
option proto 'dhcp'
option device 'eth0.20'
option type 'bridge'
config device
option type 'bridge'
option name 'br-vlan20'
list ports 'br-lan.20'
list ports 'eth0.20'
config bridge-vlan
option device 'br-vlan20'
option vlan '20'
list ports 'br-lan.20:t'
list ports 'eth0.20:t'
config interface 'br_vlan20'
option proto 'dhcp'
option device 'br-vlan20'
root@OpenWrt:~# cat /etc/config/wireless
config wifi-device 'radio0'
option type 'mac80211'
option path 'platform/soc/18000000.wifi'
option channel '1'
option band '2g'
option htmode 'HE20'
option cell_density '0'
config wifi-device 'radio1'
option type 'mac80211'
option path 'platform/soc/18000000.wifi+1'
option channel '36'
option band '5g'
option htmode 'HE80'
option cell_density '0'
config wifi-iface 'wifinet0'
option device 'radio0'
option mode 'ap'
option ssid 'Main Wifi'
option encryption 'sae-mixed'
option key '<redacted>'
option network 'lan'
option wds '1'
option ieee80211r '1'
option mobility_domain '1234'
option ft_over_ds '1'
config wifi-iface 'wifinet1'
option device 'radio1'
option mode 'ap'
option ssid 'Main Wifi'
option encryption 'sae-mixed'
option network 'lan'
option key '<redacted>'
option ieee80211r '1'
option mobility_domain '1234'
option ft_over_ds '1'
config wifi-iface 'wifinet2'
option device 'radio0'
option mode 'ap'
option ssid 'Guest Wifi
option encryption 'sae-mixed'
option key 'Guest123'
option network 'br_vlan20'
root@OpenWrt:~# cat /etc/config/dhcp
config dnsmasq
option domainneeded '1'
option boguspriv '1'
option filterwin2k '0'
option localise_queries '1'
option rebind_protection '1'
option rebind_localhost '1'
option local '/lan/'
option domain 'lan'
option expandhosts '1'
option nonegcache '0'
option cachesize '1000'
option authoritative '1'
option readethers '1'
option leasefile '/tmp/dhcp.leases'
option resolvfile '/tmp/resolv.conf.d/resolv.conf.auto'
option nonwildcard '1'
option localservice '1'
option ednspacket_max '1232'
option filter_aaaa '0'
option filter_a '0'
config dhcp 'lan'
option interface 'lan'
option start '100'
option limit '150'
option leasetime '12h'
option dhcpv4 'server'
option ignore '1'
config dhcp 'wan'
option interface 'wan'
option ignore '1'
config odhcpd 'odhcpd'
option maindhcp '0'
option leasefile '/tmp/hosts/odhcpd'
option leasetrigger '/usr/sbin/odhcpd-update'
option loglevel '4'
config dhcp 'guest_vlan20'
option interface 'guest_vlan20'
option start '100'
option limit '150'
option leasetime '12h'
option ignore '1'
config dhcp 'eth0_20'
option interface 'eth0_20'
option ignore '1'
config dhcp 'br_vlan20'
option interface 'br_vlan20'
option ignore '1'
root@OpenWrt:~# cat /etc/config/firewall
config defaults
option syn_flood '1'
option input 'REJECT'
option output 'ACCEPT'
option forward 'REJECT'
config zone
option name 'lan'
list network 'lan'
option input 'ACCEPT'
option output 'ACCEPT'
option forward 'ACCEPT'
config zone
option name 'wan'
list network 'wan'
list network 'wan6'
option input 'REJECT'
option output 'ACCEPT'
option forward 'REJECT'
option masq '1'
option mtu_fix '1'
config forwarding
option src 'lan'
option dest 'wan'
config rule
option name 'Allow-DHCP-Renew'
option src 'wan'
option proto 'udp'
option dest_port '68'
option target 'ACCEPT'
option family 'ipv4'
config rule
option name 'Allow-Ping'
option src 'wan'
option proto 'icmp'
option icmp_type 'echo-request'
option family 'ipv4'
option target 'ACCEPT'
config rule
option name 'Allow-IGMP'
option src 'wan'
option proto 'igmp'
option family 'ipv4'
option target 'ACCEPT'
config rule
option name 'Allow-DHCPv6'
option src 'wan'
option proto 'udp'
option dest_port '546'
option family 'ipv6'
option target 'ACCEPT'
config rule
option name 'Allow-MLD'
option src 'wan'
option proto 'icmp'
option src_ip 'fe80::/10'
list icmp_type '130/0'
list icmp_type '131/0'
list icmp_type '132/0'
list icmp_type '143/0'
option family 'ipv6'
option target 'ACCEPT'
config rule
option name 'Allow-ICMPv6-Input'
option src 'wan'
option proto 'icmp'
list icmp_type 'echo-request'
list icmp_type 'echo-reply'
list icmp_type 'destination-unreachable'
list icmp_type 'packet-too-big'
list icmp_type 'time-exceeded'
list icmp_type 'bad-header'
list icmp_type 'unknown-header-type'
list icmp_type 'router-solicitation'
list icmp_type 'neighbour-solicitation'
list icmp_type 'router-advertisement'
list icmp_type 'neighbour-advertisement'
option limit '1000/sec'
option family 'ipv6'
option target 'ACCEPT'
config rule
option name 'Allow-ICMPv6-Forward'
option src 'wan'
option dest '*'
option proto 'icmp'
list icmp_type 'echo-request'
list icmp_type 'echo-reply'
list icmp_type 'destination-unreachable'
list icmp_type 'packet-too-big'
list icmp_type 'time-exceeded'
list icmp_type 'bad-header'
list icmp_type 'unknown-header-type'
option limit '1000/sec'
option family 'ipv6'
option target 'ACCEPT'
config rule
option name 'Allow-IPSec-ESP'
option src 'wan'
option dest 'lan'
option proto 'esp'
option target 'ACCEPT'
config rule
option name 'Allow-ISAKMP'
option src 'wan'
option dest 'lan'
option dest_port '500'
option proto 'udp'
option target 'ACCEPT'
config zone
option name 'guest'
option input 'REJECT'
option output 'ACCEPT'
option forward 'REJECT'
list network 'guest_vlan20'
list network 'eth0_20'
list network 'br_vlan20'
config forwarding
option src 'guest'
option dest 'wan'
My setup is as follows:
Main Router LAN4 <-> Managed Switch <-> Access Point (eth0)
Traffic going over eth0 from the Access Point is either going to be "normal" (untagged?) from my normal wifi, or Guest (which I'm trying to get to go over vlan20).
My main network is 192.168.68.0/24, and my guest network is 192.168.9.0/24.
I appreciate any guidance that can be offered on how I should set this up - primarily:
- How do I enable the VLAN's without locking myself out? (I'd assumed that adding a VLAN would be "in addition to" the unmanaged traffic, but it seems to stop me accessing the router at all - and rolls back)
- The VLAN configuration in DSA confuses me, so guidance on how it should look in this config is again appreciated.
Thank you!