mirror of
https://github.com/misterkrittin/Scripts-MikroTik.git
synced 2025-08-04 10:04:25 +02:00
Create [Script-MikroTik] 2 PPPoE WAN Connection (Dynamic IP from ISP) + Auto Fail Over + Recursive Routing (RouterOS7).txt
This commit is contained in:
parent
0301542d1a
commit
196a95eb96
1 changed files with 60 additions and 0 deletions
|
@ -0,0 +1,60 @@
|
|||
################################################################################################
|
||||
## 2 PPPoE WAN Connection (Dynamic IP from ISP) + Auto Fail Over + Recursive Routing (RouterOS7)
|
||||
## Credit : @Ton(y)Dev พ่อมดไอที
|
||||
################################################################################################
|
||||
|
||||
### PPP > Profiles > Name Profile1 (New Profile) > Scripts > On Up: ###
|
||||
|
||||
:local createRoute do={
|
||||
/log/info message="Add route $remoteAddress"
|
||||
/ip/route/add dst-address=$dstAddress gateway=$remoteAddress scope=10 target-scope=10 distance=$distance comment=("D".$wan)
|
||||
/ip/route/add dst-address=0.0.0.0/0 gateway=$gateway scope=30 target-scope=11 distance=$distance check-gateway=ping routing-table=main suppress-hw-offload=no comment=("D".$wan)
|
||||
}
|
||||
|
||||
:local wanConf {
|
||||
{
|
||||
"remoteAddress"=$"remote-address";
|
||||
"dstAddress"=1.1.1.1/32;
|
||||
"gateway"=1.1.1.1;
|
||||
"distance"=1;
|
||||
"wan"="pppoe-out1"
|
||||
};
|
||||
{
|
||||
"remoteAddress"=$"remote-address";
|
||||
"dstAddress"=8.8.8.8/32;
|
||||
"gateway"=8.8.8.8;
|
||||
"distance"=2;
|
||||
"wan"="pppoe-out2"
|
||||
};
|
||||
}
|
||||
|
||||
:local getInterface [/interface/get $interface];
|
||||
|
||||
:foreach w in=$wanConf do={
|
||||
:local wan ($w->"wan");
|
||||
:if ($wan = ($getInterface->"name")) do={
|
||||
:if ([:len [/ip/route/print as-value where comment=("D".$wan)]] > 0) do={
|
||||
/log/info message="Remove route D$wan"
|
||||
/ip/route/remove [find comment=("D".$wan)]
|
||||
}
|
||||
|
||||
$createRoute remoteAddress=($w->"remoteAddress") dstAddress=($w->"dstAddress") gateway=($w->"gateway") distance=($w->"distance") wan=$wan
|
||||
}
|
||||
}
|
||||
|
||||
##########[Completed PPP UP]##########
|
||||
|
||||
|
||||
### PPP > Profiles > Name Profile1 (New Profile) > Scripts > On Down: ###
|
||||
|
||||
:local removeRoute do={
|
||||
/ip/route/remove [find comment=$wan]
|
||||
}
|
||||
|
||||
:local gw [/ip/route/print as-value where gateway=$"remote-address"];
|
||||
|
||||
:if (($gw->0->"comment") != "") do={
|
||||
$removeRoute wan=($gw->0->"comment")
|
||||
}
|
||||
|
||||
##########[Completed PPP DOWN]##########
|
Loading…
Add table
Add a link
Reference in a new issue