centos高可用dhcp双机热备

文章目录

  • 1 DHCP服务简介
  • 2使用DHCP的优点
  • 3 DHCP的工作原理
  • 4 dhcp双机架构
  • 5 安装
  • 6 配置
    • 6.1 ntpd
    • 6.2 配置dhcp
      • 6.2.1 配置主dhcp
      • 6.2.2 配置从dhcp
    • 6.3关闭防火墙
    • 6.4 关闭selinux
  • 7 启动
  • 8 配置客户端
    • 8.1 使用dhclient
    • 8.2 修改网卡配置
  • 9 参考文档

1 DHCP服务简介

DHCP(Dynamic Host Configuration Protocol),动态主机配置协议,DHCP 协议主要是用来自动为局域网中的客户机分配 TCP/IP 信息的网络协议,并完成每台客户机的 TCP/IP 协议配置。当我们将局域网中客户机IP地址设置为动态获取方式时,DHCP服务器就会根据DHCP协议给客户机自动分配IP地址,使得客户机能够使用这个IP地址。

DHCP的前身是BOOTP协议(Bootstrap Protocol),BOOTP被创建出来为连接到网络中的设备自动分配地址,后来被DHCP取代了,DHCP比BOOTP更加复杂,功能更强大。所有的IP网络参数(包括IP地址、网关和DNS服务器地址等)都由DHCP服务器集中管理,并负责处理客户端的DHCP要求;而客户端则会使用从服务器分配的IP网络参数。

2使用DHCP的优点

减少管理员的工作量;
避免IP冲突;
减少收入错误的可能;
能方便地更改网络的IP网段;
移动计算机后不用重新配置网络信息;
提高IP地址的利用率。

3 DHCP的工作原理

centos高可用dhcp双机热备_第1张图片
第1步:(请求DHCP服务器)

客户端在局域网广播发送 DHCP discovery包,寻找DHCP服务器,即向255.255.255.255发送特定的广播信息,每一台安装了TCP/IP协议的主机都会有这个广播地址,但只有DHCP服务器才会做出回应。

第2步:(提供IP地址)

服务器收到DHCP discovery包后,向客户机发送一个包含分配的IP地址和其它设置的 DHCP offer 包,目的告诉客户机,我能为你提供IP地址。

第3步:(选择IP地址)

客户机收到DHCP offer提供信息包后,(如果客户机在一段时间内没有接收到DHCP服务器发出dhcp offer包,则会重新发送dhcp discover。如果广播区域内不止一台dhcp服务器,则由客户机决定使用哪个)客户机选择第一个接收到的提供信息包,以广播的方式再发送一个DHCP request请求信息包,客户机向服务器请求IP地址。

第4步:(IP地址提供确认)

服务端收到客户机回应的DHCP request 请求信息包之后,便向客户机发送一个DHCP ack 确认信息包,告诉客户机可以使用它提供的IP地址。

第5步:(重新登录)

以后DHCP客户机每次使用此IP地址时,就不需要再发送DHCP discovery包了,而是直接发送一个包含前一次所分配的IP地址的DHCP request请求信息。当DHCP服务器收到这一信息以后,它会继续让客户机使用此IP地址,并回答一个DHCP ack确认信息。如果此IP地址已无法再分配给原来的客户机使用时,则DHCP服务器给客户机回答一个DHCP nack否认信息。当原来的客户机收到此DHCP nack否认信息后,它就必须重新发送DHCP discovery寻找信息来请求新的IP地址。

第6步:(更新租约)

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

4 dhcp双机架构

IP dhcpd CentOS 默认主从
172.16.159.142 isc-dhcpd-4.1.1-P1 CentOS release 6.6 (Final) primary
172.16.159.143 isc-dhcpd-4.1.1-P1 CentOS release 6.6 (Final) secondary

5 安装

安装dhcp

# yum -y install dhcp

6 配置

6.1 ntpd

