はじめに
同じリージョン内にある2つのVCNをDRGを用いて接続し(ローカル・ピアリング)、VCN間で相互に名前解決を行うための手順を備忘録的に記します。
こちらの図のように、Tokyoリージョン内に「VCNTokyo1(10.1.0.0/16)」、「VCNTokyo2(10.2.0.0/16)」という2つのVCNがある想定です。
1.動的ルーティング・ゲートウェイ(DRG)の作成
動的ルーティング・ゲートウェイを作成します。
コンソールの動的ルーティング・ゲートウェイに移動します。
「動的ルーティング・ゲートウェイの作成」をクリックします。
「名前」に「DRGTokyo」と入力して「動的ルーティング・ゲートウェイの作成」をクリックします。
動的ルーティング・ゲートウェイ「DRGTokyo」が作成されました。
2.動的ルーティング・ゲートウェイ(DRG)のVCNへのアタッチ
作成した動的ルーティング・ゲートウェイをVCNTokyo1、VCNTokyo2にアタッチします。
まず最初に、DRGTokyoをVCNTokyo1にアタッチします。
「仮想クラウド・ネットワーク・アタッチメントの作成」をクリックします。
任意の名前を入力して、仮想クラウドネットワークとして「VCNTokyo1」を選択し、「仮想クラウド・ネットワーク・アタッチメントの作成」をクリックします。
DRGTokyoがVCNTokyo1にアタッチされました。
次に、DRGTokyoをVCNTokyo2にアタッチします。
「仮想クラウド・ネットワーク・アタッチメントの作成」をクリックします。
任意の名前を入力して、仮想クラウドネットワークとして「VCNTokyo2」を選択し、「仮想クラウド・ネットワーク・アタッチメントの作成」をクリックします。
DRGTokyoがVCNTokyo2にアタッチされました。
3.ルート表へのルート・ルールの追加
別のVCNへのトラフィックを動的ルーティング・ゲートウェイにルーティングするためのルート・ルールをルート表に追加します。
仮想クラウド・ネットワークに移動します。
「VCNTokyo1」をクリックします。
リソース欄の「ルート表」をクリックします。
ルート表名をクリックします。
「ルート・ルールの追加」をクリックします。
ターゲット・タイプに「動的ルーティング・ゲートウェイ」を選択し、宛先CIDRブロックにVCNTokyo2のCIDRブロックである「10.2.0.0/16」を入力して、「ルート・ルールの追加」をクリックします。
VCNTokyo1からDRGTokyoを経由してVCNTokyo2にアクセスするためのルート・ルールが追加されました。
VCNTokyo2の詳細画面に移動します。
リソース欄の「ルート表」をクリックします。
ルート表明をクリックします。
ルート・ルールの追加をクリックします。
ターゲット・タイプに「動的ルーティング・ゲートウェイ」を選択し、宛先CIDRブロックにVCNTokyo1のCIDRブロックである「10.1.0.0/16」を入力して、「ルート・ルールの追加」をクリックします
VCNTokyo2からDRGTokyoを経由してVCNTokyo1にアクセスするためのルート・ルールが追加されました。
4.VCN間のトラフィックを許可するセキュリティ・ルールの追加
別のVCNからの受信トラフィックを許可するセキュリティ・ルールをセキィリティ・リストに追加します。
まず、VCNTokyo1のセキュリティ・リストに、VCNTokyo2からのトラフィックを許可するセキュリティ・ルールを追加します。
VCNTokyo1の詳細画面に移動します。
リソース欄の「セキュリティ・リスト」をクリックします。
セキュリティ・リスト名をクリックします。
セキュリティ・リストの詳細画面が表示されます。
「イングレス・ルールの追加」をクリックします。
今回は、VCNTokyo2(10.2.0.0/16)からVCNTokyo1への全てのネットワークアクセスを許可するルールを追加します。
ソース・タイプとして「CIDR」を選択、ソースCIDRにVCNTokyo2のCIDRである「10.2.0.0/16」を入力します。IPプロトコルとして「すべてのプロトコル」を選択して、「イングレス・ルールの追加」をクリックします。
VCNTokyo2(10.2.0.0/16)からVCNTokyo1への全てのネットワークアクセスを許可するイングレス・ルールが追加されました。
同様に、VCNTokyo1のセキュリティ・リストに、VCNTokyo2からのトラフィックを許可するセキュリティ・ルールを追加します。
VCNTokyo2の詳細画面に移動します。
リソース欄の「セキュリティ・リスト」をクリックします。
セキュリティ・リスト名をクリックします。
セキュリティ・リストの詳細画面が表示されます。
「イングレス・ルールの追加」をクリックします。
VCNTokyo1(10.1.0.0/16)からVCNTokyo2への全てのネットワークアクセスを許可するルールを追加します。
ソース・タイプとして「CIDR」を選択、ソースCIDRにVCNTokyo1のCIDRである「10.1.0.0/16」を入力します。IPプロトコルとして「すべてのプロトコル」を選択して、「イングレス・ルールの追加」をクリックします。
VCNTokyo1(10.1.0.0/16)からVCNTokyo2への全てのネットワークアクセスを許可するイングレス・ルールが追加されました。
5.VCN間のネットワーク疎通確認
VCNTokyo1内にあるServer1からVCNTokyo2内にあるServer2(10.2.1.100)に対してpingを実行してみます。
[opc@server1 ~]$ ping -c 5 10.2.1.100
PING 10.2.1.100 (10.2.1.100) 56(84) bytes of data.
64 bytes from 10.2.1.100: icmp_seq=1 ttl=63 time=0.402 ms
64 bytes from 10.2.1.100: icmp_seq=2 ttl=63 time=0.456 ms
64 bytes from 10.2.1.100: icmp_seq=3 ttl=63 time=0.429 ms
64 bytes from 10.2.1.100: icmp_seq=4 ttl=63 time=0.414 ms
64 bytes from 10.2.1.100: icmp_seq=5 ttl=63 time=0.434 ms
--- 10.2.1.100 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4102ms
rtt min/avg/max/mdev = 0.402/0.427/0.456/0.018 ms
[opc@server1 ~]$
VCNTokyo1内のインスタンスからVCNTokyo2内のインスタンスにアクセスできることが確認できました。
VCNTokyo2内にあるServer2からVCNTokyo1内にあるServer1(10.1.1.100)に対してpingを実行してみます。
[opc@server2 ~]$ ping -c 5 10.1.1.100
PING 10.1.1.100 (10.1.1.100) 56(84) bytes of data.
64 bytes from 10.1.1.100: icmp_seq=1 ttl=63 time=0.397 ms
64 bytes from 10.1.1.100: icmp_seq=2 ttl=63 time=0.408 ms
64 bytes from 10.1.1.100: icmp_seq=3 ttl=63 time=0.382 ms
64 bytes from 10.1.1.100: icmp_seq=4 ttl=63 time=0.367 ms
64 bytes from 10.1.1.100: icmp_seq=5 ttl=63 time=0.355 ms
--- 10.1.1.100 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4134ms
rtt min/avg/max/mdev = 0.355/0.381/0.408/0.031 ms
[opc@server2 ~]$
VCNTokyo2内のインスタンスからVCNTokyo1内のインスタンスにアクセスできることが確認できました。
VCNTokyo1内にあるServer1のFQDNを確認します。
[opc@server1 ~]$ hostname -A
server1.subnettokyo1.vcntokyo1.oraclevcn.com
[opc@server1 ~]$
VCNTokyo2内にServer2のFQDNを確認します。
[opc@server2 ~]$ hostname -A
server2.subnettokyo2.vcntokyo2.oraclevcn.com
[opc@server2 ~]$
FQDNを使用して、pingを実行してみます。
Server1からServer2(server2.subnettokyo2.vcntokyo2.oraclevcn.com)に対してpingを実行してみます。
[opc@server1 ~]$ ping -c 5 server2.subnettokyo2.vcntokyo2.oraclevcn.com
ping: server2.subnettokyo2.vcntokyo2.oraclevcn.com: Name or service not known
[opc@server1 ~]$
Server2からServer1(server1.subnettokyo1.vcntokyo1.oraclevcn.com)に対してpingを実行してみます。
[opc@server2 ~]$ ping -c 5 server1.subnettokyo1.vcntokyo1.oraclevcn.com
ping: server1.subnettokyo1.vcntokyo1.oraclevcn.com: Name or service not known
[opc@server2 ~]$
いずれの場合も、別のVCNにあるホストの名前解決ができないため、pingコマンドが失敗しました。
6.プライベートDNS・リゾルバの変更
別のVCNにあるホストの名前解決ができるように、VCNのプライベートDNS・リゾルバの設定を変更します。
まず、VCNTokyo1内のインスタンスからVCNTokyo2内のインスタンスの名前解決ができるように、VCNTokyo1のDNSプライベート・リゾルバにVCNTokyo2のプライベート・ビューを関連づけます。
VCNTokyo1の詳細画面に移動します。
VCN情報のDNSリゾルバ「VCNTokyo1」をクリックします。
VCNTokyo1のプライベート・リゾルバの詳細画面が表示されます。
「関連付けられたプライベート・ビュー」セクションの「プライベート・ビューの管理」をクリックします。
「プライペート・ビューの選択」で「VCNTokyo2」を選択し、「変更の保存」をクリックします。
VCNTokyo2のプライベート・ビューがVCNTokyo1のプライベートDNSリゾルバに関連付けられました。
7.VCN間のFQDNでのアクセス確認
再度、Server1からServer2(server2.subnettokyo2.vcntokyo2.oraclevcn.com)に対してpingを実行してみます。
[opc@server1 ~]$ ping -c 5 server2.subnettokyo2.vcntokyo2.oraclevcn.com
PING server2.subnettokyo2.vcntokyo2.oraclevcn.com (10.2.1.100) 56(84) bytes of data.
64 bytes from server2.subnettokyo2.vcntokyo2.oraclevcn.com (10.2.1.100): icmp_seq=1 ttl=63 time=0.425 ms
64 bytes from server2.subnettokyo2.vcntokyo2.oraclevcn.com (10.2.1.100): icmp_seq=2 ttl=63 time=0.384 ms
64 bytes from server2.subnettokyo2.vcntokyo2.oraclevcn.com (10.2.1.100): icmp_seq=3 ttl=63 time=0.464 ms
64 bytes from server2.subnettokyo2.vcntokyo2.oraclevcn.com (10.2.1.100): icmp_seq=4 ttl=63 time=0.878 ms
64 bytes from server2.subnettokyo2.vcntokyo2.oraclevcn.com (10.2.1.100): icmp_seq=5 ttl=63 time=0.480 ms
--- server2.subnettokyo2.vcntokyo2.oraclevcn.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4109ms
rtt min/avg/max/mdev = 0.384/0.526/0.878/0.179 ms
[opc@server1 ~]$
ホスト名(FQDN)を使用して、VCNTokyo1内のインスタンスからVCNTokyo2内のインスタンスにアクセスできました。
同様に、VCNTokyo2内のインスタンスからVCNTokyo1内のインスタンスの名前解決ができるように、VCNTokyo2のDNSプライベート・リゾルバにVCNTokyo1のプライベート・ビューを関連付けます。
VCNTokyo2の詳細画面に移動します。
VCN情報のDNSリゾルバ「VCNTokyo2」をクリックします。
VCNTokyo2のプライベート・リゾルバの詳細画面が表示されます。
「関連付けられたプライベート・ビュー」セクションの「プライベート・ビューの管理」をクリックします。
「プライペート・ビューの選択」で「VCNTokyo1」を選択し、「変更の保存」をクリックします。
VCNTokyo1のプライベート・ビューがVCNTokyo2のプライベートDNSリゾルバに関連付けられました。
再度、Server2からServer1(server1.subnettokyo1.vcntokyo1.oraclevcn.com)に対してpingを実行してみます。
[opc@server2 ~]$ ping -c 5 server1.subnettokyo1.vcntokyo1.oraclevcn.com
PING server1.subnettokyo1.vcntokyo1.oraclevcn.com (10.1.1.100) 56(84) bytes of data.
64 bytes from server1.subnettokyo1.vcntokyo1.oraclevcn.com (10.1.1.100): icmp_seq=1 ttl=63 time=0.361 ms
64 bytes from server1.subnettokyo1.vcntokyo1.oraclevcn.com (10.1.1.100): icmp_seq=2 ttl=63 time=0.395 ms
64 bytes from server1.subnettokyo1.vcntokyo1.oraclevcn.com (10.1.1.100): icmp_seq=3 ttl=63 time=0.379 ms
64 bytes from server1.subnettokyo1.vcntokyo1.oraclevcn.com (10.1.1.100): icmp_seq=4 ttl=63 time=0.378 ms
64 bytes from server1.subnettokyo1.vcntokyo1.oraclevcn.com (10.1.1.100): icmp_seq=5 ttl=63 time=0.383 ms
--- server1.subnettokyo1.vcntokyo1.oraclevcn.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4130ms
rtt min/avg/max/mdev = 0.361/0.379/0.395/0.016 ms
[opc@server2 ~]$
ホスト名(FQDN)を使用して、VCNTokyo2内のインスタンスからVCNTokyo1内のインスタンスにアクセスできました。