DHCP服务及与DHCP中继详解

前言:

        DHCP服务提高了IP地址的利用率,方便了管理员对客户机的管理,很实用的一门技术,这里

就详细介绍一下DHCP服务,以及它是如何搭建的。

一、DHCP工作原理

1、了解DHCP服务

        DHCP(Dypamic HostConfiguration Protocol,动态主机配置协议);是由Internet工作任务

小组设计开发的;专门用于为TCP/IP网络中的计算机自动分配TCP/IP参数的协议;是一个应用层

协议,使用UDP的67和68端口。DHCP功能强大,它提供了安全、可靠且简单的TCP/IP网络设

置,降低了配置IP地址的负担。

        典型的c/s模式:在网络中架设一台专用的DHCP服务器,负责集中分配各种网络地址参数;

其他主机作为DHCP客户机,将网卡配置为自动获取地址,即可与DHCP服务器进行通信,完成自

动配置过程。

⑴、使用DHCP的好处:

●  减少管理员的工作量;

●  避免输入错误的可能;

●  避免IP地址冲突;当更改IP地址段时,不需要重新配置每个用户的IP地址;

●  提高了IP地址的利用率;方便客户端的配置。

●  为大量客户机自动分配地址,提供集中管理

●  减轻管理和维护成本、提高网络配置效率

⑵、DHCP的分配方式

       ●  自动分配:分配到一个IP地址后永久使用

       ●  手动分配:由DHCP服务器管理员专门指定IP地址

       ●  动态分配:使用完后释放该IP,供其他客户机使用

2、DHCP的租约过程

       客户机从DHCP服务器获得IP地址的过程称为DHCP的租约过程。(华为路由DHCP的原理中

服务器向客户端响应服务时是单播。)分为四个步骤:

 

DHCP服务及与DHCP中继详解_第1张图片

  

租约过程对应的IP地址和使用端口号:

步骤

源IP

目标IP

源端口

目标端口

第一步

0.0.0.0

255.255.255.255

68

67

第二步

dhcp服务器

255.255.255.255

67

68

第三步

0.0.0.0

255.255.255.255

68

67

第四步

dhcp服务器

255.255.255.255

67

68

⑴、客户机请求IP地址阶段(DHCP Discover)

       当一个DHCP客户机启动时,客户机还没有P地址,所以客户机要通过DHCP获取一个合法的

地址;此时DHCP客户机以广播方式发送 DHCP Discover发现信息来寻找DHCP服务器。

⑵、服务器响应阶段(DHCP Offer)

       DHCP服务器接收到来自客户机请求IP地址的信息时,在自己的IP地址池中查找是否有合法的

IP地址提供给客户机,如果有,DHCP服务器将此IP地址做上标记,加入到DHCP Offer的消息中,

然后广播一则 DHCP Offer消息

        DHCP Offer消息:包含网卡IP地址、子网掩码;对应的网络地址、广播地址;dns服务器地址

信息;默认网关地址等信息)。

⑶、客户机选择IP地址(DHCP Request)

       DHCP客户机从接收到的第一个 DHCP Offer消息中提取IP地址,发出IP地址的DHCP服务器将

该地址保留,这样该地址就不能再分配给另一个DHCP客户机。

⑷、服务器确定租约(DHCP ACK)

       DHCP服务器接收到DHCP Request消息后,以DHCP ACK消息的形式向客户机广播成功确

认,该消息包含有IP地址的有效租约和其他可配置的信息;当客户机收到DHCP ACK消息时,配置

IP地址,完成TCP/IP的初始化。

3、重新登陆

       客户机每次重新登陆网络时,不需要再发送DHCP Discover信息,而是直接发送包含前一次所

分配的IP地址的DHCP Request请求信息。

DHCP服务及与DHCP中继详解_第2张图片

 

4、更新租约

       当DHCP服务器向客户机出租的IP地址租期达到50%时,就需要更新租约;客户机直接向提供

租约的服务器发送DHCP Request包,要求更新现有的地址租约。

二、DHCP服务器配置

1、安装DHCP软件

       CentOS光盘中自带dhcp软件包,DHCP主配置文件为:/etc/dhcpd.conf;执行程序

