UbuntuのIPv6の無効化(さくらのVPSの場合)

Amazon VPSのサービスLightsailで、誰でもサーバーを作ってみよう!のコーナー。さくらインターネットのVPSでも使える情報かも!?

今まで色々と仕事で経験したきましたが、今は誰でも仕事以外でも簡単に情報を知れて実行し、楽しめる時代になったので、そのキッカケを作るためにも情報をまとめて書いていくそんなコーナーです。

さて今回は、前回Amazon Lightsailの「UbuntuのIPv6の無効化」の記事を書きましたが、さくらVPSで同じことをしてしまうと通信が不能になってしまいます。その場合の対処を書いていこうと思います。

同じことをした際の状態

外部からのSSH接続はもちろん、さくらのVPSのコントロールパネルからのコンソールから外部への通信も不可能になってしまいます。コンソールからのアクセスは可能ですのでそこから作業してみましょう。

Ubuntu 18.04 LTSのインターフェース情報は「netplan」で管理されていますのでそのファイルをみてみます。

sudo vi /etc/netplan/01-netcfg.yaml
This file describes the network interfaces available on your systemFor more information, see netplan(5).
network:
version: 2
renderer: networkd
ethernets:
ens3:
addresses:
- "xxx.xxx.xxx.xxx/xx"
- "2001:xx:xx:xx:xx:xx:xx:xx/xx"
gateway4: "xxx.xxx.xxx.xxx"
gateway6: "fe80::x"
nameservers:
search: [ localdomain ]
addresses:
- "xxx.xxx.xxx.xxx"
- "xxx.xxx.xxx.xxx"
- "2001:xx::x"

インターフェースである「ens3」の情報の内部にIPv6の情報が書き込まれた状態です。

netplanのファイルからIPv6の情報を削除

IPv6関連する3つの情報を既存のものから削除します。

  • 「network: ethernets: ens3: address:」内のIPv6のIPアドレス
  • 「network: ethernets: ens3: gateway6:」のIPv6のゲートウェイのIPアドレス
  • 「network: ethernets: ens3: nameservers: addresses:」のIPv6のDNSのIPアドレス
sudo vi /etc/netplan/01-netcfg.yaml
This file describes the network interfaces available on your systemFor more information, see netplan(5).
network:
version: 2
renderer: networkd
ethernets:
ens3:
addresses:
- "xxx.xxx.xxx.xxx/xx"
gateway4: "xxx.xxx.xxx.xxx"
nameservers:
search: [ localdomain ]
addresses:
- "xxx.xxx.xxx.xxx"
- "xxx.xxx.xxx.xxx"

ネットワーク情報の更新

netplanの設定ファイルを変更後に、下記のコマンドで適用させるか再起動を行うと、無事通信ができるようになります。

sudo netplan apply

これでスッキリしました。

さていかがだったでしょうか。また違う記事で違う設定を書いていこうと思います。

UbuntuのIPv6の無効化

Amazon VPSのサービスLightsailで、誰でもサーバーを作ってみよう!のコーナー。さくらインターネットのVPSでも使える情報かも!?

今まで色々と仕事で経験したきましたが、今は誰でも仕事以外でも簡単に情報を知れて実行し、楽しめる時代になったので、そのキッカケを作るためにも情報をまとめて書いていくそんなコーナーです。

今回は、UbuntuのIPv6の無効化です。Amazon LightsailはIPv6が使用できませんが、Ubuntuをインストールした状態ではIPv6が有効化になっています。使用できないのであればシンプルに無効化してしまおう。と言うことです。

さくらインターネットのVPSの場合、このページの情報だけを適用してしまうと通信が不能になりますので、こちらの「UbuntuのIPv6の無効化(さくらのVPSの場合)」を参照してください。

ネットワークの状況確認

ip a のコマンドで状況を確認すると「inet6」と言う項目があり、そしてグローバルIPが割り当てられている「eth0」の「inet6」にはfe80::で始まるリンクローカルアドレスが割り当てられています。
(リンクローカルアドレスとはIPv4で言う169.254から始まるIPアドレスです。)

$ ip a
1: lo: 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: mtu 9001 qdisc fq_codel state UP group default qlen 1000
link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
inet xxx.xxx.xxx.xxx/xx brd xxx.xxx.xxx.xxx scope global dynamic eth0
valid_lft 3559sec preferred_lft 3559sec
inet6 fe80::xxxxxxxxxxxxxxxxx/64 scope link
valid_lft forever preferred_lft forever

