配置R1DHCP ServerR2R4DHCPClientR3为静态IP地址:

R1(config)#int f0/0

R1(config-if)#ip add 172.16.1.1 255.255.255.0

R1(config-if)#no sh

R1(config)#service dhcp

R1(config)#ipdhcp pool DHCP_POOL

R1(config-config)#network172.16.1.0 255.255.255.0

R1(config)#ipdhcp excluded-address 172.16.1.1 172.16.1.1

R1(config)#ipdhcp excluded-address 172.16.1.3 172.16.1.3


R2(config)#intf0/0

R2(config-if)#ip add dhcp


R2(config-if)#nosh

R3(config)#intf0/0

R3(config-if)#ip add 172.16.1.3 255.255.255.0

R3(config-if)#no sh


R4(config)#intf0/0

R4(config-if)#ip add dhcp

R4(config-if)#no sh


SW1(config)#int port-channel 1

SW1(config)#int range f0/11- 12

SW1(config-if)#switchport encapsulation dot1q

SW1(config-if)#switchport mode trunk

SW1(config-if)#channel-group1 mode on


SW2(config)#int port-channel 1

SW2(config)#int range f0/11- 12

SW2(config-if)#switchport encapsulation dot1q

SW2(config-if)#switchport mode trunk

SW2(config-if)#channel-group1 mode on


配置DHCP SNOOPING


SW1(config)#ip dhcp snooping   //启用DHCP监听功能

SW1(config)#ip dhcp snooping vlan 1 //配置SW1监听Vlan 1DHCP数据包

SW1(config)#ip dhcp snooping information optionallow-untrusted

 //配置SW1能从非信任端口接收带Option 82DHCP报文

SW1(config)#ip dhcp snooping verify mac-address //检测非信任端口CHADDR字段与源MAC是否相同

SW1(config)#ip dhcp snooping databaseflash:dhcp_snooping.db //DHCP监听绑定表保存在Flash

SW1(config)#ip dhcp snooping database write-delay15 //DHCP监听绑定表更新后等待15秒再保存

SW1(config)#ip dhcp snooping database timeout 15 //DHCP监听绑定表保存失败后,只重新尝试15

SW1#ip dhcp snoopingbinding 0023.04e5.b221 vlan 1 172.16.1.3 int f0/3 expiry 4294967295  //手工添加绑定,因为静态IP地址不会自动生成DHCP监听绑定条目,它也是DAIIPSG的基础

SW1(config)#int f0/1

SW1(config-if)#ip dhcp snooping trust //配置本端口为信任端口

SW1(config)#int range f0/11 - 12

SW1(config-if)#ip dhcp snooping limit rate 20 //限制非信任端口每秒钟能接受的DHCP数据包为20

SW2(config)#ip dhcp snooping

SW2(config)#ip dhcp snooping vlan 1

SW2(config)#ip dhcp snooping verify mac-address

SW2(config)#ip dhcp snooping database flash:dhcp_snooping.db

SW2(config)#ip dhcp snooping database write-delay15

SW2(config)#ip dhcp snooping database timeout 15

SW1#ip dhcp snooping binding 0023.04e5.b221 vlan 1 172.16.1.3 int f0/3 expiry42967295

SW2(config)#int range f0/11 - 12

SW2(config-if)#ip dhcp snooping trust

SW2(config)#int range f0/3 - 4

SW2(config-if)#ip dhcp snooping limit rate 10

R1(config)#ip dhcp relay information trust-all //配置DHCP Server能接收Option820DHCP报文


实验调试

SW1#show ip dhcp snooping binding //查看监听绑定表


配置DAI

DAI根据DHCP监听绑定表来工作;DAI也分为信任端口和非信任端口,默认所有端口都为非信任端口;DAI检查所有非信任端口请求和响应的ARP数据包,对不符合DHCP监听绑定表要求的ARP数据包丢弃。所以交换机中必须要有所有非信任端口主机的监听绑定条目,否则该主机将不能通信。这将使所有主机都被迫采用DHCP获取IP地址(或管理员指定的IP地址),因为DHCP监听绑定表已经对其进行了绑定,可以有效地防止用户私自更改指定IP地址。

