ネットワーク基礎的な事 ICMP編 & 初markdown記法w

今回はICMPについて書きまーす あとブログを全然書いた事がなかったのでmarkdown記法という書き方を初めて知りました!

設定をmarkdownモードに変えて書いてみます

ICMPとは

IP通信のエラーを通知したり、 あて先の機器と通信できるかなどを調べるために使われるプロトコル

略さず言うと (internet control message protocol)こうなる

pingコマンドでip通信できているかどうか調べると思いますが その時に実装されているプロトコルICMPです YMCAじゃないよ!

つまりIP通信をするソフトには必ずICMPが実装されている。

裏をかえすとIPを実装するときはICMPも必ず実装しなければいけない。

そういうことだそうです。

流れでいうと経路にあるルーターがIPパケットを受け取って次の送り先に転送できなかった場合、
そのパケットを廃棄してICMPメッセージを入れたパケットを送り先に届ける。
そのICMPメッセージが入ったパケットを見て送信先を変えたり、データサイズを変更するなどの対処するという流れになってます。

ここでエラーを返すのは主にルータに実装されているICMPです。

ICMPを実装した代表的なコマンド

これが有名なpingコマンドですね
pingコマンドの役割は
「エコー要求」「エコー応答」です。

例えば目的のサーバーにpingコマンドを打つこれがエコー要求ですね。 正常に通信している場合応答メッセージが返ってくる。これがエコー応答です。

iMac:~issei$ping google.ne.jp
PING google.ne.jp (173.194.38.127): 56 data bytes
64 bytes from 173.194.38.127: icmp_seq=1 ttl=56 time=3.697 ms
64 bytes from 173.194.38.127: icmp_seq=2 ttl=56 time=3.422 ms
64 bytes from 173.194.38.127: icmp_seq=3 ttl=56 time=3.144 ms
64 bytes from 173.194.38.127: icmp_seq=4 ttl=56 time=3.631 ms

あとはtracerouteコマンド このコマンドはあて先までの経路(通過するルーター)を調べるためのコマンドですね。

実行するときはpingと一緒でtracerouteの後にipアドレスかホスト名を記入する

実行すると指定したサーバーに対してエコー要求メッセージを TTLを1増やしながら送り続ける。 相手に届いた時点で応答メッセージが返ってくるのでその間ずっと送る。

iMac:~ issei$ traceroute www.google.ne.jp
traceroute: Warning: www.google.ne.jp has multiple addresses; using 173.194.117.159
traceroute to www.google.ne.jp (173.194.117.159), 64 hops max, 52 byte packets
1 192.168.11.1 (192.168.11.1) 0.650 ms 0.305 ms 0.248 ms
2 softbank219188194209.bbtec.net (219.188.194.209) 2.309 ms 15.743 ms 5.226 ms
3 softbank219188194222.bbtec.net (219.188.194.222) 2.336 ms 2.064 ms 2.251 ms
4 softbank219188194181.bbtec.net (219.188.194.181) 2.534 ms 2.601 ms 2.275 ms
5 * * * 6 softbank221111163162.bbtec.net (221.111.163.162) 3.254 ms 3.059 ms 5.173 ms
7 209.85.241.90 (209.85.241.90) 4.745 ms 3.434 ms 3.954 ms
8 72.14.233.219 (72.14.233.219) 4.061 ms 4.525 ms 4.389 ms
9 nrt04s09-in-f31.1e100.net (173.194.117.159) 3.708 ms 3.824 ms 3.870 ms

TTLとはパケットの有効期間を表す数値でルーターを1回経由する毎に1減少する。 0になった時点で次に転送されずそのパケットは廃棄される。

パケットが廃棄されると時間超過メッセージが返ってくるので、 PC側は超過メッセージを送ってきたIPアドレスとかかった時間を順次表示してくれる。

悪用編

ICMPの危険性について見てみます

pingコマンドの説明をしましたがサーバーに対してpingコマンドで大量のパケットを送りつけて、 サービスを停止してしまうというのが実際に起こっている。 macだとデフォで13回かな?winだと4回 macの場合GUIで設定しなくても送信回数を決めて送信できるらしい

この攻撃はpingフラッドまたはpingストームなどと呼ばれる。

さらに悪意があると踏み台サーバーを使い身元を隠して攻撃するみたい 不正操作するときによくあるはなしだね。

smurfアタックっていうらしい

この場合送信元のPCから踏み台に向けてpingを打つみたい 送るパケットの送信元ipアドレスを攻撃対象のipアドレスに書き換える そうすると応答がすべて攻撃対象のpcへ返される。

ただファイアーフォールの設定で送信元ipをフィルタリングすれば回避できる手段もある。

サービス不能になることを考えるとICMPを無効にする場合もある。

まとめ ぜんぜん使ってないけどww

名前 使い勝手 評価
markdown記法 めっちゃいい ★★★★★