安全 : 思科自适应安全设备 (ASA) 软件

ASA DHCP中继配置示例

2015 年 8 月 28 日 - 机器翻译
其他版本: PDFpdf | 英语 (2015 年 7 月 1 日) | 反馈

简介

本文在数据包捕获和调试帮助下描述在思科可适应安全工具(ASA)的DHCP中继,并且提供配置示例。

贡献用Sourav卡卡尔和Dinkar夏尔马, Cisco TAC工程师。

先决条件

DHCP 中继代理允许安全设备将来自客户端的 DHCP 请求转发至连接到不同接口的路由器或其他 DHCP 服务器。

这些限制仅适用对使用DHCP中继代理:

  • 如果启用了 DHCP 服务器功能,则不能同时启用中继代理。
  • 您必须直接地连接到安全工具,并且不能通过另一个中继代理或路由器发送请求。
  • 对于多个上下文模式,不能启用 DHCP 中继或在由多个上下文使用的接口上配置 DHCP 中继服务器。

在透明防火墙模式下,DHCP 中继服务不可用。在透明防火墙模式的安全工具通过只允许地址解析服务(ARP)流量。所有其他流量都要求使用访问控制列表 (ACL)。为了允许DHCP请求和通过在透明模式的安全工具回复,您必须配置两个ACL :

  • 一个 ACL 允许从内部接口向外部发送 DHCP 请求
  • 一个 ACL 允许接收来自反方向的服务器的答复

要求

思科建议您有ASA CLI和Cisco IOS CLI基本的了解。

使用的组件

本文档中的信息基于以下软件和硬件版本:

  • ASA 5500-x系列安全工具版本9.x或以上
  • Cisco 1800 系列路由器

本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。

背景信息

DHCP协议提供自动配置参数,例如IP地址以一个子网掩码、默认网关、DNS服务器地址和无线集成网络传感器(WINS)地址对主机。最初,DHCP 客户端没有其中的任何配置参数。为了得到此信息,他们发送它的广播请求。当 DHCP 服务器看到此请求后,DHCP 服务器将提供必要信息。由于这些广播请求的特性,DHCP 客户端和服务器必须位于相同的子网上。默认情况下,第 3 层设备(如路由器和防火墙)通常不会转发这些广播请求。

尝试将 DHCP 客户端和 DHCP 服务器放在相同的子网上可能不会总是很方便。在这种情况下,可以使用 DHCP 中继。当安全设备上的 DHCP 中继代理收到来自内部接口上的主机的 DHCP 请求时,它会将该请求转发至外部接口上的其中一个指定 DHCP 服务器。当 DHCP 服务器答复客户端时,安全设备会将该中继转发回来。因此,在与 DHCP 服务器的对话中,DHCP 中继代理充当了 DHCP 客户端的代理。 

数据包流

当没有使用时,此镜像说明DHCP信息包流DHCP中继代理:

ASA截断这些数据包并且包裹他们到DHCP中继格式: 

与数据包捕获的DHCP中继ASA内部和外部接口的

记录下来内容用红色highligted的,因为那是ASA如何修改多种字段。

  1. 为了开始DHCP过程,请引导系统并且传送广播消息(DHCPDISCOVER)对目的地址255.255.255.255 - UDP端口67



    注意:如果VPN客户端要求IP地址,中继代理IP地址是由DHCP网络范围命令定义的第一个可用的IP地址,根据组政策。



  2. 通常, ASA将下降广播,但是,因为配置作为DHCP中继,转发DHCPDISCOVER信息作为单播信息包对从面对服务器的接口IP的DHCP服务器的IP来源补充。在这种情况下,它是外部接口IP地址。注意在IP报头和中继代理字段上的变化:



    注意:由于在版本9.1(5.7)的Cisco Bug ID合并的修正CSCuo89924, ASA, 9.3(1)和以后将转发单播信息包对从面对客户端的接口IP地址的DHCP服务器的IP来源补充(giaddr) dhcprelay启用的地方。在这种情况下,它将是内部接口IP地址。



  3. 服务器退还DHCPOFFER信息作为单播信息包对ASA,被注定对在DHCPDISCOVER- UDP端口设置的中继代理IP 67。在这种情况下,它是内部接口(giaddr)的IP地址,哪里dhcprelay启用。注意在第三层报头的目的地IP :



  4. ASA发送此数据包在内部接口外面- UDP端口68。当数据包离开内部接口时,请注意在IP报头上的变化:



  5. 一旦接收DHCPOFFER信息,请发送DHCPREQUEST信息为了表明您接受提供。



  6. ASA通过DHCPREQUEST对DHCP服务器。



  7. 一旦服务器获得DHCPREQUEST,退还DHCPACK为了确认提供的IP。



  8. ASA通过从DHCP服务器的DHCPACK给您,并且那完成处理。

