traceroute6【コマンド】
コマンドだよ
UNIX系で使えるよ
通信経路を調査するよ
IPv6用だよ
多分「traceroute -6」と同じだよ
簡単に書くよ
traceroute6【コマンド】とは
コンピュータさんに対する命令文(コマンド)のひとつ
であり
どんな経路を通って通信相手のところまで行くか確認するときに使うコマンド(IPv6
(通信に関するお約束事「IP」のうち、今後のインターネットで使われることになるであろうバージョン)版)
です。
詳しく書くよ
私はCentOS上でコマンドの動作確認をしているのですけどね。
私の環境では「traceroute」コマンドに「-6」オプションを指定した
traceroute -6 [対象のIPv6アドレス]
と
traceroute6 [対象のIPv6アドレス]
は同じ動きをしました。
ということで「traceroute」の使い方をご存じの方は「traceroute6」の説明を見る必要はないと思います。
違いは、対象の指定をIPv4でやるか、IPv6でやるか、くらいのはずです。
あっ、でもUbuntuの場合は違うのかな。
使ってないから分からないや。
ごめんなさい。
そんな前置きをしたところで「traceroute6」の説明に入ります。
「traceroute6」コマンドは
通信相手までの通信経路(どんな道を通って相手のところまで辿り着くか)を調査するときに使うコマンド
です。
例えば「あなたのコンピュータから出たデータはルータAを通ってルータBを通って相手のコンピュータに到着しましたよ~」といった情報を得られます。
「traceroute6」コマンドはUNIX系(LinuxとかMacとか)で使えます。
書き方は
traceroute6 [オプション] [対象のIPv6アドレス]
です。
IPアドレスの指定をIPv6でやるのがポイントですね。
オプションは、あれやこれやとたくさんあります。
| オプション | 説明 |
|---|---|
| -4 | IPv4を使う |
| -6 | IPv6を使う |
| -I | ICMPパケットを使って調査する |
| -T | TCPパケットを使って調査する |
| -U | UDPパケットを使って調査する |
| -d | デバッグ・モードで動く |
| -F | フラグメントするな!フラグをセットする? Set the "Don’t Fragment" bit. This tells intermediate routers not to fragment the packet when they find it’s too big for a network hop’s MTU. |
| -f | 最初に送るTTLの値を指定する |
| -g【ゲートウェイ】 | 経由したいゲートウェイを指定する? Tells traceroute6 to add an IP source routing option to the outgoing packet that tells the network to route the packet through the specified gateway. Not very useful, because most routers have disabled source routing for security reasons. |
| -i【インターフェース】 | 使うインターフェース(ネットワークカード名)を指定する |
| -m【最大TTL】 | TTLの最大値を指定する |
| -N | Specifies the number of probe packets sent out simultaneously. Sending several probes concurrently can speed up traceroute6 considerably. The default value is 15. Note that some routers and hosts can use ICMP rate throttling. In such a situation specifying too large number can lead to loss of some responses. |
| -n | 結果をIPアドレスで表示する |
| -p【ポート】 | パケットを送り付けるポートを指定する |
| -t【TOS】 | パケットのTOSを指定する For IPv4, set the Type of Service (TOS) and Precedence value. Useful values are 16 (low delay) and 8 (high throughput). Note that in order to use some TOS precendence values, you have to be super user. For IPv6, set the Traffic Control value. |
| -l【ラベル】 | Use specified flow_label for IPv6 packets |
| -w【秒】 | タイムアウトと判断する時間を指定する |
| -q【回数】 | 1つの経由地に対する試行回数を指定する |
| -r | ルーティングテーブルを気にしないで、指定したところに直接送り付ける |
| -s【ソースアドレス】 | Chooses an alternative source address. Note that you must select the address of one of the interfaces. By default, the address of the outgoing interface is used. |
| -z | Minimal time interval between probes (default 0). If the value is more than 10, then it specifies a number in milliseconds, else it is a number of seconds (float point values allowed too). Useful when some routers use rate-limit for icmp messages. |
| -A | Perform AS path lookups in routing registries and print results directly after the corresponding addresses |
| -V | バージョン情報を表示する |
などです。
オプションが多くて、げんなりしそうですね。
ですが、心配はいりません。
オプションを何も指定しないで
traceroute6 8fe0::8f61:ac8:30cd:a16e
のように指定すれば、ほぼ事足ります。
オプションは調査条件を変えるものがほとんどです。
必要になってから必要な分だけ覚えれば良いと思います。
ちなみに、オプションの説明で「TTL」という用語がちょいちょい出てきましたね。
この「TTL」という用語ついて補足しておきます。
TTLが分かると「traceroute」コマンドの動きもイメージしやすいはずです。
頑張って理解してください。
結論から書くと、TTLは
1.数字である
2.機器を1つ経由する毎に数字を1減らす
3.数字が「0」になったら、その時点で中継を止める
の特徴がある、パケット(通信用に細切れにしたデータ)にくっつく情報です。
TTLがあることによって、パケットさんがネットワークの世界をずっと放浪する事態が回避されています。
例えば、そうですね。
何かの間違いで輪っか構造になっているネットワークが あったとしましょう。
ルータAは「ルータBに行けよ」と指示を出すし、ルータBは「ルータAに行けよ」と指示を出す状態です。
この指示に従うと、パケットさんはルータAとルータBの間をぐるぐる行き来し続けることになります。

