centos搭建DHCP主、备服务器并实现故障转移

本文详细介绍了DHCP(Dynamic Host Configuration Protocol)的工作原理、好处及分配方式,包括租约过程的四个步骤。讲解了如何在Linux系统中配置DHCP服务,包括安装、关闭虚拟网卡、配置端口、设置开机自启动等。此外,还探讨了DHCP服务分配的信息类型,如IP地址、子网掩码、DNS等。最后,重点阐述了如何搭建DHCP高可用服务,通过配置文件展示了双机热备的实现,确保服务的连续性和可靠性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

DHCP工作原理、了解DHCP服务

DHCP概述

使用DHCP的好处

DHCP的分配方式

DHCP的租约过程

详细解释

DHCP服务器的配置

DHCP服务

分配的信息类型

DHCP配置

安装dhcp服务:

关闭virbr0虚拟网卡

DHCP 对应端口:

设置DHCP服务开机自启动

linux下DHCP配置:

搭建DHCP高可用服务

 DHCP-server-1高可用服务文件配置如下:

 DHCP-server-2高可用服务文件配置如下:


DHCP工作原理、了解DHCP服务

DHCP概述

DHCP(Dynamic Host Configuration Protocol)动态主机配置协议,是由Internet工作任务小组设计开发的专门用于为TCP/IP网络中的计算机自动分配TCP/IP参数的协议

使用DHCP的好处

  1. 减少管理员的工作量
  2. 避免输入错误的可能
  3. 避免IP地址冲突
  4. 当更改IP地址段时,不需要重新配置每个用户的IP地址
  5. 提高了IP地址的利用率
  6. 方便客户端的配置

DHCP的分配方式

(1)自动分配
分配到一个IP地址后永久使用
(2)手动分配
由DHCP服务器管理员专门指定IP地址
(3)动态分配
使用完后释放该IP,供其他客户机使用

DHCP的租约过程

客户机从DHCP服务器获得IP地址的过程称为DHCP的租约过程
分为四个步骤
1.客户端在网络中搜索服务器发送DHCP Discover
2.服务器向客户端响应服务广播DHCP Offer
3.客户端向目标服务器发出服务请求发送DHCP Request
4.服务器向客户端提供服务DHCP ACK

详细解释

(1)客户机请求IP地址
当一个DHCP客户机启动时,客户机还没有IP地址,所以客户机要通过DHCP获取一个合法的地址
此时DHCP客户机以广播方式发送DHCP Discover发现信息来寻找DHCP服务器

(2)服务器响应
DHCP服务器接收到来自客户机请求IP地址的信息时,在自己的IP地址池中查找是否有合法的IP地址提供给客户机
如果有,DHCP服务器将此IP地址做上标记,加入到DHCP Offer的消息中,然后广播一则DHCP Offer的消息中,然后广播一则DHCP Offer消息

(3)客户机选择IP地址
DHCP客户机从接收到的第一个DHCP Offer消息中提取IP地址,发出IP地址的DHCP服务器将该地址保留,这样该地址就不能再分配给另一个DHCP客户机

(4)服务器确定租约
DHCP服务器接收到DHCP Request消息后,以DHCP ACK消息的形式向客户机广播成功确认,该消息包含有IP地址的有效租约和其他可配置的信息
当客户机收到DHCP ACK消息时,配置IP地址,完成TCP/IP的初始化

(5)重新登录
DHCP客户机每次重新登录网络时,不需要再发送DHCP Discover信息,而是直接发送包含前一次所分配的IP地址的DHCP Request请求信息

(6)更新租约
当DHCP服务器向客户机出租的IP地址租期达到50%时,就需要更新租约
客户机直接向提供租约的服务器发送DHCP Request包,要求更新现有的地址租约

DHCP服务器的配置

DHCP服务

为大量客户机自动分配地址,提供集中管理
减轻管理和维护成本、提供网络配置效率

分配的信息类型

网卡的IP地址、子网掩码
对应的网络地址、广播地址
默认网关地址
DNS服务器地址

DHCP配置

安装dhcp服务:

[root@dns admin]# yum -y install dhcp

[root@dns admin]# rpm -ql dhcp.x86_64     #查看主要的DHCP服务安装包

/etc/dhcp

/etc/dhcp/dhcpd.conf                      # DHCP的配置文件

/etc/dhcp/dhcpd6.conf

.......

/usr/sbin/dhcpd                           # DHCP的服务器端的主进程

/usr/sbin/dhcrelay                        # DHCP的中继服务器的进程

/var/lib/dhcpd/dhcpd.leases               #DHCP的租约记录

关闭virbr0虚拟网卡

centos7上有virbr0虚拟网卡

[root@cos7:~ ]# yum list libvirt* libvirt-daemon

[root@cos7:~ ]# yum remove libvirt-daemon    

#重启即可,不重启dhcp服务会报错;

如果关不掉virbr0执行 

 [root@cos7:~ ]#ifconfig virbr0 down        

DHCP 对应端口:

服务器端 UDP 67、客户端 UDP 68

防火墙添加服务端口

[root@dns admin]# firewall-cmd --permanent --add-port=67/udp #防火墙添加67/udpd端口

[root@dns admin]#firewall-cmd –reload #重新加载防火墙配置,不然新添加的规则不生效;

设置DHCP服务开机自启动

[root@dns admin]# systemctl enable dhcpd

linux下DHCP配置:

DHCP服务的配置文件都放在/etc/dhcp目录下,主配置文件为dhcpd.conf。