调试和Syslog DHCP中继处理的

这是DHCP请求转发对DHCP服务器接口198.51.100.2 :

DHCPRA: relay binding created for client 0050.5684.396a.DHCPD: 
setting giaddr to 192.0.2.1.


dhcpd_forward_request: request from 0050.5684.396a forwarded to 198.51.100.2.
DHCPD/RA: Punt 198.51.100.2/17152 --> 192.0.2.1/17152 to CP
DHCPRA: Received a BOOTREPLY from interface 2
DHCPRA: relay binding found for client 0050.5684.396a.
DHCPRA: Adding rule to allow client to respond using offered address 192.0.2.4

在回复从DHCP服务器后接收,安全工具转发它对与MAC地址0050.5684.396a的DHCP客户端,并且更改对其自己的内部接口的网关地址。

DHCPRA: forwarding reply to client 0050.5684.396a.
DHCPRA: relay binding found for client 0050.5684.396a.
DHCPD: setting giaddr to 192.0.2.1.
dhcpd_forward_request: request from 0050.5684.396a forwarded to 198.51.100.2.
DHCPD/RA: Punt 198.51.100.2/17152 --> 192.0.2.1/17152 to CP
DHCPRA: Received a BOOTREPLY from interface 2
DHCPRA: relay binding found for client 0050.5684.396a.
DHCPRA: exchange complete - relay binding deleted for client 0050.5684.396a.
DHCPD: returned relay binding 192.0.2.1/0050.5684.396a to address pool.
dhcpd_destroy_binding() removing NP rule for client 192.0.2.1
DHCPRA: forwarding reply to client 0050.5684.396a.

同一处理在Syslog出现:

%ASA-7-609001: Built local-host inside:0.0.0.0
%ASA-7-609001: Built local-host identity:255.255.255.255
%ASA-6-302015: Built inbound UDP connection 13 for inside:
 0.0.0.0/68 (0.0.0.0/68) to identity:255.255.255.255/67 (255.255.255.255/67)
%ASA-7-609001: Built local-host identity:198.51.100.1
%ASA-7-609001: Built local-host outside:198.51.100.2
%ASA-6-302015: Built outbound UDP connection 14 for outside:
 198.51.100.2/67 (198.51.100.2/67) to identity:198.51.100.1/67 (198.51.100.1/67)

%ASA-7-609001: Built local-host inside:192.0.2.4
%ASA-6-302020: Built outbound ICMP connection for
 faddr 192.0.2.4/0 gaddr 198.51.100.2/1 laddr 198.51.100.2/1
%ASA-7-609001: Built local-host identity:192.0.2.1
%ASA-6-302015: Built inbound UDP connection 16 for outside:
 198.51.100.2/67 (198.51.100.2/67) to identity:192.0.2.1/67 (192.0.2.1/67)
%ASA-6-302015: Built outbound UDP connection 17 for inside:
 192.0.2.4/68 (192.0.2.4/68) to identity:192.0.2.1/67 (192.0.2.1/67)
%ASA-6-302021: Teardown ICMP connection for
 faddr 192.0.2.4/0 gaddr 198.51.100.2/1 laddr 198.51.100.2/1

配置

本部分提供用于配置本文档所述功能的信息。

注意:使用命令查找工具仅限注册用户)可获取有关本部分所使用命令的详细信息。

网络图

本文档使用以下网络设置:

配置

本文档使用以下配置:

与使用的DHCP中继配置CLI

dhcprelay server 198.51.100.2 outside
dhcprelay enable inside
dhcprelay setroute inside
dhcprelay timeout 60

DHCP 中继最终配置

show run
: Saved
:
ASA Version 9.1(5)
!
hostname ASA
enable password 8Ry2YjIyt7RRXU24 encrypted
passwd 2KFQnbNIdI.2KYOU encrypted
names
!
interface Ethernet0/0
 nameif inside
 security-level 0
 ip address 192.0.2.1 255.255.255.0
