さくらのクラウド ネットワーク入門 1. スイッチによるネットワークの構築

さくらのクラウドでは「スイッチ」という仮想ネットワーク機器を提供しています。スイッチを活用することで内部ネットワークを作ったり、パブリックネットワークとプライベートネットワークの中間に位置するDMZネットワークを作成したりできます。
本記事では、さくらのクラウドでネットワークを構築してみようという方に向けて、スイッチの概要と使い方を紹介し、簡単な内部ネットワークを構築してみます。Vol. 2以降では内部ネットワークをインターネットと接続する方法を紹介します。
- 仮想サーバとNIC
- 手順1. スイッチの構築
- 手順2. 内部ネットワークのサーバを起動してスイッチに接続
- 手順3. 内部ネットワーク間の疎通を確認
- 本記事で参照するマニュアル
さくらのクラウドでは、まず「共有セグメント」という外部ネットワークが割り当てられます。セグメントを分けるには、スイッチやルータなどを使って意図的にプライベートネットワークを作るという形態になります。
また、さくらのクラウドは、さくらインターネットが提供するハウジングや専用サーバと連携できる、という外資ハイパースケーラーにはない強みがあります。これをスイッチのブリッジ接続と組み合わせると、次のような構成になります。

仮想サーバとNIC
さくらのクラウドでは、起動するサーバにNIC (Network Interface Card)をアタッチし、そのNICをどこに接続するかでネットワーク構成が定まります。サーバの新規作成時にはデフォルトでNICが1つ追加され、ここで「インターネットに接続」を選択するとIPアドレスが割り当てられて共有セグメントに接続されます。

現在のネットワーク構成を確認するには、コントロールパネルの左メニューの一番下にある「マップ」をクリックします。最初のサーバ(ここでは「public」という名前)をデフォルトで作成すると、次のように共有セグメント、つまりパブリックなスペースにサーバが1台存在していることがわかります。

本記事では、ここに別の内部ネットワークを作成します。そして次の記事で、この「public」サーバをゲートウェイとして内部ネットワークとインターネットを接続します。
手順1. スイッチの構築
最初に内部ネットワーク用のスイッチを作成します。コントロールパネルの左メニューから「ネットワーク」にある「スイッチ」を選択します。

画面の右上から「+追加」をクリックします。

「スイッチ追加」画面では、スイッチの名前を付ければルータなしのスイッチがすぐに作成できます。スイッチには他と重複せず分かりやすい名前をつけてあればかまいません。ここでは「switch1」と名付けます。
なお、ここでいう「スイッチ」や「ルータ」は、オンプレミスのネットワークにおけるそれと同じです。スイッチは同じセグメント間の通信を実現させ、ルータを付与すると異なるセグメントへの通信が可能となります。
この作業でマップは次のようになります。

手順2. 内部ネットワークのサーバを起動してスイッチに接続
先ほど作成したスイッチにサーバを接続します。新規でサーバを作成し、接続先のネットワークでは「スイッチ」にチェックを入れ、先ほど作成したスイッチを選びます。

スイッチに接続すると「サーバの設定」にネットワーク設定(IPアドレスなど)の入力欄が追加されますが、ひとまずは「DHCP」を指定しておいてもよいでしょう。このスイッチで構築されるセグメントでは、IPv6のみが有効化されます。IPv4は使えませんので注意してください。
同じ手順でサーバを2台起動します。起動したら、分かりやすいようにスイッチとルータの名前を合わせておくとよいでしょう。ここでは「switch1」セグメントに2つのサーバ(internal1とinternal2)が接続されています。

手順3. 内部ネットワーク間の疎通を確認
先ほど起動した内部ネットワークのサーバ2台は、パブリックなIPアドレスで接続されていないため、外部からネットワーク経由でログインすることができません。さくらのクラウドのコントロールパネルにある「コンソール」からログインします。具体的な手順は次の記事を参照してください。
👉 【始めよう!さくらのクラウド(2)】実践編:シンプルモードでのサーバー作成|コラム|さくらのクラウド
コンソールからログインしたら、ip aコマンドを実行してそれぞれのIPアドレスを特定します。
internal1での実行結果は例えば以下のようになります。
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 fq_codel state UP group default qlen 1000
link/ether 9c:3a:ba:31:db:33 brd ff:ff:ff:ff:ff:ff
altname enp0s3
altname ens3
inet6 fe80::9ea3:baff:fe31:db33/64 scope link
valid_lft forever preferred_lft forever
Internal2では以下のとおりです。
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 fq_codel state UP group default qlen 1000
link/ether 9c:3a:ba:31:c1:51 brd ff:ff:ff:ff:ff:ff
altname enp0s3
altname ens3
inet6 fe80::9ea3:baff:fe31:c151/64 scope link
valid_lft forever preferred_lft forever
それぞれeth0にIPv6アドレスが付与されています。インターナルネットワークですので付与されているのはローカルリンクアドレスになります。
ローカルリンクアドレスとは、IPv6 の fe80::/10 プレフィックスで始まるアドレスで、同一リンク(同一L2セグメント)内の通信にのみ使用できる特別なアドレスです。ルータを越えた通信はできません。今回の手順ではルータを作成していないためこれで問題ありません。
IPv6のPingで、internal1からinternal2への疎通を次のように確認できます。
$ ping6 fe80::9ea3:baff:fe31:c151%eth0
PING fe80::9ea3:baff:fe31:c151%eth0(fe80::9ea3:baff:fe31:c151%eth0) 56 data bytes
64 bytes from fe80::9ea3:baff:fe31:c151%eth0: icmp_seq=1 ttl=64 time=1.49 ms
64 bytes from fe80::9ea3:baff:fe31:c151%eth0: icmp_seq=2 ttl=64 time=0.268 ms
64 bytes from fe80::9ea3:baff:fe31:c151%eth0: icmp_seq=3 ttl=64 time=0.312 ms
64 bytes from fe80::9ea3:baff:fe31:c151%eth0: icmp_seq=4 ttl=64 time=0.288 ms
64 bytes from fe80::9ea3:baff:fe31:c151%eth0: icmp_seq=5 ttl=64 time=0.278 ms
--- fe80::9ea3:baff:fe31:c151%eth0 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4007ms
rtt min/avg/max/mdev = 0.268/0.528/1.494/0.483 ms
以上で、2つのサーバがつながった内部ネットワークを構築できました。次回からは、共有セグメントにある「public」サーバを利用してインターネットに接続します。
次の記事はこちら
さくらのクラウド ネットワーク入門 2. 共有セグメントと内部ネットワークをつなぐ
