Hello everyone!
I am setting up a hAP be3 Media for home use. I'm not well experienced with networking and have read/skimmed some documentations. I wish to setup my network as follows:
I set up VLAN 99 as the default trusted/management VLAN with shared addresses between ether2 and wifi/mld. VLAN 30/40/50 are untrusted/isolated and have their own address pools. (I will probably add another wifi+VLAN for guest access in the future.)
However, the wifi VLAN setup was problematic because the DHCP keep failing with the message "vlan99-server offering lease 192.168.99.XXX for XX:XX:XX:XX:XX:XX without success". I think it was because I had set the bridge VLAN 99 with mld* as tagged. Removing this solved the problem, but I don't know whether this is intended behaviour or proper setup ![]()
This is my current work-in-progress script:
/interface list
add comment=defconf name=WAN
add comment=defconf name=LAN
add name=MGMT
/ip neighbor discovery-settings
set add-dns-entries=yes discover-interface-list=LAN
/ipv6 settings
set disable-ipv6=yes
/ip dhcp-server network
add address=10.30.0.0/24 comment=bridge1-vlan30 dns-server=10.30.0.1 gateway=10.30.0.1
add address=10.40.0.0/24 comment=bridge1-vlan40 dns-server=10.40.0.1 gateway=10.40.0.1
add address=10.50.0.0/24 comment=bridge1-vlan50 dns-server=10.50.0.1 gateway=10.50.0.1
add address=192.168.88.0/24 comment=defconf dns-server=192.168.88.1 gateway=192.168.88.1
add address=192.168.99.0/24 comment=bridge1-vlan99 dns-server=192.168.99.1 gateway=192.168.99.1
/ip dns static
add address=192.168.88.1 comment=defconf name=router.lan type=A
/ip pool
add name=default-dhcp ranges=192.168.88.10-192.168.88.254
add name=vlan30-pool ranges=10.30.0.10-10.30.0.200
add name=vlan40-pool ranges=10.40.0.10-10.40.0.200
add name=vlan50-pool ranges=10.50.0.10-10.50.0.200
add name=vlan99-pool ranges=192.168.99.10-192.168.99.200
/ipv6 firewall address-list
add address=::/128 comment="defconf: unspecified address" list=bad_ipv6
add address=::1/128 comment="defconf: lo" list=bad_ipv6
add address=fec0::/10 comment="defconf: site-local" list=bad_ipv6
add address=::ffff:0.0.0.0/96 comment="defconf: ipv4-mapped" list=bad_ipv6
add address=::/96 comment="defconf: ipv4 compat" list=bad_ipv6
add address=100::/64 comment="defconf: discard only " list=bad_ipv6
add address=2001:db8::/32 comment="defconf: documentation" list=bad_ipv6
add address=2001:10::/28 comment="defconf: ORCHID" list=bad_ipv6
add address=3ffe::/16 comment="defconf: 6bone" list=bad_ipv6
/interface bridge
add admin-mac=XX:XX:XX:XX:XX:XX auto-mac=no comment=defconf frame-types=admit-only-vlan-tagged name=bridge vlan-filtering=yes
/interface ppp-client
add apn=internet name=ppp-out1 port=usb2
/interface wifi
add configuration.ssid=MikroTik-XXXXXX disabled=no mac-address=XX:XX:XX:XX:XX:XX mld-name=mld-XXXXXX name=mld1 security.authentication-types=wpa3-psk
set [ find default-name=wifi1 ] channel.band=2ghz-be .skip-dfs-channels=10min-cac .width=20/40mhz configuration.dtim-period=3 .mode=ap .ssid=MikroTik-XXXXXX .tx-power=5 disabled=no mld-interface=mld1 \
security.authentication-types=wpa2-psk,wpa3-psk .ft=no .ft-over-ds=no
set [ find default-name=wifi2 ] channel.band=5ghz-be .skip-dfs-channels=10min-cac .width=20/40/80mhz configuration.dtim-period=3 .mode=ap .ssid=MikroTik-XXXXXX .tx-power=5 disabled=no mld-interface=mld1 \
security.authentication-types=wpa2-psk,wpa3-psk .ft=no .ft-over-ds=no
set [ find default-name=wifi3 ] channel.band=6ghz-be .skip-dfs-channels=10min-cac .width=20/40/80/160/320mhz configuration.dtim-period=3 .mode=ap .ssid=MikroTik-XXXXXX .tx-power=5 disabled=no \
mld-interface=mld1 security.authentication-types=wpa3-psk .ft=no .ft-over-ds=no
/interface vlan
add comment=bridge-vlan30 interface=bridge name=vlan30 vlan-id=30
add comment=bridge-vlan40 interface=bridge name=vlan40 vlan-id=40
add comment=bridge-vlan50 interface=bridge name=vlan50 vlan-id=50
add comment=bridge-vlan99 interface=bridge name=vlan99 vlan-id=99
/disk settings
set auto-media-interface=bridge auto-media-sharing=yes auto-smb-sharing=yes
/interface list member
add comment=defconf interface=bridge list=LAN
add comment=defconf interface=ether1 list=WAN
add comment=bridge-vlan99 interface=vlan99 list=LAN
add comment=bridge-vlan30 interface=vlan30 list=LAN
add comment=bridge-vlan30 interface=vlan40 list=LAN
add comment=bridge-vlan50 interface=vlan50 list=LAN
add comment=bridge-vlan99@MGMT interface=vlan99 list=MGMT
/ip address
add address=192.168.88.1/24 comment=defconf interface=bridge network=192.168.88.0
add address=10.30.0.1/24 comment=bridge/vlan30 interface=vlan30 network=10.30.0.0
add address=10.40.0.1/24 comment=bridge/vlan40 interface=vlan40 network=10.40.0.0
add address=10.50.0.1/24 comment=bridge/vlan50 interface=vlan50 network=10.50.0.0
add address=192.168.99.1/24 comment=bridge/vlan99 interface=vlan99 network=192.168.99.0
/ip dhcp-client
# Interface not active
add comment=defconf interface=ether1 name=client1
/ip dhcp-server
add add-dns-entries=yes address-pool=default-dhcp disabled=yes interface=bridge name=defconf
add add-dns-entries=yes address-pool=vlan30-pool comment=bridge-vlan30 interface=vlan30 name=vlan30-server
add add-dns-entries=yes address-pool=vlan40-pool comment=bridge-vlan40 interface=vlan40 name=vlan40-server
add add-dns-entries=yes address-pool=vlan50-pool comment=bridge-vlan50 interface=vlan50 name=vlan50-server
add add-dns-entries=yes address-pool=vlan99-pool comment=bridge-vlan99 interface=vlan99 name=vlan99-server
/ip dns
set allow-remote-requests=yes verify-doh-cert=yes
/ip firewall filter
add action=accept chain=input comment="defconf: accept established,related,untracked" connection-state=established,related,untracked
add action=drop chain=input comment="defconf: drop invalid" connection-state=invalid
add action=accept chain=input comment="defconf: accept ICMP" protocol=icmp
add action=accept chain=input comment="defconf: accept to local loopback (for CAPsMAN)" dst-address=127.0.0.1 in-interface=lo src-address=127.0.0.1
add action=drop chain=input comment="defconf: drop all not coming from LAN" in-interface-list=!LAN
add action=accept chain=forward comment="defconf: accept in ipsec policy" ipsec-policy=in,ipsec
add action=accept chain=forward comment="defconf: accept out ipsec policy" ipsec-policy=out,ipsec
add action=fasttrack-connection chain=forward comment="defconf: fasttrack" connection-state=established,related
add action=accept chain=forward comment="defconf: accept established,related, untracked" connection-state=established,related,untracked
add action=drop chain=forward comment="defconf: drop invalid" connection-state=invalid
add action=drop chain=forward comment="defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat in-interface-list=WAN
/ip firewall nat
add action=masquerade chain=srcnat comment="defconf: masquerade" ipsec-policy=out,none out-interface-list=WAN
/ipv6 firewall filter
add action=accept chain=input comment="defconf: accept established,related,untracked" connection-state=established,related,untracked
add action=drop chain=input comment="defconf: drop invalid" connection-state=invalid
add action=accept chain=input comment="defconf: accept ICMPv6" protocol=icmpv6
add action=accept chain=input comment="defconf: accept UDP traceroute" dst-port=33434-33534 protocol=udp
add action=accept chain=input comment="defconf: accept DHCPv6-Client prefix delegation." dst-port=546 protocol=udp src-address=fe80::/10
add action=accept chain=input comment="defconf: accept IKE" dst-port=500,4500 protocol=udp
add action=accept chain=input comment="defconf: accept ipsec AH" protocol=ipsec-ah
add action=accept chain=input comment="defconf: accept ipsec ESP" protocol=ipsec-esp
add action=accept chain=input comment="defconf: accept all that matches ipsec policy" ipsec-policy=in,ipsec
add action=drop chain=input comment="defconf: drop everything else not coming from LAN" in-interface-list=!LAN
add action=fasttrack-connection chain=forward comment="defconf: fasttrack6" connection-state=established,related
add action=accept chain=forward comment="defconf: accept established,related,untracked" connection-state=established,related,untracked
add action=drop chain=forward comment="defconf: drop invalid" connection-state=invalid
add action=drop chain=forward comment="defconf: drop packets with bad src ipv6" src-address-list=bad_ipv6
add action=drop chain=forward comment="defconf: drop packets with bad dst ipv6" dst-address-list=bad_ipv6
add action=drop chain=forward comment="defconf: rfc4890 drop hop-limit=1" hop-limit=equal:1 protocol=icmpv6
add action=accept chain=forward comment="defconf: accept ICMPv6" protocol=icmpv6
add action=accept chain=forward comment="defconf: accept HIP" protocol=139
add action=accept chain=forward comment="defconf: accept IKE" dst-port=500,4500 protocol=udp
add action=accept chain=forward comment="defconf: accept ipsec AH" protocol=ipsec-ah
add action=accept chain=forward comment="defconf: accept ipsec ESP" protocol=ipsec-esp
add action=accept chain=forward comment="defconf: accept all that matches ipsec policy" ipsec-policy=in,ipsec
add action=drop chain=forward comment="defconf: drop everything else not coming from LAN" in-interface-list=!LAN
/tool mac-server
set allowed-interface-list=LAN
/tool mac-server mac-winbox
set allowed-interface-list=LAN
/interface wifi
add comment=defconf configuration.mode=ap .ssid=MikroTik-XXXXXX-IoT mac-address=XX:XX:XX:XX:XX:XX master-interface=wifi1 name=iot-wifi security.authentication-types=wpa2-psk
/interface bridge port
add bridge=bridge comment=defconf frame-types=admit-only-untagged-and-priority-tagged interface=ether2 pvid=99
add bridge=bridge comment=defconf frame-types=admit-only-untagged-and-priority-tagged interface=ether3 pvid=30
add bridge=bridge comment=defconf frame-types=admit-only-untagged-and-priority-tagged interface=ether4 pvid=40
add bridge=bridge comment=defconf frame-types=admit-only-untagged-and-priority-tagged interface=ether5 pvid=50
add bridge=bridge comment=defconf frame-types=admit-only-untagged-and-priority-tagged interface=mld1 pvid=99
add bridge=bridge comment=defconf disabled=yes frame-types=admit-only-untagged-and-priority-tagged interface=iot-wifi pvid=100
add bridge=bridge frame-types=admit-only-untagged-and-priority-tagged interface=wifi1 pvid=99
add bridge=bridge frame-types=admit-only-untagged-and-priority-tagged interface=wifi2 pvid=99
add bridge=bridge frame-types=admit-only-untagged-and-priority-tagged interface=wifi3 pvid=99
/interface bridge vlan
add bridge=bridge comment=vlan30 tagged=ether3 vlan-ids=30
add bridge=bridge comment=vlan40 tagged=ether4 vlan-ids=40
add bridge=bridge comment=vlan50 tagged=ether5 vlan-ids=50
add bridge=bridge comment=vlan99 tagged=ether2 vlan-ids=99
# iot-wifi not a bridge port
add bridge=bridge comment=vlan100 disabled=yes tagged=iot-wifi vlan-ids=100
I have not got around to setting up the firewall to isolate the VLANs yet, so any tips are much appreciated.
Thank you very much in advance! ![]()

