在典型的DHCP环境中,DHCP服务器负责网络中地址的管理和分配,网络中的主机如果想要使用网络资源,必须向DHCP服务器申请合法的网络地址,只有获得了合法地址的客户端才能正常使用网络;
图 1. 正常的DHCP地址分配
然而仅仅依靠服务器/客户端这种模型完全无法保证网络中地址资源的有效管理,以及地址管理的安全性;来自客户端的攻击[非法报文],以及网络中可能存在的各种伪装服务器,对传统的DHCP模型提出了更高的安全要求;
DHCP Snooping的引入解决这一问题,在连接DHCP服务器与客户端的设备上开启DHCP Snooping功能,就可以解决传统DHCP模型中的大部分安全;DHCP Snooping将网络分为两个部分:客户端网络-非信任网络,对来自该网络上的客户端请求进行安全检测;服务器网络-信任网络,将收到的合法的客户端请求转发到配置的信任服务器网络,由服务器完成地址的统一管理分配;通过这种方式,DHCP Snooping解决了传统DHCP模型中的几个典型的安全问题:
图 2. 存在伪装DHCP服务器的网络
图 3. 存在伪装DHCP客户端进行攻击的网络
图 4. 通过DHCP Snooping进行保护的网络
然而,虽然依靠DHCP Snooping的过滤,最大限度的过滤了来自客户端的攻击,杜绝了网络中的伪装服务器;但却无法对客户端网络中的非DHCP客户端进行有效的限制,也就是说无法检测有私设IP的客户端,这在一个纯DHCP的网络应用中,是无法接受的;为了防止这种DHCP网络中客户端私设IP,可以在连接服务器与客户端网络之间的设备上开启IP Source Guard功能,IP Source Guard是基于DHCP Snooping的,在DHCP模型中可以有效的保证网络中DHCP客户端能够正常使用网络;
IP Source Guard维护一个IP 源地址绑定数据库, IP Source Guard可以在对应的接口上主机报文进行基于源IP、源IP加源MAC的报文过滤,从而保证只有IP源地址绑定数据库中的主机才能正常使用网络;
IP Source Guard之所以在DHCP使用中能够有效的安全控制,这主要取决于IP源地址绑定数据库,IP Source Guard会自动将DHCP Snooping绑定数据库中的合法用户绑定同步到IP Source Guard的IP源地址绑定数据库,这样IP Source Guard就可以在打开DHCP Snooping设备上对客户端的进行严格过滤;
默认情况下,打开IP Source Guard的功能的端口会过滤所有非DHCP的IP报文;只有当客户端通过DHCP从服务器获取到合法的IP或者管理员为客户端配置了静态的IP源地址绑定,端口将允许和这个客户端匹配的IP报文通过;
IP Source Guard支持基于IP+MAC或者基于IP的过滤,如果打开基于IP+MAC的过滤,IP Source Guard会对所有报文的MAC+IP进行检测,仅仅允许IP源地址绑定表格中存在的用户报文通过;而基于IP的过滤,仅仅会对报文的源IP地址进行检测;
在支持ARP Check功能的交换机系统上,IP Source Guard功能开启后ARP Check默认配置下也将同时开启ARP Check功能,此时交换机能使用IP Source Guard对IP报文进行 IP+MAC或仅源IP过虑, ARP Check功能对ARP报文中的Sender IP+Sender MAC或仅对Sender IP检查过虑。
IP Source Guard的相关过滤功能都是基于硬件实现的,接口上的IP Source Guard过滤规则可以理解为基于接口的可以动态改变的ACL,各系列产品的过滤表容量存在差异,因此在规划IP Source Guard应用之前请参看相关产品规格说明。
IP Source Guard功能的应用是和DHCP Snooping结合起来的,也就是说基于接口的IP Source Guard仅仅在DHCP Snooping控制范围内的非信任口上生效,在其他信任口或者非DHCP Snooping控制范围内的接口上配置该功能,功能将不生效;
缺省情况下,接口的IP Source Guard功能是关闭的,接口下联的所有用户都可以使用网络;打开接口IP Source Guard功能之后,将会根据IP源地址绑定数据库对接口下联客户端进行过滤
|
命令 |
作用 |
Step 1 |
Ruijie(config)# interface interface |
进入接口配置模式 |
Step 2 |
Ruijie(config)# [no] ip verify source [ port-security ] |
打开接口上的IP Source Guard功能 port-security将配置基于IP+MAC的过滤 |
下边是配置打开接口1的IP Source Guard功能:
Ruijie(config)# interface FastEthernet 0/1
Ruijie(config-if)# ip verify source
Ruijie(config-if)# end
|
~ 注意 |
|
IP Source Guard功能和DHCP Snooping功能结合应用,该功能仅仅在DHCP Snooping控制范围的接口上生效; IP Source Guard功能仅仅在DHCP Snooping控制的非信任口上生效。 IP Source Guard支持在AP口上配置,但不支持在AP成员端口上配置。 |
在某些应用情况下,某些端口下的用户希望能够静态使用某些IP,就可以通过添加静态用户信息到IP源地址绑定数据库中来实现
|
命令 |
作用 |
Step 1 |
Ruijie# configure terminal |
进入配置模式 |
Step 2 |
Ruijie(config)# [no] ip source binding mac-address vlan vlan_id ip-address interfaceinterface-id |
配置静态的IP源地址绑定用户到数据库 |
下边是添加一个静态的用户到设备的9端口:
Ruijie# configure terminal
Ruijie(config)# ip source binding 00d0.f801.0101 vlan 1 192.168.4.243 interface FastEthernet 0/9
|
~ 注意 |
|
端口必需在vlan vlan_id参数所指定的VLAN中,否则无法进行有效的用户绑定。 |
您可以通过以下步骤显示IP Source Guard过滤表项
|
命令 |
作用 |
Step 1 |
Ruijie# show ip verify source [interfaceinterface] |
显示IP Source Guard过滤表项 |
例如:
Ruijie # show ip verify source
Interface Filter-type Filter-mode Ip-address Mac-address VLAN
--------------- --------- ----------- ---------- ----------- ------
FastEthernet 0/3 ip active 3.3.3.3 1
FastEthernet 0/3 ip active deny-all
FastEthernet 0/4 ip+mac active 4.4.4.4 0000.0000.0001 1
FastEthernet 0/4 ip+mac active deny-all
您可以通过以下步骤显示IP源地址数据库信息的相关内容
|
命令 |
作用 |
Step 1 |
Ruijie# show ip source binding [ip-address] [mac-address] [dhcp-snooping] [static] [vlanvlan-id] [interface interface-id] |
查看IP源地址绑定数据库 |
例如:
Ruijie# sh ip source binding
MacAddress IpAddress Lease(sec) Type VLAN Interface
----------- ---------- ---------- ------- ---- ------
0000.0000.0001 1.0.0.1 infinite static 1 FastEthernet2/1
Total number of bindings: 1