需要保持172.16.159.142,与172.16.159.143时间一致。请参考《Keepalived + ntp高可用时间同步服务器》:https://blog.csdn.net/CleverCode/article/details/101017183
定时任务更新时间

[root@localhost etc]# crontab -l
0 * * * * /usr/sbin/ntpdate 172.16.159.140
[root@localhost etc]#

6.2 配置dhcp

6.2.1 配置主dhcp

在172.16.159.142上面
vi /etc/dhcp/dhcpd.conf

# dhcpd.conf
#
# Sample configuration file for ISC dhcpd
#

# dhcp不会自动更新dns服务器
ddns-update-style none;

# 默认租约时间。客户机通过DHCP获取IP后,这个IP使用时间是多久。单位秒
default-lease-time 7200;

# 最大租约时间。分钟
max-lease-time 14400;

# 默认dns域名称。
option domain-name "clevercode.com";

failover peer "dhcp" { 
     # 是主服务器还是辅助服务器
     primary;    

     #本地监听failover的IP
     address 172.16.159.142; 

     #本地监听failover的端口
     port 520; 

     #secondary服务器的IP 
     peer address 172.16.159.143; 

     #secondary服务的监听端口
     peer port 519;      

     #同步信息最大时间延迟
     max-response-delay 60;      

     #在未收到 PARTNER 回复时,BNDUPD 消息的最多重发次数
     max-unacked-updates 10; 

     #Maximum Client Lead Time. 在灾备方案中,该时间延迟保证 PARTNER 上的 IP 租约已经过期。
     #该参数只能定义在主服务器中。
     mclt 7200; 


     #主辅服务器的地址分割,通常是各一半                       
     split 128;  

     #关于负载均衡的参数                      
     load balance max seconds 3;        
} 

#DHCP作用域
subnet 172.16.159.0 netmask 255.255.255.0 
{ 
   #设置路由器的IP(网关)
   option routers 172.16.159.2;       

   #DNS
   option domain-name-servers 172.16.159.140,114.114.114.114;  

   pool { 

      failover peer "dhcp"; 

      # 地址池范围
      range 172.16.159.10 172.16.159.240; 

      #failover不支持bootp客户端,必须拒绝
      deny dynamic bootp clients; 
   } 

   #指定MAC地址和IP地址的绑定
   host clevercode{
	 hardware ethernet 00:0C:29:DB:6F;
         # 保留地址必须是range范围内的
         fixed-address 172.16.159.101;
   }
} 


6.2.2 配置从dhcp

在172.16.159.143上面
vi /etc/dhcp/dhcpd.conf

# dhcpd.conf
#
# Sample configuration file for ISC dhcpd
#

# dhcp会不会自动更新dns服务器
ddns-update-style none;

# 默认租约时间。客户机通过DHCP获取IP后,这个IP使用时间是多久。单位秒
default-lease-time 7200;

# 最大租约时间。分钟
max-lease-time 14400;

# 默认dns域名称。
option domain-name "clevercode.com";

failover peer "dhcp" { 
    # 是主服务器还是辅助服务器
    secondary;    

    #本地监听failover的IP
    address 172.16.159.143; 

    #本地监听failover的端口
    port 519; 

    #primary服务器的IP 
    peer address 172.16.159.142; 

    #primary服务的监听端口
    peer port 520;      

    #同步信息最大时间延迟
    max-response-delay 60;      

    #在未收到 PARTNER 回复时,BNDUPD 消息的最多重发次数
    max-unacked-updates 10; 

    #关于负载均衡的参数                      
    load balance max seconds 3;        
} 

#DHCP作用域
subnet 172.16.159.0 netmask 255.255.255.0 
{ 
  #设置路由器的IP(网关)
  option routers 172.16.159.2;       

  #DNS
  option domain-name-servers 172.16.159.140,114.114.114.114;  

  pool { 

     failover peer "dhcp"; 

     # 地址池范围
     range 172.16.159.10 172.16.159.240; 

     #failover不支持bootp客户端,必须拒绝
     deny dynamic bootp clients; 
  } 

  #指定MAC地址和IP地址的绑定
  host clevercode{
    hardware ethernet 00:0C:29:DB:6F;
        # 保留地址必须是range范围内的
        fixed-address 172.16.159.101;
  }
} 

