看完就能懂—Linux网络服务之DHCP原理与配置 (理论+实验)

前言

当局域网络中有大量的主机时,如果逐个为每一台主机手动设置 IP 地址、默认网关、DNS 服务器地址等网络参数,显然是一个费力也未必讨好的办法。而 DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)服务器的应用,正好可以解决这一问题

一、DHCP 工作原理

1.1 DHCP概述

  • DHCP(Dynamic Host Configuration Protocol,动态主机配置协议),是由Internet工作任务小组设计开发的,专门用于为TCP/IP网络中的计算机自动分配TCP/IP参数的协议
  • DHCP一般作用在局域网中,若在广域网中使用DHCP,需要在路由器上面配置
    DHCP服务器

1.2 使用DHCP好处

  • Internet的用户数量众多,所以不可能给每个用户固定一个IP地址,同时也为了避免浪费,我们使用DHCP服务来解决这个问题
  • 具有以下好处:
    • 减少管理员的工作量
    • 避免IP地址冲突
    • 当网络更改IP地址段时,不需要再重新配置每个用户的IP地址
    • 提高了IP地址的利用率
    • 方便客户端的配置

1.3 DHCP 的分配方式

  • DHCP的典型应用模式
    • 在网络中假设一台专用的DHCP服务器,负责集中分配各种网络地址参数(主要包括IP地址,子网掩码,广播地址,默认网关地址,DNS服务器地址)
    • 其他主机作为DHCP客户机,将网卡配置为自动获取地址,即可与DHCP服务器进行通信,完成自动配置过程
    • 这就产生了三种分配方式:
      • 自动分配
      • 手动分配
      • 动态分配

1.3.1 自动分配

  • 分配到一个IP地址后永久使用
  • 当DHCP客户机第一次成功的从DHCP服务器获取到一个IP地址后,就永久的使用这个IP地址
  • 例如:局域网中的打印机,局域网中的座机

1.3.2 手动分配

  • 由DHCP服务器管理员专门指定IP地址

1.3.3 动态分配

  • 使用完后释放该IP,供其他客户机使用
  • 当DHCP客户机第一次从DHCP服务器获得IP地址后,并非永久的使用该地址,而是在每次使用完后,DHCP客户机就会释放这个IP地址,供其他客户机使用
IP地址的获取和释放的命令
Windows 获取IP地址命令: ipconfig
        释放IP地址命令: release
Linux 获取IP地址命令: ifconfig
  重新获得IP地址命令: renew

1.4 租约过程概述

  • 客户机从DHCP服务器获得IP地址的过程称为DHCP的租约过程
  • 租约过程分为四个步骤
    • 客户端在网络中搜索服务器
    • 服务器向客户端响应服务
    • 客户端向服务器发出服务请求
    • 服务器向客户端提供服务
      租约过程
      1.客户端在网络中发送discover广播,以此来搜索DHCP服务器
      2.DHCP服务器接收到广播后,因不知道客户端的IP地址,所以同样以广播的形式将offer发送,来响应主机
      3.客户机收到offer后,开始发出request广播
      4.DHCP收到广播后,依旧不知道客户机IP地址,发送回复request的ACK确认广播

1.4.1 客户机请求 IP 地址

  • 客户机请求IP地址:发送DHCP discover广播
    • 当一个DHCP客户机启动时,客户机还没有IP地址,所以客户机要通过DHCP获取一个合法的地址
    • 此时DHCP客户机以广播方式发送DHCP discover发现信息来寻找DHCP服务器
    • 因为自己没有IP地址,所以源IP地址为:0.0.0.0
    • 同时也不知道DHCP服务器地址,所以发送广播255.255.255.255
      客户机请求 IP 地址

1.4.2 服务器响应

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

1.4.3 客户机选择 IP 地址

  • 客户机选择IP地址:发送DHCP request广播
    • DHCP客户机从接收到的第一个DHCP offer消息中提取IP地址,发出IP地址的DHCP服务器将该地址保留,这样该地址就不能再分配给另一个DHCP客户机
    • 第一个DHCP offer表示:若局域网中同时存在两个DHCP,那么客户机根据收到DHCP offer的顺序来确定使用哪个DHCP服务器的地址
    • 客户机发送DHCP request 广播,选择IP地址,并附上租约期限信息(默认8天)
      客户机选择IP

1.4.4 服务器确定租约

  • 服务器确定租约:发送DHCP ACK广播
    • DHCP服务器接收到DHCP request消息后,以DHCP ACK消息的形式向客户机广播成功确认,该消息包含有IP地址的有效租约和其他可配置的消息
    • 当客户机收到DHCP ACK消息时,他就配置了IP地址,完成TCP/IP的初始化
    • 此时服务器发出的仍旧是广播,因为客户机还没有IP地址
      服务器启动租约

1.4.5 重新登录

  • DHCP客户机每次重新登录网络时,不需要在发送DHCP的discover信息,而是直接发送包含前一次所分配的IP地址的DHCP request请求信息
  • DHCP服务器收到请求后,检查IP地址资源池
    • 发现客户机请求中的IP地址仍旧存在,便发送ACK,将IP地址分配给客户机
    • 发现客户机请求中的IP地址已被占用,便返回一个Nack否认信息,然后客户机重新开始请求IP地址的步骤
      重新登录

1.4.6 更新租约

  • 当DHCP服务器向客户机出租的IP地址租期达到50%时,就需要更新租约
  • 客户机直接向提供租约的服务器发送DHCP request包,要求更新现有的地址租约
  • 若DHCP服务器宕机,客户机租约到期后,会自动释放地址,然后使用169.254.0.0–169.254.255.255网段的地址

