そういった経験はないでしょうか。Azureでは、ネットワークインターフェイス(NIC)はVMとは独立したリソースとして管理します。IP設定もDNSの指定もNIC側で制御する設計のため、LinuxのようにOS内で変更しても反映されません。
この記事では、AlmaLinux 9系 / Ubuntu 24.04 LTSを想定環境として、Azureネットワークインターフェイスを
az network nic コマンドで作成・設定する手順を解説します。VMへのNIC追加、静的IPの設定、IPconfigの追加まで順を追って確認できます。この記事のポイント
・ Azure NICはVMとは独立したリソースで、az network nic createで作成する
・ 既存VMへのNIC追加はVM停止後にaz vm nic addで実行する
・ 静的IPはaz network nic ip-config updateで--private-ip-addressを指定する
・ 一つのNICに複数のIPconfigを追加してセカンダリIPを設定できる
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
AzureのNICとLinuxのeth0の違いを理解しておく
LinuxサーバーのNIC(eth0やens3)は、OSが認識するネットワークデバイスです。nmcliやip addrで設定を変更すると、OS上に反映されます。AzureのネットワークインターフェイスはAzureリソースとして独立して存在します。VMにアタッチされてはじめてLinux側から見えるようになりますが、IP設定やDNS設定はAzureリソース側で管理します。
VMの中から
ip addr で確認できるIPアドレスは、AzureのNICに設定されたものが自動的に割り当てられたものです。OS側で変更しても、Azure側のNICと食い違いが生じてネットワークが止まることがあります。設定変更は必ず az network nic コマンドで実施してください。事前準備:リソースグループ・VNet・サブネットを確認する
NICを作成する前に、以下のリソースが存在することを確認してください。・リソースグループ:NICを配置するAzureリソースグループ
・仮想ネットワーク(VNet):NICを接続するVNet
・サブネット:NICを配置するサブネット
既存のリソースを確認するコマンドは次のとおりです。
# リソースグループの一覧を確認する az group list --output table # 指定したリソースグループ内のVNetを確認する az network vnet list --resource-group myRG --output table # VNet内のサブネットを確認する az network vnet subnet list \ --resource-group myRG \ --vnet-name myVnet \ --output table
Name ResourceGroup Location ----------- --------------- ---------- myRG (省略) japaneast # サブネット確認の出力例 Name AddressPrefix ProvisioningState ----------- --------------- ----------------- mySubnet 10.0.1.0/24 Succeeded
# リソースグループを作成する az group create --name myRG --location japaneast # VNetとサブネットをまとめて作成する az network vnet create \ --resource-group myRG \ --name myVnet \ --address-prefix 10.0.0.0/16 \ --subnet-name mySubnet \ --subnet-prefix 10.0.1.0/24
az network nic create でNICを作成する手順
1. NICを作成する
az network nic create コマンドで新しいNICを作成します。最低限必要なパラメーターは、リソースグループ、NIC名、VNetとサブネットの指定です。
az network nic create \ --resource-group myRG \ --name myNic \ --vnet-name myVnet \ --subnet mySubnet
--vnet-name と --subnet でサブネットを指定することで、そのサブネットのアドレス範囲からIPアドレスが自動で割り当てられます。NSG(ネットワークセキュリティグループ)をNIC作成時に紐づけることもできます。
# NSGを指定してNICを作成する az network nic create \ --resource-group myRG \ --name myNic \ --vnet-name myVnet \ --subnet mySubnet \ --network-security-group myNSG
2. 作成されたNICを確認する
作成後はaz network nic show でNICの詳細を確認できます。az network nic show \ --resource-group myRG \ --name myNic \ --output table
Name ResourceGroup Location ProvisioningState MacAddress ------- --------------- ---------- ------------------- ----------------- myNic myRG japaneast Succeeded 00-0D-3A-XX-XX-XX
ProvisioningState が Succeeded になっていれば作成成功です。既存のLinux VMにNICを追加する
1. VMを停止する
AzureでNICをVMに追加するには、VMを停止(割り当て解除)する必要があります。実行中のVMに直接NICを追加することはできません。
# VMを停止(割り当て解除)する az vm deallocate \ --resource-group myRG \ --name myVM
az vm show でステータスを確認してください。az vm show \ --resource-group myRG \ --name myVM \ --show-details \ --query powerState
"VM deallocated"
2. NICをVMに追加する
az vm nic add コマンドで作成済みのNICをVMに追加します。az vm nic add \ --resource-group myRG \ --vm-name myVM \ --nics myNic
3. VMを起動して動作確認する
NICの追加後はVMを起動します。# VMを起動する az vm start \ --resource-group myRG \ --name myVM # VMのNIC一覧を確認する az vm nic list \ --resource-group myRG \ --vm-name myVM \ --output table
ip addr コマンドで新しいインターフェイスが追加されていることを確認してください。VM内での名前解決が期待どおり動作するかの確認は、Linux DNS 設定の基本も参考になります。
IP構成を変更する(静的IP・IPconfig追加)
1. 静的プライベートIPアドレスを設定する
デフォルトでは動的IP(DHCP)が割り当てられます。運用上、IPアドレスが変わると困るケースでは静的IPに変更します。az network nic ip-config update コマンドで既存のIPconfigを静的IPに変更できます。az network nic ip-config update \ --resource-group myRG \ --nic-name myNic \ --name ipconfig1 \ --private-ip-address 10.0.1.10 \ --private-ip-address-version IPv4
--name ipconfig1 はデフォルトのIPconfig名です。事前に az network nic ip-config list でIPconfig名を確認してください。# 既存のIPconfigを確認する az network nic ip-config list \ --resource-group myRG \ --nic-name myNic \ --output table
2. 追加のIPconfigを作成する
一つのNICに複数のプライベートIPアドレスを設定する場合は、az network nic ip-config create コマンドでIPconfigを追加します。同一NICで複数のサービスに異なるIPを割り当てる構成など、Azure実践ハンズオンについて詳しくはazure.linuxmaster.jpで確認してください。
az network nic ip-config create \ --resource-group myRG \ --nic-name myNic \ --name ipconfig2 \ --private-ip-address 10.0.1.11 \ --subnet mySubnet \ --vnet-name myVnet
az network nic ip-config list で2件のIPconfigが表示されることを確認してください。よく起きるエラーと対処法
「VMのサイズがマルチNIC構成に対応していない」エラー
AzureのVMサイズによっては、アタッチできるNICの数に上限があります。マルチNIC構成にする場合は、VMサイズのNIC数上限を事前に確認してください。
# VMサイズのNIC数上限を確認する az vm list-sizes \ --location japaneast \ --query "[?name=='Standard_D2s_v3'].{Name:name,maxNics:maxNetworkInterfaces}" \ --output table
「IPアドレスが既に使用中」エラー
静的IPを指定したとき、同じサブネット内の別リソースが同じIPを使用している場合はエラーになります。az network vnet subnet list-available-ips コマンドでサブネット内の空きIPを確認してから指定してください。az network vnet subnet list-available-ips \ --resource-group myRG \ --vnet-name myVnet \ --name mySubnet
[ "10.0.1.4", "10.0.1.5", "10.0.1.6" ]
「NICが削除できない」エラー
NICがVMにアタッチされている間は削除できません。まずVMからNICをデタッチしてから削除します。# VMからNICをデタッチする az vm nic remove \ --resource-group myRG \ --vm-name myVM \ --nics myNic # NICを削除する az network nic delete \ --resource-group myRG \ --name myNic
本記事のまとめ
Azureネットワークインターフェイスをazコマンドで操作するときの主なコマンドをまとめます。| やりたいこと | コマンド |
|---|---|
| NICを作成する | az network nic create --resource-group RG --name NIC --vnet-name VNET --subnet SUBNET |
| NICの詳細を確認する | az network nic show --resource-group RG --name NIC |
| VMにNICを追加する | az vm nic add --resource-group RG --vm-name VM --nics NIC |
| VMのNIC一覧を確認する | az vm nic list --resource-group RG --vm-name VM |
| 静的IPを設定する | az network nic ip-config update --nic-name NIC --name ipconfig1 --private-ip-address IP |
| IPconfigを追加する | az network nic ip-config create --nic-name NIC --name ipconfig2 --private-ip-address IP --subnet SUBNET --vnet-name VNET |
| IPconfig一覧を確認する | az network nic ip-config list --nic-name NIC |
| VMからNICをデタッチする | az vm nic remove --resource-group RG --vm-name VM --nics NIC |
| NICを削除する | az network nic delete --resource-group RG --name NIC |
Azureを含む現場レベルのネットワーク設計・実装スキルを体系的に習得できる「Linux Master Pro Seminar」について詳しくはこちらから確認してください。
>> AzureでLinuxを学ぶ実践講座の詳細はこちら
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
姓・名・メールの3つだけ/30秒/解除は3秒 / 詳細はこちら
- 前のページへ:AWS Virtual Private CloudとAzureのNATを比較する|azコマンドで設定する
- この記事の属するカテゴリ:Azureへ戻る

無料メルマガで学習を続ける
Linuxの実践スキルをメールで毎週お届け。
登録は30秒、解除もいつでも可。
登録無料・いつでも解除できます