Amazon AWS EC2 VPCのIPv6対応 インスタンスからのIPv6アドレス通信
やったこととサマリ
構築した環境と疎通を試したIPv6通信
オハイオリージョンの同一サブネット内に ubuntu 16.04 LTS のインスタンスを2つ立てて、下記のIPv6通信をしてみた。
- 同一サブネット内のインスタンス間の直接IPv6通信
- グローバルユニキャストアドレス経由
- リンクローカルユニキャストアドレス経由
- All Node Address (ff02::1) リンクローカルマルチキャストアドレスあての通信
- stateful DHCPv6に頼らず勝手IPv6アドレスをインスタンスに付与しての通信
サマリ
- インスタンス間の直接IPv6通信はグローバルアドレス, リンクローカルアドレスともに制限なくできた。
- All Node Address (ff02::1) へのping6 (ICMP echo request送信) で近隣ノード(デフォルトルータを含む)を見つけられない。
- 勝手にIPv6アドレスを割り当てても使えずAWSのインフラが割り当てたIPv6アドレスだけしか使えない。現時点(2017.1.15)ではVPN用途でユーザが自前のグローバルIPv6アドレスを持ち込んだり、プライベートIPv4アドレスの感覚で、ユニークローカルIPv6アドレス(ULA)を付けられない様子。
構成図
VPCの同一サブネット内にインスタンスを2つ立てた。
+---------+
| GW |
+----+----+
|RA fe80::4fd:d1ff:fec8:f9cf
|↓
2001:1f16:XXXX:YYYY::/64([P1]と表記) |
--+------------------------------------+-------+--------
| |
| [P1]:f557:112e:f9bd:c7f3 | [P1]:d326:143a:2015:79fa
|eth0 fe80::4df:a5ff:fe6c:5d57 |eth0 fe80::4f0:13ff:feeb:c61d
+----+----+ +----+----+
| ubuntu1 | | ubuntu2 |
+---------+ +---------+
インスタンス間の直接IPv6通信
ubuntu1 to ubuntu2 (グローバルユニキャストアドレス)
OK
ubuntu1# ping6 2600:1f16:XXXX:YYYY:d326:143a:2015:79fa
PING 2600:1f16:8df:XXXX:YYYY:112e:f9bd:c7f3(2600:1f16:XXXX:YYYY:f557:112e:f9bd:c7f3) 56 data bytes
64 bytes from 2600:1f16:XXXX:YYYY:f557:112e:f9bd:c7f3: icmp_seq=1 ttl=64 time=0.523 ms
64 bytes from 2600:1f16:XXXX:YYYY:f557:112e:f9bd:c7f3: icmp_seq=2 ttl=64 time=0.603 ms
^C
ubuntu1 to ubutu2 (リンクローカルユニキャストアドレス)
OK
ubuntu1# ping6 fe80::4f0:13ff:feeb:c61d%eth0
PING fe80::4f0:13ff:feeb:c61d%eth0(fe80::4f0:13ff:feeb:c61d) 56 data bytes
64 bytes from fe80::4f0:13ff:feeb:c61d: icmp_seq=1 ttl=64 time=0.466 ms
64 bytes from fe80::4f0:13ff:feeb:c61d: icmp_seq=2 ttl=64 time=0.553 ms
^C
ubuntu1 to All Nodes Address (リンクローカルマルチキャスト)
ubuntu1# ping6 ff02::1%eth0
64 bytes from fe80::4df:a5ff:fe6c:5d57: icmp_seq=1 ttl=64 time=0.024 ms
64 bytes from fe80::4df:a5ff:fe6c:5d57: icmp_seq=2 ttl=64 time=0.032 ms
ubuntu1# ping6 ff02::1%eth0
64 bytes from fe80::4df:a5ff:fe6c:5d57: icmp_seq=1 ttl=64 time=0.024 ms
64 bytes from fe80::4df:a5ff:fe6c:5d57: icmp_seq=2 ttl=64 time=0.032 ms
同一リンク内にいるはずの、ubuntu2からもデフォルトルータからECHO replyは来ず、自分自身からのみ返事がくる。ubuntu2側のeth0を見ていてもECHO requestが来ないので、インスタンス間にある仮想スイッチで止められている動きだった。
ubunut1の近隣キャッシュを見ると
ubuntu1# ip -6 nei
fe80::4f0:13ff:feeb:c61d dev eth0 lladdr 06:f0:13:eb:c6:1d STALE
fe80::4fd:d1ff:fec8:f9cf dev eth0 lladdr 06:fd:d1:c8:f9:cf router STALE
ICMP ECHO requst/reply は疎通しないもののの、ubuntu2,デフォルトルータいずれも近隣探索は成功しておりMACアドレスの解決はできている。仮想スイッチは近隣探索は通している。
RAで通知されたデフォルトルータへのアクセス
ubuntu1# ip -6 route
fe80::/64 dev eth0 proto kernel metric 256 pref medium
default via fe80::4fd:d1ff:fec8:f9cf dev eth0 proto ra metric 1024 expires 1799sec hoplimit 64 pref medium
ubuntu1# ping6 fe80::4fd:d1ff:fec8:f9cf%eth0
^C
リンクローカルユニキャストアドレスでデフォルトルータへICMP ECHO requstを飛ばしても返事なし。
インスタンスに勝手IPv6アドレスをつける
prefix::1 (グローバルユニキャストアドレス)をつける
stateful DHCPv6で割り当てられるIPv6アドレス(マネージメントコンソールで確認できるIPv6アドレス)ではないアドレスを手動でつけて通信を試みる。
ubuntu1 to Internet (インスタンス to Internet)
ubuntu1# ip -6 addr add 2001:1f16:XXXX:YYYY::1/64 dev eth0
DADの重複検知がないことを確認して
# ping6 ipv6.google.com
PING ipv6.google.com(2607:f8b0:4001:c09::71) 56 data bytes
^C
結果: IPv6インターネットへの通信不可
ubuntu1 to ubuntu2 (インスタンス同士)
ubuntu1# ping6 2600:1f16:XXXX:YYYY:d326:143a:2015:79fa
PING 2600:1f16:XXXX:YYYY:d326:143a:2015:79fa(2600:1f16:XXXX:YYYY:d326:143a:2015:79fa) 56 data bytes
^C
近隣要請に対して近隣通知が返ってこず近隣探索に失敗している。
ubuntu1# ip -6 nei
2600:1f16:XXXX:YYYY:d326:143a:2015:79fa dev eth0 INCOMPLETE
結果: 通信不可
管理されているアドレスに近いグローバルユニキャストアドレスをつける
DHCPv6で取れるアドレス (2600:1f16:XXXX:YYYY:f557:112e:f9bd:c7f3) + 1 をつける
ubuntu1# ip -6 addr add 2600:1f16:XXXX:YYYY:f557:112e:f9bd:c7f4/64 dev eth0
ubuntu1 to Internet
ubuntu1# ping6 ipv6.google.com
PING ipv6.google.com(in-in-x8a.1e100.net) 56 data bytes
^C
結果: 通信不可
ubuntu1 to ubuntu2
ubuntu1# ping6 2600:1f16:XXXX:YYYY:d326:143a:2015:79fa
PING 2600:1f16:XXXX:YYYY:d326:143a:2015:79fa(2600:1f16:XXXX:YYYY:d326:143a:2015:79fa) 56 data bytes
From 2600:1f16:XXXX:YYYY:f557:112e:f9bd:c7f4 icmp_seq=1 Destination unreachable: Address unreachable
From 2600:1f16:XXXX:YYYY:f557:112e:f9bd:c7f4 icmp_seq=2 Destination unreachable: Address unreachable
^C
結果: 通信不可
グローバルユニキャストアドレス(ULAを含む)はユーザが勝手持込IPv6アドレスを付けられない様子。
リンクローカルユニキャストアドレス
ubuntu1 のリンクローカルアドレスとして手動で fe80::1234 を付ける
ubuntu1# ip addr del fe80::4df:a5ff:fe6c:5d57/64 dev eth0
ubuntu1# ip addr add fe80::1234/64 dev eth0
ubuntu2のリンクローカルアドレスへICMP ECHO requestを飛ばすが返事はない。ubuntu2の近隣探索にも失敗している。
ubuntu1# ping6 fe80::4f0:13ff:feeb:c61d%eth0
PING fe80::4f0:13ff:feeb:c61d%eth0(fe80::4f0:13ff:feeb:c61d) 56 data bytes
From fe80::1234 icmp_seq=1 Destination unreachable: Address unreachable
From fe80::1234 icmp_seq=2 Destination unreachable: Address unreachable
^C
ubuntu1# ip -6 nei
fe80::4f0:13ff:feeb:c61d dev eth0 INCOMPLETE
リンクローカルアドレスも勝手アドレスを付けらず、インフラ(仮想スイッチ)がアドレス(/128)単位でアクセス制限をしているようである。個々のインスタンスを管理するためにstateful DHCPv6を使うのが合理的であるし、ネットワークも割り当てたIPv6アドレスでない勝手IPv6アドレスによる通信を抑止しているようだ。
関連記事
■ Amazon EC2 VPCのIPv6対応 インスタンスへのIPv6アドレス付与は m-flagつきRA + stateful DHCPv6
http://qiita.com/ip6/items/5c307af204ea83097755
Author And Source
この問題について(Amazon AWS EC2 VPCのIPv6対応 インスタンスからのIPv6アドレス通信), 我々は、より多くの情報をここで見つけました https://qiita.com/ip6/items/bec8a619c6d486dea0a8著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .