Cです。
今日はDHCPについてメモッておく。(RFC2131、RFC2132)
TCP/IPの世界の常識として、データ転送には4つのアドレスが必要だ。
1、Destination MAC Address
2、Destination IP Address
3、Source MAC Address
4、Source IP Address
L2の送信元と宛先、L3の送信元と宛先。これがわからなきゃ通信ができない。
■ DHCPの適当な説明
OSは送信元のアドレスはどうやって知るのか。
まずは「Source MAC Address」
これは簡単、NICを取り付けた段階でOSはそのInterfaceのMAC Addressを知ることができる。
ここではどうでもいいけど。macchengerの回でやったようにOSに渡すときに独自に指定したMAC Addressを渡してやることも可能。(セキュリティ方面から考える場合これは頭に常においておくべき)
次に知らなきゃいけないアドレスは「Source IP Address」
これには2種類の知り方がある。
1つ目は、Staticに設定していく方法。
大規模なネットワークではクライアント台数が1000台以上のとこなんかいっぱいあるし、
そんな作業していられないでしょう。
2つ目は、Dynamicな設定方法。
これはDHCPサーバと通信を行い自動的に設定する方法。
図にするとこんなんかな。
DHCPサーバのいるネットワークで、DHCPクライアントを実行したらIPアドレスが割り当てられる。
これだけ、以上。
ではない。
おかしいです。
通信には4つのアドレスが必要なのに、
その1つの「Source IP Address」を手に入れるために
DHCPサーバと「通信」して割り当ててもらう。
おかしいです。
■DHCPの動作
1、DHCPクライアントはこんなパケットを送信。
DHCPDISCOVERだ。
Destination IP : 255.255.255.255 Source IP : 0.0.0.0
Destination MAC : FF-FF-FF-FF-FF-FF Source MAC : クライアントMAC
Destination Port : 67 Source Port : 68
宛先はわからないので、ブロードキャスト。
自分のMACアドレスだけはわかっている。
2、DHCPDISCOVERを受け取ったDHCPサーバはこんなパケットを送信。
DHCPOFFERだ
Destination IP : 255.255.255.255 Source IP : DHCPサーバのIP
Destination MAC : FF-FF-FF-FF-FF-FF Source MAC : DHCPサーバのMAC
Destination Port : 67 Source Port : 68
このパケットの中身(DHCPメッセージの部分)に
DHCPサーバがクライアントに割り当てるIPが入っている。
この時点ではまだ割り当てはしない。
3、OOFFERを受け取ったクライアントはこんなパケットを送信。
DHCPREQUESTだ。正式な要求だ。
Destination IP : 255.255.255.255 Source IP : 0.0.0.0
Destination MAC : FF-FF-FF-FF-FF-FF Source MAC : クライアントMAC
Destination Port : 67 Source Port : 68
このパケットのDHCPメッセージの中には
DHCPサーバに要求するIPアドレス(DHCPOFFERに入ってたIP)が入ってる。
4、DHCPREQUESTを受け取ったDHCPサーバはこんなパケットを送信。
Destination IP : 255.255.255.255 Source IP : DHCPサーバのIP
Destination MAC : FF-FF-FF-FF-FF-FF Source MAC : DHCPサーバのMAC
Destination Port : 67 Source Port : 68
DHCPメッセージの中にはクライアントに設定するIPアドレスと一緒に、
オプション設定のサブネットマスクとかgwなんかも入っている。
DHCPACKだ
5、DHCPACKをクライアントが受け取った段階で、
やっとクライアントPCのインターフェイスにIPが割り当てられる。
IPアドレスが割り当てられるまで常にブロードキャスト通信を使って通信をする。
L2設計をしっかりしないと、盗聴の危険もあるので注意しよう。
以上、次はDHCPサーバ構築しよう。
0 件のコメント:
コメントを投稿