Hey everyone!
I bought this hardware months ago and was slowly setting things up at my desk without WAN while I was working. I was recently laid off, so I figured now was the best time to get everything setup and minimize downtime while my wife is working in the office. Ran into a bunch of silly issues trying to figure out the VLAN setup and the configuration on the switches. At this point I’ve wiped and started again multiple times and I could really do with another pair of eyes to see where I’ve made mistakes and gaps in my knowledge.
- Router (R) = GL.iNet GL-MT6000 (Flint 2), OpenWrt 25.12.1, 10.1.10.1
- Office switch = CRS310-8G+2S+, MikroTik SwOS 2.18, 10.1.10.2
- Living room switch = CSS610-8G-2S+, MikroTik SwOS Lite 2.21, 10.1.10.3
Here is a basic network diagram I made last week, it might be a little out of date, but it gets the general idea across
The goal is to have these VLANs configured:
- Management: Used for router/switches
- IoT: TV, Speakers, Hue Hub etc, untrusted devices
- Guest: Guest Wifi, untrusted devices
- Main: My computer, iPads/iPhones on wireless, trusted devices
- Servers: I run services off an old Mac Mini running Proxmox, slowly moving everything to a newer Arch Linux server
My logic is…
- IoT = devices should be able to access internet for software/firmware updates, but it shouldn’t be able to access my trusted devices, BUT I should be able to control the IoT devices from my Main or Server VLAN (turn lights on and off, play music from phone on speakers)
- Guest = Access to the internet, can’t access anything on my network
- Management = Should only be accessible from Main or Server VLAN
- Main = I should be able to access anything without restriction, SSH into servers or networking equipment
- Server = Similar to Main, I just wanted different IP ranges from Main
On the servers I run a few services with specific ports, for example Karakeep is a bookmarking app that I run in a Debian VM via Docker and I use the address 10.1.50.177:3000/dashboard/bookmarks to access it, this appears to be working. I have another container with 10.1.50.177:9091/transmission/web/ that I use for downloading ISOs
and I can’t seem to access that right now. I am assuming this is because I don’t have that specific port open on the firewall.
Honestly the end goal is to deprecate the Mac Mini Server and move to the Arch server, but I am sure I’ll run into the same problems and need to understand the networking as much as possible.
Can anyone please review my outputs and let me know if I am heading down the right track or if I am doing this all completely wrong?
I have been doing most of my setup via LuCi, so I might need a little hand holding if I need to make changes via CLI or help guiding me in LuCi.
root@OpenWrt:/etc/config# ubus call system board
{
"kernel": "6.12.74",
"hostname": "OpenWrt",
"system": "ARMv8 Processor rev 4",
"model": "GL.iNet GL-MT6000",
"board_name": "glinet,gl-mt6000",
"rootfs_type": "squashfs",
"release": {
"distribution": "OpenWrt",
"version": "25.12.1",
"firmware_url": "https://downloads.openwrt.org/",
"revision": "r32768-b21cfa8f8c",
"target": "mediatek/filogic",
"description": "OpenWrt 25.12.1 r32768-b21cfa8f8c",
"builddate": "1773711117"
}
}
root@OpenWrt:/etc/config# cat /etc/config/network
config interface 'loopback'
option device 'lo'
option proto 'static'
list ipaddr '127.0.0.1/8'
config globals 'globals'
option dhcp_default_duid '000478810932aadd495caa5e27da41ef45ca'
option ula_prefix 'fd85:3d2e:4447::/48'
option packet_steering '1'
config device
option name 'br-lan'
option type 'bridge'
list ports 'lan1'
list ports 'lan2'
list ports 'lan5'
config interface 'lan'
option device 'br-lan.10'
option proto 'static'
option ip6assign '60'
option multipath 'off'
list ipaddr '10.1.10.1/24'
config interface 'wan'
option device 'eth1'
option proto 'dhcp'
config interface 'wan6'
option device 'eth1'
option proto 'dhcpv6'
config bridge-vlan
option device 'br-lan'
option vlan '10'
list ports 'lan1:t'
list ports 'lan2:t'
list ports 'lan5:u*'
config bridge-vlan
option device 'br-lan'
option vlan '20'
list ports 'lan1:t'
list ports 'lan2:t'
config bridge-vlan
option device 'br-lan'
option vlan '30'
list ports 'lan1:t'
list ports 'lan2:t'
config bridge-vlan
option device 'br-lan'
option vlan '40'
list ports 'lan1:t'
list ports 'lan2:t'
config bridge-vlan
option device 'br-lan'
option vlan '50'
list ports 'lan1:t'
list ports 'lan2:t'
config interface 'IoT'
option proto 'static'
option device 'br-lan.20'
option ipaddr '10.1.20.1'
option netmask '255.255.255.0'
option multipath 'off'
config interface 'Guest'
option proto 'static'
option device 'br-lan.30'
option ipaddr '10.1.30.1'
option netmask '255.255.255.0'
option multipath 'off'
option type 'bridge'
config interface 'Main'
option proto 'static'
option device 'br-lan.40'
option ipaddr '10.1.40.1'
option netmask '255.255.255.0'
option multipath 'off'
config interface 'Servers'
option proto 'static'
option device 'br-lan.50'
option ipaddr '10.1.50.1'
option netmask '255.255.255.0'
option multipath 'off'
root@OpenWrt:/etc/config# cat /etc/config/wireless
config wifi-device 'radio0'
option type 'mac80211'
option path 'platform/soc/18000000.wifi'
option band '2g'
option channel '1'
option htmode 'HE20'
option country 'US'
option cell_density '0'
config wifi-iface 'default_radio0'
option device 'radio0'
option network 'lan'
option mode 'ap'
option ssid 'REDACTED 2.4GHz'
option encryption 'sae-mixed'
option key 'REDACTED'
option ocv '0'
config wifi-device 'radio1'
option type 'mac80211'
option path 'platform/soc/18000000.wifi+1'
option band '5g'
option channel '36'
option htmode 'HE80'
option country 'US'
option cell_density '0'
config wifi-iface 'default_radio1'
option device 'radio1'
option network 'lan'
option mode 'ap'
option ssid 'REDACTED 5GHz'
option encryption 'sae-mixed'
option key 'REDACTED'
option ocv '0'
config wifi-iface 'wifinet2'
option device 'radio1'
option mode 'ap'
option ssid 'REDACTED Guest'
option encryption 'sae-mixed'
option key 'REDACTED'
option ocv '0'
option network 'Guest'
config wifi-iface 'wifinet3'
option device 'radio0'
option mode 'ap'
option ssid 'REDACTED IoT'
option encryption 'sae-mixed'
option key 'REDACTED'
option ocv '0'
option network 'IoT'
root@OpenWrt:/etc/config# 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 dhcpv6 'server'
option ra 'server'
list ra_flags 'managed-config'
list ra_flags 'other-config'
option ra_preference 'medium'
config dhcp 'wan'
option interface 'wan'
option ignore '1'
config odhcpd 'odhcpd'
option maindhcp '0'
option leasefile '/tmp/odhcpd.leases'
option leasetrigger '/usr/sbin/odhcpd-update'
option loglevel '4'
option piodir '/tmp/odhcpd-piodir'
option hostsdir '/tmp/hosts'
config dhcp 'IoT'
option interface 'IoT'
option start '100'
option limit '150'
option leasetime '12h'
option dhcpv4 'server'
config dhcp 'Guest'
option interface 'Guest'
option start '100'
option limit '150'
option leasetime '12h'
option dhcpv4 'server'
config dhcp 'Main'
option interface 'Main'
option start '100'
option limit '150'
option leasetime '12h'
option dhcpv4 'server'
config dhcp 'Servers'
option interface 'Servers'
option start '100'
option limit '150'
option leasetime '12h'
option dhcpv4 'server'
root@OpenWrt:/etc/config# cat /etc/config/firewall
config defaults
option input 'ACCEPT'
option output 'ACCEPT'
option forward 'REJECT'
option synflood_protect '1'
config zone
option name 'lan'
option input 'ACCEPT'
option output 'ACCEPT'
option forward 'ACCEPT'
list network 'lan'
config zone
option name 'wan'
list network 'wan'
list network 'wan6'
option input 'REJECT'
option output 'ACCEPT'
option forward 'DROP'
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 'GuestZone'
option input 'REJECT'
option output 'ACCEPT'
option forward 'REJECT'
list network 'Guest'
config rule
option src 'GuestZone'
option name 'Guest DNS & DHCP'
option dest_port '53 67 68'
option target 'ACCEPT'
config rule
option src 'IoTZone'
option name 'IoT DNS & DHCP'
option dest_port '53 67 68'
option target 'ACCEPT'
config rule
option src 'IoTZone'
option name 'Main DNS & DHCP'
option dest_port '53 67 68'
option target 'ACCEPT'
config rule
option src 'IoTZone'
option name 'Servers DNS & DHCP'
option dest_port '53 67 68'
option target 'ACCEPT'
config forwarding
option src 'GuestZone'
option dest 'wan'
config zone
option name 'IoTZone'
option input 'REJECT'
option output 'ACCEPT'
option forward 'REJECT'
list network 'IoT'
config forwarding
option src 'IoTZone'
option dest 'wan'
config forwarding
option src 'lan'
option dest 'IoTZone'
config zone
option name 'MainZone'
option input 'ACCEPT'
option output 'ACCEPT'
option forward 'ACCEPT'
list network 'Main'
config forwarding
option src 'MainZone'
option dest 'IoTZone'
config forwarding
option src 'MainZone'
option dest 'lan'
config forwarding
option src 'MainZone'
option dest 'wan'
config forwarding
option src 'lan'
option dest 'MainZone'
config zone
option name 'ServersZone'
option input 'ACCEPT'
option output 'ACCEPT'
option forward 'ACCEPT'
list network 'Servers'
config forwarding
option src 'ServersZone'
option dest 'IoTZone'
config forwarding
option src 'ServersZone'
option dest 'lan'
config forwarding
option src 'ServersZone'
option dest 'MainZone'
config forwarding
option src 'ServersZone'
option dest 'wan'
config forwarding
option src 'lan'
option dest 'ServersZone'
config forwarding
option src 'MainZone'
option dest 'ServersZone'
Let me know if you need anything else
