Hyper-V安装lede软路由历程及注意事项

一、缘由:我的计算机有2个网口,且处理器支持硬件虚拟。于是就想折腾哈能不能把它放在客厅,1是作为htpc,2是充当软路由,接ap、接盒子等等。由于主机自带Win10系统,所以软路由的功能就只能依靠Hyper-V的方式实现了。之前也爬了好多教程文章,自以为没什么问题,可这个Hyper-V的网络设置方式和Esxi、VmWare等差异还比较大,经过无数次的尝试终于成功了。于是为了让像我一样的小白少走弯路,产生了写这篇流水账教程的想法,大神勿喷……

二、目前已实现的功能:路由器通过光猫连接外网,主机接入路由器实现Dhcp方式上网并下接AP实现其它设备上网。(其实最终的目标是主机直接连接光猫,用主机虚拟的软路由通过WAN扣拨号上网,然后LAN口下接ap实现无线、有线上网——设置方式基本一样,除了在软路由中将WAN口的协议由DHCP改为PPPoE拨号上网并设置相关参数即可)


三、主要步骤:
1.在win10中打开Hyper-V功能
2.在Hyper-V中安装虚拟机→软路由LEDE
3.在Hyper-V中设置虚拟交换机
4.在Hyper-V管理器中对虚拟机→软路由LEDE进行网络适配器等设置
5.进入软路由LEDE的配置界面进行网络设置以实现上网功能
6.其它进阶折腾


四、详细设置过程:
1. 在win10中打开hyper-v功能:设置→应用和功能→程序和功能→启用和关闭windows功能,勾选Hyper-V,确定,按提示完成操作。

2. 在Hyper-V中安装虚拟机(软路由LEDE)
2.1. 下载lede软路由固件(可以选择koolshare的专为虚拟机准备的固件《目前最新为V2.22版》,或者其它开源代码编译的固件),并解压成img格式备用。

2.2. 用转盘软件(我用的是starwind v2v image converter)将lede固件转换为vhdx格式,注意根据软件提示选择转换源文件(即你刚下载并解压的.img固件文件),选择转换格式(如图所示),最后选择转换后文件存储地址即可。

2.3. 在计算机上某分区上建立hyper-v目录,同时建立lede下级子目录,将转换得到的vhdx文件拷贝于此

2.4. 打开Hyper-V管理器并新建虚拟机:根据提示step by step定义一个便于自己理解并记忆和好区分的虚拟机名称,将虚拟机存储的位置通过浏览设置在刚才拷贝vhdx文件的目录里(不同的lede固件可以放在这一个目录里,创建时会根据你填写的虚拟机名称自动新建一个对应的子目录);选择第一代虚拟机;内存根据你的情况设置(取消动态);连接暂不管;使用现有虚拟硬盘并选择刚才拷贝的文件,完成。

