Linux网络之DHCP配置

488 阅读7分钟

1.DHCP

一、简介

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)通常被应用在大型的局域网络环境中,主要作用是集中的管理、分配IP地址,使网络环境中的主机动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。

DHCP协议采用客户端/服务器模型,主机地址的动态分配任务由网络主机驱动。当DHCP服务器接收到来自网络主机申请地址的信息时,才会向网络主机发送相关的地址配置等信息,以实现网络主机地址信息的动态配置。

DHCP具有功能

  1. 保证任何IP地址在同一时刻只能由一台DHCP客户机所使用。

  2. DHCP应当可以给用户分配永久固定的IP地址。

  3. DHCP应当可以同用其他方法获得IP地址的 主机共存(如手工配置IP地址的主机)。

  4. DHCP 服务器应当向现有的BOOTP 客户端提供服务。

DHCP好处

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

DHCP分配功能

DHCP有三种机制分配IP地址:

  1. 自动分配方式(Automatic Allocation),DHCP服务器为主机指定一个永久性的IP地址,一旦DHCP客户端第一次成功从DHCP服务器端租用到IP地址后,就可以永久性的使用该地址。

  2. 动态分配方式(Dynamic Allocation),DHCP服务器给主机指定一个具有时间限制的IP地址,时间到期或主机明确表示放弃该地址时,该地址可以被其他主机使用。

  3. 手工分配方式(Manual Allocation),客户端的IP地址是由网络管理员指定的,DHCP服务器只是将指定的IP地址告诉客户端主机。

三种地址分配方式中,只有动态分配可以重复使用客户端不再需要的地址。

DHCP消息的格式是基于BOOTP(Bootstrap Protocol)消息格式的,这就要求设备具有BOOTP中继代理的功能,并能够与BOOTP客户端和DHCP服务器实现交互。BOOTP中继代理的功能,使得没有必要在每个物理网络都部署一个DHCP服务器。RFC 951和RFC 1542对BOOTP协议进行了详细描述。

二.DHCP的租约过程

① 客户机从DHCP服务器获得IP地址的过程称为DHCP的租约过程

② 分为四个步骤(华为服务器中依次是广播→单播→广播→单播)

(1)客户端在网络中搜索服务器

(2)服务器向客户端响应服务

(3)客户端向目标服务器发出服务请求

(4)服务器向客户端提供服务

 

详情:

Snipaste_2022-03-25_16-11-51.png 1.客户机请求IP地址

• 当一个DHCP客户机启动时,客户机还没有IP地址,所以客户机要通过DHCP获取一个合法的地址

• 此时DHCP客户机以广播方式发送DHCP Discover发现信息来寻找DHCP服务器

 

2.服务器响应

• DHCP服务器接收到来自客户机请求IP地址的信息时,在自己的IP地址池中查找是否有合法的IP地址提供给客户机

• 如果有,DHCP服务器将此IP地址做上标记,加入到DHCP Offer的消息中,然后广播- -则DHCP Offer消息

 

3.客户机选择IP地址

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

 

Snipaste_2022-03-25_16-12-18.png 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服务器分配地址

实验目的:

将Linux虚拟机设置成DHCP服务器,自动分配IP地址给Windows10 虚拟机。

实验步骤:

  • Linux虚拟机关闭防火墙和selinux。

  • 安装 dhcp 软件包,并查看配置文件。

  • 将Linux虚拟机的网络模式改成仅主机模式。修改网卡配置文件,之后重启网络服务。

  • 编辑dhcp服务的配置文件/etc/dhcp/dhcpd.conf,设置网段、地址池、网关地址。之后重启dhcp服务。

  • 验证Windows10虚拟机虚拟机能否获取DHCP服务器分配的IP地址。

实验实例:

1.关闭linux虚拟机防火墙

 [root@localhost ~]# systemctl stop firewalld.service 
 [root@localhost ~]# setenforce 0

2.安装 dhcp 软件包,并查看配置文件。

[root@localhost ~]# yum install dhcp -y   //安装dhcp

Snipaste_2022-03-25_16-22-53.png

3.将Linux虚拟机设为主机模式

Snipaste_2022-03-25_16-23-55.png

虚拟机上要将本地DHCP服务勾选去掉:

Snipaste_2022-03-25_16-26-59.png

  1. 修改网卡配置文件/etc/sysconfig/network-scripts/ifcfg-ens33,之后重启网络服务
 [root@localhost ~]# vim /sysconfig/net-scripts/ifcfg-ens33    //修改网卡配置文件
 
 [root@localhost ~]# systemctl restart network                 //重启网络服务

Snipaste_2022-03-25_16-30-25.png

Snipaste_2022-03-25_16-31-50.png

Snipaste_2022-03-25_16-32-44.png

5.编辑dhcp服务的配置文件/etc/dhcp/dhcpd.conf,设置网段(要和虚拟网络编辑器中的保持一致)、地址池、网关地址。之后重启dhcp服务

 # 将模板文件复制为配置文件
 [root@localhost ~]# vim /etc/dhcp/dhcpd.conf #可以在这个文件找到dhcp模板路径
 [root@localhost ~]# cp /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf
 cp:是否覆盖"/etc/dhcp/dhcpd.conf"? y
 ​
 # 编辑dhcp配置文件
 [root@localhost ~]# vim /etc/dhcp/dhcpd.conf
  ------------------------------------
 subnet 192.168.48.0 netmask 255.255.255.0 {     //设置子网IP、子网掩码
   range 192.168.48.10  192.168.48.50;          //设置地址池
   option routers 192.168.48.1;                 //设置网关地址
   DNS=114.114.114.114;                   //dns可以不设
 ​
 # 重启dhcp服务
 [root@localhost ~]# systemctl restart dhcpd     //重启dhcp服务
 [root@localhost ~]# systemctl status dhcpd      //查看dhcp状态,已启动

Snipaste_2022-03-25_16-37-55.png

Snipaste_2022-03-25_16-35-23.png

Snipaste_2022-03-25_16-40-25.png

注意!!!行尾一定要加;号 Snipaste_2022-03-25_16-45-17.png

Snipaste_2022-03-25_16-49-54.png

6.验证Windows10虚拟机虚拟机能否获取DHCP服务器分配的IP地址

Windows10虚拟机,将网络类型修改成“仅主机模式”。

释放IP地址,之后重新获取IP地址。

 windows命令:
 ipconfig                #查看网卡信息
 ipconfig /release       #释放地址
 ipconfig /renew         #重新获取地址
 ipconfig /all           #可以看到详情信息

Snipaste_2022-03-25_16-51-37.png

Snipaste_2022-03-25_16-52-20.png

五、DHCP中继原理

当企业的内部网络规模较大时,通常被划分为多个不同的子网,网络内配置了VLAN,网络内配置了VLAN,VLAN能隔离广播,而DHCP协议使用广播。

DHCP服务器在VLAN 100中,就只有VLAN 100内的客户机能从此内获得IP地址。

两种解决办法:

  • 为每个网段安装一台DHCP服务器,但这种方式存在资源上的浪费,而且不利于集中管理。
  • 在连接不同网段的设备上开启DHCP中继功能,将DHCP这种特殊的广播信息在VLAN之间转发,让其他VLAN的客户机也能从DHCP服务器获得IP地址。