!
interface Ethernet0/1
 nameif outside
 security-level 100
 ip address 198.51.100.1 255.255.255.0
!
interface Ethernet0/2
 no nameif
 no security-level
 no ip address
!
interface Ethernet0/3
 no nameif
 no security-level
 no ip address
!
interface Management0/0
 shutdown
 no nameif
 no security-level
 no ip address
!
boot system disk0:/asa825-k8.bin
ftp mode passive
no pager
logging enable
logging buffer-size 40960
logging buffered debugging
mtu inside 1500
mtu outside 1500
no failover
icmp unreachable rate-limit 1 burst-size 1
no asdm history enable
arp timeout 14400
timeout xlate 0:30:00
timeout pat-xlate 0:00:30
timeout conn 3:00:00 half-closed 0:30:00 udp 0:15:00 icmp 0:00:02
timeout sunrpc 0:10:00 h323 0:05:00 h225 0:30:00 mgcp 0:05:00 mgcp-pat 0:05:00
timeout sip 0:30:00 sip_media 0:02:00 sip-invite 0:03:00 sip-disconnect 0:02:00
timeout sip-provisional-media 0:02:00 uauth 0:05:00 absolute
timeout tcp-proxy-reassembly 0:01:00
timeout floating-conn 0:00:00
dynamic-access-policy-record DfltAccessPolicy
http server enable
http 0.0.0.0 0.0.0.0 inside
no snmp-server location
no snmp-server contact
crypto ipsec security-association lifetime seconds 28800
crypto ipsec security-association lifetime kilobytes 4608000
telnet timeout 5
ssh timeout 5
console timeout 0

dhcprelay server 198.51.100.2 Outside
dhcprelay enable inside
dhcprelay setroute inside


//Defining DHCP server IP and interface//
//Enables DHCP relay on inside/client facing interface//
//Sets ASA inside as DG for clients in DHCP reply packets//
dhcprelay timeout 60
threat-detection basic-threat
threat-detection statistics access-list
no threat-detection statistics tcp-intercept
webvpn
!
!
prompt hostname context
no call-home reporting anonymous
call-home
 profile CiscoTAC-1
  no active
  destination address http https://tools.cisco.com/its/service/oddce/services/DDCEService
  destination address email callhome@cisco.com
  destination transport-method http
  subscribe-to-alert-group diagnostic
  subscribe-to-alert-group environment
  subscribe-to-alert-group inventory periodic monthly
  subscribe-to-alert-group configuration periodic monthly
  subscribe-to-alert-group telemetry periodic daily
Cryptochecksum:7ae5f655ffe399c8a88b61cb13425972
: end

DHCP 服务器配置

show run
Building configuration...

Current configuration : 1911 bytes
!
! Last configuration change at 18:36:05 UTC Tue May 28 2013
version 15.1
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname Router
!
boot-start-marker
boot-end-marker
!
!
logging buffered 4096
!
no aaa new-model
!
crypto pki token default removal timeout 0
!
!
dot11 syslog
ip source-route
!
ip dhcp excluded-address 192.0.2.1 192.0.2.2
ip dhcp excluded-address 192.0.2.10 192.0.2.254

//IP addresses exluded from DHCP scope//
!
ip dhcp pool pool1
 import all  network 192.0.2.0 255.255.255.0
dns-server 192.0.2.10 192.0.2.11
 domain-name cisco.com

//DHCP pool configuration and various parameters//
!
!
!
ip cef
no ipv6 cef
!
multilink bundle-name authenticated
!
!
!
license udi pid CISCO1811W-AG-A/K9 sn FCTxxxx
!
!
!
interface Dot11Radio0
 no ip address
 shutdown
 speed basic-1.0 basic-2.0 basic-5.5 6.0 9.0 basic-11.0 12.0 18.0 24.0 36.0 48.0 54.0
 station-role root
!
interface Dot11Radio1
 no ip address
 shutdown
 speed basic-6.0 9.0 basic-12.0 18.0 basic-24.0 36.0 48.0 54.0
 station-role root
!
interface FastEthernet0
 ip address 198.51.100.2 255.255.255.0
 duplex auto
 speed auto
!
interface FastEthernet1
 no ip address
 duplex auto
 speed auto
!
interface FastEthernet2
 no ip address
!
interface FastEthernet3
 no ip address
!
interface FastEthernet4
 no ip address
!
interface FastEthernet5
 no ip address
