ご家庭に設置したルータで設定方法を確認する。
筆者の環境は以下の通り。
graph TB;
A["THE INTERNET"]--NURO光 for マンション-->B["ルータ<br>ZXHN F660A"]
B--wired-->W["Cisco Meraki Go"]
B--wired-->C["WindowsPC"];
B--wired-->G["マインクラフトサーバ"];
W--WiFi-->D["iPhone"];
W--WiFi-->E["AndroidTV"];
W--WiFi-->F["Google Pixel 6a"];
W--WiFi-->H["ラップトップ"]
ドメイン
Cloudflare を使用しているので、ダッシュボードから設定。
mydomain.com を所有していて、home.mydomain.com をマイクラサーバに向ける。
- Cloudflare ダッシュボードにサインイン
mydomain.comクリック- 左メニュー「DNS」→mydomain.comのDNS管理→レコードの追加
- 以下を設定
- タイプ:
A - 名前(必須):
home - IPv4アドレス(必須):
XXX.XXX.XXX.XXX確認くんなどでグローバルIPを入力(動的IPの場合も現時点のIPでOK) - プロキシステータス: DNSのみ、ぶっちゃけどちらでもOK(セキュリティが向上するわけでもないので)
- タイプ:
- 保存
(動的IPアドレスの場合)IPを自動更新する
- Cloudflare でユーザーAPIトークンを発行する
- マインクラフトサーバ側でグローバルIPアドレスを監視、変更していたらユーザーAPIを叩くスクリプトを実行
- Cloudflare でグローバルIPが変更される
ユーザーAPIトークンを取得
- ユーザーAPIトークンを開く
- トークンを作成する
- ゾーンDNSを編集する→テンプレートを使用する
to be continue…
スクリプトを作成
bash スクリプトで作成しましたが、APIを叩けるなら何でもOK。
cloudflare.sh の動きをざっくり説明すると以下の通り。
- https://checkip.amazonaws.com で自分自身のグローバルIPアドレスを取得、変数Aに代入
- 前回実行時のグローバルIPアドレスを
.lastipaddrに保存してあるので変数Bに代入 - 変数Aと変数Bを比較する
- 変数が異なる場合、ユーザーAPIトークンでDNS更新し
.lastipaddrを更新する。一緒なら何もしない。
これを毎時10分ごとに実行します。グローバルIPアドレスが変わらなければ何もしないので負荷は抑えられます。