Closed21

CCNP-ENARSI_DHCP

ito_110ito_110

DHCP

ネットワーク接続に必要な情報を割り当てるプロトコル
割り当てる情報は下記

  • IPアドレス
  • サブネットマスク
  • デフォルトゲートウェイ
  • DNSサーバ
ito_110ito_110

DHCPのメッセージ

  • DHCP DISCOVER
    クライアントがIPメッセージなどを要求するメッセージ

  • DHCP OFFER
    サーバーがIPアドレスなどの情報を返答するメッセージ

  • DHCP REQUEST
    クライアントがOFFERによって提示された情報の一つを選択し、IPアドレスの取得を正式に要求するメッセージ

  • DHCP ACK
    サーバーが取得を認めるメッセージ

  • DHCP NAK
    サーバーが取得を拒否するエラーメッセージ
    ※要求IPアドレスが使用中の場合に送信

  • DHCP DECLINE

    クライアントがサーバーに送信するエラーメッセージ

    ※OFFERで提示されたIPアドレスがすでに使用中だった場合に送信

  • DHCP INFORM

    クライアントがIPアドレス以外のオプションを要求するメッセージ

  • DHCP RELEASE

    クライントがIPアドレスを返却するメッセージ

ito_110ito_110

DHCPのクライアント・サーバ設定

DHCPクライアント

IPアドレスなど必要な情報をサーバから取得

DHCPクライアントの設定コマンド

(config-if)#ip address dhcp

DHCPサーバ

クライアントからの要求があった場合、管理しているプールアドレスからIPアドレスを貸出する

DHCPサーバ

# DHCPサーバとDHCPリレーエージェントの有効化(デフォルトで有効)
(config)#service dhcp

# DHCPプールを作成(必須)
(config)#ip dhcp pool プール名

# 貸出するアドレスの範囲を指定(必須)
(dhcp-config)#network ネットワークアドレス {ネットマスク|プレフィックス長}

# 貸し出し期間の指定(デフォルトは1日)
(dhcp-config)#lease {日 [時] [分]|infinite}
※infinite:DHCPで割り当てる期限を無限とする場合設定

# DNSサーバのアドレス指定(最大8つまで)
(dhcp-config)#dns-server IPアドレス IPアドレス2 IPアドレス3

# デフォルトゲートウェイの指定(最大8つまで)
(dhcp-config)#default-router IPアドレス IPアドレス2 IPアドレス3

# WINSサーバのアドレスを指定(最大8つまで) 
(dhcp-config)#netbios-name-server IPアドレス IPアドレス2 IPアドレス3

# 中心となるDHCPサーバからパラメータ情報を取得する
(dhcp-config)#import all

# 割り当てから除外するアドレス範囲を指定
(config)#ip dhcp excluded-address 開始アドレス 終了アドレス

参考リンク:DHCPで配布する情報の有効期限の設定(DHCPサーバ機能)

ito_110ito_110

DHCPリレーエージェント

DHCPサーバとクライアントが異なるセグメントにいる場合に転送する機能
DHCPのブロードキャストをユニキャストにして転送する

DHCPリレーエージェントのの設定コマンド

(config-if)#ip helper-address 宛先DHCPサーバのIPアドレス
ito_110ito_110

DHCPスヌーピング

DHCPパケットを監視する機能
「snooping」はのぞき見や監視という意味

各ポートを「trustedポート(信頼できるポート)」と「untrustedポート(信頼できないポート)」に分類する

  • trustedポートに着信したDHCPパケットは全て許可
  • untrustedポートに着信したDHCPパケットは
    • クライアント → サーバ :許可
    • サーバ → クライアント :拒否

また、DHCPパケットのレートを制限することも可能のため、これによりDoS攻撃などを防ぐことができる。

ito_110ito_110

DHCPスプーフィング

DHCPにおいてユーザからのパケットを盗聴する攻撃
「spoofing」とは「なりすまし」という意味

DHCPスプーフィングの処理の流れ

DHCPの正しい動作を確認してから、DHCPスプーフィングの処理の流れを確認する

DHCPの動作

  1. DHCPクライアントからDHCPサーバへ。DHCP DISCOVERを送信する
  2. DHCPサーバはDHCPクライアントへ。DHCP OFFERを応答(IPアドレスやデフォルトゲートウェイなど)
  3. DHCPクライアントからDHCPサーバへ。DHCP OFFERから一つ選択して、DHCP REQUESTを送信する
  4. DHCPサーバはDHCPクライアントへ。DHCP ACKで応答する

DHCPスプーフィングの動作

  1. DHCPクライアントからDHCPサーバへ。DHCP DISCOVERを送信する
  2. 不正なDHCPサーバはDHCPクライアントへ。DHCP OFFERを応答(不正なDHCPサーバのアドレスをデフォルトゲートウェイとして応答する)
  3. DHCPクライアントからDHCPサーバへ。DHCP OFFERから一つ選択して、DHCP REQUESTを送信する
  4. DHCPサーバはDHCPクライアントへ。DHCP ACKで応答する
  5. DHCPクライアントは不正なDHCPサーバへ通信する
  6. 不正なDHCPサーバはDHCPサーバへ通信する

