前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CentOS 7下搭建DHCP中继服务详解

CentOS 7下搭建DHCP中继服务详解

作者头像
星哥玩云
发布2022-07-28 15:05:17
1K0
发布2022-07-28 15:05:17
举报
文章被收录于专栏:开源部署开源部署

DHCP原理与配置

了解DHCP服务

  • DHCP是由internet工作任务小组设计开发的,专门用于为TCP/IP网络中的计算机自动分配TCP/IP参数的协议
使用DHCP的好处
  • 减少管理员的工作量
  • 避免IP地址冲突
  • 当网络更改IP地址段时,不需要再重新配置每个用户的IP地址
  • 提高了IP地址的利用率
  • 方便客户端的配置
DHCP的分配方式
  • 自动分配
    • 分配到一个IP地址后永久使用
  • 手动分配
    • 由DHCP服务器管理员专门指定IP地址
  • 动态分配
    • 使用完后释放改IP,供其它客户机使用
  • 手动分配
    • 由DHCP服务器管理员专门指定IP地址
DHCP的租约过程
  • 客户机从DHCP服务器获得IP地址的工程称为DHCP的租约过程
  • 租约过程分为4个步骤 1、客户机请求IP地址 Discover
    • 当一个DHCP客户机启动时,客户机还没有IP地址,所以客户机要通过DHCP获取一个合法的地址,此时DHCP客户机一广播方式发送DHCP Discover发现信息来寻找DHCP服务器

    2、响应服务 Offer

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

    3、客户机选择IP地址 Request

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

    4、服务器确定租约 ACK

    • DHCP服务器接受到DHCP Request消息后,以DHCP ACK消息的形式向客户机广播成功确认,该消息包含有IP地址的有效租约和其他可配置的信息
  • DHCP客户机每次重新登录网络时,不需要再发送DHCP Discover信息,而是直接发送包含前一次所分配的IP地址的DHCP Request请求信息
  • 更新租约
    • 当DHCP服务器向客户机出租的IP地址租期达到50%是,就需要更新租约
    • 客户机直接向提供租约的服务器发送DHCP Request包,要求更新现有的地址租约
使用DHCP动态配置主机地址
  • DHCP服务 为大量客户机自动分配地址,提供集中管理 减轻管理和维护成本、提高网络配置效率
  • 可分配的地址信息主要包括 网卡的IP地址、子网掩码 对应的网络地址、广播地址 默认网关地址 DNS服务器地址
  • 安装DHCP服务器
代码语言:javascript
复制
[root@localhost ~]# yum install dhcp -y
  • 主配置文件
    • /etc/dhcp/dhcpd.conf
  • 查看租约文件
    • /var/lib/dhcpd/dhcpd.lease
使用DHCP客户端
  • 修改网卡配置文件
    • BOOTPROTO=dhcp
  • 使用dhclient命令
    • dhclient [-d] [网络接口名]

搭建DHCP中继服务

实验环境:
  • 使用VMware 15
  • c3725路由镜像文件
  • 使用GNS3 1.3.1  使用方法 https://www.linuxidc.com/Linux/2019-10/160968.htm
  • win 10 镜像
  • win 7 镜像
  • CentOS 7镜像
搭建服务

