DHCP原理与中继转发配置


前言


一、DHCP原理

1.了解DHCP服务器

1.1 什么是DHCP

  • DHCP (Dynamic Host Configuration Protocol,动态主机配置协议)
  • 由lnternet工作任务小组设计开发
  • 专门用于为TCP/IP网络中的计算机自动分配TCP/IP参数的协议,使用UDP的67和68端口
  • DRCP的前身是BooTP协议(BootstrapProtocol),BOorP被创建出来为连接到网络中的设备自动分配地址,后来被DHCP取代了,DHCP比Bootp更加复杂,功能更强大。(如果使用wireshark抓包过滤协议是用bootp而不是dhcp)

1.2使用DHCP的好处

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

1.3 DHCP的分配方式

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

2.DHCP的租约过程

客户机从DHCP服务器获得IP地址的过程称为DHCP的租约过程

2.1 分为四个步骤

  1. 客户机请求IP地址:
    当一个 DHCP客户机启动时,客户机还没有IP地址,所以客户机要通过DHCP获取一个合法的地址。此时DHCP客户机以广播方式发送 DHCP Discover发现信息来寻找 DHCP 服务器,

  2. 服务器响应:
    当DHCP服务器接收到来自客户机请求IP地址的信息时,它就在自己的IP地址池中查找是否有合法的IP地址提供给客户机。如果有,DHCP服务器就将此IP地址做上标记,加入到 DHCP Offer的消息中,然后 DHCP服务器就广播一则DHCP offer 消息

  3. 客户机选择IP地址:
    DHCP 客户机从接收到的第一个DHCP offer消息中提取IP地址,发出IP地址的DHCP服务器将该地址保留,这样该地址就不能再分配给另一个 DHCP 客户机。之后 DHCP 客户机会向服务器发送 DHCP Request消息。

  4. 服务器确定租约:
    DHCP服务器接收到 DHCP Request 消息后,以 DHCP ACK消息的形式向客户机广播成功确认,该消息包含有IP地址的有效租约和其他可配置的信息。当客户机收到 DHCP ACK消息时,它就配置了IP地址,完成 TCP/IP 的初始化。

2.2 重新登陆

DHCP客户机每次重新登录网络时,不需要再发送 DHCP Discover 信息,而是直接发送包含前一次所分配的IP地址的DHCP Request请求信息。

2.3 更新租约

  1. 租期达到50% (T1)时,DHCP客户端会自动以单播的方式向DHCP服务器发送 DHCP REQUEST 报文,请求更新IP地址租期。如果收到DHCP服务器回应的DHCPACK报文,则租期更新成功(即租期从0开始计算);如果收到DHCP NAK报文,则重新发送DHCP DISCOVER 报文请求新的IP地址。
  2. 当租期达到87.5%(T2)时,如果仍未收到DHHCP服务器的应答,DHCP客户端会自动以广播的方式向DHCP服务器发送 DHCP REQUEST报文,请求更新IP地址租期。如果收到DHCP服务器回应的DHCP ACK报文,则租期更新成功(即租期从0开始计算);如果收到DHCP NAK报文,则重新发送DHCP DISCOVER报文请求新的IP地址。

3.使用DHCP动态配置主机地址

3.1 DHCP服务

  • 为大量客户机自动分配地址,提供集中管理
  • 减轻管理和维护成本、提高网络配置效率

3.2可分配的地址信息主要包括

  • 网卡的IP地址、子网掩码
  • 对应的网络地址、广播地址
  • 默认网关地址
  • DNS服务器地址

4.安装DHCP服务器

4.1DHCP服务器软件

  • CentOS光盘中的dhcp-4.2.5-47.el7.centos.x86_64.rpm
  • DHCP软件包的主要文件
    -主配置文件:/etc/dhcpd.conf
    -执行程序:/usr/sbin/dhcpd、/usr/sbin/dhcrelay

5. 配置DHCP服务器

[root@localhost ~]# yum -y install dhcp
dhcp-4.2.5-82.el7.centos.x86_64

rpm -qc 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



