/interface ethernet
set [ find default-name=ether1 ] name=ether1-WAN1
set [ find default-name=ether2 ] name=ether2-WAN2
set [ find default-name=ether4 ] name=ether4-LAN
/ip pool
add name=dhcp_pool0 ranges=10.10.10.2-10.10.10.254
/ip dhcp-server
add address-pool=dhcp_pool0 disabled=no interface=ether4-LAN name=dhcp1
/ip address
add address=10.10.10.1/24 interface=ether4-LAN network=10.10.10.0
/ip dhcp-client
add add-default-route=no disabled=no interface=ether1-WAN1 script="{
\
:local rmark \"to_wan1\"
\
:local count [/ip route print count-only where comment=\"to_wan1\"]\
\
:if (\$bound=1) do={
\
:if (\$count = 0) do={
\
/ip route add distance=1 gateway=\$\"gateway-address\" check\
-gateway=ping routing-mark=to_wan1 comment=\"to_wan1\"
\
/ip route add distance=1 gateway=\$\"gateway-address\" check\
-gateway=ping comment=\"to_wan1\"
\
} else={
\
:if (\$count = 1) do={
\
:local test [/ip route find where comment=\"to_wan1\"]
\
:if ([/ip route get \$test gateway] != \$\"gateway-addre\
ss\") do={
\
/ip route set \$test gateway=\$\"gateway-address\"
\
}
\
} else={
\
:error \"Multiple routes found\"
\
}
\
}
\
} else={
\
/ip route remove [find comment=\"to_wan1\"]
\
}
\
}"
add add-default-route=no disabled=no interface=ether2-WAN2 script="{
\
:local rmark \"to_wan2\"
\
:local count [/ip route print count-only where comment=\"to_wan2\"]\
\
:if (\$bound=1) do={
\
:if (\$count = 0) do={
\
/ip route add distance=1 gateway=\$\"gateway-address\" check\
-gateway=ping routing-mark=to_wan2 comment=\"to_wan2\"
\
/ip route add distance=2 gateway=\$\"gateway-address\" check\
-gateway=ping comment=\"to_wan2\"
\
\t} else={
\
:if (\$count = 1) do={
\
:local test [/ip route find where comment=\"to_wan2\"]
\
:if ([/ip route get \$test gateway] != \$\"gateway-addre\
ss\") do={
\
/ip route set \$test gateway=\$\"gateway-address\"
\
}
\
} else={
\
:error \"Multiple routes found\"
\
}
\
}
\
} else={
\
/ip route remove [find comment=\"to_wan2\"]
\
}
\
}"
/ip dhcp-server network
add address=10.10.10.0/24 dns-server=8.8.8.8 gateway=10.10.10.1
/ip firewall mangle
add action=accept chain=prerouting in-interface=ether1-WAN1
add action=accept chain=prerouting in-interface=ether2-WAN2
add action=mark-connection chain=prerouting dst-address-type=!local \
new-connection-mark=wan1_conn passthrough=yes per-connection-classifier=\
both-addresses-and-ports:2/0 src-address=10.10.10.0/24
add action=mark-connection chain=prerouting dst-address-type=!local \
new-connection-mark=wan2_conn passthrough=yes per-connection-classifier=\
both-addresses-and-ports:2/1 src-address=10.10.10.0/24
add action=mark-routing chain=prerouting connection-mark=wan1_conn \
new-routing-mark=to_wan1 passthrough=yes src-address=10.10.10.0/24
add action=mark-routing chain=prerouting connection-mark=wan2_conn \
new-routing-mark=to_wan2 passthrough=yes src-address=10.10.10.0/24
/ip firewall nat
add action=masquerade chain=srcnat out-interface=ether1-WAN1 src-address=\
10.10.10.0/24
add action=masquerade chain=srcnat out-interface=ether2-WAN2 src-address=\
10.10.10.0/24
/ip route
add check-gateway=ping comment=to_wan1 distance=1 gateway=192.168.1.1 \
routing-mark=to_wan1
add check-gateway=ping comment=to_wan2 distance=1 gateway=192.168.2.1 \
routing-mark=to_wan2
add check-gateway=ping comment=to_wan1 distance=1 gateway=192.168.1.1
add check-gateway=ping comment=to_wan2 distance=2 gateway=192.168.2.1
14 окт 2024