この状況はマズイですよね?
流れ込むパケットは増えていくのに、出て行くパケットはないので、いずれパンクしてしまいます。
このような状況に対する備えとしてあるのがTTLです。
仮に最初、TTLの値が4だったとしましょう。
ルータAに到着した時点でTTLの値を1つ減らして3にします。

ルータAには「ルータBに行けよ」と言われました。
パケットさんはルータBに行きます。
そして、ルータBに到着した時点でTTLの値を1つ減らして2にします。

ルータBには「ルータAに行けよ」と言われました。
おっと、何かの設定ミスで「ぐるぐる同じところを回っちゃうよ構造」になっているようです。
それでもパケットさんは指示に従いルータAに行きます。
そして、ルータAに到着した時点でTTLの値を1つ減らして1にします。

案の定、ルータAには「ルータBに行けよ」と言われました。
パケットさんは涙目になりながらルータBに行きます。
そして、ルータBに到着した時点でTTLの値を1つ減らして0にします。

TTLの値が0になった時点でパケットさんの旅は終わりです。
力尽きて倒れてしまいます。
力尽きたパケットさんを看取ったルータBさんは、パケットさんを送り出してきたコンピュータに対して「俺はルータBって、ケチな者だけどよー。あんたのところから来たパケットさん、今、力尽きたぜ」と報告のお手紙を出します。
これがTTLです。
繰り返しになりますが
1.数字である
2.機器を1つ経由する毎に数字を1減らす
3.数字が「0」になったら、その時点で中継を止める
情報です。
パケットがネットワーク上をずっと放浪する事態になることを避けるために使われます。
よく分からない人は、パケットさんの体力ゲージだと思えば良いでしょう。
機器を経由する度に1ずつ減っていって、最終的に0になると力尽きます。
数字が大きい方が長生きできるあたりが人間様の寿命みたいですね。
そのせいか、TTLを設定することを指して「パケットの寿命を設定する」と表現する人もいます。
さて、これでTTLが何かは何となく分かったでしょうか。
それでは、TTLを踏まえて「traceroute6」コマンドについて、もう少し突っ込んで見ていきます。
例えば、そうですね。
ピヨ太君のパソコンからピヨ子さんのパソコンに行くまでに、ルータA、ルータBの2つのルータを経由するとしましょう。
「ピヨ太→ルータA→ルータB→ピヨ子」なネットワーク構成です。

