DHCP
DHCP
一、DHCP背景
在大型企业网络中,会有大量的主机或设备需要获取IP地址等网络参数。如果采用手工配置,工作量大且不好管理,如果有用户擅自修改网络参数,还有可能会造成IP地址冲突等问题。需要一种自动化的协议,可以自动的下发IP地址和IP有关的各项配置。
二、DHCP基础及通信
1. 基于请求和响应的C/S服务机制
2. DHCP是应用层的协议,端口号时67 68
3. 地址池
全局地址池:不论接口,路由器或者交换机上存在的地址池,任何一个PC都可以使用
接口地址池:只在接口下生效的地址池
4. DHCP服务器在现网部署时,一般情况载体(路由器/三层交换机/windows/linux)现网更多的是部署在LINUX上的(最小化)
5. DHCP过程
当一个PC启动以后,再没有触发DHCP时,本身是有IP地址的169特殊IP地址段都是没有自动获得地址
DHCP Discover (广播):客户端向外发送广播报文DHCP,寻求网络中的DHCP服务器回应。
DHCP Offer(广播/单播):服务端offer中携带了一个,DHCP服务器分配出来的地址,这个地址是可用地址,并不代表已经分配了。(同时来了两个就是先到先得)
DHCP Request (广播):客户端针对offer中携带可用地址,发起请求
DHCP ACK(广播/单播):服务端针对请求的确认
客户端收到确认后,马上激活发送一个免费ARP,等待回应。没有回应表示不冲突,有回应表示冲突
DHCP NAK:服务端向客户端发送的,如果服务端发现,我提供给客户端的offer中的地址不可用,触发NAK,NAK是相对request
DHCP decline:客户端向服务端发起,客户端通过请求以后,确认后发免费ARP,如果发现地址出现了冲突,那么就说明服务器给的地址不可用
向服务端发送decline,告知服务端该地址不可用,客户端再重新请求DHCP
DHCP information:客户端向服务端发送的一切请求信息的数据包
6. 续租
IP租约期限到达50%时,DHCP客户端会请求更新IP地址租约
DHCP客户端在租约期限到达87.5%时,还没收到服务器响应,会申请重绑定IP
如果DHCP客户端不再使用分配的IP地址,也可以主动向DHCP服务器发送DHCP RELEASE报文,释放该IP地址。
三、DHCP配置
1. 接口地址池配置(适合直连DHCP服务的设备)
1.全局开启DHCP功能 2.选择地址池的模式(接口) 3.制定DNS 4.制定排除地址
2. 全局地址池配置(适合需要中继的设备)
1.全局开启DHCP功能 2.创建地址池 3.制定地址池的大小 4.制定网关 5.制定DNS 6.制定租期 7.进接口,选择DHCP的选择模式(全局)
四、DHCP的中继
1. DHCP的客户端和服务端不在同一个广播域下,这个时候,discover报文无法跨越广播域,造成获取地址失败。核心实现方式,就是将广播变成可以进行路由的单播数据报文
2. 中继的配置,哪个接口第一个阻挡了广播报文,就在哪个接口配置
五、常用命令
[系统视图] dhcp enable 开启DHCP服务
[接口视图]dhcp select global 全局地址池
[接口视图]dhcp select interface 接口地址池
[接口视图]dhcp select relay 开启DCHP中继
[接口视图]dchp server lease day 2 设置租期时长(接口)
[接口视图]dhcp server excluded-ip-address 192.168.1.250 192.168.1.254 去除固定ip范围(接口)
[接口视图]dhcp server dns-list 8.8.8.8 设置域名地址 (接口)
[系统视图]ip pool pool192.168.1.0(pool192.168.1.0是名字)设置地址池 (全局)
[R3-ip-pool-pool192.168.1.0]network 192.168.1.0 mask 24 地址池的范围 (全局)
[R3-ip-pool-pool192.168.1.0]gateway-list 192.168.1.1 PC的网关,要属于地址池范围 (全局)
[R2-ip-pool-pool192.168.1.0]excluded-ip-address 192.168.1.254 去除需要固定IP可以范围 (全局)
[R2-ip-pool-pool192.168.1.0]dns-list 8.8.8.8 设置域名地址 (全局)
[接口视图]dhcp relay server-ip 12.1.1.1 提供DCHP服务的端口IP
[系统视图]dhcp server group dhcp-group (dhcp-group名字)
[R3-dhcp-server-dhcp-group]dhcp-server 12.1.1.1 提供DHCP服务的端口IP
[接口视图]dhcp relay server-select dhcp-group 将端口加入dhcp-group中继组中
[系统视图]ds ip pool 查看地址池
六、DHCP的安全威胁
DHCP在设计上未充分考虑到安全因素,从而留下了许多安全漏洞
1. DHCP饿死攻击(DHCP地址池耗尽攻击) DOS 拒绝服务
攻击原理:攻击者持续大量地向DHCP Server申请IP地址,直到耗尽DHCP Server地址池中的IP地址,导致DHCP Server不能给正常的用户进行分配。
漏洞分析:DHCP Server向申请者分配IP地址时,无法区分正常的申请者与恶意的申请者
2. 仿冒DHCP Server攻击(DHCP欺骗) 欺骗
攻击原理:攻击者仿冒DHCP Server,向客户端分配错误的IP地址及提供错误的网关地址等参数,导致客户端无法正常访问网络。
漏洞分析:DHCP客户端接收到来自DHCP Server的DHCP消息后,无法区分这些DHCP消息是来自仿冒的DHCP Server,还是来自合法的DHCP Server。
通常仿冒的DHCP服务器下发的IP地址都是错误的
3. DHCP中间人攻击 双向欺骗 既欺骗客户端,也欺骗服务端
攻击原理:攻击者利用ARP机制,让PC-A学习到IP-S与MAC-B的映射关系,又让Server学习到IP-A与MAC-B的映射关系。如此一来,PC-A与Server之间交互的IP报文都 会经过攻击者中转。
漏洞分析:从本质上讲,中间人攻击是一种Spoofing IP/MAC攻击,中间人利用了虚假的IP地址与MAC地址之间的映射关系来同时欺骗DHCP的客户端和服务器。
4. DHCP release攻击 客户端地址收回,导致客户端下线
震荡攻击 通过伪造release报文,给DHCP服务器发送虚假的信息,就会导致全网所有的DHCP客户端全部都下线
七、防御手段
1、DHCP snooping CHADDR检查
2、DHCP snooping 信任和非信任 接口 信任接口一般对上 非信任接口一般对下面对的时用户
3、DHCP Snooping 绑定表 把PC对应MAC地址绑定 服务器对应的MAC绑定 ARP