皆様、こんにちは。y.kobayashiです。
IPv4 CIDRが重複しているVCN同士をIPv6 CIDRを使用して接続する方法についてご紹介していきます。
目次
構成
今回の構成図は以下となります。

IPv6通信を有効にする為の設定は、以下の順序で行います。
1.仮想クラウド・ネットワークのIPv6有効化
2.サブネットのIPv6有効化
3.VNICのIPv6有効化
4.IPv6アドレスの取得
5.動的ルーティング・ゲートウェイの作成
6.セキュリティリストの作成
※ 本記事では仮想クラウド・ネットワークおよびインスタンスの作成手順は割愛させていただきます。
設定
仮想クラウド・ネットワークのIPv6有効化
最初に仮想ネットワークのIPv6有効化を行います。
OCIコンソール画面左上のメニューから「ネットワーキング」→「仮想クラウド・ネットワーク」を選択します。

「対象の仮想クラウド・ネットワーク」→「CIDRブロック/接頭辞」→「CIDRブロック / IPv6接頭辞の追加」を選択します。
「CIDRブロック/接頭辞の追加」から「オラクル社が割り当てたIPv6/56接頭辞を割り当てます。」のトグルボタンをオンに切り替え「CIDRブロック/接頭辞の追加」を選択します。
vcn-2に対しても同様の手順でIPv6有効化を行います。

サブネットのIPv6有効化
続いて、サブネットのIPv6有効化を行います。
仮想クラウド・ネットワークの詳細画面から「サブネット」→「対象のサブネット」を選択します。

「IPv6接頭辞」→「IPv6接頭辞の追加」を選択し、「オラクル社が割り当てたIPv6/64接頭辞を割り当てます。」項目にチェック入れます。次に、「オラクル社が割り当てたIPv6アドレス」の欄に任意の16進数(例:01など)を入力します。この入力値によりサブネットごとに一意となるIPv6接頭辞が自動的に生成されます。入力内容を確認し画面下部の「IPv6接頭辞の追加」を選択します。
vcn-2のサブネットに対しても同様の手順でIPv6有効化を行います。
VNICのIPv6有効化
サブネットでIPv6を有効化した後、対象インスタンスの VNIC に対しても IPv6有効化を行います。
コンソール画面左上のメニューから「コンピュート」→「インスタンス」を選択します。

対象のインスタンスを選択し、「アタッチされたVNIC」→「プライマリVNIC」を選択します。

「IPv6アドレス」→「IPv6アドレスの割当」から以下の項目を入力、「割当て」を選択します。
- 接頭辞:Oracle社によって割り当てられた IPv6 /56 接頭辞を使用します。ユーザーが自ら接頭辞を定義する必要はありません。
- IPv6アドレス割当て:接頭辞からIPv6アドレスを自動的に割り当てます
- ルート表:VCN、サブネットまたはVNICルート表を使用します
vm-2に対しても同様の手順でIPv6有効化を行います。
IPv6アドレスの取得
VNICのIPv6有効化後インスタンスに接続しIPv6アドレスの取得を行います。
1.ファイアウォールの設定を確認
sudo firewall-cmd --list-all
2.dhcpv6-clientサービスが許可されていない場合はサービスの許可設定を行う
sudo firewall-cmd --permanent --add-service=dhcpv6-client
sudo firewall-cmd --reload
※今回は、dhcpv6-clientサービスが既に許可されていた為この手順は実施しておりません。
3.IPv6アドレスを取得する
sudo dhclient -6 <interfaces:の内容を記載>
例)
sudo dhclient -6 enp0s6
4.IPv6アドレスが割り当てられているか確認
ip addr
vm-2に対しても同様の手順でIPv6アドレスの取得を行います。
以下は、実際のコマンド実行例です。
赤枠の箇所に表示されているinet6の行にIPv6アドレスが割り当てられていることが確認できます。

動的ルーティング・ゲートウェイの作成
動的ルーティング・ゲートウェイの作成を行います。
コンソール画面左上のメニューから「ネットワーキング」→顧客接続性内の「動的ルーティング・ゲートウェイ」を選択します。

「動的ルーティング・ゲートウェイの作成」からゲートウェイ名を入力し作成を行います。
ゲートウェイ作成後、「VCNアタッチメント」→「仮想クラウド・ネットワーク・アタッチメントの作成」から、VCNごとにアタッチメントを作成します。
- vcn-1 用アタッチメント
添付名:vcn-1-attach
仮想クラウド・ネットワーク:vcn-1
- vcn-2 用アタッチメント
添付名:vcn-2-attach
仮想クラウド・ネットワーク:vcn-2
各VCN間のIPv6通信がDRGを経由するように、ルート表が適切に設定されているか確認します。
コンソール画面左上から「ネットワーキング」→顧客接続性の「動的ルーティング・ゲートウェイ」の順に進み、先ほど作成した動的ルーティング・ゲートウェイ(drg)を選択します。
次に「DRGルート表」→「Autogenerated Drg Route Table for VCN atttachments」→「すべてのルート・ルールの取得」を選択します。
表示されたルート表の 「宛先CIDRブロック」 の項目から、各サブネットに設定されたIPv6CIDRを確認できます。

セキュリティリストの設定
各VCN間でIPv6通信が行えるように、まずはセキュリティ・リストにイングレス・ルールを追加します。
コンソール画面左上のメニューから「ネットワーキング」→「仮想クラウド・ネットワーク」→「対象のVCN(vcn-1)」→「セキュリティリスト」の順に進み作成されているセキュリティリストを選択します。
次に「イングレス・ルール」→「イングレス・ルールの追加」を選択し、以下の項目を入力してルールを作成します。
ソースタイプ:CIDR
ソースCIDR:vcn-2に設定されているIPv6 CIDR
IPプロトコル:IPv6-ICMP
タイプ:128
コードオプション:ALL
説明:任意(例:vcn-2からのICMPv6通信許可)
続いて、エグレス・ルールの追加を行います。
先ほどと同様に対象のVCN(vcn-1)のセキュリティ画面にて「エグレス・ルール」→「エグレス・ルールの追加」を選択し、以下の項目を入力してルールを作成します。
ソースタイプ:CIDR
ソースCIDR:::/0(::/0はすべてのIPv6アドレスを表すCIDRです。IPv4における0.0.0.0/0と同様にあらゆるIPv6宛ての通信を対象とします。)
IPプロトコル:すべてのプログラム
説明:任意(例:全IPv6宛て送信許可)
vcn-2のセキュリティリストに対しても同様の手順でvcn-1からの通信の許可を行います。
このルールを適用することで、vcn-1からvcn-2に対する ICMPv6 応答の送受信が許可されIPv6 を用いた疎通確認(ping)が正しく行えるようになります。
疎通確認
ping6コマンドで各VCNに配置されたサーバ間での疎通確認を行います。
コマンドの実行結果より、サーバ間で正常に通信できていることが確認できます。
vm-1→vm-2

vm2→vm-1

さいごに
本記事では、IPv4 CIDRをIPv6 CIDRに置き換えてVCN間を接続する方法についてご紹介しましたがいかがでしたでしょうか。
IPv4 CIDRが重複している環境では、VCN間の接続に制限が生じることがありますがIPv6 CIDRを活用することでその制約を回避することが可能になります。
今後、IPv6 CIDRへの置き換えをご検討される際のご参考になれば幸いです。
以上となります。最後までご覧頂きありがとうございました。