Cisco DHCP Snooping + Dynamic ARP Inspection(DAI)

本文介绍Cisco网络环境中DHCP Snooping与ARP Inspection技术的应用。DHCP Snooping用于防止非法DHCP服务器接入,通过记录合法客户端的IP与MAC地址以建立绑定表。ARP Inspection则依赖于该绑定表验证ARP请求的合法性,防止ARP欺骗。此外,文章还提供了配置示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在cisco网络环境下,boot request在经过了启用DHCP SNOOPING特性的设备上时,会在DHCP数据包中插入option 82的选项(具体见RFC3046)
这个时候,boot request中数据包中的gateway ip address:为全0,所以一旦dhcp relay 设备检测到这样的数据包,就会丢弃。
虽然dhcp snooping是用来防止非法的dhcp server接入的,但是它一个重要作用是一旦客户端获得一个合法的dhcp offer。启用dhcp snooping设备会在相应的接口下面记录所获得IP地址和客户端的mac地址。这个是后面另外一个技术ARP inspection检测的一个依据。ARP inspection是用来检测arp请求的,防止非法的ARP请求。认为是否合法的标准的是前面dhcp snooping时建立的那张表。因为那种表是dhcp server正常回应时建立起来的,里面包括是正确的arp信息。如果这个时候有arp攻击信息,利用ARP inspection技术就可以拦截到这个非法的arp数据包。
其实利用这个方法,还可以防止用户任意修改IP地址,造成地址冲突的问题。

ip dhcp excluded-address 10.63.150.100 10.63.150.120 不由dhcp分配的地址

!
ip dhcp pool main 定义地址池

network 10.63.144.0 255.255.255.0 定义地址池做用的网段及地址范围
default-router 10.63.144.1 定义客户端的默认网关
domain-name nbyzzj.cn 定义客户端所在域
dns-server 10.60.12.11 定义客户端的dns
lease 7 定义地址租约时间为7天

ip dhcp snooping 打开dhcp snooping功能

ip dhcp snooping vlan 10-12,101-108,315 定义snooping作用的vlan
ip dhcp snooping database flash:dhcp-snooping.db 将綁定表保存在flash中,避免重启设备后,重新綁定

ip arp inspection vlan 10-12,101-108,315 定义arp inspection 作用的vlan,它是根据dhcp snooping binding表做判断的
ip arp inspection validate src-mac dst-mac ip 侦测有效客户端须满足src-mac dst-mac ip 均无错
ip arp inspection log-buffer entries 1024 inspection 日志大小
ip arp inspection log-buffer logs 1024 interval 300 inspection 日志刷新时间,interval太小会占用大量cpu时间
!
!
!
errdisable recovery cause udld
errdisable recovery cause bpduguard
errdisable recovery cause security-violation
errdisable recovery cause channel-misconfig
errdisable recovery cause pagp-flap
errdisable recovery cause dtp-flap
errdisable recovery cause link-flap
errdisable recovery cause gbic-invalid
errdisable recovery cause l3pxguard
errdisable recovery cause psecure-violation
errdisable recovery cause dhcp-rate-limit
errdisable recovery cause unicast-flood
errdisable recovery cause vmps
errdisable recovery cause arp-inspection
errdisable recovery interval 30
在开始应用Dynamic ARP Inspection时,交换机会记录大量的数据包,当端口通过的数据包过多时,交换机会认为遭受DoS攻击,从而将端口自动errdisable,造成 通信中断。为了解决这个问题,我们需要加入命令errdisable recovery cause arp-inspection

no file verify auto

logging on 当logging关闭时会占用大量cpu资源,一定勿忘打开

no spanning-tree loopguard default 最好不要打开

ip source binding 0004.76f6.e3e9 vlan 315 10.63.150.100 interface Gi1/0/11 手动增加静态地址的条目
!

