フレッツ光 ネクストが遅いときの原因の調べ方

残念ながら現在のISPのサポート品質は良くありません。また、フレッツ光 ネクストによるインターネットアクセスが遅い時に、あなたはその原因がNTTにあるのか、ISPにあるのか迷うことでしょう。

そのため、ここに各自で原因箇所を調査するための方法を記しておきます。誰かの役に立てば幸いです。

# 家からインターネットまでのネットワークトポロジーを知ろう
まずフレッツ光 ネクストのネットワークトポロジーですが、世に出回る図の多くは省略されたものが多いです。以下の記事にある図は全体が載っており、推定ながらより正確です。
http://itpro.nikkeibp.co.jp/article/COLUMN/20070125/259673/
NTTの提供するNGNサービスの多くは、上記記事の図6の左上のサーバー群に存在しています。NGN内の速度計測サーバーもここにあると思われます。

また、ISP内のネットワークは、以下の「ぷらら」の例が参考になるでしょう。
http://www.cisco.com/c/dam/global/ja_jp/solutions/isp/wireline/casestudy/images/1062-nttplala-cs-2.jpg

# 調査に必要なツールを導入しよう
経路の遅延およびパケット損失を調べる便利なツールとして、Windows付属のpathpingや、マルチプラットフォームのmtrが存在します。また、HTTPの遅延やタイムアウトを調べるツールとしてhttpingが存在します。以下より導入しましょう。
## Windowsの場合
以下のwindows binaryよりhttpingを導入してください: https://www.vanheusden.com/httping/
## Debian/Ubuntuの場合
Debian/Ubuntuでは公式でパッケージとして用意されているため、以下のコマンドにより両者のインストールが可能です。
```sudo apt-get install mtr httping
```

# NTTのNGN網に問題が無いかを調べる
## NGN IPv6で調べる
NGN IPv6はIPoE方式であるため、ISP接続で一般的に使われているPPPoE方式とは異なります。しかし、NGN網内の経路に深刻な問題が起きているかどうかは分かるでしょう。

NGN IPv6への接続方法は以下にあります。
https://flets.com/next/square/connect/

以下はお勧めの調査手順です。
1. NGN IPv6に繋ぎ、http://flets-east.jp の「速度の確認」から速度を計測する
2. コマンドプロンプト (コマンドライン)を開いて、`pathping -q 100 -6 flets-east.jp` (又は`mtr -6 --curses -c 100 flets-east.jp`) を行い、経路におけるpingパケットの遅延およびパケット損失を調べる (なお、NGN網内のルータは残念ながらpingに対するレスポンスを返さないようです)
3. 続いてコマンドプロンプト (コマンドライン)で、`httping -c 100 -6 flets-east.jp` を行い、HTTPパケットの遅延およびタイムアウトを調べる

もし、上記手順で速度の異常な遅さや酷いパケット損失率などの問題が発覚したのであれば、ISPではなくNTT側に連絡を入れましょう。

## NGN IPv4で調べる
NGN IPv4はPPPoE接続であるため、NGN網内の経路で、よりISPに近い調査が可能となるはずです。

NGN IPv4への接続方法は以下にあります。
https://flets.com/next/square/connectv4/

以下はお勧めの調査手順です。
1. NGN IPv4に繋ぎ、http://www.v4flets-east.jp の「速度の確認」から速度を計測する
2. コマンドプロンプト (コマンドライン)を開いて、`pathping -q 100 www.v4flets-east.jp` (又は`mtr --curses -c 100 www.v4flets-east.jp`) を行い、経路におけるpingパケットの遅延およびパケット損失を調べる (なお、経路が短いのは正常です)
3. 続いてコマンドプロンプト (コマンドライン)で、`httping -c 100 www.v4flets-east.jp` を行い、HTTPパケットの遅延およびタイムアウトを調べる

同じく、もし、上記手順で速度の異常な遅さや酷いパケット損失率などの問題が発覚したのであれば、ISPではなくNTT側に連絡を入れましょう。

# ISPに問題無いかを調べる
## ISP網対内接続またはISP網内の問題か否かを調べる
まずISPのWebサイトのトップページを調べ、そのURLを計測に使うことをお勧めします (ぷららならwww.plala.or.jp、ドコモnetならwww.nttdocomo.co.jp、ソネットならwww.so-net.ne.jpなど)。以下はwww.plala.or.jpを前提としていますが、各自自身ISPに合わせてURLを置き換えてください。

なお、多くのISPはISP網内の速度計測サービスを提供していないため、速度計測は省略します。速度計測は、下記のISP網対外接続の項で、網内網外を一緒に計測します。

以下はお勧めの調査手順です。
1. コマンドプロンプト (コマンドライン)を開いて、`pathping -q 100 www.plala.or.jp` (又は`mtr --curses -c 100 www.plala.or.jp`) を行い、経路におけるpingパケットの遅延およびパケット損失を調べる 
2. 続いてコマンドプロンプト (コマンドライン)で、`httping -c 100 www.plala.or.jp` を行い、HTTPパケットの遅延およびタイムアウトを調べる

もし、上記手順で速度の異常な遅さや酷いパケット損失率などの問題が発覚したのであれば、NGN内での結果と合わせてそれをISPに伝えましょう。ちゃんとしたまともで健全で技術力の高いISPであれば、きちんと対応してくれることでしょう。

## ISP網対外接続の問題か否かを調べる
まずは調査に使うドメイン名又はIPアドレスを決めましょう。遅く感じるサーバーのものであれば、どれでも構いません。もし、経路に異常が見つからなければ、別のサーバーのものを試しましょう。

以下はお勧めの調査手順です。
1. http://netspeed.studio-radish.com/ (Radish) で速度を計測する
2. http://www.dslreports.com/ (DSLReports) で速度を計測する (パケット損失やラグの計測も自動で行ってくれます)
3. コマンドプロンプト (コマンドライン)を開いて、`pathping -q 100 *調査に使うドメイン名又はIPアドレス*` (又は`mtr --curses -c 100 *調査に使うドメイン名又はIPアドレス*`) を行い、経路におけるpingパケットの遅延およびパケット損失を調べる 
4. 続いてコマンドプロンプト (コマンドライン)で、`httping -c 100 *調査に使うドメイン名又はIPアドレス*` を行い、HTTPパケットの遅延およびタイムアウトを調べる

同じく、もし、上記手順で速度の異常な遅さや酷いパケット損失率などの問題が発覚したのであれば、NGN内での結果と合わせてそれをISPに伝えましょう。

### (おまけ) Looking Glassを使う方法
調査に使うサーバーのネットワーク内に存在するLooking Glassのtracerouteを使うことで、向こう側からこちら側への経路を確認することができます。例えば国内のデータセンターであれば、さくらインターネットやブロードバンドタワーがLooking Glassを提供しています。
http://as9370.bgp4.jp/
http://as9371.bgp4.jp/
http://lg01.colo01.bbtower.ad.jp/

# 終わりに
この記事により、ISPが問題を把握しやすくなり、インターネットの安定に寄与できれば幸いです。

なお手順が煩雑であるため、本当は自動的にこれら調査を行うプログラムが欲しいところです。Linux版については、いつか作るかもしれません。誰かWindows版をお願いします。