Good evening everyone,
I’ve been struggling to get VLANs set up on my home network for about a week now, and after trying several different techniques I think I discovered the correct way, but things aren’t working. I’ve already read the following posts:
http://forum.mikrotik.com/t/using-routeros-to-vlan-your-network/126489/1
http://forum.mikrotik.com/t/dhcp-in-vlans-not-working-on-ccr2004/161900/1
http://forum.mikrotik.com/t/routeros-bridge-mysteries-explained/147832/1
Unfortunately, while it seems as though I’ve gotten the bridge and VLANs set up properly (including tagging the vlan bridge), I cannot get dhcp addresses and I believe there is a problem.
Current config:
# 2023-12-08 18:28:07 by RouterOS 7.12
# model = RB750Gr3
/interface bridge
add name=VLAN_BRIDGE protocol-mode=none
add name=mgmt-vlan
/interface ethernet
set [ find default-name=ether3 ] name=ether3-access
/interface vlan
add interface=VLAN_BRIDGE name=IOT_vlan40 vlan-id=40
add interface=VLAN_BRIDGE name=guest_vlan60 vlan-id=60
add interface=VLAN_BRIDGE name=management_vlan99 vlan-id=99
add interface=VLAN_BRIDGE name=services_vlan20 vlan-id=20
add interface=VLAN_BRIDGE name=trusted_devices_vlan50 vlan-id=50
/interface list
add name=listBridge
add name=WAN
/interface wireless security-profiles
set [ find default=yes ] supplicant-identity=MikroTik
/ip pool
add name=dhcp_pool2 ranges="ISP provided wan IP"
add name=dhcp_pool9 ranges=192.168.0.2-192.168.0.254
add name=dhcp_pool10 ranges=10.10.100.2-10.10.100.254
add name=dhcp_pool16 ranges=10.10.20.2-10.10.20.254
add name=dhcp_pool17 ranges=10.10.40.2-10.10.40.254
add name=dhcp_pool18 ranges=10.10.50.2-10.10.50.254
add name=dhcp_pool19 ranges=10.10.60.2-10.10.60.254
add name=dhcp_pool20 ranges=10.10.99.2-10.10.99.254
add name=dhcp_pool21 ranges=10.10.10.2-10.10.10.254
/ip dhcp-server
add address-pool=dhcp_pool10 interface=mgmt-vlan name=dhcp7
add address-pool=dhcp_pool16 interface=services_vlan20 name=dhcp2
add address-pool=dhcp_pool17 interface=IOT_vlan40 name=dhcp3
add address-pool=dhcp_pool18 interface=trusted_devices_vlan50 name=dhcp4
add address-pool=dhcp_pool19 interface=guest_vlan60 name=dhcp5
add address-pool=dhcp_pool20 interface=management_vlan99 name=dhcp6
/port
set 0 name=serial0
/interface bridge port
add bridge=VLAN_BRIDGE interface=ether2 pvid=99
add bridge=mgmt-vlan interface=ether3-access trusted=yes
add bridge=VLAN_BRIDGE interface=ether4 pvid=20
add bridge=VLAN_BRIDGE interface=ether5 pvid=20
/ip neighbor discovery-settings
set discover-interface-list=listBridge
/interface bridge vlan
add bridge=VLAN_BRIDGE tagged=VLAN_BRIDGE,ether2 untagged=ether5 vlan-ids=20
add bridge=VLAN_BRIDGE tagged=VLAN_BRIDGE,ether2 vlan-ids=40
add bridge=VLAN_BRIDGE tagged=VLAN_BRIDGE,ether2 vlan-ids=50
add bridge=VLAN_BRIDGE tagged=VLAN_BRIDGE,ether2 vlan-ids=60
add bridge=VLAN_BRIDGE tagged=VLAN_BRIDGE,ether2 vlan-ids=99
/interface list member
add interface=*7 list=listBridge
add interface=ether1 list=WAN
/ip address
add address=10.10.99.1/24 interface=management_vlan99 network=10.10.99.0
add address=10.10.20.1/24 interface=services_vlan20 network=10.10.20.0
add address=10.10.40.1/24 interface=IOT_vlan40 network=10.10.40.0
add address=10.10.50.1/24 interface=trusted_devices_vlan50 network=10.10.50.0
add address=10.10.60.1/24 interface=guest_vlan60 network=10.10.60.0
add address=10.10.100.1/24 interface=ether3-access network=10.10.100.0
/ip cloud
set ddns-enabled=yes ddns-update-interval=15m
/ip cloud advanced
set use-local-address=yes
/ip dhcp-client
add interface=ether1
/ip dhcp-server network
add address=10.10.10.0/24 dns-server=1.1.1.1 gateway=10.10.10.1
add address=10.10.20.0/24 gateway=10.10.20.1
add address=10.10.40.0/24 gateway=10.10.40.1
add address=10.10.50.0/24 gateway=10.10.50.1
add address=10.10.60.0/24 gateway=10.10.60.1
add address=10.10.99.0/24 dns-server=1.1.1.1 gateway=10.10.99.1
add address=10.10.100.0/24 gateway=10.10.100.1
add address=192.168.0.0/24 gateway=192.168.0.1
/ip dns
set allow-remote-requests=yes servers=1.1.1.1
/ip firewall address-list
add address=10.10.10.1-10.10.254.254 list=allowed-to-router
add address=0.0.0.0/8 comment=RFC6890 list=not_in_internet
add address=172.16.0.0/12 comment=RFC6890 list=not_in_internet
add address=192.168.0.0/16 comment=RFC6890 list=not_in_internet
add address=10.0.0.0/8 comment=RFC6890 list=not_in_internet
add address=169.254.0.0/16 comment=RFC6890 list=not_in_internet
add address=127.0.0.0/8 comment=RFC6890 list=not_in_internet
add address=224.0.0.0/4 comment=Multicast list=not_in_internet
add address=198.18.0.0/15 comment=RFC6890 list=not_in_internet
add address=192.0.0.0/24 comment=RFC6890 list=not_in_internet
add address=192.0.2.0/24 comment=RFC6890 list=not_in_internet
add address=198.51.100.0/24 comment=RFC6890 list=not_in_internet
add address=203.0.113.0/24 comment=RFC6890 list=not_in_internet
add address=100.64.0.0/10 comment=RFC6890 list=not_in_internet
add address=240.0.0.0/4 comment=RFC6890 list=not_in_internet
add address=192.88.99.0/24 comment="6to4 relay Anycast [RFC 3068]" list=\
not_in_internet
/ip firewall filter
add action=accept chain=input comment="allow wireguard" dst-port=13231 \
in-interface-list=WAN protocol=udp
add action=accept chain=input dst-port=13232 in-interface-list=WAN protocol=udp
add action=accept chain=input dst-port=13233 in-interface-list=WAN protocol=udp
add action=accept chain=input comment="allow wireguard traffic" disabled=yes \
src-address=192.168.100.0/24
add action=accept chain=input comment="accept established,related" \
connection-state=established,related
add action=drop chain=input connection-state=invalid
add action=drop chain=input comment="allow ICMP" disabled=yes in-interface=\
ether1 protocol=icmp
add action=drop chain=input comment="allow Winbox" in-interface=ether1 port=\
8291 protocol=tcp
add action=drop chain=input comment="allow SSH" in-interface=ether1 port=22 \
protocol=tcp
add action=drop chain=input comment="block everything else" in-interface=ether1
add action=fasttrack-connection chain=forward comment=\
"fast-track for established,related" connection-state=established,related \
hw-offload=yes
add action=drop chain=forward connection-state=invalid
add action=drop chain=forward comment=\
"drop access to clients behind NAT from WAN" connection-nat-state=!dstnat \
connection-state=new in-interface=ether1
add action=accept chain=input src-address-list=allowed-to-router
add action=accept chain=forward comment="Established, Related" \
connection-state=established,related
add action=drop chain=forward comment="Drop invalid" connection-state=invalid \
log=yes log-prefix=invalid
add action=jump chain=forward comment="jump to ICMP filters" jump-target=icmp \
protocol=icmp
add action=drop chain=forward comment=\
"Drop incoming from internet which is not public IP" in-interface=ether1 \
log=yes log-prefix=!public src-address-list=not_in_internet
add action=accept chain=icmp comment="echo reply" icmp-options=0:0 protocol=\
icmp
add action=accept chain=icmp comment="net unreachable" icmp-options=3:0 \
protocol=icmp
add action=accept chain=icmp comment="host unreachable" icmp-options=3:1 \
protocol=icmp
add action=accept chain=icmp comment="host unreachable fragmentation required" \
icmp-options=3:4 protocol=icmp
add action=accept chain=icmp comment="allow echo request" icmp-options=8:0 \
protocol=icmp
add action=accept chain=icmp comment="allow time exceed" icmp-options=11:0 \
protocol=icmp
add action=accept chain=icmp comment="allow parameter bad" icmp-options=12:0 \
protocol=icmp
add action=drop chain=icmp comment="deny all other types"
add action=drop chain=input disabled=yes dst-port=8291 in-interface=\
all-ethernet protocol=tcp
/ip firewall nat
add action=masquerade chain=srcnat out-interface=ether1
/ip service
set telnet disabled=yes
set ftp disabled=yes
set www disabled=yes
set ssh disabled=yes
set api disabled=yes
set api-ssl disabled=yes
/ipv6 firewall address-list
add address=fe80::/64 list=allowed
add address=fe80::/16 list=allowed
add address=ff02::/16 comment=multicast list=allowed
/ipv6 firewall filter
add action=accept chain=input comment="allow established and related" \
connection-state=established,related
add action=accept chain=input comment="accept ICMPv6" protocol=icmpv6
add action=accept chain=input comment="defconf: accept UDP traceroute" port=\
33434-33534 protocol=udp
add action=accept chain=input comment="accept DHCPv6-Client prefix delegation." \
dst-port=546 protocol=udp src-address=fe80::/16
add action=accept chain=input comment="allow allowed addresses" \
src-address-list=allowed
add action=drop chain=input
add action=accept chain=forward comment=established,related connection-state=\
established,related
add action=drop chain=forward comment=invalid connection-state=invalid log=yes \
log-prefix=ipv6,invalid
add action=drop chain=forward log-prefix=IPV6
/system clock
set time-zone-name=America/New_York
/system note
set show-at-login=no
/tool bandwidth-server
set enabled=no
/tool mac-server
set allowed-interface-list=listBridge
/tool mac-server mac-winbox
set allowed-interface-list=listBridge
I have the WAN coming in ether1, a trunk port for ether2, a management interface on ether3, and want an access port for vlan 20 on ether5. I’m expecting the TP-LINK TL-SG108E to pick up an IP from the management vlan99 (PVID 99 on ether2), but it does not. Neither does the device on ether5, which should pick up an IP from vlan20. I haven’t enabled vlan filtering yet, since I just want to make sure DHCP works first.
I’m not sure if it’s the firewall rules causing issues, or if I made another mistake, but I appreciate anyone’s help to get things configured properly. Thank you in advance!

