当前位置:文档之家› ROS 典型PCC负载脚本

ROS 典型PCC负载脚本

ROS 典型PCC负载脚本:global num:set num 38:for szwm from=1to=$num do={:global type:set type ("both-addresses:". $num . "/". ($szwm-1))#设置网卡名字 name中的wlan可以改成#/interface set ("ether" . $szwm) name=("wlan". $szwm)#建立pppoe拨号,并禁用/interface pppoe-client addname=("pppoe-out". $szwm) user=("user" . $szwm) password=("pass" . $sz wm) \interface=("wlan".$szwm) comment=("ADSL_". $szwm) disabled=no# NAT伪装/ip firewall nat add chain=srcnat out-interface=("pppoe-out". $szwm)action=masquerade \comment=("NAT_ADSL". $szwm)# 标记从哪里来/ ip firewall mangle \add chain=input in-interface=("pppoe-out". $szwm) action=mark-connection \ new-connection-mark=("adsl" . $szwm ."_conn") passthrough=yescomment=("From_ADSL". $szwm)#标记从哪里来,回哪里去/ ip firewall mangle add chain=outputconnection-mark=("adsl" . $szwm ."_conn") \action=mark-routing new-routing-mark=( "to_adsl". $szwm) passthrough=yes comment=("To_ADSL". $szwm)#PCC设置/ip firewall mangleadd chain=preroutingaction=mark-connection new-connection-mark=("adsl" . $szwm ."_conn") \dst-address-type=!local in-interface=Local per-connection-classifier=$type passthrough=yes comment=("ADSL_PCC". $szwm)#标记路由/ip firewall mangleadd chain=preroutingconnection-mark=("adsl" . $szwm ."_conn") in-interface=Localaction=mark-routing new-routing-mark=( "to_adsl". $szwm) \comment=("Route_To_ADSL". $szwm)#添加路由/ip routeadddst-address=0.0.0.0/0gateway=("pppoe-out". $szwm) routing-mark=( "to_adsl". $szwm) check-gateway=ping comment=("To_ADSL". $szwm)add dst-address=0.0.0.0/0gateway=("pppoe-out". $szwm) distance=$szwmcheck-gateway=ping comment=("ECMP_". $szwm)}配合这个掉线后自动修改脚本很好用以4线为例,其中某条线路断了后,会自动判断剩余可用的线路数量然后修改PCC规则的参数,线路恢复正常后会自动把参数修改回正常状态,注意连接标记名称一定要以纯数字“1、2、3、4...”来命名。

一般该脚本设置30秒间隔就比较合适。

#pcc掉线后自动修改参数脚本{:local status:local i "4":local x "0":local y "0":local z "0":set x [:len [/interface pppoe-client find running=yes]]:if($x<$i) do={:for ii from=1to=$i do={:set status [/interface get[find name=("pppoe-out".$ii)] running]:if($status=true) do={/ip fir man set[find new-connection-mark=$ii]per-connection-classifier=("both-addresses:".$x."/".$y) disable=no;:set y($y+1)} else={/ip fir man set[find new-connection-mark=$ii] disable=yes}}}:if($x=$i) do={:set z [:len [/ip fir man find action="mark-connection"disabled=yeschain=prerouting]]:if($z>0) do={:for ii from=1to=$i do={/ip fi man set[find new-connection-mark=$ii]per-connection-classifier=("both-addresses:".$x."/".$y) disable=no;:set y($y+1)}}}}以上是PPPOE环境下的,下面的这个是固定IP相同网关的环境,2条线/ip addressadd address=192.168.1.1/24comment="shan"disabled=no interface=lan \network=192.168.1.0add address=10.10.10.10/32disabled=no interface=wan1add address=20.20.20.20/32disabled=no interface=wan2/ip firewall mangleadd action=accept chain=prerouting disabled=no dst-address=10.10.10.10\in-interface=wan1add action=accept chain=prerouting disabled=no dst-address=20.20.20.20\in-interface=wan2add action=mark-connection chain=input comment=\"\C2\B7\D3\C9\D4\AD\C2\B7\B7\B5\BB\D8\B2\DF\C2\D4"disabled=no \in-interface=wan1 new-connection-mark=wan1_conn passthrough=yesadd action=mark-routing chain=output connection-mark=wan1_conn disabled=no \new-routing-mark=wan1_rout passthrough=yesadd action=mark-connection chain=input disabled=no in-interface=wan2 \new-connection-mark=wan2_conn passthrough=yesadd action=mark-routing chain=output connection-mark=wan2_conn disabled=no \new-routing-mark=wan2_rout passthrough=yesadd action=mark-connection chain=prerouting comment=wan1 disabled=no \dst-address-type=!local new-connection-mark=wan1_conn passthrough=yes \per-connection-classifier=both-addresses:2/0src-address-list=192.168.1.0/ 24add action=mark-routing chain=prerouting connection-mark=wan1_conn disabled=\ no new-routing-mark=wan1_rout passthrough=yessrc-address-list=192.168.1.0/24add action=mark-connection chain=prerouting comment=wan2 disabled=no \dst-address-type=!local new-connection-mark=wan2_conn passthrough=yes \per-connection-classifier=both-addresses:2/1src-address-list=192.168.1.0/ 24add action=mark-routing chain=prerouting connection-mark=wan2_conn disabled=\ no new-routing-mark=wan2_rout passthrough=yessrc-address-list=192.168.1.0/24add action=change-mss chain=forward comment=\"============\D0\DE\B8\C4MMS=============shan"disabled=yes new-mss=1440\ passthrough=yes protocol=tcp tcp-flags=syn/ip firewall natadd action=src-nat chain=srcnat comment="wan1\BF\DANat"disabled=no \out-interface=wan1 src-address-list=192.168.1.0/24to-addresses=10.10.10.10 add action=src-nat chain=srcnat comment="wan2\BF\DANat"disabled=no \out-interface=wan2 src-address-list=192.168.1.0/24to-addresses=20.20.20.20 add action=masquerade chain=srcnat comment="shan"disabled=nosrc-address-list=192.168.1.0/24\to-addresses=0.0.0.0/ip routeadd disabled=no distance=1dst-address=0.0.0.0/0gateway=1.1.1.1%wan1 \routing-mark=wan1_rout scope=30target-scope=10add disabled=no distance=1dst-address=0.0.0.0/0gateway=1.1.1.1%wan2 \routing-mark=wan2_rout scope=30target-scope=10add disabled=no distance=1dst-address=0.0.0.0/0gateway=1.1.1.1%wan1 \scope=255target-scope=10add disabled=no distance=2dst-address=0.0.0.0/0gateway=1.1.1.1%wan2 \scope=255target-scope=10add comment="shan"disabled=yes distance=1dst-address=0.0.0.0/0\gateway=192.168.1.1scope=30target-scope=10这上5.x的双线同网关固定IP的pcc脚本,lan为局域网口,wan1和wan2为两个外网口。

相关主题