さて、今回は後々の VPN の設定等で必要になるダイナミック DNS (DDNS) を設定してみます。
ダイナミック DNS とは
インターネット上の端末はすべて IP アドレスという番号が1つ1つ割り当てられています。ただそのままだと数字の羅列で覚えにくいので、 DNS という仕組みで、 www.apple.com = XXX.XXX.XXX.XXX というようにもう少し覚えやすいホスト名 (もしくはドメイン名 = FQDN) と IP アドレスが対応づけられており、 IP アドレスを覚えなくてもホスト名でその端末にアクセスできるようになっています。
今回設定している ER-X を始め、基本的にルーターもインターネット上の端末なので、インターネットにアクセスする際に WAN 側に必ず IP アドレスが割り当てられます。ただその割り当てられた IP アドレスは家庭用のインターネット回線契約では一定でないことが多く、ルーターに VPN 等のために外部からアクセスしようとすると、いまの IP アドレスが外出先から分からないので困難を伴います。
それを解決するのが ダイナミック DNS です。有名どころは DynDNS や no-ip ですが、これらのサイトではホスト名を登録し、そのホスト名に紐づけられる IP アドレスをユーザーが任意に登録・更新することができるようしてくれます。つまり自分のルーターが、割り当てられている IP アドレスに関わりなく、常に決まったホスト名でアクセスできるようになります。 VPN では外部からそのルーターにアクセスでなければならないので、この仕組みがないと毎回自宅にいる人にルーターの WAN 側の IP アドレスを調べてもらったりするハメになります。
無料で良心的な Duck DNS を使う
今回は無料で使える Duck DNS を使ってみます。サイトの見た目はまるで 90 年代でびっくりですが、無料で使えるし、30日ごとにログインが必要だったりしないし、 ER-X も対応しているのでよしとします。
今回はこのような作業になります。
- Duck DNS で ホスト名を登録
- ER-X から登録したホスト名の IP アドレスを更新するよう設定
これをすれば、 ER-X が自分に割り当てられた WAN 側の IP アドレスを自動的に Duck DNS で取得したホスト名に登録するようになり、外出先からいつでもそのホスト名で ER-X やポート転送を設定した LAN 内のサーバにもアクセスできるようになります。設定後はこんな感じになります。今回ホスト名は yaberouter1.duckdns.org
にしました。
設定値 | |
---|---|
Duck DNS | |
domain | yaberouter1 |
ER-X | |
ER-X ファームウェア | 1.9.0 |
Interface | eth0 (もしくは pppoe0) |
Service | custom-duckdns |
Hostname | yaberouter1 |
Login | nouser |
Password | Duck DNS のサイトに表示される “token” |
Protocol | dyndns2 |
Server | www.duckdns.org |
では設定してみます。
Duck DNS で ホスト名を登録
まずは Duck DNS でホスト名を登録します。今回は yaberouter1
にします。
Duck DNS のサイトでFacebook や Google 等お好きなアカウントでログイン yaberouter1 を入力し add domain ボタンを押す 表示されている token を控えておく
これでホスト名の登録が完了です。次に EdgeRouter で、登録したホスト名の IP アドレスを自動的に更新するよう設定します。
ER-X から IP アドレスを更新するよう設定
次に、 ER-X がホスト名 yaberouter1.duckdns.org
に対して自分の WAN 側の IP アドレスを登録するようにします。一度設定してしまえば、あとは ER-X が定期的に自分の IP アドレスを確認し、変更があった場合は Duck DNS を更新するので、 WAN 側の IP アドレスが変わったとしても、いつでも外出先等から yaberouter1.duckdns.org
で ER-X にアクセスできるようになります。ちなみに Duck DNS で IP アドレスを更新する場合のユーザー名は nouser
、パスワードはサイトに表示される token 、そしてプロトコルは dyndns2
です。
GUI やコンフィグツリーからでも設定できますが、ここからは高度な設定に必要なコマンドライン (CLI) での設定に慣れてみましょう。どうですか、ルーターをハッキングしてる感が出ませんか。
Mac の「ターミナル」アプリを起動 ssh ユーザー名@192.168.1.1 パスワードを入力
これで ER-X に SSH 経由でログインしました。それでは設定のためコマンドを入力していきます。コマンドは1文字足りともスペルミスは許されませんので、座禅や水垢離等で気合を入れてから入力するようにしてください。また、インターネットの接続に eth0
でなく pppoe0
を使っている場合はそのように入力してください。
## 「設定モードに移行」 configure ## Duck DNS の設定値を入力 set service dns dynamic interface eth0 set service dns dynamic interface eth0 service custom-duckdns set service dns dynamic interface eth0 service custom-duckdns host-name yaberouter1 set service dns dynamic interface eth0 service custom-duckdns login nouser set service dns dynamic interface eth0 service custom-duckdns password <token> set service dns dynamic interface eth0 service custom-duckdns protocol dyndns2 set service dns dynamic interface eth0 service custom-duckdns server www.duckdns.org ## 設定を保存 commit save ## 「設定モードを出る」 exit
これで OK です。管理画面の Service > DNS のページの下部、 Dynamic DNS の欄ににいま入力した設定値が出ていることを確認しましょう。一番下の Force Update ボタンを押して、更新が成功すれば問題無しです。成功しなければ・・・何か設定が間違ってます(笑)。
これで晴れて外部から yaberouter1.duckdns.org と入力すれば、いつでも ER-X にアクセスすることができます。例えば前回で LAN 内に FTP サーバーを立てたとして Port Forwarding を設定したので、その前提だと ftp://yaberouter1.duckdns.org:50001
と入力すれば LAN 内の FTP サーバーにアクセスできることになります。
Cloudflare で独自ドメインの DDNS を使う
それでは、今度は自分でドメイン名を持っていて、それを使って DDNS をやりたい場合の設定をしてみます。例としてみんな大好き Cloudflare を使った場合の設定を載せてみます。 Cloudflare はサイトを高速化する無料 CDN として有名ですが、 DNS サーバーだけとしても無料で使うことができ、しかも高機能かつ UI が素敵なことで名高いです。その Cloudflare に自分の持ってるドメイン名を登録し、 DNS サーバーとして使っている前提で、ひとつサブドメインを DDNS 用に割り当て、 ER-X から更新するよう設定してみます。ここで DDNS 用のサブドメインは、自分が example.com
というドメイン名を持っているとして、 yaberouter.example.com
とします。自分でドメイン名を持っていない、もしくは DNS サーバーをどうやって Cloudflare にしたらいいかわからない、という場合は前述の Duck DNS を使うのが無難です。
今回はこのような作業になります。
- Cloudflare でホスト名(サブドメイン)を登録
- ER-X から登録したホスト名の IP アドレスを更新するよう設定
設定値は下記の通りです。
設定値 | |
---|---|
Cloudflare | |
A record | yaberouter |
IP アドレス | 1.1.1.1 (初期値はなんでもいい) |
ER-X | |
ER-X ファームウェア | 1.9.0 |
Interface | eth0 (もしくは pppoe0) |
Service | custom-cloudflare |
Hostname | yaberouter.example.com |
Options | zone=example.com |
Login | Cloudflare でのメールアドレス |
Password | Cloudflare の Global API Key |
Protocol | cloudflare |
Server | www.cloudflare.com |
Cloudflare で ホスト名を登録
まずは Cloudflare でホスト名を登録します。今回は yaberouter
にします。
Cloudflare にログイン 新しい A レコード "yaberouter" と "1.1.1.1" 等適当に IP アドレス を入力し、 Cloudflare CDN は無効にして add record ボタンを押す 自分のアカウントのページに表示されている Global API Key を控えておく
ER-X から IP アドレスを更新するよう設定
## 「設定モードに移行」 configure ## Cloudflare の設定値を入力 set service dns dynamic interface eth0 set service dns dynamic interface eth0 service custom-cloudflare set service dns dynamic interface eth0 service custom-cloudflare host-name yaberouter.example.com set service dns dynamic interface eth0 service custom-cloudflare login aaa@bbb.com set service dns dynamic interface eth0 service custom-cloudflare options zone=example.com set service dns dynamic interface eth0 service custom-cloudflare password <Global API Key> set service dns dynamic interface eth0 service custom-cloudflare protocol cloudflare set service dns dynamic interface eth0 service custom-cloudflare server api.cloudflare.com/client/v4/ ## 設定を保存 commit save ## 「設定モードを出る」 exit
これで OK です。管理画面の Service > DNS のページの下部、 Dynamic DNS の欄ににいま入力した設定値が出ていることを確認しましょう。前と同じように一番下の Force Update ボタンを押して、更新が成功すれば問題無しです。成功しなければ・・・やはり何か設定が間違ってます(笑)。
今回は下記のページやスレッドを参考にしました。
EdgeMAX – Dynamic DNS commands
Dynamic DNS problem edge router lite.
以上、お疲れ様でした。
yabe.jp » Gadgets »