!
interface FastEthernet6
 no ip address
!
interface FastEthernet7
 no ip address
!
interface FastEthernet8
 no ip address
!
interface FastEthernet9
 no ip address
!
interface Vlan1
 no ip address
!
interface Async1
 no ip address
 encapsulation slip
!
ip forward-protocol nd
no ip http server
no ip http secure-server
!
!
ip route 192.0.2.0 255.255.255.0 198.51.100.1

//Static route to ensure replies are routed to relay agent IP//
!
!
!
control-plane
!
!
line con 0
line 1
 modem InOut
 stopbits 1
 speed 115200
 flowcontrol hardware
line aux 0
line vty 0 4
 login
 transport input all
!
end

DHCP中继用多个DHCP服务器

您能定义十个DHCP服务器。当客户端发送DHCP时请发现数据包,它转发对所有DHCP服务器。

示例如下:

dhcprelay server 198.51.100.2 outside
dhcprelay server 198.51.100.3 outside
dhcprelay server 198.51.100.4 outside
dhcprelay enable inside
dhcprelay setroute inside

调试用多个DHCP服务器

这是一些示例调试,当使用时多个DHCP服务器:

DHCP: Received a BOOTREQUEST from interface 2 (size = 300)
DHCPRA: relay binding found for client 000c.291c.34b5.
DHCPRA: setting giaddr to 192.0.2.1.
dhcpd_forward_request: request from 000c.291c.34b5 forwarded to 198.51.100.2.
dhcpd_forward_request: request from 000c.291c.34b5 forwarded to 198.51.100.3.
dhcpd_forward_request: request from 000c.291c.34b5 forwarded to 198.51.100.4.

捕获用多个DHCP服务器

这是示例数据包捕获,当使用时多个DHCP服务器:

ASA# show cap out

3 packets captured

1: 18:48:41.211628 192.0.2.1.67 > 198.51.100.2.67: udp 300
2: 18:48:41.211689 192.0.2.1.67 > 198.51.100.3.67: udp 300
3: 18:48:41.211704 192.0.2.1.67 > 198.51.100.4.67: udp 300

验证

使用本部分可确认配置能否正常运行。

为了查看关于DHCP中继服务的统计信息,输入显示dhcprelay statistics命令在ASA CLI :

ASA# show dhcprelay statistics
DHCP UDP Unreachable Errors: 1
DHCP Other UDP Errors: 0

Packets Relayed
BOOTREQUEST          0
DHCPDISCOVER         1
DHCPREQUEST          1
DHCPDECLINE          0
DHCPRELEASE          0
DHCPINFORM           0

BOOTREPLY            0
DHCPOFFER            1
DHCPACK              1
DHCPNAK              0


此输出在几个DHCP信息类型提供信息,例如DHCPDISCOVERDHCP请求DHCP OFERDHCP版本DHCP ACK

  • 显示ASA CLI的dhcprelay状态
  • 在路由器CLI的show ip dhcp server statistics

注意命令输出解释程序工具仅限注册用户)支持某些 show 命令。请使用Output Interpreter Tool为了查看show命令输出分析。

故障排除

本部分提供了可用于对配置进行故障排除的信息。

Router#show ip dhcp server statistics
Memory usage         56637
Address pools        1
Database agents      0
Automatic bindings   1
Manual bindings      0
Expired bindings     0
Malformed messages   0
Secure arp entries   0

Message              Received
BOOTREQUEST          0
DHCPDISCOVER         1
DHCPREQUEST          1
DHCPDECLINE          0
DHCPRELEASE          0
DHCPINFORM           0

Message              Sent
BOOTREPLY            0
DHCPOFFER            1
DHCPACK              1
DHCPNAK              0

ASA# show dhcprelay state
Context  Configured as DHCP Relay
Interface inside, Configured for DHCP RELAY SERVER
Interface outside, Configured for DHCP RELAY

注意命令输出解释程序工具仅限注册用户)支持某些 show 命令。请使用Output Interpreter Tool为了查看show命令输出分析。

您能也使用这些调试指令:

  • 调试dhcprelay数据包
  • 调试dhcprelay事件
  • 捕获
  • 系统日志

注意:使用 debug 命令之前,请参阅有关 Debug 命令的重要信息

相关信息


相关的思科支持社区讨论

思科支持社区是您提问、解答问题、分享建议以及与工作伙伴协作的论坛。


Document ID: 116265