さくらのクラウド ネットワーク入門 4. スイッチ同士のブリッジ接続を使ってみる

この「さくらのクラウド ネットワーク入門」では、これまで「スイッチ」を用いてネットワークを構築してきました(記事末の関連記事を参照)。このVol. 4では、さくらのクラウドの「ブリッジ」接続を用いて、引き続きスイッチのネットワークを拡張していきます。
さくらのクラウドの「ブリッジ」接続とは?
さくらのクラウドの「スイッチ」では、L2レイヤーで動作するシンプルなLANを構築できます。さくらのクラウドでは複数リージョンの複数ゾーンでサーバーを起動できますが、スイッチだけではゾーンを超えて通信することができません(リージョンやゾーンについては下記のマニュアルを参照)。
このとき異なるゾーンのスイッチ同士をブリッジ接続することで、複数ゾーンにまたがったネットワークを構築できます。

さらにクラウドのサーバだけではなく、さくらインターネットが提供する「さくらのクラウド」以外のサービス、例えば「さくらの専用サーバ」やVPSをシームレスに利用できることも、さくらのクラウドの大きな特徴であり、ここでもブリッジ接続を利用できます。

なお、ブリッジ接続できるのは同じ会員IDが作成したスイッチのみで、さらにクラウド上では同じプロジェクトが保有するスイッチでなければなりません。異なる会員IDや異なるプロジェクト間を接続するには「ローカルルータ」というL3仮想ネットワーク機器を使う必要があります。また、ハウジングとの接続には「ハイブリッド接続」を利用します。
👉 よくある質問と回答 > ローカルルータとブリッジ接続とハイブリッド接続の違いは何ですか?
どんなネットワークをブリッジで構成するか
本記事では、複数のゾーンにまたがったネットワークをブリッジ接続してみます。ここまで「さくらのクラウド ネットワーク入門」の解説に沿って作業を進めていれば、例えば以下のようなネットワーク構成になっているはずです。

これまで、このネットワークがどのゾーンに存在するかは気にしていませんでした。今回は異なるゾーンのスイッチを接続しますから、既存の環境は東京第2ゾーンに構築されているとし、そして新たに石狩第1ゾーンでサーバーを起動します。
もし既存の環境を東京第2以外のゾーンに構築してきた方は、複数のゾーンにまたがるように新しいゾーンを選択し、本記事でのゾーン指定を自身の環境に読み替えてください。
1. ゾーンをまたぐブリッジを作成する
さっそく「ブリッジ」を作成してみましょう。クラウドのコントロールパネルで、左メニューの「ネットワーク」に「スイッチ」や「パケットフィルタ」と並んで「ブリッジ」があります。ここで少しややこしいですが、スイッチとブリッジには次のような違いがあります。
- スイッチ : ゾーンごとに存在する
- ブリッジ : グローバルオブジェクトとしてゾーンをまたいで存在する
最初に既存の環境でブリッジを作成しますが、ゾーンをまたいで同一プロジェクト内でアクセスされることに注意してください。それでは作業を進めます。クラウドのコンロールパネルのメニューから「ブリッジ」を選択します。

まだブリッジは何も存在しないので、右上の「+追加」をクリックして「ブリッジを追加」画面を開きます。

名前を付けて右下の「+作成」ボタンをクリックします。ここでは「blog」という名前にします。

ブリッジ「blog」が1つ作成されました。
2. 既存のスイッチをブリッジに接続する
続いて既存のネットワークで起動しているスイッチを、ブリッジに接続します。左メニューの「スイッチ」を開き、既存のスイッチ「switch」を「編集」します。

スイッチの詳細画面に移動したら「ブリッジ」タブを選択し、右下の「+接続」をクリックします。

先ほど作成したブリッジ「blog」を選択して、右下の「接続」をクリックします。

しばらく時間がかかりますが、完了したらあらためて「switch」を確認してください。サーバとの接続数が「3」で、かつ「blog」とブリッジ接続されていることがわかります。

また、左メニューの「ブリッジ」から「blog」を選択するとスイッチ接続数は「1」で、このゾーンのスイッチとして先ほど接続した「switch」が確認できます。