GRUBの設定ファイルの編集

/etc/default/grubを編集し「GRUB_CMDLINE_LINUX」の項目に「ipv6.disable=1」と言う情報を追加します。修正完了後 sudo update-grub のコマンドを入力しGRUBの情報を上書きします。

$ sudo vi /etc/default/grub
...
GRUB_CMDLINE_LINUX="ipv6.disable=1"
...
sudo update-grub

再度ネットワークの状況確認

再度 ip a コマンドで確認してしますと「inet6」と言う項目が消えています。

$ ip a
1: lo: 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
2: eth0: mtu 9001 qdisc fq_codel state UP group default qlen 1000
link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
inet xxx.xxx.xxx.xxx/xx brd xxx.xxx.xxx.xxx scope global dynamic eth0
valid_lft 3585sec preferred_lft 3585sec

これでスッキリしました。

さていかがだったでしょうか。また違う記事で違う設定を書いていこうと思います。

UbuntuのSwapの追加

Amazon VPSのサービスLightsailで、誰でもサーバーを作ってみよう!のコーナー。さくらインターネットのVPSでも使える情報かも!?

今まで色々と仕事で経験したきましたが、今は誰でも仕事以外でも簡単に情報を知れて実行し、楽しめる時代になったので、そのキッカケを作るためにも情報をまとめて書いていくそんなコーナーです。

さて今回は、UbuntuのSwapの追加です。Amazon LightsailでUbuntuをインストールするとSwapが作成されません。そのためメモリが少ないインスタンスだとメモリが枯渇する可能性があります。

メモリ不足でビルドが停止

今回はNGINXをビルドしていたのですが、こんなエラーが発生して停止してしまいました。コンパイラーエラーで、Killedされちゃっています。それ以外でも通常に運用していく際でもプロセスがKilledされちゃう場合があるのでメモリが少ないインスタンスだとSwapを用意しておいた方が良いです。

...
cc: internal compiler error: Killed (program cc1plus)
...

メモリの状況を確認

free コマンドで確認をしてみるとSwapが0B。sudo swapon –show とコマンドを打ち込んでも何も表示されません。そう、Swapが存在していない状態です。

$ sudo free -h
total used free shared buff/cache available
Mem: 479M 98M 179M 756K 202M 368M
Swap: 0B 0B 0B
$ sudo swapon --show

Swapを作成

ダミーファイルの作成

以前はSwapと言うパーティションを作成してSwapを活用していましたが、最近はSwap用ファイルを作成しそれをSwap領域として活用できるようになりました。そのため fallocate コマンを使用しSwap用のダミーファイルを作成します。(今回はメモリが512MBのサーバーのため、トップディレクトリにメモリの2倍の1GBの「swapfile」と言うダミーファイルを作成しました。)

$ sudo fallocate -l 1G /swap.img

rootのみのアクセス権に設定

作成した「swapfile」は他のユーザーでも読むことや実行が可能になってしまっています。セキュリティ的に危ないためアクセス権をrootのみ可能にします。

$ sudo chmod 600 /swap.img

Swap領域として使用する準備

今までで作成した「swapfile」は何も情報のない、ただのファイルです。ここでSwap領域として使用できるように mkswap のコマンドを使用します。そうするとダミーファイルであった「swapfile」にSwapの領域の情報が書き込まれます。

$ sudo mkswap /swap.img
Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes)
no label, UUID=...

Swapを有効化

作成したSwap領域はまだ作っただけで無効化されていますので swapon のコマンドでSwapとして有効化させます。

sudo swapon /swap.img

Swap領域の永続化

現状ですと有効化されたSwap領域は再起動を行ってしまうと無効化されてしまいます。再起動後も有効にしたい場合は「fstab」にSwap領域の情報を書き込まなければなりません。

$ sudo vi /etc/fstab
...
/swap.img swap swap defaults 0 0
...

再度メモリの状況を確認

再度 free -hsudo swapon –show でSwapの状況を確認してみます。最初には0BだったSwapが1GBで容量で有効化されています。

$ sudo free -h
total used free shared buff/cache available
Mem: 479M 94M 174M 756K 210M 371M
Swap: 1.0G 0B 1.0G
$ sudo swapon --show
NAME TYPE SIZE USED PRIO
/swapfile file 1024M 0B -2

このように無事にSwapが追加されました。

さていかがだったでしょうか。また違う記事で違う設定を書いていこうと思います。