DHCP协议
一、DHCP
1、基本概念
- DHCP(动态主机配置协议),局域网的网络协议,广泛应用于局域网内部
- 主要就是给客户机提供TCP/IP参数(IP地址、子网掩码、网关、DNS等)
2、好处
- 减少管理员的工作量
- 避免输入错误
- 避免IP冲突
- 提高IP地址的利用率
3、DHCP的工作原理
- 它是一个应用层的协议,基于UDP的67/68端口,主机是向服务器的67号端口,服务器响应给客户机的68号端口
- 客户机与服务器的交互过程
- 客户机发送dhcp discover ,以广播方式
- 网络中所有的DHCP服务器都会收到,都会相应,客户机会向收到的第一个offer报文的服务器发送DHCP request
- 服务器确认、客户机获得TCP/IP参数
二、在Windows Server上部署DHCP服务器
1、DHCP的8种报文
- DHCP discover
- DHCP offer
- DHCP request
- DHCP ack
- DHCP release
- 不常见
- DHCP nak:针对于request 的拒绝响应报文
- DHCP decline:当客户端发现服务器给分配的IP地址发生冲突时会通过发送此报文来通知服务器,并且或重新向服务器申请地址
- DHCP inform:客户端已经获得了IP地址,发送此报文的目的是为了从服务器获得其他的一些网络配置信息,比如网关地址、DNS服务器地址等
2、过程
注:当IP地址为169.254.0.0网段下时,表示DHCP配置失败
注:虚拟机环境下,记得关闭“使用本地DHCP服务将IP地址分配给虚拟机”
(1)Windows Server上
-
在Windows Server上安装DHCP服务
-
打开菜单——Windows管理工具——DHCP
-
右击IPv4,选择新建作用域
-
注:先新建服务器所在网段的作用域,此时服务器所在网段为192.168.120.0
-
之后配置地址范围
-
配置排除的IP地址
-
配置租用期限
- 配置DHCP选项,(默认网关、DNS服务器、WINS设置等)
- 激活作用域
- 完成
(2)路由器设置
- 端口设置略
- 将路由器上不与服务器直连的接口配置中继
int f0/0
ip helper-address 192.168.120.100
//192.168.120.100为DHCP服务器的地址
3、DHCP报文格式
- Message type : 消息类型,1表示请求,2表示响应
- Hardware type :硬件类型
- Hardware address length:硬件地址长度
- Hops :DHCP报文经过的DHCP中继的数目
- Translation ID :事务ID,随机数
- Seconds elapsed :客户机获取或者续借所需要的时间
- Bootp flags :保留的标志字段
- Client IP address:客户机的IP地址
- Your (client) IP address :服务器能够提供给客户机的IP地址
- Next server IP address:DHCP服务器的地址
- Relay agent IP address:中继代理的IP
- Client MAC address:客户机的MAC地址
- Client hardware address padding:客户机硬件地址填充
三、实施DHCP欺骗
1、Yersinia工具
四、DHCP防御
在交换机上配置信任端口
-
开启DHCP监听
ip dhcp snooping
-
指定监听vlan
ip dhcp snooping vlan 1
-
由于开启监听后,交换机上的接口就全部变成非信任端口(会拒绝DHCP报文),需要将正常的接口添加为信任端口
int f0/0 ip dhcp snooping trust
-
启用”选项82“
ip dhcp snooping information option
-
限制DHCP报文速率
ip dhcp snooping limit rate 100 #可以选择1-2048
-
启用核实MAC地址功能
- 检测非信任端口的请求报文中源MAC地址和DHCP请求报文中的客户端MAC地址是否相同
ip dhcp snooping verify mac-address
-
当交换机开启dhcp snooping 之后,所有的接口都变成了非信任端口(会拒绝DHCP报文),但当把交换机上的某一接口设置为信任接口之后,其他所有接口变成可信任端口(会拒绝DHCP offer)