Linux中DHCP配置指南指南(配实验步骤与注释)

Linux中DHCP配置指南指南

一、DHCP基础概念

  1. 功能
    • 动态分配IP地址、子网掩码、网关、DNS等网络参数
    • 适用场景:
      • IP地址资源不足的子网(如ISP)
      • 设备位置频繁变动的网络(如移动办公)
  2. 核心术语
    • 端口 :服务端 UDP 67,客户端 UDP 68(IPv6使用 546)
    • 组件:DHCP服务器、客户端、中继代理(路由器)
    • 管理单元:作用域(Subnet)、地址池、租约、保留地址

二、DHCP工作流程(DORA四阶段)

1. Discover(发现阶段)
  • 客户端 :广播发送 DHCP Discover 报文
  • 目的:寻找可用DHCP服务器
  • 报文特点:包含客户端MAC地址
2. Offer(提供阶段)
  • 服务器 :响应 DHCP Offer 报文(广播)
  • 内容 :
    1. IP地址
    2. 子网掩码
    3. DNS
    4. 租期时间
    5. 服务器标识
3. Request(请求阶段)
  • 客户端 :广播 DHCP Request 报文
  • 作用 :
    1. 接受特定服务器的Offer
    2. 续租时直接发送(跳过Discover/Offer)
4. Acknowledge(确认阶段)
  • 服务器 :发送 DHCP ACK 确认分配(广播)
  • 客户端:收到后激活网络配置
  • 异常 :若收到 DHCP NAK,客户端需重启流程

跨网段通信 :

中继代理通过 giaddr 字段传递客户端网关信息,实现跨子网IP分配


三、DHCP服务搭建

1. 搭建服务器环境

bash 复制代码
vim /etc/yum.repos.d/server.repo		# 搭建本地yum仓库
	[aa]
	name=aa1
	baseurl=file:///mnt
	enabled=1
	gpgcheck=0

mount /dev/cdrom /mnt/					# 挂载镜像
yum -y install dhcp						# 下载 DHCP

2. 服务器配置文件

  1. 编辑主配置文件

    bash 复制代码
    cp -p /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
    # -4.2.5 为下载的DHCP版本
    
    vim  /etc/dhcp/dhcpd.conf			# 编辑主配置文件
    	subnet 172.16.30.0 netmask 255.255.255.0 {				# 定义子网和子网掩码
      	range 172.16.30.50 172.16.30.100;						# 定义地址池
      	#option domain-name-servers ns1.internal.example.org;	# 定义 DNS 服务器
      	#option domain-name "internal.example.org";				# 定义域
      	option routers 172.16.30.1;								# 定义网关
      	#option broadcast-address 10.5.5.31;					# 定义广播地址
      	default-lease-time 600;									# 默认租约时间
      	max-lease-time 7200;									# 最大租约时间
    	}
    
    host desktop30 {							# 为特定的 mac 主机定义固定的 IP 地址
      hardware ethernet 00:0c:29:0d:1c:a5;		# 主机的 mac 地址
      fixed-address 172.16.30.60;				# 提供的 IP 地址
    }
  2. 重启服务并设置下次启动生效

    bash 复制代码
    systemctl restart dhcpd						# 重启服务
    systemctl enable dhcpd						# 下次开机自启
  3. 关闭防火墙

    bash 复制代码
    systemctl stop firewalld					# 关闭防火墙 
    systemctl disable firewalld					# 禁用防火墙
  4. 设置 seLinux

    bash 复制代码
    setenforce 0								# 临时改成 permissive 模式
    vim /etc/selinux/config						# 进入配置文件,改成 disabled 模式
    	SELINUX=disabled

3. 客户端配置

  1. 配置客户端网卡文件

    bash 复制代码
    vim /etc/sysconfig/network-scripts/ifcfg-ens33		# 配置网卡
    	BOOTPROTO=dhcp
    	ONBOOT=yes
    
    systemctl restart network					# 重启服务
    1. 查看客户端 IP
    bash 复制代码
    ip a

四、DHCP中继服务搭建

1. 服务器配置文件

​ 下载dhcp(同上)

  1. 编辑主配置文件

    bash 复制代码
    cp -p /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
    # -4.2.5 为下载的DHCP版本
    
    vim  /etc/dhcp/dhcpd.conf			# 编辑主配置文件
    	subnet 192.168.100.0 netmask 255.255.255.0 {			# 自身网段
    	}
    	# A slightly different configuration for an internal subnet.
    	subnet 192.168.200.0 netmask 255.255.255.0 {			# 定义子网和子网掩码
      	range 192.168.200.50 192.168.200.100;					# 定义地址池
      	option routers 192.168.200.254;							# 定义网关
      	default-lease-time 600;									# 默认租约时间
      	max-lease-time 7200;									# 最大租约时间
    	}
  2. 重启服务并设置下次启动生效(同上)

    略

  3. 关闭防火墙(同上)

    略

  4. 设置 seLinux(同上)

    略

3. 中继配置

​ 下载dhcp(同上)

  1. 开启ip转发

    bash 复制代码
    vim /etc/sysctl.conf
    	net.ipv4.ip_forward = 1
    
    sysctl -p /etc/sysctl.conf
  2. 配置网卡

    bash 复制代码
    vim /etc/sysconfig/network-scripts/ifcfg-ens33
    bash 复制代码
    vim /etc/sysconfig/network-scripts/ifcfg-ens36
  3. 开启dhcp中继

    bash 复制代码
    dhcrelay 192.168.100.10

客户端配置

  1. 配置客户端网卡文件

    bash 复制代码
    vim /etc/sysconfig/network-scripts/ifcfg-ens33		# 配置网卡
    	BOOTPROTO=dhcp
    	ONBOOT=yes
    
    systemctl restart network					# 重启服务
  2. 查看客户端 IP

    bash 复制代码
    ip a
相关推荐
科力锐品牌君3 分钟前
应用级灾备 | 海量非结构化数据如何实现高效数据保护
linux·运维·网络·安全·系统安全·数据安全·灾备
KaiwuDB7 分钟前
KaiwuDB 运维实战04:DRBD + KaiwuDB——物联网场景下的低成本数据库高可用方案
运维·数据库·物联网·时序数据库·kaiwudb·aiot·多模数据库
zhangrelay14 分钟前
ROS项目设计案例智能大模型正经乱答案例
linux·笔记·学习·ubuntu·机器人
福建佰胜张工1 小时前
A5E00839230西门子工业核心配件详解:参数、安装调试与故障运维全攻略
运维·网络·安全·自动化
流浪0011 小时前
Linux系统篇39——线程(四) pthread库的由来和线程的创建与等待
linux·操作系统·线程·pthread库
Lancker1 小时前
chnroute-linux — 中国大陆 IP 段每日自动更新 + 「仅允许国内访问」落地
linux·运维·tcp/ip
辻弋2011 小时前
【无标题】
大数据·服务器·前端·搜索引擎·开源软件
天远Date Lab1 小时前
零信任架构实战:基于天远全能消金报告(标准版)构建自动化骑手资信评估网关
运维·人工智能·架构·自动化
赛博守夜人2 小时前
反舞弊系列之二十一:数据驱动型反舞弊体系搭建,如何利用ERP与财务数据构建“异常交易自动化风控看板”?
运维·自动化
高山有多高2 小时前
【Linux笔记】Linux进程与守护进程
linux