Cisco DHCP Snooping + Dynamic ARP Inspection(DAI)
2016-06-23 10:22
573 查看
在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
这个时候,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
相关文章推荐
- Failed to load class "org.slf4j.impl.StaticLoggerBinder问题故障的解决
- DDD中的Unitwork与DomainEvent如何相容?(续)
- Could not find a storyboard named 'Main' in bundle NSBundle
- Maven打包带main函数的jar
- CONTAINING_RECORD
- CreateWaitableTimer和SetWaitableTimer函数
- 80老翁谈人生(12):强烈呼吁高校招生系统引进人工智能(机器人)
- 用正则表达式提取单个页面文件里Email地址的简单实现
- NSSearchPathForDirectoriesInDomains用法,程序目录结构
- Hadoop YARN配置参数—Fair Scheduler相关参数
- chinapub读书会第10期:机器学习与人工智能 6月25日相约阿里云+优客工场
- 简单leetcode(五)
- Shiro-1.2.2内置的FilterChain
- STL之关联容器(pair、map、set的使用)
- Failed to load class "org.slf4j.impl.StaticLoggerBinder"问题解决fangan
- [Webpack 2] Maintain sane file sizes with webpack code splitting
- 即使jarsigner 后,有些机型还是会安装不上,报错INSTALL_PARSE_FAILED_NO_CERTIFICATES
- 详解ABP框架中领域层的领域事件Domain events
- RHEL7 RAID10+LVM 延续了一下前面的实验同时添加了LVM的内容
- 正则表达式工具RegexBuddy使用教程(原创自Zjmainstay)