2009年1月10日星期六

DHCP中继代理

运行Cisco IOS软件的路由器包括DHCP服务器和中继代理软件。任何可以在客户端和服务器之间转发DHCP包的主机都可以称为DHCP中继代理。默认情况下,Cisco IOS DHCP服务器和中继代理都是开启的。可以通过检查配置文件,查看它们是否被禁用。如果它们被禁用,会在配置文件看到no service dhcp命令。使用servcie dhcp 命令可以重新启用这个功能。
只有配置了ip helper-address 命令,Cisco IOS DHCP relay 代理功能才能在某个端口被启用(中继代理是配置在端口上的,这个端口是与DHCP客户端直接相连的路由器的端口)。这个命令可以使DHCP广播转发到配置好的DHCP服务器。
当DHCP服务器和客户端不在同一个物理网段的时候,使用DHCP中继代理来在客户端和服务器之间转发DHCP请求和回复。中继代理的转发与普通的IP路由转发是有区别的。IP数据包能够在网络之间透明的转发。中继代理收到DHCP消息然后重新生成一个新的DHCP消息,然后从另一个端口转发出去。中继代理会设置网关地址(在DHCP包的giaddr字段),如果被配置了,还可以在包中增加中继代理信息选项(选项82),然后将包转发到DHCP服务器。在移除了选项82后,从服务器返回的数据包会被转发回客户端。
注:这个网关地址是指与客户端直接相连的路由器的接口地址,即客户端所在网段的网关。
另外,移除选项82是在服务器上移除。
一、配置DHCP中继代理将包转发给DHCP服务器
因为DHCP客户端不知道他们与那个网络相连,DHCP客户端会使用UDP广播来发送他们的初始化DHCPDISCOVER信息。如果在一个物理网段(在一个广播域中)上的客户端中不包括一个DHCP服务器,UDP广播通常是不会被转发的,因为路由器默认不会转发广播流量。
我们可以通过配置接收广播的路由器接口,使它将特定类型的广播转发给一个helper地址。我们可以在一个端口上设置多个helper地址。
当一个路由器转发这些地址分配/参数请求信息时,它就是一个DHCP中继代理。Cisco路由器通过在接口配置模式下,使用ip helper-address命令,能够完成DHCP中继代理的功能。
DHCP客户端在本地LAN上广播请求IP地址和其他配置属性,DHCP中继代理接收到这个广播,重新生成一个新的DHCP消息,然后从另一个端口发送出去。中继代理会将配置了ip helper-address命令的接口的IP地址,填充到DHCP数据包中giaddr(IP地址网关)区域。giaddr区域包含的这个IP地址,会帮助DHCP决定那个子网应该接收这个请求,以及标识合适的IP地址串(即帮助DHCP服务器决定应该使用那个子网池中的IP地址来响应这个请求,这个子网池是giaddr区域中的IP地址所在的子网)。DHCP中继代理通过IP单播,发送本地广播给DHCP服务器,这个DHCP服务器是端口配置模式下,由ip helper-address指定的IP地址。
注:DHCP服务器会优先选择DHCP中继代理所在的子网的IP地址,分配给客户端,此外,DHCP中继代理是配置在端口上的。
router(config)#interface type number
router(config-if)#ip helper-address address