SW1(config)#ip arp inspection vlan 1 //Vlan1启用DAI

SW1(config)#ip arp inspection validatesrc-mac dst-mac ip //检查ARP(请求和响应)报文

中的源MAC地址、目的MAC地址、源IP地址和DHCP Snooping绑定中的信息是否一致

SW1(config)#int f0/1

SW1(config-if)#ip arp inspection trust //配置本接口为信任接口

SW1(config)#int range f0/11 - 12

SW1(config-if)#ip arp inspection limit none //取消ARP包的限制,默认15个包/

SW2(config)#ip arp inspection vlan 1

SW2(config)#ip arp inspection validate src-macdst-mac ip

SW2(config)#int range f0/11 - 12

SW2(config-if)#ip arp inspection trust

SW2(config)#int range f0/3 - 4

SW2(config-if)#ip arp inspection limit 10


实验调试

SW1#show ip arp inspection //查看DAI信息

SW1#show ip arp inspection interfaces //查看DAI接口状态和ARP包的数量限制


配置IPSG

默认时,IPSG不检查所有接口的数据包,因此IPSG只需要在不信任接口上进行配置即可。

SW1(config)#int f0/2

SW1(config-if)#ip verify source port-security //在本接口启用IPSG功能

SW2(config)#int range f0/3 - 4

SW2(config-if)#ip verify source port-security

SW2#ip source binding 0023.04e5.b221 vlan1 172.16.1.3 int f0/3 //手工在IP源绑定表中添加静态IP地址记录

说明:使用“ip dhcp snooping binding”命令手工创建DHCP监听绑定条目时,会自动在IP源绑定表中创建记录;然而使用“ip souce binding”命令手工创建IP源绑定条目时,则不会在DHCP监听绑定表中创建记录。

配置端口安全特性:

由于试验中开启了IP地址和源MAC过滤,所以同时要配置端口安全功能。

SW1(config)#int f0/2

SW1(config-if)#switchport mode access

SW1(config-if)#switchport port-security

SW1(config-if)#switchport port-security max-mac-address 1

SW1(config-if)#switchport port-security mac-addresssticky

SW1(config-if)#switchport port-security violationshutdown

SW2(config)#int range f0/3 - 4

SW2(config-if)#switchport mode access

SW2(config-if)#switchport port-security

SW2(config-if)#switchport port-security max-mac-address 1

SW2(config-if)#switchport port-security mac-addresssticky

SW2(config-if)#switchport port-security violationshutdown

IPSG2种过滤类型:

1.IP地址过滤:根据源IP地址对IP流量进行过滤,只有当源IP地址与源绑定条目匹配时IP流量才允许通过。

接口下“ip verify source”命令,表示只开启IP地址过滤模式;

当交换机只使用IP地址过滤时,IP源防护功能与端口安全功能是相互独立的关系。

2.IP和源MAC地址过滤:根据源IP地址和源MAC地址对IP流量进行过滤,只有当源IP地址和源MAC地址都与IP源绑

定条目匹配时IP流量才允许通过。

接口下“ip verify source port-security”命令,表示开启IP地址和源MAC过滤模式;

当交换机使用IP地址和源MAC地址过滤时,IP源防护功能与端口安全功能是集成关系,即需要同

时开启端口安全功能才能完成源IP地址和源MAC地址过滤;

当以源IP和源MAC地址作为过滤时,为了确保DHCP协议能够正常的工作,还必须启用DHCP监听选项82功能。

对于没有选项82的数据,交换机不能确定用于转发DHCP服务器响应的客户端主机端口,DHCP服务器响应将被丢弃,客户端也不能获得IP地址。

实验调试

SW1#show ip verify source

SW1#show ip source binding //查看IP源绑定表