/interface ethernet set [find default-name=ether1] name=ether1 set [find default-name=ether2] name=ether2 set [find default-name=ether3] name=ether3 set [find default-name=ether4] name=ether4 /ip address add address=192.168.254.1/24 network=192.168.254.0 broadcast=192.168.254.255 interface=ether4 add address=192.168.1.10/24 network=192.168.1.0 broadcast=192.168.1.255 interface=ether1 add address=192.168.2.10/24 network=192.168.2.0 broadcast=192.168.2.255 interface=ether2 add address=192.168.3.10/24 network=192.168.3.0 broadcast=192.168.3.255 interface=ether3 /ip firewall mangle add chain=input in-interface=ether1 action=mark-connection new-connection-mark=ether1_conn add chain=input in-interface=ether2 action=mark-connection new-connection-mark=ether2_conn add chain=input in-interface=ether3 action=mark-connection new-connection-mark=ether3_conn add chain=output connection-mark=ether1_conn action=mark-routing new-routing-mark=to_ether1 add chain=output connection-mark=ether2_conn action=mark-routing new-routing-mark=to_ether2 add chain=output connection-mark=ether3_conn action=mark-routing new-routing-mark=to_ether3 add chain=prerouting dst-address=192.168.1.0/24 action=accept in-interface=ether4 add chain=prerouting dst-address=192.168.2.0/24 action=accept in-interface=ether4 add chain=prerouting dst-address=192.168.3.0/24 action=accept in-interface=ether4 add chain=prerouting dst-address-type=!local in-interface=ether4 per-connection-classifier=both-addresses-and-ports:3/0 action=mark-connection new-connection-mark=ether1_conn passthrough=yes add chain=prerouting dst-address-type=!local in-interface=ether4 per-connection-classifier=both-addresses-and-ports:3/1 action=mark-connection new-connection-mark=ether2_conn passthrough=yes add chain=prerouting dst-address-type=!local in-interface=ether4 per-connection-classifier=both-addresses-and-ports:3/2 action=mark-connection new-connection-mark=ether3_conn passthrough=yes add chain=prerouting connection-mark=ether1_conn in-interface=ether4 action=mark-routing new-routing-mark=to_ether1 add chain=prerouting connection-mark=ether2_conn in-interface=ether4 action=mark-routing new-routing-mark=to_ether2 add chain=prerouting connection-mark=ether3_conn in-interface=ether4 action=mark-routing new-routing-mark=to_ether3 /ip route add dst-address=0.0.0.0/0 gateway=192.168.1.1 routing-mark=to_ether1 check-gateway=ping add dst-address=0.0.0.0/0 gateway=192.168.2.1 routing-mark=to_ether2 check-gateway=ping add dst-address=0.0.0.0/0 gateway=192.168.3.1 routing-mark=to_ether3 check-gateway=ping add dst-address=0.0.0.0/0 gateway=192.168.1.1 distance=1 check-gateway=ping add dst-address=0.0.0.0/0 gateway=192.168.2.1 distance=2 check-gateway=ping add dst-address=0.0.0.0/0 gateway=192.168.3.1 distance=3 check-gateway=ping /ip firewall nat add chain=srcnat out-interface=ether1 action=masquerade add chain=srcnat out-interface=ether2 action=masquerade add chain=srcnat out-interface=ether3 action=masquerade /ip dns set servers=8.8.8.8,8.8.4.4