PowerShell を使用して仮想マシンに複数の IP アドレスを割り当てる

注意

この記事は、Azure Az PowerShell モジュールを使用するように更新されています。 Az PowerShell モジュールは、Azure と対話するために推奨される PowerShell モジュールです。 Az PowerShell モジュールの使用を開始するには、「Azure PowerShell をインストールする」を参照してください。 Az PowerShell モジュールに移行する方法については、「AzureRM から Az への Azure PowerShell の移行」を参照してください。

Azure 仮想マシン (VM) には、1 つ以上のネットワーク インターフェイス (NIC) がアタッチされています。 NIC には、1 つ以上の静的または動的パブリックおよびプライベート IP アドレスを割り当てることができます。 VM に複数の IP アドレスを割り当てると、次のことが可能になります。

  • 異なる IP アドレスと SSL 証明書を持つ複数のウェブサイトやサービスを、1つのサーバーでホストする。
  • ファイアウォールやロード バランサーのような、ネットワーク仮想アプライアンスとして機能する。
  • 複数の NIC いずれかの複数のプライベート IP アドレスいずれかを Azure Load Balancer のバックエンド プールに追加する。 以前は、プライマリ NIC のプライマリ IP アドレスのみをバックエンド プールに追加できました。 複数の IP 構成の負荷分散方法の詳細については、複数の IP 構成の負荷分散に関する記事を参照してください。

VM に接続された各 NIC には、1 つ以上の IP 構成が関連付けられています。 各構成には、1 つの静的または動的プライベート IP アドレスが割り当てられています。 また、1 つのパブリック IP アドレス リソースが関連付けられている場合もあります。 パブリック IP アドレス リソースには、動的または静的なパブリック IP アドレスが割り当てられています。 Azure における IP アドレスの詳細については、「Azure 内の IP アドレス」を参照してください。

NIC に割り当てることができるプライベート IP アドレスの数には上限があります。 また、Azure サブスクリプションで使用できるパブリック IP アドレスの数にも上限があります。 詳細については、Azure の制限に関する記事を参照してください。

この記事では、PowerShell を使用して Azure Resource Manager デプロイ モデルで仮想マシン (VM) を作成する方法を説明します。 クラシック デプロイ モデルで作成されたリソースには、複数の IP アドレスを割り当てることはできません。 Azure のデプロイ モデルの詳細については、デプロイ モデルの概要に関する記事をご覧ください。

シナリオ

1 つの NIC が接続された VM を作成し、仮想ネットワークに接続します。 VM には、3 つの "プライベート" IP アドレスと 2 つの "パブリック" IP アドレスが必要です。 各 IP アドレスを次の IP 構成に割り当てます。

  • IPConfig-1: "静的" プライベート IP アドレスと "静的" パブリック IP アドレスを割り当てます。

  • IPConfig-2: "静的" プライベート IP アドレスと "静的" パブリック IP アドレスを割り当てます。

  • IPConfig-3: "静的" プライベート IP アドレスを割り当てます。パブリック IP アドレスは割り当てません。

    複数の IP アドレス

NIC の作成時に IP 構成を NIC に関連付け、VM の作成時に NIC を VM に接続します。 シナリオで使用する IP アドレスの種類は、わかりやすく説明するためのものです。 必要な IP アドレスの種類と割り当ての種類を使用できます。

注意

この記事の手順では、すべての IP 構成を 1 つの NIC に割り当てていますが、複数の IP 構成を複数の NIC を持つ VM の任意の NIC に割り当てることもできます。 複数の NIC が接続された VM の作成方法については、複数の NIC が接続された VM の作成に関する記事をご覧ください。

複数の IP アドレスを持つ VM を作成する

