概要
既存のIPv4環境にIPv6通信を追加して疎通確認できるかの検証を行います。各VPCをTransit Gatewayで接続した環境を想定し、IPv6が有効化されていない状態からひとつずつ設定を有効化していきます。
検証ステップ
- IPv4環境の確認(各種IPv6設定は無効化された状態)
- 疎通先VPCのIPv6設定有効化
- 疎通元VPCのIPv6設定有効化
- Transit GatewayアタッチメントでIPv6サポート有効化
- ルートテーブルにIPv6 CIDR追加
- セキュリティグループにIPv6 CIDR追加
環境
| リソース | CIDR / IPアドレス |
|---|---|
| test-vpc1 | 10.0.0.0/16 |
| test-vpc1-subnet | 10.0.0.0/24 |
| test-vpc2 | 10.1.0.0/16 |
| test-vpc2-subnet | 10.1.0.0/24 |
| test-vpc1-ec2 | 10.0.0.21 |
| test-vpc2-ec2 | 10.1.0.4 |
初期設定
- test-vpc1:IPv6無効
- test-vpc2:IPv6無効
- Transit Gatewayアタッチメント:IPv6無効
- Transit Gatewayルートテーブル:ルート伝播有効
初期状態の確認
test-vpc1-ec2にはリンクローカルアドレスのみ割り当てられており、IPv6グローバルアドレスはありません。
[root@ip-10-0-0-21 ~]# ip -6 addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 state UNKNOWN qlen 1000
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: ens5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 state UP qlen 1000
inet6 fe80::481:4ff:fec0:5223/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
IPv4ではTransit Gateway経由で正常に疎通できています。
[root@ip-10-0-0-21 ~]# ping 10.1.0.4
PING 10.1.0.4 (10.1.0.4) 56(84) bytes of data.
64 bytes from 10.1.0.4: icmp_seq=1 ttl=126 time=1.29 ms
64 bytes from 10.1.0.4: icmp_seq=2 ttl=126 time=0.542 ms
64 bytes from 10.1.0.4: icmp_seq=3 ttl=126 time=0.526 ms
test-vpc2-ec2も同様にリンクローカルアドレスのみです。
[ec2-user@ip-10-1-0-4 ~]$ ip -6 addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 state UNKNOWN qlen 1000
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: ens5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 state UP qlen 1000
inet6 fe80::4b6:d7ff:fe85:6501/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
Step 1:test-vpc2(疎通先)のIPv6有効化
以下の手順でtest-vpc2のIPv6を有効化します。
- VPCにIPv6 CIDRを割り当て
- サブネットにIPv6 CIDRを割り当て
- サブネットのIPアドレス自動割当て設定でIPv6アドレスの自動割当てを有効化
- EC2のネットワークインターフェース(ENI)にIPv6アドレスを割り当て
test-vpc2-ec2にIPv6グローバルアドレスが割り当てられたことを確認します。
[root@ip-10-1-0-4 ~]# ip -6 addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 state UNKNOWN qlen 1000
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: ens5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 state UP qlen 1000
inet6 2406:da14:xxx:xxxx:xxxx:xxxx:xxxx:xxxx/128 scope global dynamic noprefixroute
valid_lft 443sec preferred_lft 133sec
inet6 fe80::4b6:d7ff:fe85:6501/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
この時点でtest-vpc1-ec2からping6を試行しますが、test-vpc1側にIPv6アドレスがなく、ルーティングも設定されていないため到達不能です。
[root@ip-10-0-0-21 ~]# ping -6 2406:da14:xxx:xxxx:xxxx:xxxx:xxxx:xxxx
ping: connect: Network is unreachable
Step 2:test-vpc1(疎通元)のIPv6有効化
test-vpc2と同様の手順でtest-vpc1のIPv6を有効化します。
[root@ip-10-0-0-21 ~]# ip -6 addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 state UNKNOWN qlen 1000
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: ens5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 state UP qlen 1000
inet6 2406:da14:yyy:yyyy:yyyy:yyyy:yyyy:yyyy/128 scope global dynamic noprefixroute
valid_lft 437sec preferred_lft 127sec
inet6 fe80::481:4ff:fec0:5223/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
IPv6グローバルアドレスが割り当てられました。ただし、まだTransit GatewayがIPv6に対応していないため疎通はできません。
Step 3:Transit GatewayアタッチメントでIPv6サポート有効化
Transit Gatewayコンソールから、各VPCアタッチメントのIPv6サポートを有効にします。
ルート伝播が有効なため、Transit GatewayルートテーブルにIPv6 CIDRのルートが自動的に追加されます。
Step 4:VPCルートテーブルの設定
Transit GatewayアタッチメントでIPv6を有効にしても、VPC側のサブネットルートテーブルには自動でルートは追加されません。手動で対向VPCのIPv6 CIDRへのルートを追加する必要があります。
| VPC | 送信先(Destination) | ターゲット(Target) |
|---|---|---|
| test-vpc1側ルートテーブル | 2406:da14:xxx:xx00::/56 | Transit Gateway |
| test-vpc2側ルートテーブル | 2406:da14:yyy:yy00::/56 | Transit Gateway |
Step 5:セキュリティグループの設定変更
test-vpc2側のセキュリティグループで、test-vpc1-ec2のIPv6アドレスからのICMPv6を許可します。
| 設定対象 | ルール |
|---|---|
| test-vpc2のセキュリティグループ | インバウンド:ICMPv6、送信元 2406:da14:yyy:yy00::/56 を許可 |
設定変更前(セキュリティグループ未許可)
[root@ip-10-0-0-21 ~]# ping -6 2406:da14:xxx:xxxx:xxxx:xxxx:xxxx:xxxx
PING 2406:da14:xxx:xxxx:xxxx:xxxx:xxxx:xxxx(2406:da14:xxx:xxxx:xxxx:xxxx:xxxx:xxxx) 56 data bytes
(応答なし)
設定変更後(セキュリティグループ許可済み)
[root@ip-10-0-0-21 ~]# ping -6 2406:da14:xxx:xxxx:xxxx:xxxx:xxxx:xxxx
PING 2406:da14:xxx:xxxx:xxxx:xxxx:xxxx:xxxx(2406:da14:xxx:xxxx:xxxx:xxxx:xxxx:xxxx) 56 data bytes
64 bytes from 2406:da14:xxx:xxxx:xxxx:xxxx:xxxx:xxxx: icmp_seq=306 ttl=63 time=0.544 ms
64 bytes from 2406:da14:xxx:xxxx:xxxx:xxxx:xxxx:xxxx: icmp_seq=307 ttl=63 time=0.474 ms
64 bytes from 2406:da14:xxx:xxxx:xxxx:xxxx:xxxx:xxxx: icmp_seq=308 ttl=63 time=0.468 ms
64 bytes from 2406:da14:xxx:xxxx:xxxx:xxxx:xxxx:xxxx: icmp_seq=309 ttl=63 time=0.499 ms
64 bytes from 2406:da14:xxx:xxxx:xxxx:xxxx:xxxx:xxxx: icmp_seq=310 ttl=63 time=0.469 ms
IPv6でTransit Gateway経由の疎通が確認できました。
まとめ
下記の手順にて既存のIPv4 + Transit Gateway環境にIPv6環境の追加を確認できました。
- VPC・サブネットへのIPv6 CIDR割り当て
- EC2のENIへのIPv6アドレス割り当て
- Transit GatewayアタッチメントのIPv6サポート有効化
- VPCサブネットルートテーブルへのIPv6ルート追加
- セキュリティグループへのIPv6ルール追加









