おはようございます!マネジメントオフィスいまむらの今村敦剛です。
この度、IDCフロンティアのIaaS型パブリッククラウドサービスを使い、OpenVPNサーバを構築しました。その構築方法を記録する第4回目です。今回は、DDNSの設定をします。
この連載の全体的な構成
この連載は、全10回を予定しています。今回は第4回目「DDNS設定」です。
連載記事一覧
- 全体構想
- IaaS設定 - 仮想マシン作成
- IaaS設定 - IaaSネットワーク設定
- IaaS設定 - 操作環境整備
- IaaS設定 - DDNS設定
- VPNサーバ設定 - インストール
- VPNサーバ設定 - 鍵・証明書作成
- VPNサーバ設定 - server.conf作成
- VPNクライアント設定 - 鍵・証明書作成
- VPNクライアント設定 - client.ovpn作成
- VPNクライアント設定 - windows自動起動設定
DDNS(ダイナミックDNS)とはなにか?
DDNS(ダイナミックDNS)とは、インターネット上のコンピューターの住所を常に正確に把握するための仕組みです。インターネットにおけるコンピューターの住所は一般的に、IPアドレスと呼ばれる数字の組み合わせで示されます。しかしこのIPアドレスは、お金を追加で払えば話は別ですが、基本的には変わることがあります。郵便に例えていうと、住所が勝手に変わるようなイメージですね(◯◯町1丁目1-1だったのに、知らないうちに◯◯町1丁目3-8になっていた、みたいな)。勝手に変わってしまっては、手紙が届きませんよね。でもインターネットの世界では、住所(IPアドレス)は勝手に変わるのが一般的です。
でも、もし誰かが、住所が突然変わっても、宛先の住所を正確に把握してくれるならば、いつでもちゃんと郵便を送ることができますよね。ダイナミックDNSは、そのように住所が突然変わっても、宛先の住所を正確に把握してくれるサービスと言ってよいでしょう。あなたの住所(IPアドレス)が変わっても、ダイナミックDNSは常にその最新の住所(IPアドレス)を教えてくれるわけです。
IDCFの仮想ネットワークには、グローバルIPアドレスが1つ割り当てられています。滅多なことでは変わらないとは思いますが、固定IPであることが約束されているわけではないので、今回はDDNSの設定を行います。DDNSサービスもいろいろありますが、無料で使えるNo-IPを使ってやります。
no-ipで無料のアカウント作成&DDNS設定
no-ipのサイトへ行き、トップ画面でホスト名の候補を入力し、「sigin up」をクリックします。ホスト名は、自分にとってわかりやすい名称ならばなんでもよいです。
no-ipのアカウントを作成します。連絡を受けたいメールアドレスと、新たに設定するパスワードを入力します。規約(terms of service and privacy policy)に同意する必要があります。(email opt-inは、メールによるサービス案内を受けるかどうかの選択です。チェックを入れたままでいいんじゃないかと思います)
入力・チェックが終わり、「Free Sign Up」をクリックすると、登録したメールアドレス宛てに、確認メールが届いているはずです。「confirm」(確認する)を押してください。
続いて、IDCF側のネットワークに割り当てられたグローバルIPアドレスを登録します。下記の画面へ行き、左側のコラムから「Dynamic DNS」を選び、その配下の「No-IP Hostnames」をクリックします。先程サインアップした際のホスト名が見えると思います。そのホスト名の右側の「Modify」をクリックします。
編集画面でIPv4 Address(赤い枠の部分)を修正します。ここには、IDCフロンティアの仮想ネットワークのグローバルIPアドレスを入力します。
IDCFのクラウド操作画面の、下記のページの赤枠の部分を見ればわかります。
これでno-ipへのサインアップは完了です。
CentOSへのno-ip更新クライアントのインストール
無料版のno-ipのDDNSサービスには一つ制約があります。それは、30日ごとにサーバーアドレスを更新する必要があるということです。やったことないのでよくわかりませんが、おそらく下記の画面の「update hostmame」を、30日に1回はクリックすればいいんだと思います。でも面倒くさいですし、たぶん忘れちゃいますよね。この更新作業を自動でやってくれるソフトがあるので、それをCentOSへインストールします。
ここからは、前回の記事で設定をしたTera Termの出番です。Tera TermでIDCFの仮想マシンに接続できていない方は、前回の記事を参照してください。Tera Termで仮想マシンに接続したら、下記のような画面になるはずです。
no-ipの更新クライアントをインストール前準備をします。最初にgccのインストールをします。gccとは、GNUプロジェクトが開発しているコンパイラ集(GCC)の実行ファイルのことです。これをインストールしておくと、ややこしい操作がある程度楽になります(雑な説明)
command
yum install gcc
つづいて、no-ipの更新クライアントをダウンロードします。
command
wget http://www.no-ip.com/client/linux/noip-duc-linux.tar.gz
ダウンロードしたファイルを解凍します。
command
tar zxvf noip-duc-linux.tar.gz
いろいろ解凍されました。
ビルドを実行するために、先程インストールしたno-ip更新クライアントのフォルダ移動しましょう。(今回の例では「noip-2.1.9-1」というディレクトリに移動していますが、更新クライアントのバージョンが変わると、このディレクトリ名も変わると思います)
command
cd noip-2.1.9-1
ビルドを実行します。
command
make
エラーっぽいものが出て心配になりますが、これでよいようです。
ようやく、IPアドレス更新クライアントのインストールをします。
command
make install
インストールが進むと、先程サインアップしたno-ipのログイン名(Eメールアドレス)とパスワードを訊かれます。入力し、インストールを進めます。
その他、いろいろ訊かれますがぼくは下記のように設定をしました。
- Please enter an update interval(更新間隔)は30
- Do you wish to run something at successful update?[N] (y/N) はy
- Please enter the script/program name は何もせずenterを押す
no-ip更新クライアントの自動起動設定
これでインストールは完了ですが、linuxでは自動起動の設定が重要です。windowsとかでも同じですが、仮想マシンを再起動したりすると、走っていたプロセス(プログラム)が停止します(当たり前ですが)。せっかくインストールしたのに、何らかの理由で停止してしまうと、no-ipへのアドレス更新も正常にできません。ということで、仮想マシンを再起動したときに、no-ip更新クライアントが自動で起動するように設定をします。
今回はno-ip更新クライアントの自動起動設定ですが、これからやるOpenVPNサーバや、Tera Termなどで認証に用いているsshも自動起動設定しないと、再起動したときに「繋がらない!なんでや!」となりますので注意が必要です。
自動起動設定には、CentOS7より採用された「Systemd」を使います。Systemdとは、Linuxでの起動処理やシステム管理を行う仕組みのことのようです。
まずはsystemdでのno-ipの起動スクリプトをダウンロードします。
command
wget https://gist.githubusercontent.com/NathanGiesbrecht/da6560f21e55178bcea7fdd9ca2e39b5/raw/ea1ef414bda8a33f329dff1ab853016040b89891/noip2.service
よくわからないうちに完了しました。
続いて、ダウンロードした起動スクリプトを、systemdのディレクトリにコピーします。
command
cp noip2.service /usr/lib/systemd/system
これでsystemdコマンドで、自動起動設定ができるようになったはずです。続いて、サービスの有効化(enable)と起動(start)をします。
command
systemctl enable noip2.service
systemctl start noip2.service
enableはサービスの有効化のことで、これによってno-ip更新クライアントの自動起動が設定されます。startは、あくまでもno-ip更新クライアントを起動するだけですね。
最後に、ちゃんとインストールできたか、ステータスを確認してみましょう。
command
systemctl status noip2.service
緑色でactive(running)ってなっていますね。これでno-ip更新クライアントのインストールと自動起動設定が完了です!IPアドレスが変わったとしても、DDNSのホスト名で確実にアクセスができるようになりました。