Linux系统安装DHCP服务详细过程

avatar
作者
猴君
阅读量:0

1.DHCP介绍

2.DHCP安装过程

2.1.安装前准备

(1)关闭防火墙

1.systemctl disable --now firewalld  2.setenforce 0  3.vim /etc/selinux/config    (SELINUX=disabled)

(2)查看是否已安装dhcp服务

rpm -qa|grep dhcp*(查看已安装的软件) #或者 yum list installed | grep dhcp  #查看ip地址 ifconfig 

2.2.安装dhcp服务

(1)安装

yum install -y dhcp

(2)查看文件所在位置

rpm -qc dhcp # find / -name "dhcp*" 

(3)查看dhcp初始配置文件

cd /etc/dhcp ls cat dhcpd.conf

 (4)将模板文件复制到配置文件

       因为初始配置文件没有内容所以, 将模板文件复制到/etc/dhcp/目录下,覆盖原本的dhcpd.conf。

# cd /usr/share/doc # find -name "dhcp*" # cd dhcp-4.2.5 # cp -a /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf 

(5)dhcpd.conf原文解析

cd /etc/dhcp/ # vim dhcpd.conf  #删除文件里面的注释,去除所有以 `#` 开头的行: sed -i '/^#/d' dhcpd.conf

注:dhcpd.conf原文 解析

option domain-name "example.org";                 #指定默认域名

#为客户端指明DNS服务器IP地址    
option domain-name-servers ns1.example.org, ns2.example.org;

       

# 指定默认的租约期限(单位:秒)客户端在默认情况下可以持有分配的IP地址的时间长度   

default-lease-time 600;         

             
  # 指定最大的租约期限(单位:秒),即客户端持有的IP地址租约时间的上限  

max-lease-time 7200;             

        

log-facility local7;           # 指定DHCP服务器日志消息的发送目标或设施为local7  

# 第一个子网配置  

#没有服务这个子网将会被指定,但是要声明他来帮助DHCP服务器来了解网络拓扑
subnet 10.152.187.0 netmask 255.255.255.0 {   
}  
  
# 第二个子网配置  

#非常基础(简单)的子网声明
subnet 10.254.239.0 netmask 255.255.255.224 {  
    range 10.254.239.10 10.254.239.20; # 定义了一个静态分配的IP地址范围  
    option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org; # 指定了两个路由(网关)  
}  
  
# 第三个子网配置  

#这个声明运行BUUTP(引导协议)客户端获取地址,我们不是真正的推荐(我们并不建议这样)
subnet 10.254.239.32 netmask 255.255.255.224 {  

# 定义了一个动态分配的IP地址范围,使用BOOTP协议  
    range dynamic-bootp 10.254.239.40 10.254.239.60;   
    option broadcast-address 10.254.239.31;       # 指定了广播地址,
    option routers rtr-239-32-1.example.org;    # 设置路由(网关)  

}  
  
# 第四个子网配置  

#为一个内部子网进行细微的配置
subnet 10.5.5.0 netmask 255.255.255.224 {  
    range 10.5.5.26 10.5.5.30; # 定义了一个静态分配的IP地址范围  
    option domain-name-servers ns1.internal.example.org; # 指定了域名服务器  
    option domain-name "internal.example.org"; # 指定了默认域名  
    option routers 10.5.5.1; # 设置路由的IP地址  
    option broadcast-address 10.5.5.31; # 指定了广播地址  
    default-lease-time 600; # 定义了租约(IP地址分配)的默认时间(单位:秒)  
    max-lease-time 7200; # 定义了租约的最大时间(单位:秒)  
    # 这个子网同样被分成了8个小的子网段,但只指定了一个地址范围  
}

# 定义了一个名为passacaglia的主机  
host passacaglia {  
  hardware ethernet 0:0:c0:5d:bd:95; # 指定了该主机的MAC地址  
  filename "vmunix.passacaglia"; # 指定了主机文件名  
  server-name "toccata.fugue.com"; # 指定了为该主机提供服务的DHCP服务器名称 
}  
  
# 定义了一个名为fantasia的主机  
host fantasia {  
  hardware ethernet 08:00:07:26:c0:a5; # 指定了该主机的MAC地址  
  fixed-address fantasia.fugue.com; # 这里似乎是一个错误,通常fixed-address后面跟的是IP地址,而不是域名。  
  # 如果意图是分配一个固定的IP地址给这个主机,应该修改为类似:fixed-address 192.168.1.100;  

}  
  
