Linux配置DHCP服务

341 阅读4分钟

1. DHCP的含义和用途

  • DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,使用UDP协议工作
  • 主要有两个用途:
    • 给内部网络或网络服务供应商自动分配IP地址
    • 给用户或者内部网络管理员作为对所有计算机作中央管理的手段
  • 使用DHCP的好处:
    • 减少管理员的工作量
    • 避免输入错误的可能
    • 避免IP地址冲突
    • 当更改IP地址段时,不需要重新配置每个用户的IP地址
    • 提高了IP地址的利用率
    • 方便客户端的配置

2. 工作原理

2.1 DHCP的典型应用模式如下

在网络中架设一台专用的DHCP服务器,负责集中分配各种网络地址参数(主要包括IP地址、子网掩码、广播地址、默认网关地址、DNS服务):其他主机作为DHCP客户机,将网卡配置为自动获取地址,即可与DHCP服务器进行通信,完成自动配置过程。

  • DHCP协议采用UDP作为传输协议,主机发送请求消息到DHCP服务器的67号端口,DHCP服务器回应应答消息给客户端的68号端口

2.2 DHCP的TP地址自动获取工作原理:

image.png

  • 第一步:客户端在网络中搜索服务器,

客户端通过广播发送DHCP_Discover 报文寻找服务器端

  • 第二步:服务器向客户端响应服务

服务器端通过单播发送DHCP_Offer报文向客户端提供IP地址等网络信息,从IP地址池中挑选一个尚未分配的 IP地址分配给客户端

华为的路由是使用的单播

思科、Windows、Linux使用的是广播

  • 第三步:客户端向服务器发出服务请求。

如果有多台DHCP服务器向该客户端发来DHCP_offer报文,客户端只接受第一个收到的DHCP_offer报文并提取IP地址,然后客户端通过广播发送DHCP-Request。

报文告知服务器端本地选择使用该IP地址

  • 第四步:服务器向客户端提供服务

服务器通过单播发送DHCP_ACK报文告知客户端IP地址是合法可用的,并在选项字段中增加IP地址的使用租期信息

  • 重新登录

DHCP 客户机每次重新登录网络时,不需要再发送DHCP_Discover信息,而是直接发送包含前.次所分配的IP地址的DHCP_Request请求信息。

  • 更新租约

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

3. 配置DHCP服务器

dhcp服务器可以使用路由器和主机服务器

3.1服务配置准备工作

  • 关闭防火墙
[root@localhost ~]#systemctl stop firewalld
  • 关闭核心防护
[root@localhost ~]#setenforce 0
  • 挂载光盘
[root@localhost ~]#mount /dev/sr0 /mnt/
  • 下载dhcp服务
[root@localhost ~]#yum -y install dhcp
[root@localhost ~]#rpm -qa | grep dhcp
`dhcp-4.2.5-83.el7.centos.1.x86_64
 dhcp-common-4.2.5-83.el7.centos.1.x86_64
 dhcp-libs-4.2.5-83.el7.centos.1.x86_64`

3.2 实验配置修改(服务端)

  • 主要配置文件: /etc/dhcp/dhcpd.conf

查看/etc/dhcp/dhcpd.conf文件,里面说让区查看/usr/share/doc/dhcp*/dhcpd.conf.example这个文件,所以要将hcpd.conf.example里的内容复制到/etc/dhcp/dhcpd.conf中

image.png

  • 复制/usr/share/doc/dhcp-4.2.5(版本不唯一)/dhcpd.conf.example到/etc/dhcp/dhcpd.con并覆盖
[root@localhost ~]#cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
  • 配置/etc/dhcp/dhcpd.conf文件
[root@localhost ~]#vim /etc/dhcp/dhcpd.conf
#设置全局配置参数
default-lease-time 21600;      #默认租约为 6 小时,单位为秒
max-lease-time 43200; 	       #最大租约为 12 小时,单位为秒
option domain-name "benet.com";  #指定默认域名
option domain-name-servers 202.106.0.20, 202.106.148.1;   #指定 DNS 服务器地址
ddns-update-style none;    #禁用 DNS 动态更新

#subnet网段声明(作用于整个子网段,部分配置参数优先级高于全局配置参数)
subnet 192.168.45.0 netmask 255.255.255.0  #声明要分配的网段地址 {
  range 192.168.45.10 192.168.45.20;#设置地址池
  option routers 192.168.45.254;#指定默认网关地址
}

#host主机声明(给单机分配固定的IP地址)
host hostname {		#指定需要分配固定IP地址的客户机名称
  hardware ethernet 00:0C:29:3A:F5:6F;	 #指定该主机的 MAC地址
  fixed-address 192.168.45.18;	   #指定保留给该主机的 IP地址
}

image.png

  • 启动dhcp服务
[root@localhost ~]#systemctl enable dhcpd   ##开机自启dhcp服务
[root@localhost ~]#systemctl start dhcpd    ##开启dhcp服务
  • 配置网卡(动态获取)
[root@localhost ~]#vim /etc/sysconfig/network-scripts/ifcfg-ens33 
BOOTPROTO=dhcp   ##静态IP
ONBOOT=yes   ##开启网卡
  • 在VMware中以便实验使用仅主机模式,把虚拟网络编辑器中仅主机模式网卡的使用本地DHCP服务将IP的地址分配给虚拟机去掉,这样就不会影响到实验的正常进行

image.png

  • 服务器和客户机要使用同一个网卡,在同一网段

image.png

3.3 验证

3.3.1 Windows系统

  • 选择自动获取IP地址

image.png

  • 重新启动网卡(先禁用,再启动)

image.png

image.png

  • **查看状态 **

image.png

3.3.2 Linux客户端使用DHCP动态获取IP

  • 配置网卡信息(客户端)
[root@localhost ~]#vim /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO=dhcp
ONBOOT=yes
[root@localhost ~]#ifdown ens33;ifup ens33  ##重启网卡

image.png

3.3.3 给单机分配固定的IP地址(Windows)

C:\Users\can>ipconfig /renew  ##更新IP地址

image.png