dhcp

2020-04-25  本文已影响0人  路破格

1 DHCP概述

1.1 DHCP工作流程

发现阶段(DHCP DISCOVER)

即DHCP客户机寻找DHCP服务器的阶段。DHCP客户机以广播方式(因为DHCP服务器的IP地址对于客户机来说是未知的)发送DHCP discover发现信息来寻找DHCP服务器,即向地址255.255.255.255发送特定的广播信息。网络上每一台安装了TCP/IP协议的主机都会接收到这种广播信息,但只有DHCP服务器才会做出响应。

提供阶段(DHCP OFFER)

即DHCP服务器提供IP地址的阶段。在网络中接收到DHCP discover发现信息的DHCP服务器都会做出响应,它从尚未出租的IP地址中挑选一个分配给DHCP客户机,向DHCP客户机发送一个包含出租的IP地址和其他设置的DHCP offer提供信息。

选择阶段(DHCP REQUEST)

即DHCP客户机选择某台DHCP服务器提供的IP地址的阶段。如果有多台DHCP服务器向DHCP客户机发来的DHCP offer提供信息,则DHCP客户机只接受第一个收到的DHCP offer提供信息,然后它就以广播方式回答一个DHCP request请求信息,该信息中包含向它所选定的DHCP服务器请求IP地址的内容。之所以要以广播方式回答,是为了通知所有的DHCP服务器,他将选择某台DHCP服务器所提供的IP地址。

确认阶段(DHCPACK)

即DHCP服务器确认所提供的IP地址的阶段。当DHCP服务器收到DHCP客户机回答的DHCP request请求信息之后,它便向DHCP客户机发送一个包含它所提供的IP地址和其他设置的DHCP ACK确认信息,告诉DHCP客户机可以使用它所提供的IP地址。然后DHCP客户机便将其TCP/IP协议与网卡绑定,另外,除DHCP客户机选中的服务器外,其他的DHCP服务器都将收回曾提供的IP地址。

重新登录

以后DHCP客户机每次重新登录网络时,就不需要再发送DHCP discover发现信息了,而是直接发送包含前一次所分配的IP地址的DHCP request请求信息。当DHCP服务器收到这一信息后,它会尝试让DHCP客户机继续使用原来的IP地址,并回答一个DHCP ACK确认信息。如果此IP地址已无法再分配给原来的DHCP客户机使用时(比如此IP地址已分配给其它DHCP客户机使用),则DHCP服务器给DHCP客户机回答一个DHCP NACK否认信息。当原来的DHCP客户机收到此DHCP NACK否认信息后,它就必须重新发送DHCP discover发现信息来请求新的IP地址。

更新租约(DHCPRENEW)

DHCP服务器向DHCP客户机出租的IP地址一般都有一个租借期限,期满后DHCP服务器便会收回出租的IP地址。如果DHCP客户机要延长其IP租约,则必须更新其IP租约。DHCP客户机启动时和IP租约期限过一半时,DHCP客户机都会自动向DHCP服务器发送更新其IP租约的信息。

2 安装配置DHCP服务端

2.1 安装DHCPD主程序

yum install dhcp

2.2 配置DHCPD主配置文件

vim /etc/dhcp/dhcpd.conf

# 分配的IP默认租期时间
default-lease-time 864000;
# 分配的IP最大租期时间,到了该时间会客户端还没过来续租将回收
max-lease-time 864000;
# 允许接收客户端使用bootp协议请求
allow bootp;
# 允许开机引导DHCP,PXE启动用
allow booting;
# 关闭动态DNS的更新
ddns-update-style none;
# 当收到客户端发送的DHCP REQUEST中的IP不是DHCP服务器自身分配出去的IP时,拒绝请求,而不是不响应客户端请求,间接导致客户端无法获取到IP,当客户端收到服务器的拒绝请求后会重新发送DHCP RECOVERY请求。
authoritative;
# 配置分配的网段
subnet 10.0.5.0 netmask 255.255.255.0 {
 # 分配的IP地址段
 range   10.0.5.10 10.0.5.200;
 # 子网掩码
 option subnet-mask 255.255.255.0;
 # 广播地址
 option broadcast-address 10.0.5.255;
 # 默认路由
 option routers 10.0.5.1;
 # 主机名后缀,非必须
  option domain-name "ops.cn";
 # DNS服务器,多个IP使用逗号分隔
 option domain-name-servers 10.0.1.1,114.114.114.114;
 # tftp服务器IP,用于PXE安装系统
 next-server 10.0.1.12;
 # tftp服务器引导的文件
 filename "/pxelinux.0";
 # 手动分配客户端IP,整个dhcpd.conf文件里host的名字不能一样
 host test{
 # 客户端网卡MAC地址
 hardware ethernet 00:11:22:aa:bb:cc;
 # 分配给客户端的IP地址,可以不在range范围内
 fixed-address 10.0.5.5;
 }
}

