iMind Developers Blog

iMind開発者ブログ

AzureでNIC2枚挿し

概要

Azureで1台のVMにNICを2枚挿したかった。

バージョン情報

  • azure-cli 2.0.54-1
  • Ubuntu 18.04.1 LTS

vmの立ち上げ

まずは適当な名前でVMを生成。

RESOURCE_GROUP=your_resource_group_name

$ az vm create \
  --resource-group $RESOURCE_GROUP \
  --name example-vm \
  --image UbuntuLTS \
  --generate-ssh-keys \
  --output json \
  --verbose 

生成されたVMにsshしてネットワークインターフェースを確認する。

$ ssh {VM生成時に表示されたip_address}
$ ip a

下記が認識されている。

  • lo
  • eth0

これにeth1を追加したい。

Subnetの生成

NICを繋げるSubnetを作る。既にexample-vmSubnetという名前で自動生成されているが、2枚目は別のSubnetに繋ぐことにする。

現状のSubnetの情報について見ておく。

$ az network vnet subnet list \
    --resource-group $RESOURCE_GROUP \
    --vnet-name example-vmVNET
"addressPrefix": "10.0.0.0/24"
"name": "example-vmSubnet"

ネットワーク自体の範囲は下記のようになっている。

$ az network vnet list \
    --output table \
    --query '[*].{name:name,addressSpace:addressSpace.addressPrefixes[0]}'

Name              AddressSpace
----------------  --------------
example-vmVNET    10.0.0.0/16

10.0.0.0/16の範囲に収まって、且つ10.0.0.0/24と重複しないサブネットを生成すれば良さそう。

じゃ、NIC2は10.0.1.0/24にしとけばいいか。

$ az network vnet subnet create \
    --address-prefixes "10.0.1.0/24" \
    --name example-vmSubnet2 \
    --resource-group $RESOURCE_GROUP \
    --vnet-name example-vmVNET

createした結果を確認。

$ az network vnet subnet list \
    --resource-group $RESOURCE_GROUP \
    --vnet-name example-vmVNET \
    --query '[*].{name:name,addressPrefix:addressPrefix}' \
    --output table

Name               AddressPrefix
-----------------  ---------------
example-vmSubnet   10.0.0.0/24
example-vmSubnet2  10.0.1.0/24

よさげ。

NICの生成

続いてNICの生成。

VMをexample-vmで立ち上げたの、NICの名前はexample-vmVMNicで既に1つ生成されているはず。

example-vmVMNic2という名前で2つ目を作る。

最低限の構成として下記の指定で生成できる。subnetには先ほど生成したものと指定しておく。

$ az network nic create \
    --name example-vmVMNic2 \
    --resource-group $RESOURCE_GROUP \
    --vnet-name example-vmVNET \
    --subnet example-vmSubnet2

NICをVMに追加

生成したNICをVMに追加する。

VMが起きていると変更ができないのでdeallocateする。

$ az vm deallocate \
    --resource-group $RESOURCE_GROUP \
    --name example-vm

NICを追加する。

$ az vm nic add \
    --nics example-vmVMNic2 \
    --resource-group $RESOURCE_GROUP \
    --vm-name example-vm

VMを再度立ち上げる。

$ az vm start \
    --resource-group $RESOURCE_GROUP \
    --name example-vm

立ち上がったVMのIP確認。

$ az network public-ip show \
    --resource-group $RESOURCE_GROUP \
    --name example-vmPublicIP \
    --query '{ipAddress:ipAddress}'

表示されたIPにsshしてネットワークの確認。

$ ssh {ip_address}
$ ip a

下記の3つが認識されていれば成功。

1: lo
2: eth0
3: eth1

改定履歴

Author: Masato Watanabe, Date: 2019-03-01, 記事投稿