1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Azure VNet 複数プレフィックスを持つサブネット

Posted at

Azure 仮想ネットワークのサブネット内に複数のアドレスプレフィックスを設定する機能がパブリックプレビューとなっております。
今まで対応が難しかったサブネット内のアドレス空間の拡張やサブネットの IP アドレスを入れ替えるといった作業をリソース削除なしでできるようになります。
実際に検証し、留意点や動作をまとめております。

利用シナリオ

  • サブネット内のアドレス数が枯渇しており、アドレス空間の拡張が必要
  • サブネット内のアドレスレンジを別のアドレスレンジに変更したい

留意点

  • NIC に対して複数のプライベート IP アドレスを割り当てるのはサポートされていない
  • 追加するアドレスレンジについても予約 IP アドレスが存在する (最初の 4 つと最後の 1 つ)
  • 委任されたサブネットはサポートされていない (AppService や PowerPlatform 等)

構成

以下のような構成でサブネットにアドレス空間を追加したり、入れ替えたりします。

image.png

動作確認

事前準備1 (VNet の準備)

VMSS をデプロイするための VNet と Subnet を準備します。(構成図のようなシンプルなもの)

image.png

事前準備2 (VMSSS デプロイ)

こちら を参考にVMSS を対象の状態のサブネットにデプロイしておきます。
インスタンス数は 3 つでデプロイしました。

image.png

こんな状態です。
image.png

事前準備3 (プレビュー登録)

Azure CLI にログインします。(Azure Powershell でも可)

az login

以下のコマンドでプレビュー登録をします。

az feature register --namespace Microsoft.Network --name AllowMultipleAddressPrefixesOnSubnet
az feature register --namespace Microsoft.Network --name AllowDeletionOfIpPrefixFromSubnet

サブネットへアドレス空間を追加

Azure CLI コマンドにて "172.16.0.0/28" のアドレスレンジを VMSS 用のサブネットに追加します。

az network vnet subnet update \
--name subnet-b-multi-001 \
--vnet-name vnet-spoke-b-001 \
--resource-group rg-spoke-b-001 \
--address-prefixes 10.12.8.0/29 172.16.0.0/28

サブネットが追加されたことを確認します。

{
  "addressPrefixes": [
    "10.12.8.0/29",
    "172.16.0.0/28"
  ],
  "delegations": [],
  "etag": "W/\"d36e8f48-79e1-4a25-8dbb-bc643fc133ab\"",
  ~省略~
}

スケールアウト

VMSS のインスタンス数を 6 まで増やします。

image.png

仮想ネットワークの接続されたデバイスの画面から追加したアドレスレンジが利用されていることを確認できます。

image.png

こんな状態です。(スケールセットは分かれてません。)

image.png

スケールイン&既存レンジの削除

既存のアドレスレンジである "10.12.8.x" を利用しているインスタンスを削除します。

image.png

image.png

こんな状態です。
image.png

既存のアドレスレンジである "10.12.8.0/29" を削除します。

az network vnet subnet update \
--name subnet-b-multi-001 \
--vnet-name vnet-spoke-b-001 \
--resource-group rg-spoke-b-001 \
--address-prefixes 172.16.0.0/28

既存のアドレスレンジが削除されたことを確認します。

{
  "addressPrefixes": [
    "172.16.0.0/28"
  ],
  "delegations": [],
  "etag": "W/\"c079b17a-fa0c-4b2e-9fa8-233c6eab9c0b\"",
  ~省略~
}

こんな状態になりました。

image.png

VM の IP アドレスを付け替える

こんな構成で VM の Private IP を付け替えてみます。
サブネットを付け替えることは以前からできますが、この方法だと NSG, UDR, NAT Gateway, サービスエンドポイント等の設定変更は不要です。

image.png

VM をポータルから呈した状態で、NIC の画面から Private IP アドレスを変更します。

image.png

起動後、VM の IP アドレスが変わっておりました。

hiyama@vm-multip-001:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0d:3a:cc:a1:bf brd ff:ff:ff:ff:ff:ff
    inet 10.12.6.4/25 brd 10.12.6.127 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::20d:3aff:fecc:a1bf/64 scope link 
       valid_lft forever preferred_lft forever
hiyama@vm-multip-001:~$ 

試しにこの VM に Private IP を追加する作業を行ってみましたが、制限事項の通りエラーとなりました。

image.png

image.png

Application Gateway で試してみる

以下のような構成で Application Gateway を作成し、サブネットより大きい数のスケールアウトを行ってみます。

image.png

サブネットのサイズが足りないためエラーとなってしまいました。今後の機能改善に期待したいと思います。

image.png

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?