interface GigabitEthernet1/0/11
switchport trunk encapsulation dot1q
switchport mode trunk
ip arp inspection limit none
arp timeout 2
ip dhcp snooping limit rate 100

由于下连设备,为了避免inspection让端口errdisable,所以对arp的侦测不做限制,若直接为接入设备, 可使用ip arp inspection limit rate 100

相关命令:
sh logging 查看Dymatic Arp Inspection (DAI) 是否生效.
sh ip dhcp snooping binding 查看snooping是否生效
sh ip dhcp binding 看dhcp server 是否生效.
sh arp 看arp信息是否与 dhcp snooping binding表一致

下级设备若支持dhcp snooping 可这样配置:
ip dhcp snooping
int g0/1 上行端口
switchport trunk encapsulation dot1q
switchport mode trunk
ip dhcp snooping trust 定义此端口为信任端口,从此口来的dhcp server数据有效,可阻止其它dhcp server发送dhcp数据。

经实验,对于已存在于綁定表中的mac和ip对于关系的主机,不管是dhcp获得,还是静态指定,只要符合这个表就可以了。如果表中没有就阻塞相应流量。

如果使用了dhcp中继服务,那需要在网关交换机上键入如下命令:
方法一:
inter vlan10
ip dhcp relay information trusted
方法二:
switch(config)# ip dhcp relay information trust-all