注:当采用ip helper-address命令的时候,需要确认在UDP广播数据包需要经历的任何外出接口上都没有配置ip directed-broadcast命令。通过使用no ip directed-broadcast命令,可以使得路由器和交换机能够防止将定向广播转换为物理广播。自从Cisco IOS版本12.0以来,禁用定向广播是一种默认启用的安全措施。
(这个命令是必需的)转发UDP广播,包括BOOTP和DHCP的UDP广播。这里address参数,可以指定一个DHCP服务器地址。如果其他DHCP服务器都在目的网段上,也可以使用该网段的网络地址作为address,使用网络地址能够使其他DHCP服务器回应DHCP请求。
如果有多个DHCP服务器,可以为每个服务器配置一个helper地址
二、为DHCP中继代理配置支持中继代理信息选项
DHCP自动分配地址是基于IP地址的,这个IP地址可能是网关IP地址(DHCP数据包giaddr区域),也可能是入口的IP地址。在某些网络中,需要用其他的信息,来进一步决定应该分配那个IP地址。通过使用中继代理信息选项(选项82),当把来自客户端的DHCP包转发给DHCP服务器时,Cisco IOS中继代理可以将关于它自己的额外信息包括到中继代理信息中。
通过使用ip dhcp relay information option命令,Cisco IOS可以支持这个功能。中继代理会自动地将电路标识子选项(circuit identifier suboption)和远程IP子选项添加到中继代理信息选项中,然后将包含中继代理信息的DHCP包转发给DHCP服务器。、
DHCP服务器能够使用这些信息来为每个服务器提供网络中的服务提供者(subscriber)分配IP地址,进行访问控制,设置QoS以及安全策略(或者其他属性分配策略)。
注:当从DHCP服务器回复的DHCP包转发回DHCP客户端时,在中继代理(这里的中继代理就是指客户端所在网段的中继代理端口,因为后面中继代理直接用单播将DHCP包发送给DHCP服务器,途中经过的其它中继代理时,其他中继代理所采取的策略,在下面设置)那里,将中继代理选项(选项82)剥除(不是在DHCP服务器端剥除),完成策略,将DHCP包转发给主机,最后完成IP地址分配。
1、中继代理信息重新转发策略
一个中继代理可能会收到从其他DHCP中继代理那里发送的已经包含中继信息的消息。默认情况下,从前一个中继代理那里收到的中继信息会被替换。如果这个设置不适合我们的网络,我们可以在全局配置模式下,使用命令:ip dhcp relay information policy {drop | keep | replace}来修改。
为了使重新转发策略能够正确执行,必须要先禁用中继代理信息检查。可以在全局配置模式下,使用ni ip dhcp relay information check命令。
配置步骤:
router(config)#ip dhcp relay information option
启用系统插入DHCP中继代理信息选项(选项82)的功能,在把BOOTREQUEST消息的过程中。者功能默认是禁用的。
router(config)#ip dhcp relay information check
这个配置是可选的。配置这个命令可以使该路由器,检查包含在转发的BOOTREPLY信息中的中继代理信息选项,是否可用。
默认情况下,如果从DHCP服务器哪里接收到可用的DHCP回复包,DHCP中继代理就检查选项82区域。如果收到一个不可用的消息,中继代理就丢弃它。当中继代理收到一个可用的消息的时候,中继移除选项82区域,然后转发这个DHCP包。如果被禁用,可以使用ip dhcp relay information check命令来重新启用这个功能。
router(config)#ip dhcp relay information policy {drop | keep | replace}
这个配置也是可选的,这个命令可以为中继代理制定转发策略(即,当一个消息中已经包含中继信息时,中继代理应该怎么做)。
router(config)#ip dhcp relay information trust-all
这个配置是可选的,将路由器上所有的接口,配置为信任DHCP中继信息选项的源。默认情况下,如果网关地址被设置为0,而且包汇总的中继代理信息选项已经存在,这种情况下,中继代理就会丢弃这个包。可以使用ip dhcp relay information trust-all命令来跳过这个行为,接受这种包。
如果在客户端和中继代理之间有交换机,而且这个交换机可能会插入选项82。这个时候,这个命令就相当有用。可以使用这个命令来保证这些包不会被丢弃。
此外,我们还可以配置中继代理信息选项的贡献者标识符子选项:
1、enable
2、configure terminal
3、ip dhcp relay information option
4、interface type number
5、ip dhcp relay information option subscriber-id string
配置DHCP中继代理支持MPLS VPNs:
1、enable
2、configure terminal
3、ip dhcp relay information option vpn
4、interface type number
这里的接口指的是VPN连入的接口。
5、ip helper-address vrf vrf-name [global] address
使用Smart中继代理转发,将DHCP广播的网关地址配置一个备用地址
1、enable
2、configure terminal
3、ip dhcp smart-relay
要使得这个功能有作用,首先要保证中继代理接口上有两个IP地址。在请求IP地址时,首先使用主要IP地址,填充DHCP包的giaddr区域,然后发送请求,如果请求没有回应,则使用备用IP地址填充DHCP包的giaddr区域,然后继续发送请求。
注:如果中继端口的主IP地址为192.168.1.0段,则DHCP服务器返回的IP地址也为192.168.1.0段。同样的,如果备用IP地址为10.0.0.0段,则返回的是10.0.0.0段的IP地址(giaddr的作用)。


三、DHCP中继代理排错
show ip route dhcp
显示被Cisco IOS DHCP服务器和中继代理添加的所有路由
show ip route dhcp ip-address
显示被Cisco IOS DHCP服务器和中继代理添加的某个IP地址的路由
show ip route vrf vrf-name dhcp
显示被Cisco IOS DHCP服务器和中继代理添加的名字为vrf-name的vrf路由
clear ip route [vrf vrf-name] dhcp [ip-address]
移除为在unnumbered端口上的DHCP客户端添加的路由表上的路由。

没有评论:

发表评论