NTNX>日記

個人的な趣味による Nutanix Community Edition 日記。Japanese のみですみません。

Nutanix CE で、IPAM での IP アドレス割り当ての様子を確認してみる。

この投稿は、Nutanix Advent Calendar 2021 の 14日目です。

adventar.org

Nutanix のもつ IPAM(IP アドレス管理)機能で、割り当て済みの IP アドレスを、REST API から確認してみようと思います。

利用する REST API は、めずらしく v2 です。

今回の内容です。

今回の環境

Nutanix CE 2020.09.16で、ハイパーバイザーは AHV です。

Nutainx の IPAM

Nutanix AHV では、VM の vNIC をネットワーク接続するために、Prism にて仮想ネットワークを作成します。

f:id:gowatana:20211214093515p:plain

そして、仮想ネットワークには IPAM 機能があります。

この IPAM 機能で払い出してある IP アドレスを確認してみます。

f:id:gowatana:20211214093752p:plain

 

REST API v2 での IPAM IP アドレス確認

今回は、Linux マシンの curl から実行します。

Linux$ cat /etc/system-release
Oracle Linux Server release 7.9
Linux$ rpm -q curl
curl-7.29.0-59.0.1.el7_9.1.x86_64
Linux$ rpm -q jq
jq-1.5-1.0.1.el7.x86_64

接続のための情報は変数に格納しておきます。

Linux$ USER=admin
Linux$ PASS='パスワード'
Linux$ PRISM=lab-nxce-01.go-lab.jp

さきほどスクリーンショットを掲載した、仮想ネットワーク「nw-vlan-14」の情報を取得してみます。/v2.0/networks の GET メソッドだとリファレンスだとフィルターが無そうなので、jq で取得対象をフィルターしています。

Linux$ curl -ks -u "$USER:$PASS" -X GET https://$PRISM:9440/api/nutanix/v2.0/networks | jq -r '.entities[] | select(.name=="nw-vlan-14")'
{
  "logical_timestamp": 1,
  "vlan_id": 14,
  "ip_config": {
    "network_address": "192.168.14.0",
    "prefix_length": 24,
    "default_gateway": "192.168.14.1",
    "dhcp_options": {},
    "pool": [
      {
        "range": "192.168.14.10 192.168.14.19"
      }
    ],
    "dhcp_server_address": "192.168.14.20"
  },
  "uuid": "d1735ff5-eecb-4cdb-a2dc-740e5e96f8f3",
  "name": "nw-vlan-14"
}

ここから、仮想ネットワーク UUID を確認しておきます。

Linux$ NW_UUID=$(curl -ks -u "$USER:$PASS" -X GET https://$PRISM:9440/api/nutanix/v2.0/networks | jq -r '.entities[] | select(.name=="nw-vlan-14") | .uuid')
Linux$ echo $NW_UUID
d1735ff5-eecb-4cdb-a2dc-740e5e96f8f3

仮想ネットワークの UUID が分かると、REST API の URL でもネットワークが指定できるようになります。

Linux$ curl -ks -u "$USER:$PASS" -X GET https://$PRISM:9440/api/nutanix/v2.0/networks/$NW_UUID | jq -r .
{
  "logical_timestamp": 1,
  "vlan_id": 14,
  "ip_config": {
    "network_address": "192.168.14.0",
    "prefix_length": 24,
    "default_gateway": "192.168.14.1",
    "dhcp_options": {},
    "pool": [
      {
        "range": "192.168.14.10 192.168.14.19"
      }
    ],
    "dhcp_server_address": "192.168.14.20"
  },
  "uuid": "d1735ff5-eecb-4cdb-a2dc-740e5e96f8f3",
  "name": "nw-vlan-14"
}

それでは、IPAM の IP アドレスを確認してみます。ただし、この時点ではまだ IP アドレスが払い出されていません。

Linux$ curl -ks -u "$USER:$PASS" -X GET https://$PRISM:9440/api/nutanix/v2.0/networks/$NW_UUID/addresses | jq -r .
{
  "metadata": {
    "grand_total_entities": 0,
    "total_entities": 0
  },
  "entities": []
}

CVM で VM を作成して、この仮想ネットワークに接続する vNIC を追加してみました。

nutanix@NTNX-624676c4-A-CVM:192.168.20.52:~$ acli vm.create nw-test-01
nw-test-01: pending
nw-test-01: complete
nutanix@NTNX-624676c4-A-CVM:192.168.20.52:~$ acli vm.nic_create nw-test-01 network=nw-vlan-14
NicCreate: pending
NicCreate: complete

まだ VM は起動していませんが、この時点で IPAM で IP アドレスが採番されました。

Linux$ curl -ks -u "$USER:$PASS" -X GET https://$PRISM:9440/api/nutanix/v2.0/networks/$NW_UUID/addresses | jq -r .
{
  "metadata": {
    "grand_total_entities": 1,
    "total_entities": 1
  },
  "entities": [
    {
      "mac_address": "50:6b:8d:e3:20:09",
      "ip_address": "192.168.14.12",
      "network_uuid": null,
      "entity_uuid": "a26ebde6-9128-4555-a74c-7504fab736a9",
      "overlay_network_id": null,
      "type": "VM",
      "deleted": null
    }
  ]
}

 

Nutanix の IPAM が DHCP のリクエストではなく、CVM によって IP アドレスが管理されている様子が見られたかなと思います。

ちなみに、Nutanix CE ではまだ未対応ですが、最近の AOS(商用版の方)では IPAM で割り当て済みの IP アドレスが Prism でも確認可能になっています。クリスマス会などで話題に困ったら Prism を開くとよいと思います。

以上。

©2021 gowatana
クリエイティブ・コモンズ・ライセンスこの 作品 は クリエイティブ・コモンズ 表示 4.0 国際 ライセンスの下に提供されています。