前言
最近觀察到知名花店業者某些浮動 IP 連外特別塞,所以寫了以下腳本來協助取得連外速度較佳的 IP 位置
相關討論:111夜間聯陸暴PING~石牌二機房過海纜第一站300ms
腳本
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| #Script: # Auto Redial PPPoE-client #Version: # RouterOS v6.37 #Descript: # 自動重播PPPoE-client以取得特定網段IP Address #History: # 2014/01/10 Relk(http://blog.downager.com/) #--------------------------------------------------------------- #在此設定PPPoE Interface及所需要的IP網段 :local PPPoEInt "Hinet-PPPoE-out"; :local Network 1.160.0.0/12;
#取得Interface IP address :local IntIPAddress [/ip address get [find interface=$PPPoEInt] address]; :set IntIPAddress [:pick $IntIPAddress 0 [:find $IntIPAddress "/"]]; :local CheckIP ([:toip $IntIPAddress] in $Network);
#確認目前IP是否在目標網段內 :if ($CheckIP = false) do={ :do { /interface pppoe-client disable $PPPoEInt; /interface pppoe-client enable $PPPoEInt; :log info ($PPPoEInt . ": " . $IntIPAddress); :log info ($PPPoEInt . ": " . "IP不符需求"); :delay 10; #重新寫入新取得的IP :set IntIPAddress [/ip address get [find interface=$PPPoEInt] address]; :set IntIPAddress [:pick $IntIPAddress 0 [:find $IntIPAddress "/"]]; :set CheckIP ([:toip $IntIPAddress] in $Network)} while=($CheckIP = false)} :log info ($PPPoEInt . ": " . $IntIPAddress); :log info ($PPPoEInt . ": " . "IP符合需求");
|
另外,也可以使用此 script 搭配 Multi-Session PPPoE 做策略路由,進一步優化連外速度。
參考資料