NTNX>日記

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

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

Nutanix のもつ IPAM(IP アドレス管理)機能で、IP アドレス プールの範囲から、特定の IP アドレスを割り当てないようにする方法を試してみます。

広い範囲で IP アドレス プールを作成している場合に、特定の IP アドレスだけ静的に設定しておきたい場合などに利用する機能です。

今回の内容です。

事前確認

前回の投稿と同じ環境を利用しています。

仮想ネットワーク「nw-vlan-14」には、192.168.14.10 ~ 192.168.14.19 の IP アドレス プールを追加してあります。

CVM$ acli net.get nw-vlan-14
nw-vlan-14 {
  identifier: 14
  ip_config {
    dhcp_server_address: "192.168.14.20"
    ip_pool_list {
      end_address: "192.168.14.19"
      start_address: "192.168.14.10"
    }
    network_address: "192.168.14.0"
    prefix_length: 24
    route_list {
      gateway: "192.168.14.1"
      network_address: "0.0.0.0"
      prefix_length: 0
    }
  }
  logical_timestamp: 2
  name: "nw-vlan-14"
  type: "kBridged"
  uuid: "d1735ff5-eecb-4cdb-a2dc-740e5e96f8f3"
}

VM を 10台ほど作成してみます。

CVM$ acli vm.create 'nw-test-[01..10]'
nw-test-01: pending
nw-test-02: pending
nw-test-03: pending
nw-test-04: pending
nw-test-05: pending
nw-test-06: pending
nw-test-07: pending
nw-test-08: pending
nw-test-09: pending
nw-test-10: pending
nw-test-02: complete
nw-test-01: complete
nw-test-05: complete
nw-test-04: complete
nw-test-03: complete
nw-test-06: complete
nw-test-10: complete
nw-test-09: complete
nw-test-08: complete
nw-test-07: complete

そして IPAM 有効なネットワークに接続する vNIC を追加します。

CVM$ for i in {01..10}; do acli vm.nic_create nw-test-$i network=nw-vlan-14; done
NicCreate: pending
NicCreate: complete
NicCreate: pending
NicCreate: complete
NicCreate: pending
NicCreate: complete
NicCreate: pending
NicCreate: complete
NicCreate: pending
NicCreate: complete
NicCreate: pending
NicCreate: complete
NicCreate: pending
NicCreate: complete
NicCreate: pending
NicCreate: complete
NicCreate: pending
NicCreate: complete
NicCreate: pending
NicCreate: complete

VM(の vNIC)に、IP アドレス プールからアドレスからアドレスが割り当ててられました。ちなみに、IP アドレスは開始番号から順に割り当てられるわけではありません。

f:id:gowatana:20211215234230p:plain

いったん、VM を削除します。

CVM$ acli -y vm.delete 'nw-test-*'
nw-test-01: pending
nw-test-02: pending
nw-test-03: pending
nw-test-04: pending
nw-test-05: pending
nw-test-06: pending
nw-test-07: pending
nw-test-08: pending
nw-test-09: pending
nw-test-10: pending
nw-test-03: complete
nw-test-06: complete
nw-test-07: complete
nw-test-02: complete
nw-test-10: complete
nw-test-09: complete
nw-test-04: complete
nw-test-05: complete
nw-test-08: complete
nw-test-01: complete

IP アドレス プールでの IP アドレス予約(ip_blacklist)

IP アドレス プールの予約(ip_blacklist)に、192.168.14.12 と 192.168.14.13 を追加してみます。

CVM$ acli net.add_to_ip_blacklist nw-vlan-14 ip_list=192.168.14.12,192.168.14.13
CVM$ acli net.list_ip_blacklist nw-vlan-14
192.168.14.12
192.168.14.13

ふたたび VM と vNIC を作成すると、IP アドレス プールから割り当てられるアドレスが不足して、9台目からエラーになります。

CVM$ acli vm.create 'nw-test-[01..10]'
nw-test-01: pending
nw-test-02: pending
nw-test-03: pending
nw-test-04: pending
nw-test-05: pending
nw-test-06: pending
nw-test-07: pending
nw-test-08: pending
nw-test-09: pending
nw-test-10: pending
nw-test-01: complete
nw-test-02: complete
nw-test-06: complete
nw-test-05: complete
nw-test-03: complete
nw-test-04: complete
nw-test-09: complete
nw-test-07: complete
nw-test-08: complete
nw-test-10: complete
CVM$ for i in {01..10}; do acli vm.nic_create nw-test-$i network=nw-vlan-14; done
NicCreate: pending
NicCreate: complete
NicCreate: pending
NicCreate: complete
NicCreate: pending
NicCreate: complete
NicCreate: pending
NicCreate: complete
NicCreate: pending
NicCreate: complete
NicCreate: pending
NicCreate: complete
NicCreate: pending
NicCreate: complete
NicCreate: pending
NicCreate: complete
NicCreate: pending
NicCreate: AddressPoolExhausted: Cannot allocate address! No DHCP pool is defined or the DHCP pool is exhausted.
NicCreate: pending
NicCreate: AddressPoolExhausted: Cannot allocate address! No DHCP pool is defined or the DHCP pool is exhausted.

IP アドレスは、プールの範囲から 192.168.14.12 と 192.168.14.13 を避けて割り当てられています。

f:id:gowatana:20211215234422p:plain

IP アドレス プールでの IP アドレス予約削除

IP アドレス プールから、予約したアドレスを削除しておきます。

CVM$ acli net.delete_from_ip_blacklist nw-vlan-14 ip_list=192.168.14.12,192.168.14.13
CVM$ acli net.list_ip_blacklist nw-vlan-14
CVM$

これで、残りの 2台の VM にも、vNIC が作成できます。

CVM$ for i in {09..10}; do acli vm.nic_create nw-test-$i network=nw-vlan-14; done
NicCreate: pending
NicCreate: complete
NicCreate: pending
NicCreate: complete

予約(ip_blacklist)から削除したアドレスが、プールから割り当てられました。

f:id:gowatana:20211215234538p:plain

ちなみに、めずらしく CLI や API の URL に blacklist という表現が残っていますが、API から確認すると、IP アドレスが「type: RESERVATION」(予約)といった値になっています。一方、vNIC に割り当てられた IP は「type: VM」になります。

CVM$ curl -ks -u "$USER:$PASS" -X GET https://lab-nxce-01.go-lab.jp:9440/api/nutanix/v2.0/networks/$NW_UUID/addresses  | python -m json.tool
{
    "entities": [
        {
            "deleted": null,
            "entity_uuid": null,
            "ip_address": "192.168.14.12",
            "mac_address": null,
            "network_uuid": null,
            "overlay_network_id": null,
            "type": "RESERVATION"
        },
        {
            "deleted": null,
            "entity_uuid": null,
            "ip_address": "192.168.14.13",
            "mac_address": null,
            "network_uuid": null,
            "overlay_network_id": null,
            "type": "RESERVATION"
        }
    ],
    "metadata": {
        "grand_total_entities": 2,
        "total_entities": 2
    }
}

以上。

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