DHCP-Snooping与DAI
简介
DHCP-Snooping(DHCP窥探):
当交换机开启了 DHCP-Snooping后,会对DHCP报文进行侦听,并可以从接收到的DHCP Request或DHCP Ack报文中提取并记录IP地址和MAC地址信息。另外,DHCP-Snooping允许将某个物理端口设置为信任端口或不信任端口。信任端口可以正常接收并转发DHCP Offer报文,而不信任端口会将接收到的DHCP Offer报文丢弃。这样,可以完成交换机对假冒DHCP Server的屏蔽作用,确保客户端从合法的DHCP Server获取IP地址。
- dhcp-snooping的主要作用就是通过配置信任端口,隔绝非信任端口的DHCP-Server;
- 与交换机DAI配合,防止ARP病毒的传播;
- 建立和维护一张dhcp-snooping的绑定表,这张表一是通过dhcp ack包中的IP、mac生成的,二是可以手工指定 。这张表是后续的DAI(dynamic arp inspect)和IP source Guard基础。这两种类似的技术,是通过这张表来判定IP和Mac是否合法,来限制用户连接到网络。
DAI(动态ARP检测):
思科 Dynamic ARP Inspection (DAI),在交换机上提供IP地址和MAC地址的绑定, 并动态建立绑定关系;DAI 以 DHCP Snooping绑定表为基础(后者是前者的基础,没有DHCP Snooping的绑定表也就不能实施DAI),所以二层设备不能实施DAI技术。
作用:
- 通过拒绝静态ip的ARP请求来防止静态配置的IP地址与DHCP服务器分配的客户端IP冲突;
- 过滤静态配置的服务器的IP地址,服务器可以不受DAI的影响;
一.实验目的
- 了解DHCP Snooping和DAI的工作原理;
- 理解两者的前后关系;
- 掌握其配置。
二.实验拓扑
环境:SW3560(真实设备)。两边用两台路由器做DHCP服务器,下面的两台PC作为客户端获取IP(用于验证),两台PC一台是我的真实机,另一台是虚拟机,fa0/5端口是与PC连接的;
三.实验规划
- R1配置IP为192.168.100.2并配置DHCP地址池;
- R3配置IP为192.168.100.254并配置DHCP地址池(作为一个攻击者);
- SW3560的所有接口在vlan100,并在SW3560上设置DHCP-Snooping和DAI。
四.实验步骤
实验一:DHCP-Snooping
R1模拟可信的DHCPserver,R3模拟攻击者。
SW3560上创建VLAN100,并把所有接口加入进去
R1配置
配置IP:
配置地址池:
地址池为:192.168.100.101---192.168.100.200,网关为100.2,指向自己。
R3配置
配置IP:
配置地址池:
R3-attacker(config)#ip dhcp pool vlan100
R3-attacker(dhcp-config)#network 192.168.100.0 255.255.255.0
R3-attacker(dhcp-config)#default-router 192.168.100.254
R3-attacker(dhcp-config)#ip dhcp excluded-address 192.168.100.1
192.168.100.200
地址池为:192.168.100.201---192.168.200.253,网关为100.254,指向自己。
配置完后用两台设备连接,自动获取IP地址
默认情况下,要求的是客户端从R1获得IP地址才是正确的。但是,客户端也有可能从R3获得IP地址,如下图:
是从R3获取到的DHCP。
说明:如拓扑图所示,R1是10M以太网端口,R3是百兆以太网端口,所默认情况下会从R3获得IP地址。这样较好的模拟了DHCP攻击者的角色。既然是从攻击者那里学到的IP地址,那么就实施策略让攻击者不可信。如下:
实施DHCP-Snooping,并配置fa0/3端口为信任端口。
关闭option项:
关闭DHCP的snooping的请求功能,如果不关闭DHCP snooping的请求功能,默认服务器发起一个DHCP snooping请求包到交换机,交换机会将这个请求包添加一个82位的字段,这个82位的字段修改了默认的网关,修改为0.0.0.0。当到了路由器时会认为这个0.0.0.0的地址不合法,此时客户端是获取不到地址的。
注:
配置fa0/3为信任端口,也就是说客户端只能从fa0/3这个端口向DHCP服务器发送请求包。此时fa0/1也就成了不可信端口,客户端的请求包是不会从这个端口发送出去的。
查看客户端
为验证效果,我们把fa0/3端口down掉,验证能不能从R3(即攻击者DHCP)获取IP
如图:使用DHCP-Snooping之后,客户端不能从非可信端口学到IP。
以上就是DHCP-Snooping的使用,通过配置可信任端口,过滤掉来自欺骗方的DHCP地址分配。
实验一:DAI
DAI是对端口的ARP包进行检测,在DHCP绑定表中存在的对应项即可通过,如果将端口启用DAI trust则不进行ARP检测,上游设备中继口应设置为trust。如果DHCP绑定表为空,则应创建静态ARP表,命令如下:
Arp access-list static-arp
Permit ip host 192.168.1.11 mac host 0000.0000.0000
Ip arp inspection filter static-arp vlan 500
然后在与DAI配合使用即可。
应用环境介绍
工作环境中,虽然有DHCP分配地址,但是避免不了一些小白还是设置静态的,或是攻击者故意配置静态地址,这样就可能与Client动态获取到的地址一样,产生冲突。为了避免静态配置地址产生的影响,可以使用DAI(动态ARP检测)技术,让静态IP的ARP请求无效。
但是,服务器的地址都是静态设置的,如果实施DAI,必然会影响服务器。所以,可以将服务器MAC地址与IP地址手动邦定并过滤,避免DAI的影响。
IP源保护:
过滤静态主机地址
启用DAI之前:
先让动态获取IP的主机ping网关
可以ping通
静态配置一个IP地址,然后ping网关
可以ping通。
启用DAI
再次用静态配置的Client ping网关(验证启用DAI之后是否能ping通),由于存在缓存,所以还是能ping通,此时建议把客户端的网卡禁用后启用,然后再ping:
如图,启用动态ARP检测之后,静态配置的地址就不能与dhcp服务器通信了。
Ping的时候,DHCP服务器上也会出现提示错误ARP请求的消息,如下:
这就是DAI—动态ARP检测机制的作用,防止攻击者通过配置与动态分配的地址一样,导致地址冲突而影响网络通信。动态ARP检测是基于DHCP的绑定表,实施动态ARP检测之后,只有DHCP绑定表中存在的才能与网管通信,没有的也就不能通信。
过滤服务器地址:
SW1(config)#ip source binding 000c.29f4.69f6 vlan100 192.168.100.110 interface fastEthernet 0/5
SW1(config)#ip dhcp excluded-address 192.168.1.110
上面的实验说到:DAI通过过滤静态地址来防止攻击的,但是服务器的地址都是静态设置的,这样一来,服务器也会收到DAI的影响。而实际工作中一般是不允许服务器出现访问故障的。所以就要利用DAI的静态地址邦定,过滤服务器的静态地址,使其不受DAI得影响。