2.3 启动DHCPD并加入开机自启动

/etc/init.d/dhcpd start

chkconfig dhcpd on

2.4 DHCPD文件说明

2.4.1 /var/lib/dhcpd/dhcpd.leases

已分配的客户端租期文件

2.5 DHCPD日志文件路径修改

dhcpd日志文件默认日志文件为/var/log/messages,如需修改dhcpd的日志文件路径,配置步骤如下:

vim /etc/dhcp/dhcpd.conf

添加如下内容:


log-facility local6;

vim /etc/rsyslog.conf

添加如下内容:


local6.* /var/log/dhcpd.log

修改如下内容:


*.info;mail.none;authpriv.none;cron.none**;dhcpd.none** /var/log/messages

重启dhcpd和rsyslog服务

/etc/init.d/dhcpd restart

/etc/init.d/rsyslog restart

3 DHCPD主从复制配置

3.1 主DHCPD配置

vim /etc/dhcp/dhcpd.conf

# 主从集群名称
failover peer "my" {
 # 声明角色
 primary;
 # 同步使用的IP
 address 10.0.1.130;
 # 同步使用的端口号
 port 647;
 # 对端使用的IP地址
 peer address 10.0.1.132;
 # 对端使用的端口号
 peer port 647;
 # 检测对端存活的失效时间
 max-response-delay 30;
 # 更新重发的最大次数
 max-unacked-updates 10;
 # 负载均衡失效的最大时间,若超过则负载均衡将关闭
 load balance max seconds 3;
 # 当主从连接失效后并经过mclt设置的时间后从机分配出去的ip将被回收,primary角色才能配置
 mclt 1800;
 # 主从负载均衡能力,取值范围为0-255,值为0(0/256=0%)即全部由从机器负责分配IP任务,值为128(128/256=50%),主从各负责一半分配ip任务,primary角色才能配置
 split 128;
 }
# 主从作用域
shared-network test {
 subnet 10.0.5.0 netmask 255.255.255.0 {
 pool {
 # 加入哪个主从集群
 failover peer "my";
 range 10.0.5.10 10.0.5.200;
 option subnet-mask 255.255.255.0;
 option broadcast-address 10.0.5.255;
 option routers 10.0.5.1;
 option domain-name "ops.cn";
 option domain-name-servers 10.0.1.1 114.114.114;
 default-lease-time 86400;
 max-lease-time 86400;
 }
 }
}

3.2 从DHCPD配置

vim /etc/dhcp/dhcpd.conf


failover peer "my" {
 secondary;
 address 10.0.1.132;
 port 647;
 peer address 10.0.1.130;
 peer port 647;
 max-response-delay 30;
 max-unacked-updates 10;
 load balance max seconds 3;
 }

subnet 10.0.5.0 netmask 255.255.255.0 {
 pool {
 failover peer "my";
 range 10.0.5.10 10.0.5.200;
 option subnet-mask 255.255.255.0;
 option broadcast-address 10.0.5.255;
 option routers 10.0.5.1;
 option domain-name "ops.cn";
 option domain-name-servers 10.0.1.1 114.114.114;
 default-lease-time 86400;
 max-lease-time 86400;
 }
}

4 故障记录

4.1 not authoritative for subnet

tail -f /var/log/messages

提示如下:

DHCPINFORM from 10.0.5.253 via eth0: not authoritative for subnet 10.0.5.0add the below to the first line of

解决方法:

vim /etc/dhcp/dhcpd.conf

全局或subnet里面添加


authoritative;

重启dhcpd

/etc/init.d/dhcpd restart

上一篇下一篇

猜你喜欢

热点阅读