七月 01

MikroTik RouterBoard RB750 這是一台內含RouterOS Level 4的路由器
RouterOS相信有在玩軟體路由的同好,應該都有聽過它的名字才對
之前在玩網路的時候,也在選擇一套好用的路由軟體
有試過現在很熱門的DD-WRT、pfSense、WinGate、Linux的iptables
試來試去總是感覺上缺少了那一點點,每套都有每套的好處
功能強的,沒有友善的介面使用
有好用介面的,但就是吃多了點資源
穩定的系統,有些功能又沒提供
真是有一好,而沒二好

直到發現RouterOS這個好東西,為什麼說是好東西呢?當然不是隨便說說的
RouterOS是一個基於Linux上開發的系統
而MikroTik公司也針對RouterOS設計了一個設定程式,供設定RouterOS使用
這真是魚與熊掌兼得呀
有Linux其穩定不吃資源的核心,又有完善的程式介面可以使用
你說,這叫尋尋覓覓己久的我,怎麼能不心動呢

於是一頭就栽進了RouterOS的世界
越玩,才越知道RouterOS的強大
但玩RouterOS最大的缺點就是,入門的門檻很高
至少要有一點網路的基礎跟Linux iptables的觀念,玩起來,才不會那麼痛苦
不是網頁點一點、勾一勾,就會有你想要的功能了(如果你堅持用RouterOS提供的WEB設定,你會很失望的)

如果要用個東西來比喻的話
一般的無線分享器、路由器就像房車
只要會踩油門,會轉方向盤,就可以上路了

刷了DD-WRT後,就像改裝後的房車
油缸加大、馬力加大、加入自動導航,狠一點再加個渦輪系統
我想有這台車,應該沒什麼問題了。應付一般的需求很足夠了

RouterOS,就像是一台全配的戰車
要在上面架個機槍,甚至裝個飛彈系統都沒問題
你要開去買菜、開去打戰都沒問題
唯一的問題,就是你得知道怎麼使用這台戰車,這就是門檻

這樣子說,大家應該對RouterOS有點認識了吧
不過在台灣,玩RouterOS的人真的算是少數
可能是入門的門檻高與硬體取得不易,再加上RouterOS的文章很少使得找資料不便
目前可以找到RouterOS資料的,在台灣就屬小弟的電腦茶包Blog自嗨,跟台灣代理商立誠電腦資訊有限公司了
至於大家最關心的價錢問題,就留到文尾再跟大家交待吧

看完了上面的廢話,接下來就開始正文的開箱文了

開箱後第一眼看到的就是廠商附的簡易使用說明書,教你怎麼進行設定RouterOS

IMG_4060

說明書的下面就是裝本文的主角RouterBoard RB750了,有看到那個連線數32786可不是騙人的

IMG_4061

進入系統看,NAT Connection真的可以到32768條

4

盒子旁側的簡易設定說明,這邊我要補充說明一下。電腦插在port1,預設僅能使用IP方式的設定
也就是說你可以在IE上打IP進入,可以用Winbox打IP進入。但你用Winbox的掃描,是掃不到的
要讓Winbox掃描的到,請插Port2~5任一個。解決的設定方式,會在之後寫相關的文章跟大家分享

IMG_4063

盒子側面的硬體相關資訊。RB750的Port 1有支援PoE供電
RAM是32MB。可用的儲存空間是64MB(RouterOS作業系統佔去了32MB,剩32MB可使用)
Port 1預設是GateWay Port
Port2~5預設是Switch Port

IMG_4064
3

盒子的背面,說明RB750的功能。這邊寫的,我想只有RouterOS功能的10分之1
你就知道RouterOS的功能有多麼的多了

IMG_4066

正面的特寫,讓大家看清楚一點

IMG_4067

開盒了,很簡單的就是RB750一台,加上變壓器一個

IMG_4075

變壓器可插100v~240v的電,當然110V,也是沒問題的

IMG_4076

驗明正身RouterBoard 750

IMG_4077
IMG_4078

RB750的背面,很簡單,就網卡的卡號跟機身序號

IMG_4079

這樣就完了嗎?當然還沒,接下來要把RB750脫光光

IMG_4080

有散熱片的那個是CPU

IMG_4081

電源處理的部份,可吃8V~28V的電

IMG_4083

D2516AETA-5B-E 是 32MB的RAM

IMG_4086

左邊的是CPU,右邊的是64MB的Flash

IMG_4087

整個RB750的大小就是一片1.44MB磁片加上1個10元的大小

IMG_4090

平放後的高度也只有1個50元高度