[root@localhost~]# cp -fp /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf
//拷贝模板起名为dhcpd.conf

5.1 设置全局配置参数

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

option domain-name "example.org" ;                        //指定默认搜索域,本地域名
option domain-name-servers ns1.example.org, ns2.example.org;     //指定DNS 服务器地址,多台用逗号隔开

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


ddns-update-style none;      //禁用DNS 动态更新,提高DHCP的效率,减少带宽的使用,默认注释了
ignore client-updates:       //与ddns-update-style设定相关,客户端可以通过DHcP服务器来更新DNs相关信息,这里暂时不予考虑,所以设置成igore.

5.2 subnet 网段声明(作用域整个子网段,部分配置参数优先级高于全局配置参数)

一台DHCP服务器可以为多个网段提供服务,因此 subnet网段声明必须有而且可以有多个。注意别少了每行结尾的分号!

subnet 192.168.80.0 netmask 255.255.255.0 {      #声明要分配的网段地址
range 192.168.80.2 192.168.80.223;               #设置地址池
option routers 192.168.80.254;                   #指定默认网关地址
}


subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100192.168.1.200;
option routers 192.168.1.254;
}

subnet 192.168.2.0 netmask 255.255.255.0 {
range 192.168.2.20192.168.2.30;
option routers 192.168.2.254;
}

dhcp默认日志记录在/var/log/messages

5.3 host主机生命,作用于单个主机

  • hardware ethernet参数:指定对应主机的MAC地址
  • fixed-address参数:指定为该主机保留的IP地址
host win7 {
hardware ethernet 00:0C:29:BE:10:C7;   #hardware ethernet: mac地址
fixed-address 192.168.10.105;          #保留地址
}

在服务器端可以通过查看租约文件/var/lib/dhcpd/dhcpd.leases来了解服务器的TP地址分配情况,具体操作如下。该租约文件中记录了分配出去的每个IP地址信息(租约记录),包括IP地址、客户端的MAC地址、租用的起始时间和结束时间等该文件初始为空,且无需管理员手工配置,但管理员可以浏览此文件查看DHcP服务器的运行情况文件包含租期声明,每次一个租期被获取,更新或释放,它的新值就被记录到文件的末尾
注意dhcpd.leases的时间记录采用GMT(格林威治)时间,而不是本地时区的时间,要查看GMT时间用date -u

