ニフクラ ブログ

ニフクラ/FJ Cloud-Vやクラウドの技術について、エンジニアが語るブログです。

プライベートLAN同士を接続する機能 プライベートブリッジ の提供を開始しました

この記事は富士通クラウドテクノロジーズ Advent Calendar 2019 20日目の記事です。

こんにちは。富士通クラウドテクノロジーズの id:foobaron です。

ニフクラでは2019年12月11日に、プライベートLAN同士を接続する機能プライベートブリッジの提供を開始しました。 この機能と使い方をご紹介します。

f:id:foobaron:20191220174731p:plain

概要

これまで、ニフクラで同一リージョン内のプライベートLAN同士を接続するには、 ゾーンコネクトを利用する必要がありました。 また、異なるリージョン間のプライベートLAN同士を接続するには、拠点間VPNを使用する必要がありました。

プライベートブリッジでは、VPN接続等を必要とせずに、異なるプライベートLAN内のサーバー同士がプライベートIPアドレスを利用して通信できます。

プライベートブリッジを利用する通信は、インターネットを通過せずニフクラのバックボーンネットワークを通過します。 ニフクラのバックボーンネットワークに単一障害点はありません。

プライベートブリッジは、オンデマンドに設定して利用可能です。 提供するリージョンは、east-1, west-1です。

利用可能なゾーンのプライベートLAN同士であれば、プライベートブリッジで接続可能です。 同一ゾーン内のプライベートLAN同士もルーターを経由せずに接続することもできます。

プライベートブリッジの構成要素

f:id:foobaron:20191220182249p:plain
プライベートブリッジの例示用ネットワーク

プライベートブリッジの構成要素は次の3つです。

プライベートブリッジ

プライベートLAN同士を接続するための要素です。

プライベートLANをプライベートブリッジに接続するには、コネクターが必要です。

コネクター

プライベートLANをプライベートブリッジに接続する概念です。

プライベートLAN1つにつきコネクター1つを接続します。

リーチャビリティ

コネクターで複数リージョンのプライベートLANを接続するために、プライベートブリッジに設定する概念です。 図には載っていません。

1つのプライベートブリッジに複数リージョンのコネクターを接続するには、 プライベートブリッジに、指定したリージョンのリーチャビリティを追加します。 リーチャビリティを追加しない場合、プライベートブリッジには1つのリージョンのコネクターしか接続できません。

プライベートブリッジの使い方

本記事では、次のネットワーク構成図のように、3つのプライベートLANを1つのプライベートブリッジで接続します。 図ではプライベートLAN以外のネットワークは省略しています。 サーバー3台にはUbuntu 18.04 LTSを使用しました。 ゾーンにはeast-11とwest-11を使用しました。

f:id:foobaron:20191220182634p:plain
プライベートブリッジの検証用ネットワーク

1. ファイアウォールグループの作成

ファイアウォールグループはゾーンごとに作成する必要があります。 east-11とwest-11のそれぞれでファイアウォールグループを作成します。

今回のネットワーク構成では、プライベートブリッジのサブネットに 192.168.0.0/24 を利用します。 プライベートブリッジの通信を許可するために、そのサブネットのINルールとOUTルールを設定します。

(プライベートブリッジとは関係ありませんが、SSHを許可するINルールも設定しています。)

east-11でe11、west-11でw11という名前のファイアウォールグループを作成しました。

f:id:foobaron:20191220144638p:plain
ファイアウォールグループ作成

2. プライベートLANの作成

east-11に2つ (e111, e112) 、west-11に1つ (w111) のプライベートLANを作成します。

3つのプライベートLANのサブネットは 192.168.0.0/24 を入力しました。

f:id:foobaron:20191220144811p:plain
プライベートLAN作成

3. サーバーの作成

east-11に2台 (e112, e112) 、west-11に1台 (w111) のサーバーを作成します。

サーバーにはSSHキーが必要です。 また、手順1, 2で作成したファイアウォール、プライベートLANを指定します。

f:id:foobaron:20191220144830p:plain
サーバー作成

手順1-3で、今回接続するサーバー3台とプライベートLAN3つが作成できました。

