Новые информационные технологии и программное обеспечение
  RSS    

20240801 240x400 45a4aaf3c31f1b6a539653fa8c30b76b



Настройка Hyper-V адаптеров сети

Если вы много работали с Hyper-V  вы знаете, что настройка Hyper-V адаптеров сети занимает много времени. Во-первых, потому большую часть времени у вас есть много  сетевых карт, встроенных в ваш хост для разных Hyper-V и кластеров сети, и, во-вторых, Windows  называет  сетевые карты  случайным образом, поэтому его трудно узнать и понять, какая сетевая карта является правильной. Может быть, ваша первая карта на Hyper-V Host01 называется "Подключение по локальной сети 2" и на втором Hyper-V с принимающей же аппаратной конфигурации сетевая карта называется "Подключение по локальной сети 3". Одна из возможностей, чтобы узнать, какие сетевые карты является правильным, чтобы проверить МАС-адрес сетевого адаптера. Но для этого вам все равно придется узнать, какой MAC-адрес, на котором находится порт сетевого адаптера.

Еще один способ -  это подключить сетевые кабели по одному. Таким образом, вы можете увидеть, какой порт активен, а затем вы можете переименовать сетевой адаптер. Правда это занимает достаточно много времени, чтобы делать это на каждом хосте. 

Теперь есть решение, вы можете отсортировать ваши сетевые карты на PCI шине и PCI слот. 

С помощью некоторых скриптов, созданных  Thomas Maurer, можн упростить процесс работы 

1
netsh interface set interface "Local Area Connection 2" newname="Management"

 Сначала я настроил первый Hyper-V хозяина и переименовал все сетевые адаптеры. Если у вас есть графический сервер можно сделать с помощью графического интерфейса или если у вас есть основной Windows Server или Hyper-V Server вы можете сделать это с помощью Netsh.
get-nicinformation1

 

Это дает мне много информации о сетевых карт на первом хосте. 

Но важной частью является порядок сетевых карт. В моем примере я знаю, что порядок такой:

* Управление
* VMNet
* CSV
* LiveMigration
* iSCSI01
* iSCSI02

Так как мой других хостов иметь такое же оборудование, они будут иметь одинаковый порядок шин PCI.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# ---------------------------------------------------------------------------------------------- #
# Powershell Get-NICInformation $Rev: 748 $
# (c) 2011 Thomas Maurer. All rights reserved.
# created by Thomas Maurer
# www.thomasmaurer.ch
# www.itnetx.ch
# last Update by $Author: tmaurer $ on $Date: 2012-02-24 14:07:36 +0100 (Fr, 24 Feb 2012) $
# ---------------------------------------------------------------------------------------------- #
 
#region [INFO BLOCK]
# INFO
Write-Host "                               " -BackgroundColor Black -ForegroundColor White
Write-Host " PowerShell Get-NICInformation " -BackgroundColor Black -ForegroundColor White
Write-Host "                               " -BackgroundColor Black -ForegroundColor White
Write-Host " by Thomas Maurer              " -BackgroundColor Black -ForegroundColor White
Write-Host " www.thomasmaurer.ch           " -BackgroundColor Black -ForegroundColor White
Write-Host "                               " -BackgroundColor Black -ForegroundColor White
#endregion
 
$adapters = Get-WMIObject Win32_PNPSignedDriver | Where-Object { $_.DeviceClass -eq “NET” -and $_.HardWareID -like “*PCI*” } | Sort-Object location
 
foreach ($adapter in $adapters ) {
 
    $adapterName = Get-WMIObject Win32_NetworkAdapter | Where-Object { $_.PNPDeviceID -eq $adapter.DeviceID }
    $adapterConfiguration = Get-WmiObject Win32_NetworkAdapterConfiguration | Where-Object { $_.index -eq $adapterName.Index }
 
    Write-Host ‘Adapter Name :’ $adapterName.NetConnectionID
    Write-Host ‘PCI BUS :’ $adapter.Location
    Write-Host ‘MAC Address :’ $adapterName.MACAddress
    Write-Host ‘GUID :’ $adapterName.GUID
    Write-Host ‘Adpater Index :’ $adapterName.Index
    Write-Host ‘Hardwarename :’ $adapterName.Name
    Write-Host ‘DHCP enabled :’ $adapterConfiguration.DHCPEnabled
    Write-Host ‘IP Address :’ $adapterConfiguration.IPAddress
    Write-Host ‘Subent :’ $adapterConfiguration.IPSubnet
    Write-Host ‘Default Gateway :’ $adapterConfiguration.DefaultIPGateway
    Write-Host  
 
}

Для следующего шага я использовал мой второй хост

Там у меня был мой другой  Windows PowerShell скрипт (Set-IPAddressfromXML) и XML - файл (networkconfig.xml).

dir

Я отредактировал networkconfig.xml файл с правильной информацией о сети. Важно здесь ID = "" параметры. Они показывают порядок сетевых карт, поэтому с Get-NICInformation я вижу интерфейс управления является первым, поэтому он получает идентификатор = "1", VMNET является вторым он получает ID = "2" и так далее. Также установим правильный адрес IP для второго хоста. 

Вы также можете установить без статических IP-адресов (DHCP), в моем случае я сделал это для VMNET адаптера, который будет использоваться в Hyper-V переключаться между виртуальными и не нуждается в IP-адресе

 

networkconfigxml

1
2
3
4
5
6
7
8
9
10
11
12
13
 
