Linux服务管理-DHCP

DHCP

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,它允许服务器自动地将IP地址和其他网络配置参数分配给网络中的计算机。DHCP极大地简化了网络管理,尤其是当大量设备需要接入网络时,因为它减少了手动配置每个设备的需求。

DHCP的工作原理

  1. DHCP发现(DHCP Discover):当一个新的设备(如计算机、智能手机等)连接到网络时,它会广播一个DHCP发现消息,询问网络中的DHCP服务器它的IP地址和其他网络配置信息。

  2. DHCP提供(DHCP Offer):网络中的DHCP服务器接收到发现消息后,会选择一个可用的IP地址,并通过一个DHCP提供消息将这个地址和其他网络配置信息(如子网掩码、默认网关、DNS服务器地址等)发送给客户端设备。

  3. DHCP请求(DHCP Request):客户端设备接收到提供消息后,会选择一个(通常是第一个收到的)提供的配置,并通过一个DHCP请求消息向服务器确认这个选择。

  4. DHCP确认(DHCP Ack):DHCP服务器接收到客户端的请求后,会发送一个DHCP确认消息,正式将IP地址和其他配置分配给客户端设备。此时,客户端设备就可以使用这个IP地址和其他配置信息接入网络了。

DHCP的优点

  • 简化网络管理:DHCP减少了手动配置每个设备的需求,使得网络管理更加简单和高效。

  • 提高IP地址利用率:DHCP服务器可以动态地分配和回收IP地址,从而提高了IP地址的利用率。

  • 增强网络安全性:通过DHCP,管理员可以集中管理网络配置,包括设置IP地址租期、限制特定设备的网络访问等,从而增强了网络的安全性。

部署DHCP服务

使用yum安装。

bash 复制代码
[root@vm1 ~]# yum -y install dhcp-server
# 查看配置文件
[root@vm1 ~]#  cat /etc/dhcp/dhcpd.conf
#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp-server/dhcpd.conf.example #示例文档
#   see dhcpd.conf(5) man page
#
[root@vm1 ~]#
bash 复制代码
# 修改vm1的地址为192.168.6.254:
[root@vm1 ~]# ip a s ens160
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:50:56:36:45:08 brd ff:ff:ff:ff:ff:ff
    altname enp3s0
    inet 192.168.6.254/24 brd 192.168.6.255 scope global noprefixroute ens160
       valid_lft forever preferred_lft forever
    inet6 fe80::75c4:d3cf:7e18:ad85/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
[root@vm1 ~]#

修改配置文件

bash 复制代码
[root@vm1 ~]# cat /etc/dhcp/dhcpd.conf 
#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp-server/dhcpd.conf.example
#   see dhcpd.conf(5) man page
#
subnet 192.168.6.0 netmask 255.255.255.0 {
  range 192.168.6.100 192.168.6.200;  ip地址的范围
  option domain-name-servers 8.8.8.8; 指定dns服务器
  option routers 192.168.6.254; 指定网关
  option broadcast-address 192.168.6.255; 广播地址
  default-lease-time 600; 默认租约时间
  max-lease-time 7200; 最长租约时间
}
[root@vm1 ~]#
# 重启服务,防火墙放行服务
[root@vm1 ~]# systemctl restart dhcpd
[root@vm1 ~]# firewall-cmd --add-service=dhcp 
[root@vm1 ~]# firewall-cmd --add-service=dhcp --permanent

vm2测试动态获取地址

bash 复制代码
[root@vm2 ~]# firewall-cmd --add-service=dhcp --permanent
success
[root@vm2 ~]# firewall-cmd --add-service=dhcp 
success
[root@vm2 ~]# ip a s ens160
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:50:56:34:73:08 brd ff:ff:ff:ff:ff:ff
    altname enp3s0
    inet 192.168.6.100/24 brd 192.168.6.255 scope global dynamic noprefixroute ens160
       valid_lft 598sec preferred_lft 598sec
    inet6 fe80::250:56ff:fe34:7308/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
[root@vm2 ~]# cat /etc/resolv.conf 
# Generated by NetworkManager
search tj.a.com
nameserver 8.8.8.8
[root@vm2 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.6.254   0.0.0.0         UG    100    0        0 ens160
192.168.6.0     0.0.0.0         255.255.255.0   U     100    0        0 ens160
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
[root@vm2 ~]# 

练习

要求

  • Vm1启用dhcp服务,地址范围为192.168.6.1 -192.168.6.100,且排除ip 192.168.6.1

  • 能够给vm2分配192.168.6.0/25网段的地址,且地址固定为192.168.6.66/25, 网关为192.168.6.1,dns为192.168.6.1

  • vm1使用unbound服务配置缓存dns,vm2获取dns后,验证缓存dns的加速效果

过程

准备两台虚拟机:vm1(ens160 192.168.6.1/25);vm2(ens160 dhcp动态获取地址)

bash 复制代码
[root@vm1 ~]# cat /etc/dhcp/dhcpd.conf  | grep -v ^# | grep -v ^$
subnet 192.168.6.0 netmask 255.255.255.128 {
  range 192.168.6.1 192.168.6.100;
  option domain-name-servers 192.168.6.1;
  option routers 192.168.6.1;
  option broadcast-address 192.168.6.127;
  default-lease-time 600;
  max-lease-time 7200;
}
host vm2 {
  hardware ethernet 00:50:56:34:73:08;
  fixed-address 192.168.6.66;
}
host reserved-address {
    hardware ethernet 00:00:00:00:00:00;
    fixed-address 192.168.6.1;
}
[root@vm1 ~]# systemctl restart dhcpd
[root@vm1 ~]# cat /etc/unbound/unbound.conf  | grep 192.168.6
    interface: 192.168.6.1
    access-control: 192.168.6.0/25 allow
[root@vm1 ~]# systemctl restart unbound
​
# 在vm2中获取地址查看
[root@vm2 ~]# ip a s ens160
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:50:56:34:73:08 brd ff:ff:ff:ff:ff:ff
    altname enp3s0
    inet 192.168.6.66/24 brd 192.168.6.255 scope global dynamic noprefixroute ens160
       valid_lft 598sec preferred_lft 598sec
    inet6 fe80::250:56ff:fe34:7308/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
[root@vm2 ~]# 
相关推荐
涛ing3 小时前
32. C 语言 安全函数( _s 尾缀)
linux·c语言·c++·vscode·算法·安全·vim
__雨夜星辰__3 小时前
Linux 学习笔记__Day2
linux·服务器·笔记·学习·centos 7
大耳朵土土垚3 小时前
【Linux】日志设计模式与实现
linux·运维·设计模式
学问小小谢3 小时前
第26节课:内容安全策略(CSP)—构建安全网页的防御盾
运维·服务器·前端·网络·学习·安全
yaoxin5211234 小时前
第十二章 I 开头的术语
运维·服务器
ProgramHan4 小时前
1992-2025年中国计算机发展状况:服务器、电脑端与移动端的演进
运维·服务器·电脑
马立杰7 小时前
H3CNE-33-BGP
运维·网络·h3cne
云空8 小时前
《DeepSeek 网页/API 性能异常(DeepSeek Web/API Degraded Performance):网络安全日志》
运维·人工智能·web安全·网络安全·开源·网络攻击模型·安全威胁分析
深度Linux8 小时前
Linux网络编程中的零拷贝:提升性能的秘密武器
linux·linux内核·零拷贝技术
没有名字的小羊9 小时前
Cyber Security 101-Build Your Cyber Security Career-Security Principles(安全原则)
运维·网络·安全