IMG_4091

RB750不偷料,請看下面那台,Port裡面只給你4根必要的針腳。RB750則是完整的8根

IMG_4092

接下來就是大家最關心的價錢了
話不多說,先把售價打出來

台灣代理商立誠:NT$ 2600
中國大陸代理商:人民幣430元(含運) 。大約折合新台幣2107元(以1人民幣換4.9台幣計算)
原廠:USD$39.95  +  USD$50(訂單小於USD$1000加運費USD$50元)。大約折合新台幣2896元(以1美金換32.2台幣計算)

坦白的說,這台RB750 CP值真的很高,別的不說,光是RouterOS Level 4,就要USD$45元了
版本的比較與價格請看http://wiki.mikrotik.com/wiki/Manual:License_levels
等於是硬體送給你,軟體再折扣一次了。如果需要Giga Port的,請自行參考RB750G

看到這邊大家心裡應該有譜了
下面幫大家結論一下
1.少量購買,需要售後服務,就找立誠吧。要送修、技術支援至少找的到廠商
2.少量購買,售後服務自理,那就到對岸買吧,東西壞了,可寄到對岸
3.大量購買,直接找原廠吧,東西壞了就自己RMA回去原廠吧。註:量大也許可以跟國內的代理商談,價格應該會不一樣

這次的開箱文就到這邊了,接下來會接連寫一些RouterOS相關的文章(設定、使用.......等)
就請有興趣的同好期待吧.........此文同步發表於電腦茶包Blog

如果你想玩玩看RouterOS可以到官網下載x86版的ISO檔,然後用VMWare或VirtueBox裝起來玩看看
相信你會有另一種體驗的





四月 11

這篇文章主要是針對RouterOS更新到DynDNS上所寫的
如果你要更新到ChangeIP.com的話,請參考RouterOS 動態更新IP到 ChangeIP.com
建議先到RouterOS 動態更新IP到 ChangeIP.com看一下相關的設定,了解後,再把主要的Script換成本文的Script即可

相關的Script如下

#Script在RouterOS 3.20中測試過
#Date:2010/04/11
#Script Name:DynDNSUpdate
#Script Describe:更新IP到DynDNS上面去

#定義使用者相關的變數,請於下面自行輸入
:local ddnsuser "你的DynDNS帳號"
:local ddnspass "你的DynDNS密碼"
:local ddnshost "你的完整網址名(例如:abcd.ath.cx)"
:local ddnsinterface "要更新的介面名稱(例如:pppoe-out1)"

#定義IP變數
:global ddnsipADSL1
:global ddnslastipADSL1
:if ([ :typeof $ddnslastipADSL1 ] = nil ) do={ $ddnslastipADSL1 "0" }

#取得介面的IP位置
:set ddnsipADSL1 [ /ip address get [/ip address find interface=$ddnsinterface ] address ]
#去掉IP的網段
:set ddnsipADSL1 [:pick $ddnsipADSL1 0 [:find $ddnsipADSL1 "/"]]

#判斷是否需要進行更新
:if ([ :typeof $ddnsipADSL1 ] = nil ) do={
   :log info ("DynDNS: " . $ddnsinterface . "介面上沒有IP,請確認")
} else={
  :if ($ddnsipADSL1 != $ddnslastipADSL1) do={
    :log info ("DynDNS:" . $ddnsinterface . "更新IP" . $ddnsipADSL1)
	:local str "/nic/update?hostname=$ddnshost&myip=$ddnsipADSL1&wildcard=NOCHG&mx=NOCHG&backmx=NOCHG"
    /tool fetch address=members.dyndns.org src-path=$str mode=http user=$ddnsuser password=$ddnspass dst-path=("/DynDNS.".$ddnshost)
	:delay 1
    :local str [/file find name="DynDNS.$ddnshost"];
    /file remove $str
#更新後把IP設為最新的IP
    :global ddnslastipADSL1 $ddnsipADSL1
  }
}

參考資料:
MikroTik RouterOS: DynDNS Update Script
DynDNS Perform Update





一月 20

要取得相關的的IP位置可以到TWNIC的查詢功能-IPv4核發分配情形

先把資料貼到Excel中處理一下,把我們要的東西取出來

再補上一些前置資料,就可以在RouterOS上使用了

請到winbox開啟管理RouterOS,在左邊的功能列上點選New Terminal

接下來直接把下面的資料貼上。然後到IP -> Firewall -> Address List看就有了

因為相關的IP資料過長,請點選本篇文章全文,才會顯示

Continue reading »





一月 17

