DHCP(Dynamic Host Configuration Protocol)基本知识点:
1 、DHCP协议在RFC2131中定义,使用udp协议进行数据报传递,使用的端口是67(DHCP服务器)和68(DHCP客户端)。
2 、DHCP是最常见的应用,自动给终端设备分配IP地址,掩码,默认网关,但是DHCP也同样可以给终端设备自动配置其他options,比如DNS server,time zones, NTP servers 以及其他的配置内容,更有些厂家,利用自己开发的第3方软件,把自己的一些配置信息,利用dhcp协议来实现对终端设备的自动配置。
3 、DHCP服务的系统最基本的构架是 client/server模式,client向server发请求去获取IP地址。并且如果client 和server不再同一个2层网络内(即广播可以到达的网络范围),则必须要有能够透过广播报文的中继设备,或者能把广播报文转化成单播报文的设备(cisco的ios就引进了这种功能)
4、同一个网段DHCP服务器可以有多个,这不会影响终端设备从服务器获取配置信息,终端设备以接受到的第一组配置信息为准。以后收到的服务器返回的DHCP配置信息被抛弃。
客户端在开机的时候会主动的发送讯息给网域上的所有机器,如果网域上没有DHCP主机,那么客户端计算机会发送四次请求信息,第一次等待时间为 1 秒,其余三次的等待时间分别是 9、13、16 秒。如果还是没有DHCP服务器的响应,那么在5分钟之后,客户端计算机会重复这一动作。
参考:https://blog.csdn.net/killmice/article/details/53007476
cisco设备DHCP配置:
Router(config)#service dhcp //开启dhcp服务,默认开启
Router(config)#no ip dhcp conflict logging //检测到地址冲突会记录到conflict,一旦记录在conflict里的ip地址就不会再分配,命令取消地址冲突记录日志,(由于可能手工配置了IP,dhcp在分配地址前会使用arp或ping的方式测试ip是否在存在,如果在用就排除,如果没用才会分配)
Router(config)#ip dhcp pool vlan10 //创建dhcp地址池,名字为vlan10
Router(dhcp-config)#network 192.168.1.0 /24 //地址范围
Router(dhcp-config)#default-router 192.168.1.1 //分配的网关
Router(dhcp-config)#dns-server 8.8.8.8 4.4.4.4 1.1.1.1 //分配的dns
Router(dhcp-config)#lease 1 16 30 //租用期顺序是天、时、分,这样设置意思是1天16分30秒,默认是1天
Router(config)#ip dhcp excluded-address 192.168.1.1 //排除192.168.1.1地址,不被分配
Router(config)#ip dhcp excluded-address 192.168.1.10 192.168.1.20 //排除地址192.168.1.10-192.168.1.20的地址,不被分配
Router(config)#ip dhcp ping packets 3 //DHCP服务器在分配一个地址之前,先对这个地址PING一下(不配置默认是PING两个包),用来确定这个地址是否已被其他主机所用。
需要给MAC地址:aabb.cc00.0600分配特定的地址,需要另外创建地址池:
Router(config)#ip dhcp pool pc2
Router(dhcp-config)# host 192.168.2.188 255.255.255.0 //指定分配的ip地址
Router(dhcp-config)# client-identifier aabb.cc00.0600 //为指定的aabb.cc00.0600 MAC的主机分配地址
Router(dhcp-config)# default-router 192.168.2.1 //分配的网关
Router(config-if)#ip helper-address 10.1.1.1 //dhcp代理,地址指向dhcp服务器的地址,在需要向dhcp获取地址的接口下配置,前提是要和dhcp 10.1.1.1服务器能通
关于DHCP保护功能,需要在接入交换机上配置DHCP Snooping(DHCP保护):
Switch(config)#ip dhcp snooping //开启dhcp snooping 功能
Switch(config)#ip dhcp snooping vlan 10 //snooping为vlan 10生效,只监控vlan10
Switch(config)#no ip dhcp snooping information option //关闭添加选项字段,默认为添加选项字段,如果添加选项dhcp服务器可能无法识别;或者在DHCP服务器端添加Switch(config-if)#ip dhcp relay information trusted 命令,信任information选项字段。
Switch(config-if)#ip dhcp snooping trust //上连接口配置为信任,默认所有接口都是非信任接口,非信任接口不能发送offer包
Source Guard(IP原保护):
Switch(config-if)#ip verify source //接口开启ip原保护功能,客户端手动设置的ip地址就无法访问网络,通过source binding表只校验ip地址
Switch(config)#ip source binding aabb.CC00.0310 vlan 10 192.168.1.2 interface Et0/1 //如果想让某台设备手动设置ip地址可以访问网络,需要手动配置这条命令
Switch(config-if)#switchport port-security //开启端口安全
Switch(config-if)#ip verify source port-security //配合端口安全使用以及配合ip verify source使用,同时校验ip地址和mac地址,通过source binding表校验
Dynamic ARP Inspection (DAI,动态ARP侦测):
Switch(config)#ip arp inspection vlan 10 //只检测vlan
Switch(config-if)#ip arp inspection trust //上行链路配置为信任接口,默认所有接口为非信任
在开启了DHCP服务的上查看命令:
show ip dhcp pool //查看DHCP 地址池的信息
show ip dhcp pool vlan20 //查看vlan20地址池情况
show ip dhcp binding //查看地址分配情况
show ip dhcp conflict //查看检冲突导致ip而不会被分配的地址
clear ip dhcp binding * //清除所有dhcp地址分配地址记录
clear ip dhcp conflict //清除conflict 记录
如果是用路由器模拟pc获取ip地址,可以在模拟pc的设备上用以下命令查看获取情况:
Router#show dhcp lease //查看获取的IP地址、掩码、网关等参数
Router#show dhcp server //查看获取的dns信息
在接入交换机上查看snooping信息:
Switch#show ip dhcp snooping //查看snooping信息
Switch#show ip dhcp snooping binding //查看终端获取的地址对应信息
Switch#show ip source binding //source binding表和snooping binding信息一样