適用対象: ✔️ Linux VM
Note
この記事で参照されている CentOS は Linux ディストリビューションであり、EOL (End Of Life) に到達します。 適宜、使用と計画を検討してください。 詳細については、「 CentOS End Of Life ガイダンスを参照してください。
この記事では、最も一般的な Linux ディストリビューションを実行する Azure Linux 仮想マシン (VM) で複数の仮想ネットワーク インターフェイスを構成する方法について説明します。
まとめ
複数のネットワーク インターフェイスが接続されている Azure VM を作成できます。 一般的なシナリオは、フロントエンドとバックエンドの接続用に異なるサブネット、または監視またはバックアップ ソリューション専用のネットワークを使用することです。
この記事では、次のサンプル シナリオに基づく Azure Linux VM で複数のネットワーク インターフェイスを動作させるために必要な構成について説明します。
- VM には、同じサブネット内に 2 つ以上のネットワーク インターフェイスがあります。
- VM には、異なるサブネットに 2 つ以上のネットワーク インターフェイスがありますが、同じ仮想ネットワーク (VNET) 内にあります。
詳細については、次のスクリーンショットを参照してください。
各シナリオでは、同じ VNET 内の任意の VM から接続をテストできます。
重要
この同じプロセスは、2 つ以上の NIC を持つ VM でも実行できます。
Linux VM に複数のネットワーク インターフェイスを追加する場合は、ルーティング規則を作成する必要があります。 これらの規則により、VM は特定のネットワーク インターフェイスに属するトラフィックを送受信できます。 そうしないと、トラフィックを正しく処理できません。 たとえば、 eth1 に属するトラフィックは、定義された既定のルートでは正しく処理できません。
次のセクションでは、最も一般的な Linux ディストリビューションを実行する Linux VM で 2 つのネットワーク インターフェイスを動作させるために必要な構成について説明します。
Note
次のセクションのすべてのコマンドを実行するには、ルート特権を使用します (ルートに切り替えるか、 sudo
コマンド ユーティリティを使用します)。
各セクションでは、VM に次のいずれかの設定を持つ 2 つのネットワーク インターフェイスがあることを前提としています。
次のコマンドを実行して、2 つのルーティング テーブルを /etc/iproute2/rt_tables ファイルに追加します (NIC ごとに 1 つのエントリが必要です)。
sudo echo "200 eth0-rt" >> /etc/iproute2/rt_tables
sudo echo "201 eth1-rt" >> /etc/iproute2/rt_tables
さらに多くのネットワーク インターフェイスが VM に接続されている場合は、追加のルーティング テーブル (たとえば、 202 eth2-rt、 203 eth3-rt など) を追加します。
/etc/sysconfig/network-scripts/ ディレクトリ内のネットワーク インターフェイスごとに構成ファイルが存在することを確認します。 ifcfg-eth0構成ファイルに基づいて新しいネットワーク インターフェイス構成ファイルを作成できます (DEVICE
行を変更し、新しいファイルからDHCP_HOSTNAME
行とHWADDR
行を削除します)。 これを行うには、次のコマンドを実行します。
sudo cat /etc/sysconfig/network-scripts/ifcfg-eth0 > /etc/sysconfig/network-scripts/ifcfg-eth1
sudo sed -i 's/DEVICE=eth0/DEVICE=eth1/' /etc/sysconfig/network-scripts/ifcfg-eth1
sudo sed -i '/DHCP_HOSTNAME/d' /etc/sysconfig/network-scripts/ifcfg-eth1
sudo sed -i '/HWADDR/d' /etc/sysconfig/network-scripts/ifcfg-eth1
ネットワーク スタックのアクティブ化中に変更を永続的にして適用するには、ファイル /etc/sysconfig/network-scripts/ifcfg-eth0 および /etc/sysconfig/network-scripts/ifcfg-eth1 (ifcfg-eth2 を編集します。 ifcfg-eth3 など(VM に 3 つ以上のネットワーク インターフェイスがある場合)、 NM_CONTROLLED
の値を yes
から no
に変更します。 これを行うには、次のコマンドを実行します。
sudo cp -rp /etc/sysconfig/network-scripts/ifcfg-eth0 /tmp/ifcfg-eth0.bkp
sudo cp -rp /etc/sysconfig/network-scripts/ifcfg-eth1 /tmp/ifcfg-eth1.bkp
sudo sed -i 's/NM_CONTROLLED=yes/NM_CONTROLLED=no/' /etc/sysconfig/network-scripts/ifcfg-eth0
sudo sed -i 's/NM_CONTROLLED=yes/NM_CONTROLLED=no/' /etc/sysconfig/network-scripts/ifcfg-eth1
Note
cat /etc/sysconfig/network-scripts/ifcfg-eth*
コマンドを使用して、NM_CONTROLLED=no
行が /etc/sysconfig/network-scripts/ifcfg-eth0 ファイルと /etc/sysconfig/network-scripts/ifcfg-eth1 ファイルの両方に追加されていることを確認します。 行がファイルに含まれていない場合は、 sudo echo "NM_CONTROLLED=no" >> /etc/sysconfig/network-scripts/ifcfg-eth0
コマンドと sudo echo "NM_CONTROLLED=no" >> /etc/sysconfig/network-scripts/ifcfg-eth1
コマンドを使用して手動で追加します。
この構成を変更した後、次のコマンドを実行して、ネットワーク サービスを再起動して変更を適用します。
sudo systemctl restart network
任意のテキスト エディター (次の例では vi エディターが使用されています) を使用して、対応するルールとルート ファイルを作成し、各ファイルに適切なルールとルートを追加します。 次の手順を使用して、ネットワーク インターフェイスごとに 1 つの rule-eth# ファイルと route-eth# ファイルのセットを作成します。 すべての手順で、IP アドレスとサブネットの情報を適宜置き換えます。 より多くのネットワーク インターフェイスがある場合は、対応する IP アドレス、ネットワーク、ゲートウェイの詳細を使用して、各インターフェイスに同じ rule-eth# ファイルと route-eth# ファイルのセットを作成します。
eth0 のルールとルートを作成します:
eth0 のルール ファイルを作成するには、ファイル /etc/sysconfig/network-scripts/rule-eth0 を開きます。
sudo vi /etc/sysconfig/network-scripts/rule-eth0
ルール ファイルに次の内容を追加します。 それに応じて IP アドレスを置き換え、構成で IPv4 アドレスを指定し、32 ビット値を保持してください。
from 10.0.1.4/32 table eth0-rt
to 10.0.1.4/32 table eth0-rt
eth0 のルート ファイルを作成するには、ファイル /etc/sysconfig/network-scripts/route-eth0 を開きます。
sudo vi /etc/sysconfig/network-scripts/route-eth0
ルート ファイルに次の内容を追加します。 それに応じて、ネットワークとゲートウェイの値を置き換えます。
10.0.1.0/24 dev eth0 table eth0-rt
default via 10.0.1.1 dev eth0 table eth0-rt
eth1 のルールとルートを作成します:
eth1 のルール ファイルを作成するには、ファイル /etc/sysconfig/network-scripts/rule-eth1 を開きます。
sudo vi /etc/sysconfig/network-scripts/rule-eth1
ルール ファイルに次の内容を追加します。 それに応じて IP アドレスを置き換え、コマンドで IPv4 アドレスを指定し、32 ビット値を保持してください。
同じサブネット内の 2 つの NIC:
from 10.0.1.5/32 table eth1-rt
to 10.0.1.5/32 table eth1-rt
異なるサブネット内の同じ VNET 内の 2 つの NIC:
from 10.0.2.5/32 table eth1-rt
to 10.0.2.5/32 table eth1-rt
eth1 のルート ファイルを作成するには、ファイル /etc/sysconfig/network-scripts/route-eth1 を開きます。
sudo vi /etc/sysconfig/network-scripts/route-eth1
ルート ファイルに次の内容を追加します。 それに応じて、ネットワークとゲートウェイの値を置き換えます。
同じサブネット内の 2 つの NIC:
10.0.1.0/24 dev eth1 table eth1-rt
default via 10.0.1.1 dev eth1 table eth1-rt
異なるサブネット内の同じ VNET 内の 2 つの NIC:
10.0.2.0/24 dev eth1 table eth1-rt
default via 10.0.2.1 dev eth1 table eth1-rt
変更を適用するには、次のコマンドを実行してネットワーク サービスを再起動します。
sudo systemctl restart network
これでルーティング規則が正しく設定され、任意のネットワーク インターフェイスから接続が機能するようになります。 Secure Shell (SSH) を使用するか、同じ VNET 内の VM から両方の IP に ping を実行することで、接続をテストできます。
次のコマンドを使用して、現在のルートとルールが読み込まれたことを確認します。
sudo ip route show
sudo ip rule show
重要
2 番目の NIC との通信で問題が解決しない場合は、 sudo reboot
コマンドを使用して VM を再起動し、手順 7 を繰り返して、接続をもう一度テストします。
既定では、ポリシー ルーティングは Red Hat Enterprise Linux (RHEL)/CentOS 8. にインストールされませんx。 複数のネットワーク インターフェイスを構成するには、ポリシー ルーティングをインストールして有効にします。 これを行うには、次のコマンドを実行します。
sudo yum install NetworkManager-dispatcher-routing-rules -y
sudo systemctl enable NetworkManager-dispatcher.service
sudo systemctl start NetworkManager-dispatcher.service
RHEL/CentOS 8.x、既定では、NM_CONTROLLED
設定は各ネットワーク構成ファイル (/etc/sysconfig/network-scripts/ifcfg-eth#) でyes
に設定されます。 問題を回避するには、この設定が特定の構成ファイルで no
に設定されていないことを確認します。 また、対応するネットワーク構成ファイルが各ネットワーク インターフェイスごとに作成されていることを確認します。 ネットワーク構成ファイルの構成例を次に示します。
/etc/sysconfig/network-scripts/ifcfg-eth0:
sudo cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=dhcp
TYPE=Ethernet
USERCTL=no
PEERDNS=yes
IPV6INIT=no
PERSISTENT_DHCLIENT=yes
/etc/sysconfig/network-scripts/ifcfg-eth1:
sudo cat /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
ONBOOT=yes
BOOTPROTO=dhcp
TYPE=Ethernet
USERCTL=no
PEERDNS=yes
IPV6INIT=no
PERSISTENT_DHCLIENT=yes
次のコマンドを実行して、 /etc/iproute2/rt_tables ファイルに 2 つのルーティング テーブルを追加します。
sudo echo "200 eth0-rt" >> /etc/iproute2/rt_tables
sudo echo "201 eth1-rt" >> /etc/iproute2/rt_tables
さらに多くのネットワーク インターフェイスが VM に接続されている場合は、追加のルーティング テーブル (たとえば、 202 eth2-rt、 203 eth3-rt など) を追加します。
対応するルールを作成し、NIC ごとに構成ファイルをルーティングし、それぞれに適切なルールとルートを追加します。 ネットワーク インターフェイスごとに 1 つの rule-eth# ファイルと route-eth# ファイルのセットを作成するには、次の手順に従います。 すべての手順で、IP アドレスとサブネットの情報を適宜置き換えます。 より多くのネットワーク インターフェイスがある場合は、対応する IP とサブネットの詳細を使用して、各インターフェイスに同じ rule-eth# ファイルと route-eth# ファイルのセットを作成します。
eth0 のルールとルートを作成します:
次のコマンドを実行して、 eth0 のルール ファイルを作成します。
sudo vi /etc/sysconfig/network-scripts/rule-eth0
ルール ファイルに次の内容を追加します。 それに応じて IP アドレスを置き換え、コマンドで IPv4 アドレスを指定してください。
from 10.0.1.4/32 table eth0-rt
to 10.0.1.4/32 table eth0-rt
次のコマンドを実行して、 eth0 のルート ファイルを作成します。
sudo vi /etc/sysconfig/network-scripts/route-eth0
ルート ファイルに次の内容を追加します。
10.0.1.0/24 dev eth0 table eth0-rt
default via 10.0.1.1 dev eth0 table eth0-rt
eth1 のルールとルートを作成します:
次のコマンドを実行して、 eth1 のルール ファイルを作成します。
sudo vi /etc/sysconfig/network-scripts/rule-eth1
ルール ファイルに次の内容を追加します。 それに応じて IP アドレスを置き換え、コマンドで IPv4 アドレスを指定し、32 ビット値を保持してください。
同じサブネット内の 2 つの NIC:
from 10.0.1.5/32 table eth1-rt
to 10.0.1.5/32 table eth1-rt
異なるサブネット内の同じ VNET 内の 2 つの NIC:
from 10.0.2.5/32 table eth1-rt
to 10.0.2.5/32 table eth1-rt
次のコマンドを実行して、 eth1 のルート ファイルを作成します。
sudo vi /etc/sysconfig/network-scripts/route-eth1
ルート ファイルに次の内容を追加します。
同じサブネット内の 2 つの NIC:
10.0.1.0/24 dev eth1 table eth1-rt
default via 10.0.1.1 dev eth1 table eth1-rt
異なるサブネット内の同じ VNET 内の 2 つの NIC:
10.0.2.0/24 dev eth1 table eth1-rt
default via 10.0.2.1 dev eth1 table eth1-rt
変更を適用するには、次のコマンドを実行してネットワーク サービスを再起動します。
sudo systemctl restart NetworkManager
これでルーティング規則が正しく設定され、任意のネットワーク インターフェイスから接続が機能するようになります。 Secure Shell (SSH) を使用するか、同じ VNET 内の VM から両方の IP に ping を実行することで、接続をテストできます。
次のコマンドを使用して、現在のルートとルールが読み込まれたことを確認します。
sudo ip route show
sudo ip rule show
重要
2 番目の NIC への接続がまだない場合は、 sudo reboot
コマンドを使用して VM を再起動し、手順 6 を繰り返して、接続をもう一度テストします。
次のコマンドを実行して、 /etc/iproute2/rt_tables ファイルに 2 つのルーティング テーブルを追加します。
sudo echo "200 eth0-rt" >> /etc/iproute2/rt_tables
sudo echo "201 eth1-rt" >> /etc/iproute2/rt_tables
さらに多くのネットワーク インターフェイスが VM に接続されている場合は、追加のルーティング テーブル (たとえば、 202 eth2-rt、 203 eth3-rt など) を追加します。
Cloud-Init オートメーションが設定されている場合 (既定では、Azure Ubuntu イメージで設定されます)、システムが再起動されるたびに /etc/netplan/50-cloud-init.yaml ファイルが上書きされないように、ネットワーク CI オートメーションが無効になっていることを確認します。
次のコマンドとコンテンツを使用して、 /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg ファイルを作成します。
sudo vi /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
network:
config: disabled
任意のテキスト エディターを使用して netplan 構成ファイル /etc/netplan/50-cloud-init.yaml を変更し、各ネットワーク インターフェイス セクションに次のルートとポリシー ルーティング ブロックを含めます。
routes:
- to: <subnet>/24
via: <gatewayIP>
metric: 200
table: 201
- to: 0.0.0.0/0
via: <gatewayIP>
table: <routingTableID>
routing-policy:
- from: <NICIP>/32
table: <routingTableID>
- to: <NICIP>/32
table: <routingTableID>
それに応じて、各ネットワーク インターフェイスのサブネット、MAC アドレス、IP アドレス情報 (eth0 および eth1) を置き換えます。 32 ビット値が routing-policy
ブロックに保持されていることを確認します。
指定されたサンプルの詳細を使用するサンプル構成ファイルを次に示します。
sudo vi /etc/netplan/50-cloud-init.yaml
同じサブネット内の 2 つの NIC:
network:
ethernets:
eth0:
dhcp4: true
dhcp4-overrides:
route-metric: 100
dhcp6: false
match:
driver: hv_netvsc
macaddress: 00:0d:3a:9d:60:e6
set-name: eth0
routes:
- to: 10.0.1.0/24
via: 10.0.1.1
metric: 200
table: 200
- to: 0.0.0.0/0
via: 10.0.1.1
table: 200
routing-policy:
- from: 10.0.1.4/32
table: 200
- to: 10.0.1.4/32
table: 200
eth1:
dhcp4: true
dhcp4-overrides:
route-metric: 200
dhcp6: false
match:
driver: hv_netvsc
macaddress: 00:0d:3a:9a:25:5f
set-name: eth1
routes:
- to: 10.0.1.0/24
via: 10.0.1.1
metric: 200
table: 201
- to: 0.0.0.0/0
via: 10.0.1.1
table: 201
routing-policy:
- from: 10.0.1.5/32
table: 201
- to: 10.0.1.5/32
table: 201
version: 2
異なるサブネット内の同じ VNET 内の 2 つの NIC:
network:
ethernets:
eth0:
dhcp4: true
dhcp4-overrides:
route-metric: 100
dhcp6: false
match:
driver: hv_netvsc
macaddress: 00:0d:3a:9d:60:e6
set-name: eth0
routes:
- to: 10.0.1.0/24
via: 10.0.1.1
metric: 200
table: 200
- to: 0.0.0.0/0
via: 10.0.1.1
table: 200
routing-policy:
- from: 10.0.1.4/32
table: 200
- to: 10.0.1.4/32
table: 200
eth1:
dhcp4: true
dhcp4-overrides:
route-metric: 200
dhcp6: false
match:
driver: hv_netvsc
macaddress: 00:0x:3x:9x:03:5f
set-name: eth1
routes:
- to: 10.0.2.0/24
via: 10.0.2.1
metric: 200
table: 201
- to: 0.0.0.0/0
via: 10.0.2.1
table: 201
routing-policy:
- from: 10.0.2.5/32
table: 201
- to: 10.0.2.5/32
table: 201
version: 2
重要
前の構成ファイルのサンプルのいずれかを使用する場合は、それに応じて MAC アドレスの値が置き換えられたことを確認してください。 ip a | grep ether | awk '{print $2}'
コマンドの出力から、対応する NIC MAC アドレスを取得できます。
次のコマンドを実行して、変更を適用します。
sudo netplan apply
接続をテストするには、同じ VNET 内の別の VM から両方の IP に ping または SSH 接続します。
ping 10.0.1.4
ping 10.0.1.5
次のコマンドを実行して、 /etc/iproute2/rt_tables ファイルに 2 つのルーティング テーブルを追加します。
sudo echo "200 eth0-rt" >> /etc/iproute2/rt_tables
sudo echo "201 eth1-rt" >> /etc/iproute2/rt_tables
さらに多くのネットワーク インターフェイスが VM に接続されている場合は、追加のルーティング テーブル (たとえば、 202 eth2-rt、 203 eth3-rt など) を追加します。
任意のテキスト エディターを使用して、 /etc/sysconfig/network/scripts/ ディレクトリ内の各ネットワーク インターフェイスのルートと規則を持つスクリプトを作成します (次のコマンドでは、vi テキスト エディターが使用されます)。
/etc/sysconfig/network/scripts/ifup-route.eth0
sudo vi /etc/sysconfig/network/scripts/ifup-route.eth0
#!/bin/bash
/sbin/ip route add default via 10.0.1.1 dev eth0 table eth0-rt
/sbin/ip rule add from 10.0.1.4/32 table eth0-rt
/sbin/ip rule add to 10.0.1.4/32 table eth0-rt
/etc/sysconfig/network/scripts/ifup-route.eth1
sudo vi /etc/sysconfig/network/scripts/ifup-route.eth1
同じサブネット内の 2 つの NIC:
#!/bin/bash
/sbin/ip route add 10.0.1.0/24 dev eth1 table eth1-rt
/sbin/ip route add default via 10.0.1.1 dev eth1 table eth1-rt
/sbin/ip rule add from 10.0.1.5/32 table eth1-rt
/sbin/ip rule add to 10.0.1.5/32 table eth1-rt
異なるサブネット内の同じ VNET 内の 2 つの NIC:
#!/bin/bash
/sbin/ip route add 10.0.2.0/24 dev eth1 table eth1-rt
/sbin/ip route add default via 10.0.2.1 dev eth1 table eth1-rt
/sbin/ip rule add from 10.0.2.5/32 table eth1-rt
/sbin/ip rule add to 10.0.2.5/32 table eth1-rt
それに応じてネットワークと IP アドレスの情報を調整し、32 ビット値を保持します。 NIC が 2 つ以上ある場合は、対応する IP ルールと IP ルートが各 NIC に含まれていることを確認します。
次のコマンドを使用して、両方のスクリプトの実行アクセス許可を指定します。
sudo chmod +x /etc/sysconfig/network/scripts/ifup-route.eth0
sudo chmod +x /etc/sysconfig/network/scripts/ifup-route.eth1
任意のテキスト エディターを使用して、 eth0 と eth1 (/etc/sysconfig/network/ifcfg-eth#) の両方のネットワーク構成ファイルを変更し、対応するスクリプトを指すように両方のファイルに次の行を含めます。
ネットワーク構成ファイル /etc/sysconfig/network/ifcfg-eth0:
POST_UP_SCRIPT='compat:suse:/etc/sysconfig/network/scripts/ifup-route.eth0'
ネットワーク構成ファイル /etc/sysconfig/network/ifcfg-eth1:
POST_UP_SCRIPT='compat:suse:/etc/sysconfig/network/scripts/ifup-route.eth1'
両方の構成ファイルのサンプルを次に示します。
sudo cat /etc/sysconfig/network/ifcfg-eth0
BOOTPROTO='dhcp'
DHCLIENT6_MODE='managed'
MTU=''
REMOTE_IPADDR=''
STARTMODE='onboot'
CLOUD_NETCONFIG_MANAGE='yes'
POST_UP_SCRIPT='compat:suse:/etc/sysconfig/network/scripts/ifup-route.eth0'
sudo cat /etc/sysconfig/network/ifcfg-eth1
STARTMODE='hotplug'
BOOTPROTO='dhcp'
DHCLIENT_SET_DEFAULT_ROUTE='yes'
DHCLIENT_ROUTE_PRIORITY='10100'
CLOUD_NETCONFIG_MANAGE='yes'
POST_DOWN_SCRIPT='compat:suse:cloud-netconfig-cleanup'
POST_UP_SCRIPT='compat:suse:/etc/sysconfig/network/scripts/ifup-route.eth1'
/etc/sysconfig/network/ifcfg-eth1 ファイルが存在しない場合は、/etc/sysconfig/network/ifcfg-eth0 ファイルのコンテンツを使用して作成します。 対応するスクリプトを使用するように POST_UP_SCRIPT
が調整されていることを確認します。 これを行うには、次のコマンドを実行します。
sudo cat /etc/sysconfig/network/ifcfg-eth0 > /etc/sysconfig/network/ifcfg-eth1
変更を適用するには、ネットワーク サービスを再起動します。
sudo systemctl restart network
これでルーティング規則が正しく設定され、任意のネットワーク インターフェイスから接続が機能するようになります。 Secure Shell (SSH) を使用するか、同じ VNET 内の VM から両方の IP に ping を実行することで、接続をテストできます。
次のコマンドを使用して、現在のルートとルールが読み込まれたことを確認します。
sudo ip route show
sudo ip rule show
重要
2 番目の NIC への接続がまだない場合は、 sudo reboot
コマンドを使用して VM を再起動し、手順 6 を繰り返して、接続をもう一度テストします。
次のコマンドを実行して、 /etc/iproute2/rt_tables ファイルに 2 つのルーティング テーブルを追加します。
sudo echo "200 eth0-rt" >> /etc/iproute2/rt_tables
sudo echo "201 eth1-rt" >> /etc/iproute2/rt_tables
さらに多くのネットワーク インターフェイスが VM に接続されている場合は、追加のルーティング テーブル (たとえば、 202 eth2-rt、 203 eth3-rt など) を追加します。
任意のテキスト エディターを使用して、構成ファイル /etc/network/interfaces.d/50-cloud-init を作成または変更します。
sudo vi /etc/network/interfaces.d/50-cloud-init
次の構成を使用します。
同じサブネット内の 2 つの NIC:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
metric 100
up /usr/sbin/ip route add default via 10.0.1.1 dev eth0 table eth0-rt
up /usr/sbin/ip rule add from 10.0.1.4/32 table eth0-rt
up /usr/sbin/ip rule add to 10.0.1.4/32 table eth0-rt
auto eth1
iface eth1 inet dhcp
metric 200
up /usr/sbin/ip route add 10.0.1.0/24 dev eth1 table eth1-rt
up /usr/sbin/ip route add default via 10.0.1.1 dev eth1 table eth1-rt
up /usr/sbin/ip rule add from 10.0.1.5/32 table eth1-rt
up /usr/sbin/ip rule add to 10.0.1.5/32 table eth1-rt
異なるサブネット内の同じ VNET 内の 2 つの NIC:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
metric 100
up /usr/sbin/ip route add default via 10.0.1.1 dev eth0 table eth0-rt
up /usr/sbin/ip rule add from 10.0.1.4/32 table eth0-rt
up /usr/sbin/ip rule add to 10.0.1.4/32 table eth0-rt
auto eth1
iface eth1 inet dhcp
metric 200
up /usr/sbin/ip route add 10.0.2.0/24 dev eth1 table eth1-rt
up /usr/sbin/ip route add default via 10.0.2.1 dev eth1 table eth1-rt
up /usr/sbin/ip rule add from 10.0.2.5/32 table eth1-rt
up /usr/sbin/ip rule add to 10.0.2.5/32 table eth1-rt
それに応じてネットワークと IP アドレスの情報を調整し、32 ビット値を保持します。 NIC が 2 つ以上ある場合は、対応する IP ルールと IP ルートが各 NIC に含まれていることを確認します。
次のコマンドを使用して、新しい構成をアクティブにします。
sudo systemctl restart networking
これでルーティング規則が正しく設定され、任意のネットワーク インターフェイスから接続が機能するようになります。 Secure Shell (SSH) を使用するか、同じ VNET 内の VM から両方の IP に ping を実行することで、接続をテストできます。
次のコマンドを使用して、現在のルートとルールが読み込まれたことを確認します。
sudo ip route show
sudo ip rule show
重要
2 番目の NIC にまだ接続していない場合は、 sudo reboot
コマンドを使用して VM を再起動し、手順 4 を繰り返して、接続をもう一度テストします。
質問がある場合やヘルプが必要な場合は、サポート要求を作成するか、Azure コミュニティ サポートにお問い合わせください。 Azure フィードバック コミュニティに製品フィードバックを送信することもできます。