VoIP/WebRTC技術者のためのSTUN/TURN サーバー解説。その2. 「さくらのVPS」でつくるSTUN/TURN サーバー(インストール編)。
今回はSTUN/TURN サーバー解説の続きです。前回はSTUN/TURNについての簡単な説明がメインでしたが、今回は実際にSTUN/TURNサーバーを「さくらのVPS 」を利用して構築してみます。STUN/TURNについて、ぼんやりと知っているという方にはこの記事に沿って実際に構築してみることを強くオススメします。実際に手を動かしてみると本当の理解が早いです。
目次
サーバー構築の目的
TURNサーバを構築して、データをリレーさせて、その時ipv6<->ipv4のコンバート、TCP<->UDPのコンバートをさせてしまおうというお話です。
さくらのVPSについて
実際にSTUN/TURN サーバーを立てる場所はやはりそのサーバーの性質上、外部に立てるべきです。今の時代、クラウドが発達して簡単にリソースを利用できるので便利ですよね。私は実際にSTUN/TURN サーバーをアマゾン(AWS)とさくらのVPS上で構築しました。結果としてどちらも正常に稼働しましたが、断然、さくらのVPSを利用することをオススメします。理由は、
- マニュアルが見やすい。
- デフォルトで固定のipv6アドレスが割り当てられている。
- 設定で特殊な設定がいらない。
これに対しAWSではipv6をリージョンで利用するにあたり、最初にいくつか面倒な設定が必要です。また、「固定のipv6アドレスが割り当てできない」、「AWS独自設定が必要」などちょっとセットアップのハードルが上がります。
以降ではさくらのVPS上の構築例を解説します。さくらのVPSの無料お試し期間を利用して同様に構築してみることをオススメします。
また、STUN/TURN サーバーにはオープンソースのCOTURNを使用します。
それでは早速構築していきます。
1. ipv6を有効化
作成したVPS(仮想サーバー)にログインします。さくらのVPSのOSは2018年現在、デフォルトではCentOS7です。冒頭でも書きましたが、さくらのVPSにはデフォルトでipv4,ipv6のアドレスが割り当てられていますが、利用開始時にはipv4しか有効化されていません。そのため、以下の手順でipv6を有効化します。
1-1. Serverにsshでログイン。
1-2. カーネルの確認。
# cat /etc/sysctl.conf
ファイル内の以下のような部分において、赤字箇所で無効化されていることがわかります。
# Do not accept RA
net.ipv6.conf.default.accept_ra=0
net.ipv6.conf.all.accept_ra=0
net.ipv6.conf.eth0.accept_ra=0
# Do not use IPv6
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
1-3. コメントアウトしてipv6を有効化する。
sedコマンドで#を付けて該当行をコメントアウトします。
# sed -i -e "/net.ipv6.conf.default.disable_ipv6/s/^/#/" /etc/sysctl.conf # sed -i -e "/net.ipv6.conf.all.disable_ipv6/s/^/#/" /etc/sysctl.conf
1-4. ネットワーク設定変更。
次のファイルを開いて以下のような行のコメントアウトを外します。
# cat /etc/sysconfig/network NETWORKING=yes NETWORKING_IPV6=yes #IPV6_DEFAULTDEV="eth0" #IPV6_DEFAULTGW="fe80::1"
# cat /etc/sysconfig/network-scripts/ifcfg-eth0 #IPV6INIT="yes" #IPV6_ROUTER="no" #IPV6ADDR="2001:e42:102:1501:XXX:XXX:XXX:XXX/64"
1-5. ネットワークサービスのリスタート
# sysctl -p # systemctl restart network.service
※ipv6の有効化についてはさくらの公式サポート情報サイトにも記載があります。こちらも合わせて確認しましょう。
2. DNSにドメイン(サブドメイン)登録
既にドメインを所有している方はそのサブドメインをこのサーバーのアドレスに割り当てて登録しましょう。
例:
既にドメイン”callcenter-trend.com”を取得済と仮定した場合、自身の契約するレジストラ管理画面にログインして、DNSエントリを以下のように登録します。
サブドメイン | coturn.callcenter-trend.com |
Aレコード | 123.123.123.123 |
AAAAレコード | 2401:2500:XXX:XXX:XXX:XXX:XXX:XXX |
Aレコードに仮想サーバのipv4アドレス、AAAAレコードにipv6アドレスを記載してください。
※まだドメインをお持ちでない方は取得することをオススメします。Ipv6アドレスは長いので、覚えにくいですし、STUN/TURNサーバーとのやり取りを暗号(SSL)化する際も証明書を取得する際にドメインが必要となります。
ドメインを取得する場合はお名前.comがおススメです。
3. COTURNのインストール
3-1. COTURNの取得
# wget http://coturn.net/turnserver/v4.5.0.7/turnserver-4.5.0.7.tar.gz # tar -zxvf turnserver-4.5.0.7.tar.gz
*URLやバージョンは変更となる可能性があります。ダウンロード前に確認しましょう。
3-2. 事前にコンパイルのために必要なファイルをインストール
# yum -y install openssl openssl-devel sqlite sqlite-devel libevent libevent-devel make gcc # yum -y install make gcc
3-3. Makeを実施。
# cd turnserver-4.5.0.7 # ./configure # make # make install
以上でCOTURNのインストールは終了です。次回はCOTURNサーバーの設定について詳しく解説していきます。