ひよっこエンジニアの備忘録

日常とかSEとしての備忘を書いていきます。

DHCP

[DHCPとは]
ネットワーク接続するのに必要なIPアドレス等の情報を自動的に割り当てる
アプリケーション層プロトコル


構成要素としては以下2種類に分けられる。
IPアドレス等を割り当てる側のDHCPサーバ(bootps/UDP:67)
IPアドレス等を割り当てられる側のDHCPクライアント(bootpc/UDP:68)
#server..s cliant..cで覚える

[設定項目]
IPアドレスの割り当て範囲(アドレスプール)
サブネットマスク
デフォルトゲートウェイアドレス
DNSサーバアドレス
・リース期間(アドレスの貸出期間)
IPアドレスの除外範囲(一部のアドレスレンジを配布しないよう設定可)


[DHCPの動作]
DHCP Discover
Cliant:68→Server:67(ブロードキャスト)
 ブロードキャストでネットワーク全体に問い合わせ。
  (DHCPサーバを見つける)
DHCP Offer
  Server:67→Cliant:68(ユニキャスト)
   サーバがクライアントへ割り当てるアドレスを提案。
   (DHCP Discover送信者への返信になるのでユニキャスト)
DHCP Request(ブロードキャスト)
  Cliant:68→Server:67(ブロードキャスト)
クライアントが提案されたIPを使用する事をNW全体へ通知。
DHCP Ack(ユニキャスト)
  Server:67→Cliant:68(ユニキャスト)
  サーバが設定情報をクライアントへ送信。

DHCPメッセージはブロードキャストを使用するためLAN内でのみ使用できる...のだが、
セグメントごとにDHCPサーバを置くのは運用が大変だし何よりお金がかかりまくる。。


そんなときに"DHCPリレーエージェント"を使うことで上記の悩みを解決できる。

DHCPリレーエージェントとは、サーバとクライアントが別セグに設置されていても
クライアントから受信したブロードキャストをユニキャストへ変換することができる機能。
※飽くまでも道路を作るだけの機能なので、別途サーバ側でセグメントごとにPool等設定が必要。

今はデータセンターのDHCPサーバを利用するために、拠点のルータとかL3SWに
リレーエージェントの設定を入れているような企業がほとんどかと思う。


[設定例]

CiscoルータをDHCPサーバとして利用する

(config)# service dhcp
    → DHCPサービスの有効化(デフォルトで有効?)
(config)# ip dhcp excluded-address 192.168.10.1 192.168.10.20
    →クライアントに付与しないアドレス範囲を設定
        #この例だと192.168.10.1~20は割り当て対象から除外される。)
(config)# ip dhcp pool OA-LAN-A
    →プール名の指定
(dhcp-config)# network 192.168.1.0 255.255.255.0
    →貸出範囲のアドレス/サブネットマスクを定義。
#ちなみにexcludedで定義したアドレス範囲は除外される。
(dhcp-config)# default-router 192.168.10.254
デフォルトゲートウェイの設定
(dhcp-config)# domain-name TEST-OA
DNSドメイン
(dhcp-config)# dns-server 192.168.200.254
DNSサーバアドレス
(dhcp-config)# lease 3
→貸出時間制限(ここでは1日) 割り当て後、1日はアドレスを使用可能。
      infiniteと入力することで時間無制限にできる。

★リレーエージェント設定
(config)# service dhcp
     → DHCPサービスの有効化(デフォルトで有効?)

(config)# interface Gi0/0
(config-if)# ip helper-address 192.168.100.100
DHCPサーバのアドレスを指定。
      (interfaceはクライアント側を指定すること)