DNS64/NAT64してみた


NAT64を構成する

DS-Liteでデュアルスタック快適環境を実現したはいいのですが、両方管理するのがいい加減面倒になりました。
時代も時代ですのでいっちょDNS64/NAT64でIPv6オンリーをしてみたらどうかと思いやってみました。

ネットワーク構成

ネットワークは右図のようになっています。
家庭用レベルで見るとやたら複雑です。
しかしクライアントはIPv6だけでいけるからシンプルになってます。

IPv6側

IPv6側のアドレスはシンプルにルーターからRA+DHCPv6で配られます。自分の環境はひかり電話ルーターなのでDHCP-PDを使って再分配しています。
VyOSがDHCP-PDをサポートしてないのでここではSeilを使用しました。

IPv4側

ダミーのアドレス(64:ff9b::/96)をNAT64に流してプライベートなIPv4に変換します。
その後のIPv4パケットをDS-Liteのトンネリングしてインターネットへ。

NAT64

今回の目玉。Ubuntu 1604 + Joolでやってみました。
導入はこちらの方が非常に分かりやすく書かれていたのでほぼ悩むことなく導入できました。感謝です。
導入後、自動起動させるために以下の作業を追加で行っています。
  1. /etc/modulesに一行追加
    echo "jool" >> /etc/modules
  2. /etc/modprobe.d/にjool.confを追加
    echo "options jool pool6=64:ff9b::/96 pool4=(ローカルIPv4アドレス)" > /etc/modprobe.d/jool.conf

DNS64

最初はunboundで構築していたのですが、Google Public DNSがDNS64やってくれてるのでそっちを利用してみました。楽ちんです。

DNS64/NAT64によるIPv6オンリー環境は問題ない?

一般的なアプリは問題ないですね。問題が出たのはIPv4専用ソフトとP2Pでしょうか。仕組み上当然ですが。
特に難敵なのがSkype。IPv4専用でかつP2Pソフトという。
P2Pではノード情報をアドレスとして通信内に盛り込む関係上、ソフト側が対応してくれないとほぼ無理でしょうね。
SkypeはSkype for BusinessでIPv6対応してますが、これは単に両方のアドレスに対応しただけでDNS64/NAT64環境ではアウトだと思います。
後はJoolの変換コストをどこまで許容出来るかということですね。自分はそんなに気にならなかったのでしばらく運用してみるつもりです。
レスポンスが必要な場合はLANそのものはデュアルスタックにしておいて、必要な端末だけデュアルスタックで運用という逃げもありではないかと。

まとめ

実際の実装はHyper-V上で行ってるのでハード的に見たら普通のルーターと大差ないです。2~3年以内にこれがルーター一つで出来るものが出ないかなあ。マイナーすぎて売れないか。
SDNがメインになる時代とか来たらルーターは名ばかりの実際はVM実行マシンになるかもしれないですね。

コメント

このブログの人気の投稿

カスタムメイド3D2用プラグインを作りました

VyOS 1.1.1とSoftEther VPN Serverで自宅VPN最速設定

プロバイダをオープンサーキットからIIJへ変更