iKuai PPPOE拨号失败的推测及解决方案
前提一、ESXi网络架构1.1 物理网卡适配器(vmnic)1.2 虚拟交换机(vSwitch)1.3 端口组(Port Group)1.4 ESXi网络整体架构图
二、ESXi错误网络架构分析三、解决方案3.1 解决方案1(可选):虚拟交换机只对应一个上行链路3.2 解决方案2(可选):直通一个网口,用来拨号
前提
本人近期家庭网络总是会断连后又自动重新连接,有时甚至重连不上。
经排查后发现是ESXi虚拟化平台的网络设置问题,一般我们使用软路由不太可能直接在裸机上安装iKuai软路由系统,因为太浪费机器资源了,所以一般都会在底层先套个ESXi虚拟化平台,然后再安装iKuai虚拟机。然而,这次的问题可能就出在ESXi系统的设置上。 所以,底层不是虚拟化平台(ESXi...)的用户可以不用继续往下看了。
我们首先来了解一下ESXi中的网络架构
一、ESXi网络架构
1.1 物理网卡适配器(vmnic)
ESXi中,未被直通的物理网卡会被系统分配一个逻辑名称(如vmnic0),它在底层会对应一个PCI设备。虽然ESXi把vmnic翻译成物理网卡,但是很明显不是硬件的网卡,感觉不太贴切,所以我这里就翻译成物理网卡适配器。
1.2 虚拟交换机(vSwitch)
ESXi中,我们可以添加虚拟交换机,在虚拟交换机中可以指定上行物理网卡,从而实现不同虚拟交换机之间的网络隔离或者多个上行网卡之间的负载均衡。
1.3 端口组(Port Group)
ESXi中,通过在不同虚拟交换机(vSwitch) 中设置多个端口组,并在创建的虚拟机中添加该端口组的虚拟网卡,实现把虚拟机和对应端口组所属的虚拟交换机相连。举个形象的例子,用网线(添加虚拟网卡操作)把电脑(虚拟机)连接到交换机(虚拟交换机)的某个网口(端口组)上。 注意:vSwitch0很特别,它默认包含两个端口组:
Management Network:用来管理ESXi,如果没有它,那么我们就无法管理ESXi。VM Network:一个普通的端口组,用于虚拟机上网,和手动新建的端口组等价,比如等价我这里创建的端口组(LAN)。
前文已介绍过,ESXi系统会为每一个未被直通的物理网卡分配一个逻辑名称,如果把Management Network端口组所属的vSwitch0虚拟交换机的上行物理网卡适配器vmnic0对应的PCI设备(也就是对应网口的网卡)直通后,就不能管理ESXi了,所以,在添加新的虚拟交换机,并在该虚拟交换机中新建管理端口组前,不要直通网口0对应的PCI设备,否则无法管理ESXi。新建管理端口组可在VMkernel网卡一栏中操作。
1.4 ESXi网络整体架构图
二、ESXi错误网络架构分析
上文我们已经了解了ESXi的网络架构,那我们来分析一下如果错误设置网络架构会发生什么。
如图所示,这个网络架构中,只有一个虚拟交换机(vSwitch0),上行链路为vmnic0和vmnic1网卡,也就对应着网口0和网口1,这意味着虚拟交换机的行为是负载均衡,ESXi会尝试负载均衡发送数据包到vmnic0和vmnic1,但是只有网口1连接了运营商线路,如果虚拟交换机把拨号流量发送给了vmnic0,即网口0,则无法拨号成功,整体可能导致丢包、延迟或连接不稳定。
三、解决方案
既然知道了原因,那我们就可以修改网络结构,使iKuai的拨号流量只发送给vmnic1,即网口1,运营商线路。
3.1 解决方案1(可选):虚拟交换机只对应一个上行链路
如图所示,我们新建了一个vSwitch1,并把它的上行链路设置成了vmnic1,这样iKuai的拨号流量就只会发送给网口1,运营商线路。整体流程如下:
1.新建一个虚拟交换机(vSwitch1),并指定上行链路为vmnic12.新建一个端口组(WAN),并指定它的虚拟交换机为vSwitch13.在iKuai虚拟机中添加这个虚拟网卡(WAN),并在iKuai系统里指定为拨号网卡
3.2 解决方案2(可选):直通一个网口,用来拨号
如图所示,我们直通了网口1,并在iKuai虚拟机中添加了这个PCI设备,这样,拨号流量就只会从网口1中发送出去。整体流程如下:
1.直通网口1所对应的PCI设备(物理网卡)2.在iKuai虚拟机中添加这个PCI设备(物理网卡),并在iKuai系统里指定为拨号网卡
收集资料不易,如果有用,请给个点赞