Hyper v не видит сетевую карту
Обновлено: 21.11.2024
Если вы устанавливаете Hyper-V и замечаете, что компьютеры не подключаются к Интернету, возможно, вам потребуется выполнить некоторые действия по устранению неполадок.
В некоторых случаях администраторы могут столкнуться с проблемой, когда компьютеры Hyper-V не подключаются к Интернету. Могут быть разные причины, по которым компьютер Hyper-V может не подключаться к Интернету. В таких случаях, когда соединение с Интернетом прерывается, ВМ получает IP-адрес APIPA.
Компьютер под управлением Windows, который получает IP-адрес от DHCP, может автоматически назначить себе IP-адрес, если DHCP-сервер недоступен. Это может произойти, если DHCP-сервер временно отключен на техническое обслуживание.
Управление по присвоению номеров в Интернете (IANA) зарезервировало 169.254.0.0–169.254.255.255 для автоматической частной IP-адресации.
Когда вы используете общее подключение к Интернету между рабочей станцией и виртуальными машинами Hyper-V, обычно мы используем подключение NAT.
NAT предоставляет виртуальной машине доступ к сетевым ресурсам, используя IP-адрес и порт хост-компьютера через внутренний виртуальный коммутатор Hyper-V.
Машины Hyper-V не подключаются к Интернету
Когда вы запускаете ipconfig /all на машине Hyper-v, не подключенной к Интернету, вы видите что-то подобное. Машина получает IP-адрес APIPA.
Прежде всего убедитесь, что ваша рабочая станция подключена к Интернету. После этого откройте диспетчер Hyper-V. В меню справа нажмите Диспетчер виртуальных коммутаторов.
Выберите свой виртуальный коммутатор, в разделе «Тип подключения» выберите «Внешняя сеть» и выберите подключение через Интернет. Не забудьте выбрать Разрешить операционной системе управления использовать этот сетевой адаптер.
На рабочей станции введите ncpa.cpl в команде запуска и нажмите клавишу ввода. В окне «Сетевые подключения» щелкните правой кнопкой мыши сетевой мост и выберите «Свойства».
Выберите расширяемый виртуальный коммутатор Hyper-V. Нажмите "ОК".
Вернитесь к своему компьютеру с Hyper-v, и вы увидите, что подключение к Интернету восстановлено. Теперь вы можете пользоваться Интернетом.
Праджвал Десаи
Праджвал Десаи — Microsoft MVP в области корпоративной мобильности. Имея за плечами более 10 лет опыта написания контента, это одно из его любимых занятий. Его цель — писать исчерпывающие посты и руководства, всегда стремясь помочь людям важной информацией.
Еще одна странная проблема: один из наших хостов Hyper V работает неправильно. Вход в него занимает около 5 минут. Я не могу подключиться к нему по RDP, я не могу передавать на него файлы. Тем не менее, после входа в систему сервер работает быстро. Единственное, что недавно изменилось, это новый двойной медный кабель, заменивший оптоволоконные кабели om3 к коммутатору (два дня назад). Одна сетевая карта отображается как отсутствующая, но на ней горят индикаторы подключения к сети. Наши резервные копии в кластере Hyper V не работают из-за проблем с этим хостом, я приостановил хост, чтобы отключить от него все серверы, но резервные копии VEEAM по-прежнему не запускаются.
Я заменил кабель, поменял местами порты коммутатора, перезагрузил сервер, связался с Dell, чтобы проверить аппаратные проблемы (ничего не обнаружено). Dell попросила меня обновить драйвер/прошивку на сетевой карте, но это также не решило проблему.
При проверке журнала событий он показывает проблемы с подключением к контроллеру домена и всевозможные другие проблемы с подключением. Тем не менее, я могу без проблем пинговать сервер и обратно.
Я пытался отключить одну сетевую карту, потому что они объединены в команду, однако она не отвечает на команду Disable-NetAdapter (ошибок нет, она просто ничего не делает), и проблема не исчезает и после отключения сетевой карты. Если я отключу другой адаптер, он запрашивает подтверждение, но даже этого не делает, когда я пытаюсь отключить тот, который не отвечает.
Сетевая карта — это сетевая карта, предназначенная для виртуальных машин. На сервере были выделенные сетевые карты для управления, виртуальных машин, iSCSI, Live Migration и Heartbeat. Все сетевые адаптеры объединяются, кроме iSCSI, который использует MPIO
с контроллера домена и не удалось. Параметры групповой политики не могут быть применены, пока это событие не будет устранено. Эта проблема может быть временной и может быть вызвана одной или несколькими из следующих причин:
a) Разрешение имен/сетевое подключение к текущему контроллеру домена.
b) Задержка службы репликации файлов (файл, созданный на другом контроллере домена, не был реплицирован на текущий контроллер домена).
c) Клиент распределенной файловой системы (DFS) отключен.","Microsoft-Windows-GroupPolicy","
Одной из проблем, с которой рано или поздно сталкивается большинство администраторов Hyper-V, являются сетевые адаптеры-призраки. Призрачный сетевой адаптер, который иногда называют фантомным сетевым адаптером, – это сетевой адаптер, определенный в гостевой операционной системе, но не связанный с конфигурацией виртуальной машины.
Существует как минимум несколько различных способов появления фантомного сетевого адаптера. Наиболее распространенная причина — физическое преобразование в виртуальное (преобразование P2V). Если вы преобразуете физическую машину в виртуальную машину, то операционная система машины по-прежнему будет содержать ссылку на физические сетевые адаптеры, которые машина использовала. Конечно, эти сетевые адаптеры больше не существуют после виртуализации машины, поэтому адаптеры становятся призраками.
Аналогичная проблема может возникнуть, если вы измените конфигурацию виртуальной машины. Предположим на мгновение, что вы удаляете виртуальный сетевой адаптер, а затем создаете новый. Даже если новый виртуальный сетевой адаптер идентичен старому, гостевая операционная система Windows видит старый и новый виртуальные сетевые адаптеры как два разных адаптера.
В любом случае сетевая карта больше не существует, но она по-прежнему определена в реестре Windows.
Для демонстрации я создал виртуальную машину, содержащую два разных виртуальных сетевых адаптера. Windows (гостевая ОС) идентифицировала эти адаптеры как Ethernet и Ethernet 2. Затем я выключил виртуальную машину, удалил один из виртуальных сетевых адаптеров и создал новый виртуальный сетевой адаптер, идентичный тому, который я удалил. Как вы можете видеть на рисунке ниже, этот новый виртуальный сетевой адаптер идентифицируется гостевой ОС как Ethernet 3. Другими словами, гостевая операционная система обнаруживает базовое изменение виртуального оборудования, даже если удаленные и новые виртуальные сетевые адаптеры идентичны друг другу.
Windows видит старый и новый виртуальные сетевые адаптеры как два разных адаптера, даже если они идентичны.
Так какое же это имеет значение? Представьте на мгновение, что вы решили выполнить преобразование P2V на физическом сервере, который выполняет какую-то важную роль. Давайте также предположим, что этому конкретному серверу был назначен статический IP-адрес, и что он должен продолжать использовать тот же адрес после виртуализации.
При загрузке машины после ее виртуализации вам придется вручную назначить IP-адрес виртуальному сетевому адаптеру. Однако, когда вы это сделаете, вы увидите сообщение о том, что другой адаптер уже использует этот адрес. Некоторые версии Windows более снисходительны, чем другие, когда речь идет о фантомном сетевом адаптере, удерживающем IP-адрес, который вы хотите переназначить. На рисунке ниже Windows на самом деле спрашивает вас, хотите ли вы освободить адрес от фантомного адаптера. Другие версии просто дадут вам возможность проигнорировать проблему и, таким образом, назначить один и тот же адрес как призраку, так и новому виртуальному сетевому адаптеру. Другие версии Windows (особенно старые) не позволяют назначать IP-адрес, который уже привязан к призрачной сетевой карте.
Это пример ошибки, указывающей на то, что IP-адрес уже назначен призрачному сетевому адаптеру.
В связи с этим возникает вопрос, как восстановить IP-адрес у фантомной сетевой карты. Процесс для этого зависит от версии Windows, работающей на виртуальной машине.
Новые версии Windows позволяют легко избавиться от призрачной сетевой карты. Все, что вам нужно сделать, это открыть диспетчер устройств, а затем выбрать параметр «Показать скрытые устройства» в меню «Вид».Это приведет к тому, что сетевая карта-призрак будет раскрыта. В этот момент вы можете щелкнуть правой кнопкой мыши призрачную сетевую карту и использовать команду «Удалить устройство», чтобы удалить ее.
Вы можете указать Диспетчеру устройств отображать скрытые устройства.
Что же делать, если вы используете более старую версию Windows, а в диспетчере устройств нет возможности отображать скрытые устройства? Что ж, в таких ситуациях вы можете ввести команду в окно командной строки с повышенными привилегиями, чтобы заставить диспетчер устройств отображать устройства-призраки. Команда:
Вы можете увидеть, как это выглядит ниже. Помните, что вы должны сделать это из командной строки с повышенными привилегиями (командная строка с правами администратора).
Возможно, вам придется использовать эту команду, чтобы сделать призрачную сетевую карту видимой.
Если у вас очень старая версия Windows, например Windows Server 2003 или Windows 2000, то даже этот способ не сработает. В таких случаях вам нужно будет добавить devmgr_show_nonpresent_devices=1 в переменные среды сервера.
В крайнем случае вы также можете попробовать удалить конфигурацию TCP/IP фантомного сетевого адаптера непосредственно из реестра. Я настоятельно рекомендую сделать резервную копию, прежде чем пытаться это сделать, потому что вы можете серьезно повредить операционную систему Windows, если что-то пойдет не так. Я также рекомендую вам избегать соблазна удалить всю сетевую карту с помощью реестра. Вместо этого лучше сосредоточиться на раскрытии IP-адреса.
Для этого откройте редактор реестра и перейдите в раздел HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services. Вы увидите несколько разделов реестра с длинными шестнадцатеричными именами. Каждый из них соответствует сетевому адаптеру. Разверните каждый адаптер, а затем разверните контейнер параметров под ним, чтобы открыть контейнер Tcpip. Отредактируйте ключ реестра EnableDHCP и измените его значение на 1, как показано на рисунке ниже. Это говорит адаптеру использовать DHCP вместо статического IP-адреса, что дает вам возможность повторно использовать адрес на другом адаптере.
Вы можете изменить значение EnableDHCP на 1 и удалить IP-адрес и подсеть.
Вам также потребуется удалить IP-адрес и маску подсети, как показано на рисунке выше. На следующем рисунке показано, как выглядит этот раздел реестра после внесения изменений. Вам потребуется перезагрузить компьютер, чтобы изменения вступили в силу.
Вот как выглядит ключ реестра после редактирования.
Вам нужно будет внести аналогичные изменения в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet001\Services\Tcpip\Parameters\Interfaces\.
Как видите, сложность восстановления IP-адреса у фантомного сетевого адаптера пропорциональна возрасту операционной системы. Со временем все стало проще. К счастью, есть способы освободить IP-адрес, даже если вы используете старую версию Windows.
На прошлой неделе я показал вам, как добавлять/удалять память в Hyper-V 2016, а на этой неделе я расскажу о еще одной очень удобной новой функции, которая также понравится системным администраторам. На самом деле Hyper-V 2016 привнес множество фантастических функций. Контейнеры! Также добавлены некоторые признаки, указывающие на созревание натурального продукта. В этом списке мы находим «горячее добавление/удаление виртуальных сетевых адаптеров». Если это не очевидно, это означает, что теперь вы можете добавлять или удалять виртуальные сетевые адаптеры в/из работающих виртуальных машин.
Требования к горячему добавлению и удалению виртуальных сетевых адаптеров Hyper-V
Чтобы горячее добавление/удаление сетевых адаптеров работало в Hyper-V, необходимо выполнить следующие требования:
- Гипервизор должен быть версии 2016 (Windows 10, Windows Server 2016 или Hyper-V Server 2016)
- Виртуальная машина должна быть второго поколения.
- Чтобы использовать функцию именования устройств, версия виртуальной машины должна быть не ниже 6.2. Версия конфигурации виртуальной машины не имеет значения, если вы не пытаетесь использовать именование устройств. Это означает, что вы можете перенести виртуальную машину версии 5.0 с 2012 R2 на 2016 и оперативно добавить виртуальный сетевой адаптер. Обсуждение именования устройств появится в другой статье.
Гостевой операционной системе может потребоваться дополнительный толчок, чтобы понять, что изменение было внесено.Я не сталкивался с какими-либо проблемами при работе с различными протестированными операционными системами.
Как использовать PowerShell для добавления или удаления виртуального сетевого адаптера из работающего гостя Hyper-V
Я всегда рекомендую PowerShell для работы со вторым или более высоким сетевым адаптером на виртуальной машине. В противном случае все они называются «Сетевой адаптер». Разбираться в этом может быть неприятно.
Добавление виртуального адаптера с помощью PowerShell
Используйте Add-VMNetworkAdapter, чтобы добавить сетевой адаптер к работающему гостю Hyper-V. Это та же самая команда, которую вы использовали бы для гостя в автономном режиме. Я не знаю, почему авторы выбрали глагол «Добавить» вместо «Новый».
Описанное выше будет работать на виртуальной машине с версией конфигурации не ниже 6.2. Если для виртуальной машины установлена более ранняя версия, вы получите довольно запутанное сообщение о DVD-приводах:
В конце концов, он все-таки расскажет вам, что именно ему не нравится. Вы можете избежать этой ошибки, не указав параметр DeviceNaming. Если вы пишете сценарий, вы можете избежать этого параметра, используя разбрызгивание или установив для параметра DeviceName значение Off.
Вы можете использовать любые другие параметры Add-VMNetworkAdapter как обычно.
Удаление виртуального адаптера с помощью PowerShell
Здесь все может стать… интересным. Особенно, если вы не указали уникальное имя для адаптера. Параметр Name работает как поисковый фильтр; он удалит любой адаптер, который идеально соответствует этому имени. Таким образом, если все сетевые адаптеры виртуальной машины используют имя по умолчанию «Сетевой адаптер», а вы укажете сетевой адаптер для параметра «Имя», то все адаптеры этой виртуальной машины будут удалены.
Чтобы решить эту проблему, вам нужно проявить смекалку. Быстрым и грязным вариантом было бы просто удалить все адаптеры, а затем добавить один. По умолчанию этот адаптер получает IP-адрес от доступного DHCP-сервера. Поскольку вы можете указать статический MAC-адрес с помощью параметра StaticMacAddress команды Add-VMNetworkAdapter, вы можете управлять этим поведением с оговорками.
Вы также можете отфильтровать адаптеры по MAC-адресу:
Вы также можете использовать массивы для выборочного удаления элементов:
Вы даже можете использовать цикл, чтобы отключить все адаптеры после первого:
В моем ненаучном тестировании сетевые адаптеры виртуальных машин всегда сохраняются и извлекаются в том порядке, в котором они были добавлены, поэтому приведенный выше сценарий всегда должен удалять все адаптеры, кроме исходного. Основываясь на формате файла, я ожидаю, что это всегда будет верно. Однако не существует документации, прямо подтверждающей это; используйте этот вид хитрости с осторожностью.
Я рекомендую давать имена вашим адаптерам, чтобы избежать проблем в таких случаях.
Как использовать графический интерфейс для добавления или удаления виртуального сетевого адаптера из работающего гостя Hyper-V
Эти инструкции подходят как для диспетчера Hyper-V, так и для диспетчера отказоустойчивого кластера. Используйте диалоговое окно настроек виртуальной машины в любом инструменте.
Добавление виртуального сетевого адаптера в графический интерфейс
Добавьте виртуальный сетевой адаптер к работающей ВМ так же, как вы добавляете его к остановленной ВМ:
- В диалоговом окне «Настройки виртуальной машины» начните со страницы «Добавить оборудование». Запись сетевого адаптера должна быть черной, а не серой. Если он серый, значит виртуальная машина относится к поколению 1 или не находится в допустимом состоянии для добавления адаптера:
- Выделите сетевой адаптер и нажмите "Добавить".
- Вы попадете на экран, где сможете ввести всю обычную информацию для сетевого адаптера. Установите все элементы по желанию.
- Настроив все по своему вкусу, нажмите "ОК", чтобы добавить адаптер и закрыть диалоговое окно, или "Применить", чтобы добавить адаптер и оставить диалоговое окно открытым. ол>р>
Удаление виртуального сетевого адаптера в графическом интерфейсе
Как и при добавлении адаптера, удаление адаптера для работающей виртуальной машины выполняется так же, как и добавление:
Горячее добавление и удаление виртуальных адаптеров Hyper-V для гостей Linux
Я не прилагал особых усилий к тестированию, но эта функция работает для гостей Linux с неоднозначными результатами. Гость Fedora, работающий в моей системе Windows 10, был полностью доволен этим:
OpenSUSE Leap… не так уж и много:
Но затем я добавил еще один виртуальный сетевой адаптер в свою систему OpenSUSE. На этот раз я не забыл подключить его к виртуальному коммутатору перед добавлением. Ему так больше понравилось:
Итак, мораль этой истории: для гостей Linux всегда указывайте виртуальный коммутатор при горячем добавлении виртуальной сетевой карты. Последующее подключение не помогает.
Также обратите внимание, что OpenSUSE Leap никогда не настраивала адаптер для DHCP автоматически, в отличие от Fedora. Как я уже упоминал в начале статьи, вам может потребоваться дополнительная поддержка некоторых сред.
Кроме того, Leap, похоже, расстроился, когда я снял адаптер:
Чтобы уберечь ваши глаза, суть этого сообщения гласит: «невозможно отправить отозванный приемный буфер в netvsp». Не знаю серьезно это или нет. Итак, вторая мораль этой истории: горячее удаление сетевых адаптеров может оставить некоторые системы в несогласованном, неудовлетворительном состоянии.
Мои мысли о функции горячего добавления/удаления сетевых адаптеров в Hyper-V
В предыдущих версиях Hyper-V этой функции не было, и я никогда не упускал ее. Я даже не подозревал, что он есть у других гипервизоров, пока не увидел сообщения от людей, ищущих хоть малейшее оправдание, чтобы выплеснуть ненависть на Microsoft. Конечно, у меня было несколько виртуальных машин со службами, которые выигрывали от нескольких сетевых адаптеров. Тем не менее, я знал об этом требовании, поэтому я просто построил их соответствующим образом с самого начала. Я полагаю, что это побочный эффект грамотного управления. В целом, я считаю эту функцию молотком, отчаянно ищущим гвоздь.
Тем не менее, он упускает из виду единственное возможное применение: он не работает с виртуальными машинами первого поколения. Как вы знаете, виртуальная машина Hyper-V первого поколения может загружаться только по протоколу PXE с устаревшего сетевого адаптера. Старый сетевой адаптер имеет низкую производительность. Я хотел бы иметь возможность удалить этот устаревший адаптер после развертывания, не выключая виртуальную машину. Тем не менее, это очень низко в моем списке желаний. Я предполагаю, что в конечном итоге мы будем использовать исключительно виртуальные машины поколения 2, поэтому проблема решится сама собой.
Во время тестирования я не обнаружил никаких проблем с использованием этой функции с гостевыми системами Windows. Как видно из раздела Linux, там дела обстояли не так хорошо. В любом случае, я бы дважды подумал об использовании этой функции в производственных системах. Сбои в работе сети не всегда ведут себя именно так, как вы могли бы подумать, потому что сети часто ведут себя неожиданно. Многосетевые системы часто приводят фактор «странности» к чему-то близкому к «призракам». Создайте систему с несколькими домами и запустите Wireshark. Я почти обещаю, что в первые пять минут вы увидите то, чего не ожидали.
Я знаю, что вы все равно будете использовать эту функцию, и это нормально; вот почему он там. Я бы дал одну рекомендацию: перед удалением адаптера очистите его настройки TCP/IP и отключите его от виртуального коммутатора. Это дает гостевой операционной системе больше возможностей справиться с удалением адаптера на привычных условиях.
Читайте также: