こちらに記載されているEC2インスタンスにENIを複数アタッチした場合のmeta data serverとの通信が現時点でどんな状況かをテストしてみた。
構成
CentOS6のAMIを使って複数のENIをアタッチしたEC2インスタンスを起動して、EIPはeth0、eht1のいずれかにアタッチする。
EIPはデフォルトゲートェイが向いているENIにアタッチ。
検証すること
デフォルトゲートウェイがeth1に向いている場合にEC2インスタンスが起動するかを調べる。
デフォルトゲートウェイがeth0に向いてる場合
起動直後のルーティングは以下。
# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.0.0 * 255.255.255.0 U 0 0 0 eth0
link-local * 255.255.0.0 U 1002 0 0 eth0
default ip-10-0-0-1.ap- 0.0.0.0 UG 0 0 0 eth0
デフォルトゲートウェイがeth0に向くように設定する。
# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=on
DEFROUTE=yes
# cat /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
BOOTPROTO=dhcp
ONBOOT=on
DEFROUTE=no
ネットワークを再起動した後のルーティングを表示する(これは当然通信可能)。
# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.0.0 * 255.255.255.0 U 0 0 0 eth0
10.0.2.0 * 255.255.255.0 U 0 0 0 eth1
link-local * 255.255.0.0 U 1002 0 0 eth0
link-local * 255.255.0.0 U 1003 0 0 eth1
default ip-10-0-0-1.ap- 0.0.0.0 UG 0 0 0 eth0
# ifconfig -a
eth0 Link encap:Ethernet HWaddr 06:F0:8D:D1:56:9E
inet addr:10.0.0.100 Bcast:10.0.0.255 Mask:255.255.255.0
inet6 addr: fe80::4f0:8dff:fed1:569e/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:205 errors:0 dropped:0 overruns:0 frame:0
TX packets:212 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:15578 (15.2 KiB) TX bytes:24467 (23.8 KiB)
Interrupt:246
eth1 Link encap:Ethernet HWaddr 06:01:19:0A:B4:D9
inet addr:10.0.2.100 Bcast:10.0.2.255 Mask:255.255.255.0
inet6 addr: fe80::401:19ff:fe0a:b4d9/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:949 errors:0 dropped:0 overruns:0 frame:0
TX packets:591 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:75907 (74.1 KiB) TX bytes:82037 (80.1 KiB)
Interrupt:245
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
デフォルトゲートウェイがeth1に向いてる場合
デフォルトゲートェイがeth1に向くように設定変更する。
# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=on
DEFROUTE=no
# cat /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
BOOTPROTO=dhcp
ONBOOT=on
DEFROUTE=yes
ネットワークを再起動した後のルーティングを表示する。
EIPをつけた変えたりしたのでダウンはしたが、正常に通信出来る。
# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.0.0 * 255.255.255.0 U 0 0 0 eth0
10.0.2.0 * 255.255.255.0 U 0 0 0 eth1
link-local * 255.255.0.0 U 1002 0 0 eth0
link-local * 255.255.0.0 U 1003 0 0 eth1
default ip-10-0-2-1.ap- 0.0.0.0 UG 0 0 0 eth1
# ifconfig -a
eth0 Link encap:Ethernet HWaddr 06:F0:8D:D1:56:9E
inet addr:10.0.0.100 Bcast:10.0.0.255 Mask:255.255.255.0
inet6 addr: fe80::4f0:8dff:fed1:569e/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:111 errors:0 dropped:0 overruns:0 frame:0
TX packets:117 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:7425 (7.2 KiB) TX bytes:8368 (8.1 KiB)
Interrupt:246
eth1 Link encap:Ethernet HWaddr 06:01:19:0A:B4:D9
inet addr:10.0.2.100 Bcast:10.0.2.255 Mask:255.255.255.0
inet6 addr: fe80::401:19ff:fe0a:b4d9/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:560 errors:0 dropped:0 overruns:0 frame:0
TX packets:364 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:46871 (45.7 KiB) TX bytes:44451 (43.4 KiB)
Interrupt:245
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
デフォルトゲートウェイがeth1に向いてるEC2から作成したAMIを使ってEC2を起動
念のため、先ほどのEC2インスタンスからAMIを作成してEC2を起動してみる。
先ほどと同じようにEC2にはENIを2つアタッチしてeth1にEIPをアタッチすると正常に起動した。
# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.0.0 * 255.255.255.0 U 0 0 0 eth0
10.0.2.0 * 255.255.255.0 U 0 0 0 eth1
link-local * 255.255.0.0 U 1002 0 0 eth0
link-local * 255.255.0.0 U 1003 0 0 eth1
default ip-10-0-2-1.ap- 0.0.0.0 UG 0 0 0 eth1
# ifconfig -a
eth0 Link encap:Ethernet HWaddr 06:38:12:29:FA:F2
inet addr:10.0.0.200 Bcast:10.0.0.255 Mask:255.255.255.0
inet6 addr: fe80::438:12ff:fe29:faf2/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:117 errors:0 dropped:0 overruns:0 frame:0
TX packets:125 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:5989 (5.8 KiB) TX bytes:7692 (7.5 KiB)
Interrupt:246
eth1 Link encap:Ethernet HWaddr 06:CE:B6:82:AA:92
inet addr:10.0.2.200 Bcast:10.0.2.255 Mask:255.255.255.0
inet6 addr: fe80::4ce:b6ff:fe82:aa92/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:331 errors:0 dropped:0 overruns:0 frame:0
TX packets:258 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:28919 (28.2 KiB) TX bytes:30075 (29.3 KiB)
Interrupt:245
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
参考
ちなみにAmazon Linuxではeth0が優先されるようにされており、さらにmeta data serverへはeth0を使うようにStatic Routingが設定されているみたい。
$ sudo route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default ip-10-0-0-1.ap- 0.0.0.0 UG 0 0 0 eth0
default ip-10-0-2-1.ap- 0.0.0.0 UG 10001 0 0 eth1
10.0.0.0 * 255.255.255.0 U 0 0 0 eth0
10.0.2.0 * 255.255.255.0 U 0 0 0 eth1
instance-data.a * 255.255.255.255 UH 0 0 0 eth0
$ sudo cat /etc/sysconfig/network-scripts/route-eth0
# Static route for metadata service
169.254.169.254 via 0.0.0.0 dev eth0
$ ifconfig -a
eth0 Link encap:Ethernet HWaddr 06:5B:66:C0:16:C3
inet addr:10.0.0.100 Bcast:10.0.0.255 Mask:255.255.255.0
inet6 addr: fe80::45b:66ff:fec0:16c3/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:9001 Metric:1
RX packets:732 errors:0 dropped:0 overruns:0 frame:0
TX packets:678 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:73668 (71.9 KiB) TX bytes:70086 (68.4 KiB)
Interrupt:72
eth1 Link encap:Ethernet HWaddr 06:12:84:DD:FD:5C
inet addr:10.0.2.100 Bcast:10.0.2.255 Mask:255.255.255.0
inet6 addr: fe80::412:84ff:fedd:fd5c/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:9001 Metric:1
RX packets:13 errors:0 dropped:0 overruns:0 frame:0
TX packets:15 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1304 (1.2 KiB) TX bytes:1362 (1.3 KiB)
Interrupt:73
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)