Linux-DHCP原理与配置

一、DHCP工作原理

   当局域网络中有大量的主机时,如果逐个为每一台主机手动设置 IP 地址、默认网关、DNS 服务器地址等网络参数,显然是一个费力也未必讨好的办法。而 DHCP(Dynamic HostConfiguration Protocol,动态主机配置协议)服务器的应用,正好可以解决这一问题。


1、了解DHCP服务


2、使用DHCP的好处


3、DHCP的分配方式

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

   ①自动分配是当 DHCP 客户机第一次成功地从 DHCP 服务器获取到一个 IP 地址后,就永久地使用这个 IP 地址。

  ②手动分配是由 DHCP 服务器管理员专门指定 IP 地址。

  ③动态分配是当 DHCP 客户机第一次从 DHCP 服务器获取到 IP 地址后,并非永久地使用该地址,而是在每次使用完后,DHCP 客户机就会释放这个 IP 地址,供其他客户机使用。


4、DHCP的租约过程

1)客户机请求IP地址

2)服务器响应

3)客户机选择IP地址

4)服务器确定租约

5)重新登陆

6)更 新租约


 二、使用DHCP动态配置主机地址


2.1、配置DHCP服务器
1、安装DHCP服务器软件

    先执行“rpm -q dhcp”命令查看系统中是否已经安装 dhcp 软件包,如果没有安装,则只要挂载 CentOS 系统光盘,安装其中的 dhcp-4.2.5-47.el7.centos.x86_64.rpm 软件包即可,具体操作如下。

   安装 dhcp 软件包后系统将会自动复制相关程序,并添加名为 dhcpd 的系统服务。


2、建立主配置文件dhcp.conf

   dhcpd 服务的主配置文件是/etc/dhcp/dhcpd.conf,但是该文件中默认不包含任何有效配置,需要管理员手动建立。这时管理员可以根据文件中的提示,参考配置文件范本建立新的 dhcpd.conf 文件。

1)/etc/dhcp/dhcpd.conf 文件的配置构成

   在主配置文件 dhcpd.conf 中,可以使用声明、参数、选项这三种类型的配置,各自的作用和表现形式如下所述:

  ①声明:用来描述 dhcpd 服务器中对网络布局的划分,是网络设置的逻辑范围。较常见的声明是 subnet、host,其中 subnet 声明用来约束一个网段,host 声明用来约束一台特定的主机。

  ②参数:由配置关键字和对应的值组成,总是以“;”(分号)结束,一般位于指定的声明范围之内,用来设置所在范围的运行特性(如默认租约时间、最大租约时间等)。

  ③选项:由“option”引导,后面跟具体的配置关键字和对应的值,也是以“;”结束,用于指定分配给客户机的各种地址参数(如默认网关地址、子网掩码、DNS 服务器地址等)。

2)dhcpd 服务的全局配置

   为了使配置文件的结构更加清晰,全局配置通常会放在配置文件 dhcpd.conf 的开头部分,可以是配置参数,也可以是配置选项。常用的全局配置参数和选项如下所述:

  ①ddns-update-style,动态 DNS 更新模式。用来设置与 DHCP 服务相关联的 DNS数据动态更新模式。在实际的 DHCP 应用中很少用到该参数,将值设为“none”即可。

  ②default-lease-time,默认租约时间。单位为秒,表示客户端可以从 DHCP 服务器租用某个 IP 地址的默认时间。

  ③max-lease-time,最大租约时间。单位为秒,表示允许 DHCP 客户端请求的最大租约时间,当客户端未请求明确的租约时间时,服务器将采用默认租约时间。

  ④option domain-name,默认搜索区域。为客户机指定解析主机名时的默认搜索域,该配置选项将体现在客户机的/etc/resolv.conf 配置文件中,如“search benet.com”。

  ⑤option domain-name-servers,DNS 服务器地址。为客户机指定解析域名时使用的 DNS 服务器地址,该配置选项同样将体现在客户机的/etc/resolv.conf 配置文件中(如“nameserver 202.106.0.20”)。需设置多个 DNS 服务器地址时,以逗号进行分隔。

  例如,若需要为局域网搭建一台 DHCP 服务器,所有网段使用相同的租约时间,默认搜索域为 bdqn.com,DNS 服务器地址为 202.106.0.20 和 202.106.148.1,则可以修改dhcpd.conf 配置文件,参考以下操作调整全局配置:

3)subnet 网段声明

   一台 DHCP 服务器可以为多个网段提供服务,因此 subnet 网段声明必须:有而且可以有多个。例如,若要 DHCP 服务器为 192.168.4.0/24 网段提供服务,用于自动分配的 IP 地址范围为 192.168.4.128~192.168.4.254,为客户机指定默认网关地址为 192.168.4.1,则可以修改 dhcpd.conf 配置文件,参考以下内容调整 subnet 网段声明。

4)host 主机声明(可选)

   host 声明用于设置单个主机的网络属性,通常用于为网络打印机或个别服务器分配固定的 IP 地址(保留地址),这些主机的共同特点是要求每次获取的 IP 地址相同,以确保服务的稳定性。

   host 声明通过 host 关键字指定需要使用保留地址的客户机名称,并使用“hardwareethernet”参数指定该主机的 MAC 地址,使用“fixed-address”参数指定保留给该主机的 IP 地址。例如,若要为打印机 prtsvr(MAC 地址为 00:c0:c3:22:46:81)分配固定的 IP 地址192.168.4.100,可以修改 dhcpd.conf 配置文件,参考以下内容在网段声明内添加 host 主机声明。

   在Linux系统中,在客户端使用dhclient -r命令释放IP;再使用dhclient -d ens33(系统)自动获取一个新的地址(上述填写的MAC地址要与该系统的MAC地址相符)


3、启动 dhcpd 服务

   在启动 dhcpd 服务之前,应确认提供 DHCP 服务器的网络接口具有静态指定的固定 IP地址,并且至少有一个网络接口的 IP 地址与 DHCP 服务器中的一个 subnet 网段相对应,否则将无法正常启动 dhcpd 服务。 例如,DHCP 服务器的 IP 地址为 192.168.4.11,用于为网段 192.168.4.0/24 内的其他客户机提供自动分配地址服务。

   安 装 dhcp 软 件 包 以 后 , 对 应 的 系 统 服 务 脚 本 位 于/usr/lib/systemd/system/dhcpd.service,可以使用 systemd 服务进行控制。例如,执行以下操作可以启动 dhcpd 服务,并检查 UDP 的 67 端口是否在监听,以确认 DHCP 服务器是否正常:

   需要关闭、重启 dhcpd 服务时,只要将上述操作命令中的“start”改为“stop”或“restart” 即可。如果 dhcpd 服务启动失败,可以检查日志文件/var/log/messages 末尾的错误提示信息,并根据提示进行排错。


2.2、使用 DHCP 客户端

   当局域网内有可用的 DHCP 服务器时,在 Linux 客户机中可以设置使用 DHCP 的方式获取地址。只需要编辑对应网卡的配置文件,修改或添加“BOOTPROTO=dhcp”配置行,并重新加载配置文件或者重新启动 network 服务即可。例如,执行以下操作可修改网卡配置文件,并重新加载配置以通过 DHCP 方式自动获取地址。

   在Linux客户机中,还可以使用dhclient工具来测试DHCP服务器。若直接执行“dhclient” 命令,则 dhclient 将尝试为除回环接口 lo 以外的所有网络接口通过 DHCP 方式申请新的地址,然后自动转入后台继续运行。当然,测试时可以指定一个具体的网络接口,并结合“-d” 选项使其在前台运行,测试完毕后按 Ctrl+C 组合键终止。例如,执行“dhclient -d ens33” 命令后,可以为网卡 ens33 自动获取新的 IP 地址,并显示获取过程。

   在服务器端可以通过查看租约文件/var/lib/dhcpd/dhcpd.leases来了解服务器的 IP 地址分配情况,具体操作如下。该租约文件中记录了分配出去的每个 IP 地址信息(租约记录),包括 IP 地址、客户端的 MAC 地址、租用的起始时间和结束时间等。

   客户端需要通过 dhclient 命令释放获取的 IP 租约时,可以结合“-r”选项。例如,执行以下的“dhclient -r ens33”将会释放之前为网卡 ens33 获取的 IP 租约。此时再通过执行“ifconfigens33”命令就看不到分配的 IP 地址了。


三、DHCP 中继
1、DHCP 中继原理

   当企业内部网络规模比较大时,通常通过 VLAN 将网络规划为多个不同的子网。但是在该情况下一台 DHCP 服务器无法为不同网段的客户机同时提供服务,因为 DHCP 协议使用广播,而 VLAN 能隔离广播。

   例如:DHCP 服务器在 VLAN 100 中,就只有 VLAN 100 内的客户机能从 DHCP 服务器那里获取 IP 地址。如果 VLAN 2 或 VLAN 3 的客户机就无法通过这台 DHCP 服务器来获取 IP 地址。

          针对以上问题,一般有两种解决方案:

   ①为每个网段安装一台 DHCP 服务器,但这种方式的弊端是:资源浪费与不利于管理;

   ②在连接不同网段的设备上开启DHCP中继功能,将DHCP这种特殊的广播信息在VLAN之间转发,让其他 VLAN 的客户机也能从 DHCP 服务器获取 IP 地址,如图 2.6 所示:


2. DHCP 中继配置

   DHCP 中 继 的 配 置 命 令 : ip helper-address DHCPsrv-IPAddress 。 其 中 ,DHCPsrv-IPAddress 为 DHCP 服务器的 IP 地址。

   在三层交换机上配置 DHCP 中继转发:首先需要保证交换机上各 VLAN 之间网络通信正常,然后依次在不包含 DHCP 服务器的 VLAN 上进行 DHCP 中继配置。例如执行以下命令可以在 VLAN2 中进行 DHCP 中继转发配置。

 

  • 24
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值