实验注解——Linux中DHCP服务器原理与配置(详细操作步骤及图释)

DHCP工作原理及概述

DHCP概述

  • DHCP(Dynamic Host Configuration Protocol)中文:动态主机配置协议
  • 由Internet工作任务小组设计开发
  • 专门用于为TCP/IP网络中的计算机自动分配TCP/IP参数的协议
  • DHCP的优势
    • 减少管理员的工作量
    • 避免输入错误的可能
    • 避免IP地址冲突
    • 当更改IP地址段时,不需要重新配置每个用户的IP地址
    • 提高了IP地址的利用率
    • 方便客户端的配置
  • DHCP可分配的地址信息主要包括
    • 网卡的IP地址、子网掩码
    • 对应的网络地址、广播地址
    • 默认网关地址
    • DHS服务器地址
  • DHCP的分配方式
    • 自动分配:分配到一个IP地址后永久使用
    • 手动分配:由DHCP服务器管理员专门指定IP地址
    • 动态分配:使用完后释放该IP,供其他客户机使用

DHCP工作原理

  • 1.客户端在网络中搜索服务器。
    客户端通过广播发送DHCP Discover报文寻找服务器端
  • 2.服务器向客户端响应服务。
    服务器端通过单播发送DHCP Offer 报文向客户端提供IP地址等网络信息,从IP地址池中挑选一个尚未分配的IP地址分配客户端
  • 3.客户端向服务器发出服务请求。
    如果有多台DHCP服务器向该客户端发来DHCP-offer报文,客户端只接受第一个收到的DHCP-offer报文并提取IP地址,然后客户端通过广播发送DHCP Request报文告知服务器端本地选择使用该IP地址
  • 4.服务器向客户端提供服务。
    服务器通过单播发送DHCP Ack报文告知客户端IP地址是合法可用的,并在选项字段中增加IP地址的使用租期信息
  • 5.重新登录
    DHCP客户机每次重新登录网络时,不需要再发送 DHCP Discover 信息,而是直接发送包含前一次所分配的IP地址的 DHCP Request请求信息。
  • 6.更新租约
    当DHCP服务器向客户机出租的IP地址租期达到50%时,就需要更新租约。客户机直接向提供租约的服务器发送DHCP Request包,要求更新现有的地址租约

DHCP的租约过程

  • DHCP的租约过程:客户机从DHCP服务器获得IP地址的过程
  • 共分为四个步骤
    • 1.客户端在网络中搜索服务器
    • 2.服务器向客户端响应服务
    • 3.客户端向目标服务器发出服务请求
    • 4.服务器向客户端提供服务

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

  • 客户机选择IP地址过程
    • DHCP客户机从接收到的第一个DHCP Offer消息中提取 IP 地址,发出IP地址的DHCP服务器将该地址保留,这样该地址就不能再分配给另一个DHCP客户机了

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

  • 更新租约
    • 当DHCP服务器向客户机出租的IP地址租期达到50%时,就需要更新租约
    • 客户机直接向提供租约的服务器发送DHCP Request包,要求更新现有的地址租约

DHCP服务器的配置

DHCP服务器软件

  • CentOS光盘中的
    在这里插入图片描述

  • DHCP软件包的主要文件

    • 主要配置文件:/etc/dhcpd.conf
    • 执行程序: /usr/sbin/dhcpd、/usr/sbin/dhcrelay

DHCP操作步骤详解及图释

  • DHCP服务器配置
[root@localhost yum.repos.d]# yum install -y dhcp   (yum安装dhcp)

[root@localhost /]# cd /usr/share/doc/dhcp-4.2.5/

[root@localhost dhcp-4.2.5]# cp dhcpd.conf.example /etc/dhcp/dhcpd.conf
cp:是否覆盖"/etc/dhcp/dhcpd.conf"? yes

[root@localhost dhcp]# vim dhcpd.conf   (设置全局配置参数)

default-lease-time 600;                 (默认租约为10分钟,单位为秒)
max-lease-time 7200;                    (默认租约为120分钟,单位为秒)
option domain-name "qz.com";            (设置域名)
option domain-name-servers 8.8.8.8;     (指定DNS服务器地址)
#ddns-update-style none;                (禁用DNS动态更新,默认为禁用)


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

