更新时间:2024-01-09
1 DHCP-snooping配置
1.1 DHCP-snooping 概述
DHCP-snooping的任务就是对DHCP报文进行判断,防止伪造的DHCP服务器提供DHCP服务,维护接口上MAC地址与IP地址的对应绑定关系。根据MAC地址与IP地址的对应绑定,可以完成DAI(动态ARP监测)和IP source guard功能。DHCP-snooping功能主要包括侦听DHCP报文、动态维护MAC地址与IP地址的对应绑定表,二层交换机过滤非信任端口的不满足这种对应绑定关系的报文,防止非法用户对网络的攻击。
1.2 DHCP-snooping配置任务列表
• 开启/关闭DHCP-snooping功能
• 在VLAN 上启动DHCP-snooping
• 在VLAN上启动DHCP防攻击功能
• 配置接口为DHCP信任接口
• 开启/关闭绑定表快速更新功能
• 在VLAN上启动DAI功能
• 配置接口为ARP监测信任接口
• 在VLAN上启动IP源地址监测功能
• 配置接口为IP源信任接口
• 配置DHCP-snooping Option82选项格式
• 配置DHCP-Snooping Option82报文策略
• 配置接口绑定关系备份的TFTP服务器
• 配置接口绑定关系备份的文件名
• 配置接口绑定关系备份检查的时间间隔
• 手工配置接口绑定
• DHCP-snooping的监控与维护
• DHCP-snooping配置示例
1.3 DHCP-snooping配置任务
1.3.1 开启/关闭DHCP-snooping功能
在全局配置模式下进行下列配置:
命令
|
目的
|
ip dhcp-relay snooping
|
开启DHCP-snooping功能。
|
no ip dhcp-relay snooping
|
恢复缺省设置。
|
该命令是启动DHCP snooping功能的全局控制命令。配置该命令,则交换机侦听所有DHCP报文,形成相应的绑定关系。
注意:如果客户端是在配置该命令之前通过此交换机获取地址,则交换机不能添加相应的绑定关系。
1.3.2 在VLAN 上启动DHCP-snooping
在VLAN上启动DHCP snooping功能,则对属于整个VLAN的所有非信任物理端口收到的DHCP报文进行合法化检查。对于VLAN内的非信任物理端口收到的DHCP 响应报文将丢弃,防止用户非法伪造或者误配的DHCP服务器提供地址分配;对于非信任端口的DHCP 请求报文,如果报文发送MAC地址和报文内的硬件地址字段不匹配,认为是用户故意伪造的用于 DHCP DOS(拒绝服务)的攻击报文,交换机也将丢弃。
在全局配置模式下进行下列配置:
命令
|
目的
|
ip dhcp-relay snooping vlan vlan_id
|
在VLAN上启动DHCP snooping 功能
|
no ip dhcp-relay snooping vlan vlan_id
|
在VLAN上关闭DHCP snooping 功能。
|
1.3.3 在VLAN 上启动DHCP防攻击功能
在VLAN上启动DHCP防攻击功能,配置了DHCP snooping 特定VLAN下的允许最大dhcp client用户数,执行先到先分配的原则,当vlan内的用户数达到配置的允许最大值后,就不允许新的client进行分配。
在全局配置模式下进行下列配置:
命令
|
目的
|
ip dhcp-relay snooping vlan vlan_id max-client number
|
在VLAN上启动DHCP防攻击功能
|
no ip dhcp-relay snooping vlan vlan_id max-client
|
在VLAN上关闭DHCP防攻击。
|
1.3.4配置接口为DHCP信任接口
配置接口为DHCP信任接口,则该接口收到的DHCP报文不进行检查。
在物理接口配置模式下进行下列配置:
命令
|
操作
|
dhcp snooping trust
|
配置接口为DHCP信任接口
|
no dhcp snooping trust
|
恢复接口为DHCP非信任接口。
|
缺省情况下接口为非信任接口。
1.3.5开启/关闭绑定表快速更新功能
默认情况下此功能关闭。没有开启此功能时,如果在一个端口下已经绑定了客户端A,相同的mac地址在其他端口的dhcp请求会被认为是伪造mac攻击,即使客户端A已经下线(没有release地址)。
开启此功能后,同一个客户端A,在其他端口上如果在发送dhcp请求报文,dhcp snooping会将原来端口上的A的绑定信息删除,不认为此行为是攻击行为。
建议在客户端会频繁更换端口的环境下,且dhcp server分配的地址租约无法改动为较短时间的时候才考虑使用此功能。
命令
|
操作
|
ip dhcp-relay snooping rapid-refresh-bind
|
开启绑定表快速更新功能
|
no ip dhcp-relay snooping rapid-refresh-bind
|
关闭绑定表快速更新功能
|
1.3.6 在VLAN 上启动DAI功能
在属于某个VLAN的所有物理端口进行ARP动态监测,如果该接口收到的ARP报文的源MAC和源IP地址不满足接口上配置的MAC和IP地址绑定关系,则拒绝处理该报文。接口上配置的绑定关系可以是DHCP动态绑定的,也可以是手工配置的。如果物理接口上没有配置任何MAC和IP地址绑定,则交换机拒绝转发所有ARP报文。
命令
|
操作
|
ip arp inspection vlan vlanid
|
对VLAN 内的所有非信任端口启动动态ARP监测
|
no ip arp inspection vlan vlanid
|
对VLAN 内的所有非信任端口关闭动态ARP监测
|
1.3.7 配置接口为ARP监测信任接口
对于ARP监测信任接口,不启动ARP监测功能。接口默认为非信任接口。
在接口配置模式下进行下列配置:
命令
|
操作
|
arp inspection trust
|
配置接口为ARP监测信任接口
|
no arp inspection trust
|
恢复接口为ARP监测非信任接口
|
1.3.8 在VLAN 上启动IP源地址监测功能
启动IP源地址监测的VLAN,属于该VLAN的所有物理端口收到的IP报文的源MAC和源IP地址不满足接口上配置的MAC和IP地址绑定关系,则该报文被拒绝处理。接口上配置的绑定关系可以是DHCP动态绑定的,也可以是手工配置的。如果此物理接口上没有配置任何MAC和IP地址绑定,则交换机拒绝转发所有该接口收到的IP报文。
在全局配置模式下进行下列配置:
命令
|
操作
|
ip verify source vlan vlanid
|
对VLAN内的所有非信任接口启动报文源IP地址检查功能
|
no ip verify source vlan vlanid
|
对VLAN内的所有接口关闭报文源IP地址检查功能
|
注意:如果收到的是DHCP报文(也是IP报文),则因为配置了全局snooping进行软件转发。
1.3.9配置 接口为IP源信任接口
对于IP源地址信任接口,不启动源地址检查功能。
在接口配置模式下进行下列配置:
命令
|
操作
|
ip-source trust
|
配置接口为IP源地址信任接口。
|
no ip-source trust
|
恢复接口为IP源地址非信任接口
|
1.3.10配置DHCP-snooping Option82选项格式
Option82选项将可以携带本地信息给服务器,帮助服务器来分配给客户端地址。
在全局模式下进行下列配置:
命令
|
操作
|
ip dhcp-relay snooping information option
|
配置DHCP-snooping转发DHCP报文将携带option82选项,选项为默认格式。
|
no ip dhcp-relay snooping information option
|
配置DHCP-snooping转发DHCP报文不携带option82选项。
|
如果想要指定option82格式,则在全局模式下进行下列配置:
命令
|
操作
|
ip dhcp-relay snooping information option format {snmp-ifindex/manual/cm-type/hn-type[host]/hw-type/option82-customized }
|
配置DHCP-snooping转发DHCP报文将携带option82选项,选项为SNMP-IFINDEX格式、手动配置格式、CM-TYPE格式、cisco格式、hw-type格式或者option82-customized格式。
|
no ip dhcp-relay snooping information option format {snmp-ifindex/manual/cm-type/hn-type[host]/hw-type/option82-customized}
|
配置DHCP-snooping转发DHCP报文不携带option82选项。
|
如果配置了手动模式填写option82,在接口配置模式下进行下列配置circuit-id子选项:
命令
|
操作
|
dhcp snooping information circuit-id string [STRING]
|
如果配置了option82为手动格式,则配置DHCP-snooping转发DHCP报文将携带option82选项,选项内容为STRING所写的字符串。此命令在连接client的端口上配置。
|
dhcp snooping information circuit-id hex [xx-xx-xx-xx-xx-xx]
|
如果配置了option82为手动格式,则配置DHCP-snooping转发DHCP报文将携带option82选项,选项内容为所写十六进制。此命令在连接client的端口上配置。
|
no dhcp snooping information circuit-id
|
删除手动配置的option82 circuit-id字符串。
|
如果配置了手动模式填写option82,在接口配置模式下进行下列配置remote-id子选项:
命令
|
操作
|
dhcp snooping information remote-id string [STRING]
|
如果配置了option82为手动格式,则配置DHCP-snooping转发DHCP报文将携带option82选项,选项内容为STRING所写的字符串。此命令在连接client的端口上配置。
|
dhcp snooping information remote-id hex [xx-xx-xx-xx-xx-xx]
|
如果配置了option82为手动格式,则配置DHCP-snooping转发DHCP报文将携带option82选项,选项内容为所写十六进制。此命令在连接client的端口上配置。
|
no dhcp snooping information remote-id
|
删除手动配置的option82 remote-id字符串。
|
如果配置了手动模式填写option82,在接口配置模式下进行下列配置vendor-specific子选项:
命令
|
操作
|
dhcp snooping information vendor-specific string STRING
|
如果配置了option82为手动格式,则配置DHCP-snooping转发DHCP报文将携带option82选项,选项内容为STRING所写的字符串。此命令在连接client的端口上配置。
|
dhcp snooping information vendor-specific hex [xx-xx-xx-xx-xx-xx]
|
如果配置了option82为手动格式,则配置DHCP-snooping转发DHCP报文将携带option82选项,选项内容为所写十六进制。此命令在连接client的端口上配置。
|
no dhcp snooping information vendor-specific
|
删除手动配置的option82 vendor-specific。
|
1.3.11配置DHCP-snooping Option82报文策略
可以配置收到已经携带option82选项的dhcp请求包后采取的策略。
Drop策略:在端口模式下输入下列命令,配置丢弃包含option82选项的请求包:
命令
|
操作
|
dhcp snooping information drop
|
此命令配置后,将丢弃包含option82选项的请求包。
|
Append策略:在端口模式下输入下列命令,配置追加包含option82选项的请求包:
命令
|
操作
|
dhcp snooping information append
|
端口开启追加option82选项
|
dhcp snooping information append first-subop9-param { hex xx-xx-xx-xx-xx-xx | vlanip | hostname }
|
Option82 vendor-specific(suboption9)子选项所带的第一个参数
|
dhcp snooping information append second-subop9-param { hex xx-xx-xx-xx-xx-xx | vlanip | hostname }
|
Option82 vendor-specific(suboption9)子选项所带的第二个参数
|
1.3.12手工配置接口绑定
对于不使用DHCP获取地址的主机,在交换机接口上可以手工配置添加绑定条目以是主机正常访问网络。使用该命令的no命令可以删除绑定条目。
注意:手工配置的绑定条目比动态配置的绑定条目优先级要高,如果配置条目的MAC地址与动态配置条目的MAC地址相同,则手工配置的更新动态配置条目。接口绑定条目以MAC地址为唯一索引。
在全局配置模式下进行下列配置:
命令
|
操作
|
ip source binding MAC IP interface name vlan-id
|
手工配置接口绑定。
|
no ip source binding MAC IP vlan-id
|
删除接口绑定条目
|
1.3.13 DHCP-snooping的监控与维护
请在管理态下进行下列操作:
命令
|
操作
|
show ip dhcp-relay snooping
|
显示DHCP-snooping的配置信息
|
show ip dhcp-relay snooping binding
|
显示在接口生效的地址绑定条目
|
show ip dhcp-relay snooping binding all
|
显示DHCP snooping生成的所有绑定条目
|
[ no ] debug ip dhcp-relay [ snooping | binding | event | all ]
|
开启/关闭DHCP relay snooping/绑定/事件开关
|
显示运行dhcp snooping功能的配置信息:
switch#show ip dhcp-relay snooping
ip dhcp-relay snooping vlan 3
ip arp inspection vlan 3
DHCP Snooping trust interface:
GigaEthernet1/1
ARP Inspect interface:
GigaEthernet1/11
|
显示dhcp-relay snooping绑定信息:
switch#show ip dhcp-relay snooping binding
Hardware Address IP Address remainder time Type VLAN interface
00:e0:0f:26:23:89 192.2.2.101 86400 DHCP_SN 3 GigaEthernet1/3
|
显示dhcp-relay snooping所有绑定信息:
switch#show ip dhcp-relay snooping binding all
Hardware Address IP Address remainder time Type VLAN interface
00:e0:0f:32:1c:59 192.2.2.1 infinite MANUAL 1 GigaEthernet1/2
00:e0:0f:26:23:89 192.2.2.101 86400 DHCP_SN 3 GigaEthernet1/3
|
调试dhcp-relay snooping信息:
switch#debug ip dhcp-relay all
DHCPR: receive l2 packet from vlan 3, diID: 3
DHCPR: DHCP packet len 277
DHCPR: add binding on interface GigaEthernet1/3
DHCPR: send packet continue
DHCPR: receive l2 packet from vlan 3, diID: 1
DHCPR: DHCP packet len 300
DHCPR: send packet continue
DHCPR: receive l2 packet from vlan 3, diID: 3
DHCPR: DHCP packet len 289
DHCPR: send packet continue
DHCPR: receive l2 packet from vlan 3, diID: 1
DHCPR: DHCP packet len 300
DHCPR: update binding on interface GigaEthernet1/3
DHCPR: IP address: 192.2.2.101, lease time 86400 seconds
DHCPR: send packet continue
|
1.3.14 DHCP-snooping配置示例
示例网络连接如图1:
配置Switch:
(1)开启连接Private Network A的VLAN 1的DHCP-snooping
Switch_config#ip dhcp-relay snooping
Switch_config#ip dhcp-relay snooping vlan 1
(2)开启连接Private Network B的VLAN 2的DHCP-snooping
Switch_config#ip dhcp-relay snooping
Switch_config#ip dhcp-relay snooping vlan 2
(3)配置DHCP服务器连接端口为DHCP 信任端口
Switch_config_g1/1#dhcp snooping trust
(4)手动配置option82选项实例:
interface GigaEthernet1/1
dhcp snooping information circuit-id hex 00-01-00-05
dhcp snooping information remote-id hex 00-e0-0f-13-1a-50
dhcp snooping information vendor-specific hex 00-00-0c-f8-0d-01-0b-78-69-61-6f-6d-69-6e-37-31-31-34
dhcp snooping information append
dhcp snooping information append first-subop9-param hex 61-62-63-61-62-63
!
interface GigaEthernet1/2
dhcp snooping trust
arp inspection trust
ip-source trust
!
!
!
ip dhcp-relay snooping
ip dhcp-relay snooping vlan 1-100
ip arp inspection vlan 1
ip verify source vlan 1
ip dhcp-relay snooping information option format manual