Hi,
I'm trying to configure my MikroTik hEX (RouterOS v7.19.3 - E50UG) with the following network segmentation:
-
Main LAN (192.168.10.0/24) → Uses UVT connection (pppoe-out1)
-
Guest network (192.168.50.0/24) → Uses CZNET connection (ether1)
-
IoT network (192.168.66.0/24) → No direct internet access
Configuration already done
Connection Marking
-
Main LAN traffic marked as
uvt_conn -
Guest traffic marked as
cznet_conn
Policy Routing
-
Two separate routing tables:
to-wan-cznetandto-wan-uvt -
Marked connections routed through appropriate WAN
Network Address Translation (NAT)
-
Main LAN traffic masqueraded through UVT
-
Guest traffic masqueraded through CZNET
VLAN Setup
-
VLAN 50 for guest network
-
VLAN 66 for IoT devices
-
VLAN 848 for UVT PPPoE connection
DHCP Services
- Separate DHCP pools for each network segment
Problem Description
Connections from LANs are not working. I can ping the router itself, but traffic is not being sent to the correct WAN interface.
Question
I have no idea what I'm missing. Any suggestions on what could be wrong with my configuration? You can see details in config below
Thanks!
/ip address print
Flags: D - DYNAMIC
Columns: ADDRESS, NETWORK, INTERFACE
# ADDRESS NETWORK INTERFACE
;;; defconf
0 192.168.10.1/24 192.168.10.0 bridge
1 10.200.126.135/26 10.200.126.128 ether1
;;; iot
2 192.168.66.1/24 192.168.66.0 vlan66
3 D 178.15.15.15/32 10.11.5.146 pppoe-out1
;;; guest
4 192.168.50.1/24 192.168.50.0 vlan50
/interface print
Flags: R - RUNNING; S - SLAVE
Columns: NAME, TYPE, ACTUAL-MTU, L2MTU, MAX-L2MTU, MAC-ADDRESS
# NAME TYPE ACTUAL-MTU L2MTU MAX-L2MTU MAC-ADDRESS
;;; CZNET
0 R ether1 ether 1500 1600 2048 F4:1E:57:AD:B7:F6
;;; UVTNET
1 R ether2 ether 1500 1596 2026 F4:1E:57:AD:B7:F7
2 RS ether3 ether 1500 1596 2026 F4:1E:57:AD:B7:F8
3 RS ether4 ether 1500 1596 2026 F4:1E:57:AD:B7:F9
4 S ether5 ether 1500 1596 2026 F4:1E:57:AD:B7:FA
;;; defconf
5 R bridge bridge 1500 1596 F4:1E:57:AD:B7:F7
6 R lo loopback 65536 00:00:00:00:00:00
;;; uvt
7 R pppoe-out1 pppoe-out 1492
;;; guest
8 R vlan50 vlan 1500 1592 F4:1E:57:AD:B7:F7
;;; iot
9 R vlan66 vlan 1500 1592 F4:1E:57:AD:B7:F7
;;; UVT
10 R vlan848 vlan 1500 1592 F4:1E:57:AD:B7:F7
/interface vlan print
Flags: R - RUNNING
Columns: NAME, MTU, ARP, VLAN-ID, INTERFACE
# NAME MTU ARP VLAN-ID INTERFACE
;;; guest
0 R vlan50 1500 enabled 50 bridge
;;; iot
1 R vlan66 1500 enabled 66 bridge
;;; UVT
2 R vlan848 1500 enabled 848 ether2
/interface bridge print
Flags: D - dynamic; X - disabled, R - running
0 R ;;; defconf
name="bridge" mtu=auto actual-mtu=1500 l2mtu=1596 arp=enabled arp-timeout=auto mac-address=F4:1E:57:AD:B7:F7 protocol-mode=rstp fast-forward=yes igmp-snooping=no auto-mac=no admin-mac=F4:1E:57:AD:B7:F7
ageing-time=5m priority=0x8000 max-message-age=20s forward-delay=15s transmit-hold-count=6 vlan-filtering=no dhcp-snooping=no port-cost-mode=long mvrp=no max-learned-entries=auto
/interface bridge port print
Flags: I - INACTIVE; H - HW-OFFLOAD
Columns: INTERFACE, BRIDGE, HW, HORIZON, TRUSTED, FAST-LEAVE, BPDU-GUARD, EDGE, POINT-TO-POINT, PVID, FRAME-TYPES
# INTERFACE BRIDGE HW HORIZON TRUSTED FAST-LEAVE BPDU-GUARD EDGE POINT-TO-POINT PVID FRAME-TYPES
;;; defconf
0 H ether3 bridge yes none no no no auto auto 1 admit-all
;;; defconf
1 H ether4 bridge yes none no no no auto auto 1 admit-all
;;; defconf
2 IH ether5 bridge yes none no no no auto auto 1 admit-all
/ip route print detail
Flags: D - dynamic; X - disabled, I - inactive, A - active; c - connect, s - static, r - rip, b - bgp, o - ospf, i - is-is, d - dhcp, v - vpn, m - modem, y - bgp-mpls-vpn; H - hw-offloaded; + - ecmp
0 Xs dst-address=0.0.0.0/0 routing-table=main gateway=10.200.126.129 distance=2 scope=30 target-scope=10 suppress-hw-offload=no
1 As dst-address=0.0.0.0/0 routing-table=main gateway=pppoe-out1 immediate-gw=pppoe-out1 distance=1 scope=30 target-scope=10 suppress-hw-offload=no
DAc dst-address=10.11.5.146/32 routing-table=main gateway=pppoe-out1 immediate-gw=pppoe-out1 distance=0 scope=10 target-scope=5 local-address=178.17.14.240%pppoe-out1
DAc dst-address=10.200.126.128/26 routing-table=main gateway=ether1 immediate-gw=ether1 distance=0 scope=10 target-scope=5 local-address=10.200.126.135%ether1
DAc dst-address=192.168.10.0/24 routing-table=main gateway=bridge immediate-gw=bridge distance=0 scope=10 target-scope=5 local-address=192.168.10.1%bridge
DAc dst-address=192.168.50.0/24 routing-table=main gateway=vlan50 immediate-gw=vlan50 distance=0 scope=10 target-scope=5 local-address=192.168.50.1%vlan50
DAc dst-address=192.168.66.0/24 routing-table=main gateway=vlan66 immediate-gw=vlan66 distance=0 scope=10 target-scope=5 local-address=192.168.66.1%vlan66
2 As dst-address=0.0.0.0/0 routing-table=to-wan-cznet gateway=10.200.126.129 immediate-gw=10.200.126.129%ether1 distance=1 scope=30 target-scope=10 suppress-hw-offload=no
3 As dst-address=0.0.0.0/0 routing-table=to-wan-uvt gateway=pppoe-out1 immediate-gw=pppoe-out1 distance=1 scope=30 target-scope=10 suppress-hw-offload=no
4 As dst-address=209.38.255.33/32 routing-table=to-wan-uvt gateway=pppoe-out1 immediate-gw=pppoe-out1 distance=1 scope=30 target-scope=10 suppress-hw-offload=no
/ip firewall mangle print
Flags: X - disabled, I - invalid; D - dynamic
0 D ;;; special dummy rule to show fasttrack counters
chain=prerouting action=passthrough
1 D ;;; special dummy rule to show fasttrack counters
chain=forward action=passthrough
2 D ;;; special dummy rule to show fasttrack counters
chain=postrouting action=passthrough
3 ;;; LAN traffic
chain=prerouting action=mark-connection new-connection-mark=uvt_conn passthrough=yes dst-address-type=!local in-interface=bridge log=no log-prefix="z lan"
4 ;;; LAN traffic z vlan50
chain=prerouting action=mark-connection new-connection-mark=cznet_conn passthrough=yes src-address=192.168.50.0/24 dst-address-type=!local connection-mark=no-mark log=no log-prefix=""
5 ;;; uvt incoming
chain=prerouting action=mark-connection new-connection-mark=uvt_conn passthrough=yes connection-mark=no-mark in-interface=pppoe-out1 log=yes log-prefix="z uvt"
6 ;;; cznet incoming
chain=prerouting action=mark-connection new-connection-mark=cznet_conn passthrough=yes in-interface=ether1 log=yes log-prefix="z cznet"
7 ;;; cznet
chain=output action=mark-routing new-routing-mark=to-wan-cznet passthrough=no connection-mark=cznet_conn log=no log-prefix="output cznet"
8 ;;; uvt
chain=output action=mark-routing new-routing-mark=to-wan-uvt passthrough=no connection-mark=uvt_conn log=no log-prefix="output uvt"
9 ;;; cznet
chain=prerouting action=mark-routing new-routing-mark=to-wan-cznet passthrough=no connection-mark=cznet_conn log=no log-prefix="to-wan- cznet"
10 ;;; uvt
chain=prerouting action=mark-routing new-routing-mark=to-wan-uvt passthrough=no connection-mark=uvt_conn log=no log-prefix="to-wan uvt"
/ip firewall nat print
Flags: X - disabled, I - invalid; D - dynamic
0 ;;; defconf: masquerade
chain=srcnat action=masquerade src-address=192.168.10.0/24 routing-mark=to-wan-uvt log=no log-prefix="" ipsec-policy=out,none
1 ;;; defconf: masquerade
chain=srcnat action=masquerade src-address=192.168.50.0/24 routing-mark=to-wan-cznet log=no log-prefix="" ipsec-policy=out,none
/ip firewall filter print
Flags: X - disabled, I - invalid; D - dynamic
0 D ;;; special dummy rule to show fasttrack counters
chain=forward action=passthrough
1 ;;; defconf: accept established,related,untracked
chain=input action=accept connection-state=established,related,untracked
2 chain=input action=accept protocol=gre log=no log-prefix=""
3 ;;; defconf: drop invalid
chain=input action=drop connection-state=invalid
4 ;;; defconf: accept ICMP
chain=input action=accept protocol=icmp
5 ;;; defconf: accept to local loopback (for CAPsMAN)
chain=input action=accept dst-address=127.0.0.1
6 ;;; defconf: drop all not coming from LAN
chain=input action=drop in-interface-list=!LAN log=no log-prefix=""
7 ;;; defconf: accept in ipsec policy
chain=forward action=accept ipsec-policy=in,ipsec
8 ;;; defconf: accept out ipsec policy
chain=forward action=accept ipsec-policy=out,ipsec
9 ;;; defconf: fasttrack
chain=forward action=fasttrack-connection hw-offload=yes connection-state=established,related log=no log-prefix=""
10 ;;; defconf: accept established,related, untracked
chain=forward action=accept connection-state=established,related,untracked
11 ;;; defconf: drop invalid
chain=forward action=drop connection-state=invalid
12 ;;; defconf: drop all from WAN not DSTNATed
chain=forward action=drop connection-state=new connection-nat-state=!dstnat in-interface-list=WAN
13 ;;; allow to vlan66 from vlan1
chain=forward action=accept src-address=192.168.10.0/24 dst-address=192.168.66.0/24 log=no log-prefix=""
14 chain=forward action=drop src-address=192.168.66.0/24 out-interface-list=WAN log=no log-prefix=""
15 ;;; Block guest to LAN1
chain=forward action=drop src-address=192.168.50.0/24 dst-address=192.168.10.0/24 log=no log-prefix=""
16 ;;; Block guest to LAN2
chain=forward action=drop src-address=192.168.50.0/24 dst-address=192.168.66.0/24 log=no log-prefix=""
17 ;;; Block management from guest
chain=input action=drop protocol=tcp in-interface=vlan50 dst-port=8291,22,23,80,443,8728,8729
18 ;;; Allow guest to internet
chain=forward action=accept in-interface=vlan50 out-interface-list=WAN
/interface pppoe-client print
Flags: X - disabled, I - invalid; R - running
0 R ;;; uvt
name="pppoe-out1" max-mtu=1492 max-mru=1492 mrru=disabled interface=vlan848 user="xxx" password="xxx" profile=default keepalive-timeout=10 service-name="" ac-name="" add-default-route=no dial-on-demand=no
use-peer-dns=no allow=pap,chap,mschap1,mschap2
/interface list print
Flags: * - BUILTIN
Columns: NAME
# NAME
;;; contains all interfaces
0 * all
;;; contains no interfaces
1 * none
;;; contains dynamic interfaces
2 * dynamic
;;; contains static interfaces
3 * static
;;; defconf
4 WAN
;;; defconf
5 LAN
/interface list member print
Columns: LIST, INTERFACE
# LIST INTERFACE
;;; defconf
0 LAN bridge
;;; defconf
1 WAN ether1
2 WAN pppoe-out1
/ip dhcp-server print
Columns: NAME, INTERFACE, ADDRESS-POOL, LEASE-TIME
# NAME INTERFACE ADDRESS-POOL LEASE-TIME
0 defconf bridge dhcp 30m
1 dhcp66 vlan66 dhcp66 30m
2 dhcp50 vlan50 dhcp50 30m
/ip pool print
Columns: NAME, RANGES, TOTAL, USED, AVAILABLE
# NAME RANGES TOTAL USED AVAILABLE
0 dhcp 192.168.10.38-192.168.10.243 206 9 197
;;; v66
1 dhcp66 192.168.66.10-192.168.66.240 231 10 221
;;; v50
2 dhcp50 192.168.50.10-192.168.50.240 231 2 229e