可以将/usr/share/doc/dhcp-4.2.5/dhcpd.conf.sampleDHCP配置文件模板复制到配置文件目录下,并覆盖dhcpd.conf文件,即可获得主配置文件。

[root@dns admin]#cp /usr/share/doc/dhcp-4.2.5 /dhcpd.conf.sample  /etc/dhcp/dhcpd.conf

                #重新覆盖配置文件

[root@dns admin]#vim /etc/dhcp/dhcpd.conf           #修改主配置文件
# dhcpd.conf

#

# Sample configuration file for ISC dhcpd

#

# option definitions common to all supported networks... #全局配置区域;

ignore client-updates;                    #忽略客户端更新;

option domain-name "Moutai.com.cn";       #DNS的名称‘’

option domain-name-servers 10.0.16.136,10.0.16.137;    #DNS地址多个DNS中间用逗号隔开;

default-lease-time 600;                #地址池租约时间单位是秒;

max-lease-time 3000;                   #地址池租约时间单位是秒;

log-facility local7;                   #日志文件存放位置;

option ip-forwarding no;               #禁用ip转发;

subnet 10.152.187.0 netmask 255.255.255.0 {     

}   #DHCP服务器基于本机的网卡,做一个地址申明,有几张业务网卡就做几个地址申明;


subnet 192.168.20.0 netmask 255.255.255.0 {  #地址申明;

range 192.168.20.1 192.168.20.253;  #地址池范围;

option routers 192.168.20.254;   #该地址段的网关;

}

# will still come from the host declaration.  #该区域可做地址的特殊绑定;

host passacaglia {  #host 后与{前,这个字段可写主机名称;

hardware ethernet 00:c0:5d:bd:95;# hardware ethernet后做主机唯一的申明,即Mac地址大小写都可以;

fixed-address 10.0.20.91; #主机需要的特殊地址;

}
根据自己的需求自行对配置文件进行修改

dhcpd配置文件修改完成后需要重启DHCP服务,使得配置文件生效

[root@dhcp-2 ~]# systemctl restart dhcpd

如果有报错信息,先查看一下dhcpd的状态,根据dhcpd的服务状态去判断是配置文件哪里报错

[root@dns admin]# systemctl status dhcpd    #查看dhcp服务状态

搭建DHCP高可用服务

具体的配置文件可参考我的,再根据自己的需求自行修改即可,这里有一个问题需要特别注意的是两台服务器做高可用服务,需要两台服务器的IP地址在同一个网段并且可以互相访问到对方的647/tcp端口。

 DHCP-server-1高可用服务文件配置如下:

#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.example
#   see dhcpd.conf(5) man page
#

local-address 10.250.104.108;
ddns-update-style none;
ignore client-updates;
option domain-name-servers 10.0.16.136, 10.0.16.137;
default-lease-time 28800;
max-lease-time 28801;
log-facility local7;
option ip-forwarding on;
option serverip code 43 = string;

failover peer "dhcp-failover" { # 声明failover的名字
  primary;                      # 指定本服务器为Master
  address 10.250.104.108;       # 监听failover消息的ip地址
  port 519;                     # 本地监听failover消息的TCP端口
  peer address 10.250.104.109;  # 指定Slave服务器的ip地址
  peer port 520;                # Slave服务器上的监听failover消息的TCP端口
  max-response-delay 5;         # 同步信息最大延迟时间
  max-unacked-updates 100;      # 在收到对端BNDACK 消息之前最大可发送BNDUPD 消息的数量
  load balance max seconds 3;   # 负载平衡最大时间3秒
  mclt 600;                     # 节点在互相通知之前更新一个租约的时间,ISC建议是600
  split 128;                    # 本节点分担50%的负荷
}

# No service will be given on this subnet, but declaring it helps the
# DHCP server to understand the network topology.

subnet 10.250.104.0 netmask 255.255.255.0 {
}


subnet 10.132.3.0 netmask 255.255.255.0 {
  option routers 10.132.3.254;
  option subnet-mask 255.255.255.0;
  pool {
    failover peer "dhcp-failover";
    range 10.132.3.11 10.132.3.239;
  }
}

 DHCP-server-2高可用服务文件配置如下:

#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.example
#   see dhcpd.conf(5) man page
#

local-address 10.250.104.109;
ddns-update-style none;
ignore client-updates;
option domain-name-servers 10.0.16.136, 10.0.16.137;
default-lease-time 7400;
max-lease-time 7401;
log-facility local7;
option ip-forwarding on;
option serverip code 43 = string;

failover peer "dhcp-failover" { # 声明failover的名字
 secondary;                     # 指定本服务器为Auxiliary
 address 10.250.104.109;        # 监听failover消息的ip地址
 port 520;                      # 本地监听failover消息的TCP端口
 peer address 10.250.104.108;   # 指定Slave服务器的ip地址
 peer port 519;                 # Slave服务器上的监听failover消息的TCP端口
 max-response-delay 5;          # 同步信息最大延迟时间
 max-unacked-updates 100;       # 在收到对端BNDACK 消息之前最大可发送BNDUPD 消息的数量
 mclt 600;                     # 节点在互相通知之前更新一个租约的时间,ISC建议是600
 load balance max seconds 3;
}


# No service will be given on this subnet, but declaring it helps the
# DHCP server to understand the network topology.

subnet 10.250.104.0 netmask 255.255.255.0 {
}

# VN_Office_ZJ3CJ

subnet 10.132.3.0 netmask 255.255.255.0 {
  option routers 10.132.3.254;
  option subnet-mask 255.255.255.0;
  pool {
    failover peer "dhcp-failover";
    range 10.132.3.11 10.132.3.239;
  }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

centreon~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值