さくら VPS のローカルネットワークに接続するインターフェイスを Ubuntu 20.04 で設定する

November 14, 2020

さくら VPS には同一リージョンの複数サーバーを仮想スイッチングハブに接続することでプライベートネットワークを構築することができます。今回は Ubuntu 20.04 をセットアップした時の設定のメモです。

いつもは OS アップグレードしていたので気づかなかったですが、最近の Ubuntu はネットワークインターフェース設定が netplan というユーティリティに標準は置き換わっています。そのため、その設定の紹介になります。

ローカルネットワークの構築設定

さくら VPS のコントロールパネルで、スイッチを追加して、各サーバーのネットワーク接続画面でそれぞれ追加したスイッチに接続させます。(なお、現状はサーバーはシャットダウンしておかないとこの適用できません。)

インターフェースを確認

1
$ ip addr show

でネットワークインターフェースを確認します。

1
2
3
4
5
6
7
8
9
10
11
12
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 52:54:12:00:XX:XX brd ff:ff:ff:ff:ff:ff
inet 153.120.xx.xxx/23 brd 153.120.xx.255 scope global ens3
valid_lft forever preferred_lft forever
inet6 2401:2500:102:2b03:xxx:xxx:xx:xxx/64 scope global
valid_lft forever preferred_lft forever
inet6 fe80::5054:12ff:fe00:xxxx/64 scope link
valid_lft forever preferred_lft forever
3: ens4: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 52:54:12:00:XX:XX brd ff:ff:ff:ff:ff:ff
4: ens5: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 52:54:12:00:XX:XX brd ff:ff:ff:ff:ff:ff

今回は ens で始まる物理インターフェイスの2番目の ens4 をスイッチに接続したものとしてセットアップします。

netplan の設定

1
$ cat /etc/netplan/01-netcfg.yaml

で現在の設定を確認します。

1
2
3
4
5
6
7
8
9
10
11
12
13
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
version: 2
renderer: networkd
ethernets:
ens3:
addresses: [ 153.126.xxx.xxx/23 ]
gateway4: 153.126.xxx.1
nameservers:
search: [ vs.sakura.ne.jp ]
addresses:
- "133.242.0.3"

ens3 がデフォルトで存在します。ここに ens4 を追加します。スイッチに接続するということは、同一ネットワークアドレスを持っていればそれだけで通信できます。
よって至ってシンプルです。ここではクラス C のネットワークアドレス 192.168.200.0/24 でサーバーにIPアドレス 192.168.200.10 を付与します。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
version: 2
renderer: networkd
ethernets:
ens3:
addresses: [ 153.126.xxx.xxx/23 ]
gateway4: 153.126.xxx.1
nameservers:
search: [ vs.sakura.ne.jp ]
addresses:
- "133.242.0.3"
ens4:
addresses: [ 192.168.200.10/24 ]

root 権限で最後の2行を追記しました。

netplan の設定反映

netplan コマンドには tryapply サブコマンドがあります。

try は適用までに猶予があり、メイン側のインターフェースを変更する場合などで SSH 越しにターミナル操作を行っており失敗した場合に自動で revert するものです

1
2
3
4
5
6
7
8
# netplan try
Do you want to keep these settings?


Press ENTER before the timeout to accept the new configuration


Changes will revert in 112 seconds

タイムアウトするまでに Enter の入力しない設定が更新されません。
今回は 2番目のインターフェースを追記しただけなので即時反映の apply でもいいでしょう。

1
# netplan apply

疎通確認

先に設定済みのサーバーから ping 192.168.200.10 で疎通を確認します。

ローカルネットワークの通信を許可

1
2
# ufw allow from 192.168.200.0/24
Rule added

とするとローカルネットワーク間の通信が全て許可されます。

実践的な設定

役割に応じてサーバーを複数運用している場合は、それぞれ必要なポートとクライアントのアドレス空間だけを許可する方が良いでしょう。

例えば、ローカルネットワークとしてはネットワークアドレス 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 からの通信を許可すると必要最小限になります。

Ubuntu さくら VPS

tilfin freelance software engineer