VirtualBox搭建OpenWrt軟路由

VirtualBox搭建OpenWrt軟路由

當一個普通路由器刷了定製的OpenWrt後,其功能即可大大的拓展,而且還可以自己配置好看的介面,瞬間升級成強大的智慧路由器,使用各種開源軟體,讓普通路由器擁有幾千元網路裝置才具備的各種功能。

可是普通的路由器受CPU和記憶體的限制,而OP上各種功能擴充套件基本都靠CPU軟處理,所以效能成為了巨大的瓶頸,而且wifi訊號也會由於驅動的問題大打折扣。所以如果使用普通wifi路由器 軟路由這種配置,即兼顧了效能,又照顧了訊號。軟路由有兩種配置,一種是使用PC裸機,直接把OpenWrt安裝到硬碟上或者U盤上。第二種是使用虛擬機器,使用虛擬機器的好處很多,比如成本低,網絡卡容易配置,起停方便等。

下面介紹使用恩山上lean釋出的LEDE 17.01.2為基礎,介紹一下如何使用免費的虛擬化工具virtualbox來配置軟路由。

該韌體已經內建了很多很有用的韌體和路由加速,基本是開箱即用。作者本身釋出了img和iso兩種安裝包。我是在linux下使用dd命令把img安裝包直接刷到新的磁碟上,然後把這塊磁碟插到新的虛擬機器上實現部署的。同樣的方法可以把img通過dd刷到U盤上,然後物理機使用U盤引導使用。

在安裝了lean原版的LEDE到虛擬機器後,我又安裝了dnsforwarder,haproxy和ssrr等工具,因為lean上面的酸酸乳不支援WAN區域的路由。

下載虛擬機器的匯出檔案:https://download.csdn.net/download/lvshaorong/10523901

下載lean的原版IMG:http://www.right.com.cn/FORUM/forum.php?mod=viewthread&tid=252795

首先我們通過virtualbox的虛擬機器匯入工具進行匯入,注意你的宿主機架構最好是X64

然後選擇下載好的ova檔案,勾選重設MAC地址

然後我們要配置一下網絡卡,需要兩塊網絡卡,一塊連線公網路由器,一塊連線虛擬內網。

在路由器上刷入OpenWrt之後,由於路由器一般只有一塊網絡卡,所以內外網的劃分是通過VLAN實現的,使用ifconfig會看到有eth0.0 eth0.1 eth0.2這樣的VLAN,一般2.4G和5G使用不同的VLAN,WAN區域使用單獨的VLAN,所以說wifi路由器其實實際上看一看做一個三層交換機。而在virtualbox中我們可以自由的新增不同的物理網絡卡,所以就不需要費勁劃分vlan了,我們只需設定兩塊網絡卡,第一塊是LAN區域的網絡卡,這一塊網絡卡是供我們登入路由器web後臺配置路由器使用的,需要我們在virtualbox裡單獨設定一個host-only網絡卡,另一塊橋接物理網絡卡,通過DHCP從宿主機的上游路由器獲得IP地址並上網。

下面我們先建立LAN區域的網絡卡,注意這塊網絡卡是一個host-only的虛擬網絡卡,關閉DHCP功能,並設定網段為192.168.1.1/24,並把宿主機的IP設定為192.168.1.200,因為192.168.1.1要留給OpenWrt使用,注意你的宿主機所在的網路不能是192.168.1.*這樣的,如果是的話,請修改你宿主機使用的路由器。方法如下圖

首先點選左上角“管理”-“主機網路管理器”,點選建立

建立時要注意一下幾點

然後我們LAN區域網絡卡就配置好了。

而WAN區域網絡卡,直接橋接我宿主機的無線網絡卡,然後上游的路由器會自動的給我們的虛擬機器一個上網IP。右擊虛擬機器選擇“設定”,在左邊找到“網路”然後新增兩塊網絡卡。按照從左到又的順序,第一塊網絡卡是我們上面建立的host-only虛擬網絡卡,第二塊網絡卡是橋接物理能上網的網絡卡,順序不能亂,不然OpenWrt會用錯網絡卡,如下

