Cisco IOS IPサービス – DHCP relay with HSRPの設定

スポンサーリンク

DHCPはbroadcastを用いるため、別セグメントのDHCPサーバを使う場合はDHCP relay agentの設定が必要となります。ここでは、DHCP relay agentとHSRPを併用する場合の注意点について考察します。

DHCP relay

設定方法

DHCP discoverなどのメッセージはbroadcast宛てに送信されます。従って、ルータを経由する事はできません。DHCP serverが直接接続されていない場合は、broadcastを転送する設定が必要になります。cisco公式ドキュメントではあまり使用されない表記ですが、このような機能は一般的にDHCP relay agentと呼ばれます

broadcastを転送するには、以下のようなコマンドを使用し転送先のIPアドレスを設定します。

Router(config-if)# ip helper-address <addr>

上記コマンドで転送されるのは、bootpc, bootps, domainなどの一部のudpのみです。必須設定ではありませんが、転送を許可するudpをカスタマイズするには以下のコマンドを使用します。

Router(config)# ip forward-protocol udp { <port_number> | <protocol_name> }

構成概要

以下の構成で動作確認をします。R1をDHCP Clientとして、R2をDHCP relay agentとして、R4をDHCP Serverとして設定します。(R3は現時点で使用しません)

                e0/0    e0/1
                .2+------+.2
            ┌----+  R2  +----┐
+------+    │    +------+    │    +------+
|  R1  +----┤                ├----+  R4  |
+------+DHCP│    +------+    │  .4+------+
      e0/0  └----+  R3  +----┘  e0/1
                .3+------+.3
                e0/0    e0/1
  192.168.123.0/24       192.168.234.0/24
 [R1]
interface Ethernet0/0
 ip address dhcp
!
 [R2]
interface Ethernet0/0
 ip address 192.168.123.2 255.255.255.0
 ip helper-address 192.168.234.4
!
interface Ethernet0/1
 ip address 192.168.234.2 255.255.255.0

 [R4]
ip dhcp excluded-address 192.168.123.2 192.168.123.3
!
ip dhcp pool VLAN_123
   network 192.168.123.0 255.255.255.0
   default-router 192.168.123.254 
!
interface Ethernet0/0
 ip address 192.168.234.4 255.255.255.0
!
ip route 192.168.123.2 255.255.255.255 192.168.234.2

設定説明

R1から受信したbroadcast(DHCP discoverなど)をR4に転送するように、以下の設定を投入します。

 [R2]
interface Ethernet0/0
 ip helper-address 192.168.234.4

R2はDHCPメッセージを転送する際に、自身(この場合はR2)のIPアドレスをgiaddrフィールドに記入します。これは、DHCP ServerがどのIPアドレス宛てにunicastで返信すべきかを教えるためです。

このパケットを観察すると以下のようになっています。確かに、DHCP relay agentのアドレスが書かれている事が分かります。

Ethernet II, Src: cc:01:15:1c:00:01 (cc:01:15:1c:00:01), Dst: cc:03:15:1c:00:00 (cc:03:15:1c:00:00)
Internet Protocol, Src: 192.168.123.2 (192.168.123.2), Dst: 192.168.234.4 (192.168.234.4)
User Datagram Protocol, Src Port: bootps (67), Dst Port: bootps (67)
Bootstrap Protocol
    Message type: Boot Request (1)
    Hardware type: Ethernet
    Hardware address length: 6
    Hops: 1
    Transaction ID: 0x00001e5c
    Seconds elapsed: 0
    Bootp flags: 0x8000 (Broadcast)
    Client IP address: 0.0.0.0 (0.0.0.0)
    Your (client) IP address: 0.0.0.0 (0.0.0.0)
    Next server IP address: 0.0.0.0 (0.0.0.0)
    Relay agent IP address: 192.168.123.2 (192.168.123.2)
    Client MAC address: cc:00:15:1c:00:00 (cc:00:15:1c:00:00)
    Client hardware address padding: 00000000000000000000
    Server host name not given
    Boot file name not given
    Magic cookie: (OK)
    Option: (t=53,l=1) DHCP Message Type = DHCP Discover
    Option: (t=57,l=2) Maximum DHCP Message Size = 1152
    Option: (t=61,l=27) Client identifier
    Option: (t=12,l=2) Host Name = "R1"
    Option: (t=55,l=8) Parameter Request List
    End Option