在RouterOS中,如果你有使用PPTP VPN連線的話,然後撥接的位置又是不固定IP

那麼你就會遇到這個問題

第一次的時候是可以撥接成功的,但後面因為IP變了,接下來你就撥接不上去了

如果用winbox這個工具進去管理RouterOS,你會發現要連到那一台主機那邊,可以打Domain Name

不過很抱歉,你儲存的時候winbox會把你的Domain Name轉成IP

所以說,就算你的Domain Name內的解析有變了,RouterOS還是不知道新的IP

這時候就需要一個固定更新的的Script來解決問題

流程很簡單:
1.找出目前RouterOS使用中的PPTP IP
2.反解相關Domain Name的IP
3.如果不一樣,就更新

相關的Script如下,請享用。相關說明看一下註解,應該不難

有問題的話再詢問吧

#Script在RouterOS 4.4中測試通過
#Date:2010/01/17
#Script Name:自動更新Domain Name的IP到PPTP的位置

#要設定的PPTP撥接名稱
:local pptpName "PPTP_Home"
#要撥接的DoaminName
:local pptpDomainName "xxxx.minitw.com"
#取得目前的撥接IP
:local systemPPTPIP [/interface pptp-client get $pptpName connect-to ]
#經由DNS取得新的PPTP Server IP
:local currentPPTPIP [:resolve $pptpDomainName]

:if ($systemPPTPIP != $currentPPTPIP) do={
    /interface pptp-client set $pptpName connect-to=$currentPPTPIP
    :log info "PPTP_DNS_Update: $currentPPTPIP (CHT:更新PPTP的DomainIP)"
}




七月 17

如果你於RouterOS中使用負載平衡時,你會發現要從RapidShare下載檔案有很大的機會失敗

這是因為當你第1次連到RapidShare上的IP,然後等完看廣告的時間之後要下載檔案的IP不一樣所造成的

舉個例來說,假設第1次連上到RapidShare上的IP是123.1.1.1,但是要下載檔案時

因為負載平衡的關係,使得本次連到RapidShare 的已經變成123.1.1.2

這時就會發生無法下載的情況。

最簡單的解決方式就是,把要連到RapidShare上的連線全部走同1條線路

那麼要怎麼判斷那些連線是要到RapidShare的呢

就是看RouterOS DNS快取裡的Doman與IP的對照表

這個時候就需要使用Script來自動把RapidShare相關的IP濾出來,放到Address List供我們使用

相關的Script如下。新增Script的方式為到Winbox裡 System -> Scripts -> 按介面上的 +

把下面這個Script命名為 Update_RapidShare_IP ,後面會用到

# 把DNS快取裡資料全部讀出來
:foreach i in=[/ip dns cache find] do={
    :local bNew "true";
# 檢查DNS快取裡是否有包含rapidshare的關鍵字
    :if ([:find [/ip dns cache get $i name] "rapidshare"] != 0) do={
        :local tmpAddress [/ip dns cache get $i address] ;

# 轉換rapidshare的IP到"/16"的網段
        :local mjesto ([:find $tmpAddress "."]);
        :set mjesto ([:find $tmpAddress "." $mjesto]);
        :local tmpAddress ([:pick $tmpAddress 0 $mjesto]);
        :set tmpAddress ($tmpAddress . ".0.0/16");

#---- 如果address list是空的就不用查檢了(直接把IP加入)
        :if ( [/ip firewall address-list find ] = "") do={
            /ip firewall address-list add address=$tmpAddress list=RapidShare_IP disabled=no;
        } else={
#------- 檢查每一列的值
            :foreach j in=[/ip firewall address-list find ] do={
#---------- 如果IP已經存在address list就不用新增了
                :if ( [/ip firewall address-list get $j address] = $tmpAddress ) do={
                    :set bNew "false";
                }
            }
#------- 如果IP不存在就新增一筆上去address list
            :if ( $bNew = "true" ) do={
                /ip firewall address-list add address=$tmpAddress list=RapidShare_IP disabled=no
            }
        }
    }
}

接下來則是設定每30秒自動執行1次(相關設定如圖所示),隨時更新

System -> Scheduler -> 按介面上的 +

把這個 Scheduler 命名為 Auto_Update_RapidShare_IP

/system script run Update_RapidShare_IP

最後一個步驟就是判斷只要目的位置是在RapidShare_IP這個Address List裡的話

就強迫走單一路由。怎麼設定就因人而異了,不過大方向是不變的

有了RapidShare的相關IP,要針對RapidShare做限速、擋掉....等,都很方便了

相關參考資料:
Fight against P2P on port 80