为:/usr/sbin/dhcpd、/usr/sbin/dhcrelay。

[root@kang ~]# mount /dev/sr0 /mnt  #虚拟机中首先连接光盘,然后挂载到/mnt目录

mount: /dev/sr0 写保护,将以只读方式挂载

[root@kang ~]# cd /mnt/Packages/    #转到此目录下

[root@kang Packages]# ls | grep dhcp

dhcp-4.2.5-58.el7.centos.x86_64.rpm   #确认我们需要的dhcp包有没有

dhcp-common-4.2.5-58.el7.centos.x86_64.rpm

dhcp-libs-4.2.5-58.el7.centos.x86_64.rpm

[root@kang Packages]# yum install dhcp -y     #使用yum工具进行安装

[root@kang Packages]# yum info dhcp     #可以查看dhcp详细信息

[root@kang Packages]# rpm -ql dhcp    #查看dhcp服务的所有配置信息及man手册

2、DHCP主配置文件介绍

⑴、新安装软件配置文件

[root@kang Packages]# cd /etc/dhcp/

[root@kang dhcp]# ls

dhclient.d  dhclient-exit-hooks.d  dhcpd6.conf  dhcpd.conf  scripts

## dhcpd6.conf关于ipv6信息

[root@kang dhcp]# cat dhcpd.conf   #查看ipv4的dhcpd.conf文件

#    #服务刚安装好,配置文件中是没有内容的,里面说是再see /usr/share/doc/dhcp*/目录下寻找,需要我们手动将模板配置文件拷贝过来。

# DHCP Server Configuration file.

#   see /usr/share/doc/dhcp*/dhcpd.conf.example  #注意此处*代表任意版本,

#   see dhcpd.conf(5) man page

#

[root@kang dhcp]# cd /usr/share/doc/dhcp-4.2.5/  #进入该目录

[root@kang dhcp-4.2.5]# ls

dhcpd6.conf.example  dhcpd.conf.example  ldap   

[root@kang dhcp-4.2.5]# vim dhcpd.conf.example  #可进入ipv4详细配置文件

[root@kang dhcp-4.2.5]# cp -p dhcpd.conf.example /etc/dhcp/dhcpd.conf

cp:是否覆盖"/etc/dhcp/dhcpd.conf"? y 

##拷贝模板确认覆盖,将选择的dhcp配置文件覆盖到原/etc/dhcp/目录下

[root@kang dhcp-4.2.5]# cd /etc/dhcp/  #再回到配置文件信息下

[root@kang dhcp]# ls

dhclient.d  dhclient-exit-hooks.d  dhcpd6.conf  dhcpd.conf  scripts

[root@kang dhcp]# vim dhcpd.conf    #查看配置文件内容已经有了

[root@kang dhcp]# cp dhcpd.conf dhcpd.conf.bak  #这里我在做一下备份

⑵、配置文件介绍

① 、ddns全局设置、subnet网段声明

       一台DHCP服务器可以为多个网段提供服务,因此subnet网段声明可以有多个。特别注意每行

结尾的分号。ddns全局设置,作用于整个DHCP服务器;subnet网段声明,作用于整个子网段。而

且局部设置比全局设置优先级要高。

[root@kang ~]# vim /etc/dhcp/dhcpd.conf  #编辑配置文件

……

#ddns-update-style none;  #禁用DNS动态更新,提高DHCP的效率,减少宽带的使用,默认是注释的。

……

ddns-update-style interim;  #全局配置参数

……

subnet 10.5.5.0 netmask 255.255.255.224 {    #声明网段地址

  range 10.5.5.26 10.5.5.30;    #range参数用于设置地址池

  option subnet-mask 255.255.255.0; # option subnet-mask参数用于设置客户机的子网掩码

  option domain-name-servers ns1.internal.example.org,ns1.internal.example.org;

##指定DNS服务器地址,多个用逗号隔开。  

  option domain-name "internal.example.org";  #指定默认搜索域,本地域名

  option routers 10.5.5.1;      # option routers参数用于指定默认网关地址

  option broadcast-address 10.5.5.31;    #定义广播地址

  default-lease-time 600;    #默认租约600秒

  max-lease-time 7200;     #最大租约2小时,在客户端没有特殊的租约时间请求时,都会统一的指派默认租约时间。如果客户端请求了自定义的租约时间,服务器将会启用最大租约时间作为限制,客户端自己请求的租约时间不能大于该值。

}

