Назад | Перейти на главную страницу

CentOS 6 на Hyper-V - сетевой адаптер не работает (нет функции контрольной суммы)

Я установил CentOS 6.0 на Hyper-V Server 2008 R2 SP1. В виртуальной машине включен только синтетический сетевой адаптер. Установка прошла успешно (без сети), затем я установил Linux Integration Services 3.1 из ISO, все тоже в порядке. Теперь все модули Hyper-V установлены (включая hv_netvsc), но сетевой адаптер не обнаружен.

Запуск dmesg | grep eth возвращает сообщение "Отбрасывание NETIF_F_SG из-за отсутствия функции контрольной суммы." Поиск в Интернете показывает, что контрольная сумма, по-видимому, является важной функцией, без которой CentOS не может использовать сетевой адаптер и которая, по-видимому, не реализована модулем LIS3.1 от Microsoft.

Могу ли я что-нибудь сделать, чтобы использовать синтетический сетевой адаптер в CentOS? Или я сделал что-то не так и должно работать как есть? Возможности синтетического адаптера зависят от аппаратной карты Ethernet, используемой в хост-машине? Версия ядра CentOS - 2.6.32-71.el6.x86_64, гипервизор - R2 SP1 со всеми установленными обновлениями.

Второй вопрос, если ответ на первый - «нет, это не сработает»: есть ли большое снижение производительности при использовании эмулированного (устаревшего) сетевого драйвера? Этого следует избегать в производственной среде?

Если у кого-то такая же проблема, вот решение: адаптер необходимо настроить вручную, добавив файлы / etc / sysconfig / network-scripts / ifcfg-eth0 и / etc / sysconfig / network / profiles / default / ifcfg. -eth0 после успешной установки LIS3.

Шаги, которые сработали для меня:

  • создать виртуальную машину с сетевым адаптером и устаревшим сетевым адаптером
  • установить CentOS 6 и Linux Integration Services 3.1
  • создать файлы / etc / sysconfig / network-scripts / ifcfg-eth1 и / etc / sysconfig / network / profiles / default / ifcfg-eth1
  • перезагрузитесь и проверьте, работают ли оба сетевых интерфейса
  • удалите ifcft-eth0 и переименуйте ifcfg-eth1 в ifcfg-eth0 в обоих местах
  • выключите, удалите устаревший адаптер в свойствах машины Hyper-V и включите

Источники, в которых я нашел наиболее полезную информацию:

(решено)

Пожалуйста, назначьте статический MAC-адрес в настройках Hyper-v. MAC должен быть таким же, как в вашей виртуальной машине Linux. Вы можете найти MAC-адрес в /etc/sysconfig/network-scripts/ifcfg-eth0.

Погуглил, почему порт Ethernet находится на eth1, а не на eth0 для Hyper-v 2012?

Удалите существующие правила UDEV для сетевых карт. Если вы добавляете / меняете сетевой адаптер, правила udev обнаруживают новое устройство и назначают ему другое имя интерфейса. Инструкции см. Перенумеровать интерфейс Ethernet в CentOS Linux на eth0 или Заставьте CentOS 6 повторно обнаруживать сетевые устройства

Как бы это случилось? Когда виртуальная машина клонирована. Например. вы берете машину с сетевой картой на eth0, клонируете образ и создаете новую виртуальную машину для образа с другим MAC-адресом. Сетевой адаптер будет eth1, а не eth0.

Другие предположения? Я тестировал это с помощью Hyper-V 2012, CentOS6.3 x64 и Microsoft Linux Integration Services. 3,4