管理DHCP和IP地址分配

一,DHCP基本概念

动态主机配置协议(DHCP)为系统提供了一种方法来自动检索它们的网络配置参数,如IP地址、默认网关、DNS服务器和域或NTP服务器。

 

通过在网络上部署DHCP服务器,可以集中控制这些参数。您可以为客户端分配一定范围的IP地址,也可以为特定客户端分配保留的IP地址。
DHCP有两种类似的协议:用于IPv4组网的DHCPv4(原DHCP)和用于IPv6组网的DHCPv6。本节主要介绍DHCPv4。DHCPv6将在本章后面讨论。

RH358学习笔记--4(DHCP学习)_客户端

 

 

二,部署DHCP服务器

 

服务器的静态IP地址必须在DHCP服务器管理的范围内。如上所示,DHCP服务器的地址为192.168.0.2/24。该服务器管理192.168.0.0/24 子网。

 

[root@host ~]# yum install dhcp-server

 

配置DHCP服务器
dhcpd服务使用/etc/dhcp/dhcpd.conf配置文件。dhcp-server包中提供了/usr/share/doc/dhcp-server/dhcpd.conf.example置文件示例。使用该文件作为配置的起点。

 

典型的DHCP配置为例:

 

RH358学习笔记--4(DHCP学习)_ip地址_02

 

 

 基于MAC地址预留IP地址
在配置文件中,主机声明可以将MAC地址与IP地址绑定。这种配置对于始终为特定系统的网络接口提供
相同的
IP地址特别有用,特别是当它提供web或数据库系统等服务时。

RH358学习笔记--4(DHCP学习)_子网_03

 

三,配置DHCP客户端

如果需要在客户端上配置用于DHCP的接口,请使用nmcli命令设置ipv4.method为auto。
[root@host ~]# nmcli con add con-name dhcp-connection type ethernet \
ifname eth0 ipv4.method auto

 配置DHCP的步骤:

(1)安装dhcp-server

[root@servera ~]# yum -y install dhcp-server
[root@servera ~]# rpm -qa |grep dhcp
RH358学习笔记--4(DHCP学习)_服务器_04

 

  [root@servera ~]# rpm -ql dhcp-server-4.3.6-34.el8.x86_64

RH358学习笔记--4(DHCP学习)_服务器_05

 

 配置DHCP服务器如下表:

RH358学习笔记--4(DHCP学习)_ip地址_06

 修改DHCP的配置文件

[root@servera dhcp]# vim dhcpd.conf

 authoritative;
subnet 192.168.0.0 netmask 255.255.255.0 {
  range 192.168.0.100 192.168.0.200;
  option broadcast-address 192.168.0.255;
  option domain-name-servers 172.25.250.254;
  option domain-search "example.net";
  default-lease-time 600;
  max-lease-time 7200;
}

[root@servera dhcp]# dhcpd -t
[root@servera ~]# nmcli con add con-name ge-conn type ethernet ifname eth1 ipv4.addresses 192.168.0.10/24 ipv4.method manual
[root@servera ~]# umcli con up ge-conn
[root@servera ~]# systemctl restart dhcpd
[root@servera ~]# systemctl status dhcpd

 

四,配置分配IPV6地址

IPv6有多种配置网络接口的方法。在本节中,将学习其中的两个:
 无状态地址自动配置Stateless Address Autoconfiguration (SLAAC)
 动态主机配置协议Dynamic Host Configuration Protocol for IPv6 (DHCPv6)

使用ip addr show命令获取链路本地IPv6地址:

[root@servera ~]# ip addr show dev eth0
RH358学习笔记--4(DHCP学习)_ip地址_07

 

 IPv6无状态地址自动配置

 无状态地址自动配置(SLAAC)

方法依赖路由器为客户端系统提供网络配置。这可以包括IPv6网络的前缀(客户端可以用它来创建地址)和DNS信息。对于这种方法,您的网络团队必须激活并配置路由器上的邻居发现协议(NDP)。
在SLAAC中,当客户端系统启动时,或者当您激活网络连接时,接口使用它的链路本地地址发送一个Router Solicitation消息到ffo2::2组播地址。路由器应答路由器通告消息,提供网络参数。

 

路由器通告消息可以提供以下网络配置参数:
 IPv6前缀
 DNS服务器的IPv6地址
 DNS搜索列表

比较路由器通告报文与DHCPv6

RH358学习笔记--4(DHCP学习)_子网_08

 

 配置DHCPv6服务器

dhcpd6服务使用/etc/dhcp/dhcpd6.conf配置文件。dhcp-server包中提供了/usr/share/doc/dhcp-server/dhcpd6.conf文件以用作配置示例。可使用该文件作为配置的起点。

authoritative; # 权威指令指示服务器对其管理的IPv6前缀是权威的。
subnet6 fde2:6494:1e09:2::/64 { # subnet6位置提供子网的详细信息。
range6 fde2:6494:1e09:2::20 fde2:6494:1e09:2::60; # 服务器分配该范围内的IPv6地址。
option dhcp6.name-servers fde2:6494:1e09:2::cc; # 服务器还提供DNS名称服务器。
option dhcp6.domain-search "example.net"; # 服务器提供DNS域搜索参数。
default-lease-time 600; # 如果客户端没有要求任何特定的租期长度,default-lease-time参数提供了一个以秒为单位的默认值。
max-lease-time 7200; # max-lease-time表示服务器可以接受客户端请求的最大租约时间。
}

RH358学习笔记--4(DHCP学习)_客户端_09

 

重要:
当您从同一个磁盘映像部署多个虚拟系统时,请确保在第一次引导之后重新生成/etc/machine-id文件。否则,所有这些系统将获得相同的机器ID,因此也将获得相同的DUID。要生成一个新的机器ID,使用以下命令: 

[root@host ~]# rm /etc/machine-id
[root@host ~]# systemd-machine-id-setup
[root@host ~]# systemctl restart NetworkManager

使用journalctl -u dhcpd6.service命令访问该信息的: