Hi all,
I have just ‘migrated’ to Mikrotik from my Edgerouter. I am really enjoying the Mikrotik so far after spending my weekend learning how to essentially ‘mirror’ my configuration, but i do have some questions as i did run into a couple of issues, specifically with VLANs and firewall rules.
Setup is/should be as follows:
main LAN - 192.168.1.1/24 - default VLAN / VLAN ID 1
Secondary LAN - 192.168.3.1/24 - VLAN ID 3
Guest/home LAN - 192.168.110.1/24 - VLAN ID 100
eth 2-4 is bridged, eth5 has PVID of 3 because i want the device connected to this port to be part of VLAN 3.
/interface bridge
add admin-mac=48:A9:8A* auto-mac=no comment=defconf name=bridge-1-5 vlan-filtering=yes
/interface wifiwave2
set [ find default-name=wifi1 ] channel.skip-dfs-channels=10min-cac configuration.mode=ap .ssid=MikroTik-662BC5 \
security.authentication-types=wpa2-psk,wpa3-psk
set [ find default-name=wifi2 ] channel.skip-dfs-channels=10min-cac configuration.mode=ap .ssid=MikroTik-662BC6 \
security.authentication-types=wpa2-psk,wpa3-psk
/interface pppoe-client
add add-default-route=yes disabled=no interface=ether1 name=pppoe-out1 use-peer-dns=yes user=\
***
/interface vlan
add comment=pi interface=bridge-1-5 name=vlan-3 vlan-id=3
add comment=home interface=bridge-1-5 name=vlan-100 vlan-id=100
/interface list
add comment=defconf name=WAN
add comment=defconf name=LAN
/ip pool
add name=dhcp ranges=192.168.1.10-192.168.1.254
add name=dhcp_pool1 ranges=192.168.3.2-192.168.3.254
add name=dhcp_pool2 ranges=192.168.110.2-192.168.110.254
/ip dhcp-server
add address-pool=dhcp interface=bridge-1-5 lease-time=10m name=dhcp-.1.
add address-pool=dhcp_pool1 interface=vlan-3 name=dhcp-.3.
add address-pool=dhcp_pool2 interface=vlan-100 name=dhcp-.110.
/interface bridge port
add bridge=bridge-1-5 comment=defconf interface=ether2
add bridge=bridge-1-5 comment=defconf interface=ether3
add bridge=bridge-1-5 comment=defconf interface=ether4
add bridge=bridge-1-5 comment=defconf interface=ether5 pvid=3
add bridge=bridge-1-5 comment=defconf disabled=yes interface=wifi1
add bridge=bridge-1-5 comment=defconf disabled=yes interface=wifi2
/ip neighbor discovery-settings
set discover-interface-list=LAN
/ipv6 settings
set disable-ipv6=yes
/interface bridge vlan
[b]add bridge=bridge-1-5 tagged=ether2,bridge-1-5 vlan-ids=100
add bridge=bridge-1-5 tagged=bridge-1-5 untagged=ether5 vlan-ids=3[/b]
/interface list member
add comment=defconf interface=bridge-1-5 list=LAN
add comment=defconf interface=ether1 list=WAN
add interface=pppoe-out1 list=WAN
/ip address
add address=192.168.1.1/24 comment=my-net interface=bridge-1-5 network=192.168.1.0
add address=192.168.3.1/24 comment=pi-net interface=vlan-3 network=192.168.3.0
add address=192.168.110.1/24 comment=home-net interface=vlan-100 network=192.168.110.0
/ip dhcp-client
add comment=defconf disabled=yes interface=ether1
/ip dhcp-server network
add address=192.168.1.0/24 comment=defconf dns-server=192.168.3.11 gateway=192.168.1.1 netmask=24
add address=192.168.3.0/24 dns-server=1.1.1.1,8.8.8.8 gateway=192.168.3.1
add address=192.168.110.0/24 dns-server=1.1.1.1,8.8.8.8 gateway=192.168.110.1
/ip dns
set allow-remote-requests=yes
/ip dns static
add address=192.168.1.1 comment=defconf name=router.lan
/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
add action=drop chain=input comment=\
"defconf: drop all not coming from LAN (interface list). this drops VLANS automatically from accessing router" \
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 \
hw-offload=yes
[b]add action=drop chain=forward comment="Drop Internal - VLAN100 to LAN" connection-state="" dst-address=192.168.1.0/24 \
src-address=192.168.110.0/24
add action=drop chain=forward comment="Drop Internal - VLAN100 to VLAN3" connection-state="" dst-address=\
192.168.3.0/24 src-address=192.168.110.0/24[/b]
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 \
connection-state=new in-interface-list=WAN
/ip firewall nat
add action=masquerade chain=srcnat comment="defconf: masquerade" ipsec-policy=out,none out-interface-list=WAN
add action=dst-nat chain=dstnat comment="port fwd to WG server tcp" dst-port=51822 in-interface-list=WAN protocol=tcp \
to-addresses=192.168.1.96 to-ports=51822
add action=dst-nat chain=dstnat comment="port fwd to WG server udp" dst-port=51822 in-interface-list=WAN protocol=udp \
to-addresses=192.168.1.96 to-ports=51822
/ip service
set telnet disabled=yes
set ftp disabled=yes
/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
/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" 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=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
/system clock
set time-zone-name=Europe/London
/system note
set show-at-login=no
/tool mac-server
set allowed-interface-list=none
/tool mac-server mac-winbox
set allowed-interface-list=LAN
So, I have hopefully made it so that anything plugged into eth5 will be assigned to VLAN3, and eth2 is looking for tagged packets and assigning devices to VLAN100 accordingly. From my testing this is working fine, hopefully the configuration is correct/acceptable method of achieving what i require.
What i am stuck on is firewall rules. I want to make it so that default LAN/VLAN1 can access VLAN100, but VLAN100 should not be able to access VLAN1.
As an example, VLAN100 has an IP phone with the IP address 192.168.110.100. I would like to access the webUI of 192.168.110.100 from VLAN1, but i dont want a device on VLAN100 to be able to see or communicate with my server on VLAN1. You can see that i have a firewall rule in place blocking src192.168.110.1/24 to dest192.168.1.1/24, but this blocks all traffic from both sides.
Is anyone able to help with a firewall rule that would make this possible?
Thank you!