linux之DHCP服务端搭建 ( ip分配 四个阶段原理)

DHCP服务 ip分配 四个阶段原理

1.DHCP服务目的 协议 作用 租约 原理四个阶段

动态主机配置协议(Dynamic Host Configuration Protocol,动态主机配置协议)

①其目的主要是为TCP/IP协议网络自动分配IP地址和相关参数(主机的IP地址、子网掩码、广播地址、默认网关、DNS地址等)。

②工作在局域网的网络应用层协议,使用UDP协议工作。

主要作用:减轻管理员配置网络,尤其是配置IP地址的压力,灵活、方便、快捷,也减轻了IP地址的使用浪费,避免IP地址冲突。

 

DHCP的分配方式:

1、自动分配是当DHCP客户机第一次成功的从DHCP服务器获取到一个IP地址后,就永久的使用这个IP地址。

2、手动分配是由DHCP服务器管理员专门制定的IP地址。

3、动态分配是当DHCP客户机第一次从DHCP服务器获取到IP地址后,并非永久的使用该地址,而是在每次使用完后,DHCP客户机就会释放这个IP地址,供其他客户机使用。

 

租约release)的概念:

IP地址的使用期限,使用期限到期可以进行续租。

可以手动获取租约以及释放租约。

 

四个阶段原理 原理

DHCP客户端通过和DHCP服务器的交互通讯以获得IP地址租约。为了从DHCP服务器获得一个IP地址,

在标准情况下DHCP客户端和DHCP服务器之间会进行四次通讯。DHCP协议通讯使用端口UDP 67(服务器端)

UDP 68(客户端)进行通讯,UDP68端口用于客户端请求,UDP67用于服务器响应,并且大部分DHCP协议通讯使用广播进行。

 

 

 

 

 

第一阶段 客户端发出DHCP DISCOVER请求IP地址等参数;

第二阶段 服务器回应DHCP OFFER提供IP地址等参数;

第三阶段 客户端发出DHCP REQUEST接受基于DHCP服务器的租约;

第四阶段 服务器回应DHCP ACK进行确认IP地址等参数的使用。

 

 

第一阶段  DHCP DISCOVER  

DHCP客户端进行初始化(如DHCP客户端启动计算机、启用网络适配器或者连接到网络时)发送DHCP DISCOVERDHCP服务器有一个对应网段IP,则响应。客户机等待1秒,否则每隔2、4、8、16秒重发广播,若仍未收到,使用169.254.0.0/16(0.1-255.254).同时每隔5分钟再试一次.直到从DHCP服务器获取IP地址为止。

 

第二阶段   DHCP OFFER

所有接收到DHCP客户端发送的DHCP DISCOVER广播消息的DHCP服务器会检查自己的配置,如果具有有效的DHCP作用域和富余的IP地址,则DHCP服务器发起DHCPOFFER广播消息来应答发起DHCPDISCOVER广播的DHCP客户端,

此消息包含以下内容:

客户端MAC地址;

DHCP服务器提供的客户端IP地址;

DHCP服务器的IP地址;

DHCP服务器提供的客户端子网掩码;

其他作用域选项,例如DNS服务器、网关、WINS服务器等;

租约期限等。

 

因此DHCP客户端没有IP地址,所以DHCP服务器同样使用广播进行通讯:源IP地址为DHCP服务器的IP地址,而目的IP地址为255.255.255.255。同时,DHCP服务器为此客户保留它提供的IP地址,从而不会为其他DHCP客户分配此IP地址。如果有多个DHCP服务器给予此DHCP客户端回复DHCPOFFER消息,则DHCP客户端接受它接收到的第一个DHCPOFFER消息中的IP地址。

 

第三阶段  DHCP REQUEST

DHCP客户端接受DHCP服务器的租约时,它将发起DHCPREQUEST广播消息,告诉所有DHCP服务器自己已经做出选择,

