dhcp

作者: 路破格 | 来源:发表于2020-04-25 21:55 被阅读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

    相关文章

      网友评论

          本文标题:dhcp

          本文链接:https://www.haomeiwen.com/subject/fdulwhtx.html