②、host声明

       host声明用于设置单个主机的网络属性,通常用于为网络打印机或个别服务器分配固定的IP地

址(保留地址),这些主机的共同特点是要求每次获取的IP地址相同,以确保服务器的稳定性。

……

host hostname {    #host后面可自定义名称,指定需要分配固定IP地址的客户机名称

  hardware ethernet 0:0:c0:5d:bd:95;  ## hardware ethernet参数指定对应主机的 MAC地址

  filename "vmunix.passacaglia";

  server-name "toccata.fugue.com";

  fixed-address fantasia.fugue.com;  ## fixed-address参数指定为该主机保留地址的IP地址

③、租约文件介绍

       在服务器端可以通过查看/var/lib/dhcpd/目录下ipv4的租约文件,来了解服务器的IP地址分配情

况,该租约文件中记录了分配出去的每个IP地址信息(租约记录),包括IP地址、客户端的MAC地

址、租用的起始时间和结束时间等。

        该文件初始为空,且不需要管理员手动配置,但可以浏览此文件查看DHCP服务器的运行状

况,文件包含租期声明,每次一个租期被获取,更新或释放,它的新值就被记录到文件的末尾。注

意:该文件时间记录采用GMT时间(格林威治时间),而不是本地时区的时间,查看GMT时间可

以用命令“date -u ”

3、DHCP中继原理

       当企业内部网络规模比较大时,通通过VLAN将网络规划为多个不同的子网。但是在该情况下

一台DHCP服务器无法为不同网段的客户机同时提供服务,因为DECP协议使用广播,而VLAN能

隔离广播。

        我们可以为每个网段安装一台DHCP服务器,但这种方式的弊端是:资源浪费与不利于管理;

在连接不同网段的设备上开启DHCP中继功能,将DHCP这种特殊的广播息在VLAN之间转发,让

其他VLAN的客户机也能从DHCP服务器获取IP地址。这就是DHCP中继器。

三、DHCP中继器实际应用

       需求描述:①、实现dhcp服务器( cloud1)自动分配IP地址服务;②、实现各个vlan(10、

20、100)在不同的网段进行通信;③、实现单台机器(win7或win10)IP绑定mac地址。网络架

构如图示:

DHCP服务及与DHCP中继详解_第3张图片

1、首先、服务器端设置

⑴、设置虚拟机网卡

DHCP服务及与DHCP中继详解_第4张图片

 

⑵、在虚拟网络编辑器中选择Vmnet1,将网段设置为192.168.90.0,子网掩码24

DHCP服务及与DHCP中继详解_第5张图片

 ⑶、配置服务器网卡

[root@kang ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33

TYPE=Ethernet

PROXY_METHOD=none

BROWSER_ONLY=no

BOOTPROTO=static

DEFROUTE=yes

IPV4_FAILURE_FATAL=no

NAME=ens33

UUID=6e9ad9b3-7bbc-4c5e-9aa2-d28d2e0e15d3

DEVICE=ens33

ONBOOT=yes

IPADDR=192.168.90.20    #设置服务器的IP地址

NETMASK=255.255.255.0

GATEWAY=192.168.90.254  #设置网关

#DNS1=114.114.114.114

:wq   #保存退出

[root@kang ~]# systemctl restart network     #重启网卡

2、主机vmnet1配置

DHCP服务及与DHCP中继详解_第6张图片

 3、交换机处模拟配置

⑴、首先、配置cloud1端口,以便我们连接交换机,并启动

DHCP服务及与DHCP中继详解_第7张图片

 ⑵、配置sw2,划分vlan

……
[sw2]vlan batch 10 20 100
Info: This operation may take a few seconds. Please wait for a moment...done.
[sw2]int e0/0/1
[sw2-Ethernet0/0/1]port link-type trunk
[sw2-Ethernet0/0/1]port trunk allow-pass vlan all
[sw2-Ethernet0/0/1]int e0/0/2
[sw2-Ethernet0/0/2]p l a
[sw2-Ethernet0/0/2]p d v 10
[sw2-Ethernet0/0/2]int e0/0/3
[sw2-Ethernet0/0/3]p l a
[sw2-Ethernet0/0/3]p d v 20
[sw2-Ethernet0/0/3]int e0/0/4
[sw2-Ethernet0/0/4]p l a
[sw2-Ethernet0/0/4]p d v 100
[sw2-Ethernet0/0/4]int e0/0/5
[sw2-Ethernet0/0/5]p l a
[sw2-Ethernet0/0/5]p d v 100
[sw2-Ethernet0/0/5]

⑶、配置sw1,划分vlan

[sw1]vlan bat 10 20 100
Info: This operation may take a few seconds. Please wait for a moment...done.
[sw1]int vlanif 10
[sw1-Vlanif10]ip add 192.168.1.254 24
[sw1-Vlanif10]int vlanif 20
[sw1-Vlanif20]ip add 192.168.2.254 24
[sw1-Vlanif20]int vlanif 100
[sw1-Vlanif100]ip add 192.168.90.254 24
[sw1-Vlanif100]int g0/0/1
[sw1-GigabitEthernet0/0/1]p l t
[sw1-GigabitEthernet0/0/1]p t a v a 
[sw1-GigabitEthernet0/0/1]q
[sw1]

4、重新在服务器端配置dhcp中继

DHCP主配置文件中添加如下命令,保存后重启网卡

[root@kang ~]# vim /etc/dhcp/dhcpd.con

……    #省略部分内容,将以下三段添加进配置

subnet 192.168.90.0 netmask 255.255.255.0 {

  range 192.168.90.130 192.168.90.150 ;

  option routers 192.168.90.254;

}

subnet 192.168.1.0 netmask 255.255.255.0 {

  range 192.168.1.130 192.168.1.150 ;

  option routers 192.168.1.254;

}

subnet 192.168.2.0 netmask 255.255.255.0 {

  range 192.168.2.130 192.168.2.150 ;

  option routers 192.168.2.254;

}

……

[root@kang ~]# systemctl restart dhcpd  #重启DHCP

5、验证结果①

           在同网段的pc3 检查是否分配地址,此处,已然分配地址,并且可以ping通。

DHCP服务及与DHCP中继详解_第8张图片

 6、回到交换机开启中继,

        继续配置sw1,开启中继模式,并将每个虚拟接口指向服务器IP地址

[sw1]dhcp enable     #开启中继
Info: The operation may take a few seconds. Please wait for a moment.done.
[sw1]int vlanif 10
[sw1-Vlanif10]dhcp select relay  #基于中继
[sw1-Vlanif10]dhcp relay server-ip 192.168.90.20   #指定网段
[sw1-Vlanif10]int vlanif 20 
[sw1-Vlanif20]dhcp select relay
[sw1-Vlanif20]dhcp relay server-ip 192.168.90.20
[sw1-Vlanif20]int vlanif 100
[sw1-Vlanif100]dhcp select relay
[sw1-Vlanif100]dhcp relay server-ip 192.168.90.20
[sw1-Vlanif100]

7、结果验证①和②

        接着在pc1 和pc2 检测,查看发现已经分发IP地址,明显可见成功。需求①和②已经达成。

DHCP服务及与DHCP中继详解_第9张图片

DHCP服务及与DHCP中继详解_第10张图片

8、实现IP地址与MAC地址绑定

⑴、win7电脑同上面一样,在设置网络适配器下,选择自定义,vmnet1;这时它同样在90网段。

DHCP服务及与DHCP中继详解_第11张图片

⑵、Win7网络适配器ipv4点自动获取

 DHCP服务及与DHCP中继详解_第12张图片

⑶、接着我们获取win7的IP地址和MAC地址

 DHCP服务及与DHCP中继详解_第13张图片

⑷、在DHCP服务器端配置文件修改

       添加 如下命令:接着刷新dhcp文件

……
host kang {
  hardware ethernet 00:0C:29:23:35:E5;
  fixed-address 192.168.90.131;
}
……

⑸、这样我们就实现了实现单台机器(win7或win10)IP绑定mac地址。

总结:

        DHCP工作原理,租约的过程,以及如何配置DHCP中继。

你可能感兴趣的:(dhcp)