# 定义了一个名为foo的类  
class "foo" {  
  match if substring (option vendor-class-identifier, 0, 4) = "SUNW"; # 根据客户端发送的vendor-class-identifier的前4个字符是否为"SUNW"来匹配这个类  
}  
  
# 定义了一个名为224-29的共享网络  

#这一块DHCP配置的主要作用是定义了一个名为224-29的共享网络,该网络包含了两个子网(10.17.224.0/24 和 10.0.29.0/24),并为这两个子网指定了不同的默认网关(路由器)。此外,它还定义了两个IP地址池(pool),用于动态分配IP地址给请求DHCP服务的客户端,但这两个地址池有不同的访问控制策略。
shared-network 224-29 {  
  # 包含两个子网  
  subnet 10.17.224.0 netmask 255.255.255.0 {  
    option routers rtr-224.example.org; # 指定了该子网内的默认网关(路由器)  
  }  
  subnet 10.0.29.0 netmask 255.255.255.0 {  
    option routers rtr-29.example.org; # 指定了该子网内的默认网关(路由器)  
  }  
  
  # 定义了两个IP地址池  
  pool {  
    allow members of "foo"; # 仅允许属于类"foo"的客户端从这个地址池中获取IP地址  
    range 10.17.224.10 10.17.224.250; # 定义了可分配的IP地址范围  
  }  
    
  pool {  
    deny members of "foo"; # 禁止属于类"foo"的客户端从这个地址池中获取IP地址  
    range 10.0.29.10 10.0.29.230; # 定义了另一个可分配的IP地址范围  
  }  
    
  # 注意:在共享网络中定义多个pool时,需要确保它们的分配策略不会相互冲突或导致配置错误。  
}

配置文件格式

选项/参数               #这些选项/参数全局有效

声明 {

    选项/参数          #这些选项/参数全局有效

}

保留特定的IP地址
可以保留特定的IP四肢给特定的DHCP客户端使用,也就是说,当这个客户每次向DHCP服务器索取地址或更新租约时,DHCP服务器都会给客户端分配相同的地址。

host  主机名 {
        next-server IP地址;
        hardware ethernet 网卡地址;
        fixed-address IP地址;
        filename "/pxelinux.0";
        }

分配多网段的IP地址
超级作用域来解决DHCP单个作用域中IP地址不足的情况,同时也方便了多个作用域的同时管理。而且超级作用域可以实现DHCP服务器只有1个地址却可以分发多个网段的IP功能(不使用超级作用域的话要么给DHCP服务器增加多块网卡,要么通过DHCP终中继的方式来实现分发不同网段的IP)

shared-network 名称 {

  subnet  {

}

 subnet {

}                   
原文链接:https://blog.csdn.net/owlcity123/article/details/104877938

 (6)将要添加的配置文件

# 添加新的子网  添加位置与上面的224-29同级
#VMLdhcp(自己)
# VMLdhcp (可选注释,如果确实需要)
subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.10 192.168.1.250;  # 可分配的IP地址范围
    option domain-name-servers 8.8.8.8,114.114.114.114;  # 设置DNS服务器
    # option domain-name "your.domain.name";  # 如果需要设置域名,则取消注释并替换为你的域名
    option broadcast-address 192.168.1.255;  # 设置广播地址
    option routers 192.168.1.1;  # 设置默认网关

    default-lease-time  600;

    max-lease-time  7200;

}

 systemctl start dhcpd #  systemctl status dhcpd 

 2.3.客户端的dhcp服务安装

  dhclient 是用于从 DHCP 服务器获取网络配置的客户端程序,而 dhcpd 是运行在网络服务器上,为 DHCP 客户端分配网络配置的服务器程序。

  dhclient.d 和 dhclient-exit-hooks.d 目录,这些目录通常是与 DHCP 客户端 dhclient 相关联的,而不是 DHCP 服务器 dhcpd

(1)检查dhclient是否安装

rpm -q dhclient

        如果系统提示找不到 dhclient,那么你需要安装它。

(2)安装

sudo yum install  --y dhclient

  • dhclient.d:这个目录通常用于存放 dhclient 的配置文件或脚本,这些脚本会在 DHCP 客户端获得或失去 IP 地址时运行。不过,请注意,具体的文件名和路径可能会因不同的 Linux 发行版而异。

  • dhclient-exit-hooks.d:这个目录(如果存在)通常用于存放 DHCP 客户端退出时执行的脚本。但并非所有发行版都使用这个目录;有些系统可能使用不同的机制或路径来实现类似的功能。

    广告一刻

    为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!