|
楼主 |
发表于 2021-8-29 10:11:15
|
显示全部楼层
感谢大神提供了另外一种同网关负载匀衡的方法,两个出口负载匀衡,您介绍的方法和我现在使用的方法都可以实现,关键是两条固定IP有一条不通的时候,如何用脚本来判断去修改PCC参数,原来的ADSL断线自动更改PCC的参数的脚本如下:判断WAN口是通还是不通,是不是用ping DNS服务器IP来实现(我把WAN1口网线从上级网关上拔下来,插到一个空的交换机上,WAN1状态无论在/interface ,/ip address,/ip route 中匀显示正常)?
以下ADSL断线自动修改PCC参数脚本加了判断条件,只有符合条件时才修改参数,而不是每次运行就修改,减少了CPU的消耗
{
:local status
:local i "3"
:local x "0"
:local y "0"
:local z "0"
:set x [:len [/interface pppoe-client find running=yes (name~"^tel")=yes]]
:set z [:len [/ip fir nat find action="src-nat" disabled=no chain=srcnat (comment~"^tel")=yes]]
:if ((($x<$i) && ($x<$z)) || (($x<$i) && ($x>$z))) do={
:for ii from=1 to=$i do={
:set status [/interface get [find name=("tel-".$ii)] running]
:if ($status=true) do={
/ip fir man set [find comment=("tel-".$ii)] per-connection-classifier=("both-addresses-and-ports:".$x."/".$y) disable=no;:set y ($y+1);/ip fir man set [find comment=("tel-".$ii$ii)] disable=no;/ip fir man set [find comment=("tel-"."$ii$ii$ii")] disable=no;/ip fir nat set [find comment=("tel-".$ii)] disable=no} else={
/ip fir man set [find comment=("tel-".$ii)] disable=yes;/ip fir man set [find comment=("tel-"."$ii$ii$ii")] disable=yes;/ip fir nat set [find comment=("tel-".$ii$ii)] disable=yes}}}
:if (($x=$i) && ($x>$z)) do={
:for ii from=1 to=$i do={
/ip fi man set [find comment=("tel-".$ii)] per-connection-classifier=("both-addresses-and-ports:".$x."/".$y) disable=no;:set y ($y+1);/ip fi man set [find comment=("tel-".$ii$ii)] disable=no;/ip fir man set [find comment=("tel-"."$ii$ii$ii")] disable=no;/ip fir nat set [find comment=("tel-".$ii)] disable=no}}}
}
|
|