DD-WRT x86 in ESXi

這次我要講解的是如何在ESXi中安裝DD-WRT x86,
以及在初始設定時的一些注意事項。

在自己摸索出如何從頭裝起DD-WRT x86前,我是用別人做好的vmdk檔,
版本是14896,這個版本對我來說已經夠用…pppoe-relay、VPN 伺服器等都有…
但後來因LOOP問題所以停用,調整vSWITCH後解決
但自網路換成FTTH的雙向100後也有問題..PPPoE不會撥號…
我也另外安裝過OPEN WRT x86…雖然功能很多..但都要另外手安裝上去…不甚方便.

而最近新版的DD-WRT x86比起14896版多了許多額外的已內建功能..
如PPPoE DUAL、Mobile BroadBand、USB設備支援(FLASH、PRINTER、USB OVER IP)
還有NAS(PROFTPD、DLNA、SAMBA、BT Transmission) 以及 Lighttpd WebServer.

在安裝別的小型系統..如OPEN WRT x86…(能裝在USB或CF卡上)
若遇到一些問題時,也許可以用類似我這一篇文章所說明的觀念來安裝…

先大致說明一下DD-WRT X86的狀況…
目前2014/10月所能看到的最新版本為r24461,但這個版本的網路校時有問題,
所以要用r24160,跟r24461的差別也就只有網路校時而已…詳細情況不多說…

我選擇的是x86_64的版本,過去我有用過x86的版本,
相比較下,x86_64的版本似乎CPU的LOADING比較低….
位置在DD-WRT網站的Downloads › betas › 2014 › 05-27-2014-r24160 › x86_64

新安裝的朋友…我建議下載 dd-wrt_public_vga 這個公眾版本就好,
因為full的版本是要付費的,主要差別在於Public的連線數量只有4096…
等確定有要花錢買下去的時候,再下載Webupgrade的版本升級並啟用就好…
購買前要先在網站註冊,歐盟外地區可以不用付稅,費用約21~22 鎂(以歐元定價)..
若有需要用到無線網路的功能還得要另外再付一筆…個人覺得沒有必要…

接下來還要下載一個image/img檔的寫入工具,我用的是 physdiskwrite..
網站上有gui界面的可以下載,若各位有自己慣用的工具也ok..
只要能把image/img檔寫入硬碟就可以了… 以下的過程我是用 physdiskwrite來處理.

1.新建虛擬機 DD-WRT
我是設定為 Other Linux 64Bit /256MB Ram / 2 CPU,限制為1000 MHZ /
無光碟機  / 無軟碟機 /2張E1000網卡(一張LAN區網 一張WAN直連ONU) /
設定好其他資源後如顯示卡記憶體與增加USB控制器後,先不建硬碟,然後完成。

2.建立一個硬碟 DD-WRT.vmdk
編輯DD-WRT虛擬機 的設定,新建一個IDE的硬碟,容量128MB  (精簡佈建 thin)
>>這部份非常重要…
DD-WRT x86不能裝在SATA/SAS模式下,可能是因為ESXi內的預設都是LSI的晶片…
而DD-WRT內沒有內建LSI SAS/SATA 控制器驅動的關係…
thin模式下建立的硬碟其實際大小為已實際寫入檔案的大小,未來也可以擴充…

我有試過 STAR WIND V2V Converter 轉出來的IDE模式的 vmdk…
結果DD-WRT的所有設定都無法儲存…

3.移除硬碟
編輯DD-WRT虛擬機 的設定,從虛擬機中移除掉剛才新建的硬碟,
請注意是 第一個選項. “從虛擬機器中移除”
若選到第二個而把vmdk檔案從磁碟機中移掉的話…就得再從新建一個硬碟了..

4.用另外一組虛擬機掛載硬碟
因為要透過另一套虛擬機使用工具軟體將IMAGE檔寫入DD-WRT.vmdk,
所以要先把DD-WRT.vmdk掛載到虛擬機中,我使用的虛擬機是WinXP
如何掛載既有的硬碟(DD-WRT.vmdk)我就不多做說明了…
掛載完後,啟動虛擬機。

5.將image檔寫入硬碟
進入到WinXP後,將physdiskwrite工具與下載回來的DD-WRT image檔存到D槽或桌面.
執行PhysGUI.EXE這個程式,看到程式的視窗,程式雖然不是英文的,但使用很簡單…

找到你先前掛載進去的DD-WRT.vmdk 應該是沒有磁碟機機代號,0 kb的那一個..
先滑鼠左鍵點選,再點右鍵,出現 Image laden >offnen,找尋你要寫入的來源image檔.
其實image檔是不被大部份這類型的工具軟體直接支援的,
所以在找尋檔案的時候要選擇 All files (所有類型),才能看到DD-WRT 的image檔..
讀入後,程式會問你是否確定要寫入,並且有一個2GB以上空間屏敝的選項..
因為要寫入的這個硬碟只有128MB,所以不需要勾選 (4GB 的FLASH就要勾了)
按下寫入後會出現cmd的視窗,可以看到檔案寫入的進度,完成後關掉程式並關機.

5.將DD-WRT.vmdk換給虛擬機 DD-WRT用
因為剛才我是用winxp這個虛擬機來作業的,所以在這個winxp這個虛擬機關機後,
要記得把剛才那個128MB的硬碟(DD-WRT.vmdk)給移除,
不小心”從磁碟刪除”的..就從第2步再來一次吧..