1、在GNS3中搭建DHCP中继服务的拓扑图,方便我们搭建服务的时候理清思路。在这里我使用一台win 10虚拟机、一台win 7虚拟机、一台CentOS 7虚拟机、两台c3725路由设备。首先添加两台路由设备,并在路由设备上添加磁盘空间方便我们创建vlan,添加2层交换接口,方便我们把路由设备做成一个3层交换设备与一个2层交换设备。添加三台host主机,分别更名为DHC、win 10、win 7,这个时候还需要我们在VMware 15虚拟机设备中添加两块虚拟网卡,设知道仅主机模式,这个时候在重新回到GNS3中使用链接线将设备接起来,这个实验中我们将划分3个vlan,分别将3台虚拟机划分到不同的vlan中(vlan地址划分:vlan10:192.168.10.1/24、vlan20:192.168.20.1/24、vlan100:192.168.100.1/24,给DHCP服务器指定静态IP地址 192.168.100.100。如下图所示:

CentOS 7下搭建DHCP中继服务详解
CentOS 7下搭建DHCP中继服务详解

2、打开VMware 15,开启win 10、win 7、CentOS 7虚拟机,在CentOS 7虚拟机中安装DHCP服务;安装完成后分别给win 10、win 7、CentOS 7虚拟机绑定网卡,win 10绑定VMnet2网卡,win 7绑定VMnet3网卡CentOS 7绑定VMnet1网卡;然会回到CentOS 7中配置静态路由、配置DHCP服务,完成后开启服务,关闭防火墙,关闭增强性安全文件。

代码语言:javascript
复制
[root@localhost ~]# yum install dhcp -y   //安装DHCP服务
已加载插件:fastestmirror, langpacks
base                                                                                | 3.6 kB  00:00:00     
extras                                                                              | 3.4 kB  00:00:00     
updates                                                                             | 3.4 kB  00:00:00     
(1/4): base/7/x86_64/group_gz                                                      | 166 kB  00:00:00     
(2/4): base/7/x86_64/primary_db                                                    | 6.0 MB  00:00:01    
...//省略部分内容...
CentOS 7下搭建DHCP中继服务详解
CentOS 7下搭建DHCP中继服务详解
CentOS 7下搭建DHCP中继服务详解
CentOS 7下搭建DHCP中继服务详解
代码语言:javascript
复制
[root@localhost ~]# ifconfig  //查看网卡信息
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500   //此时无法获取IP地址
        inet6 fe80::a85a:c203:e2e:3f3c  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:5b:d3:a0  txqueuelen 1000  (Ethernet)
        RX packets 47  bytes 30451 (29.7 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 122  bytes 13596 (13.2 KiB)
        ...//省略部分内容...
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33  //进入ens33网卡配置文件

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static          //更改dhcp为static配置静态IP地址
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=2ef6b862-5201-48c5-a450-23b3720ab3a0
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.100.100         //配置IP地址
NETMASK=255.255.255.0          //配置子网掩码
GATEWAY=192.168.100.1          //配置网关
~                                                                                      
~                                                                                         
:wq                             //保存退出    
[root@localhost ~]# service network restart          //重新启动网络服务
Restarting network (via systemctl):                        [  确定  ]
[root@localhost ~]# ifconfig                          //查看网卡信息
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500  //获取静态IP地址
        inet 192.168.100.100  netmask 255.255.255.0  broadcast 192.168.100.255
        inet6 fe80::a85a:c203:e2e:3f3c  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:5b:d3:a0  txqueuelen 1000  (Ethernet)
        RX packets 48  bytes 30694 (29.9 KiB)
        ...//省略部分内容...
代码语言:javascript
复制
[root@localhost ~]# vim /etc/dhcp/dhcpd.conf         //进入dhcp服务主配置文件

#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.example  //显示dhcp配置文件模板位置
#   see dhcpd.conf(5) man page
#
~                                                                                      
...//省略部分内容...                                                                    
~                                                                                      
:r /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example  //将dhcpd配置文件模板写入主配置文件
//写入的著配置文件:
#
# dhcpd.conf
#
# Sample configuration file for ISC dhcpd
#

# option definitions common to all supported networks...
option domain-name "example.org";
option domain-name-servers ns1.example.org, ns2.example.org;

default-lease-time 600;
max-lease-time 7200;

# Use this to enble / disable dynamic dns updates globally.
#ddns-update-style none;

# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
#authoritative;

# Use this to send dhcp log messages to a different log file (you also
# have to hack syslog.conf to complete the redirection).
log-facility local7;

# No service will be given on this subnet, but declaring it helps the    
# DHCP server to understand the network topology.

subnet 10.152.187.0 netmask 255.255.255.0 {
}                                                 //主要在此处做出更改

# This is a very basic subnet declaration.

subnet 10.254.239.0 netmask 255.255.255.224 {
  range 10.254.239.10 10.254.239.20;
  option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;
}

//更改后的配置文件信息:
...//省略部分内容...
# No service will be given on this subnet, but declaring it helps the 
# DHCP server to understand the network topology.

subnet 192.168.100.0 netmask 255.255.255.0 {       //更改IP网段
        range 192.168.100.100 192.168.100.200;     //可以分配的IP地址范围
        option routers 192.168.100.1;              //网关信息(注意,每段结束以;结尾)
}                                                  //注意最后的大括号不可删除,否则服务无法开启

subnet 192.168.10.0 netmask 255.255.255.0 {
        range 192.168.10.100 192.168.10.200;    //添加vlan 10网段的地址分配条目
        option routers 192.168.10.1;
}

subnet 192.168.20.0 netmask 255.255.255.0 {
        range 192.168.20.100 192.168.20.200;    //添加vlan 20网段的地址分配条目
        option routers 192.168.20.1;
}

# This is a very basic subnet declaration.
:wq     //保存退出
//因为我们这边设置了三个vlan,网段都不相同,所以三个网段都要添加

[root@localhost ~]# systemctl start dhcpd       //开启dhcp服务
[root@localhost ~]# systemctl status dhcpd      //查看服务是否开启
 dhcpd.service - DHCPv4 Server Daemon
   Loaded: loaded (/usr/lib/systemd/system/dhcpd.service; disabled; vendor preset: disabled)
   Active: active (running) since 三 2019-09-04 22:56:05 CST; 14s ago //服务成功开启
     Docs: man:dhcpd(8)
           man:dhcpd.conf(5)
 Main PID: 5343 (dhcpd)
   Status: "Dispatching packets..."
   CGroup: /system.slice/dhcpd.service
           └─5343 /usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhc...

9月 04 22:56:05 localhost.localdomain dhcpd[5343]: No subnet declaration for virbr....
...//省略部分内容...
9月 04 22:56:05 localhost.localdomain systemd[1]: Started DHCPv4 Server Daemon.
Hint: Some lines were ellipsized, use -l to show in full.

3、DHCP服务开启后我们回到GNS3中,开启添加的3层交换机与2层交换机,并双击进入3层交换设备与2层交换设备,在2层交换设备中配置vlan,并将接入链路分别接入相对应的vlan中,将f1/0接口配置为trunk链路,在3层交换设备中同样设置vlan,然后进入vlan中配置IP地址,并指定IP地址192.168.100.100可以通过vlan在局域网中通信,最后将f1/0接口同样配置为trunk链路。

CentOS 7下搭建DHCP中继服务详解
CentOS 7下搭建DHCP中继服务详解
代码语言:javascript
复制
sw2#conf t                 //在2层交换设备中进入全局模式
Enter configuration commands, one per line.  End with CNTL/Z.
sw2(config)#vlan 10,20,100   //配置vlan10、20、100
sw2(config-vlan)#ex           //退出vlan接口
sw2(config)#do show vlan-sw b //查看vlna是否配置成功

VLAN Name                             Status    Ports
---- -------------------------------- --------- -------------------------------
1    default                          active    Fa1/0, Fa1/1, Fa1/2, Fa1/3
                                                Fa1/4, Fa1/5, Fa1/6, Fa1/7
                                                Fa1/8, Fa1/9, Fa1/10, Fa1/11
                                                Fa1/12, Fa1/13, Fa1/14, Fa1/15
10   VLAN0010                         active    
20   VLAN0020                         active    //配置的vlan
100  VLAN0100                         active    
1002 fddi-default                     act/unsup 
1003 token-ring-default               act/unsup 
1004 fddinet-default                  act/unsup 
1005 trnet-default                    act/unsup 
sw2(config)#int f1/1       //进入f1/1接口
sw2(config-if)#sw m acc    //进入配置链路
sw2(config-if)#sw acc vlan 100 //将链路接入vlan100
sw2(config-if)#ex          //退出
sw2(config)#int f1/2        //进入f1/2接口
sw2(config-if)#sw m acc      //进入配置链路
sw2(config-if)#sw acc vlan 10  //将链路接入vlan10
sw2(config-if)#ex              //退出
sw2(config)#int f1/3       //进入f1/3接口
sw2(config-if)#sw m acc      //进入配置链路
sw2(config-if)#sw acc vlan 20  //将链路接入vlan20
sw2(config-if)#ex             //退出
sw2(config)#do show vlan-sw b  //查看vlna

VLAN Name                             Status    Ports
---- -------------------------------- --------- -------------------------------
1    default                          active    Fa1/0, Fa1/4, Fa1/5, Fa1/6
                                                Fa1/7, Fa1/8, Fa1/9, Fa1/10
                                                Fa1/11, Fa1/12, Fa1/13, Fa1/14
                                                Fa1/15
10   VLAN0010                         active    Fa1/2   
20   VLAN0020                         active    Fa1/3      //链路成功接入vlan
100  VLAN0100                         active    Fa1/1
1002 fddi-default                     act/unsup 
1003 token-ring-default               act/unsup 
1004 fddinet-default                  act/unsup 
1005 trnet-default                    act/unsup 
sw2(config)#int f1/0           //进入f1/0接口
sw2(config-if)#sw m t          //将接口配置为trunk
sw2(config-if)#sw t en do       //在trunk链路中封装dot1q协议
sw2(config-if)#ex              //退出
sw2(config)#do show int f1/0 switchport  //查看接口是否配置成功
Name: Fa1/0
Switchport: Enabled
Administrative Mode: trunk           //成功配置trunk链路
Operational Mode: trunk
Administrative Trunking Encapsulation: dot1q
Operational Trunking Encapsulation: dot1q
Negotiation of Trunking: Disabled
Access Mode VLAN: 0 ((Inactive))
Trunking Native Mode VLAN: 1 (default)
Trunking VLANs Enabled: ALL
Trunking VLANs Active: 1,10,20,100
Protected: false
Priority for untagged frames: 0
Override vlan tag priority: FALSE
Voice VLAN: none 
Appliance trust: none
sw2(config)#no ip routing   //关闭2层交换设备路由功能
代码语言:javascript
复制
sw3(config)#vlan 10,20,100    //在3层交换设备中配置vlan10、20、100 
sw3(config-vlan)#ex            //退出  
sw3(config)#do show vlan-sw b    //查看vlan

VLAN Name                             Status    Ports
---- -------------------------------- --------- -------------------------------
1    default                          active    Fa1/0, Fa1/1, Fa1/2, Fa1/3
                                                Fa1/4, Fa1/5, Fa1/6, Fa1/7
                                                Fa1/8, Fa1/9, Fa1/10, Fa1/11
                                                Fa1/12, Fa1/13, Fa1/14, Fa1/15
10   VLAN0010                         active    
20   VLAN0020                         active     //配置成功
100  VLAN0100                         active    
1002 fddi-default                     act/unsup 
1003 token-ring-default               act/unsup 
1004 fddinet-default                  act/unsup 
1005 trnet-default                    act/unsup 
sw3(config)#int vlan 10                        //进入虚拟接口vlan10 
sw3(config-if)#ip add 192.168.10.1 255.255.255.0   //在接口中添加IP地址 
sw3(config-if)#ip helper-address 192.168.100.100   //指定IP地址192.168.100.100可通过接口
sw3(config-if)#no shut                            //开启配置
sw3(config-if)#ex                            //退出
sw3(config)#int vlan 20                  //进入虚拟接口vlan20
sw3(config-if)#ip add 192.168.20.1 255.255.255.0   //在接口中添加IP地址 
sw3(config-if)#ip helper-address 192.168.100.100  //指定IP地址192.168.100.100可通过接口
sw3(config-if)#no shut                          //开启配置
sw3(config-if)#ex                            //退出
sw3(config)#int vlan 100               //进入虚拟接口vlan100
sw3(config-if)#ip add 192.168.100.1 255.255.255.0 //在接口中添加IP地址 
sw3(config-if)#ip helper-address 192.168.100.100   //指定IP地址192.168.100.100可通过接口
sw3(config-if)#no shut                           //开启配置
sw3(config-if)#ex                      //退出
sw3(config)#int f1/0              //进入f1/0 接口
sw3(config-if)#sw m t            //配置为trunk链路
*Mar  1 00:22:18.607: %DTP-5-TRUNKPORTON: Port Fa1/0 has become dot1q trunk
*Mar  1 00:22:19.111: %LINEPROTO-5-UPDOWN: Line protocol on Interface Vlan10, changed state to up
*Mar  1 00:22:19.119: %LINEPROTO-5-UPDOWN: Line protocol on Interface Vlan20, changed state to up
*Mar  1 00:22:19.127: %LINEPROTO-5-UPDOWN: Line protocol on Interface Vlan100, changed state to up
sw3(config-if)#sw t en do    //封装协议
sw3(config-if)#ex             //突出
sw3(config)#do show int f1/0 switchport  //查看trunk是否配置成功 
Name: Fa1/0
Switchport: Enabled
Administrative Mode: trunk      //成功配置trunk链路
Operational Mode: trunk
Administrative Trunking Encapsulation: dot1q
Operational Trunking Encapsulation: dot1q
Negotiation of Trunking: Disabled
Access Mode VLAN: 0 ((Inactive))
Trunking Native Mode VLAN: 1 (default)
Trunking VLANs Enabled: ALL
Trunking VLANs Active: 1,10,20,100
Protected: false
Priority for untagged frames: 0
Override vlan tag priority: FALSE
Voice VLAN: none 
Appliance trust: none 
sw3(config)#do show ip int b     //查看IP地址是否配入vlan,是否开启
Interface                  IP-Address      OK? Method Status                Protocol
FastEthernet0/0            unassigned      YES unset  administratively down down    
FastEthernet0/1            unassigned      YES unset  administratively down down    
FastEthernet1/0            unassigned      YES unset  up                    up      
FastEthernet1/1            unassigned      YES unset  up                    down    
...//省略部分内容... 
FastEthernet1/14           unassigned      YES unset  up                    down    
FastEthernet1/15           unassigned      YES unset  up                    down    
Vlan1                      unassigned      YES unset  up                    up      
Vlan10                     192.168.10.1    YES manual up                    up      
Vlan20                     192.168.20.1    YES manual up                    up      
Vlan100                    192.168.100.1   YES manual up                    up  
//成功配入,并开启

4、完成配置后我们来查看虚拟机客户端win 10、win 7是否自动获取IP地址

CentOS 7下搭建DHCP中继服务详解
CentOS 7下搭建DHCP中继服务详解
CentOS 7下搭建DHCP中继服务详解
CentOS 7下搭建DHCP中继服务详解
CentOS 7下搭建DHCP中继服务详解
CentOS 7下搭建DHCP中继服务详解

5、下面我们来给win 10 客户机指定固定的IP地址,首先在win 10客户机中获取win 10客户机网卡的MAC地址,然后会的CentOS 7系统中进入DHCP配置文件中进行设置

CentOS 7下搭建DHCP中继服务详解
CentOS 7下搭建DHCP中继服务详解
CentOS 7下搭建DHCP中继服务详解
CentOS 7下搭建DHCP中继服务详解
CentOS 7下搭建DHCP中继服务详解
CentOS 7下搭建DHCP中继服务详解
CentOS 7下搭建DHCP中继服务详解
CentOS 7下搭建DHCP中继服务详解
CentOS 7下搭建DHCP中继服务详解
CentOS 7下搭建DHCP中继服务详解
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • DHCP原理与配置
  • 了解DHCP服务
    • 使用DHCP的好处
      • DHCP的分配方式
        • DHCP的租约过程
          • 使用DHCP动态配置主机地址
            • 使用DHCP客户端
            • 搭建DHCP中继服务
              • 实验环境:
                • 搭建服务
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档