さくら VPS には同一リージョンの複数サーバーを仮想スイッチングハブに接続することでプライベートネットワークを構築することができます。今回は Ubuntu 20.04 をセットアップした時の設定のメモです。
いつもは OS アップグレードしていたので気づかなかったですが、最近の Ubuntu はネットワークインターフェース設定が netplan というユーティリティに標準は置き換わっています。そのため、その設定の紹介になります。
ローカルネットワークの構築設定
さくら VPS のコントロールパネルで、スイッチを追加して、各サーバーのネットワーク接続画面でそれぞれ追加したスイッチに接続させます。(なお、現状はサーバーはシャットダウンしておかないとこの適用できません。)
インターフェースを確認
1 | $ ip addr show |
でネットワークインターフェースを確認します。
1 | 2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 |
今回は ens で始まる物理インターフェイスの2番目の ens4 をスイッチに接続したものとしてセットアップします。
netplan の設定
1 | $ cat /etc/netplan/01-netcfg.yaml |
で現在の設定を確認します。
1 | # This file describes the network interfaces available on your system |
ens3 がデフォルトで存在します。ここに ens4 を追加します。スイッチに接続するということは、同一ネットワークアドレスを持っていればそれだけで通信できます。
よって至ってシンプルです。ここではクラス C のネットワークアドレス 192.168.200.0/24
でサーバーにIPアドレス 192.168.200.10
を付与します。
1 | # This file describes the network interfaces available on your system |
root 権限で最後の2行を追記しました。
netplan の設定反映
netplan コマンドには try と apply サブコマンドがあります。
try は適用までに猶予があり、メイン側のインターフェースを変更する場合などで SSH 越しにターミナル操作を行っており失敗した場合に自動で revert するものです
1 | # netplan try |
タイムアウトするまでに Enter の入力しない設定が更新されません。
今回は 2番目のインターフェースを追記しただけなので即時反映の apply でもいいでしょう。
1 | # netplan apply |
疎通確認
先に設定済みのサーバーから ping 192.168.200.10
で疎通を確認します。
ローカルネットワークの通信を許可
1 | # ufw allow from 192.168.200.0/24 |
とするとローカルネットワーク間の通信が全て許可されます。
実践的な設定
役割に応じてサーバーを複数運用している場合は、それぞれ必要なポートとクライアントのアドレス空間だけを許可する方が良いでしょう。
例えば、ローカルネットワークとしてはネットワークアドレス 192.168.200.0/24 として設定し、アプリケーションサーバーにはネットワークアドレス 192.168.200.0/25 として 192.168.200.1 ~ 192.168.200.126 を割り当てて、データベースサーバーにはネットワークアドレス 192.168.200.128/25 として 192.168.200.129 ~ 192.168.200.254 を割り当ててます。
そしてデータベースサーバー内でアプリケーションサーバー 192.168.200.128/25 からの通信を許可すると必要最小限になります。