ひげぽん/Mones


ファイル置き場

サーバー化の準備とか
ARP要求もできた。
ARP応答できたっぽい。Windows側でキャッシュされたし mones/sampleAppにおいてください
Etherクラスにいろいろ追い出した mones/sampleAppにおいてください
Monesをベースにクラス階層整理 mones/sampleAppにおいてください
ARPの実験 フレームの受信とか mones/sampleAppにおいてください

ARP要求設計を考える

想定されるユーザー・・・IP(現段階ではIPはARPと同じバイナリにリンクされ同一スレッド動きそう) ARP要求の流れ

  1. IP「IPアドレスからMACアドレスを知りたい。結果が返ってこないかもしれない(タイムアウト)」
  2. getMacAddressByIpAddress(ipaddress)をcall
  3. メッセージ?
  4. ARPスレッド「arp->sendRequest(ipaddress)」
  5. 割り込みのたびに時間切れをチェック
  6. ARPスレッド(非同期)「受信」
  7. monapi2!!!
  8. 自己メッセージで解決!
  9. まずはを使えるようにしよう

EthrealでARP応答・要求の様子を見る

  1. Ethreal起動
  2. Capture-Optionsを選択
  3. 監視するNICを選びます。今回はTAPです。
  4. Capture Filterのなかから「Ether Type 0x806(ARP)」を選択します。これをやることでARPのやり取りだけをキャプチャできます。
  5. start Captureする
  6. Windows側で arp -d で ARPキャッシュを消しておきます。
  7. MonesをQEMU上で起動
  8. Windows側から MonesのIPアドレスに ping 送信
  9. ARPのキャプチャが取れます。

Mones ver0.32を MonaNewで試す

  1. http://d.hatena.ne.jp/Yamami/20050810を読んでダウンロード
  2. 解凍して contrib_0.3/Net/下におく(別にここでなくてもよい)
  3. mones.cppのswitch caseのなかに書かれている「WAIT_FRAME_BUF* bgetWork = 」の変数宣言を前のほうに持ってくる(コンパイルエラーになるので)
  4. MonesConfig.hで IPアドレス、ゲイトウェイを必要であれば書き換える
  5. make
  6. MonaNew/tool/mkimgのMONITOR.CFGに MONES.EX5をロードする行を追加
  7. MonaNew/tool/mkimgで make
  8. mona.isoの出来上がり

MonesをQEMUで試す

coLinuxインストール時に、同時にインストールされるTAPをそのまま利用する、かなり特殊な環境ですが・・・。
何かの参考になれば。

Mones設定(Windows XP)

  1. http://f38.aaa.livedoor.jp/~yamami/src/monesからMonesInMona_20050508.lzh をダウンロード。
  2. TAPのアドレスを192.168.0.1にする(Mones用のバイナリが192.168.0.2に決めうちなので)
  3. TAPの接続名はcolinuxを入れているので特に変更せず
  4. MonesInMona.batの-tapの部分を-tap "ローカル エリア接続 5"とする
  5. QEMUが起動していない時点ではTAP接続はネットワークケーブルが接続されていないと表示されている
  6. MonesInMona.batでQEMUを起動
  7. TAP接続の状態が「ネットワークアドレス取得中」⇒「接続・ファイアウォール」の順に変化する
  8. Windows XPの cmd.exe 上で ping 102.168.0.2 するとしばらくした後 icmp応答返る

メモ

  1. 現時点ではとにかく動くことを目指す(コートは汚くてよい)
  2. データリンク層のプロトコルである
  3. Nicドライバをセットアップして割り込み待ちループしてみた。
  4. この時点でWindows側から ping すると割り込みが確認できる(ここまでは出来ている)
  5. AbstractMonicクラスの存在意義が分かった。共有メモリにためているのか。(後で詳しく検討)
  6. AbstractMonicは処理要求をMONES.EX5に行っている(これが埋め込みなのがもったいない)
  7. 割り込みを受けるサーバー⇒AbsractMonic⇒Monesサーバか。
  8. 同じネットワークIDをもつIPアドレスかどうか調べる
  9. ARPパケット送信
  10. ARPパケット受信
  11. キャッシュ(20分保持)
  12. arp -a でarpキャッシュを確認できる(詳解TCP IP Vol.1プロトコル)
  13. これを簡単にできるようにファイルを配布する

コメント

コメントはありません。 コメント/ひげぽん/Mones?

お名前:

MENU

now: 2

リンク


最新の20件
2019-07-30 2019-06-20 2019-06-19 2019-03-24 2019-02-26 2018-10-07 2018-09-20 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
最新の20件
2010-02-01 2010-01-31 2010-01-30 2010-01-29 2010-01-16

Counter: 4621, today: 1, yesterday: 0

添付ファイル: filesampleApp20051026.zip 213件 [詳細] filesampleApp20051021.zip 216件 [詳細] filesampleApp20050927.zip 341件 [詳細] filearptest20050924.zip 359件 [詳細] filearptest20050922.zip 370件 [詳細] filearptest2005092102.zip 332件 [詳細] filearptest2005092101.zip 341件 [詳細] filearptest20050920.zip 324件 [詳細]

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

Last-modified: 2008-03-28 (金) 15:48:01 (4224d);  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.050 sec.