お知らせ

現在サイトのリニューアル作業中のため、全体的にページの表示が乱れています。

IPv6のOCNバーチャルコネクト環境ではwell-known portsが利用出来ずWebサーバーを公開するのに支障がありますが、今回はそれを乗り越えるための手法を紹介します。

自宅サーバーにhttps://service.example.com/のようにポート指定なしのサブドメインでアクセスできるようにするのがゴールです。

構成

自宅サーバーの手前にCDNを挟み、CDNを経由して接続させるようにします。要するに手前にリバプロを生やしておくわけです。

user-cloudfront-foreign_server.png

前提

前準備

DNS レコードに次のドメインを作っておく

用途 ドメイン レコード データ
CDN 用のドメイン cdn.example.com A サーバーの IP
公開用のドメイン service.example.com A サーバーの IP

自宅サーバーを公開可能な状態にする

叩き台程度ならserveを使うのが手っ取り早いですが、Node.jsでサーバー立てるのもありだと思います。今回は叩きなのでHTTPにしていますが本番運用するときはHTTPSにしましょう。

以下サンプル

const http = require('http');

const port = 12345;

const server = http.createServer((req, res) => {
    res.writeHead(200, { 'Content-Type': 'text/plain' });
    res.end('Hello world!');
    console.log(req.headers.host, req.socket.remoteAddress);
});

server.listen(port, () => {
    console.log(`Running at http://localhost:${port}`);
});

手順

  1. CloudFrontを開く
  2. 「ディストリビューションを作成」
  3. 「オリジンドメイン」にcdn.example.comを設定
  4. 「プロトコル」を選ぶ
  5. cdn.example.comの「ポート」を設定する
  6. 設定までスクロール
  7. 「代替ドメイン名 (CNAME) - オプション」で「項目を追加」しservice.example.comを入力
  8. 「カスタムSSL証明書 - オプション」で「証明書をリクエスト」
  9. 「パブリック証明書をリクエスト」
  10. 「完全修飾ドメイン名」にservice.example.comを入力し「リクエスト」
  11. 「証明書を表示」
  12. DNSレコードに「CNAME名」で「CNAME値」を追加
  13. 「保留中の検証」が終わるのを待つ
  14. 「カスタムSSL証明書 - オプション」で作成した「ACM証明書」を選択
  15. 「ディストリビューションを作成」
  16. service.example.comのDNSレコードをCNAMEにし、データを「ディストリビューションドメイン名」に変更
  17. https://service.example.com/にアクセスできればOK

参考資料

トラブルシュート

ディストリビューションを削除したい

  1. ディストリビューションの一覧で消したいのにチェック入れて無効化
  2. しばらく待つ
  3. 消したいのにチェック入れて削除

参考:ディストリビューションを削除する (docs.aws.amazon.com)

後書き

副次的効果ですがCDN挟んでキャッシュされてるお陰で連続アクセスしてもサーバーまでリクエスト来ないので感動しました。

CloudFrontには他にも様々な機能があるみたいなので活用できれば便利そうです。

ここ最近回線速度が異様に遅かったので早くなるかな?と思って申し込んでみました。結果としては早くなったと思います。

OCN は IPv6 標準対応

OCNは以下のプランではIPoEによるIPv6接続に標準対応しているとしています。

  • OCN光
  • OCN forドコモ光
  • OCN光withフレッツ

但し契約時期による条件あり

但し標準提供されるのは以下の条件に限られており、それ以外のユーザーは何かしらの手続きが必要である可能性があります。

  • 2017年7月25日以降にOCN光をご利用開始したお客さま
  • 2017年9月1日以降にOCN forドコモ光をご利用開始したお客さま
  • 2018年6月15日以降にOCN光withフレッツをご利用開始したお客さま

条件外のユーザー(ドコモ光)はどうすれば?

2017/08/31 以前に OCN for ドコモ光を利用開始したユーザーについて

OCN のお知らせ詳細なるページで「メールに記載のURLからフォームへアクセスしお手続きをお願いいたします。」と案内されていますが、2019/12/17現在このフォームは消滅しており利用することができません。

NTT 西ユーザーなら自分で NTT に申し込めば行ける?

OCN のお知らせ詳細では以下のような案内があるためNTT のサイトから申し込んでみることにしました。申込みから一時間ほどで利用できるようになります。書いてある通り無料です。

しかしこれだけではv6通信はできませんでした。やはりOCN側が対応している必要があるようですね。

IPoE 提供には NTT 西日本のフレッツ・v6 オプション(無料)が必要となるため、お客さまに代わり OCN が NTT 西日本へ代行申込をいたします。
サポートにメールをすると今でも申し込み手続きが可能

上述の通り、申し込みフォームは既にありません。何故なくなったのかは知りませんがきっとなにか深い大人の事情でもあるのでしょう。

しかし私はなんとしてでも無料で煩雑な手続きもせず追加機材も用意せずIPv6を使いたかったのでOCNのQ&Aを読み漁り、それっぽいワードでググりまくり、OCNメールを開き「【重要】OCN IPv6インターネット接続機能(IPoE)」の提供について」というメールを何度も読み返し「本件に関するお問い合わせ先」なるリンクに気がついたので、その先にあったお問い合わせフォームからメールに記載のフォームが使えないがIPoEによるIPv6接続を利用できないか?と問い合わせをしてみました。

サポートに問い合わせした結果、24hほどで以下のようなメールが届いたので適当に埋めて返信

そして IPv6 開通!

上記メールに返信をしてから48hほどで以下のようなメールが来たのでルーターを再起動したところ無事IPv6に繋がりました。やったー!

20220412031052.jpg

WSR-1166DHP4 で利用できた!

IPv6対応ルーターも増えてきて値段もだいぶお手頃になってきたので、本当に繋がるかどうかもよくわからないまま買ったルーターでしたが、無事繋がりました。

上述のメールの案内に書かれている通りルーターを再起動したところネットが不通になり、ルーターのコンパネにアクセスしてみると回線識別画面になっていました。

20220412031136.jpg

ぼちぼち安くてそこそこ小さいのでおすすめです。アンテナ生えてないからコンパクト。

バッファロー 11ac 対応 866 + 300Mbps 無線 LAN ルータ(親機単体)(ブラック) WSR-1166DHP4-BK

OCN バーチャルコネクト!

もしや…!と思ったらキタコレ!(漣風に

20220412031208.jpg
20220412031228.jpg

しかしコケる

ファッ!?

まぁネットワークにエラーはつきもの、リトライです。

20220412031148.jpg

IPv6接続成功!

リトライしたらフツーに行けました。良かった。

20220412031208.jpg
20220412031228.jpg

ちゃんとIPv6で繋げてます。因みにv4でも繋がります。v4のIPを振っている自宅サーバーにもv4環境からアクセスできました。出てるのはこのブログのIPなので隠す意味は特にないのですが、一応…w

20220412031242.jpg

契約情報もちゃんと更新されてます。

20220412031251.png

速度の変化

直近の測定値を見ると大分早くなったような気がします。劇的に早いというわけではないと思いますが、実用上は必要十分だと思います。流石に光で100Mbps切ってるのは問題なので…。(ADSLかよ