mones2/05.ICMP応答準備編 IPパケット送信/03.ICMPヘッダの作成


Top / mones2 / 05.ICMP応答準備編 IPパケット送信 / 03.ICMPヘッダの作成

これは何か

ICMP応答をするためにIPパケット送信の仕組みを作ります。
そのための第3段階として、応答用のICMPヘッダを作成します。

ここまでの成果

ICMPヘッダの作成は出来たが動かない
ARPの応答はほぼ正しくできるようになった

動作について

QEMUで動作します。→動作しません。

  1. contrib_0.3Net/monesにsampleAppをおき、arptest で make && make install します。
  2. MonaNew/tool/mkimg で make して、ISOをつくります。
  3. QEMUでMonaを起動して、arptest を実行して、Windows側からpingを打つと動作します
  4. WindowsとQEMUのネットワーク連携については、Yamamiさんのまとめをご参照ください。

詳しい解説・資料

IPパケット送信の流れは以下のようになることがわかりました。

  1. ルーティング解決
  2. ARPによるMACアドレス取得
  3. ICMPヘッダの作成
  4. IPヘッダの作成
  5. IPパケットの送出
    ICMPエコー応答を返すコードを実装してみた。

ICMPヘッダをごにょごにょ作って、それをIPヘッダのdata部にセットして送る感じ。

checkSumのロジックまでは追わず、id:Yamamiさんのロジックをそのまま拝借。

Monaを起動して、Windows側から ping を打ってみてもICMPエコー要求が来てない(etherealでパケットをキャプチャしています)。

よく調べてみたらWindows側で

Interface: 192.168.100.1 --- 0x4

 Internet Address      Physical Address      Type
 192.168.100.2         00-00-00-00-00-00     invalid

となっている。ARPの応答が微妙に間違っていてその先のフェーズ(ICMP)に進んでいないみたいだ。

ということで今後の流れは

   * ARPのデバッグ
   * ICMPをもう一度トライ

という感じで。

ARPデバッグ

Etherealで解析したところ3点おかしい

コメント

コメントはありません。 コメント/mones2/05.ICMP応答準備編 IPパケット送信/03.ICMPヘッダの作成?

お名前:

MENU

now: 8

リンク


最新の20件
2018-10-07 2018-09-20 2018-09-03 2018-05-09 2017-09-29 2017-01-10 2016-12-11 2016-10-04 2016-08-14 2016-05-29 2015-12-28 2013-02-25 2013-02-21 2013-02-20 2013-02-12 2013-02-11 2013-02-10
最新の20件
2010-02-01 2010-01-31 2010-01-30 2010-01-29 2010-01-16

Counter: 4237, today: 1, yesterday: 0

添付ファイル: filesampleApp-20051118.zip 466件 [詳細] filesampleApp-20051117.zip 419件 [詳細]

リロード   新規 編集 凍結 差分 添付 複製 改名   トップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS

Last-modified: 2008-03-28 (金) 15:48:00 (3915d);  Modified by mona
PukiWiki 1.4.6 Copyright © 2001-2005 PukiWiki Developers Team. License is GPL.
Based on "PukiWiki" 1.3 by yu-ji
Powered by PHP 5.2.17
HTML convert time to 0.043 sec.