ADVERTISEMENT
不小心把家中的路由器操爆了嗎?還是路由器整天當機當不停,換了目前消費市場上最高階的型號都沒用?那麼筆者只能說佩服,畢竟現今的家用型路由器已經相當穩定,想要操到掛掉還真不是件簡單的事。事實上筆者也是喜歡虐待網路設備的人,但是自己的標準更嚴苛,要求網路設備必須要24小時穩定運作,甚至當家中網路對外頻寬快吃滿時,還必須保持網路順暢。筆者之前待的公司單位並不大,對於IT資訊設備的預算也不充足,在我就任之前採用1台非常老舊的802.11g無線路由器作為對外撥號的統一窗口,對內也負責DHCP伺服器的功能,路由器之後連接1台32埠的網路交換器分給各位職員上網用。 在802.11g無線路由器的年代,家用型網路設備的「笑能」僅能讓你上網而已,連效能都談不上,完全無法承受多位員工同時上網(連10台都不到),當機就像喝水一樣正常。而後公司申請了光世代網路,小小的無線路由器連單台電腦的網路流量都撐不住,此時正好公司有批老舊電腦要淘汰,就讓筆者陷入評估軟體路由的工作中。
誰適合軟路由
正式進入主題之前,讓我們探討誰需要這種自行安裝的軟體路由器,除了沒錢又需要大量網路封包處理能力的小型公司之外,就是一樣也沒錢的教育單位,軟體路由其實在中小學相當歡迎,因為拿前次汰換下來的舊電腦即可,舊電腦雖然已無法負荷日常操作,但做為路由器可是媲美數萬至數十萬元的專業路由器,效能嚇嚇叫。
另外一類使用者則是需要比消費市場上的路由器效能更高、功能更多,就算加入一堆頻寬管理或是防火牆規則也不會讓網路速度變慢的使用者。在過去家中可能只有1台電腦的時代,頻寬管理並不是太重要,如今家中連網設備一狗票,電腦、手機、平板、電視、機上盒、NAS……一堆等著頻寬資源的機器,總要分配一下頻寬資源,總不能按照都市傳說,看誰的網路晶片好,誰就搶得到比較多的頻寬。
為何軟路由可行?
一般我們在市面上能夠買到的路由器,基本上都是嵌入式系統,專門用來處理網路封包。如果深究其硬體結構其實與一般電腦極為類似,一樣都有處理器、記憶體、儲存裝置等主要零件,只不過硬體上都已經為了處理網路封包而特化了,再加上不同廠商為其設計專用的軟體,變身1台只為網路服務的機器。
而一般使用的電腦針對許多功能所設計,僅擔任網路路由器在電源效率上並不好,例如CPU內部的浮點處理器和顯示卡就對網路處理沒有幫助,但一般電腦的處理效能卻是嵌入式系統所不及的。事實上,許多高階的商用路由器也是使用一般的x86電腦零件組合出來的。
又大、又熱、又耗電
軟體路由並不像市售的無線路由器,買來插上插頭和網路線,撥接帳號輸入完畢後即可使用;撇開安裝步驟和設定不說,光是有台x86電腦整天不斷24小時開機,所產生的熱量和電費就相當驚人,至少是一般產品的數倍以上。如果舊電腦又是傳說中的「噴火龍」,那麼用它來架設軟路由的成本計算下來就非常不划算。
如果換種想法,不採取廢物利用,而是購買近期廠商推出的特殊小型化電腦零件,譬如處理器、主機板、記憶體焊死在一起的產品,做為軟體路由的硬體核心,則有可能將耗電量和廢熱降至相當接近一般市售的無線路由器,但所占體積還是會比較大。因此雖然軟體路由器在效能上絕大多數皆能輕鬆超越一般市售的路由器,但所需付出的長期成本也要納入計算之中。
BrazilFW操作平易近人
確定自己真的需要1台軟體路由器之後,便進入選擇哪套軟體安裝的階段,網路上可以找到許多關於m0n0wall、pfSense、BrazilFW、DD-WRT、IPCOP……等相關軟體,都可以做為軟體路由器的運作核心。在筆者的選擇中,m0n0wall、pfSence、IPCOP比較偏向防火牆的應用,雖然也可做為路由器,但並不是他們出名的原因;接下來選擇就剩下了BrazilFW和DD-WRT,一開始筆者會比較偏好DD-WRT,畢竟DD-WRT的操作方式比較熟,許多人應該都有把DD-WRT韌體刷入一般市售路由器的經驗。
可惜DD-WRT的x86版免費版的限制非常致命,將連線數量(sessions)限制在1024條,也無法透過命令列自行修改,這等於砍了軟體路由器的效能大大的一刀。於是最終筆者選擇BrazilFW做為軟體路由器的核心,除完全免費外,內部也有中文化Web管理介面(目前3.x版本尚未中文化),設定邏輯和一般市面上販售的路由器非常接近,不需要有企業型路由器的管理經驗,對於使用者的門檻比較低,若需要其他功能也可藉由安裝套件擴充,功能上能夠做到如家庭路由器般的簡單,或接近企業型的複雜功能。
軟體版本青黃不接
BrazilFW在官方網站上有2種版本,其一為已經許久沒有更新的2.x版本,使用Linux Kernel 2.4.x,另一種則是尚未推出stable穩定版的3.x,使用Linux Kernel 3.x。BrazilFW 3.x版因為使用了比較新的核心,最大的特點就是能夠支援目前較新的硬體(BrazilFW 2.x用在這幾年的硬體上已有相容性問題),多執行緒和64位元處理都能夠獲得更好的支援,一些在BrazilFW 2.x中需要另外安裝的套件也已經整合進BrzailFW之中,比起過去需要在文字命令畫面打入get-pkg指令安裝套件簡單得多。
但目前的問題是BrazilFW沒有穩定版本,用起來難免「心驚驚」,可是依筆者實際使用下來,目前的3.0.259版已經可正常使用,僅有Firewall>Layer 7目前無法運作,不若前幾年剛推出時動不動就當機,加上能夠連上伺服器自動更新,可說是相當方便。
▲BrazilFW的前身為Coyote Linux下面的Floppy Firewall,所以標誌以狼為主體(coyote即為郊狼、北美小狼之意)。
硬體要求非常低
因應BrazilFW 3.x新增的功能,在硬體需求方面則是略為增加,處理器要求Pentium MMX 233以上、記憶體容量要求200MB以上、硬碟空間要求680MB以上;建議配備則是1GHz以上的處理器、記憶體1GB以上、10GB以上的硬碟儲存空間,相信這些要求都難不倒大家,筆者8年前的老舊電腦都遠遠超越這個需求。由於安裝BrazilFW的電腦需要24x7不停運作,筆者建議直接使用小容量的固態硬碟,或是記憶卡轉接為IDE或是SATA作為安放BrazilFW的儲存裝置;如果使用者需要一些會寫入硬碟的功能,則還是建議以傳統機械式硬碟安裝。
最重要的網路卡支援程度,官方目前沒有釋出相容清單,但市面上主流Realtek、Marvell、Intel皆可正常支援。且因為我們要將BrazilFW做為路由器使用,需要至少2張網路卡。其他像是螢幕或是鍵盤之類的東西,只在第一次安裝時才需要,所以就從家中其他的電腦拔下來借用一下吧。其餘的電腦零件基本上以夠用、穩定為主,機殼注意散熱,電源供應器不要用太奇怪的產品,顯示部分使用內顯或是低階顯示卡即可。
RAM多寡影響session數量
所謂session,就是NAT轉換中紀錄外網和內網對應的資訊,有了這張紀錄表格才能夠實現同個IP讓多台電腦上網。但記錄這張表格需要耗費RAM空間(為何不存硬碟?因為硬碟查找的速度不夠快),所以RAM的空間大小決定了session能夠建立的數量,越多的session數量代表可以承受更多的使用者,對於P2P應用也有一定程度的幫助。
BrazilFW 3.x開始,1MB大概可以容納1652條session,扣除系統運作所需,剩下的RAM容量乘上1652就是這台機器所能承受的最大session數量。
CPU要多強?
筆者以Celeron 874 1.1GHz和BrazilFW 3.0.259 x86-64版進行實驗,利用iperf軟體將網路頻寬塞滿的情況下(含NAT轉換、GbE),CPU使用率約在15%~22%左右,此時進入BrazilFW網頁管理介面操作相當順暢,讀者可以此標準衡量自行安裝的CPU是否效能足夠。
▲筆者建議的家中網路配置圖如上,在運作BrazilFW的電腦之後加裝交換器(switch)以便擴充網路埠。
注意 BIOS設定
鍵盤除了第一次安裝時需要使用外,其餘運作時間皆不需要可以拔除,但部分主機板中的BIOS設定偵測不到鍵盤時會暫停開機,請在開機選項中的Halt on中選擇All, but keyboard,或者直接選擇None。
無線網路晶片支援度
目前BrazilFW 3.x支援Atheros晶片的無線網路卡,但筆者並不建議直接安裝在BrazilFW電腦上,因為這台電腦很有可能被擺在不起眼的角落,天線擺設位置無法最佳化,再者就是無線網路規範進步太快,額外購買1台有線轉無線網路的AP比較實際。
下載並安裝
首先開啟網頁瀏覽器,在網址列中打入http://www.brazilfw.com.br,請點下頁面右方的「Download BrazilFW 3.x」,之後會將頁面導至SourceForge。在網頁中,你可以看到字尾為.md5的檔案,這是用來校驗下載的檔案有無問題,可以不用理會;另外還可看到.iso結尾的檔案有2種命名方式,brazilfw-x86_64-x.x.x和brazilfw-i586-pae-x.x.x,前者為處理器支援64位元時所用的檔案,後者為32位元處理器所使用的檔案,請讀者依照電腦的規格下載並燒成光碟。
BrazilFW所提供的iso檔案,基本上就是1張Live CD,直接放入電腦指向光碟機開機即可使用。不過由於光碟無法寫入,因此部分進階功能將無法使用,建議還是準備1個硬碟安裝BrazilFW。
光碟開機完成後,會來到如圖所示的畫面,打入預設的帳號root密碼root後,再打入install,之後就會找尋可供安裝的儲存裝置,確認沒有問題後,就一直按下Enter鍵,直到畫面上出現將安裝光碟片取出的提示,就可取出光碟片重新開機。重開機後確認正常運作(出現以線條拼湊的BrazilFW圖案),按下主機上的電源開關關機,即可移除鍵盤、螢幕、光碟機等不必要的零組件,接下來的操作直接以網路連入主機設定。
▲指定光碟機開機後,檔案讀取完畢便會來到這個畫面,帳號密碼皆為root。
▲登入之後打入install便會看到這個畫面,之後就是一直無腦的按下Enter鍵即可安裝完成。
請注意!留言要自負法律責任,相關案例層出不窮,請慎重發文!