Dhcp两大威胁以及arp欺骗等试验总结 1 伪dhcp server。Dhcp的工作原理大概是首先client广播dhcp discovery消息,本网段的dhcp server回送dhcp offer消息,客户段再发送dhcp request消息,声明自己即将使用的ip地址,server发送ack给client告知client可以使用。防止伪dhcp其实就可以在交换机上启用dhcp snooping功能,凡是不信任的端口(信任端口就是dhcp server使用的端口,需独立配置),都将拒绝从该端口发送dhcp offer消息从而杜绝伪dhcp server。 在cisco交换机上全局启用 ip dhcp snooping,,并使用命令ip dhcp snooping vlan 2,告知在vlan2里使用snooping,这样所有端口都是非信任端口,都将丢弃dhcp offer报文,如果是使用三层交换机提供dhcp服务,就不比单独配置信任端口了。配置信任端口是在物理端口下使用命令 ip dhcp snooping trust. 记住:接入层交换机需支持dhcp snooping功能;信任端口是在物理端口下配置(包括trunk级联端口) 2 DHCP dos攻击。主要就是伪造大量mac地址去像server申请地址,耗费dhcp server地址池,从个人达到拒绝服务攻击的目的。一般用两种方法,但实际操作性都不是太强。第一种办法就是对交换机端口规定一些合法的mac地址池,只有在此范围内的主机才可以通过该端口进行转发。或者限制最大mac地址数。这样客户端就没办法伪造mac地址去申请ip了。Cisco交换机就是在物理端口下使用switchport port-security mac-add命令填加,这种方法工作量大且不能满足移动性的要求。另一种方法就是与实际认证系统相结合,认证系统首先对MAC地址进行第一次认证,只有MAC地址是合法的,才允许DHCP Sever分配IP地址给终端,这主要用到802.1x认证协议和radius认证服务器。 3 有时候为了需要,不希望用户自己设定ip地址来上网,也就是说限制用户只能动态获取地址才能上网,自己固定地址不能上网。这种就相对比较简单,不需要在接入层上做什么设置,也就是不要求接入层支持dhcp snooping功能。只需要在三层交换机上使用如下命令就搞定。 Ip arp inspection vlan 500 //vlan500下面启用arp inspection功能 Ip arp inspection validate src-mac dst-mac ip //只有源mac 目的mac和ip都正确才合法 这里必须还是先在三层交换机上启用ip dhcp snooping功能 同时监控snooping vlan 500。因为arp inspection实际是根据dhcp 绑定信息来判断的。如果用户不是自动获取ip,而是自己设置ip,那么它就不会被dhcp snooping捕获到,当然所有的该ip地址发送的arp请求都会被网关拒绝掉的(因为源,目的mac和ip地址都是不合法的,自然被认为是非法的arp请求)。但是固定ip时是可以跟本局域网内其它机器通信的,只是不能通过arp协议学习到网关的mac地址。 注:以上的dhcp server都是在三层交换机上启用的。 4 arp欺骗。可以分两种情况:一是伪造网关去欺骗网内其它主机;而是伪造其它主机去 欺骗网关。当然更严重的是两种情况同时存在,并开始数据转发功能,这就是一种中间 人攻击(双方欺骗),可以嗅探数据包(代理arp功能跟此类似,很多计费网关和一些透明防火墙就利用了代理arp功能)。从某种意义上说,arp欺骗就是一种代理arp。 神码可提供专门的在接入层交换机使用ACL来限制客户仿冒网关,这个acl就是限制该端口下不允许发送网关地址的arp通告报文,这样可以有效的防止伪造网关去欺骗其它主机。 (Config)# access-list 1101 deny an an untagged-eth2 12 2 0806 20 2 0002 28 4 C0A80001 该ACL说明如下: 13,14字节是arp协议代码0806,21,22字节是0002表示arp reply,29-32字节就是网关ip地址的16进制 STEP2:应用ACL (Config)# Firewall enable (Config)# int e 0/0/1-24 //在所有端口下应用该acl (int)# mac access-group 1101 in traffic-statistic 当然,如果知道某个具体端口是什么IP地址,那么就可以限制该端口只能发送该IP的arp通告是最好了,这就可以完全杜绝arp欺骗。但明显可操作性差。 另一种能较好防止arp欺骗的办法就是在各个主机上绑定网关的mac,同时在网关上静态绑定IP+mac。不过这种办法不如前面办法好,它不能防止局域网内部的arp欺骗。 如果采取的是动态获取ip地址,神码交换机有个新特性,能完全控制arp欺骗。可以防止接入主机假冒网关,可以防止接入主机假冒其它用户;管理复杂度低,交换机配置简单并且基本不需要变更;支持用户移动接入,交换机可以自动检测到用户接入位置并正确转发用户数据; ip dhcp snooping enable ip dhcp snooping binding enable Interface Ethernet0/0/1 ip dhcp snooping binding user-control ! Interface Ethernet0/0/2 ip dhcp snooping binding user-control 如果是静态ip,需要ip+mac+端口的绑定。 am enable Interface Ethernet0/0/1 am port am mac-ip-pool 00-1C-23-06-0D-B9 10.10.1.90 还是说说cisco交换机吧。一般采取动态获取IP地址的上网方式比较多,先配置ip dhcp snooping 再配置ip arp inspection,此时,客户端就应该没办法伪造其它主机去伪造网关,因为这些伪造的arp reply报文在网关看来都是非法的,自然会拒绝。至于伪造网关的防治,大概就只能在用户自己主机上静态绑定arp缓存表了。 1 防止arp扫描。在某些情况下也可抑制arp欺骗。原理就是对物理端口进行arp报文 数量的限制。方法就是在物理端口是使用ip arp inspection limit rate 命令限制每秒钟允许通过的arp报文数。 2 伪mac地址的防治。交换机的mac地址表如果被大量充斥,将会影响性能,严重的将会是交换机崩溃,因为一般的cam存储都有限。所以这类防治般限制每端口出来的mac地址数目即可。至于伪造的防治,那就只能选择port-security了,虽然不能满足移动性的要求。 针对目前学校主干是cisco交换机,接入层品牌太杂,档次参差不齐,用户自动从cisco三层交换机上获取地址上网的情况,我认为比较好的办法就是在cisco交换机上启用dhcp snooping 以及arp inspection功能来尽可能防止arp欺骗。用户还得绑定好网关的mac地址。要能更有效的防止arp欺骗和防止伪dhcp server,还得升级接入层交换机。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值