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的工作原理;

  • 理解两者的前后关系;

  • 掌握其配置。

 

二.实验拓扑

DHCP-Snooping与DAI_SNOOPIng

环境: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,并把所有接口加入进去


DHCP-Snooping与DAI_DHCP_02

R1配置

 

配置IP:

DHCP-Snooping与DAI_SNOOPIng_03

配置地址池:

DHCP-Snooping与DAI_DIA_04

地址池为:192.168.100.101---192.168.100.200,网关为100.2,指向自己。

 

R3配置

 

配置IP:

DHCP-Snooping与DAI_DHCP_05

配置地址池:

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地址,如下图:

DHCP-Snooping与DAI_DIA_06

DHCP-Snooping与DAI_DIA_07

是从R3获取到的DHCP。

 

说明:如拓扑图所示,R1是10M以太网端口,R3是百兆以太网端口,所默认情况下会从R3获得IP地址。这样较好的模拟了DHCP攻击者的角色。既然是从攻击者那里学到的IP地址,那么就实施策略让攻击者不可信。如下:

 

实施DHCP-Snooping,并配置fa0/3端口为信任端口。

DHCP-Snooping与DAI_DHCP_08

 

关闭option项:

关闭DHCP的snooping的请求功能,如果不关闭DHCP snooping的请求功能,默认服务器发起一个DHCP snooping请求包到交换机,交换机会将这个请求包添加一个82位的字段,这个82位的字段修改了默认的网关,修改为0.0.0.0。当到了路由器时会认为这个0.0.0.0的地址不合法,此时客户端是获取不到地址的。

 

注:

配置fa0/3为信任端口,也就是说客户端只能从fa0/3这个端口向DHCP服务器发送请求包。此时fa0/1也就成了不可信端口,客户端的请求包是不会从这个端口发送出去的。

 

查看客户端

DHCP-Snooping与DAI_SNOOPIng_09

为验证效果,我们把fa0/3端口down掉,验证能不能从R3(即攻击者DHCP)获取IP

DHCP-Snooping与DAI_DIA_10

DHCP-Snooping与DAI_DHCP_11

如图:使用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网关

DHCP-Snooping与DAI_SNOOPIng_12

DHCP-Snooping与DAI_DIA_13

可以ping通

静态配置一个IP地址,然后ping网关

DHCP-Snooping与DAI_DHCP_14

DHCP-Snooping与DAI_DHCP_15

可以ping通。

 

 

启用DAI

DHCP-Snooping与DAI_DIA_16

再次用静态配置的Client  ping网关(验证启用DAI之后是否能ping通),由于存在缓存,所以还是能ping通,此时建议把客户端的网卡禁用后启用,然后再ping:

DHCP-Snooping与DAI_DHCP_17

DHCP-Snooping与DAI_SNOOPIng_18

如图,启用动态ARP检测之后,静态配置的地址就不能与dhcp服务器通信了。

Ping的时候,DHCP服务器上也会出现提示错误ARP请求的消息,如下:

DHCP-Snooping与DAI_DIA_19

这就是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得影响。