DHCP原理与配置(雨下整夜 我的爱溢出就像雨水)

一、DHCP的工作原理

什么是DHCP

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议),前身是BOOTP协议,是一个局域网的网络协议,使用UDP协议工作,统一使用两个IANA分配的端口:67(服务器端)68(客户端)。DHCP通常被用于局域网环境,主要作用是集中的管理、分配IP地址,使client动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。简单来说,DHCP就是一个不需要账号密码登录的、自动给内网机器分配IP地址等信息的协议。

1.优点

  • 减少管理员的工作量
  • 避免输入错误的可能
  • 避免IP地址的冲突
  • 当更改IP地址段时,不需要重新配置每个用户的IP地址
  • 提高了IP地址的利用率
  • 方便了客户端的配置

2.DHCP的分配方式

  • 自动分配:分配到一个IP地址永久使用
  • 手动分配:又DHCP服务器的管理员专门指定IP地址
  • 动态分配:使用完后释放IP,供其他客户机使用

二、DHCP的服务器配置

DHCP的IP自动获取过程

在这里插入图片描述
获取ip过程
第一步:客户机向局域网中所有DHCP服务器发送DHCP discovery报文,来请求DHCP服务器下发ip地址。

第二步:局域网中所有DHCP服务器回复DHCP offer报文,为客户机提供一个尚未分配的ip地址。

(华为的服务器使用的是单播)。

第三步:客户机选择第一台DHCP服务器回复的ip地址,并且要发送DHCP request报文,通告给局域网中所有的DHCP服务器,它选择了哪个ip和哪个DHCP(发送DHCP request的原因有两层,第一层是通告所有DHCP,让未被选中的服务器,把未使用的地址收回,第二层是通告给被选中的服务器,这个IP地址客户机要使用了)。

第四步:被选中的DHCP服务器收到DHCP request消息后,会给DHCP客户机回复一个DHCP Ack,告知客户端此ip地址可以被使用了,并包含ip地址的租期信息客户机将此ip与自己的MAC地址绑定,方便下次使用,而其他DHCP服务器将收回分配给该客户机的ip地址。

获取后过程
第五步:之后客户端每次登录网络时,不需要再发送DHCP discover报文,而是直接发送包含前一次分配的ip地址的DHCP request请求。

第六步:当DHCP服务器向客户端出租的ip地址租期达到50%时,就需要更新租约。客户机直接向DHCP服务器发送DHCP request报文,请求续约。

三、DHCP中继原理与配置

Linux配置DHCP服务器

1.关闭防火墙和selinux

[root@localhost ~]#systemctl stop firewalld
[root@localhost ~]#setenforce 0

2.安装DHCP服务并查看相关配置文件

[root@localhost ~]#yum install -y dhcp
 
[root@localhost ~]#cat /etc/dhcp/dhcpd.conf
#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.example
#   see dhcpd.conf(5) man page
#   可以看到这个配置文件是空的,但是上面提示了模板配置文件

3.将虚拟机网络连接模式改为仅主机模式
在这里插入图片描述
在这里插入图片描述

4.设置DHCP服务端的ip地址等配置

//设置DHCP服务的ip地址等信息
[root@localhost ~]#vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"   --此处改为静态
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="0b9122cc-f871-4b9b-8ca5-51dc7e0b9fb4"
DEVICE="ens33"
ONBOOT="yes"
IPADDR=192.168.192.20   --设置ip,与仅主机模式在同一网段网段
NETMASK=255.255.255.0   --子网掩码
GATEWAY=192.168.192.2   --网关
 
//重启网卡
[root@localhost ~]#systemctl restart network
 
//ip设置成功
[root@localhost ~]#ifconfig 
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.192.20  netmask 255.255.255.0  broadcast 192.168.192.255
        inet6 fe80::6fa1:2a57:eb7:f714  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:fc:cd:08  txqueuelen 1000  (Ethernet)
        RX packets 167  bytes 12741 (12.4 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 264  bytes 21137 (20.6 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
 

5.拷贝模板配置文件并修改

[root@localhost ~]# vim /etc/dhcp/dhcpd.conf
 
//在命令模式输入以下代码,拷贝配置文件内容
:.! cat /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example
 
//我们在这里只展示关键需要修改的配置,其他的内容可以注释或删除
 
//设置全局配置
 14 default-lease-time 21600;  --设置租约时间为6小时
 15 max-lease-time 43200;      --设置最大租约时间为12小时
 
 36 subnet 192.168.192.0 netmask 255.255.255.0 {  --指定要分配的网段地址
 37   range 192.168.192.100 192.168.192.200;    --设置地址池    
 38   option routers 192.168.192.2;   --指定默认网关地址
 39 }
 
[root@localhost ~]#systemctl restart dhcpd.service 
[root@localhost ~]#systemctl is-active dhcpd.service 
active
 

** 配置解析**

//设置全局配置参数
default-lease-time 21600; --默认租约为6小时,单位为秒
max-lease-time 43200; --最大租约为12小时,单位为秒
option domain-name “benet.com”; --指定默认域名
option domain-name-servers 202.106.0.20,202.106.148.1; --指定DNS服务器地址
ddns-update-style none; --禁用DNS动态更新
//subnet网段声明(作用于整个子网段,部分配置参数优先级高于全局配置参数)
subnet 192.168.100.0 netmask 255.255.255.o { --声明要分配的网段地址
range 192.168.100.128 192.168.100.200; --设置地址池
option routers 192.168.100.1; --指定默认网关地址

6.测试DHCP服务是否可用
首先将测试客户端也设置为仅主机模式,再修改配置文件

//设置客户端dhcp动态获取ip
[root@localhostmain ~]#vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="d762dea5-cf23-4074-837a-1b1a7cd72ded"
DEVICE="ens33"
ONBOOT="yes"
 
//重启网卡
[root@localhost ~]#systemctl restart network
 
//客户端获取到了DHCP服务端ip地址池的其中一个ip
[root@localhost ~]#ifconfig 
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.192.101  netmask 255.255.255.0  broadcast 192.168.192.255
        inet6 fe80::7791:1d06:d2da:af8e  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:3b:4b:c3  txqueuelen 1000  (Ethernet)
        RX packets 219  bytes 47706 (46.5 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 338  bytes 37742 (36.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

四、DHCP服务器为单机分配固定ip

1.打开win10虚拟机,打开cmd命令界面,输入ipconfig /all,查看本机MAC地址

在这里插入图片描述
2.在第一个实验的DHCP服务器dhcp.conf文件中增加host配置

//host主机声明(给单机分配固定的IP地址)
host hgstname{ --指定需要分配固定IP地址的客户机名称
hardware ethernet 00:c0:c3:22:46:81; --指定该主机的MAC地址
fixed-address 192.168.4.100; --指定保留给该主机的IP地址

[root@localhost ~]# vim /etc/dhcp/dhcpd.conf
host myboss {   --指定主机名,名字无要求
  hardware ethernet 00:0C:29:39:8B:5A;  --客户机的MAC地址,从第一步获取
  fixed-address 192.168.192.188;   --DHCP服务端指定分配给单客户机的ip地址
}
 
//重启dhcp服务
[root@localhost ~]#systemctl restart dhcpd

3.客户机cmd命令界面,先输入ipconfig /release,再输入ipconfig /renew ,发现客户机已经获取到了DHCP服务端提供的ip地址:192.168.192.188

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值