6.3关闭防火墙

# /etc/init.d/iptables stop

6.4 关闭selinux

# setenforce 0
# sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config

如果,不关闭selinux。发现只能监听67端口。自己定义的520,519端口不会监听。关闭之后就发现有端口监听了。
centos高可用dhcp双机热备_第2张图片

7 启动

在172.16.159.142,172.16.159.143都启动dhcpd

/etc/init.d/dhcpd start

查看日志
cat /var/log/messages
centos高可用dhcp双机热备_第3张图片
查看监听端口
netstat -anp | grep dhcp
centos高可用dhcp双机热备_第4张图片

8 配置客户端

8.1 使用dhclient

在一个新开的机器上,使用dhclient获取ip
没有使用dhclient之前
centos高可用dhcp双机热备_第5张图片

# dhclient

可以看到分配了IP:172.16.159.125
centos高可用dhcp双机热备_第6张图片
查看dns配置
cat /etc/resolv.conf
centos高可用dhcp双机热备_第7张图片
在 172.16.159.142查看日志。可以看到四个过程(DHCPDISCOVER,DHCPOFFER,DHCPREQUEST,DHCPACK)

[root@localhost ~]# cat /var/log/messages

Sep 27 11:31:05 localhost dhcpd: DHCPDISCOVER from 00:50:56:34:c0:f4 via eth0
Sep 27 11:31:06 localhost dhcpd: DHCPOFFER on 172.16.159.125 to 00:50:56:34:c0:f4 via eth0
Sep 27 11:31:06 localhost dhcpd: DHCPREQUEST for 172.16.159.125 (172.16.159.142) from 00:50:56:34:c0:f4 via eth0
Sep 27 11:31:06 localhost dhcpd: DHCPACK on 172.16.159.125 to 00:50:56:34:c0:f4 via eth0
Sep 27 11:31:07 localhost named[34936]: client 172.16.159.125#34949: RFC 1918 response from Internet for 125.159.16.172.in-addr.arpa
[root@localhost ~]#

查看高可用,现在关闭172.16.159.142的dhcp

# /etc/init.d/dhcpd stop

在172.16.159.143查看日志,发现有failover信息

[root@localhost dhcp]# cat /var/log/messages

Sep 27 11:42:28 localhost dhcpd: peer dhcp: disconnected
Sep 27 11:42:28 localhost dhcpd: failover peer dhcp: I move from normal to communications-interrupted
[root@localhost dhcp]#

释放客户端ip信息

# 释放使用的ip信息
# dhclient -r

centos高可用dhcp双机热备_第8张图片
端重新获取ip。发现获取IP还是可以获取成功的。只是IP可能发生变化。

# dhclient 

centos高可用dhcp双机热备_第9张图片

8.2 修改网卡配置

主要是修改BOOTPROTO=dhcp
vi /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
HWADDR=00:50:56:34:C0:F4
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=dhcp

重启网卡,查看发现自动获取了IP
centos高可用dhcp双机热备_第10张图片

9 参考文档

《CentOS 7.3 搭建DHCP服务器》:
https://blog.51cto.com/13525470/2054001

《DHCP服务——服务端 和 客户端 配置》:
https://www.cnblogs.com/kelamoyujuzhen/p/9520341.html

《Centos6.5 DHCP配置》:
https://blog.csdn.net/qq_43419662/article/details/83099021

《 DHCP FailOver 主备故障转移+多网段网络环境系统部署》:
https://www.iyunv.com/thread-342324-1-1.html

《Linux 下 DHCP 服务器的灾难备份》:
https://www.oschina.net/question/12_10623

《Centos 7.4 DHCP 双机热备》:
https://download.csdn.net/download/xiaoke1234567890/10558996

你可能感兴趣的:(Linux常用软件安装与配置)