DHCP基本原理
DHCP应用场景:
DHCP服务器能为大量主机分配IP地址,且能够集中管理
DHCP报文类型:
DHCP discover:客户端用来寻找DHCP服务器
DHCP offer:DHCP服务器用来响应DHCP discover报文,此报文中携带各种配置信息
DHCP request:客户端请求配置确认或者租期续借
DHCP ack:服务器对request报文的确认响应,ACK报文中包含IP地址、网关等确认信息
DHCP nak:服务器对request报文的拒绝响应
DHCP release:客户端要释放地址时用来通知服务器(在cmd中ipconfig /release可以用来释放IP地址)
DHCP decline 收到ack时会检查报文信息比如IP地址,如果发现有问题(如冲突)则回复这个报文用来拒绝下发的IP地址
DHCP工作原理:
在发dhcp offer报文之前服务器端会发送免费ARP去检测要下发的IP地址是否有被人使用
客户端在正式开始使用IP地址之前也会发送免费ARP检测
DHCP地址池:
ARG3系列路由器支持两种地址池:全局地址池和接口地址池
接口地址池会给连接到一个网段的分配IP地址(优先级更高)
全局地址池为连接到各台服务器的所有接口分配IP地址
DHCP地址池配置:
DHCP Relay基本原理
DHCP Relay产生背景:
随着网络规模的扩大,网络中会出现用户处于不同网段的情况,因为DHCP广播消息在传输过程中无法跨越二层广播域传递,故会被丢弃,DHCP服务器无法接受到DHCP消息则无法为客户端分配地址
dhcp relay也称dhcp中继,在网关设备上配置可以帮忙转发无法跨越网段的dhcp消息传递到服务器,实现了使用一个DHCP server为多个二层广播域中的DHCP client提供服务,节省成本又便于集中管理
DHCP Relay工作原理:
DHCP Relay配置:
DHCP面临的安全问题:
DHCP在设计上未充分考虑到安全因素,从而留下了许多安全漏洞,使得DHCP很容易受到攻击,主要有以下三种攻击方式:
1、DHCP饿死公攻击:
CHADDR:客户端的硬件地址(源MAC地址)
攻击原理:攻击者持续大量向服务器申请IP地址,直到耗尽服务器地址池中的IP地址导致服务器不能给正常的用户进行分配
利用的漏洞:DHCP服务器无法分辨合法的主机
防护:DHCP snooping防饿死攻击 —-一致性检查(request报文帧头mac地址和chaddr报文字段是否相同,相同才转发)、限制接口允许学习的DHCP snooping绑定表项的MAC数量
2、仿冒服务器攻击:
攻击原理:攻击者仿冒服务器,向客户端分配错误的IP地址及提供错误的网关地址等参数导致客户端无法正常访问网络
利用的漏洞:主机无法区别合法服务器
防护:DHCP snooping防仿冒服务器攻击 —配置信任接口和非信任接口(默认都为非信任接口,需要手动修改)
3、中间人攻击:
攻击原理:攻击者利用ARP机制,让客户端和服务器学到错误的对方的IP地址和MAC地址的映射关系
利用的漏洞:通过ARP欺骗攻击客户端和服务器
防护:DHCP snooping防中间人攻击— 配置动态ARP检测,让设备将ARP报文对应的源IP、源MAC、接口、vlan信息和绑定表中的信息进行检查对比,如果不一致则丢弃
IPSG&DAI
IPSG简介
随着网络规模增大,通过伪造源IP地址实施的网络攻击(简称IP地址欺骗攻击)也增多,一些攻击者通过伪造合法用户的IP地址获取网络访问权限,非法访问网络,甚至造成合法用户无法访问网络或者信息泄露
IP源防攻击IPSG是一种基于二层接口的源IP地址过滤技术,能够防止恶意主机伪造合法主机的IP地址来仿冒合法主机,确保非授权主机不能通过自己指定的IP地址来访问网络或攻击网络
防攻击原理:IPSG利用绑定表(源IP地址、源MAC地址、所属VLAN、入接口的绑定关系)去匹配检查二层接口上收到的IP报文,只有匹配绑定表的报文才允许通过,其他报文将被丢弃(只匹配检查IP报文,通过二层帧头部中的type字段确认是否属于IP报文)
绑定表分为静态和动态两种,缺省情况下,如果在没有绑定表的情况下使能了IPSG,设备将拒绝除了DHCP请求报文以外的所有IP报文
DAI简介
为了防御中间人攻击,可以在路由器上部署动态ARP检测DAI功能,利用绑定表来防御中间人攻击
防攻击原理:当设备收到ARP报文时,将对ARP报文对应的源IP、源MAC、vlan以及接口信息和绑定表的信息进行比较,如果信息匹配,则允许通过,否则丢弃(DAI仅适用于DHCP snooping场景)
设备使能DHCP snooping功能后,当DHCP用户上线时,设备会自动生成DHCPsnopping绑定表(对于静态配置IP地址的用户,设备不会生成绑定表,所以需要手动添加静态绑定表)
DHCPv6
基本概念
DHCPv6是一种运行在客户端和服务器之间的协议,协议报文基于UDP,能为主机分配ipv6地址以及其他网络配置参数,并实现这些参数的集中管理,使用组播报文(组播地址ff02::1:2,指明所有服务器和中继代理地址)无状态自动获取只能获取IP地址,DHCP可以获取其他的信息
DHCPv6报文承载在UDPv6上,客户端侦听的是546,服务器、中继代理侦听的是547
DHCPv4客户端侦听的是68,服务器侦听的是67
每个DHCPv6服务器或客户端有且只有一个唯一标识符DUID(DHCP设备唯一标识符)
LL:用MAC地址来产生duid
LLT:MAC地址+配置的时间
三种角色
DHCPv6 client:DHCPv6客户端,通过与服务器交互获得IP地址/前缀和网络配置信息,完成自身的地址配置功能
DHCPv6 relay:DHCPv6中继代理,负责转发来自客户端方向或者服务器方向的DHCPv6报文,协助客户端和服务器完成自身地址配置功能(不是必须存在的角色)v6里面中继出现的场景是客户端和服务器不在同一个共享的网络里面
DHCPv6 server:DHCPv6服务器,负责处理来自客户端或中继代理的地址分配、租期续借、地址释放等请求,为客户端分配ipv6地址/前缀以及其他网络配置参数
DHCPv6报文
DHCPv6地址获取方式
DHCPv6自动分配
有状态自动分配:服务器自动配置IPV6地址/前缀,同时分配DNS服务器等网络配置参数
四步交互分配
两步交互快速分配
无状态自动分配:仍然通过路由通告方式自动生成,只分配除了IPV6地址以外的配置参数
DHCPv6配置标记
托管地址配置标记:M:指示主机使用配置协议来获取有状态地址(为1时)
其他有状态配置标记:O:指示主机使用配置协议来获取其他配置设置(为1时)
M=1 O=1—-DHCPV6 有状态自动分配
M=0 O=0—-DHCPV6 无状态自动分配
M=0 O=1—-DHCPV6 无状态自动分配