<config>
  <networkadapters>
    <nic id="1" name="Management" static="true" ip="10.0.20.1" subnet="255.255.0.0" gateway="10.0.0.1" />
    <nic id="2" name="LiveMigration" static="true" ip="192.168.21.1" subnet="255.255.255.0" gateway="" />
    <nic id="3" name="CSV" static="true" ip="192.168.22.1" subnet="255.255.255.0" gateway="" />
    <nic id="4" name="TeamedAdpater01" static="false" ip="" subnet="" gateway="" />
    <nic id="5" name="TeamedAdpater02" static="false" ip="" subnet="" gateway="" />
    <nic id="6" name="TeamedAdpater03" static="false" ip="" subnet="" gateway="" />
    <nic id="7" name="ISCSI01" static="true" ip="10.10.21.1" subnet="255.255.255.0" gateway="" />
    <nic id="8" name="ISCSI02" static="true" ip="10.10.22.1" subnet="255.255.255.0" gateway="" />
  networkadapters>
config>

После того как вы сделали это, теперь вы можете просто запустить Set-IPAddressfromXML сценарий. Это позволит использовать информацию из networkconfig.xml файл и переименовать все сетевые адаптеры и установить правильный адрес IP.

 

set-ipaddressfromxml


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# ---------------------------------------------------------------------------------------------- #
# Powershell Set-IPAddressfromXML $Rev: 748 $
# (c) 2011 Thomas Maurer. All rights reserved.
# created by Thomas Maurer
# www.thomasmaurer.ch
# www.itnetx.ch
# last Update by $Author: tmaurer $ on $Date: 2012-02-24 14:07:36 +0100 (Fr, 24 Feb 2012) $
# ---------------------------------------------------------------------------------------------- #
 
#region [INFO BLOCK]
# INFO
Write-Host "                                 " -BackgroundColor Black -ForegroundColor White
Write-Host " PowerShell Set-IPAddressfromXML " -BackgroundColor Black -ForegroundColor White
Write-Host "                                 " -BackgroundColor Black -ForegroundColor White
Write-Host "  done by Thomas Maurer          " -BackgroundColor Black -ForegroundColor White
Write-Host "  www.thomasmaurer.ch            " -BackgroundColor Black -ForegroundColor White
Write-Host "                                 " -BackgroundColor Black -ForegroundColor White
#endregion
 
#region [CONFIG BLOCK]
# Get XML Information
[Xml]$global:xmlData = Get-Content ".\networkconfig.xml"
# Set NIC number starting value
[int]$global:nicNumber = "1"
#endregion
 
#region [MAIN BLOCK]
#Get NIC list
$Adapters = Get-WMIObject Win32_PNPSignedDriver | where { $_.DeviceClass -eq “NET” -and $_.HardWareID -like “*PCI*”} | Sort-Object location
 
foreach ($Adapter in $Adapters ) {
    # Get Adapter Info
    $AdapterName = Get-WMIObject Win32_NetworkAdapter | where { $_.PNPDeviceID -eq $Adapter.DeviceID }
    $nic = $xmlData.config.networkadapters.nic | Where-Object {$_.id -eq $nicNumber}
 
    # Write NIC Info
    Write-Host ‘Adapter Name :’ $AdapterName.NetConnectionID
    Write-Host ‘PCI BUS :’ $Adapter.Location
    Write-Host ‘MAC Address :’ $AdapterName.MACAddress
    Write-Host ‘GUID :’ $AdapterName.GUID
    Write-Host ‘New Name :’$nic.name
    Write-Host
 
    # Change NIC Name
    Invoke-Expression ('netsh interface set interface `"' + $AdapterName.NetConnectionID + '`" newname=`"' + $nic.name + '`" | out-null')
    Write-Host ('netsh interface set interface "' + $AdapterName.NetConnectionID + '" newname="' + $nic.name + '"') -BackgroundColor Green -ForegroundColor Black
 
    # if true set IP Address
    if ($nic.static -eq "true"){
        Invoke-Expression ('netsh interface ipv4 set address `"' + $nic.name + '`" static ' + $nic.ip +' ' + $nic.subnet + ' ' + $nic.gateway + ' | out-null')
        Write-Host ('netsh interface ipv4 set address "' + $nic.name + '" static ' + $nic.ip +' ' + $nic.subnet + ' ' + $nic.gateway) -BackgroundColor Green -ForegroundColor Black
    }
    else {
        Write-Host "No IP set" -BackgroundColor Green -ForegroundColor Black
    }
 
    # Count +1 for next Adapter
    $nicNumber++
}
#endregion

 

Теперь я могу скопировать Set-IPAddressfromXML.ps1 и networkconfig.xml каждого Hyper-V хостами и редактирования IP-адресов в XML-файл, запустите файл PowerShell.

  

 

set-ipaddressfromxml

Обобщим:

 

1. Переименовали сетевые карты первого хоста
 2. Запустили Get-NICInformation.ps1 на первом компьютере и проверили сетевой порядок
 3. Изменили networkconfig.xml на втором хостов в правильном порядке из сетевых карт
4. Выполнить Set-IPAddressfromXML.ps1
 5. Сделайте это для всех Hyper-V 

 

Я надеюсь, что это сделает жизнь проще.

 

Вы можете скачать скрипты отсюда:  Skydrive

Оставьте свой комментарий!

Добавить комментарий

 

Самое читаемое:

Быстрый поиск

Инструкции к программам

Инструкции к программам

Сайт "Новые Информационные Технологии" содержит лишь справочные данные из открытых источников. Мы НЕ Рекламируем и НЕ Рекомендуем покупать или использовать ВСЕ упомянутые на сайте программы, оборудование и технологии