В некоторых случаях, например, на веб-серверах, требуется настроить на одном сетевом адаптере более одного IP адреса. Если это один сервер и в нём одна или две сетевые карты и небольшое количество дополнительных IP адресов, то, как правило, настройка через графический интерфейс проблем не вызовет. Но что делать, если серверов больше десяти и на каждом несколько сетевых адаптеров и у каждого несколько IP адресов? Настройка через графический интерфейс в данном случае займёт очень немало времени. В таком случае на помощь придут средства автоматизации Windows — PowerShell.
Далее будет рассмотрен процесс настройки для версии ОС Windows Server 2016/2019.
Запускаем Powershell от имени администратора.
Сделать это можно, кликнув правой кнопкой по меню «Пуск» и выбрав «Windows PowerShell (Admin)» в случае английской версии ОС.
Далее откроется окно Powershell. Теперь необходимо определить, на каком интерфейсе необходимо добавить требуемые IP-адреса. Используя команду ниже определяем требуемый сетевой интерфейс:
Get-NetAdapter
В данном случае один сетевой адаптер с именем «Ethernet» , его и будем использовать. Узнаем вначале, какие уже настроены IP на данном адаптере :
Get-netIpAddress -ifalias Ethernet -addressFamily Ipv4 | ft
Для добавления нового адреса, например 192.168.10.10, необходимо использовать следующую команду:
New-NetIPAddress -addressfamily Ipv4 -IPAddress 192.168.10.10 -PrefixLength 24 -InterfaceAlias “Ethernet” -SkipAsSource $True
Проверим результат:
Get-netIpAddress -ifalias Ethernet -addressFamily Ipv4 | ft -AutoSize -Wrap
Как видно, адаптеру присвоен ещё один IPv4 адрес — 192.168.10.10.
Если необходимо, чтобы исходящий трафик отправлялся с нового IP адреса, необходимо параметру SkipAsSource присвоить значение false:
Get-NetIPAddress 192.168.10.10 | Set-NetIPAddress -SkipAsSource $False
В случае, если необходимо добавить большее число адресов, например 5 , то можно воспользоваться следующим скриптом.
Используя массив чисел, например, от 11 до 16 и цикл, добавляем ещё 5 IP адресов:
11..16 | foreach-object {New-NetIpAddress -ifalias Ethernet -AddressFamily IPv4 -PrefixLength 24 -IPAddress "192.168.10.$_" -verbose}
После выполнения команды проверим знакомой уже командой :
Get-NetIPAddress
Заключение: в данной статье мы рассмотрели возможности использования Powershell для автоматизации назначения нескольких IP адресов на одном сетевом интерфейсе.