概要

DHCPサーバとDHCPクライアントは原則として同一ネットワーク上に接続されていなければいけません。この制約を回避するための機能がDHCPリレーエージェントです。

DHCPリレーエージェントの仕組みとCiscoルータ(Cisco IOS)で設定コマンドについて解説します。

DHCPリレーエージェントとは

DHCPサーバとDHCPクライアントは原則として同一ネットワーク上に接続されていなければいけません。すると、ネットワークごとにDHCPサーバを配置しなければいけなくなってしまいます。たくさんのDHCPサーバを配置して各サーバを管理するのはとても手間がかかります。

そこで、1台のDHCPサーバで複数のネットワーク上のDHCPクライアントに対してTCP/IP設定情報を配布できるようにDHCPリレーエージェントを利用します。DHCPリレーエージェントは、DHCPクライアントからのブロードキャストのDHCPメッセージをユニキャストとして、DHCPサーバへ転送します。ルータをDHCPリレーエージェントとして設定することがほとんどです。

DHCPリレーエージェントの仕組み

DHCPサーバで複数のネットワーク用のDHCPプールを設定

1台のDHCPサーバで複数のネットワークのDHCPクライアントに設定情報を配布するためには、あらかじめ複数のネットワーク用のDHCPプールを設定しておきます。

たとえば、192.168.1.0/24、192.168.2.0/24、192.168.3.0/24の3つのネットワークのDHCPクライアントにTCP/IP設定情報を配布するために、以下の図のようにDHCPプールを3つ作成します。

図 DHCPサーバ 複数のプールを作成

DHCPリレーエージェントの動作の仕組みを考えるうえで、上図の192.168.1.0/24のDHCPクライアント1へのIPアドレス割り当てについてみていきます。

DHCP DISCOVERの転送

DHCPクライアント1は、ネットワークに接続するとDHCPサーバを探すためにDHCP DISCOVERメッセージをブロードキャストします。ブロードキャストは他のネットワークへ転送されません。

DHCPリレーエージェントを有効にしているルータは、DHCP DISCOVERを受信して宛先IPアドレスをDHCPサーバのユニキャストIPアドレスへ変換して転送します。その際に、リレーエージェントのIPアドレス192.168.1.1をDHCPメッセージ内のgipaddrに指定します。

DHCPサーバは、ユニキャストに変換されたDHCP DISCOVERを受信します。DHCPクライアントはいったいどのネットワークのクライアントなのかを判断しなければいけません。そこで、DHCPメッセージ内のDHCPリレーエージェントのIPアドレスのgipaddrをチェックします。DHCPリレーエージェントは、クライアントと同一ネットワークのはずです。DHCPサーバは、DHCPリレーエージェントのIPアドレスと同じネットワークであるDHCPプール1のIPアドレスを払い出します。

図 DHCP DISCOVERの転送

DHCPサーバへ転送されるときの送信元IPアドレスおよび送信元ポート番号は、特にRFCでは規定されていません。Ciscoの実装では送信元IPアドレスはリレーエージェントのIPアドレスです。上の図では送信元IPアドレス192.168.1.1です。そして、送信元ポート番号はUDP67(DHCPサーバ)になります。

DHCP OFFERの転送

DHCPサーバは、クライアントに設定情報を提供するDHCP OFFERをリレーエージェント宛てに転送します。そして、リレーエージェントは宛先をブロードキャストアドレスとして192.168.1.0/24の全体へ転送します。そうすると、DHCPクライアント1はDHCP OFFERを受信できます。

図 DHCP OFFERの転送

DHCP OFFERの宛先はブロードキャストではなくユニキャストになることもあります。OFFERがブロードキャストになるか、ユニキャストになるかはDHCPメッセージ内のブロードキャストフラグによって決まります。

DHCP REQUESTの転送

DHCPクライアント1は、OFFERで提案されたTCP/IP設定情報を要求するためにDHCP REQUESTをブロードキャストします。すると、DHCPリレーエージェントからDHCPサーバへユニキャストで転送します。

図 DHCP REQUESTの転送
図 DHCP REQUESTの転送

DHCP ACKの転送

DHCPサーバからTCP/IP設定情報の利用を承認するACKメッセージをリレーエージェントに転送します。リレーエージェントからブロードキャストでDHCP ACKメッセージをクライアントに転送します。これでDHCPクライアント1は、IPアドレスをはじめとするTCP/IP設定が完了します。

図 DHCP ACKの転送
図 DHCP ACKの転送

DHCP ACKの宛先もブロードキャストではなくユニキャストになることもあります。ACKがブロードキャストになるか、ユニキャストになるかはDHCPメッセージ内のブロードキャストフラグによって決まります。

DHCPリレーエージェントの設定と確認コマンド(Cisco IOS)

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

CiscoルータをDHCPリレーエージェントとして設定できます。ブロードキャストのDHCPメッセージを受信するインタフェースで設定コマンドを入力します。つまり、DHCPクライアントがつながっているインタフェースです。

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

(config)#interface <interface-name>
(config-if)#ip helper-address <dhcp-server-ip-address>

<interface-name> : DHCPクライアントがつながっているインタフェース名
<dhcp-server-ip-address> : 転送先のDHCPサーバのIPアドレス

設定コマンドはこれだけでとてもシンプルです。DHCPクライアントが存在するすべてのインタフェースでip helper-addressコマンドを設定してください。

DHCPリレーエージェントの確認コマンド

次の表にDHCPリレーエージェントの設定が正しく行われていることを確認するための主なコマンドをまとめています。

コマンド概要
#show ip interface転送先のDHCPサーバのIPアドレスを確認します。
表 DHCPリレーエージェントの主な確認コマンド

show ip interface

show ip interfaceコマンドでDHCPメッセージを転送するDHCPサーバのIPアドレスが正しく設定されていることを確認します。

show ip interface

R1#show ip interface Ethernet 0/0
Ethernet0/0 is up, line protocol is up
  Internet address is 192.168.1.1/24
  Broadcast address is 255.255.255.255
  Address determined by setup command
  MTU is 1500 bytes
  Helper address is 192.168.4.100
  Directed broadcast forwarding is disabled
  Outgoing access list is not set
  Inbound  access list is not set
  Proxy ARP is enabled
-- omitted --

まとめ

ポイント

  • DHCPサーバとDHCPクライアントが同一ネットワーク上にいない場合は、DHCPリレーエージェントが必要です。
  • DHCPリレーエージェントは、ブロードキャストのDHCPメッセージをDHCPサーバ宛てのユニキャストで転送します。
  • CiscoルータをDHCPリレーエージェントとするには、クライアントが存在するインタフェースコンフィグレーションモードで次のコマンドを入力します。
    (config-if)#ip helper-address <dhcp-server-ip-address>

TCP/IP