Hyper-V 搭建獨臂路由器(單網卡也可以)


2020年原本難得清閑的春節,由於疫情的原因只能在家里看視頻打發時間。打開某奇藝,全是某某公寓的推薦真的是受不了。一群人在那里嘰嘰喳喳,超前點播更是吃像難看,實在是沒意思,所以決定搞一個獨臂路由器玩一玩。

啥是獨臂路由器

單臂路由(router-on-a-stick)是指在路由器的一個接口上通過配置子接口(或“邏輯接口”,並不存在真正物理接口)的方式,實現原來相互隔離的不同VLAN(虛擬局域網)之間的互聯互通。

有啥用

其實上面的定義就說明了這完意有啥用。

我電腦上有幾個虛擬機,橋接形式設置了固定IP(因為有時候可能要在別的電腦上訪問這幾個虛機),自己在家里玩的時候還好。但是只要一換環境,比如我把我的電腦拿去給別人演示,而新環境的網段並不一定和家里的一樣。所以我想讓所有虛機或容器處於固定IP狀態。

實現方式 Hyper-V + LEDE固件

這里說一下,之前在油管上看了一個視頻內容大概是用舊電腦做獨臂路由器,當然他這樣做的目的是因為他想讓這台電腦代理家里的所有設備訪問大千世界,和我的目的不太一樣。

用舊電腦和工控機可以實現的東西,用虛機應該也可以實現,查了查果然可以。

Hyper-V 的選擇原因

Hyper-V了解的不多,只知道的是Windows自帶的虛擬機,其增強會話功能只支持Windows。我選擇它的主要原因就是他在內存方面使用很無感,不像VMware那樣每次關機都要等很長時間用來讓它釋放內存。

實現原理

路由器

先說一下路由器的實現方式,后面的網線插口有兩種,一種WAN口一般只有一個,一種是LAN口有若干個。WAN口處用來連接貓或者交換機,LAN口用來連接電腦或服務器。

WIFI就不說了,和這里沒關系。。。。

LEDE

Linux嵌入式開發環境項目(Linux Embedded Development Environment,LEDE),是路由器固件項目OpenWRT的一個復刻分支項目,並繼承原來OpenWRT的開發目標。2018年1月 LEDE 和 OpenWRT 正式宣布合並,合並后的項目使用 OpenWrt的名字。

上面是百度百科對LEDE的說明,用人話說就是用這個完意可以自己重新刷路由器的固件(直接把固件刷進路由器中,我還沒有試過,感覺應該有些受限條件,比如,路由器支不支持等等)。當然這個完意其實就是一個Linux系統,可以重裝系統到電腦里,也可以放在虛擬機里。


所以實現方式就是,在自己的電腦里裝一個LEDE虛擬機並分配一塊網卡給它單獨使用來充當軟路由。然后通過Hyper-V虛擬交換機的配置來實現WAN口連接外部網絡環境,LAN口開放給本地電腦和所有虛擬機。

這樣配置好后,這台電腦的上網方式就不在是直接連接外部網絡,而是外部網絡接入LEDE虛擬機,然后本地電腦和其它虛擬機都通過LEDE虛擬機訪問外部網絡。

