Home > Windows にまつわる e.t.c.

Hyper-V Server 2012 R2のIPとNIC設定


Hyper-V Server 2012 R2を構築する場合、ホスト用NICとゲスト用NICと2つ以上のNICを持ったサーバーで構築するはずですね。

この場合、IPアドレスを持つのはホスト用NICなので、ホスト用NICへのIPアドレス割り当てと後々のメンテナンス性を考量して、NIC名設定しておくと後々楽です。

NIC情報を得るのは「Get-NetAdapter」を使います。

PS C:\> Get-NetAdapter        
         
Name
InterfaceDescription
ifIndex
  Status
MacAddress
----
--------------------
-------
  ------
----------
イーサネット 6
Intel(R) Ethernet Server Adapter I...#4
16
  Up
A0-36-9F-...
イーサネット 5
Intel(R) Ethernet Server Adapter I...#3
15
  Disconnected
A0-36-9F-...
イーサネット 2
Intel(R) PRO/1000 EB Network Conne...#2  
17
  Not Present
00-30-48-...
イーサネット
Intel(R) PRO/1000 EB Network Connect...
3
  Not Present
00-30-48-...
イーサネット 3
Intel(R) Ethernet Server Adapter I35...
4
  Up
A0-36-9F-...
イーサネット 4
Intel(R) Ethernet Server Adapter I...#2
6
  Up
A0-36-9F-...

IPv4アドレス設定は、以下のようにします。

# IPv4 アドレス/デフォルトゲートウェイ設定
New-NetIPAddress -AddressFamily IPv4 -IPAddress [IPv4 アドレス] -PrefixLength [CRDRサイズ] -DefaultGateway [デフォルトゲートウェイ]

# IPv4 参照 DNS 設定
Set-DnsClientServerAddress -ServerAddresses [参照DNS-1],[参照DNS-2]...

例えば、IPアドレス:192.168.0.10/24、デフォルトゲートウェイ:192.168.0.254を設定する場合は以下のようにします。
ただし、このままでは設定することはできません。なぜならば、どのNICに設定するかの情報が欠落しているからです。

New-NetIPAddress -AddressFamily IPv4 -IPAddress  192.168.0.10 -PrefixLength 24 -DefaultGateway 192.168.0.254

この設定をどのNICに設定するかのNICの識別は、Get-NetAdapterで得られる属性で指定します。
(NICが1つの場合は、識別が不要なのでGet-NetAdapterだけでOK)

手動設定するのであれば、「ifIndex」がミスが少なくておすすめですね。例えばifIndexが「16」のNICを設定する場合は、以下のようにします。

Get-NetAdapter | ? ifIndex -eq 16 | New-NetIPAddress -AddressFamily IPv4 -IPAddress  192.168.0.1 -PrefixLength 24 -DefaultGateway 192.168.0.254

余談ですが、「?」は「Where-Object」のAliasです。

ifIndex は動的に割り当たるので、自動展開する場合の識別にはInterfaceDescriptionに含まれるNICメーカー名とMacAddressの組み合わせ(Sort-Objectして一番小さいとか)が良いでしょう。

参照 DNS も同様に以下のように設定します。

Get-NetAdapter | ? ifIndex -eq 16 | Set-DnsClientServerAddress -ServerAddresses 192.168.0.1,192.168.0.2

IPv6アドレスも同様に設定できますが、IPv6の場合はデフォルトゲートウェイを別に設定しなくてはない仕様(Bugっぽいw)になっています。

Get-NetAdapter | ? ifIndex -eq 16 | New-NetIPAddress -AddressFamily IPv6 -IPAddress fd43:6338:75ac::d01 -PrefixLength 64

Get-NetAdapter | ? ifIndex -eq 16 | New-NetRoute -AddressFamily IPv6 -DestinationPrefix ::/0 -NextHop fe80::1

Get-NetAdapter | ? ifIndex -eq 16 | Set-DnsClientServerAddress -ServerAddresses fd43:6338:75ac::dc01,fd43:6338:75ac::dc02

RA 環境で固定IPv6アドレスを設定する場合は、RA による IPv6 アドレス自動構成停止新内と自動構成されたIPv6アドレスが割り当たってしまうので、Set-NetIPInterfaceで自動構成を停止します。
Set-NetIPInterfaceはNICの識別は不要です。

Set-NetIPInterface -RouterDiscovery Disabled

NIC名のリネームは「Rename-NetAdapter」を使います。

Get-NetAdapter | ? ifIndex -eq 16 | Rename-NetAdapter -NewName "Host"

運用環境では、pingで死活確認をすることが多いので、ファイアウオールの設定を変更してでpingの反応を許可します。

Set-NetFirewallRule -DisplayName "ファイルとプリンターの共有 (エコー要求 - ICMPv4 受信)" -Enabled True
Set-NetFirewallRule -DisplayName "ファイルとプリンターの共有 (エコー要求 - ICMPv6 受信)" -Enabled True

 

ちなみに、IP設定をミスったときは、以下で設定を解除することができます。

# DNS設定の解除
Get-NetAdapter | ? ifIndex -eq 16 | Set-DnsClientServerAddress -ResetServerAddresses -confirm:$false

# IPアドレス設定の解除
Get-NetAdapter | ? ifIndex -eq 16 | Remove-NetIPAddress -confirm:$false

# デフォルトゲートウェイの解除
Get-NetAdapter | ? ifIndex -eq 16 | Remove-NetRoute -DestinationPrefix 0.0.0.0/0 -confirm:$false

 

Hyper-V server 2012 R2 の目次に戻る
http://www.vwnet.jp/Windows/etc.asp#Hyper-V_server_2012_R2

 

back.gif (1980 バイト)

home.gif (1907 バイト)

Copyright © MURA All rights reserved.