配置R1为DHCP Server,R2、R4为DHCPClient,R3为静态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 1的DHCP数据包
SW1(config)#ip dhcp snooping information optionallow-untrusted
//配置SW1能从非信任端口接收带Option 82的DHCP报文
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监听绑定条目,它也是DAI和IPSG的基础
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能接收Option82为0的DHCP报文
实验调试
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
IPSG的2种过滤类型:
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源绑定表