然後我們就可以啟動虛擬機器了,啟動之後,通過瀏覽器訪問http://192.168.1.1登入後臺

預設使用者名稱和密碼是root/password

此時你是使用宿主機的192.168.1.200訪問的軟路由的192.168.1.1的LAN地址。下面我們看看WAN區域配置好了麼

我的上游路由器是個小米wifi路由器,使用的網段是192.168.31.*,我的宿主機被分配的地址是192.168.31.84,我們通過命令看看虛擬機器分配到了什麼地址

[email protected]:~# ifconfig
br-lan    Link encap:Ethernet  HWaddr 08:00:27:15:45:3F  
inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0
inet6 addr: fd51:5634:dc22::1/60 Scope:Global
inet6 addr: fe80::a00:27ff:fe15:453f/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:554 errors:0 dropped:0 overruns:0 frame:0
TX packets:536 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000 
RX bytes:53548 (52.2 KiB)  TX bytes:173628 (169.5 KiB)
eth0      Link encap:Ethernet  HWaddr 08:00:27:15:45:3F  
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:554 errors:0 dropped:0 overruns:0 frame:0
TX packets:578 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000 
RX bytes:61304 (59.8 KiB)  TX bytes:187917 (183.5 KiB)
eth1      Link encap:Ethernet  HWaddr 08:00:27:6B:6A:CF  
inet addr:192.168.31.36  Bcast:192.168.31.255  Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fe6b:6acf/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:867 errors:0 dropped:0 overruns:0 frame:0
TX packets:97 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000 
RX bytes:55892 (54.5 KiB)  TX bytes:23489 (22.9 KiB)
lo        Link encap:Local Loopback  
inet addr:127.0.0.1  Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING  MTU:65536  Metric:1
RX packets:231 errors:0 dropped:0 overruns:0 frame:0
TX packets:231 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1 
RX bytes:16737 (16.3 KiB)  TX bytes:16737 (16.3 KiB)

從上面可以看出,eth0是LAN區域的網絡卡,只是通過了一個網橋br-lan0分配的LAN IP,然後eth1是WAN區域的網絡卡。本身你直接安裝Lean的img包後是沒有WAN區域的網絡卡的,因為WAN和LAN共用一塊網絡卡並且使用VLAN來區分,而我後來有手動建立了WAN區域繫結的網絡卡,所以匯入ova包之後能看到eth1,並且該eth1是自動獲取上級路由器分配的IP地址,所以開箱即用,能直接ping通百度。

注:如果使用Lean原版img安裝後需要建立新的WAN區域,並繫結物理網絡卡eth1,如下

另外還可以看出,由於WAN的網絡卡是橋接的宿主機物理網絡卡,所以虛擬機器的WAN地址和宿主機的上網地址是平級的,都是192.168.31.*,所以連線在同一個物理路由器下面的裝置都能夠訪問我們的軟路由,也就是說,通過再架設一個wifi路由器並且以軟路由為閘道器的設想可以實現了。

下面就介紹如何讓我們的手機電腦等裝置通過軟路由來上網。首先我們知道路由器的LAN區域由於是虛擬網絡卡,所以除了宿主機以外的其他裝置比如手機等都無法接入LAN區域,但是手機等可以從上級路由器那裡接入軟路由的WAN區域,所以我們把軟路由的WAN區域的路由功能開啟,然後在上級的內網中架設一個路由器,把閘道器指定為我們的軟路由即可。

正常情況下,OpenWrt不允許開放WAN區域,但是可以通過修改防火牆設定改變,這一點我在虛擬機器模板裡面已經設定好了,如下

於是我們只要把內網其他手機電腦等裝置,甚至安裝一個新的無線路由器,的閘道器地址設定為該軟路由的地址,就可以通過軟路由上網了,網路拓撲圖如下