华为交换机DHCPsnooping配置教程DHCPSnooping是一种DHCP安全特性,在配置DHCPSnooping各安全功能之前需首先使能DHCPSnooping功能。使能DHCPSnooping功能的顺序是先使能全局下的DHCPSnooping功能,再使能接口或VLAN下的DHCPSnooping功能。图1配置DHCPSnooping基本功能组网图如上图1所示,Switch_1是二层接入设备,将用户PC的DHCP请求转发给DHCP服务器。以Switch_1为例,在使能DHCPSnooping功能时需要注意:使能DHCPSnooping功能之前,必须已使用命令dhcpenable使能了设备的DHCP功能。全局使能DHCPSnooping功能后,还需要在连接用户的接口(如图中的接口if1、if2和if3)或其所属VLAN(如图中的VLAN10)使能DHCPSnooping功能。当存在多个用户PC属于同一个VLAN时,为了简化配置,可以在这个VLAN使能DHCPSnooping功能。请在二层网络中的接入设备或第一个DHCPRelay上执行以下步骤。1、使能DHCPSnooping功能[Huawei]dhcpsnoopingenable?ipv4DHCPv4Snoopingipv6DHCPv6SnoopingvlanVirtualLANcr或[Huawei]dhcpsnoopingover-vplsenable#使能设备在VPLS网络中的DHCPSnooping功能或[Huawei-vlan2]dhcpsnoopingenable[Huawei-GigabitEthernet0/0/3]dhcpsnoopingenable2、配置接口信任状态[Huawei-GigabitEthernet0/0/2]dhcpsnoopingtrusted或[Huawei-vlan3]dhcpsnoopingtrustedinterfaceGigabitEthernet0/0/63、去使能DHCPSnooping用户位置迁移功能在移动应用场景中,若某一用户由接口A上线后,切换到接口B重新上线,用户将发送DHCPDiscover报文申请IP地址。缺省情况下设备使能DHCPSnooping功能之后将允许该用户上线,并刷新DHCPSnooping绑定表。但是在某些场景中,这样的处理方式存在安全风险,比如网络中存在攻击者仿冒合法用户发送DHCPDiscover报文,最终导致DHCPSnooping绑定表被刷新,合法用户网络访问中断。此时需要去使能DHCPSnooping用户位置迁移功能,丢弃DHCPSnooping绑定表中已存在的用户(用户MAC信息存在于DHCPSnooping绑定表中)从其他接口发送来的DHCPDiscover报文。[Huawei]undodhcpsnoopinguser-transferenable4、配置ARP与DHCPSnooping的联动功能DHCPSnooping设备在收到DHCP用户发出的DHCPRelease报文时将会删除该用户对应的绑定表项,但若用户发生了异常下线而无法发出DHCPRelease报文时,DHCPSnooping设备将不能够及时的删除该DHCP用户对应的绑定表。使能ARP与DHCPSnooping的联动功能,如果DHCPSnooping表项中的IP地址对应的ARP表项达到老化时间,则DHCPSnooping设备会对该IP地址进行ARP探测,如果在规定的探测次数内探测不到用户,设备将删除用户对应的ARP表项。之后,设备将会再次按规定的探测次数对该IP地址进行ARP探测,如果最后仍不能够探测到用户,则设备将会删除该用户对应的绑定表项。只有设备作为DHCPRelay时,才支持ARP与DHCPSnooping的联动功能。[Huawei]arpdhcp-snooping-detectenable5、配置用户下线后及时清除对应MAC表项功能当某一DHCP用户下线时,设备上其对应的动态MAC表项还未达到老化时间,则设备在接收到来自网络侧以该用户IP地址为目的地址的报文时,将继续根据动态MAC表项转发此报文。这种无效的报文处理在一定程度上将会降低设备的性能。设备在接收到DHCP用户下线时发送DHCPRelease报文后,将会立刻删除用户对应的DHCPSnooping绑定表项。利用这种特性,使能当DHCPSnooping动态表项清除时移除对应用户的MAC表项功能,则当用户下线时,设备将会及时的移除用户的MAC表项。[Huawei]dhcpsnoopinguser-offlineremovemac-address6、配置丢弃GIADDR字段非零的DHCP报文DHCP报文中的GIADDR(GatewayIpAddress)字段记录了DHCP报文经过的第一个DHCPRelay的IP地址,当客户端发出DHCP请求时,如果服务器和客户端不在同一个网段,那么第一个DHCPRelay在将DHCP请求报文转发给DHCP服务器时,会把自己的IP地址填入此字段,DHCP服务器会根据此字段来判断出客户端所在的网段地址,从而选择合适的地址池,为客户端分配该网段的IP地址。图1多DHCP中继场景下DHCP报文处理流程(以DHCPRequest报文为例)如上图1所示,在为了保证设备在生成DHCPSnooping绑定表时能够获取到用户MAC等参数,DHCPSnooping功能需应用于二层网络中的接入设备或第一个DHCPRelay上(如图中的DHCPRelay1设备)。故DHCPSnooping设备接收到的DHCP报文中GIADDR字段必然为零,若不为零则该报文为非法报文,设备需丢弃此类报文。在DHCP中继使能DHCPSnooping场景中,建议配置该功能。通常情况下,PC发出的DHCP报文中GIADDR字段为零。在某些情况下,PC发出的DHCP报文中GIADDR字段不为零,可能导致DHCP服务器分配错误的IP地址。为了防止PC用户伪造GIADDR字段不为零的DHCP报文申请IP地址,建议配置该功能。[Huawei]dhcpsnoopingcheckdhcp-giaddrenablevlan?INTEGER1-4094VirtualLANID或[Huawei-vlan5]dhcpsnoopingcheckdhcp-giaddrenable或[Huawei-GigabitEthernet0/0/2]dhcpsnoopingcheckdhcp-giaddrenable7、使能DHCPServer探测功能在使能DHCPSnooping功能并配置了接口的信任状态之后,设备将能够保证客户端从合法的服务器获取IP地址,这将能够有效的防止DHCPServer仿冒者攻击。但是此时却不能够定位DHCPServer仿冒者的位置,使得网络中仍然存在着安全隐患。通过配置DHCPServer探测功能,DHCPSnooping设备将会检查并在日志中记录所有DHCP回应报文中携带的DHCPServer地址与接口等信息,此后网络管理员可根据日志来判定网络中是否存在伪DHCPServer进而对网络进行维护。[Huawei]dhcpserverdetect8、防止DHCP报文泛洪攻击在DHCP网络环境中,若存在DHCP用户短时间内向设备发送大量的DHCP报文,将会对设备的性能造成巨大的冲击以致可能会导致设备无法正常工作。通过使能对DHCP报文上送DHCP报文处理单元的速率进行检测功能将能够有效防止DHCP报文泛洪攻击。8.1、使能对DHCP报文上送DHCP报文处理单元的速率进行检测功能[Huawei-vlan3]dhcpsnoopingcheckdhcp-rateenable#接口视图下命令一样或[Huawei]dhcpsnoopingcheckdhcp-rateenable?INTEGER1-100Ratevalue(Unit:pps)alarmAlarmvlanVirtualLANcr8.2、DHCP报文上送DHCP报文处理单元的最大允许速率[Huawei-vlan3]dhcpsnoopingcheckdhcp-rate?INTEGER1-100Ratevalue(Unit:pps)enableEnable[Huawei-vlan3]dhcpsnoopingcheckdhcp-rate808.3、使能当丢弃的DHCP报文数达到告警阈值时的告警功能[Huawei-GigabitEthernet0/0/2]dhcpsnoopingalarmdhcp-rateenable8.4、配置接口下被丢弃的DHCP报文的告警阈值[Huawei-GigabitEthernet0/0/2]dhcpsnoopingalarmdhcp-ratethreshold?INTEGER1-1000Thresholdvalue(Unit:packets)9、防止仿冒DHCP报文攻击在DHCP网络环境中,若攻击者仿冒合法用户的DHCPRequest报文发往DHCPServer,将会导致用户的IP地址租约到期之后不能够及时释放,以致合法用户无法使用该IP地址;若攻击者仿冒合法用户的DHCPRelease报文发往DHCPServer,将会导致用户异常下线。在生成DHCPSnooping绑定表后,设备可根据绑定表项,对DHCPRequest报文或DHCPRelease报文进行匹配检查,只有匹配成功的报文设备才将其转发,否则将丢弃。这将能有效的防止非法用户通过发送伪造DHCPRequest或DHCPRelease报文冒充合法用户续租或释放IP地址。9.1、使能对从指定VLAN内上送的DHCP报文进行绑定表匹配检查的功能[Huawei]dhcpsnoopingcheckdhcp-requestenablevlan?INTEGER1-4094VirtualLANID或[Huawei-GigabitEthernet0/0/2]dhcpsnoopingcheckdhcp-requestenable9.2、使能与绑定表不匹配而被丢弃的DHCP报文数达到阈值时的DHCPSnooping告警功能[Huawei-GigabitEthernet0/0/2]dhcpsnoopingalarmdhcp-requestenable9.3、DHCPSnooping丢弃报文数量的告警阈值。[Huawei]dhcpsnoopingalarmthreshold?INTEGER1-1000Thresholdvalue(Unit:packets)9.4、与绑定表不匹配而被丢弃的DHCP报文的告警阈值[Huawei-GigabitEthernet0/0/2]dhcpsnoopingalarmdhcp-requestthreshold?INTEGER1-1000Thresholdvalue(Unit:packets)10、防止DHCPServer服务拒绝攻击若在网络中存在DHCP用户恶意申请IP地址,将会导致IP地址池中的IP地址快速耗尽以致DHCPServer无法为其他合法用户分配IP地址。另一方面,DHCPServer通常仅根据CHADDR(clienthardwareaddress,客户端硬件地址)字段来确认客户端的MAC地址。如果攻击者通过不断改变DHCPRequest报文中的CHADDR字段向DHCPServer申请IP地址,将会导致DHCPServer上的地址池被耗尽,从而无法为其他正常用户提供IP地址。为了防止某些端口的DHCP用户恶意申请IP地址,可配置接口允许学习的DHCPSnooping绑定表项的最大个数来控制上线用户的个数,当用户数达到该值时,则任何用户将无法通过此接口成功申请到IP地址。为了防止攻击者不断改变DHCPRequest报文中的CHADDR字段进行攻击,可使能检测DHCPRequest报文帧头MAC地址与DHCP数据区中CHADDR字段是否相同的功能,相同则转发报文,否则丢弃。10