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

スポンサーリンク

DHCP smart relayはセカンダリーアドレスを使ったDHCP relay agentです。通常設定ではプライマリアドレスを使いますが、構成上セカンダリーアドレスを使わざるを得ない場合は、この機能を使います。

DHCP relay

設定方法

DHCP smart relayを有効にするには以下のコマンドを入力します。

通常は、DHCP discovryなどのbroadcastを転送を行った転送元アドレスを表すgiaddrフィールドにprimary addressが記入されます。しかし、DHCP smart relayを有効にすると以下のような挙動に変わります。

  • giaddrフィールドにprimary addressを設定してDHCP discoverを転送します
  • 上記の転送に対してDHCP serverが応答を返さない場合は、giaddrフィールドにsecondary addressを設定してDHCP discoverを転送します
Router(config-if)# ip dhcp smart-relay

構成概要

R2 e0/0のprimary addressとして192.168.12.2/24をsecondary addressとして192.168.21.2を割り当てます。R2はDHCP relay agentとして設定し、R3はDHCP serverとして設定します。R3に設定されたDHCP poolはsecondary addressが割り当てられた192.168.21.0/24です。

       e0/0          e0/0    e0/1          e0/0
 +------+dhcp        .2+------+.2          .3+------+
 |  R1  +--------------+  R2  +--------------+  R3  |
 +------+              +------+              +------+
        192.168.12.0/24        192.168.23.0/24
        192.168.21.0/24
 [R1]
interface Ethernet0/0
 ip address dhcp
!
 [R2]
ip dhcp smart-relay
!
interface Ethernet0/0
 ip address 192.168.21.2 255.255.255.0 secondary
 ip address 192.168.12.2 255.255.255.0
 ip helper-address 192.168.23.3
!
interface Ethernet0/1
 ip address 192.168.23.2 255.255.255.0

 [R3]
ip dhcp pool VLAN21
   network 192.168.21.0 255.255.255.0
!
interface Ethernet0/0
 ip address 192.168.23.3 255.255.255.0
!
ip route 0.0.0.0 0.0.0.0 192.168.23.2

なお、設定全文は下記ファイルです。

R1
!
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R1
!
boot-start-marker
boot-end-marker
!
!
no aaa new-model
memory-size iomem 5
!
!
ip cef
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
interface Ethernet0/0
 ip address dhcp
 half-duplex
!
interface Ethernet0/1
 no ip address
 shutdown
 half-duplex
!
interface Ethernet0/2
 no ip address
 shutdown
 half-duplex
!
interface Ethernet0/3
 no ip address
 shutdown
 half-duplex
!
!
ip http server
ip forward-protocol nd
!
!
!
!
!
!
control-plane
!
!
!
!
mgcp behavior g729-variants static-pt
!
!
!
!
!
line con 0
line aux 0
line vty 0 4
 login
!
!
end
R2
!
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R2
!
boot-start-marker
boot-end-marker
!
!
no aaa new-model
memory-size iomem 5
!
!
ip cef
ip dhcp smart-relay
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
interface Ethernet0/0
 ip address 192.168.21.2 255.255.255.0 secondary
 ip address 192.168.12.2 255.255.255.0
 ip helper-address 192.168.23.3
 half-duplex
!
interface Ethernet0/1
 ip address 192.168.23.2 255.255.255.0
 half-duplex
!
interface Ethernet0/2
 no ip address
 shutdown
 half-duplex
!
interface Ethernet0/3
 no ip address
 shutdown
 half-duplex
!
!
ip http server
ip forward-protocol nd
!
!
!
!
!
!
control-plane
!
!
!
!
mgcp behavior g729-variants static-pt
!
!
!
!
!
line con 0
line aux 0
line vty 0 4
 login
!
!
end
R3
!
version 12.4
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname R3
!
boot-start-marker
boot-end-marker
!
!
no aaa new-model
memory-size iomem 5
!
!
ip cef
no ip dhcp use vrf connected
!
ip dhcp pool VLAN21
   network 192.168.21.0 255.255.255.0
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
interface Ethernet0/0
 ip address 192.168.23.3 255.255.255.0
 half-duplex
!
interface Ethernet0/1
 no ip address
 shutdown
 half-duplex
!
interface Ethernet0/2
 no ip address
 shutdown
 half-duplex
!
interface Ethernet0/3
 no ip address
 shutdown
 half-duplex
!
!
ip http server
ip forward-protocol nd
ip route 0.0.0.0 0.0.0.0 192.168.23.2
!
!
!
!
!
!
control-plane
!
!
!
!
mgcp behavior g729-variants static-pt
!
!
!
!
!
line con 0
line aux 0
line vty 0 4
 login
!
!
end

パケットの観察

DHCPによるアドレス取得の過程で、R2 e0/1を流れたパケットは以下の通りです。DHCP Discoverが3回送信されている事が分かります。

No.     Time        Source                Destination           Protocol Info
      6 12.779000   cc:02:00:d4:00:00     cc:02:00:d4:00:00     LOOP     Reply
      7 12.920000   cc:02:00:d4:00:00     CDP/VTP/DTP/PAgP/UDLD CDP      Device ID: R3  Port ID: Ethernet0/0  
      8 16.248000   192.168.12.2          192.168.23.3          DHCP     DHCP Discover - Transaction ID 0x21f4
      9 20.014000   cc:01:00:d4:00:01     cc:01:00:d4:00:01     LOOP     Reply
     10 20.248000   192.168.12.2          192.168.23.3          DHCP     DHCP Discover - Transaction ID 0x21f4
     11 22.795000   cc:02:00:d4:00:00     cc:02:00:d4:00:00     LOOP     Reply
     12 30.014000   cc:01:00:d4:00:01     cc:01:00:d4:00:01     LOOP     Reply
     13 32.779000   cc:02:00:d4:00:00     cc:02:00:d4:00:00     LOOP     Reply
     14 37.982000   192.168.12.2          192.168.23.3          DHCP     DHCP Discover - Transaction ID 0x21f5
     15 38.060000   192.168.23.3          192.168.21.1          ICMP     Echo (ping) request
     16 39.545000   192.168.23.3          192.168.21.1          ICMP     Echo (ping) request
     17 39.998000   cc:01:00:d4:00:01     cc:01:00:d4:00:01     LOOP     Reply
     18 40.045000   192.168.23.3          192.168.21.2          DHCP     DHCP Offer    - Transaction ID 0x21f5
     19 40.170000   192.168.12.2          192.168.23.3          DHCP     DHCP Request  - Transaction ID 0x21f5
     20 40.264000   192.168.23.3          192.168.21.2          DHCP     DHCP ACK      - Transaction ID 0x21f5

1回目、2回目のDHCP Discoverはprimary addressである192.168.12.2がgiaddrフィールドに設定されたメッセージです。それに対し、3回目のDHCP Discoverはsecondary addressである192.168.21.2がgiaddrフィールドに設定されています。3回目のDHCP Discoverを詳細に表示すると以下の通りです。

Ethernet II, Src: cc:01:00:d4:00:01 (cc:01:00:d4:00:01), Dst: cc:02:00:d4:00:00 (cc:02:00:d4:00:00)
Internet Protocol, Src: 192.168.12.2 (192.168.12.2), Dst: 192.168.23.3 (192.168.23.3)
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: 0x000021f5
    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.21.2 (192.168.21.2)
    Client MAC address: cc:00:00:d4:00:00 (cc:00:00:d4: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

動作確認

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

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