v6プラス固定IPのあれこれ

どうも、imo@入江です。
先日告知しましたIPアドレス変更は本日朝に完了しました。
ご協力ありがとうございました。

後日談があります。

現在フレッツ光の回線を利用していますが、POIに起因する混雑時間帯のレイテンシ悪化が酷かったので根本的な解決をしたかったのです。
そこでJPNEのv6プラス固定IPサービスを利用することにしました。
設定の際にあった紆余曲折を備忘録として書き起こしておきます。

v6プラス固定IP自体の特徴を簡単に書くと
・付与IPアドレスは占有となり、ポートの制限はなし
・IPv4アドレスは固定だがIPv6アドレスは半固定、ONU等の変更で変わる可能性がある
・対応ルーターはHGW、もしくはヤマハRTX/NVR系やNEC IX系等の業務向け機種
・JPNEのBRに対してトンネルを張って利用する
というものです。

■ルーター側のコンフィグ
利用したのはNECのIX2105、今まで別ISPのPPPoE終端で利用していたものです。
NECのサイトに設定ガイドがあるので比較的敷居が低いのですが、
記載コンフィグの対象ファームバージョンが記載されていないのでコマンドリファレンスと見比べる必要があります。(後述)

>設定ガイド

当初利用した個体のファームは9.1.10
一部相違はあるもののだいたいは設定ガイドのコンフィグで通ります。
ですが、proxy-dns ip enable request bothだけは通らず。
というのも、request bothはファーム9.2台から実装されているようで、9.1台にはv4とv6に同時に転送する機能はないようです。
また、記載コンフィグ上ddns内のsource-interface BVI0も、9.1ではsource BVI0となります。
一部書き換えることで9.1.10でもトンネル接続可能です。

その後、10.0.14の個体にしてみましたら今度はrequest bothが別行への記載に変更になっていました。
以上から、設定ガイドのコンフィグはファーム9.2~10未満が対象のようです。

あと、ISPから提供される情報にインターフェイスID、IFIDがありますが、
IFIDの表記がxxxx:xxxx:xxxx:xxxxとなっていることがあります。
IXシリーズではxx:xx:xx:xx:xx:xx:xx:xxという表現方法になるので、
例: dead:beef:dead:beef → de:ad:be:ef:de:ad:be:efのように書き換えて設定ください。

11/4追記:
9.1.10での運用について当初うまくいっていなかったのですが、解消できたので書いておきます。
すぐ下の5秒遅延-に関するところです。

前提になる話として、「v6プラスが提供しているDNSサーバーはIPv6でのみreachableです」
proxy-dns ip enable request bothがない状態だと、IPv4でのDNS問い合わせが不可能なのでタイムアウトまで待っていただけだったんですね。
当初AAAAレコードだけかと思っていましたが、tcpdumpしてよく見てるとAも引けていませんでした…
コンフィグに他にDNS設定を書いていないので、当たり前の挙動です。

で、要はv4 rechableなDNSがあればいいということで、
proxy-dns server 1.1.1.1
を追加して平穏が訪れました。
1.1.1.1はCloudflareが提供しているパブリックDNSです。
Google Public DNSでもVerisign Public DNSでも好きなのを入れていいと思います。
サーバー系の設定にパブリックDNSを入れる是非については少し悩みましたが、他にあてもないので。
–追記ここまで

■サーバー側の設定
利用目的がwebサーバー公開なので、そこでも気になった点を。
RHEL6/CentOS6以降ではDNS問い合わせする際、標準ではAレコードとAAAAレコードの問い合わせに同じソケットを利用するようです。
そのため、一部ファイアウォールでは後の応答を遮断してしまう模様。
CentOS7の自分の環境ではWordPressにアクセスする際サーバー側からDNS問い合わせが発生するため、
遮断が入っていたのかタイムアウトが発生しページ表示が5秒程度遅延していました。

従来の問い合わせ方法を使うにはnmcliで下記を投入します。
nmcli con modify ipv4.dns-options single-request-reopen
systemctl restart network

single-request-reopenというのがリクエストごとに別のソケットを開くオプションになります。
/etc/resolv.confを編集する方法もありますが、CentOS7の場合はNetworkManagerがオーバーライドしていくので
上記nmcliのほうが良いと思います。

■使用感
ひとまず結果から。
記事公開日に数回だけチェックした数値なので参考程度に。

Ookla speedtest.net(DL/UL、相手はOPEN Projectを選択)
 PPPoE:平時PING15ms 290/410Mbps、混雑時PING40ms 28/60Mbps
 v6プラス:平時PING3ms 140/138Mbps、混雑時PING3ms 138/143Mbps

正直なところ、PPPoEでも平時は問題ないのです。
速度も出ますしPINGも悪くありません。
ですが、POIにトラフィックが集中する混雑時には速度が大きく下がります。
実際のところ、上の計測結果は以前と比べるとかなりマシなほうで
ひどい時には下り10Mbps切ることもありました。
また、レスポンスも悪化するので、その分が応答時間に乗ってきます。
もちろんwebサーバーとクライアント間は複数のセッションを張るのでレイテンシ×コンテンツ数ではありませんが、
速度も相まってもっさり感じることが多くなります。

一方、v6プラス固定IPだと速度、PINGともにほとんど変動しません。
特にPINGが一定かつ短いのはサーバー公開用途として理想的です。
夜間にクライアント用途として利用しても、サイトへのアクセスは快適です。
もちろんv6プラスについても終端のBRが混雑すると遅くなる可能性はありますが、
POIと比べるとJPNE内部の機材なので対処しやすいのではないかと。
各ISPがIPv4 over IPv6でトラフィックをIPoEに逃がすサービスをしていますが、その意味は大いにあると思います。

ところで、上記の速度結果で、v6プラスが遅いことに気づくと思います。
これはIX2105のCPU性能によるものです。
上記の速度計測の際に確認すると、v6プラス時はCPU使用率が100%に張り付きます。
IX2105はPowerPC系の400MHzシングルコアなので、このCPUの限界ということですね。
4-over-6の処理はPPPoEより重いようです。
昨年にCPUが800MHzになったIX2106が発売されているので、そちらだとさらに高速だと思います。

ちなみにファームバージョンによっても速度差があり、計測すると9.1.10のほうが速いです。160Mbps程度出ます。
先に書いたDNSまわりの挙動があったので私は今のところ10.0.14で運用入れていますが、9.1.10でもコンフィグ見直せばいけると思います。
2台とも中古で入手した個体なのでその間のファームで確認できないのです。

そんなこんなで、インターネットへの接続方法としては宅外のボトルネックを極力排したものになったかと思います。
今後ともよしなに。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です