既存のネットワークでの作業はこれで完了です。なお、ここではスイッチ側からブリッジに接続しましたが、ブリッジ側からでもできます。
3. 別のゾーンでスイッチを起動してブリッジに接続する
メニューで「ブリッジ」を表示したまま、左上のメニューから別のゾーンに切り替えます。ここでは前述のように「石狩第1」としておきます(自身の環境に読み替えてください)。

右メニューから「ブリッジ」を選択すると先ほど作成したブリッジ「blog」が表示されており、既存のネットワークで接続したためスイッチ接続数は「1」ですが、このゾーンのスイッチは空欄になっているはずです。
前述のようにブリッジはグローバルオブジェクトですが、スイッチはゾーンごとに存在します。そのためこちらのゾーンでメニューの「スイッチ」を開いても、まだ何も存在しません。

右上の「+作成」をクリックして「スイッチ追加」画面を開きます。

ここでは「ishikarino1」という名前でスイッチを作成しています。

このスイッチ「ishikarino1」を先ほど同じ手順で編集し、ブリッジ「blog」に接続してください。なお、スイッチの作成方法は本シリーズのVol. 1(記事末のリンク参照)で説明しています。
4. 別のゾーンでスイッチに接続されたサーバを起動する
新たなゾーンのネットワークには、まだスイッチしか存在しません。ここに接続するサーバを1台起動します。右メニューの「サーバ」でリソースを作成する際に、接続先のネットワークとして先ほど作成したスイッチ「ishikarino1」を選択します。

また今回は、IPアドレスの設定ではじめから「固定IPアドレスを利用」します。さくらのクラウドの「ブリッジ」では複数のゾーンが同一IPのサブネットとして接続されるため、既存の環境と同じネットワークアドレスを使用します。
既存のサーバには、192.168.50.1/24から192.168.50.3/24までのIPアドレスを付与しているため、今回は次のように設定しました。
- IPアドレス:192.168.50.10
- サブネット:24
- ゲートウェイ:ひとまず空欄のまま
これで新しいサーバが起動したら ip a コマンドでIPアドレスを確認してください。先ほど指定したIPv4アドレスが付与されています。
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 9c:a3:ba:26:2e:d2 brd ff:ff:ff:ff:ff:ff
altname enp0s3
altname ens3
inet 192.168.50.10/24 brd 192.168.50.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::9ea3:baff:fe26:2ed2/64 scope link
valid_lft forever preferred_lft forever
5. ブリッジを介した接続を確認する
新たに立ち上げたゾーンのサーバから既存のゾーンのサーバへ、ブリッジ越しにPingを送ってみましょう。以下のように出力されるはずです。
$ ping 192.168.50.1
PING 192.168.50.1 (192.168.50.1) 56(84) bytes of data.
64 bytes from 192.168.50.1: icmp_seq=1 ttl=64 time=38.3 ms
64 bytes from 192.168.50.1: icmp_seq=2 ttl=64 time=19.2 ms
64 bytes from 192.168.50.1: icmp_seq=3 ttl=64 time=19.3 ms
64 bytes from 192.168.50.1: icmp_seq=4 ttl=64 time=19.2 ms
以前に内部ネットワークでPingを実行した際は、同じゾーン内の通信だったためほとんどが1msを下回る応答でした。今回はゾーンをまたいでおり、とくに上記の実行例は東京と北海道(石狩)で距離も離れているため、応答に19ms程度の時間がかかることがわかります。
逆向きも試してみましょう。既存のサーバから次のコマンドを実行します。
$ ping 192.168.50.10
PING 192.168.50.10 (192.168.50.10) 56(84) bytes of data.
64 bytes from 192.168.50.10: icmp_seq=1 ttl=64 time=19.6 ms
64 bytes from 192.168.50.10: icmp_seq=2 ttl=64 time=19.2 ms
64 bytes from 192.168.50.10: icmp_seq=3 ttl=64 time=19.2 ms
なお、本シリーズのVol. 3でパケットフィルタを設定していれば、踏台サーバからのPingは通らないので注意してください。