参考リンク:DHCPスプーフィングとは

ito_110ito_110

DHCPオプション

DHCPにてオプションを指定すると様々な情報を通知する
主なオプションは下記

  • 3:ルータ(デフォルトゲートウェイ)のIPアドレス
  • 6:DNSサーバのIPアドレス
  • 66:1つのTFTPサーバのIPアドレス
  • 82:DHCPリレーエージェント情報
  • 150:複数のTFTPサーバのIPアドレス
ito_110ito_110

DHCPトラブルシューティング:オプション82とDHCPスヌーピング

DHCPスヌーピングを有効化するとオプション82も有効化される
ただし、DHCPサーバがオプション82に対応していないと問題発生する
DHCPオプション82が付与されたパケットが不正なパケットと判断されて、破棄される

問題発生する理由は?

giaddrフィールドの設定値にてエラーが発生する

対策は?

  1. オプション82を無効化する
    (config)#no ip dhcp snooping information option

  2. DHCPパケットを受け入れる

    インターフェイスごとに設定する場合

    (config-if)#ip dhcp relay information trusted

    全てのインターフェイスに設定する場合

    (config)#ip dhcp relay information trust-all

ito_110ito_110

DHCPv6サーバ

DHCPv6において、IPアドレスを割り当て・管理する

ito_110ito_110

DHCPv6-PD

IPv6プレフィックスの機器への自動委任を可能にするプロトコル

ito_110ito_110

コマンド:DHCPv6サーバの設定

# 対象のインターフェースでDHCPサーバ機能を有効化する
(config-if)#ipv6 dhcp server {プール名}
ito_110ito_110

コマンド:DHCPv6プールの設定

# DHCPv6プールを作成し、DHCPv6モードに移行
(config)#ipv6 dhcp pool {プール名}

# クライアントに割り当てるプレフィックスを指定
(config-dhcpv6)#address prefix {プレフィックス}
ito_110ito_110

コマンド:DHCPv6プールの設定(プレフィック委任を行う場合)

(config)#ipv6 local pool {ローカルプール名} {プレフィックス} {サブプレフィックス}:クライアントに割り当てるプレフィックスを指定
(config)#ipv6 dhcp pool {プール名} :DHCPv6プールを作成し、DHCPv6モードに移行
(config-dhcpv6)#prefix-delegation pool {ローカルプール名}:クライアントに委任する(割り当てる)プレフィックスのローカルプール名を指定
(config-dhcpv6)#domain-name {ドメイン名}:クライアントに通知するドメイン名を指定
(config-dhcpv6)#dns-server {IPv6アドレス} :クライアントに通知するDNSサーバのアドレスを指定
ito_110ito_110

DHCPv6クライアント

自身が使用するIPv6アドレスなど必要な情報をサーバから取得する

DHCPv6-PDクライアントの場合は、委任してもらうプレフィックスなどの情報をサーバから取得し、オートコンフィグレーション(ルータが64ビットプレフィックスを含めたネットワーク情報を、RAメッセージとしてそのローカルリンク上に送信)などを行う

ito_110ito_110

コマンド:DHCPv6クライアントの設定

(config-if)#ipv6 address dhcp ・・・ 対象のインターフェースでDHCPv6クライアント機能を有効化する
ito_110ito_110

コマンド:DHCPv6-PDクライアントの設定

(config-if)#ipv6 dhcp client pd {プレフィックス名} ・・・ 対象のインターフェースでDHCPv6-PDクライアント機能を有効化する
ito_110ito_110

DHCPv6の確認コマンド

# DHCPv6サーバ側でDHCPv6クライアントに割り当てたIPv6アドレスを確認する
show ipv6 dhcp binding
ito_110ito_110

DHCPv6リレーエージェント

DHCPサーバとクライアントが異なるセグメントにいる場合に中継する

ito_110ito_110

コマンド:DHCPv6リレーエージェントの設定

# 対象のインターフェースでDHCPv6リレーエージェント機能を有効化する
# ※(DHCPクライアントが存在する側のインターフェースコンフィグレーションモードで設定)

(config-if)#ipv6 dhcp relay destination {宛先DHCPv6サーバのIPv6アドレス}[転送するインターフェース] 
ito_110ito_110

DHCPv6ガード

許可されていない不正なDHCPサーバおよびリレーエージェントからのDHCPサーバ応答やDHCPサーバアドバタイズメントをブロックする機能

DHCPv6ガードで処理されるパケットは以下の3つのタイプに分類され、デバイスの役割によって発信できるパケットが決まっています。

  • クライアントメッセージ・・・どの役割のデバイスからでも発信可能
  • DHCPサーバアドバタイズメント・・・役割がサーバに設定されたデバイスからのみ発信可能
  • DHCPサーバ応答・・・役割がサーバに設定されたデバイスからのみ発信可能
このスクラップは2024/03/03にクローズされました