接受了某个DHCP服务器的租约。在此DHCPREQUEST广播消息中包含了DHCP客户端的MAC地址、接受的租约中的IP地址、

提供此租约的DHCP服务器地址等,所有其他的DHCP服务器将收回它们为此DHCP客户端所保留的IP地址租约,以给其他DHCP客户端使用。

此时由于没有得到DHCP服务器最后确认,DHCP客户端仍然不能使用租约中提供的IP地址,所以在数据包中仍然使用0.0.0.0作为源IP地址,广播地址255.255.255.255作为目的地址。

 

第四阶段   DHCP ACK

提供的租约被接受的DHCP服务器在接收到DHCP客户端发起的DHCPREQUEST广播消息后,

会发送DHCP  ACK广播消息进行最后的确认,在这个消息中同样包含了租约期限及其他TCP/IP选项信息。

如果没有其他主机使用此IP地址,则DHCP客户端的TCP/IP使用租约中提供的IP地址完成初始化,从而可以和其他网络中的主机进行通讯。

至于其他TCP/IP选项,如DNS服务器和WINS服务器等,本地手动配置将覆盖从DHCP服务器获得的值。

 

租约到期

DHCP客户机重新登录,直接发起一个之前使用的IP地址的request请求,如服务器已分配,重新执行上述四阶段。

DHCP服务器将IP地址提供给DHCP客户端时,会包含租约的有效期,默认租约期限为8天691200秒),

客户机租用的IP地址达到50%,就要更新租约,若服务器未回复,最大可以使用期限的87.5%,到达后客户机进行

IP租用寻址,进行四个阶段

 

2.案例DHCP服务  自动获取ip

通常情况下,DHCP只能在广播域使用,为了实现广播域外一定范围的DHCP服务,需要使用DHCP中继技术。

dhcp的程序:dhcpddhcrelay

 

dhcp配置文件定义:

①默认最大租约期限(默认为秒)

②option--->指明地址和掩码其他的相关属性

             filename:指明引导文件名称

             next-server:指明引导文件的服务器的IP地址

③subnet

④host

dhcp分配ip和租约记录--->配置文件/var/lib/dhcpd/dhcpd.leases

 

实验配置一:   搭建DHCP服务    实现动态获取IP及相关网络配置

1:服务器1  手动配置IP和网关或其他属性,搭建DHCP服务,使用YUM进行安装。

2:获取配置文件模板,设置dhcp主配置文件

3:修改dhcp主配置文件,进行配置,然后启动dhcp服务

在客户机上进行验证结果

1. 挂载镜像sr0,配置yum环境 安装dhcp软件

mkdir  /media/cdiso -p              ---创建cdiso 挂载点

mount  /dev/sr0  /media/cdiso      ---挂载sr0   到cdiso下

 

配置yum环境,  只要配置yum之后就要清空缓存   

yum clean  all  清空缓存

cd /etc/yum.repos.d/

cp CentOS-Base.repo CentOS-Base.repo.bak         

vim Centos-Base.repo   

 

 

 

 

 

yu'm配置内容

 

 

 

 

 

2.安装软件

yum clean all       清空缓存

yum -y install dhcp     然后安装软件   

 

 

 

 

  

3.dhcp主配置文件,配置ip资源池

cd  /etc/dhcp/  

vim  /etc/dhcp/dhcpd.conf

进去有这一段话,复制一下

/usr/share/doc/dhcp*/dhcpd.conf.example

然后 复制一下这个文件    /etc/dhcp/dhcpd.conf

 

cp  /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example  /etc/dhcp/dhcpd.conf

会显示是否覆盖,是

查看 cd /etc/dhcp/  ,会显示有dhcpd.conf 这个文件

 

 

 

 

 

 

 

 

 

2.)添加地址池

vim  /etc/dhcp/dhcpd.conf

主要添加地址池   有一个地址池和静态ip是一个段的 这样才能成功

 

 

 

 

vim  dhcpd.conf    配置文件修改地址池

 

 

 

 