以下の手順は、シナリオの説明に従って複数の IP アドレスを持つ VM を作成する方法を示しています。 変数値は実際の実装に合わせて変更してください。

  1. PowerShell コマンド プロンプトを開き、1 つの PowerShell セッション内で、このセクションの残りの手順を完了します。 まだ PowerShell をインストール、構成していない場合は、「 Azure PowerShell のインストールと構成 」の手順を実行してください。

  2. Connect-AzAccount コマンドを使用してアカウントにログインします。

  3. myResourceGroupwestus を任意の名前と場所に置き換えます。 リソース グループを作成します。 リソース グループとは、Azure リソースのデプロイと管理に使用する論理コンテナーです。

    $RgName   = "MyResourceGroup"
    $Location = "westus"
    
    New-AzResourceGroup `
    -Name $RgName `
    -Location $Location
    
  4. リソース グループと同じ場所に、仮想ネットワーク (VNet) とサブネットを作成します。

    
    # Create a subnet configuration
    $SubnetConfig = New-AzVirtualNetworkSubnetConfig `
    -Name MySubnet `
    -AddressPrefix 10.0.0.0/24
    
    # Create a virtual network
    $VNet = New-AzVirtualNetwork `
    -ResourceGroupName $RgName `
    -Location $Location `
    -Name MyVNet `
    -AddressPrefix 10.0.0.0/16 `
    -Subnet $subnetConfig
    
    # Get the subnet object
    $Subnet = Get-AzVirtualNetworkSubnetConfig -Name $SubnetConfig.Name -VirtualNetwork $VNet
    
  5. ネットワーク セキュリティ グループ (NSG) と規則を作成します。 NSG は、受信と送信の規則を使用して VM をセキュリティで保護します。 この場合、受信規則はポート 3389 に作成され、受信リモート デスクトップ接続を許可します。

    
    # Create an inbound network security group rule for port 3389
    
    $NSGRule = New-AzNetworkSecurityRuleConfig `
    -Name MyNsgRuleRDP `
    -Protocol Tcp `
    -Direction Inbound `
    -Priority 1000 `
    -SourceAddressPrefix * `
    -SourcePortRange * `
    -DestinationAddressPrefix * `
    -DestinationPortRange 3389 -Access Allow
    
    # Create a network security group
    $NSG = New-AzNetworkSecurityGroup `
    -ResourceGroupName $RgName `
    -Location $Location `
    -Name MyNetworkSecurityGroup `
    -SecurityRules $NSGRule
    
  6. NIC のプライマリ IP 構成を定義します。 以前に定義した値を使用しなかった場合は、10.0.0.4 を作成済みのサブネットの有効なアドレスに変更します。 静的 IP アドレスを割り当てる前に、そのアドレスがまだ使用されていないことを確認しておくことをお勧めします。 Test-AzPrivateIPAddressAvailability -IPAddress 10.0.0.4 -VirtualNetwork $VNet コマンドを入力します。 このアドレスを使用できる場合、出力で True が返されます。 使用できない場合は、出力で False が返され、使用可能なアドレスの一覧が返されます。

    次のコマンドで、 <replace-with-your-unique-name> を使用する一意の DNS 名に置き換えます。 この名前は、Azure リージョン内のすべてのパブリック IP アドレス間で一意である必要があります。 これは省略可能なパラメーターです。 パブリック IP アドレスを使用して VM に接続するだけである場合は削除してかまいません。

    
    # Create a public IP address
    $PublicIP1 = New-AzPublicIpAddress `
    -Name "MyPublicIP1" `
    -ResourceGroupName $RgName `
    -Location $Location `
    -DomainNameLabel <replace-with-your-unique-name> `
    -AllocationMethod Static
    
    #Create an IP configuration with a static private IP address and assign the public IP address to it
    $IpConfigName1 = "IPConfig-1"
    $IpConfig1     = New-AzNetworkInterfaceIpConfig `
    -Name $IpConfigName1 `
    -Subnet $Subnet `
    -PrivateIpAddress 10.0.0.4 `
    -PublicIpAddress $PublicIP1 `
    -Primary
    

    NIC に複数の IP 構成を割り当てるときは、1 つの構成を -Primary として割り当てる必要があります。

    注意

    パブリック IP アドレスには、わずかな費用がかかります。 IP アドレスの料金の詳細については、「 IP アドレスの料金 」ページをご覧ください。 サブスクリプション内で使用できるパブリック IP アドレスの数には制限があります。 制限の詳細については、Azure の制限に関する記事をご覧ください。

  7. NIC のセカンダリ IP 構成を定義します。 構成は、必要に応じて追加または削除できます。 各 IP 構成には、プライベート IP アドレスが割り当てられている必要があります。 必要に応じて、各構成にパブリック IP アドレスを 1 つ割り当てることもできます。

    
    # Create a public IP address
    $PublicIP2 = New-AzPublicIpAddress `
    -Name "MyPublicIP2" `
    -ResourceGroupName $RgName `
    -Location $Location `
    -AllocationMethod Static
    
    #Create an IP configuration with a static private IP address and assign the public IP address to it
    $IpConfigName2 = "IPConfig-2"
    $IpConfig2     = New-AzNetworkInterfaceIpConfig `
    -Name $IpConfigName2 `
    -Subnet $Subnet `
    -PrivateIpAddress 10.0.0.5 `
    -PublicIpAddress $PublicIP2
    
    $IpConfigName3 = "IpConfig-3"
    $IpConfig3 = New-AzNetworkInterfaceIpConfig `
    -Name $IPConfigName3 `
    -Subnet $Subnet `
    -PrivateIpAddress 10.0.0.6
    
  8. NIC を作成し、3 つの IP 構成を関連付けます。

    $NIC = New-AzNetworkInterface `
    -Name MyNIC `
    -ResourceGroupName $RgName `
    -Location $Location `
    -NetworkSecurityGroupId $NSG.Id `
    -IpConfiguration $IpConfig1,$IpConfig2,$IpConfig3
    

    注意

    この記事では、すべての構成を 1 つの NIC に割り当てていますが、複数の IP 構成を VM に接続された各 NIC に割り当てることもできます。 複数の NIC が接続された VM の作成方法については、複数の NIC が接続された VM の作成に関する記事をご覧ください。

  9. 次のコマンドを入力して VM を作成します。

    
    # Define a credential object. When you run these commands, you're prompted to enter a username and password for the VM you're creating.
    $cred = Get-Credential
    
    # Create a virtual machine configuration
    $VmConfig = New-AzVMConfig `
    -VMName MyVM `
    -VMSize Standard_DS1_v2 | `
    Set-AzVMOperatingSystem -Windows `
    -ComputerName MyVM `
    -Credential $cred | `
    Set-AzVMSourceImage `
    -PublisherName MicrosoftWindowsServer `
    -Offer WindowsServer `
    -Skus 2016-Datacenter `
    -Version latest | `
    Add-AzVMNetworkInterface `
    -Id $NIC.Id
    
    # Create the VM
    New-AzVM `
    -ResourceGroupName $RgName `
    -Location $Location `
    -VM $VmConfig
    
  10. この記事の「VM オペレーティング システムに IP アドレスを追加する」に記載されたご使用のオペレーティング システム用の手順に従って、プライベート IP アドレスを VM オペレーティング システムに追加します。 オペレーティング システムにパブリック IP アドレスは追加しないでください。