subnet 192.168.100.0 netmask 255.255.255.0 {
    
         (声明要分配的网段地址)
  range 192.168.100.10 192.168.100.20;           (设置地址池)
  option routers 192.168.100.254;                (指定默认网关地址)
}

subnet 192.168.1.0 netmask 255.255.255.0 {
    
    
  range 192.168.1.100 192.168.1.120;
  option routers 192.168.1.254;
}

subnet 192.168.2.0 netmask 255.255.255.0 {
    
    
  range 192.168.2.200 192.168.2.220;
  option routers 192.168.2.254;
}
# This declaration allows BOOTP clients to get dynamic addresses,
# which we don't really recommend.

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;
}


host主机声明(给指定主机分配固定的IP地址)
host hostname {
    
                                      (指定需要分配固定IP地址的客户机名称)
  hardware ethernet 54:89:98:6A:43:BF;           (指定该主机的MAC地址,这里用":"分隔)
  fixed-address 192.168.1.88;                    (指定保留给该主机的IP地址)
}
:wq
[root@localhost dhcp]# netstat -naup | grep ":67"
udp        0      0 0.0.0.0:67              0.0.0.0:*                           38790/dhcpd         
udp        0      0 0.0.0.0:67              0.0.0.0:*                           1200/dnsmasq 
[root@localhost dhcp]# tail -f /var/log/messages (如果DHCP服务启动失败,可以查看日志文件) 
  • 需要使用DHCP动态获取IP的Linux客户端配置
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33 
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp"        (此处修改成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="ba6fd265-7502-4eea-9c89-14a836b1ad94"
DEVICE="ens33"
ONBOOT="yes"
#IPADDR=192.168.131.12
#GATEWAY=192.168.131.2
#DNS1=192.168.131.2
#NETMASK=255.255.255.0
~                                                                               
~                                                                               
~                                                                               
~                                                                               
:wq
[root@localhost ~]# ifdown ens33
成功断开设备 'ens33'[root@localhost ~]# ifup ens33
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/17
  • eNSP中的配置及图解(这里使用eNSP模拟Windows)
[SW2]vlan batch 10 20 100
[SW2-GigabitEthernet0/0/1]port link-type trunk 
[SW2-GigabitEthernet0/0/1]port trunk allow-pass vlan all
[SW2-GigabitEthernet0/0/1]q
[SW2]int Vlanif 10
[SW2-Vlanif10]ip address 192.168.1.254 24	
[SW2-Vlanif10]int Vlanif 20
[SW2-Vlanif20]ip address 192.168.2.254 24
[SW2-Vlanif20]int Vlanif 100
[SW2-Vlanif100]ip address 192.168.100.254 24
[SW2-Vlanif100]q
[SW2]dhcp enable 
[SW2]interface Vlanif 100
[SW2-Vlanif100]dhcp select relay 
[SW2-Vlanif100]dhcp relay server-ip 192.168.100.20
[SW2-Vlanif100]int vlanif 20
[SW2-Vlanif20]dhcp select relay
[SW2-Vlanif20]dhcp relay server-ip 192.168.100.20
[SW2-Vlanif20]int vlanif 10
[SW2-Vlanif10]dhcp select relay
[SW2-Vlanif10]dhcp relay server-ip 192.168.100.20
[SW2-Vlanif10]q








[SW1]vlan batch 10 20 100
Info: This operation may take a few seconds. Please wait for a moment...done.
[SW1]int e0/0/01
[SW1-Ethernet0/0/1]port link-type access 
[SW1-Ethernet0/0/1]port default vlan 10
[SW1-Ethernet0/0/1]int e0/0/02
[SW1-Ethernet0/0/2]port link-type access 
[SW1-Ethernet0/0/2]port default vlan 20
[SW1-Ethernet0/0/2]int e0/0/04
[SW1-Ethernet0/0/4]port link-type access 
[SW1-Ethernet0/0/4]port default vlan 100
[SW1-Ethernet0/0/4]int e0/0/03	
[SW1-Ethernet0/0/3]port link-type trunk 
[SW1-Ethernet0/0/3]port trunk allow-pass vlan all 

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/TaKe___Easy/article/details/113969124
今日推荐