Hyper-V上的CentOS 6 – networking适配器不起作用(无校验和function)

我在Hyper-V Server 2008 R2 SP1上安装了CentOS 6.0。 VM仅启用了合成networking适配器。 安装成功(没有任何networking),然后我从ISO安装Linux集成服务3.1,一切都OK。 现在安装了所有的Hyper-V模块(包括hv_netvsc),但没有检测到networking适配器。

运行dmesg | grep eth返回消息“由于没有校验和function而丢弃NETIF_F_SG”。 互联网上的调查显示,校验和似乎是一些非常重要的特性,没有这个特性,CentOS不能使用networking适配器,而这显然没有被微软的LIS3.1模块实现。

有什么我可以做在CentOS中使用合成networking适配器? 或者我做错了什么,它应该像现在这样工作? 合成适配器function是否依赖于主机中使用的硬件以太网卡? CentOS内核版本似乎是2.6.32-71.el6.x86_64,pipe理程序是安装了所有更新的R2 SP1。

第二个问题,如果第一个问题的答案是“不,这不起作用”:在使用模拟(传统)networking驱动程序时是否会有大的性能损失? 在生产环境中应该避免这样的事情吗?

如果有其他人遇到同样的问题,这里是解决scheme:适配器必须通过添加文件/ etc / sysconfig / network-scripts / ifcfg-eth0和/ etc / sysconfig / networking / profiles / default / ifcfg手动configuration-eth0成功安装LIS3后。

为我工作的步骤:

  • 使用networking适配器和旧式networking适配器创build虚拟机
  • 安装CentOS 6和Linux Integration Services 3.1
  • 创build/ etc / sysconfig / network-scripts / ifcfg-eth1和/ etc / sysconfig / networking / profiles / default / ifcfg-eth1文件
  • 重新启动并检查两个networking接口是否都启动
  • 删除ifcft-eth0并在两处将ifcfg-eth1重命名为ifcfg-eth0
  • closures,删除hyper-v机器属性中的旧适配器并打开

我find了最有用的信息来源:

(解决了)

请在您的hyper-v设置中分配静态MAC地址。 MAC应该和你的linux虚拟机一样。 您可以在/etc/sysconfig/network-scripts/ifcfg-eth0中的MAC地址中find。

search“为什么eth1上的以太网端口,而不是用于Hyper-v 2012的eth0”?

删除NIC的现有UDEV规则。 如果添加/更改NIC,则udev规则会检测到新设备并为其分配不同的接口名称。 有关说明,请参阅将CentOS Linux上的以太网接口重新编号为eth0或强制CentOS 6重新检测networking设备

这会如何呢? 当一个虚拟机被克隆时。 例如,您使用的NIC是eth0,克隆映像,并为具有不同MAC地址的映像创build一个新VM。 网卡将是eth1而不是eth0。

其他假设? 我使用Hyper-V 2012,CentOS6.3 x64和Microsoft Linux Integration Services 3.4对此进行了testing