3. 在Hyper-V中添加虚拟交换机:在Hyper-V管理器中右侧找到【虚拟交换机管理器】并打开,添加一个外部虚拟交换机【vswitchWan】(准备用作连接外网的WAN,名称根据个人爱好定义,只要你自己能够区分即可)→对应连接路由器的网卡(比如我是连接Realtek PCIe GBE Family Controller),一个外部虚拟交换机【vswitchLan】(准备用作连接AP或其它上网设备的LAN,名称根据个人爱好定义,只要你自己能够区分即可)→对应连接路由器的网卡(比如我是连接Realtek PCIe GBE Family Controller #2),一个内部虚拟交换机【win10–lede】→无需绑定任何网卡,用于宿主机与虚拟机通讯。

注意:我取消了外部虚拟交换机的【允许管理操作系统共享此网络适配器】功能,这样设置之后宿主机(即安装了Hyper-V功能的win10系统主机)无法再直接通过这个被Hyper-V绑定的网卡上网,需要软路由完全设置完毕后通过内部虚拟网络交换机win10–lede连接上软路由上网。因此为了保险起见(估计你还需要下载本教程中需要的一些软件、固件,或者上网查询一些设置过程出现的不可预见的错误的解决方案等等),你可以在此阶段暂时勾选该功能,待软路由完全设置正确可以上网后再取消勾选该功能。

        附注:如果勾选了外部虚拟交换机的【允许管理操作系统共享此网络适配器】功能后,添加【vswitchWan】外部虚拟机后,网络连接中会立即增加一个vEthernet(vswitchWan)的网络连接,网卡原来对应的那个网络连接也在(处于已启用状态)。通过ipconfig可以发现,vEthernet(vswitchWan)对应的虚拟网卡接替了原网卡的ip,而原网卡已经没有分配ip。
如果还有更多的网卡还可以添加多个外部虚拟交换机(每个对应一张网卡,用于多拨或路由器lan口使用)。还可以建立专用虚拟交换机,用于虚拟机之间的通讯。

4. Hyper-V管理器中对虚拟机→软路由LEDE进行网络适配器等设置:在Hyper-V管理器右侧找到虚拟机名称下面的【设置】按钮,在弹出的设置对话框中,将BIOS从ide启动上移到第一位;网络适配器首先添加内网,然后添加lan,最后添加外网wan(切记顺序不能错)。注意需在每个网络适配器→高级功能中启用mac地址欺骗

5. 进入软路由LEDE的配置界面进行网络设置以实现上网功能
5.1. 启动lede:在Hyper-V管理器中启动lede,在虚拟机shell窗口(可以通过管理器中虚拟机下面的连接菜单或双击管理器下面的命令符模样的黑底小窗打开)ifconfig可以查看连接到虚拟机各个网口的ip(比如我的br-lan为192.168.12.1→此为lede的管理ip[这是我在lede中修改后的ip,没有修改前koolshare为192.168.1.1,eth1为10.0.0.216→此为lede的wan口获得的上级路由分配的ip)

讨论:hyper-v安装lede后,计算机上网络连接发生了些变化:在原有【以太网】网络连接的基础上,增加了vEthernet(默认交换机)、vEthernet(win10–lede)等2张虚拟网卡,如果勾选了虚拟LAN和虚拟WAN的【允许管理操作系统共享此网络适配器】还会出现vEthernet(vswitchLan)、vEthernet(vswitchWan)等2张虚拟网卡,其中的vEthernet(默认交换机)为hyper-v中默认添加的虚拟网络交换机——无法修改也无法删除;同时,如果勾选了虚拟WAN的【允许管理操作系统共享此网络适配器】功能,ip分配(从计算机运行ipconfig可以看出)时,原来的【以太网】并没有ip分配而是分配给了vEthernet(vswitchWan)

5.2. 进入lede设置页面配置通过192.168.1.1(如果软路由外接的路由器或光猫也是这个网段ip,建议先拔掉连接WAN口的网线)进入软路由的配置页面(如果无法访问,可以在win的cmd窗口通过ipconfig命令查看win10–lede网络连接是否自动获取了与软路由同网段的ip192.168.1.x,若没有,则在win系统→控制面板\网络和 Internet\网络连接中设置win10-lede的ip为ip192.168.1.x)。

首先,进入【网络】→【接口】→【br-lan】→【编辑】,将ipv4地址改为与你的上级路由或光猫不同的网段(比如我就改成了192.168.12.1);并且在【物理设置】当中的【接口】只选择eth0(可以参考上图,通过判断br-lan与ethX的网卡地址相同来对应选择)

然后,进入【网络】→【接口】→【WAN】(以及WAN6)→【编辑】,在【物理设置】中的【接口】只选择eth2(到底选择哪一个,跟你在软路由虚拟机中添加的网络适配器的顺序有关,从前面的介绍可知我添加的顺序是内部win10-lede、外部vswitchLan、外部vswitchWan,因此WAN为第3个网卡及eth2,如果要多拨,添加了更多的虚拟WAN,则对应配置其接口即可,LAN口依然!——我就是在这个阶段栽了跟斗,当时想当然的以为WAN口对应eth1,结果可想而知——无论如何设置都是无法获取ip无法上网的)

到此,所有的设置都已完成,如果此前在虚拟交换机管理器中勾选了虚拟WAN的【允许管理操作系统共享此网络适配器】功能,此时可以取消勾选了。Win小主机的上网路由为:通过win10-lede连接lede软路由,获取软路由WAN口从上级路由(或光猫)的网络连接,从而实现上网。

6. 关于进阶应用通过管理ip进入lede设置页面,【酷软】(第一次会提示安装或者更新),安装【固件更新】插件,你就可以随时更新到最新版了(我已成功升级为最新的V2.26版。当然你也可以从论坛下载最新版,然后在系统→升级页面来更新,不过没有插件方便哦)。……其它更多玩法请自行尝试……