目次
概要
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リレーエージェントの動作の仕組みを考えるうえで、上図の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サーバへ転送されるときの送信元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の宛先はブロードキャストではなくユニキャストになることもあります。OFFERがブロードキャストになるか、ユニキャストになるかはDHCPメッセージ内のブロードキャストフラグによって決まります。
DHCP REQUESTの転送
DHCPクライアント1は、OFFERで提案されたTCP/IP設定情報を要求するためにDHCP REQUESTをブロードキャストします。すると、DHCPリレーエージェントからDHCPサーバへユニキャストで転送します。
DHCP ACKの転送
DHCPサーバからTCP/IP設定情報の利用を承認するACKメッセージをリレーエージェントに転送します。リレーエージェントからブロードキャストでDHCP ACKメッセージをクライアントに転送します。これでDHCPクライアント1は、IPアドレスをはじめとするTCP/IP設定が完了します。
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アドレスを確認します。 |
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>
関連記事
以下の記事は、CiscoルータでのDHCPリレーエージェントの詳細な設定例です。パケットキャプチャの結果も載せているので、DHCPリレーエージェントの動作の仕組みを詳しく確認できます。
DHCPサーバの配置について、以下の記事にまとめています。
TCP/IP
- TCP/IPの階層
- IP(Internet Protocol) ~データを送り届ける~
- ICMP ~きちんとIPで転送できますか?~
- Ping ~きちんとデータは届きますか?~
- Windows OSのPingコマンド
- トレースルート ~データはどのルータを通っていますか?~
- tracertコマンド(Windows OS)
- ICMPリダイレクト
- トラブルはどこ? ~Pingとトレースルート~
- ARP ~IPアドレスとMACアドレスを対応付け~
- ARPフォーマット
- Gratuitous ARP(GARP)
- ポート番号 ~どのアプリケーションのデータなの?
- TCPの概要
- TCPの動作
- UDPの概要
- アプリケーションのデータが届くまでのまとめ
- DNS ~宛先IPアドレスを求める~
- nslookupコマンド ~DNSの名前解決の確認~
- DHCP ~IPアドレスを自動割り当て~
- Cisco IOS DHCPサーバの設定と確認コマンド
- Ciscoルータ DHCPサーバの設定例
- DHCPリレーエージェント
- DHCPリレーエージェントの設定例[Cisco]
- DHCPサーバ配置のまとめ
- TCP/IPの設定のまとめ
- ipconfigコマンド ~Windows OSのTCP/IP設定を確認~
- Linux(Ubuntu)でのTCP/IP設定の確認コマンド
- Webサイト
- HTMLとCSS ~Webページを作る~
- URL ~Webサイト(Webページ)のアドレス~
- HTTP ~HTMLファイルを転送する~
- Webアプリケーション ~Webブラウザだけあればいい~
- HTTP Cookie
- Webアプリケーションのセッション管理
- Webプロキシサーバ ~Webアクセスを代わりに~
- Webアクセスのまとめ
- 電子メール
- SMTP ~電子メール送信用プロトコル~
- POP3 ~メール受信用プロトコル~
- IMAP4 ~メールサーバ上でメールを管理~
- 電子メールのまとめ
- FTP ~代表的なファイル転送プロトコル~
- TFTP ~簡易的なファイル転送プロトコル~
- Windows10/11のTFTPクライアント
- ネットワークのトラブルの切り分け手順