Linux教程

Blog.029 Linux 中的 DHCP 原理与配置

本文主要是介绍Blog.029 Linux 中的 DHCP 原理与配置,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

本章目录

 

 

 

 

1. DHCP 服务
  1.1 DHCP 服务概述
  1.2 DHCP 的分配方式
  1.3 DHCP 的租约过程
2. 使用 DHCP 动态配置主机地址
3. 配置 DHCP 服务器
  3.1 安装 DHCP 服务器软件
  3.2 建立主配置文件
  3.3 启动 DHCP 服务
4. DHCP 网络分配实验

 

 

 

 

1. DHCP 服务
  1.1 DHCP 服务概述

    DHCP(动态主机配置协议)是一个局域网的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。

    DHCP 的优点:

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


  1.2 DHCP 的分配方式

    在 DHCP 的工作原理中, DHCP 服务器提供了三种 IP 地址分配方式:
    自动分配(Automatic Allocation)、手动分配和动态分配(Dynamic Allocation)。

  • 自动分配:当DHCP 客户机第一次成功地从DHCP 服务器获取到一个IP 地址后,就永久地使用这个 IP 地址。
  • 手动分配:由 DHCP 服务器管理员专门指定 IP 地址。
  • 动态分配:当 DHCP 客户机第一次从 DHCP 服务器获取到 IP 地址后,并非永久地使用该地址,而是在每次使用完后,DHCP 客户机就会释放这个 IP 地址,供其他客户机使用。


  1.3 DHCP 的租约过程

    客户端从 DHCP 服务器获取 IP 地址的过程称之为 DHCP 租约过程,此过程主要分为以下四个步骤:

  • 客户端在网络中搜索服务器;
  • 服务器向客户端响应服务;
  • 客户端向服务器发出服务请求;
  • 服务器向客户端提供服务。

 

 

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


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


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


    (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 包,要求更新现有的地址租约。


2. 使用 DHCP 动态配置主机地址

    使用 DHCP 服务可以为大量客户机自动分配地址并提供集中管理,减轻管理和维护成本、提高网络配置效率。

    DHCP 服务可分配的地址信息主要包括:

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


3. 配置 DHCP 服务器
  3.1 安装 DHCP 服务器软件

  • CentOS镜像:dhcp-4.2.5-47.el7.centos.x86_ 64 .rpm

  3.2 建立主配置文件

  • /etc/dhcpd.conf的文件构成:

 

 

 

  • 声明:用来描述 dhcpd 服务器中对网络布局的划分,是网络设置的逻辑范围。较常见的声明是 subnet、host,其中 subnet 声明用来约束一个网段,host 声明用来约束一台特定的主机。
  • 参数:由配置关键字和对应的值组成,总是以“;”(分号)结束,一般位于指定的声 明范围之内,用来设置所在范围的运行特性(如默认租约时间、最大租约时间等)。
  • 选项:由“option”引导,后面跟具体的配置关键字和对应的值,也是以“;”结束, 用于指定分配给客户机的各种地址参数(如默认网关地址、子网掩码、DNS 服务器地址等)。

 

  3.3 启动 DHCP 服务

1 启动服务
2 
3 [root@localhost ~]# systemctl start dhcpd
4 [root@localhost ~]# netstat -anpu | grep ":67"
5 udp    0    0 0.0.0.0:67    0.0.0.0:*    5684/dhcpd
6 
7 查看租约文件 /var/lib/dhcpd/dhcpd.lease
8 
9 [root@localhost ~]# less /var/lib/dhcpd/dhcpd.leases 

 

4. DHCP 网络分配实验

    要求使用 eNsp + VMware 完成以下实验:

  • PC1、PC2 和 PC3 可以自动获取ip地址,DHCP 服务器为 Linux 主机
  • 给 VMware 内的 win10 主机配置 DHCP 固定分配ip为:192.168.80.188

 

    ①:设置虚拟机和虚拟机网关为仅主机模式

 

 


    ②:设置宿主机(本机)的网络设置

 

 

    ③:配置 Linux 虚拟机的 IP 地址并连接 XShell

 


    ④:配置 eNsp 中的 cloud

 


    ⑤:配置 eNsp 的交换机

 

 1 [Huawei]un in en
 2 Info: Information center is disabled.
 3 [Huawei]
 4 [Huawei]sysname SW2
 5 [SW2]v b 10 20 100
 6 Info: This operation may take a few seconds. Please wait for a moment...done.
 7 [SW2]int e0/0/2
 8 [SW2-Ethernet0/0/2]p l a
 9 [SW2-Ethernet0/0/2]p d v 10
10 [SW2-Ethernet0/0/2]int e0/0/3
11 [SW2-Ethernet0/0/3]p l a
12 [SW2-Ethernet0/0/3]p d v 20
13 [SW2-Ethernet0/0/3]int e0/0/4
14 [SW2-Ethernet0/0/4]p l a
15 [SW2-Ethernet0/0/4]p d v 100
16 [SW2-Ethernet0/0/4]int e0/0/5
17 [SW2-Ethernet0/0/5]p l a
18 [SW2-Ethernet0/0/5]p d v 100
19 [SW2-Ethernet0/0/5]int e0/0/1
20 [SW2-Ethernet0/0/1]p l t
21 [SW2-Ethernet0/0/1]p t a v a

 

 1 [Huawei]un in en
 2 Info: Information center is disabled.
 3 [Huawei]sysname SW1
 4 [SW1]v b 10 20 100
 5 Info: This operation may take a few seconds. Please wait for a moment...done.
 6 [SW1]int g0/0/1
 7 [SW1-GigabitEthernet0/0/1]p l t
 8 [SW1-GigabitEthernet0/0/1]p t a v a
 9 [SW1-GigabitEthernet0/0/1]int vlanif 10
10 [SW1-Vlanif10]ip add 192.168.10.254 24
11 [SW1-Vlanif10]int vlanif 20
12 [SW1-Vlanif20]ip add 192.168.20.254 24
13 [SW1-Vlanif20]int vlanif 100
14 [SW1-Vlanif100]ip add 192.168.80.254 24

 

    ⑥:在 Linux 虚拟机中 Ping 测试

 


⑦:DHCP 安装以及复制配置文件

  • 在虚拟机中查看 dhcp 是否安装,如未安装则输入命令 yum -y install dhcp;
  • cd /etc/dhcp 查看配置文件,发现内容为空,直接复制配置文件;
  • 输入命令:cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf,提示覆盖文件时输入“y”,复制成功。


⑧:修改 DHCP 配置文件

  • 输入:vim dhcpd.conf,修改 DHCP 配置文件:
  • 自定义域名名称和DNS;
  • 声明网段,包含:IP 地址子网掩码、地址池、网关


⑨:开启 DHCP 服务并关闭防火墙

  • setenforce 是 Linux 的 selinux 防火墙配置命令, 执行 setenforce 0 表示关闭selinux防火墙;
  • systemctl start dhcpd 开启 DHCP 服务;
  • systemctl status dhcpd 查看 DHCP 服务状态;
  • systemctl stop firewalld.service;
  • setenforce 0 关闭防火墙。


⑩:将 eNSP 的主机都设置为 DHCP 并查看是否能够自动获取到 IP 地址
⑪:在ensp配置DHCP中继服务
⑫:再次查看PC2与PC3是否能够获取到IP地址
⑬:测试win10虚拟机,看是否也能够自动获取IP地址
⑭:host主机声明(给单机分配固定的IP地址)——指定IP设置(win10虚拟机操作)

 

 

 

 

-

 

这篇关于Blog.029 Linux 中的 DHCP 原理与配置的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!