以下のように、DHCP relay agent宛てに疎通可能になるよう、適宜ルーティングを設定して下さい。

 [R4]
ip route 192.168.123.2 255.255.255.255 192.168.234.2

動作確認

想定通りのIPアドレスが割り当てられている事を確認します。

R1#show ip interface brief
Interface                  IP-Address      OK? Method Status                Protocol
Ethernet0/0                192.168.123.1   YES DHCP   up                    up  
Ethernet0/1                unassigned      YES NVRAM  administratively down down
Ethernet0/2                unassigned      YES NVRAM  administratively down down
Ethernet0/3                unassigned      YES NVRAM  administratively down down
R1#

DHCP relay with HSRP

設定方法

HSRPのようなデフォルトゲートウェイ冗長環境とDHCP relayを併用する場合は、注意が必要です。特に何も意識しないと、HSRPを構成している全てのルータがbroadcastを転送してしまうため、DHSP serverにdiscover messageが重複して届いてしまう問題が発生します。

このような問題を対処するために、Activeであるルータのみbroadcastを転送するように設定する事ができます。HSRP, VRRPなどに設定したをip helper-addressコマンドに指定する事で実装可能です。

Router(config)# ip helper-address <addr> redundancy <redundancy_name>

構成概要

以下の構成で動作確認をします。前述の構成と異なり、R2, R3をHSRP構成とします。

                e0/0    e0/1
                .2+------+.2
            ┌----+  R2  +----┐
+------+    │    +------+    │    +------+
|  R1  +----┤                ├----+  R4  |
+------+DHCP│    +------+    │  .4+------+
      e0/0  └----+  R3  +----┘  e0/1
                .3+------+.3
                e0/0    e0/1
  192.168.123.0/24       192.168.234.0/24
 [R1]
interface Ethernet0/0
 ip address dhcp
!
 [R2]
interface Ethernet0/0
 ip address 192.168.123.2 255.255.255.0
 ip helper-address 192.168.234.4 redundancy VLAN_123
 standby ip 192.168.123.254
 standby preempt
 standby name VLAN_123
!
interface Ethernet0/1
 ip address 192.168.234.2 255.255.255.0

 [R3]
interface Ethernet0/0
 ip address 192.168.123.3 255.255.255.0
 ip helper-address 192.168.234.4 redundancy VLAN_123
 standby ip 192.168.123.254
 standby priority 110
 standby preempt
 standby name VLAN_123
 standby track Ethernet0/1 20
!
interface Ethernet0/1
 ip address 192.168.234.3 255.255.255.0

 [R4]
ip dhcp excluded-address 192.168.123.2 192.168.123.3
!
ip dhcp pool VLAN_123
   network 192.168.123.0 255.255.255.0
   default-router 192.168.123.254 
!
interface Ethernet0/0
 ip address 192.168.234.4 255.255.255.0
!
ip route 192.168.123.2 255.255.255.255 192.168.234.2
ip route 192.168.123.3 255.255.255.255 192.168.234.3

設定説明

R2, R3にHSRPの設定を投入します。なお、後述の設定で使用しますので、HSRP設定に対して”VLAN_123″という名前をつけます。

 [R2]
interface Ethernet0/0
 standby ip 192.168.123.254
 standby preempt
 standby name VLAN_123

 [R3]
interface Ethernet0/0
 standby ip 192.168.123.254
 standby priority 110
 standby preempt
 standby name VLAN_123
 standby track Ethernet0/1 20

HSRPがActiveであるルータのみbroadcastを転送するように設定します。

 [R2]
interface Ethernet0/0
 ip helper-address 192.168.234.4 redundancy VLAN_123

 [R3]
interface Ethernet0/0
 ip helper-address 192.168.234.4 redundancy VLAN_123

動作確認

IPアドレスが想定通りに割り当てられている事を確認します。

R1#show ip interface brief
Interface                  IP-Address      OK? Method Status                Protocol
Ethernet0/0                192.168.123.1   YES DHCP   up                    up  
Ethernet0/1                unassigned      YES NVRAM  administratively down down
Ethernet0/2                unassigned      YES NVRAM  administratively down down
Ethernet0/3                unassigned      YES NVRAM  administratively down down
R1#
タイトルとURLをコピーしました