編輯DD-WRT虛擬機 的設定,新增一個既有的硬碟 > 選擇剛才的DD-WRT.vmdk.
之後再把第一張網卡設定為有連到區網的那一張…然後啟動虛擬機…
預設IP是192.168.1.1,第一個畫面會要求使用者定義新的帳號與密碼

6.DD-WRT x86 開機後的設定
DD-WRT x86 開機之後相關的一些設定我就不多說,網路上有很多教學,
一般狀況下DD-WRT抓到第一張網卡預設是WAN,第二張才是LAN…
但是第一次起啟動的DD-WRT x86 雖然可以抓到兩張網卡,
但預設是關掉WAN連線的,
也就是說DD-WRT此時因為沒有提供WAN連線的服務,所有的網路卡都視為LAN
所以只先設一張網卡當LAN…等連線進去設定過WAN後關機再加入第二張網卡..
若先設定了兩個網卡卻又沒注意到這一點的話…一定連不進DD-WRT x86的設定畫面.

當第一次進後台,先變更WAN的連線方式,不管是PPPoE或其它的..
最好是先做PPPoE以及DDNS的設定..這樣如果之後內網連不到.
還可以從外網用DDNS連進去查原因…(大部份都是LAN網卡的MAC對不上)
接著 儲存重啟/重開路由器  ,開完看到載入畫面之後馬上關掉虛擬機電源..
然後編輯虛擬機的設定:
把adapter 1設定回連WAN的網卡,
新增NETWORK adapter 2 設定為 連區網的那個網卡
然後再啟動虛擬機…自此DD-WRT x86的連線方式應該就回歸正常…

2015/10/21  追加註記
相對較新版(2014~2015)的DD-WRT x86會核對”物理網卡”!!
大致上就是…DD-WRT會比對網卡的MAC位置
如果網路卡的MAC是ESXI本身虛擬的..就會不能用..
例如 00:0C:29 開頭的,以及00:50:56開頭的..

解決方法:
1.PCI PASSTHROGH 網路卡 給DD-WRT

2.先用比較舊版的DD-WRT X86 安裝設定好,再升到最新版。
2014-02-04-r23503實測OK…有支援x64、SMP,Mac位置可用自動。

3.破解ESXi的限制,
將網卡的MAC位置修改為一般實體網卡的Mac位置,如50:E5:49…
修改方法網路如下:

1.虛擬機內新增一張網路卡,然後MAC設定為手動,
先隨便設定數值..

2.移除虛擬機,記住不是從磁碟刪除..

3.ESXi 的 ssh 功能打開, 然後用 Putty 以 ssh 方式連線登入.
帳號就跟原本的一樣…登入後,
切換目錄 cd /vmfs/volumes/Datastore/VMFolder
其中 /Datastore/VMFolder是本機儲存區中虛擬機的路徑

先更改vmname.vmx的權限,chmod +x vmname.vmx
或是用WINSCP 連進去更改為0777…
其中vmname是本機虛擬機器的名稱..

然後用 vi 去打開 vmname.vmx

找到ethernet0開頭的地方

 

123 ethernetX.checkMACAddress = “false”ethernetX.addressType = “static”ethernetX.Address = “AA:BB:CC:DD:EE:FF″

按a後可以編輯…
將checkMACAddress設定為 false, 讓vmware不要去檢查.
若沒有ethernetX.checkMACAddress 這一段的話..請自行加進去..
編輯完後按 Esc 鍵,再按住Shift後 按2次 Z 就會存檔並退出,
若不確定是否有存檔成功,那就再用 vi 去打開 vmname.vmx查看.

4.將 vmname.vmx 更改權限為0000

5.將虛擬機加回 詳細目錄

6.將網卡的MACAdress 更改為實體網卡上的..如50:E5:49開頭.

7.完成

2016/5/23 追加註記
之前以為新版的DD-WRTx86會限制安裝在虛擬機上,
經過這幾天的測試後發現…
問題不在於網卡的mac位置被綁定了..
而是在初次安裝完設定後,
br0與br0:1這兩個是用來做Vlan對應到Lan…
但br0的MAC位置被DD-WRT設定為跟eth0 (Wan)一樣,
也就是DD-WRT把第一張網卡(wan)同時用在eth0與eth1了
所以會沒辦法透過LAN進去DD-WRT內設定,

解決的方法是在-6.第一次開機後的設定 -改為:
先配置兩張虛擬網路卡,皆先設定為實體連到LAN的NIC,
第二張先把 已連接 給關掉→讓DD-WRT抓得到網卡但沒有連線可用
開啟虛擬機電源,看到DD-WRT開始跑得時候關掉虛擬機電源,
就可以知道第二張虛擬網路卡的MAC,
再次開啟虛擬機電源,進到DD-WRT控制台後,
從 基本設定→網路→Bridging
把br0的Root MAC改為第二張網卡(LAN)的MAC位置
(在虛擬機中上基本上只要改最後的那組代號)
就大功告成了..

我已經安裝成功2016/5/23 最新的版本

韌體版本 DD-WRT v3.0-r29739 std (05/19/16)Kernel Version Linux 4.4.10 #418 SMP Thu May 19 08:15:37 CEST 2016 x86_64


在x86主機上安裝DD-WRT有遇到類似問題的..
也許可用這個方法試試看..

PS:看論壇上是有人遇到跟我一樣的問題…如果在更新版本時遇到NVRAM錯誤而無法升級或是會造成開機檔案毀損的狀況..可以考慮將RAM與硬碟空間設定為256MB/256MB..


下圖是我裝好的DD-WRT x86_64,2 CPU,

有付費購買序號,所以連線數可達65535…
dd-wrt_x86_001

發表迴響