連載:アニメーションで見るパケット君が住む町(9)
インターネット世界の連絡係
綱野衛二
Roads to Node
2010/5/19
9-3 保管日数と時間切れを使ってみよう
そういえば、第6回の6-2で、パケット君の配送票の話が出てきましたね。でも配送票に書かれている内容のうち、「保管日数」については説明しませんでした。ここで、ICMP君の仕事と合わせ、保管日数について説明しておきましょう。
パケット君、保管日数って何ですか?
パケット君「ん〜っと、たまにルート君やRIP君がミスして、相手に荷物が届かないときがあるんだ。届かないだけならともかく、これをほったらかしにしておくと、ずっと荷物が残って置きっ放しになってしまうんだ。そういうときはステーションでその荷物を廃棄してしまうんだよ」
ICMP君「そうすると私は、発送元に保管日数が過ぎて廃棄したことを伝える報告書を書きます」
図9-8 保管日数を過ぎた荷物の扱い |
ふむふむ、廃棄してしまうなんてずいぶんと豪快な感じがします。ともかく、「保管日数が過ぎると廃棄する」「ICMP君が廃棄した旨を伝える」ということですね。
実はICMP君、このルールを使って「とあること」をするらしいのです。いったいそれは何ですか?
ICMP君「はい。このルールを使って、『あて先までどのステーションを通っていくか』を調べることができるんです」
図9-9 保管日数という仕組みを使ってあて先までの道筋を調べる |
なるほど。意図的に保管日数が少ない荷物を送り、保管期間切れを起こさせるわけですね。そうすると、ステーションのICMP君が「保管日数切れ」を通知してくる。順番に保管日数を増やしていくことにより、あて先までのステーションが分かる、という仕組みですね。うまく考えていますね。
ルート君「発送元は普通は『どのステーションを通っていくか』を知る必要がないし、知る方法もないんだけど、ICMP君のこの方法によって把握できるんだ。トラブルがあったときはすごく有用だよ」
pingは非常に有益なソフトウェアで、あて先との接続を確認できます。これに匹敵するICMPを使った有用なソフトウェアがtraceroute(トレースルート)です。
第6回で説明したように、IPが付加するIPヘッダにはTTL(Time To Live)という値があります。これはルーティングのミスなどにより、IPデータグラムがネットワーク内を永遠に循環し続けることを防ぐ目的で付けられた値です。この値は「ルータに届く」たびに1ずつ減っていき、0になった時点でそのIPデータグラムは破棄されます。Linuxなどでは64、Windowsでは128がTTLのデフォルト値として使われることが多いです。
LinuxではTTLが64、つまり64台のルータを中継すると破棄されると聞いて「そんな小さい値で大丈夫なの? インターネットを使って遠くの国へデータを送った場合、64を超えてしまって破棄されてしまうのでは?」と思う方もいらっしゃるかもしれません。ですが、いまのインターネットでは、あて先に届くまでにルータを60台も経由することはまずあり得ません。多くても30台を超えるくらいで目的の場所に届きます。
このTTLが0になって破棄されると、破棄したルータはICMPのタイプ「11」、すなわち「Time Exceeded」(時間超過)を送信元に送ります。
これを使ったソフトウェアがtracerouteです。なお、Windowsではtracertというコマンドで実装されています。
図9-10 Time Exceededを使ったtracerouteの仕組み |
最初にTTLが1のデータグラムを送信すると、1つ目のルータからTime Exceededが返ってきます。次はTTLを2にして、2つ目のルータからTime Exceededをもらいます。次はTTLを3にして……という具合に、これをあて先に届くまで繰り返します。そして、Time Exceededを送ってきたルータを順に並べると、最終的に「あて先まで経由したルータのリスト」が出来上がるというわけです。
このように、tracerouteはあて先までの「経由ルータ」を調べることができます。このtraceroute以外に、経由ルータを調べる、つまりあて先までの「経路」を知る方法はほとんどありません。つまり、パケットが「あて先まで届かない」とき、ルーティングが原因と思われるトラブルを検出する最良のツールがこのtracerouteなのです。
9-4 おさらい
3階商品受発注課の課員の1人であるICMP君。彼の仕事は「報告書を作成し」「パケット君に届けてもらう」ことです。彼が書く報告書はパケット君の仕事っぷりを報告したり、運輸状況の確認をしたりと非常に役に立っており、インターネット世界の運輸に欠かせない1人といってもいいかと思います。
でも、そんな彼にも悩みがあるそうです。
ICMP君「そうなんです。私の書く報告書を悪用する人がいるらしいのです」
彼の報告書はとても役に立ちますが、それは「悪用もできる」のです。例えば、
- 悪人が狙ったビルに悪さをしたいため、往復書簡を悪用する
- 悪人が狙ったビルへ届けるためのステーションに悪さをしたいため、途中のステーションを調べる
というように、悪人もまた、ICMP君を使って情報を入手できてしまうのです。
ICMP君「おかげで、最近は僕の報告書を意図的に受け取らないようにしているビルもあるんですよ」
便利な分だけ悪用されてしまって、逆にそれが使えなくなってしまっているということですね。由々しき問題だと思いますよ。
今回はICMPについてお話ししました。ICMPは名前のとおり、「インターネットでの制御メッセージ」のプロトコルです。特にpingとtracerouteという便利なソフトウェアはこのICMPを利用しています。
pingやtracerouteを使って入手できる情報は有益ですが、その分「悪いことをしようとしている人」、つまりコンピュータやネットワークに攻撃を仕掛ける人にも有益な情報となってしまっています。pingやtracerouteを悪用すると……、
- ターゲットのネットワーク全体にpingを行い、応答があったIPアドレスを調べる。応答があったIPアドレスではコンピュータが起動していることが分かる
- 非常に巨大なエコー要求を送り付けることで、受信したコンピュータにエラーを起こさせて停止させる(ping of Deathと呼ばれる攻撃手法の1つ)
- pingによるエコー要求を大量に送り付けて、受信するコンピュータの処理能力をパンクさせる
- tracerouteによりルータのIPアドレスを入手し、そこへ攻撃を仕掛ける
などの悪事が可能になります。つまり、攻撃のための情報収集の手段として、さらには攻撃の手法として使われてしまっているのです。
そこで対策として、最近では「エコー要求に対してエコー応答を返さない」設定のコンピュータや、「Time Exceededを送らない」ルータ(traceroute対策)なども多くなっています。
さて、次回は。
TCP課長「おほん。だいたいパケット君、君はだね、もう少し仕事というものにまじめに取り組んではどうかね。このインターネット世界における運輸というものは……」
パケット君「話が長いです、課長」
さあ、今度はしっかりもののTCP課長の登場です。
9 インターネット世界の連絡係 | |
トラブルや連絡を伝える 9-1 報告書を書こう |
|
9-2 相手に届くか確認してみよう | |
9-3 保管日数と時間切れを使ってみよう 9-4 おさらい |
関連記事 | |
ネットワーク・コマンド/ツール群の活用法を大紹介 連載 ネット・コマンドでトラブル解決 あなたのLANは健康ですか? 現状改善から一歩進んだ構築術まで 特集:基礎から学ぶネットワーク構築 レスポンスの悪いネットワークシステム どう検証し、解決していくか? 特集:ネットワークトラブルを解決する 運用管理に必須のツール/コマンド群 連載:24×365の運用管理 |
「Master of IP Network総合インデックス」 |
- 完全HTTPS化のメリットと極意を大規模Webサービス――ピクシブ、クックパッド、ヤフーの事例から探る (2017/7/13)
2017年6月21日、ピクシブのオフィスで、同社主催の「大規模HTTPS導入Night」が開催された。大規模Webサービスで完全HTTPS化を行うに当たっての技術的、および非技術的な悩みや成果をテーマに、ヤフー、クックパッド、ピクシブの3社が、それぞれの事例について語り合った - ソラコムは、あなたの気が付かないうちに、少しずつ「次」へ進んでいる (2017/7/6)
ソラコムは、「トランスポート技術への非依存」度を高めている。当初はIoT用格安SIMというイメージもあったが、徐々に脱皮しようとしている。パブリッククラウドと同様、付加サービスでユーザーをつかんでいるからだ - Cisco SystemsのIntent-based Networkingは、どうネットワークエンジニアの仕事を変えるか (2017/7/4)
Cisco Systemsは2017年6月、同社イベントCisco Live 2017で、「THE NETWORK. INTUITIVE.」あるいは「Intent-based Networking」といった言葉を使い、ネットワークの構築・運用、そしてネットワークエンジニアの仕事を変えていくと説明した。これはどういうことなのだろうか - ifconfig 〜(IP)ネットワーク環境の確認/設定を行う (2017/7/3)
ifconfigは、LinuxやmacOSなど、主にUNIX系OSで用いるネットワーク環境の状態確認、設定のためのコマンドだ。IPアドレスやサブネットマスク、ブロードキャストアドレスなどの基本的な設定ができる他、イーサネットフレームの最大転送サイズ(MTU)の変更や、VLAN疑似デバイスの作成も可能だ。
|
|