DHCP、IP Gleaningの移植


【DHCPとIP Gleaning】

基本構成で動作したWeb ServerデモにDHCPかIP Gleaningの機能を
追加しましょう。

DHCP Client
 LANに接続したときにDHCPサーバからIPアドレスを付与してもらうため
 のプロトコルです。

IP Gleaning
 これは非標準の機能なのですが、リモートのパソコンから、指定した
 IPアドレスをPICNICに与えることが出来るようにするための機能です。
 ARPとPINGのプロトコルを組み合わせて実現します。

【機能追加の手順】

Microchip TCP/IP Stackでは、このような機能追加は、「stacktsk.h」で
指定するだけで自動的に必要なヘッダファイルをインクルードしてくれます。
指定といっても、もともと雛形として用意されているファイル内のコメント行
になっている該当部分のコメントを外して実行文にするだけです。
変更は、「stachtsk.h」ファイルの下記2行だけです。

106行目 //#define STACK_USE_IP_GLEANING
107行目 //#define STACK_USE_DHCP


この行頭の//を削除するだけです。

次に追加が必要なモジュールのソースファイルをプロジェクトに追加します。
IP Gleaningの場合には追加モジュールはありませんが、DHCP機能を追加
する時には、「dhcp.c」と「udp.c」の2つのモジュールの追加が必要です。
この追加には、Edit Projectで、必要なcのソースファイルをProject Files
の欄にAdd Nodeボタンで追加します。

このとき、コンパイルオプションが指定されていますので、他のソースファイル
と同じように、ファイルを選択してからNode Propertiesのボタンを押して、
不要なチェックを外し、さらに最下行にあるAdding Command Line Optionsの
欄に 「 -dMPFS_USE_PGRM」 というオプションを追加します。

これだけの作業が完了したらサイドMakeを実行してコンパイルリンクをします。
エラーが無くsuccessとなればOKです。Warning Messageは無視して下さい。


《注意》 dhcp.cの修正
 下記の部分のSIIPはSLIPの間違いですので修正が必要です。

  58行目  #if defined(STACK_USE_SIIP)

《注意》 デバッグモードの指定
  DHCPのテスト中には、デバッグモードにすることで、DHCP手順の進み
  具合をパソコンでモニターすることが出来るように出来ます。
  ハイパーターミナルを使えるようにしておくと、stage毎に1文字のデータ
  が表示されるようになります。例えば下記のような文字になります。

    D :Discoverメッセージを出力する
    R :Readyになった
    O :Offerメッセージを受信したのでRequestメッセージを出力する
    B :DHCPが成功したのでBindする
  
  デバッグモードを有効にするためには、dhcp.cの下記の行の//を削除します。

  121行目  //#define SMTP_SERVER_DEBUG_MODE


【IP Gleaning機能の確認】

IP Gleaning機能の確認には、パソコン側で下記のようにコマンドを発行します。
いずれもコマンドプロンプトの画面から行います。

  arp -s <設定するIPアドレス> <PICNICのMACアドレス>
  ping <設定するIPアドレス>


 《例》
   arp -s 192.168.1.5 00-04-a3-00-00-00
   ping 192.168.1.5

これで強制的にPICNICのIPアドレスを希望のアドレスに設定することが出来
ます。
このあとは、pingコマンドで確かに設定されたことを確認してみましょう。

【DHCP機能の確認】

DHCP機能の確認のためには、少なくともネットワーク内に1台のDHCPサーバ
が接続されていることが必要です。
最近のブロードバンドルータは大部分このDHCPサーバの機能を持っています
のでこれを使って確認しましょう。

(・・・・ DHCPの動作確認中 ちょっとおかしい ・・・・・)





        目次に戻る