第一行指定一个段subnet 192.168.10.0 netmask 255.255.255.0 ;{

服务器网段           掩码

range  192.168.10.2到192.168.10.90;   客户端 ip可以用的是从2到90

       开始的IP        结束的IP         ---配置可使用ip数量

下一个domain-name-servers    8.8.8.8;  ---DNS每行注意分号  dns

domain-name "ujiuye.com";            ---域名,给他指定ujiuye.com

option routers 192.168.10.254;         ---路由网关下一跳,,(路由,中继器)

# option broadcast-address 10.5.5.31;   ---注解掉

default-lease-time 600;                  ---下面可以不改

  max-lease-time 7200;

}                        

                    

增加下一个网段20

subnet 192.168.20.0 netmask 255.255.255.0  {

  range 192.168.20.1 192.168.20.90;

  option domain-name-servers 8.8.8.8;

  option domain-name "ujiuye.com";

  option routers 192.168.20.254;

 # option broadcast-address 10.5.5.31;

  default-lease-time 600;

  max-lease-time 7200;

保存退出

查看ip网卡是否更改

 

 

 

 

4. 测试客户机

下面去配置客户机

这两个要同一个网段  都是10网段    vmnet1    

 

 

 

 

 

然后去编辑 ifcfg-ens33这个网卡  

BOOTROTO改为dhcp获取

注释掉ip 和PREFIX  (ip和子网掩码注释掉)

保存退出

 

 

 

 

 

输入命令,自动获取

dhclient -d ens33    ---为ens33这个网卡获取ip地址

然后就会自动获得最后一行的  bound  to   192.168.10.132的ip地址

 

 

 

 

5给客户机自动分配ip

安装dhcp服务

cd /etc/dhcp/                ---到这个目录下

ls                            ----查看所有文件

vim dhcpd.conf              ----编辑

内容为这个

...........

上面可以配置地址池

..............

# set.

host centoszifu {                         ---指定主机名字

  hardware ethernet 00:0c:29:95:62:64;    ---那个主机的msak 即 ether 00:0c:29:cc:39:1f

  fixed-address 192.168.20.30;            ---指定的ip

}

 

 

 

 

 

改主机名字,指定主机mask ,和指定的IP

 

 

 

 

 

 

3.案例 搭建dhcp中继器,跨网段获取ip

实验配置二:搭建DHCP并配置DHCP中继服务,完成跨网段DHCP服务

1)关闭 服务器,中继器,客户机 的防火墙服务

 

iptables -F

iptables -X

iptables -Z

systemctl stop firewalld.service    ---关闭防火墙

setenforce  0

 

 

 

 

2)中继路由器两块网卡  关闭中继服务端虚拟机dhcp功能

虚拟机增加第二块网卡  和关闭虚拟机的  在虚拟网络编辑器    dhcp的功能

关闭要使用的    Vmnet1  和vmne2的  dhcp功能

 

或者去我的电脑管理  管理   服务和应用程序   服务  关闭vmnet和dhcp

或者:  Win+R    输入services.msc   也可直接打开服务

 

 

 

 

 

 

 

 

 

3.)配置中继器路由ip  两个网卡 为服务器客户端 的网关

DHCP中继服务器配置静态IP和网关,每个网卡的IP需是其他客户机以及DHCP服务器的对应的网关

 

vi ifcfg-ens33    

第一个 Ip  改为服务器10.254     为下面服务器要用到的网关

即中继器vmnet1  ens33  的IP10.254    作为服务器的  网关

 

 

 

 

 

配置第二个网卡ip               客户机  要连接的   网关

cp ifcfg-ens33 ifcfg-ens38    --复制这个网卡,然后更改配置

vi ifcfg-ens38                --- ip 为  20.254    为客户机的网关  

uuid注释掉, 名字和ip改好

 

 

 

 

4.配置服务器 的ip   中继服务端 开启路由转发功能

cd /etc/sysconfig/network-scripts/