VM に IP アドレスを追加する

プライベート IP アドレスとパブリック IP アドレスを Azure ネットワーク インターフェイスに追加するには、次の手順を実行します。 次のセクションの例では、この記事のシナリオで説明している 3 つの IP 構成を使用した VM を既に所有していることを前提としていますが、必須ではありません。

  1. PowerShell コマンド プロンプトを開き、1 つの PowerShell セッション内で、このセクションの残りの手順を完了します。 まだ PowerShell をインストール、構成していない場合は、「 Azure PowerShell のインストールと構成 」の手順を実行してください。

  2. 次の $ 変数の "値" を、IP アドレスを追加する NIC の名前、NIC が属するリソース グループ、NIC の場所に変更します。

    $NicName  = "MyNIC"
    $RgName   = "MyResourceGroup"
    $Location = "westus"
    

    変更する NIC の名前がわからない場合は、次のコマンドを入力してから、前述の変数の値を変更します。

    Get-AzNetworkInterface | Format-Table Name, ResourceGroupName, Location
    
  3. 変数を作成し、次のコマンドを入力して、既存の NIC に設定します。

    $MyNIC = Get-AzNetworkInterface -Name $NicName -ResourceGroupName $RgName
    
  4. 次のコマンドで、MyVNetMySubnet を VNet の名前と NIC の接続先のサブネットの名前にそれぞれ変更します。 VNet オブジェクトと NIC の接続先のサブネット オブジェクトを取得するコマンドを入力します。

    $MyVNet = Get-AzVirtualnetwork -Name MyVNet -ResourceGroupName $RgName
    $Subnet = $MyVnet.Subnets | Where-Object { $_.Name -eq "MySubnet" }
    

    VNet 名または NIC の接続先のサブネット名がわからない場合は、次のコマンドを入力します。

    $MyNIC.IpConfigurations
    

    出力で、次の出力例のようなテキストを探します。

    "Id": "/subscriptions/[Id]/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/MyVNet/subnets/MySubnet"
    

    この出力では、MyVnet が VNet、MySubnet が NIC の接続先のサブネットです。

  5. 要件に基づいて、以下のいずれかのセクションの手順を実行します。

    プライベート IP アドレスを追加する

    NIC にプライベート IP アドレスを追加するには、IP 構成を作成する必要があります。 次のコマンドでは、静的 IP アドレス 10.0.0.7 が割り当てられた構成を作成します。 静的 IP アドレスを指定するときは、サブネットの未使用のアドレスを指定する必要があります。 まず Test-AzPrivateIPAddressAvailability -IPAddress 10.0.0.7 -VirtualNetwork $myVnet コマンドを入力してアドレスをテストし、このアドレスが使用可能かどうかを確認することをお勧めします。 この IP アドレスを使用できる場合、出力で True が返されます。 使用できない場合は、出力で False が返され、使用可能なアドレスの一覧が返されます。

    Add-AzNetworkInterfaceIpConfig -Name IPConfig-4 -NetworkInterface `
    $MyNIC -Subnet $Subnet -PrivateIpAddress 10.0.0.7
    

    一意の構成名とプライベート IP アドレス (静的 IP アドレスを使用する構成の場合) を使用して、必要な数だけ構成を作成します。

    この記事の「VM オペレーティング システムに IP アドレスを追加する」に記載された、お使いのオペレーティング システム用の手順に従って、プライベート IP アドレスを VM オペレーティング システムに追加します。

    パブリック IP アドレスを追加する

    パブリック IP アドレスを追加するには、新しい IP 構成または既存の IP 構成にパブリック IP アドレス リソースを関連付けます。 必要に応じて、以下のいずれかのセクションの手順を実行します。

    注意

    パブリック IP アドレスには、わずかな費用がかかります。 IP アドレスの料金の詳細については、「 IP アドレスの料金 」ページをご覧ください。 サブスクリプション内で使用できるパブリック IP アドレスの数には制限があります。 制限の詳細については、Azure の制限に関する記事をご覧ください。

    パブリック IP アドレス リソースを新しい IP 構成に関連付ける

    すべての IP 構成にプライベート IP アドレスが必要であるため、パブリック IP アドレスを新しい IP 構成に追加するときは、必ずプライベート IP アドレスも追加する必要があります。 既存のパブリック IP アドレス リソースを追加することも、新しいリソースを作成することもできます。 新しいパブリック IP アドレス リソースを作成するには、次のコマンドを入力します。

    $myPublicIp3 = New-AzPublicIpAddress `
    -Name "myPublicIp3" `
    -ResourceGroupName $RgName `
    -Location $Location `
    -AllocationMethod Static
    

    静的プライベート IP アドレスと、関連付けられた myPublicIp3 パブリック IP アドレス リソースで新しい IP 構成を作成するには、次のコマンドを入力します。

    Add-AzNetworkInterfaceIpConfig `
    -Name IPConfig-4 `
    -NetworkInterface $myNIC `
    -Subnet $Subnet `
    -PrivateIpAddress 10.0.0.7 `
    -PublicIpAddress $myPublicIp3
    

    パブリック IP アドレス リソースを既存の IP 構成に関連付ける

    パブリック IP アドレス リソースは、このリソースがまだ関連付けられていない IP 構成にのみ関連付けることができます。 IP 構成にパブリック IP アドレスが関連付けられているかどうかを確認するには、次のコマンドを入力します。

    $MyNIC.IpConfigurations | Format-Table Name, PrivateIPAddress, PublicIPAddress, Primary
    

    次のような出力が表示されます。

    Name       PrivateIpAddress PublicIpAddress                                           Primary
    
    IPConfig-1 10.0.0.4         Microsoft.Azure.Commands.Network.Models.PSPublicIpAddress    True
    IPConfig-2 10.0.0.5         Microsoft.Azure.Commands.Network.Models.PSPublicIpAddress   False
    IpConfig-3 10.0.0.6                                                                     False
    

    IpConfig-3PublicIpAddress 列が空白であるため、現在、この構成にはパブリック IP アドレス リソースは関連付けられていません。 IpConfig-3 に既存のパブリック IP アドレス リソースを追加することも、次のコマンドを入力して新しいリソースを作成することもできます。

    $MyPublicIp3 = New-AzPublicIpAddress `
    -Name "MyPublicIp3" `
    -ResourceGroupName $RgName `
    -Location $Location -AllocationMethod Static
    

    パブリック IP アドレス リソースを、IPConfig-3 という名前の既存の IP 構成に関連付けるには、次のコマンドを入力します。

    Set-AzNetworkInterfaceIpConfig `
    -Name IpConfig-3 `
    -NetworkInterface $mynic `
    -Subnet $Subnet `
    -PublicIpAddress $myPublicIp3
    
  6. 次のコマンドを入力して、新しい IP 構成で NIC を設定します。

    Set-AzNetworkInterface -NetworkInterface $MyNIC
    
  7. 次のコマンドを入力して、NIC に割り当てられたプライベート IP アドレスとパブリック IP アドレス リソースを表示します。

    $MyNIC.IpConfigurations | Format-Table Name, PrivateIPAddress, PublicIPAddress, Primary
    
  8. この記事の「VM オペレーティング システムに IP アドレスを追加する」に記載された、お使いのオペレーティング システム用の手順に従って、プライベート IP アドレスを VM オペレーティング システムに追加します。 オペレーティング システムにパブリック IP アドレスは追加しないでください。

VM オペレーティング システムに IP アドレスを追加する

複数のプライベート IP アドレスを構成して作成した VM に接続し、サインインします。 VM に追加したプライベート IP アドレスは、プライマリも含め、すべて手動で追加する必要があります。 お使いの VM オペレーティング システムに応じて手順を実行します。

Windows Server

expand
  1. コマンド プロンプトで、「 ipconfig /all」と入力します。 プライマリ の IP アドレス (DHCP 経由) のみを表示できます。

  2. コマンド プロンプトで「ncpa.cpl」と入力して、 [ネットワーク接続] ウィンドウを開きます。

  3. 適切なアダプターのプロパティを開きます: イーサネット

  4. インターネット プロトコル バージョン 4 (IPv4) をダブルクリックします。

  5. [次の IP アドレスを使う] を選択して、次の値を入力します。

    • IP アドレス: "プライマリ" のプライベート IP アドレスを入力します

    • [サブネット マスク] : 自分のサブネットに基づいて設定します。 たとえば、たとえば、サブネットが/24 サブネットであれば、サブネット マスクは 255.255.255.0 になります。

    • [デフォルト ゲートウェイ] : サブネット内の最初の IP アドレスです。 サブネットが 10.0.0.0/24 の場合、ゲートウェイの IP アドレスは 10.0.0.1 になります。

    • [次の DNS サーバーのアドレスを使う] を選択して、次の値を入力します。

      • [優先 DNS サーバー] : 独自の DNS サーバーを使用していない場合は、「168.63.129.16」と入力します。 独自の DNS サーバーを使用している場合は、そのサーバーの IP アドレスを入力します。 (代替 DNS サーバーの場合、任意の無料パブリック DNS サーバー アドレスを選択できます)
    • [詳細] ボタンを選択して、他の IP アドレスを追加します。 前の手順で Azure ネットワーク インターフェイスに追加した、各セカンダリ プライベート IP アドレスを、Azure ネットワーク インターフェイスに割り当てられたプライマリ IP アドレスが割り当てられている Windows ネットワーク インターフェイスに追加します。

      仮想マシンのオペレーティング システム内で Azure の仮想マシンに割り当てられているパブリック IP アドレスを手動で割り当てないでください。 オペレーティング システム内で IP アドレスを手動で設定する場合は、Azure ネットワーク インターフェイスに割り当てられているプライベート IP アドレスと同じアドレスであることを確認してください。そうしないと、仮想マシンへの接続が失われる可能性があります。 詳細については、プライベート IP アドレス設定に関するページを参照してください。 オペレーティング システム内で Azure パブリック IP アドレスを割り当てないでください。

    • [OK] をクリックして TCP/IP 設定を閉じ、もう一度 [OK] をクリックしてアダプター設定を閉じます。 これで RDP 接続が再確立されます。

  6. コマンド プロンプトで、「 ipconfig /all」と入力します。 追加したすべての IP アドレスが表示されており、DHCP がオフになっていることを確認します。

  7. Azure のプライマリ IP 構成のプライベート IP アドレスが、Windows 用プライマリ IP アドレスとして使用されるように Windows を構成します。 詳細については、「No Internet access from Azure Windows VM that has multiple IP addresses (複数の IP アドレスを持つ Azure Windows VM からインターネット アクセスできない)」を参照してください。

検証 (Windows Server)

関連付けたパブリック IP を使用してセカンダリ IP 構成からインターネットに接続できることを確認するには、上記の手順を使用してパブリック IP を正しく追加した後で、次のコマンドを使用します (10.0.0.7 をセカンダリ プライベート IP アドレスに変更します)。

ping -S 10.0.0.7 outlook.com

注意

セカンダリ IP 構成でインターネットに ping を実行できるのは、その構成にパブリック IP アドレスが関連付けられている場合だけです。 プライマリ IP 構成では、インターネットに ping を実行するためにパブリック IP アドレスは必要ありません。

Linux (Ubuntu 14/16)

expand Linux ディストリビューションの最新ドキュメントを調べることをお勧めします。
  1. ターミナル ウィンドウを開きます。

  2. 自身がルート ユーザーになっていることを確認します。 ルート ユーザーでない場合は、次のコマンドを入力します。

    sudo -i
    
  3. ネットワーク インターフェイスの構成ファイルを更新します (‘eth0’ と仮定)。

    • DHCP の既存の行アイテムを保持します。 プライマリ IP アドレスが以前と同じ構成のまま維持されます。

    • 次のコマンドを使用して、追加の静的 IP アドレスの構成を追加します。

      cd /etc/network/interfaces.d/
      ls
      

      .cfg ファイルが表示されます。

  4. ファイル を開きます。 ファイルの末尾に次の行が表示されます。

    auto eth0
    iface eth0 inet dhcp
    
  5. このファイルの行の最後に、次の行を追加します。

    iface eth0 inet static
    address <your private IP address here>
    netmask <your subnet mask>
    
  6. 次のコマンドを使用して、ファイルの内容を保存します。

    :wq
    
  7. 次のコマンドを使用して、ネットワーク インターフェイスをリセットします。

    sudo ifdown eth0 && sudo ifup eth0
    

    重要

    リモート接続を使用する場合は、同じ行で ifdown と ifup の両方を実行します。

  8. 次のコマンドを使用して、IP アドレスがネットワーク インターフェイスに追加されたことを確認します。

    ip addr list eth0
    

    追加した IP アドレスが、リストの一部として表示されます。

検証 (Ubuntu 14/16)

関連付けたパブリック IP を使用してセカンダリ IP 構成からインターネットに接続できることを確認するには、次のコマンドを使用します。

ping -I 10.0.0.5 outlook.com

注意

セカンダリ IP 構成でインターネットに ping を実行できるのは、その構成にパブリック IP アドレスが関連付けられている場合だけです。 プライマリ IP 構成では、インターネットに ping を実行するためにパブリック IP アドレスは必要ありません。

Linux VM の場合、セカンダリ NIC からの送信接続を検証しようとしたときに、適切なルートの追加が必要になることがあります。 これを行うには多くの方法があります。 Linux ディストリビューションに応じて適切なドキュメントを参照してください。 これを行う方法の 1 つを以下に示します。

echo 150 custom >> /etc/iproute2/rt_tables 

ip rule add from 10.0.0.5 lookup custom
ip route add default via 10.0.0.1 dev eth2 table custom

  • 必ず以下の置き換えを行ってください。
    • 10.0.0.5 を、パブリック IP アドレスが関連付けられているプライベート IP アドレスに
    • 10.0.0.1 をデフォルト ゲートウェイに
    • eth2 をセカンダリ NIC の名前に

Linux (Ubuntu 18.04+)

expand OS ネットワーク管理のために、Ubuntu 18.04 以降が `netplan` に変更されました。 Linux ディストリビューションの最新ドキュメントを調べることをお勧めします。
  1. ターミナル ウィンドウを開きます。

  2. 自身がルート ユーザーになっていることを確認します。 ルート ユーザーでない場合は、次のコマンドを入力します。

    sudo -i
    
  3. 2 番目のインターフェイス用のファイルを作成し、テキスト エディターでファイルを開きます。

    vi /etc/netplan/60-static.yaml
    
  4. 次の行をファイルに追加し、10.0.0.6/24 を実際の IP/ネットマスクに置き換えます。

    network:
        version: 2
        ethernets:
            eth0:
                addresses:
                    - 10.0.0.6/24
    
  5. 次のコマンドを使用して、ファイルの内容を保存します。

    :wq
    
  6. netplan try を使用して変更をテストし、構文を確認します。

    netplan try
    

注意

netplan try は変更を一時的に適用し、120 秒後に変更をロールバックします。 接続が切断された場合は、120 秒待ってから再接続してください。 その時点で、変更はロールバックされています。

  1. netplan try に問題がないと仮定し、構成変更を適用します。

    netplan apply
    
  2. 次のコマンドを使用して、IP アドレスがネットワーク インターフェイスに追加されたことを確認します。

    ip addr list eth0
    

    追加した IP アドレスが、リストの一部として表示されます。 例:

    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:8c:14:a5 brd ff:ff:ff:ff:ff:ff
        inet 10.0.0.6/24 brd 10.0.0.255 scope global eth0
        valid_lft forever preferred_lft forever
        inet 10.0.0.4/24 brd 10.0.0.255 scope global secondary eth0
        valid_lft forever preferred_lft forever
        inet6 fe80::20d:3aff:fe8c:14a5/64 scope link
        valid_lft forever preferred_lft forever
    

検証 (Ubuntu 18.04+)

関連付けたパブリック IP を使用してセカンダリ IP 構成からインターネットに接続できることを確認するには、次のコマンドを使用します。

ping -I 10.0.0.5 outlook.com

注意

セカンダリ IP 構成でインターネットに ping を実行できるのは、その構成にパブリック IP アドレスが関連付けられている場合だけです。 プライマリ IP 構成では、インターネットに ping を実行するためにパブリック IP アドレスは必要ありません。

Linux VM の場合、セカンダリ NIC からの送信接続を検証しようとしたときに、適切なルートの追加が必要になることがあります。 これを行うには多くの方法があります。 Linux ディストリビューションに応じて適切なドキュメントを参照してください。 これを行う方法の 1 つを以下に示します。

echo 150 custom >> /etc/iproute2/rt_tables 

ip rule add from 10.0.0.5 lookup custom
ip route add default via 10.0.0.1 dev eth2 table custom

  • 必ず以下の置き換えを行ってください。
    • 10.0.0.5 を、パブリック IP アドレスが関連付けられているプライベート IP アドレスに
    • 10.0.0.1 をデフォルト ゲートウェイに
    • eth2 をセカンダリ NIC の名前に

Linux (Red Hat、CentOS、その他)

expand
  1. ターミナル ウィンドウを開きます。

  2. 自身がルート ユーザーになっていることを確認します。 ルート ユーザーでない場合は、次のコマンドを入力します。

    sudo -i
    
  3. パスワードを入力し、画面の指示に従います。 ルート ユーザーになったら、次のコマンドを使用して、ネットワーク スクリプト フォルダーに移動します。

    cd /etc/sysconfig/network-scripts
    
  4. 次のコマンドを使用して、関連する ifcfg ファイルをリストアップします。

    ls ifcfg-*
    

    ファイルのうちの 1 つに ifcfg-eth0 があります。

  5. IP アドレスを追加するには、次のように構成ファイルを作成します。 IP 構成ごとに 1 つのファイルを作成する必要があることに注意してください。

    touch ifcfg-eth0:0
    
  6. 次のコマンドを使って、ifcfg-eth0:0 ファイルを開きます。

    vi ifcfg-eth0:0
    
  7. 次のコマンドを使って、ファイルに内容 (ここでは eth0:0) を追加します。 目的の IP アドレスに基づいて情報を更新してください。

    DEVICE=eth0:0
    BOOTPROTO=static
    ONBOOT=yes
    IPADDR=192.168.101.101
    NETMASK=255.255.255.0
    
  8. 次のコマンドを使用して、ファイルの内容を保存します。

    :wq
    
  9. ネットワーク サービスを再起動し、次のコマンドを実行して、変更が成功したかどうかを確認します。

    /etc/init.d/network restart
    ifconfig
    

    返されるリストに、追加した IP アドレス「 eth0:0」が表示されることを確認します。

検証 (Red Hat、CentOS、その他)

関連付けたパブリック IP を使用してセカンダリ IP 構成からインターネットに接続できることを確認するには、次のコマンドを使用します。

ping -I 10.0.0.5 outlook.com

注意

セカンダリ IP 構成でインターネットに ping を実行できるのは、その構成にパブリック IP アドレスが関連付けられている場合だけです。 プライマリ IP 構成では、インターネットに ping を実行するためにパブリック IP アドレスは必要ありません。

Linux VM の場合、セカンダリ NIC からの送信接続を検証しようとしたときに、適切なルートの追加が必要になることがあります。 これを行うには多くの方法があります。 Linux ディストリビューションに応じて適切なドキュメントを参照してください。 これを行う方法の 1 つを以下に示します。

echo 150 custom >> /etc/iproute2/rt_tables 

ip rule add from 10.0.0.5 lookup custom
ip route add default via 10.0.0.1 dev eth2 table custom

  • 必ず以下の置き換えを行ってください。
    • 10.0.0.5 を、パブリック IP アドレスが関連付けられているプライベート IP アドレスに
    • 10.0.0.1 をデフォルト ゲートウェイに
    • eth2 をセカンダリ NIC の名前に