Azure 仮想マシン (VM) には、1 つ以上のネットワーク インターフェイス (NIC) がアタッチされています。 NIC には、1 つ以上の静的または動的パブリックおよびプライベート IP アドレスを割り当てることができます。
VM に複数の IP アドレスを割り当てると、次のことが可能になります。
異なる IP アドレスと TLS/SSL 証明書を持つ複数のウェブサイトやサービスを、1 つのサーバーでホストする。
ファイアウォールやロード バランサーのような、ネットワーク仮想アプライアンスとして機能する。
複数の NIC いずれかの複数のプライベート IP アドレスいずれかを Azure Load Balancer のバックエンド プールに追加する。 以前は、プライマリ NIC のプライマリ IP アドレスのみをバックエンド プールに追加できました。 複数の IP 構成の負荷分散方法の詳細については、複数の IP 構成の負荷分散に関する記事を参照してください。
VM に接続された各 NIC には、1 つ以上の IP 構成が関連付けられています。 各構成には、1 つの静的または動的プライベート IP アドレスが割り当てられています。 また、1 つのパブリック IP アドレス リソースが関連付けられている場合もあります。 Azure での IP アドレスの詳細については、Azure 内の IP アドレスに関するページを参照してください。
Note
1 つの NIC 上のすべての IP 構成は、同じサブネットに関連付けられている必要があります。 異なるサブネット上の複数の IP が必要な場合は、VM 上の複数の NIC を使用できます。 Azure での VM 上の複数の NIC の詳細については、NIC が複数ある VM の作成に関するページを参照してください。
NIC に割り当てることができるプライベート IP アドレスの数には上限があります。 また、Azure サブスクリプションで使用できるパブリック IP アドレスの数にも上限があります。 詳細については、 Azure の制限に関する 記事を参照してください。
この記事では、PowerShell を使用して、仮想マシンに複数の IP アドレスを追加する方法を説明します。
Prerequisites
アクティブなサブスクリプションが含まれる Azure アカウント。 無料でアカウントを作成できます。
Azure Cloud Shell またはローカルにインストールされている Azure PowerShell の PowerShell 環境。 Azure Cloud Shell での PowerShell の使用の詳細については、「Azure Cloud Shell クイックスタート」を参照してください。
- PowerShell をインストールしてローカルで使用する場合、この記事では Azure PowerShell モジュール バージョン 5.4.1 以降が必要になります。 インストールされているバージョンを確認するには、
Get-InstalledModule -Name Azを実行します。 アップグレードする必要がある場合は、Azure PowerShell モジュールのインストールに関するページを参照してください。 Az.Network モジュールが 4.3.0 以降であることを確認します。 インストールされているモジュールを確認するには、コマンドGet-InstalledModule -Name "Az.Network"を使用します。 モジュールの更新が必要な場合は、必要に応じてUpdate-Module -Name "Az.Network"コマンドを使用します。
- PowerShell をインストールしてローカルで使用する場合、この記事では Azure PowerShell モジュール バージョン 5.4.1 以降が必要になります。 インストールされているバージョンを確認するには、
Azure PowerShell にサインインし、この機能を使用するサブスクリプションが選択されていることを確認します。 詳細については、「Azure PowerShell を使用してサインインする」を参照してください。
Note
この記事の手順では、すべての IP 構成を 1 つの NIC に割り当てていますが、複数の IP 構成を複数の NIC を持つ VM の任意の NIC に割り当てることもできます。 複数の NIC を持つ VM の作成方法については、「複数 NIC を持つ VM の作成」を参照してください。
"図: このハウツー記事で作成されたネットワーク構成リソースの図。"
リソース グループを作成する
Azure リソース グループとは、Azure リソースのデプロイと管理に使用する論理コンテナーです。
eastus2 の場所に myResourceGroup という名前の New-AzResourceGroup を使用してリソース グループを作成します。
$rg =@{
Name = 'myResourceGroup'
Location = 'eastus2'
}
New-AzResourceGroup @rg
仮想ネットワークの作成
このセクションでは、仮想マシン用の仮想ネットワークを作成します。
New-AzVirtualNetwork と New-AzVirtualNetworkSubnetConfig を使用して、1 つのサブネットを持つ仮想ネットワークを作成します。
## Create backend subnet config ##
$subnet = @{
Name = 'myBackendSubnet'
AddressPrefix = '10.1.0.0/24'
}
$subnetConfig = New-AzVirtualNetworkSubnetConfig @subnet
## Create the virtual network ##
$vnet = @{
Name = 'myVNet'
ResourceGroupName = 'myResourceGroup'
Location = 'eastus2'
AddressPrefix = '10.1.0.0/16'
Subnet = $subnetConfig
}
New-AzVirtualNetwork @vnet
プライマリ パブリック IP アドレスを作成する
New-AzPublicIpAddress を使用して、プライマリ パブリック IP アドレスを作成します。
$ip1 = @{
Name = 'myPublicIP-1'
ResourceGroupName = 'myResourceGroup'
Location = 'eastus2'
Sku = 'Standard'
AllocationMethod = 'Static'
IpAddressVersion = 'IPv4'
Zone = 1,2,3
}
New-AzPublicIpAddress @ip1
ネットワーク セキュリティ グループの作成
このセクションでは、仮想マシンと仮想ネットワークのネットワーク セキュリティ グループを作成します。 SSH に対してポート 22 上で仮想マシンへの接続を許可する規則を作成します。
New-AzNetworkSecurityGroup と New-AzNetworkSecurityRuleConfig を使用して、ネットワーク セキュリティ グループと規則を作成します。
## Create rule for network security group and place in variable. ##
$nsgrule1 = @{
Name = 'myNSGRuleSSH'
Description = 'Allow SSH'
Protocol = '*'
SourcePortRange = '*'
DestinationPortRange = '22'
SourceAddressPrefix = 'Internet'
DestinationAddressPrefix = '*'
Access = 'Allow'
Priority = '200'
Direction = 'Inbound'
}
$rule1 = New-AzNetworkSecurityRuleConfig @nsgrule1
## Create network security group ##
$nsg = @{
Name = 'myNSG'
ResourceGroupName = 'myResourceGroup'
Location = 'eastus2'
SecurityRules = $rule1
}
New-AzNetworkSecurityGroup @nsg
ネットワーク インターフェイスの作成
New-AzNetworkInterface と New-AzNetworkInterfaceIpConfig を使用して、仮想マシンのネットワーク インターフェイス (NIC) を作成します。 以前に作成したパブリック IP アドレスとネットワーク セキュリティ グループは、ネットワーク インターフェイスに関連付けられています。 ネットワーク インターフェイスは、前に作成した仮想ネットワークに接続されています。
## Place the virtual network into a variable. ##
$net = @{
Name = 'myVNet'
ResourceGroupName = 'myResourceGroup'
}
$vnet = Get-AzVirtualNetwork @net
## Place the network security group into a variable. ##
$ns = @{
Name = 'myNSG'
ResourceGroupName = 'myResourceGroup'
}
$nsg = Get-AzNetworkSecurityGroup @ns
## Place the primary public IP address into a variable. ##
$pub1 = @{
Name = 'myPublicIP-1'
ResourceGroupName = 'myResourceGroup'
}
$pubIP1 = Get-AzPublicIPAddress @pub1
## Create a primary IP configuration for the network interface. ##
$IP1 = @{
Name = 'ipconfig1'
Subnet = $vnet.Subnets[0]
PrivateIpAddressVersion = 'IPv4'
PublicIPAddress = $pubIP1
}
$IP1Config = New-AzNetworkInterfaceIpConfig @IP1 -Primary
## Create a secondary IP configuration for the network interface. ##
$IP3 = @{
Name = 'ipconfig3'
Subnet = $vnet.Subnets[0]
PrivateIpAddressVersion = 'IPv4'
PrivateIpAddress = '10.1.0.6'
}
$IP3Config = New-AzNetworkInterfaceIpConfig @IP3
## Command to create a network interface. ##
$nic = @{
Name = 'myNIC1'
ResourceGroupName = 'myResourceGroup'
Location = 'eastus2'
NetworkSecurityGroup = $nsg
IpConfiguration = $IP1Config,$IP3Config
}
New-AzNetworkInterface @nic
Note
静的 IP アドレスを追加するときは、NIC が接続されているサブネット上に未使用の有効なアドレスを指定する必要があります。
仮想マシンの作成
次のコマンドを使用して、仮想マシンを作成します。
$cred = Get-Credential
## Place network interface into a variable. ##
$nic = @{
Name = 'myNIC1'
ResourceGroupName = 'myResourceGroup'
}
$nicVM = Get-AzNetworkInterface @nic
## Create a virtual machine configuration for VMs ##
$vmsz = @{
VMName = 'myVM'
VMSize = 'Standard_DS1_v2'
}
$vmos = @{
ComputerName = 'myVM'
Credential = $cred
}
$vmimage = @{
PublisherName = 'Debian'
Offer = 'debian-11'
Skus = '11'
Version = 'latest'
}
$vmConfig = New-AzVMConfig @vmsz `
| Set-AzVMOperatingSystem @vmos -Linux `
| Set-AzVMSourceImage @vmimage `
| Add-AzVMNetworkInterface -Id $nicVM.Id
## Create the virtual machine for VMs ##
$vm = @{
ResourceGroupName = 'myResourceGroup'
Location = 'eastus2'
VM = $vmConfig
SshKeyName = 'mySSHKey'
}
New-AzVM @vm -GenerateSshKey
セカンダリ プライベート IP アドレスとパブリック IP アドレスを追加する
New-AzPublicIpAddress を使用して、セカンダリ パブリック IP アドレスを作成します。
$ip2 = @{
Name = 'myPublicIP-2'
ResourceGroupName = 'myResourceGroup'
Location = 'eastus2'
Sku = 'Standard'
AllocationMethod = 'Static'
IpAddressVersion = 'IPv4'
Zone = 1,2,3
}
New-AzPublicIpAddress @ip2
New-AzNetworkInterfaceIpConfig を使用して、仮想マシンのセカンダリ IP 構成を作成します。
## Place the virtual network into a variable. ##
$net = @{
Name = 'myVNet'
ResourceGroupName = 'myResourceGroup'
}
$vnet = Get-AzVirtualNetwork @net
## Place your virtual network subnet into a variable. ##
$sub = @{
Name = 'myBackendSubnet'
VirtualNetwork = $vnet
}
$subnet = Get-AzVirtualNetworkSubnetConfig @sub
## Place the secondary public IP address you created previously into a variable. ##
$pip = @{
Name = 'myPublicIP-2'
ResourceGroupName = 'myResourceGroup'
}
$pubIP2 = Get-AzPublicIPAddress @pip
## Place the network interface into a variable. ##
$net = @{
Name = 'myNIC1'
ResourceGroupName = 'myResourceGroup'
}
$nic = Get-AzNetworkInterface @net
## Create a secondary IP configuration for the network interface. ##
$IPc2 = @{
Name = 'ipconfig2'
Subnet = $vnet.Subnets[0]
PrivateIpAddressVersion = 'IPv4'
PrivateIpAddress = '10.1.0.5'
PublicIPAddress = $pubIP2
}
$IP2Config = New-AzNetworkInterfaceIpConfig @IPc2
## Add the IP configuration to the network interface. ##
$nic.IpConfigurations.Add($IP2Config)
## Save the configuration to the network interface. ##
$nic | Set-AzNetworkInterface
VM オペレーティング システムに IP アドレスを追加する
複数のプライベート IP アドレスを構成して作成した VM に接続し、サインインします。 VM に追加したプライベート IP アドレスは、プライマリも含め、すべて手動で追加する必要があります。 お使いの VM オペレーティング システムに応じて、次の手順を実行します。
Windows Server
展開
コマンド プロンプトまたは PowerShell を開きます。
コマンド ラインで「
ipconfig /all」を入力します。 DHCP によって割り当てられた プライマリ プライベート IP アドレスが表示されます。コマンド ラインに「
ncpa.cpl」と入力して、 ネットワーク接続 の構成を開きます。新しい IP アドレスが割り当てられているネットワーク アダプターの プロパティ を開きます。
[インターネット プロトコル バージョン 4 (TCP/IPv4)] をダブルクリックします。
[次の IP アドレスを使用する:] をクリックします。 次の値を入力します。
Setting Value IPアドレス: プライマリ プライベート IP アドレスを入力します。 サブネット マスク: IP アドレスに基づいてサブネット マスクを入力します。
たとえば、サブネットが /24 サブネットの場合、サブネット マスクは 255.255.255.0 になります。既定のゲートウェイ: サブネット内の最初の IP アドレスです。
サブネットが 10.0.0.0/24 の場合、ゲートウェイの IP アドレスは 10.0.0.1 です。[次の DNS サーバーのアドレスを使用する:] を選択します。 次の値を入力します。
Setting Value 優先 DNS サーバー: プライマリ DNS サーバーを入力します。
既定の Azure で提供される DNS を使用するには、 168.63.129.16 の IP アドレスを入力します。[ 詳細設定 ] ボタンを選択します。
[] を選択し、[] を追加します。
Azure ネットワーク インターフェイスに追加したプライベート IP アドレス を入力します。 対応する サブネット マスクを入力します。 [] を選択し、[] を追加します。
前の手順を繰り返して、Azure ネットワーク インターフェイスに追加したプライベート IP アドレスを追加します。
Important
仮想マシンのオペレーティング システム内で Azure の仮想マシンに割り当てられているパブリック IP アドレスを手動で割り当てないでください。 オペレーティング システム内で IP アドレスを手動で設定する場合は、Azure ネットワーク インターフェイスに割り当てられているプライベート IP アドレスと同じアドレスであることを確認してください。 アドレスを正しく割り当てないと、仮想マシンへの接続が失われるおそれがあります。 詳細については、「IP アドレス設定を変更する」を参照してください。
プライベート IP アドレスの詳細については、プライベート IP アドレスに関する記事を参照してください。
[ OK] を 選択して、セカンダリ IP アドレスの設定を閉じます。
[ OK] を 選択してアダプターの設定を閉じます。 RDP 接続が再確立されます。
コマンド プロンプトまたは PowerShell を開きます。
コマンド ラインで「
ipconfig /all」を入力します。プライマリとセカンダリのプライベート IP アドレスが構成に存在することを確認します。
PS C:\Users\azureuser> ipconfig /all Windows IP Configuration Host Name . . . . . . . . . . . . : myVM Primary Dns Suffix . . . . . . . : Node Type . . . . . . . . . . . . : Hybrid IP Routing Enabled. . . . . . . . : No WINS Proxy Enabled. . . . . . . . : No Ethernet adapter Ethernet: Connection-specific DNS Suffix . : Description . . . . . . . . . . . : Microsoft Hyper-V Network Adapter Physical Address. . . . . . . . . : 00-0D-3A-E6-CE-A3 DHCP Enabled. . . . . . . . . . . : No Autoconfiguration Enabled . . . . : Yes Link-local IPv6 Address . . . . . : fe80::a8d1:11d5:3ab2:6a51%5(Preferred) IPv4 Address. . . . . . . . . . . : 10.1.0.4(Preferred) Subnet Mask . . . . . . . . . . . : 255.255.255.0 IPv4 Address. . . . . . . . . . . : 10.1.0.5(Preferred) Subnet Mask . . . . . . . . . . . : 255.255.255.0 IPv4 Address. . . . . . . . . . . : 10.1.0.6(Preferred) Subnet Mask . . . . . . . . . . . : 255.255.255.0 Default Gateway . . . . . . . . . : 10.1.0.1 DHCPv6 IAID . . . . . . . . . . . : 100666682 DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-2A-A8-26-B1-00-0D-3A-E6-CE-A3 DNS Servers . . . . . . . . . . . : 168.63.129.16 NetBIOS over Tcpip. . . . . . . . : EnabledWindows で使用されるプライマリ プライベート IP アドレスが、Azure VM ネットワーク インターフェイスのプライマリ IP アドレスと同じであることを確認します。 詳細については、「複数の IP アドレスを持つ Azure Windows VM からのインターネット アクセスなし」を参照してください。
検証 (Windows Server)
パブリック IP 経由でセカンダリ IP 構成からのインターネット接続を確認するには、次のコマンドを使用します。 10.1.0.5 を、Azure VM ネットワーク インターフェイスに追加したセカンダリ プライベート IP アドレスに置き換えます。
ping -S 10.1.0.5 outlook.com
Note
セカンダリ IP 構成でインターネットに ping を実行できるのは、その構成にパブリック IP アドレスが関連付けられている場合です。 プライマリ IP 構成では、インターネットに ping を実行するためにパブリック IP アドレスは必要ありません。
SUSE Linux Enterprise および openSUSE
展開
SUSE ベースのディストリビューションでは、cloud-netconfig パッケージのcloud-netconfig-azure プラグインを使用して IP 構成を管理します。 管理者側では手動の手順は必要ありません。 プラットフォームで設定されたインターフェイスの最初の IP アドレスは、DHCP 経由で割り当てられます。 cloud-netconfig プラグインは、インターフェイスに割り当てられたより多くの IP アドレスを Azure Instance Metadata Service API に継続的に (1 分に 1 回) プローブし、セカンダリ IP アドレスとして自動的に追加または削除します。
このプラグインは、既定で新しいイメージにインストールされ、有効になっているはずです。 古いワークロードの構成手順については、次を参照してください: https://www.suse.com/c/multi-nic-cloud-netconfig-ec2-azure/。
Ubuntu 14/16
展開
Linux ディストリビューションの最新ドキュメントを調べることをお勧めします。
ターミナル ウィンドウを開きます。
自身がルート ユーザーになっていることを確認します。 そうでない場合は、次のコマンドを入力します。
sudo -iネットワーク インターフェイスの構成ファイルを更新します ( 'eth0' を想定)。
DHCP の既存の行アイテムを保持します。 プライマリ IP アドレスが以前と同じ構成のまま維持されます。
次のコマンドを使用して、別の静的 IP アドレスの構成を追加します。
cd /etc/network/interfaces.d/ ls.cfg ファイルが表示されます。
ファイル を開きます。 ファイルの末尾に次の行が表示されます。
auto eth0 iface eth0 inet dhcpファイルの行の最後に、次の行を追加します。
10.1.0.5を自分のプライベート IP アドレスとサブネット マスクに置き換えます。iface eth0 inet static address 10.1.0.5 netmask 255.255.255.0他のプライベート IP アドレスを追加するには、ファイルを編集し、後続の行に新しいプライベート IP アドレスを追加します。
iface eth0 inet static address 10.1.0.5 netmask 255.255.255.0 iface eth0 inet static address 10.1.0.6 netmask 255.255.255.0次のコマンドを使用して、ファイルの内容を保存します。
:wq次のコマンドを使用して、ネットワーク インターフェイスをリセットします。
ifdown eth0 && ifup eth0Important
リモート接続を使用する場合は、同じ行で ifdown と ifup の両方を実行します。
次のコマンドを使用して、IP アドレスがネットワーク インターフェイスに追加されたことを確認します。
ip addr list eth0追加した IP アドレスが、リストの一部として表示されます。 Example:
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 00:0d:3a:04:45:16 brd ff:ff:ff:ff:ff:ff inet 10.1.0.5/24 brd 10.1.0.255 scope global eth0 valid_lft forever preferred_lft forever inet 10.1.0.6/24 brd 10.1.0.255 scope global secondary eth0 valid_lft forever preferred_lft forever inet 10.1.0.4/24 brd 10.1.0.255 scope global secondary eth0 valid_lft forever preferred_lft forever inet6 fe80::20d:3aff:fe04:4516/64 scope link valid_lft forever preferred_lft forever
検証 (Ubuntu 14/16)
関連付けたパブリック IP を使用してセカンダリ IP 構成からインターネットに接続できることを確認するには、次のコマンドを使用します。
ping -I 10.1.0.5 outlook.com
Note
セカンダリ IP 構成でインターネットに ping を実行できるのは、その構成にパブリック IP アドレスが関連付けられている場合だけです。 プライマリ IP 構成では、インターネットに ping を実行するためにパブリック IP アドレスは必要ありません。
Linux VM の場合、セカンダリ NIC からの送信接続を検証しようとしたときに、適切なルートの追加が必要になることがあります。 Linux ディストリビューションに応じて適切なドキュメントを参照してください。 この目標を達成するには、次の方法を使用します。
echo 150 custom >> /etc/iproute2/rt_tables
ip rule add from 10.1.0.5 lookup custom
ip route add default via 10.1.0.1 dev eth2 table custom
必ず次のように置き換えてください。
10.1.0.5 はパブリック IP アドレスが関連付けられているプライベート IP アドレスを持つ
10.1.0.1 から既定のゲートウェイへ
eth2 をセカンダリネットワークインターフェースカードの名前にする
Ubuntu 18.04 以降
展開
18.04 以降、 netplan はネットワーク管理のために Ubuntu で使用されます。 Linux ディストリビューションの最新ドキュメントを調べることをお勧めします。
ターミナル ウィンドウを開きます。
自身がルート ユーザーになっていることを確認します。 ルート ユーザーでない場合は、次のコマンドを入力します。
sudo -i2 番目のインターフェイス用のファイルを作成し、テキスト エディターでファイルを開きます。
vi /etc/netplan/60-static.yaml次の行をファイルに追加し、
10.1.0.5/24を実際の IP およびサブネット マスクに置き換えます。network: version: 2 ethernets: eth0: addresses: - 10.1.0.5/24プライベート IP アドレスを追加するには、ファイルを編集し、後続の行に新しいプライベート IP アドレスを追加します。
network: version: 2 ethernets: eth0: addresses: - 10.1.0.5/24 - 10.1.0.6/24次のコマンドを使用して、ファイルの内容を保存します。
:wqnetplan で変更をテストし、構文を確認してみてください。
netplan tryNote
netplan tryは変更を一時的に適用し、120 秒後に変更をロールバックします。 接続が失われた場合は、2 分待ってから再接続します。 その時点で、変更はロールバックされています。netplan tryに問題がないと仮定し、構成変更を適用します。netplan apply次のコマンドを使用して、IP アドレスがネットワーク インターフェイスに追加されたことを確認します。
ip addr list eth0追加した IP アドレスが、リストの一部として表示されます。 Example:
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 00:0d:3a:04:45:16 brd ff:ff:ff:ff:ff:ff inet 10.1.0.5/24 brd 10.1.0.255 scope global eth0 valid_lft forever preferred_lft forever inet 10.1.0.6/24 brd 10.1.0.255 scope global secondary eth0 valid_lft forever preferred_lft forever inet 10.1.0.4/24 brd 10.1.0.255 scope global secondary eth0 valid_lft forever preferred_lft forever inet6 fe80::20d:3aff:fe04:4516/64 scope link valid_lft forever preferred_lft forever
検証 (Ubuntu 18.04+)
関連付けたパブリック IP を使用してセカンダリ IP 構成からインターネットに接続できることを確認するには、次のコマンドを使用します。
ping -I 10.1.0.5 outlook.com
Note
セカンダリ IP 構成でインターネットに ping を実行できるのは、その構成にパブリック IP アドレスが関連付けられている場合だけです。 プライマリ IP 構成では、インターネットに ping を実行するためにパブリック IP アドレスは必要ありません。
Linux VM の場合、セカンダリ NIC からの送信接続を検証しようとしたときに、適切なルートの追加が必要になることがあります。 Linux ディストリビューションの適切なドキュメントに従ってください。 この目標を達成する 1 つの方法を次に示します。
echo 150 custom >> /etc/iproute2/rt_tables
ip rule add from 10.1.0.5 lookup custom
ip route add default via 10.1.0.1 dev eth2 table custom
必ず次のように置き換えてください。
10.1.0.5 はパブリック IP アドレスが関連付けられているプライベート IP アドレスを持つ
10.1.0.1 から既定のゲートウェイへ
eth2 をセカンダリネットワークインターフェースカードの名前にする
Red Hat Enterprise Linux とその他
展開
Note
RHEL10.x で追加の IP アドレスを構成するには、NetworkManger を再起動して、システムを systemctl restart NetworkManger.service または再起動するだけで十分です。 他の手順は不要です。
ターミナル ウィンドウを開きます。
自身がルート ユーザーになっていることを確認します。 そうでない場合は、次のコマンドを入力します。
sudo -iパスワードを入力し、画面の指示に従います。 ルート ユーザーになったら、次のコマンドを使用して、ネットワーク スクリプト フォルダーに移動します。
cd /etc/sysconfig/network-scripts次のコマンドを使用して、関連する ifcfg ファイルをリストアップします。
ls ifcfg-*ifcfg-eth0 がファイルの 1 つとして表示されます。
システムに追加された IP ごとに新しい構成ファイルを作成します。
touch ifcfg-eth0:0次のコマンドを使用して ifcfg-eth0:0 ファイルを開きます。
vi ifcfg-eth0:0この場合は、次のコマンドを使用してファイル eth0:0 にコンテンツを追加します。
10.1.0.5を新しいプライベート IP アドレスとサブネット マスクに置き換えます。DEVICE=eth0:0 BOOTPROTO=static ONBOOT=yes IPADDR=10.1.0.5 NETMASK=255.255.255.0次のコマンドを使用して、ファイルの内容を保存します。
:wqIP アドレスごとに構成ファイルを作成し、対応する値を追加します。
touch ifcfg-eth0:1vi ifcfg-eth0:1DEVICE=eth0:1 BOOTPROTO=static ONBOOT=yes IPADDR=10.1.0.6 NETMASK=255.255.255.0:wqネットワーク サービスを再起動し、次のコマンドを実行して、変更が成功したかどうかを確認します。
systemctl restart NetworkManager.service ifconfig返されるリストに、追加した IP アドレスが表示されることを確認します。
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.1.0.4 netmask 255.255.255.0 broadcast 10.1.0.255 inet6 fe80::6245:bdff:fe7d:704a prefixlen 64 scopeid 0x20<link> ether 60:45:bd:7d:70:4a txqueuelen 1000 (Ethernet) RX packets 858 bytes 244215 (238.4 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 1021 bytes 262077 (255.9 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 eth0:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.1.0.5 netmask 255.255.255.0 broadcast 10.1.0.255 ether 60:45:bd:7d:70:4a txqueuelen 1000 (Ethernet) eth0:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.1.0.6 netmask 255.255.255.0 broadcast 10.1.0.255 ether 60:45:bd:7d:70:4a txqueuelen 1000 (Ethernet)
検証 (Red Hat とその他)
関連付けたパブリック IP を使用してセカンダリ IP 構成からインターネットに接続できることを確認するには、次のコマンドを使用します。
ping -I 10.0.0.5 outlook.com
Note
セカンダリ IP 構成でインターネットに ping を実行できるのは、その構成にパブリック IP アドレスが関連付けられている場合だけです。 プライマリ IP 構成では、インターネットに ping を実行するためにパブリック IP アドレスは必要ありません。
Linux VM の場合、セカンダリ NIC からの送信接続を検証しようとしたときに、適切なルートの追加が必要になることがあります。 Linux ディストリビューションの適切なドキュメントを参照してください。 この目標を達成するには、次の方法を使用します。
echo 150 custom >> /etc/iproute2/rt_tables
ip rule add from 10.1.0.5 lookup custom
ip route add default via 10.1.0.1 dev eth2 table custom
必ず次のように置き換えてください。
10.0.0.5 を、パブリック IP アドレスが関連付けられているプライベート IP アドレスに
10.0.0.1 を既定のゲートウェイに
eth2 をセカンダリネットワークインターフェースカードの名前にする
Debian GNU/Linux
展開
Linux ディストリビューションの最新ドキュメントを調べることをお勧めします。
ターミナル ウィンドウを開きます。
自身がルート ユーザーになっていることを確認します。 そうでない場合は、次のコマンドを入力します。
sudo -iネットワーク インターフェイスの構成ファイルを更新します ( 'eth0' を想定)。
DHCP の既存の行アイテムを保持します。 プライマリ IP アドレスが以前と同じ構成のまま維持されます。
次のコマンドを使用して、各静的 IP アドレスの構成を追加します。
cd /etc/network/interfaces.d/ ls.cfg ファイルが表示されます。
ファイル を開きます。 ファイルの末尾に次の行が表示されます。
auto eth0 iface eth0 inet dhcpファイルの行の最後に、次の行を追加します。
10.1.0.5を自分のプライベート IP アドレスとサブネット マスクに置き換えます。iface eth0 inet static address 10.1.0.5 netmask 255.255.255.0構成ファイルに新しい IP アドレス情報を追加します。
iface eth0 inet static address 10.1.0.5 netmask 255.255.255.0 iface eth0 inet static address 10.1.0.6 netmask 255.255.255.0次のコマンドを使用して、ファイルの内容を保存します。
:wqネットワーク サービスを再起動して、変更を反映させます。 Debian 8 以降の場合は、次を使用します。
systemctl restart networkingDebian の以前のバージョンでは、以下のコマンドを使用できます。
service networking restart次のコマンドを使用して、IP アドレスがネットワーク インターフェイスに追加されたことを確認します。
ip addr list eth0追加した IP アドレスが、リストの一部として表示されます。 Example:
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 00:0d:3a:04:45:16 brd ff:ff:ff:ff:ff:ff inet 10.1.0.5/24 brd 10.1.0.255 scope global eth0 valid_lft forever preferred_lft forever inet 10.1.0.6/24 brd 10.1.0.255 scope global secondary eth0 valid_lft forever preferred_lft forever inet 10.1.0.4/24 brd 10.1.0.255 scope global secondary eth0 valid_lft forever preferred_lft forever inet6 fe80::20d:3aff:fe04:4516/64 scope link valid_lft forever preferred_lft forever
検証 (Debian GNU/Linux)
関連付けたパブリック IP を使用してセカンダリ IP 構成からインターネットに接続できることを確認するには、次のコマンドを使用します。
ping -I 10.1.0.5 outlook.com
Note
セカンダリ IP 構成でインターネットに ping を実行できるのは、その構成にパブリック IP アドレスが関連付けられている場合だけです。 プライマリ IP 構成では、インターネットに ping を実行するためにパブリック IP アドレスは必要ありません。
Linux VM の場合、セカンダリ NIC からの送信接続を検証しようとしたときに、適切なルートの追加が必要になることがあります。 Linux ディストリビューションに応じて適切なドキュメントを参照してください。 この目標を達成するには、次の方法を使用します。
echo 150 custom >> /etc/iproute2/rt_tables
ip rule add from 10.1.0.5 lookup custom
ip route add default via 10.1.0.1 dev eth2 table custom
必ず次のように置き換えてください。
10.1.0.5 はパブリック IP アドレスが関連付けられているプライベート IP アドレスを持つ
10.1.0.1 から既定のゲートウェイへ
eth2 をセカンダリネットワークインターフェースカードの名前にする
次のステップ
- Azure のパブリック IP アドレスについて詳しく学習する。
- Azure のプライベート IP アドレスについて詳しく学習する。
- Azure ネットワーク インターフェイスの IP アドレスを構成する方法について学習する。