f:id:foobaron:20191220182743p:plain
手順1-3でサーバー3台とプライベートLAN3つを作成

4. コネクターの作成

プライベートブリッジにプライベートLANを接続するために、コネクターを作成します。 プライベーLAN1つにつきコネクターを1つ作成します。

f:id:foobaron:20191220144945p:plain
コネクター作成

作成すると、コネクターIDが自動で割り当てられます。

f:id:foobaron:20191220145006p:plain
コネクターID

今回はプライベートLANが3つあるので、コネクターも3つを作成します。

コネクターを3つ作成すると、次のような状態になります。

f:id:foobaron:20191220182825p:plain
手順4でコネクターを3つ作成

5. プライベートブリッジの作成

今回は3つのプライベートLANを1つに接続するため、プライベートブリッジは1つ作成します。

f:id:foobaron:20191220145102p:plain
プライベートブリッジ作成

作成すると、プライベートブリッジIDが自動で割り当てられます。

f:id:foobaron:20191220145127p:plain
プライベートブリッジID

6. リーチャビリティの追加

コネクターを接続する前に、プライベートブリッジにリーチャビリティを追加します。

f:id:foobaron:20191220145149p:plain
リーチャビリティ追加

今回は、手順5で作成したプライベートブリッジに、east-1とwest-1のリーチャビリティを追加しました。

f:id:foobaron:20191220145219p:plain
east-1とwest-1のリーチャビリティが追加されたプライベートブリッジ

7. コネクターの接続

コネクターをプライベートブリッジに接続します。 プライベートブリッジを選択し、コネクターIDを指定します。

f:id:foobaron:20191220145300p:plain
コネクター接続

今回は、手順4で作成した3つのコネクターを、手順5で作成したプライベートブリッジに接続しました。

f:id:foobaron:20191220145323p:plain
3つのコネクターをプライベートブリッジに接続

接続が完了すると、3つのプライベートLANが接続された状態になります。

ここまでの設定が、ニフクラのコントロールパネル上でオンデマンドに実施できました。

f:id:foobaron:20191220182634p:plain
手順7でコネクターをプライベートブリッジに接続

8. サーバー間の接続性確認

では最後に、サーバー同士の疎通性を、 ping コマンドで確認します。

簡単な動作確認のみのため、サーバーには iproute2 で構成図どおりのIPアドレスを設定しました。 なお、Ubuntu 18.04 LTSの場合は netplan でIPアドレスの設定を永続化できます。

e111:~# ip -4 address add 192.168.0.101/24 dev ens192
e112:~# ip -4 address add 192.168.0.102/24 dev ens192
w111:~# ip -4 address add 192.168.0.103/24 dev ens192

iptables 等の サーバー側のファイアウォールの設定を変更するなどして通信が破棄されない状態 で、3台のサーバーの間の疎通性を確認します。

次のように、同一ゾーン内のプライベートLAN同士が接続できていることが確認できます。

e111:~# ping -c 10 192.168.0.102
PING 192.168.0.102 (192.168.0.102) 56(84) bytes of data.
64 bytes from 192.168.0.102: icmp_seq=1 ttl=64 time=0.355 ms
64 bytes from 192.168.0.102: icmp_seq=2 ttl=64 time=0.357 ms
64 bytes from 192.168.0.102: icmp_seq=3 ttl=64 time=0.320 ms
64 bytes from 192.168.0.102: icmp_seq=4 ttl=64 time=0.277 ms
64 bytes from 192.168.0.102: icmp_seq=5 ttl=64 time=0.295 ms
64 bytes from 192.168.0.102: icmp_seq=6 ttl=64 time=0.323 ms
64 bytes from 192.168.0.102: icmp_seq=7 ttl=64 time=0.302 ms
64 bytes from 192.168.0.102: icmp_seq=8 ttl=64 time=0.285 ms
64 bytes from 192.168.0.102: icmp_seq=9 ttl=64 time=0.244 ms
64 bytes from 192.168.0.102: icmp_seq=10 ttl=64 time=0.291 ms

