Linux DHCP详解

1 DHCP简介

DHCP(Dynamic Host Configuration Protocol),动态主机配置协议,是一个应用层协议。当我们将客户主机ip地址设置为动态获取方式时,DHCP服务器就会根据DHCP协议给客户端分配IP,使得客户机能够利用这个IP上网。

DHCP的前身是BOOTP协议(Bootstrap Protocol),BOOTP被创建出来为连接到网络中的设备自动分配地址,后来被DHCP取代了,DHCP比BOOTP更加复杂,功能更强大。后面可以看到,在用Wireshark过滤显示DHCP包,需要输入过滤条件BOOTP,而不是DHCP,但或许是因为我使用的Wireshark版本是比较旧的1.12.9,没有在新版本中尝试过,也许可以输入DHCP让其只显示DHCP包。

1.1 DHCP的实现在这里插入图片描述

DHCP的实现分为6步,分别是:

  1. 发现阶段
    在DHCP服务配置完成后,DHCP Client启动时,由于没有IP地址,会自动发送以discover的广播报文,源地址为0.0.0.0目的地址为255.255.255.255。网络上的所有支持TCP/IP的主机都会收到该DHCP Discovery报文,但是只有DHCP Server会响应该报文。

  2. DHCP Server offer响应阶段
    DHCP Server收到discover报文后,通过解析报文,查询dhcpd.conf配置文件,如果在地址池中能找到合适的IP地址,DHCP Server会给DHCP Client发送offer报文,告诉DHCP Client,该DHCP Server拥有资源,可以提供DHCP服务。

  3. DHCP Client请求使用阶段
    当DHCP Client收到offer报文时,知道在本网段中有可用的DHCP Server可以提供DHCP服务,因此,它会发送一个request请求报文,向该DHCP Server请求IP地址、掩码、网关、DNS等信息,以便登陆网络。

  4. DHCP Server确认使用阶段(获得IP地址)
    当DHCP Server收到DHCP Client发送的DHCP Request后,确认要为该DHCP Client提供的IP地址后,便向该DHCP Client响应一个包含该IP地址以及其他Option的报文,来告诉DHCP Client可以使用该IP地址了。然后DHCP Client即可以将该IP地址与网卡绑定。另外其他DHCP Server都将收回自己之前为DHCP Client提供的IP地址。

  5. DHCP Client重新登录网络阶段
    当DHCP Client重新登录后,发送一个以前的DHCP Server分配的IP地址信息的DHCP Request报文,当DHCP Server收到该请求后,会尝试让DHCP客户端继续使用该IP地址。并回答一个ACK报文。如果该IP地址无法再次分配给该DHCP Client后,DHCP回复一个NAK报文,当DHCP Client收到该NAK报文后,会重新发送DHCP Discovery报文来重新获取IP地址。

  6. DHCP Client续约阶段
    DHCP获取到的IP地址都有一个租约,租约过期后,DHCP Server将回收该IP地址,所以如果DHCP Client如果想继续使用该IP地址,则必须更新器租约。更新的方式就是,当当前租约期限过了一半后,DHCP Client都会发送DHCP Renew报文来续约租期。

2 DHCP-Server配置

2.1 关闭vmware workstation DHCP

依次点击:编辑–>虚拟网咯编辑器
在这里插入图片描述
点击:更改设置
在这里插入图片描述
依次选择:Vmnet8—>去掉"使用本地DHCP服务将IP地址分配给虚拟机–>确定"
在这里插入图片描述

2.2 安装DHCP-Server

yum install dhcp -y

在这里插入图片描述

2.3 配置DHCP-Server

主要的配置文件:/etc/dhcp/dhcpd.conf发现里面只有一些提示信息
在这里插入图片描述
备份配置

cp  /etc/dhcp/dhcpd.conf{,.bak}

将模板文件内容导入到配置文件中,并修改配置

grep -Ev "^$|^#"  /usr/share/doc/dhcp*/dhcpd.conf.example > /etc/dhcp/dhcpd.conf
[root@nginx-2 ~]# cat /etc/dhcp/dhcpd.conf
subnet 192.168.31.0 netmask 255.255.255.0 {
  range 192.168.31.20 192.168.31.40;
  option routers 192.168.31.2;
  option broadcast-address 192.168.31.255;
  default-lease-time 600;
  max-lease-time 7200;
  host break {
  hardware ethernet 00:0c:29:f8:94:cf;
  fixed-address 192.168.31.104;
  }
}

配置文件含义

序号内容含义
1subnet 192.168.31.0 netmask 255.255.255.0 {声明信息,指定作用域和子网
2range 192.168.31.20 192.168.31.40;指定动态IP地址的范围
3option routers 192.168.31.2;默认路由,网关地址
4option broadcast-address 192.168.31.255;广播地址
5default-lease-time 600;默认租约期限
6max-lease-time 7200;最大租约时间
7host break {本地主机配置
8hardware ethernet 00:0c:29:f8:94:cf;网卡绑定MAC地址
9fixed-address 192.168.31.104;设置网卡的固定的IP

2.4 启动DHCP服务

systemctl enable --now dhcpd

在这里插入图片描述

2.5 查看服务端口状态

在这里插入图片描述
到此DHCP服务端配置已经完成

3 DHCP-Client配置

将BOOTPROTO设置成dhcp
在这里插入图片描述
启动网卡

ifup ens33

在这里插入图片描述

至此DHCP配置完成

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值