Quantcast
Channel: VMware Communities : Blog List - All Communities
Viewing all articles
Browse latest Browse all 3135

PowerCLI で ゲスト OS の vNIC と IP アドレスの対応を確認してみる。

$
0
0

vSphere 環境では、ゲスト OS に VMware Tools をインストールすると

VM のレイヤから、ゲスト OS に付与されている IP アドレスを確認することができます。

PowerCLI> Get-VM db01 | Get-VMGuest | select VM,ToolsVersion,IPAddress | fl

 

VM           : db01

ToolsVersion : 10.1.5

IPAddress    : {192.168.11.171, 192.168.11.170, 192.168.11.173, 192.168.41.171...}

 

 

実は現在の vSphere の機能では、vNIC と IP アドレスの対応も確認できるようになっています。

この VM には vNIC が 2つあり、それぞれ vNIC に複数の IP アドレスが付与されている様子がわかります。

(ちなみにこの VM は Oracle RAC を構成している Linux ゲストで VIP を複数もっています。)

PowerCLI> Get-VM db01 | Get-VMGuest | select -ExpandProperty ExtensionData  | select -ExpandProperty Net

 

Network        : dvpg-vds01-vlan-1011

IpAddress      : {192.168.11.171, 192.168.11.170, 192.168.11.173}

MacAddress     : 00:50:56:8a:fc:d4

Connected      : True

DeviceConfigId : 4000

DnsConfig      :

IpConfig       : VMware.Vim.NetIpConfigInfo

NetBIOSConfig  :

 

Network        : dvpg-vds01-vlan-4001

IpAddress      : {192.168.41.171, 169.254.131.137}

MacAddress     : 00:50:56:8a:89:e3

Connected      : True

DeviceConfigId : 4001

DnsConfig      :

IpConfig       : VMware.Vim.NetIpConfigInfo

NetBIOSConfig  :

 

 

IPv6 のアドレスを付与されている場合も、下記のようにアドレスが認識されています。

(ちなみにこの VM は vSAN Witness Appliance で、本来は vNIC1 / vNIC2 は別セグメントの IP を付与します。)

PowerCLI> Get-VM hv-n43w | Get-VMGuest | select -ExpandProperty ExtensionData  | select -ExpandProperty Net

 

Network        : dvpg-vds01-vlan-0000

IpAddress      : {192.168.1.13, fe80::250:56ff:fe8a:180a, 2400:4030:8c62:5400:250:56ff:fe8a:180a}

MacAddress     : 00:50:56:8a:18:0a

Connected      : True

DeviceConfigId : 4000

DnsConfig      :

IpConfig       : VMware.Vim.NetIpConfigInfo

NetBIOSConfig  :

 

Network        : dvpg-vds01-nested

IpAddress      : {192.168.1.14, fe80::250:56ff:fe8a:79a0, 2400:4030:8c62:5400:250:56ff:fe8a:79a0}

MacAddress     : 00:50:56:8a:79:a0

Connected      : True

DeviceConfigId : 4001

DnsConfig      :

IpConfig       : VMware.Vim.NetIpConfigInfo

NetBIOSConfig  :

 

 

ためしに、下記のようなスクリプトを作成してみました。

get_guest_ip.ps1 · GitHub

 

実行すると、下記のように IP アドレスごとに情報を取得できます。

powercli-vnic-ip-01.png

 

PowerCLI スクリプトなどで工夫することで、

取得する情報を vNIC ごとから IP アドレスごとにしたり・・・・

PowerCLI> .\get_guest_ip.ps1 -VMs hv-n43w

 

VM           : hv-n43w

PowerState   : PoweredOn

ToolsState   : toolsOk

key          : 4000

Mac          : 00:50:56:8a:18:0a

Portgroup    : dvpg-vds01-vlan-0000

Connected    : True

IpAddress    : 192.168.1.13

PrefixLength : 24

 

VM           : hv-n43w

PowerState   : PoweredOn

ToolsState   : toolsOk

key          : 4000

Mac          : 00:50:56:8a:18:0a

Portgroup    : dvpg-vds01-vlan-0000

Connected    : True

IpAddress    : fe80::250:56ff:fe8a:180a

PrefixLength : 64

 

VM           : hv-n43w

PowerState   : PoweredOn

ToolsState   : toolsOk

key          : 4000

Mac          : 00:50:56:8a:18:0a

Portgroup    : dvpg-vds01-vlan-0000

Connected    : True

IpAddress    : 2400:4030:8c62:5400:250:56ff:fe8a:180a

PrefixLength : 64

 

VM           : hv-n43w

PowerState   : PoweredOn

ToolsState   : toolsOk

key          : 4001

Mac          : 00:50:56:8a:79:a0

Portgroup    : dvpg-vds01-nested

Connected    : True

IpAddress    : 192.168.1.14

PrefixLength : 24

 

VM           : hv-n43w

PowerState   : PoweredOn

ToolsState   : toolsOk

key          : 4001

Mac          : 00:50:56:8a:79:a0

Portgroup    : dvpg-vds01-nested

Connected    : True

IpAddress    : fe80::250:56ff:fe8a:79a0

PrefixLength : 64

 

VM           : hv-n43w

PowerState   : PoweredOn

ToolsState   : toolsOk

key          : 4001

Mac          : 00:50:56:8a:79:a0

Portgroup    : dvpg-vds01-nested

Connected    : True

IpAddress    : 2400:4030:8c62:5400:250:56ff:fe8a:79a0

PrefixLength : 64

 

 

IPv4 のアドレスだけを取得したりできるようになります。

PowerCLI> .\get_guest_ip.ps1 -VMs hv-n43w -IPv4Only

 

VM           : hv-n43w

PowerState   : PoweredOn

ToolsState   : toolsOk

key          : 4000

Mac          : 00:50:56:8a:18:0a

Portgroup    : dvpg-vds01-vlan-0000

Connected    : True

IpAddress    : 192.168.1.13

PrefixLength : 24

 

VM           : hv-n43w

PowerState   : PoweredOn

ToolsState   : toolsOk

key          : 4001

Mac          : 00:50:56:8a:79:a0

Portgroup    : dvpg-vds01-nested

Connected    : True

IpAddress    : 192.168.1.14

PrefixLength : 24

 

 

IP アドレスごとにすることで、

下記のように IP アドレス特定を工夫しやすくなるのではないかと思います。

PowerCLI> .\get_guest_ip.ps1 -VMs db01 -IPv4Only | where {$_.key -eq 4001} | where {$_.IpAddress -like "192.168.*"} | select IpAddress

 

IpAddress

---------

192.168.41.171

 

 

たとえば、VM のテンプレート展開で DHCP を使用している場合に

vNICの番号(4000~)や ポートグループ名(Network)をもとに IP アドレスを特定して、

後続処理の自動化で利用したりすることができると思います。

 

ちなみに今回は vSphere 6.5 U1 + PowerCLI 10.0 環境でためしています。

 

以上、PowerCLI で vNIC と IP アドレスの対応を確認してみる話でした。


Viewing all articles
Browse latest Browse all 3135

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>