この状況でピヨ太君が、ピヨ子さんのパソコンを指定して「traceroute」コマンドを実行しました。
そうすると、ピヨ太君のパソコンからはTTLが「1」に設定されたパケットさんが出発します。

TTLが「1」に設定されたパケットさんは、ルータAに到着した時点でTTLが「0」になり、力尽きます。

そうすると、ルータAからピヨ太君のパソコンに対して「俺はルータAって、ケチな者だけどよー。あんたのところから来たパケットさん、今、力尽きたぜ」と報告のお手紙が出されます。
お手紙を見たピヨ太君は「ふむふむ、最初の到達地点は『ルータA』ね」と頷きました。

次に、ピヨ太君のパソコンからは、TTLが「2」に設定されたパケットさんが出発します。

TTLが「2」に設定されたパケットさんは、ルータAに到着した時点でTTLが「1」になります。

まだ力尽きていませんね。
そこで、ルータAの案内に従い、ルータBの元に向かいます。

ルータBに到着したパケットさんは「1」だったTTLが「0」になり、力尽きます。

そうすると、ルータBからピヨ太君のパソコンに対して「俺はルータBって、ケチな者だけどよー。あんたのところから来たパケットさん、今、力尽きたぜ」と報告のお手紙が出されます。
お手紙を見たピヨ太君は「ふむふむ、ルータAの次の到達地点は『ルータB』ね」と頷きました。

次に、ピヨ太君のパソコンからは、TTLが「3」に設定されたパケットさんが出発します。

TTLが「3」に設定されたパケットさんは、ルータAに到着した時点でTTLが「2」になります。

まだ力尽きていませんね。
そこで、ルータAの案内に従い、ルータBの元に向かいます。

ルータBに到着したパケットさんは「2」だったTTLが「1」になります。

まだ力尽きていませんね。
そこで、ルータBの案内に従い、ピヨ子さんのパソコンの元に向かいます。

長旅を終えたパケットさんは、ついにピヨ子さんの元に着きました。

最後に、ピヨ子さんからピヨ太君に「パケットさんが届いたわよ」とお返事が出されます。

ここまでの情報をまとめたピヨ太君は「ふむふむ、まずはルータAに着いて、ルータAの次の到達地点はルータBで、その次がピヨ子さんのパソコンね」と頷きました。
ピヨ太君のパソコンからピヨ子さんのパソコンまでの経路が明らかになりましたね。
これが「traceroute6」コマンドのやっていることです。
TTLが1のパケットを送る→到着先を控える
TTLが2のパケットを送る→到着先を控える
TTLが3のパケットを送る→到着先を控える
・
・
・
TTLがXのパケットを送る→目的地に到着
というように、TTLを1つ増やしたパケットを順番に送り出し、到着先の情報を履歴として控えることによって、目的地までの経路を割り出します。
仕組みまで理解しなくてもコマンド自体は使えますけどね。
覚えておくと、ちょっと自慢げな気分になれると思います。
一言でまとめるよ
まぁ「traceroute6」ってコマンドが出てきたら「IPv6
(通信に関するお約束事「IP」のうち、今後のインターネットで使われることになるであろうバージョン)で通信経路を調査するときに使うんだな~」と お考えください。
おまけ
■訳してみるよ
「trace(トレース)」の意味は「跡」とか「痕跡」とか「たどる」とか「追跡する」とかです。
「route(ルート)」の意味は「道」とか「道筋」とか「経路」とかです。
「6」は多分「IPv6」のことでしょう。
「IPv6」は「Internet Protocol version 6(インターネット・プロトコル・バージョン6)」の略です。
「Internet(インターネット)」はIT用語の「インターネット」です。
「protocol(プロトコル)」の意味は「(外交上の)儀礼」とか「議定書」とかですが、今回は「お約束事」と解釈してください。
「version(バージョン)」の意味は「版」とかです。
「6」は数字ですね。
何となく くっつけると
経路をたどる(「インターネットのお約束事の第6版」版)
となります。
■検索してみる?






