Azureネットワークインターフェイスの作成と設定手順|VMへのNIC追加をazコマンドで構成する

運営:リナックスマスター.JP(代表 宮崎智広)
HOME > Linux技術 リナックスマスター.JP(Linuxマスター.JP) > Azure > Azureネットワークインターフェイスの作成と設定手順|VMへのNIC追加をazコマンドで構成する
「AzureでLinux VMを作ったけど、IPアドレスをあとから変えたいのにVMの中で設定しても再起動で消えてしまう」
そういった経験はないでしょうか。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を設定できる


「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
姓・名・メールの3つだけ/30秒/解除は3秒 / 詳細はこちら

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

起動後にSSHでVMにアクセスし、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

指定するIPアドレスはサブネットのアドレス範囲内で、かつ他のリソースに割り当て済みでないことを確認してください。

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
現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、
Azureを含む現場レベルのネットワーク設計・実装スキルを体系的に習得できる「Linux Master Pro Seminar」について詳しくはこちらから確認してください。
>> AzureでLinuxを学ぶ実践講座の詳細はこちら

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は30秒、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

姓・名・メールの3つだけ/30秒/解除は3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録

運営

リナックスマスター.JP(代表 宮崎智広)

株式会社イーネットマーキュリーが運営するLinux教育サイトです。代表の宮崎智広は現役のLinuxサーバー管理者として20年以上の実務経験を持ち、累計3,100名以上のエンジニアを指導してきました。実践型のLinuxセミナーや無料マニュアルの配布を通じてLinux人材の育成に取り組んでいます。