二、DHCP服务器的配置

2.1 DHCP服务

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

2.2 可分配的地址信息

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

2.3 安装DHCP服务器

  • DHCP服务器软件
    • centos镜像中的dhcp…rpm
  • DHCP软件包的主要文件
    • 主配置文件:/etc/dhcpd.conf
    • 执行程序:/usr/sbin/dhcpd,/usr/sbin/dhcrelay
    • 执行参数配置:/etc/sysconfig/dhcpd

2.4:DHCP主配置文件详解

2.4.1 dhcpd.conf的内容构成

ddns-update-style interim;  '全局配置参数,针对所有子网段'
...省略内容
subnet 10.152.187.0 netmask 255.255.255.0 {'网段声明'
  option routers 10.5.5.1;	 '配置选项,网关'
  ...
  default-lease-time 600;		'配置参数,租约'
   ...
  host ns{
        ...
        fixed-address 207.175.42.254'主机声明,固定的主机地址'
    }
}

2.4.2 全局设置,作用于整个DHCP服务器

配置解释
ddns-update-style none;禁止dns动态更新
default-lease-time 21600;默认租约期限
max-lease-time 43200;最大租约期限
option domain-name"domain.org";指定域名
option domain-name-servers 202.106.0.20;指定分配dns地址

2.4.3 subnet网段声明,作用于整个子网段

  • range参数:设置用于分配的IP地址池
  • option subnet-mask 参数: 设置客户机的子网掩码
  • option routers 参数: 设置客户机的默认网关地址
[root@localhost dhcp]# vim /etc/dhcp/dhcpd.conf
subnet 10.254.239.32 netmask 255.255.255.224 {
  range dynamic-bootp 10.254.239.40 10.254.239.60;
  option broadcast-address 10.254.239.31;
  option routers rtr-239-32-1.example.org;
}

2.4.4 host主机声明,作用于单个主机

  • hardware ethernet 参数:指定对应主机的MAC地址
  • fixed-address参数:指定为该主机保留的IP地址

2.4.5 查看租约文件

  • 启动DHCP
  • 查看租约文件 /var/lib/dhcpd/dhcpd.lease
[root@localhost ~]# vim /var/lib/dhcpd/dhcpd.leases 
或者
[root@localhost ~]# less /var/lib/dhcpd/dhcpd.leases 
或者其他的

三、DHCP客户端的使用方法

3.1 修改网卡配置文件(如ifcfg-ens33)

其中BOOTPROTO=dhcp

[root@localhost dhcpd]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp"
...省略内容

3.2 使用dhclient命令

命令基本格式
dhclient [-d] [网络接口名]
例如
[root@localhost ~]# dhclient -d ens33

四、DHCP中继实验

4.1 DHCP中继的配置命令

命令基本格式
ip helper-address HDCPsrv-IPAddress
(HDCPsrv-IPAddress为DHCP服务器的IP地址)

4.2 实验环境

实验环境

4.3 实验过程

4.3.1 SW2配置

sysname SW2
#
vlan batch 10 20 30

interface Ethernet0/0/1
 port link-type access
 port default vlan 10
#
interface Ethernet0/0/2
 port link-type access
 port default vlan 20
#
interface Ethernet0/0/3
 port link-type access
 port default vlan 30

interface GigabitEthernet0/0/1
 port link-type trunk
 port trunk allow-pass vlan 2 to 4094

4.3.2 SW1 配置

sysname RSW1
#
vlan batch 10 20 30

dhcp enable            ###开机自启dhcp服务

interface Vlanif10
 ip address 192.168.10.1 255.255.255.0
un sh
 dhcp select relay
 dhcp relay server-ip 192.168.100.10
#
interface Vlanif20
 ip address 192.168.20.1 255.255.255.0
un sh
 dhcp select relay
 dhcp relay server-ip 192.168.100.10
#
interface Vlanif30
 ip address 192.168.100.1 255.255.255.0
un sh
#
interface GigabitEthernet0/0/1
port link-type trunk
port trunk allow-pass vlan 2 to 4094

4.3.3服务器配置

服务器配置

4.3.4 PC1、PC2配置

  • PC1,2开启DHCP服务
    pc1,pc2配置

4.3.5 虚拟机配置

  • 192.168.10.0 网段
yum -y install dhcpd
在虚拟机进入 vi  /etc/dhcp/dhcpd.conf
在里面添加配置文件
注意!逐个PC添加然后保存退出
192.168.10.1网段的PC:
subnet 192.168.10.0 netmask 255.255.255.0{
range 192.168.10.100 192.168.10.200;
option routers 192.168.10.1;
option subnet-mask 255.255.255.0;
option domain-name "www.bdqn1.com";
option domain-name-servers 114.114.114.114,8.8.8.8;
default-lease-time 21600;
max-lease-time 43200;
}
配置完之后
systemctl restart dhcpd  ###配完之后重启一下dhcp服务
  • 然后进入PC1,获取并验证一下
    验证
  • 192.168.20.0 网段
192.168.20.1网段的PC:
subnet 192.168.20.0 netmask 255.255.255.0{
range 192.168.20.100 192.168.20.200;
option routers 192.168.20.1;
option subnet-mask 255.255.255.0;
option domain-name "www.bdqn2.com";
option domain-name-servers 114.114.114.114,8.8.8.8;
default-lease-time 21600;
max-lease-time 43200;
}
systemctl restart dhcpd  ###配完之后重启一下dhcp服务
  • 然后进入PC2,获取并验证一下
    验证
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值