DHCP snooping作为DAI和IP Sourceguard特性的基础组件,做好配置显得尤为重要。
下面总结一下此特性及部署注意事项:
1. 开启dhcp snooping的交换机,默认都会给所有非信任接口发来的DHCP请求报文添加option 82(中继扩展信息)然后发送给上联的DHCP服务器,如果DHCP服务器是思科的,默认情况下思科的DHCP服务是拒绝分配IP地址给option 82中giaddr(也就是DHCP中继服务器的IP地址)为0.0.0.0的DHCP请求,因为它认为这种请求报文是非法的。既然这样,启DHCP snooping的二层交换机发来的DHCP请求是收不到思科DHCP服务器分配的IP地址的,所以其连接的终端肯定获取不到IP地址(请注意:有中继服务器IP地址的dhcp请求不受影响,客户端能够正常获取IP地址,非思科dhcp服务也不受影响,因为他们没有拒绝给giaddr为0.0.0.0的请求分配IP的特性),解决这个问题有两种方案:
A. DHCP客户端获取IP经过的所有启dhcp snooping的交换机关闭DHCP请求中添加option 82报文的特性(前提肯定是交换机的DHCP服务上联口都做了监听信任),对应的命令是no ip dhcp snooping option information;
B. 思科dhcp服务器允许给option 82中giaddr为0.0.0.0的DHCP请求分配IP地址,有两种方式:
ip接口上配置只对ip网段生效:
interface vlan 912
ip dhcp relay information trusted
全局模式下对所有ip网段生效:
ip dhcp relay information trust-all
B种方式只要在思科dhcp服务器上做了,其余启dhcp snooping的交换机就不需要做A方式啦,只需要在汇聚交换机上允许非信任接口发来option 82的DHCP请求报文就行了,对应命令是ip dhcp snooping information option allow-untrusted,这个第2点里面会讲,比较简单。
A方式和B方式的区别:A方式去掉option 82,B方式保留option 82.
2. 开启dhcp snooping的交换机,默认所有的非信任接口丢弃带有option 82的DHCP请求报文,所以如果是汇聚交换机(下联还有接入交换机,接入交换机也在那个vlan开启了dhcp snooping)特定vlan开启了dhcp snooping,需要允许非信任接口发来的option 82的DCHP请求报文,对应命令是ip dhcp snooping information option allow-untrusted;
综合实验:
说明:思科核心trunk下联汇聚然后下联接入交换机,一般我们会在汇聚和接入交换机上启dhcp snooping,汇聚和接入配置举例:
ip dhcp snooping
ip dhcp snooping database flash:dhcpsnooping.db
ip dhcp snooping database write-delay 30
ip dhcp snooping database timeout 60
errdisable recovery cause dhcp-rate-limit
errdisable recovery interval 60
int g0/1 \\意思是交换机DHCP服务器入方向接口,一般叫上联口
ip dhcp snooping trust
ip dhcp snooping vlan 912
做了以上后,客户端依然获取不到IP地址,我们做以下那两种解决方案:
A方案:
接入和汇聚交换机上:
no ip dhcp snooping information option
B方案:
汇聚交换机上:
ip dhcp snooping information option allow-untrusted
然后DHCP服务器上:
int vlan 912
ip dhcp relay information trusted
或者全局下
ip dhcp relay information trust-all
测试证明:使用B方式适合于使用DAI+ipsourceGuard(ipsourceGuard是检测ip和mac的情况,只检测ip地址不会有什么问题,A和B都可以),A方式就支持的不好,客户端获取IP地址很慢,影响使用体验,要想快必须在端口安全时敲上switchport port-security mac-address sticky,使端口下接入的pc的mac地址写入到交换机的静态表里面,提高第二次pc获取ip地址的速度。
备注:
简易arp inspect配置:
ip arp inspect vlan 912
int g0/1
ip arp inspect trust //上联接口
int g0/2
ip arp inspect trust //下联接口
debug arp snooping
简易IPsourceGuard
int range f0/1-24 //所有连接终端的接口
switchport port-security
switchport port-security mac-address sticky //A方案的补救措施
ip verify source port-security //检测ip和mac地址跟交换机端口的对应关系是否符合,默认dhcp绑定表里面的允许放行
还有一种只检测ip与交换机端口对应关系的,检测ip也是基于dhcp绑定表的信息有选择的放行。配置方式就是只在终端接入接口下配置ip verify source