--- 192.168.0.102 ping statistics ---
10 packets transmitted, 10 received, 0% packet loss, time 9207ms
rtt min/avg/max/mdev = 0.244/0.304/0.357/0.040 ms

異なるリージョン間のプライベートLAN同士も接続できていることが確認できます。 東日本のeast-11と西日本のwest-11の間がRTT (Round Trip Time: 往復遅延時間) 14.0ミリ秒で通信できました。

e111:~$ ping -c 10 192.168.0.103
PING 192.168.0.103 (192.168.0.103) 56(84) bytes of data.
64 bytes from 192.168.0.103: icmp_seq=1 ttl=64 time=14.0 ms
64 bytes from 192.168.0.103: icmp_seq=2 ttl=64 time=14.3 ms
64 bytes from 192.168.0.103: icmp_seq=3 ttl=64 time=14.0 ms
64 bytes from 192.168.0.103: icmp_seq=4 ttl=64 time=14.0 ms
64 bytes from 192.168.0.103: icmp_seq=5 ttl=64 time=14.0 ms
64 bytes from 192.168.0.103: icmp_seq=6 ttl=64 time=13.9 ms
64 bytes from 192.168.0.103: icmp_seq=7 ttl=64 time=13.9 ms
64 bytes from 192.168.0.103: icmp_seq=8 ttl=64 time=14.0 ms
64 bytes from 192.168.0.103: icmp_seq=9 ttl=64 time=14.0 ms
64 bytes from 192.168.0.103: icmp_seq=10 ttl=64 time=13.9 ms

--- 192.168.0.103 ping statistics ---
10 packets transmitted, 10 received, 0% packet loss, time 9010ms
rtt min/avg/max/mdev = 13.988/14.046/14.316/0.108 ms

プライベートブリッジの利用がオンデマンドに実施できることを確認しました。 具体的には、本記事執筆時点 (2019/12/19) では、コネクターをプライベートブリッジに接続するまでに、かかった時間を見てみます。

east-11のプライベートLAN e111のコネクターをプライベートブリッジに接続した状態で、 east-11のプライベートLAN e112のコネクターを接続したところ、すぐに ping で到達性を確認できました。 VM e111からVM e112に ping を実行した状態で、VM e111で tcpdump した結果は次のとおりです。

e111:~# tcpdump -i ens192
<中略>
16:36:33.546967 IP 192.168.0.101 > 192.168.0.102: ICMP echo request, id 1632, seq 201, length 64
16:36:33.547232 IP 192.168.0.102 > 192.168.0.101: ICMP echo reply, id 1632, seq 201, length 64
16:36:34.570834 IP 192.168.0.101 > 192.168.0.102: ICMP echo request, id 1632, seq 202, length 64
16:36:34.571131 IP 192.168.0.102 > 192.168.0.101: ICMP echo reply, id 1632, seq 202, length 64
16:36:35.594841 IP 192.168.0.101 > 192.168.0.102: ICMP echo request, id 1632, seq 203, length 64
16:36:35.595174 IP 192.168.0.102 > 192.168.0.101: ICMP echo reply, id 1632, seq 203, length 64

ニフクラのコントロールパネルでプライベートブリッジの接続情報を確認すると、 2つ目のプライベートLAN e112の接続完了時間が 16:36:33 であり、ICMP echo replyの応答を受信している時刻も 16:36:33 でした。

f:id:foobaron:20191220145716p:plain
プライベートブリッジのコネクター接続情報 (プライベートLAN e111とプライベートLAN e112を接続した状態)

2つ目のコネクターを接続した直後から、2つのプライベートLANの間で通信できるようになりました。

なお、プライベートブリッジ接続情報は、コネクターIDでなくアタッチメントIDで表示されます。ご注意ください。

制限事項

プライベートブリッジと他のサービスの併用には一部制限があります。 詳細は、プライベートブリッジの制限事項をご確認ください。

まとめ

プライベートブリッジでは、オンデマンドに複数のプライベートLAN同士が接続できます。 プライベートブリッジにより、複数のゾーンやリージョンを利用したシステムを構築できます。

ご利用の際は、併用制限サービスや併用不可サービスにご注意ください。