LEDE虛擬機安裝

  1. WIN10啟用Hyper-V功能(應該只Windows10專業版企業版才會有),確認WIN10版本后,在啟用或關閉Windows功能中勾選Hyper-V就好了,應該會重啟。

  2. 在koolshare論壇下載鏡像

    以下是鏡像列表

    文件 大小 更新時間
    信步等特殊機型專用 - 2019-10-05 14:43:59
    虛擬機轉盤或PE下寫盤專用 - 2019-09-30 14:56:59
    .img或.gz可以直接在LEDE系統Web升級,如需要轉盤或PE寫盤請下載轉盤文件夾下的鏡像 0.00B 2019-09-30 13:19:40
    openwrt-koolshare-mod-v2.31-r10822-50aa0525d1-x86-64-combined-squashfs.img.gz 40.18MB 2019-09-30 13:19:41
    openwrt-koolshare-mod-v2.31-r10822-50aa0525d1-x86-64-uefi-gpt-squashfs.img.gz 41.13MB 2019-09-30 13:19:41
    openwrt-koolshare-mod-v2.33-r12074-007caa48d1-x86-64-combined-squashfs.img.gz 56.94MB 2019-09-30 13:19:42
    openwrt-koolshare-mod-v2.33-r12074-007caa48d1-x86-64-uefi-gpt-squashfs.img.gz 57.43MB 2019-09-30 13:19:43
    uefi.md 147.00B 2019-09-30 13:19:43
    version.md 147.00B 2019-09-30 13:19:43

    鏡像文件有很多個,區別看文件名就好了。我選擇的是虛擬機轉盤或PE下寫盤專用下的x86-64-uefi-gpt-squashfs.vmdk版本。

    下載鏈接:LEDE_X64

  3. 上面之所以選擇下虛擬機或PE下寫盤專用的文件,是因為我擔心鏡像里有針對虛擬機的支持。但是這個鏡像的擴展名是.vmdk的,這個完意是VMware虛擬硬盤的擴展名。如果用VMware自然沒有這個問題了。所以這個時候需要下載一個軟件StarWind V2V Converter,這個工具的作用就是將VMware的虛擬硬盤轉換為Hyper-V的虛擬硬盤。

    下載鏈接:StarWind V2V Converter

    轉換步驟

    • Local file
    • 選擇從koolshare下載的文件
    • Local file
    • VHD/VHDX
    • 這一步比較關鍵VHDX growable imageVHDX pre-allocated image這兩個選項都是可以的,區別在於虛擬硬盤的空間是否可以增長。但是另外兩個選項就不可以選了,我在安裝過程中發現似乎只可以使用VHDX的虛擬硬盤。
  4. 新建虛擬機
    這一步比較簡單,正常新建並使用已有虛擬硬盤的創建方式就可以了。

    注意

    • 如果下載的是uefi版鏡像或虛擬硬盤,自然選擇第二代啟動方式。
    • 第二代啟動方式情況下,先不急於啟動虛擬機,在虛擬機設置 > 安全 > 啟用安全啟動的選項勾掉。
  5. 啟動虛擬機,加載完之后在頁面上回車一下,如果出現OPENWRT的Logo說明安裝成功了。

配置虛擬交換機

  • 內部

新建一個內部交換機,作為LEDE虛擬機的LAN口,然后所有虛擬機和本地電腦都連接這塊虛擬網卡。

  • 外部

新建一個外部交換機,在下拉選中選擇一塊網卡,這塊網卡就是電腦連接外部網絡的實際網卡,勾掉允許管理操作系統共享此網絡適配器,意為只有連接這個虛擬網卡的虛擬機才會有使用這塊實際網卡的權限,並作為LEDE虛擬機的WAN口連接外部網絡。

  • 虛擬網卡連接步驟

    • LEDE虛擬機依次添加上面新建的內部網卡和外部網卡(好像只有這個順序有用)。

    • 添加好后在虛擬機上的硬件名稱叫網絡適配器,在這兩個適配器的高級功能里勾選上啟用MAC地址欺騙

    • 重啟LEDE虛擬機,然后在本地電腦的網絡適配器中找到上面新建的內部網絡手動分配IP地址。我分配的信息如下:

      IP地址 192.168.1.10
      子網掩碼 255.255.255.0
      默認網關 192.168.1.1
      首選DNS服務器 192.168.1.1
    • 如果不出問題的話,現在WIN10的網絡和Internet狀態中應該可以看到連接了上面創建的內部網卡。

  • 配置軟路由

通過訪問192.168.1.1可以訪問軟路由,密碼為koolshare,進入之后將WAN口的橋接選項勾掉。


到這里所有配置就都完成了。所有虛擬機都可以配置內部網卡然后經由LEDE虛擬機訪問外網,這樣所有虛擬機同屬於同一網段,不再因外部環境變化而受到影響。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM