十二月 20
RouterOS要更新版本除了可以手動更新外(請參考更新與升級RouterOS的版本),也可以利用Script來進行更新。
參考mikrotik官方的wiki後,我把Script修改了一下,方便使用。
要使用前,要修改的地方只有1個:local upgradeTo "5.11",
把版本改成你想要更新的版本即可,例如:local upgradeTo "5.13"
執行後,Script會自動去官方網站下載符合該平台的更新檔下來,
下載完會自動重開機進行更新。
請注意:系統更新都有其風險,更新前請自行斟酌
#Script在RouterOS 5.7中測試過
#Date:2011/12/20
#Script Descript:半自動更新RouterOS的系統版本
#reference:http://wiki.mikrotik.com/wiki/Auto_upgrade_script_V3.x
#----------------------------------
#要更新到那一個版本請在這邊設定
:local upgradeTo "5.11";
#----------------------------------
# newest version
:local lMajor;
:local lMinor;
# current version
:local vMajor;
:local vMinor;
:local myVer [/system resource get version];
:for i from=0 to=([:len $myVer] - 1) do={
:if ( [:pick $myVer $i] = ".") do={
:set vMajor [:tonum [:pick $myVer 0 $i]];
:set vMinor [:tonum [:pick $myVer ($i + 1) [:len $myVer]]] ;
}
}
......以下略
完整程式碼可參考(編碼為BIG5)http://www.minitw.com/download/UpgradeROS.txt
九月 01
正常的狀況下,RouterOS會自動管理系統上的IP位置。
像是使用VPN撥接上ROS後,ROS系統會自動給予1個IP位置,斷線後該IP位置會自動刪除。
但有的時候,撥接上來的VPN發生異常斷線後,該IP並沒有自動刪除。
這時就會導致該帳號永遠無法再撥接上來(帳號使用固定VPN IP)
為了解決這狀況,所以需要一個小Script搭配Scheduler來自動刪除ROS上這些無效的IP位置
Script內容如下
#Script TestOS:RouterOS 5.6
#Date:2011/09/01
#Script Description:刪除無效的IP位置
# 把無效的IP位置資料全部讀出來
:foreach i in=[/ip address find invalid=yes] do={
#刪除無效的IP
/ip address remove $i
}
.
.
懶人包如下,於winbox中開啟Terminal,貼上下面的指令
系統會完成新增上面的Script並每5分鐘於Scheduler中自動執行1次
/system script
add name=DeleteInvalidIP policy=\
ftp,reboot,read,write,policy,test,winbox,password,sniff,sensitive,api source="#Script T\
estOS:RouterOS 5.6\r\
\n#Date:2011/09/01\r\
\n#Script Description:\A7R\B0\A3\B5L\AE\C4\AA\BAIP\A6\EC\B8m\r\
\n\r\
\n# \A7\E2\B5L\AE\C4\AA\BAIP\A6\EC\B8m\B8\EA\AE\C6\A5\FE\B3\A1\C5\AA\A5X\A8\D3\r\
\n:foreach i in=[/ip address find invalid=yes] do={\r\
\n#\A7R\B0\A3\B5L\AE\C4\AA\BAIP\r\
\n /ip address remove \$i \r\
\n}"
/system scheduler
add disabled=no interval=5m name=AutoDeleteIP on-event=\
"/system script run DeleteInvalidIP" policy=\
ftp,reboot,read,write,policy,test,winbox,password,sniff,sensitive,api start-date=\
aug/19/2011 start-time=02:08:36
七月 31
一直以來好像很少看到升級RouterOS的文章
今天就記錄一下過程吧
首先是先下載RouterOS的升級npk檔
可以到官方網站下載
如果你需要之前的版本,可以到本站的這邊下載
依照自已的RouterOS系統別下載好後,打開winbox

把升級的npk檔拖到winbox的Files中

檔案上傳中.....

確認檔案上傳完成

重開RouterOS

選擇確定重開後,會花一點時間,此時請勿關閉電源。開機完成後,系統即完成升級

五月 09
當你有多個外面線路想要同時間對映到內部的某一台Server時
或許你是為了備援或Load Balance的考量。在RouterOS下你可以很簡單的達成
首先,我們本次範例的網路架構圖如下,目標是把2條PPPoE對映到內部的那台Server

先給大家Script,大家可以再對照下面的圖,不難的
/interface pppoe-client
add ac-name="" add-default-route=no allow=pap,chap,mschap1,mschap2 \
dial-on-demand=no disabled=no interface=LAN max-mru=1480 max-mtu=1480 \
mrru=disabled name=ISP1 password=99999999 profile=default service-name="" \
use-peer-dns=no user=99999999@hinet.net
add ac-name="" add-default-route=no allow=pap,chap,mschap1,mschap2 \
dial-on-demand=no disabled=no interface=LAN max-mru=1480 max-mtu=1480 \
mrru=disabled name=ISP2 password=99999999 profile=default service-name="" \
use-peer-dns=no user=99999999@hinet.net
/ip firewall mangle
add action=mark-connection chain=prerouting disabled=no in-interface=ISP1 \
new-connection-mark=ISP1_conn passthrough=yes
add action=mark-connection chain=prerouting disabled=no in-interface=ISP2 \
new-connection-mark=ISP2_conn passthrough=yes
add action=mark-routing chain=prerouting connection-mark=ISP1_conn disabled=no \
in-interface=LAN new-routing-mark=to_ISP1 passthrough=yes src-address=\
192.168.55.200
add action=mark-routing chain=prerouting connection-mark=ISP2_conn disabled=no \
in-interface=LAN new-routing-mark=to_ISP2 passthrough=yes src-address=\
192.168.55.200
/ip firewall nat
add action=dst-nat chain=dstnat disabled=no dst-port=80 in-interface=ISP1 \
protocol=tcp to-addresses=192.168.55.200 to-ports=80
add action=dst-nat chain=dstnat disabled=no dst-port=80 in-interface=ISP2 \
protocol=tcp to-addresses=192.168.55.200 to-ports=80
add action=masquerade chain=srcnat disabled=no out-interface=ISP1
add action=masquerade chain=srcnat disabled=no out-interface=ISP2
/ip route
add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=ISP2 routing-mark=\
to_ISP2 scope=30 target-scope=10
add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=ISP1 routing-mark=\
to_ISP1 scope=30 target-scope=10
add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=ISP2,ISP1 scope=30 \
target-scope=10



最後我們實驗一下,確認2個外面的IP都連的進來,並且對映到內部的同一個IP位置,收工

參考資料:Manual:PCC
二月 15
之前幫 RouterOS 加上 IP分享器功能(NAT)這篇文章教大家怎麼把RouterOS當成Gateway
讓內部的IP可以透過RouterOS上網
那如果外部的電腦想連到內部電腦的服務(例如:Web、SSH、SQL Server...等)
這時候就需要轉Port的功能(Port Mapping)
實作的方式也很簡單,使用winbox的介面就可以達成了
首先開啟winbox後,IP -> Firewall -> NAT -> 加入一筆新的規則
接下來就看圖操作吧,要注意的是如果你是ADSL撥接上網的,In Interface請選該ADSL的介面

Action的部份則是選dst-nat,IP與Port則是依自已的需求填寫

最後記得把該新建立的規則拉到masquerade的上面