vim ifcfg-ens33                           

在下面一行加入网关  GATEWAY= 192.168.10.254   --即  中继器兼 路由的  ip

 

 

 

 

ping  192.168.10.254        看是否成功

 

 

 

 

 

 

配置dhcp中继服务器开启路由功能

echo "1">/proc/sys/net/ipv4/ip_forward  ---开启临时路由

 

永久开户路由转发:

vim /etc/sysctl.conf

net.ipv4.ip_forward = 1  文件里增加

sysctl -p   刷新启动

 

 

 

 

5)配置客户机 的ip 增加网关

多台客户机临时配置静态IP,进行通信,验证中继服务器路由转发效果。

先更改设置里面vmnet2为仅主机模式,因为dhcp服务器为vmnet1,所以客户机为vmnat2            中继器都有这两个网段192.10.254  和192.168.20.254  的ip

 

配置修改客户机IP和网关

cd /etc/sysconfig/network-scripts/

vim ifcfg-ens33          

GATEWAY= 192.168.20.254  -----中继器第二个网卡IP作为客户机的网关

 

 

 

 

 

检测客户机  能否ping通  服务器  

在客户机ping  192.168.10.2     --10.2为服务器的ip

 

 

 

 

 

检测   服务器端ping 192.168.20.20   ---20.20为客户机ip

 

 

 

 

 

如果不通则手写,增加路由:

(1)网段  -net

配置服务器的命令为 :        服务器网段为10网段   客户机为20

 route add -net 192.168.20.0/24 gw 192.168.10.254

                我要到20.0网段   这个网段下一跳网关为10.254中继器

 

配置客户机的命令为         客户机ip为20网段

route add -net 192.168.10.0/24 gw 192.168.20.254

   我要到10网段     我的下一跳网关为20.254 ,

下一跳为我要到的下一个主机ip ,也就是我客户机要到的网关

 

(2)到主机 -host

 route add -host 192.168.10.254  gw 192.168.20.254

我要到的这个主机ip   本机下一跳网关

   

6.)中继服务器安装  dhcp   设置中继永久保存 启动服务查看端口

配置好yum,挂载好了之后执行以下命令

yum clean  all  清空缓存

yum -y install dhcp

 

打开中继  设置永久保存

dhcrelay  -i  ens33  -i  ens38  192.168.10.2      打开中继,不是永久保存

中继服务的2个网卡  服务器ip   (有几个网卡参与中继都为-i  ensxxx   加到后面即可)

 

netstat -antulp | grep :67         查看网络状态,过滤出67端口

 

永久保存   ---写入其脚本:

cd /usr/lib/systemd/system

vim  dhcrelay.service    永久有效去配置这个文件

Exescstart 后面直接加  -i ens33 -i ens38 192.168.10.2

 

 

 

 

vim中继配置永久保存

 

 

 

 

 

启动服务

 

systemctl  daemon-reload       

systemctl  enable dhcrelay.service   --开机启动

systemctl  start dhcrelay.service     --启动服务

 

 

 

 

 

7.配置客户机使其自动获取ip

首先查看客户机的网卡, 应该为vmnet2    --客户机为20网段

vim ifcfg-ens33          --注释其中内容

BOOTPROTO=none     改为=dhcp  --自动获取

注释掉   IPADDR   和    PREFIX=24

 

systemctl  restart  network      --重新启动网络

Ifconfig   ---查看网卡配置信息

 

 

 

 

 

 

dhclient -d ens33   自动获取ip

 

 

 

 

 

 

重新启动网络再次查看

systemctl  restart  network      --重新启动网络

Ifconfig   --查看网卡配置信息

 

 

 

 

进行客户机针对性测试

重启客户机网卡,或者获得dhcp租约

dhclient -d ethX 为网卡获取IP租约         dhclient -r:释放租约

 

posted @ 2020-07-31 20:41  浅唱I  阅读(1600)  评论(0编辑  收藏  举报