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
相关推荐
大树881 小时前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠2 小时前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质2 小时前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush42 小时前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5202 小时前
Linux 11 动态监控指令top
linux
小宇宙Zz2 小时前
Maven依赖冲突
java·服务器·maven
Inhand陈工3 小时前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智3 小时前
ARP代理--工作原理
运维·网络·arp·arp代理
不会C语言的男孩4 小时前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言
shushangyun_4 小时前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化