[root@localhost ~]#less /var/lib/dhcpd/dhcpd.leases
lease 192.168.10.100{
starts 3 2021/06/23 07:06:02;
ends 3 2021/06/23 07:08:31;
tstp 3 2021/06/23 07:08: 31;
cltt 3 2021/06/23 07:06:02;
binding state free;
hardware ethernet 00:0c:29:be:10:c7;
uid " /001\000 \014) \276\020\307";

二、DHCP中继

1.DHCP中继原理

当企业内部网络规模比较大时,通常通过VLAN将网络规划为多个不同的子网。但是在该情况下一台 DHcP服务器无法为不同网段的客户机同时提供服务,因为 DHCP协议使用广播,而VLAN能隔离广播。

两种方法可以解决.
为每个网段安装一台DHCP服务器,但这种方式的弊端是:资源浪费与不利于管理;
在连接不同网段的设备上开启DHCP中继功能,将DECP这种特殊的广播信息在VLAN之间转发,让其他VLAN的客户机也能从DHCP服务器获取IP地址,

2.拓补图

在这里插入图片描述
在这里插入图片描述

3.挂载

在这里插入图片描述

[root@localhost ~]# df -h
文件系统        容量  已用  可用 已用% 挂载点
/dev/sda3        56G  5.5G   51G   10% /
devtmpfs        898M     0  898M    0% /dev
tmpfs           912M     0  912M    0% /dev/shm
tmpfs           912M  9.1M  903M    1% /run
tmpfs           912M     0  912M    0% /sys/fs/cgroup
/dev/sda1       497M  187M  311M   38% /boot
tmpfs           183M   40K  183M    1% /run/user/0
/dev/sr0        4.3G  4.3G     0  100% /run/media/root/CentOS 7 x86_64

[root@localhost ~]# mount /dev/sr0 /mnt
mount: /dev/sr0 写保护,将以只读方式挂载

[root@localhost ~]# df -h
文件系统        容量  已用  可用 已用% 挂载点
/dev/sda3        56G  5.5G   51G   10% /
devtmpfs        898M     0  898M    0% /dev
tmpfs           912M     0  912M    0% /dev/shm
tmpfs           912M  9.1M  903M    1% /run
tmpfs           912M     0  912M    0% /sys/fs/cgroup
/dev/sda1       497M  187M  311M   38% /boot
tmpfs           183M   40K  183M    1% /run/user/0
/dev/sr0        4.3G  4.3G     0  100% /mnt

4.安装DHCP

[root@localhost /]# cd /mnt/Packages/

[root@localhost /mnt/Packages]# rpm -ivh dhcp-
dhcp-4.2.5-58.el7.centos.x86_64.rpm         dhcp-libs-4.2.5-58.el7.centos.x86_64.rpm
dhcp-common-4.2.5-58.el7.centos.x86_64.rpm  

[root@localhost /mnt/Packages]# rpm -ivh dhcp-4.2.5-58.el7.centos.x86_64.rpm 
准备中...                          ################################# [100%]
正在升级/安装...
   1:dhcp-12:4.2.5-58.el7.centos      ################################# [100%]

[root@localhost /etc/dhcp]# cd /usr/share/doc/dhcp-4.2.5/
[root@localhost dhcp-4.2.5]# cp dhcpd.conf.example /etc/dhcp/dhcpd.conf

5. 配置网卡

在这里插入图片描述

在这里插入图片描述

[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="10471379-f0e6-49e4-b59a-df82173c9fba"
DEVICE="ens33"
ONBOOT="yes"
IPADDR="192.168.90.20"
NETMASK="255.255.255.0"
GATEWAY="192.168.90.254"

修改完后重启网络
systemctl restart network

6. 配置二层交换机(trunk)

undo terminal monitor     
#关闭消息提示(用户视图)

system-view            
#登录系统视图

sysname SW1/SW2         
#交换机改名为SW1/2

user-interface console 0   
#进入主控模式
idle-timeout 0 0        
#设置窗口永不过期

vlan batch 10 20 100
int e0/0/1 
port link-type trunk
port trunk allow-pass vlan all

int e0/0/2
p l a
p d v 10

int e0/0/3
p l a
p d v 20

int e0/0/4
p l a
p d v 100

int e0/0/5
p l a
p d v 100

7.配置三层交换机

vlan batch 10 20 100
int Vlanif 10
ip add 192.168.1.254 24

int Vlanif 20
ip add 192.168.2.254 24

int Vlanif 100
ip add 192.168.90.254 24

int g0/0/1 
port link-type trunk
port trunk allow-pass vlan all

8.配置dhcp.conf,实现 DHCP 转发

vim /etc/dhcp/dhcpd.conf
添加如下
option domain-name "DHCP服务器.com";
option domain-name-servers 114.114.114.114;

subnet 192.168.90.0 netmask 255.255.255.0 {
  range 192.168.90.128 192.168.90.150;
  option routers 192.168.90.254;
}

subnet 192.168.1.0 netmask 255.255.255.0 {
  range 192.168.1.128 192.168.1.150;
  option routers 192.168.1.254;
}

subnet 192.168.2.0 netmask 255.255.255.0 {
  range 192.168.2.128 192.168.2.150;
  option routers 192.168.2.254;

wq

systemctl restart dhcpd
#关闭并开启dhcp

9.测试连通性

都选择dhcp

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

最后测试

在这里插入图片描述


总结

  • 主要分配以下入网参数
    -IP地址/子网掩码/广播地址
    -默认网关地址、DNS服务器地址
    -PXE引导设置(TFTP服务器地址、引导文件名)
  • DHCP工作原理的四个步骤:用户请求阶段、服务器提供阶段、用户选择阶段、服务器确认阶段。
  • 服务器端口67、客户机端口68
  • 全局配置在/etc/dhcp/dhcpd.conf
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值