Louisa がインスタンスの
インスタンスのセカンダリプライベート
インスタンスの IP アドレス

Loiusa_secondary-private-ip-address-1

CentOS または RHEL Amazon Elastic Compute Cloud (Amazon EC2) インスタンスでセカンダリネットワークインターフェイスを動作させるには、どうすればよいですか?

Amazon Linux 以外のインスタンスにセカンダリネットワークインターフェイスを追加するとトラフィックフローの問題が発生します。これは、プライマリとセカンダリの両方のネットワークインターフェイスが同じサブネットにあり、1 つのゲートウェイを持つルーティングテーブルが 1 つしかないためです。セカンダリネットワークインターフェイスに入るトラフィックは、プライマリネットワークインターフェイスを使用してインスタンスを残そうとします。ただし、セカンダリ IP アドレスはプライマリネットワークインターフェイスの MAC アドレスに属していないため、これは許可されていません。

セカンダリインターフェイスを機能させるには、セカンダリネットワーク設定ファイルを作成し、追加のルーティングテーブルを追加して、セカンダリインターフェイスのトラフィックが新しいルーティングテーブルを使用するようにカスタムルーティングテーブルポリシーデータベースにルールを設定します。新しいセカンダリルートとルールが起動するたびに有効にするには、セカンダリ静的ルートファイルを作成して設定します。

セカンダリインターフェイスを動作させる手順の概要を次に示します。

  1. 設定ファイルを作成する
  2. 新しいルーティングテーブルを作成する
  3. ルーティングポリシーデータベースでルールを設定する
  4. 静的ルートファイルを作成する

注意: Ubuntu のインスタンスで Ubuntu インスタンスでセカンダリネットワークインターフェイスを動作させるにはどうすればいいですか?

すべての手順はルートユーザー権限で行う必要があります。「sudo -i」 でルートになるか、「sudo」ですべてのコマンドを実行してください。

セカンダリネットワーク設定ファイルを作成する

1.プライマリネットワークインターフェイスの名前を取得します。

ip a | grep ^[[:digit:]]

次のように表示されます。 

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc pfifo_fast state UP group default qlen 1000
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000

重要: 前の例では、プライマリインターフェイスの名前は「eth0」、「eth1」などです。ただし、m4 ファミリーや m5 ファミリーなど、拡張されたネットワークをサポートするインスタンスでは、名前の不一致が発生することがあります。たとえば、プライマリは「ens3」、セカンダリは「eth0」と命名されます。この名前の不一致は、インスタンスの実行中にセカンダリインターフェイスが追加されたときに発生します。

起動時にインターフェイスを追加するか、インスタンスを再起動することで、名前の不一致を回避できます。または、インターフェイスの実行中に、次のように名前を変更できます。 

ip link set eth0 name ens4 && ip link set ens4 up

2.セカンダリネットワークインターフェイス「ifcfg-eth1」設定ファイルを作成または編集します。 

vi /etc/sysconfig/network-scripts/ifcfg-eth1

3. セカンダリインターフェイスファイルを編集して、次のようにします。セカンダリインターフェイスの MAC アドレスを含め、シナリオに合わせて編集します。セカンダリインターフェイスの MAC アドレスは「ip a」コマンドを使って見つけることができます。 

DEVICE=eth1
NAME=eth1
HWADDR=00:00:00:00:00:00
BOOTPROTO=dhcp
ONBOOT=yes
TYPE=Ethernet
USERCTL=no
NM_CONTROLLED=no

セカンダリインターフェイスに複数の IP がある場合は、次のように設定します。 

DEVICE=eth1
NAME=eth1
HWADDR=00:00:00:00:00:00
BOOTPROTO=none
ONBOOT=yes
TYPE=Ethernet
USERCTL=no
NM_CONTROLLED=no
DEFROUTE=no
IPADDR=172.31.0.162
PREFIX=20
IPADDR1=172.31.13.162
PREFIX1=20
IPADDR2=172.31.1.151
PREFIX2=20

4.プライマリインターフェイスが接続を失わないようにするには、デフォルトゲートウェイがメインルーティングテーブルに残っていることを確認してください。これを行うには、/etc/sysconfig/network ファイルを編集します。 

vi /etc/sysconfig/network

次の行を追加します。 

GATEWAYDEV=eth0

5.ネットワークを再起動します。 

systemctl restart network

セカンダリルーティングテーブルを作成する

メインルーティングテーブルは、Linux 上に ID 254 を持っています。デフォルトでは、インターフェイストラフィックはこのテーブルに基づいてルーティングされます。セカンダリインターフェイスの新しいルーティングテーブルを作成する必要があります。

1.デフォルトゲートウェイを見つけてメモしてください。

ip route | grep default

2.セカンダリインターフェイス用の新しいルーティングテーブルを作成し、前の手順で見つかったゲートウェイの IP を使用してデフォルトゲートウェイルートを追加します。この例では、新しいテーブルは ID 1000、および IP は「172.31.16.1」です。

ip route add default via 172.31.16.1 dev eth1 table 1000

3.テーブル 1000 にセカンダリインターフェイスに存在するすべての IP のルートがあることを確認してください。

2 つの IP の例を以下に示します。 

ip route add 172.31.0.162 dev eth1 table 1000
ip route add 172.31.13.162 dev eth1 table 1000

4.テーブル 1000 を確認し、それが正しいことを確認してください。 

ip route show table 1000

ルーティングポリシーデータベースでルールを設定する

ルーティングポリシーデータベース内のセカンダリインターフェイスに存在するすべての IP のルールを設定し、これらの IP からのトラフィックがテーブル 1000 に従ってルーティングされるようにします。

ip rule add from 172.31.0.162 lookup 1000
ip rule add from 172.31.13.162 lookup 1000

これらの IP との接続性を確認してください。これらの IP を指す Elastic IP がある場合は、パブリックネットワークからアクセスすることもできます。

セカンダリ静的ルートファイルを作成する

1.新しいセカンダリルートとルールが起動するたびに有効にするには、「route-eth1」静的ルートファイルを作成して設定します。

vi /etc/sysconfig/network-scripts/route-eth1

2.コマンドラインでセカンダリルーティングテーブルを作成するときに入力したのと同じルートを入力します。違いは「ip route add」を除外することです。 

default via 172.31.16.1 dev eth1 table 1000
172.31.0.162 dev eth1 table 1000
172.31.13.162 dev eth1 table 1000

3.rule-eth1 のルールファイルを作成または編集します。 

vi /etc/sysconfig/network-scripts/rule-eth1

新しいセカンダリルーティングテーブルを作成するときにコマンドラインで入力したのと同じルートを配置します。違いは、「ip rule add」を除外することです。 

from 172.31.0.162 lookup 1000
from 172.31.13.162 lookup 1000

CentOS または RHEL IP 設定を構成した後は、インターフェイスを再起動するときにルーティングとルールが維持されます。 


このページは役に立ちましたか? はい | いいえ

AWS サポート ナレッジ センターに戻る

サポートが必要ですか? AWS サポートセンターをご覧ください。

公開日: 2014 年 7 月 3 日

更新: 2018 年 09 月 04 日