Linux--详解DHCP服务、DHCP中继服务的原理与配置

DHCP服务器

  • DHCP(Dynamic Host configuration Protocol)动态主机配置协议
  • DHCP协议可以为客户端自动发放TCP/IP参数信息
  • ip地址,子网掩码,网关,DNS等信息
  • 避免了一些繁琐的地址配置操作

使用DHCP的好处

  • 减少管理员的工作量
  • 避免输入错误的可能
  • 避免IP地址冲突
  • 当更新IP地址段时,不需要重新配置每个用户的IP地址
  • 方便客户端的配置

DHCP的分配方式

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

DHCP工作原理

  • 客户端需要寻求网络ip地址和其他网络参数,向网络中发送广播请求,客户端发出的请求名为DHCP DISCOVER。
  • 如果广播网络中有可以分配ip地址的服务器,服务器会返回相应的应答,告诉客户端可以分配IP地址,服务器返回的包叫做DHCP OFFER包含ip地址,子网掩码,网关,DNS等信息。
  • 客户端在收到服务器的DHCP OFFER包后,会广播DHCP REQUEST包,用以通知DHCP服务器和未选定的DHCP服务器。
  • 服务端收到DHCP REQUEST后检查收到的包,如果包内的地址和所提供的地址一致,并且可用,证明客户端使用的事自己提供的地址,此时服务端会向客户端发送DHCP ACK包,如果包内的地址已被占用,则发送DHCP NOACK。
  • 客户端在收到DHCP ACK包后,使用服务端给的ip地址,分配完成,如果收到DHCP NOACK包则重新广播DISCOVER。

在这里插入图片描述

DHCP租期时间

  • 申请到IP地址后,DHCP客户端中会保存三个定时器,分别用来控制租期更新,租期重绑定和租期失效。DHCP服务器为DHCP客户端分配IP地址时会指定三个定时器的值。如果DHCP服务器没有指定定时器的值,DHCP客户端会使用缺省值,缺省租期为1天。默认情况下,还剩下50%的租期时,DHCP客户端开始租约更新过程,DHCP客户端向分配IP地址的服务器发送DHCP请求报文来申请延长IP地址的租期。DHCP服务器向客户端发送DHCP确认报文,给予DHCP客户端一个新的租期。
  • DHCP客户端发送DHCP请求报文续租时,如果DHCP客户端没有收到DHCP服务器的DHCP应答报文。默认情况下,重绑定定时器在租期剩余12.5%的时候超时,超时后,DHCP客户端会认为原DHCP服务器不可用,开始重新发送DHCP请求报文。网络上任何一台DHCP服务器都可以应答DHCP确认或DHCP非确认报文。
  • 如果收到DHCP确认报文,DHCP客户端重新进入绑定状态,复位租期更新定时器和重绑定定时器。如果收到DHCP非确认报文,DHCP客户端进入初始化状态。此时,DHCP客户端必须立刻停止使用现有IP地址,重新申请IP地址。

配置DHCP服务器

1.安装DHCP软件包 yum install dhcp* -y

2.安装完成后对主配置文件 /etc/dhcp/dhcpd.conf 进行修改

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

3.调整虚拟机的网络连接为仅主机模式(VMnet1),修改网络配置

vim /etc/sysconfig/network-scripts/ifcfg-ens33
在这里插入图片描述

4.修改完成后重启网络配置并验证

在这里插入图片描述

5.关闭安全防护,防火墙规则,启DHCP服务,并验证

在这里插入图片描述

6.重新开一台win10虚拟机,网络连接为仅主机模式(VMnet1)

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

7.为win10主机指定一个固定的IP地址

把win10主机的MAC地址添加到DHCP服务器的配置文件中,与指定的IP地址绑定
在这里插入图片描述
更改配置文件后需重启DHCP服务

[root@localhost ~]# systemctl restart dhcpd

回到win10主机上重新获取IP地址
在这里插入图片描述

DHCP中继原理

DHCP客户端使用IP广播来寻找同一网段上的DHCP服务器,当服务器和客户端处在不同网段DHCP客户使用IP广播来寻找同一网段上的DHCP服务器。当服务器和客户段处在不同网段,即被路由器分割开来时,路由器是不会转发这样广播包的。因此可能需要在每个网段上设置一个DHCP服务器,虽然DHCP只消耗很小的一部分资源的,但多个 DHCP服务器,毕竟要带来管理上的不方便。DHCP中继的使用使得一个DHCP服务器同时为多个网段服务成为可能。

DHCP中继的配置

实验环境

eNSP、CentOS 7.6

实验步骤

1.规划网络拓扑图并配置

在这里插入图片描述
LSW1上配置信息:

[sw1]dis cu
#
sysname sw1
#
vlan batch 10 20 100
#
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 100
#
interface GigabitEthernet0/0/1
port link-type trunk
port trunk allow-pass vlan 2 to 4094
#
return
[sw1]

LSW2上配置信息:

[SW2]dis cu
#
sysname SW2
#
vlan batch 10 20 100
#
dhcp enable
#
interface Vlanif1
#
interface Vlanif10
ip address 192.168.10.1 255.255.255.0
dhcp select relay
dhcp relay server-ip 192.168.100.100
#
interface Vlanif20
ip address 192.168.20.1 255.255.255.0
dhcp select relay
dhcp relay server-ip 192.168.100.100
#
interface Vlanif100
ip address 192.168.100.1 255.255.255.0
dhcp select relay
dhcp relay server-ip 192.168.100.100
#
interface GigabitEthernet0/0/1
port link-type trunk
port trunk allow-pass vlan 2 to 4094
#
return
[SW2]

cloud1上配置:
在这里插入图片描述

2.CentOS 7.6虚拟机中绑定VMnet2网卡,更改网络配置文件,重启网络

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 
[root@localhost ~]# systemctl restart network
[root@localhost ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
    inet 192.168.100.100  netmask 255.255.255.0  broadcast 192.168.100.255
    inet6 fe80::692f:adf0:b798:89bc  prefixlen 64  scopeid 0x20<link>
    ether 00:0c:29:19:bd:1b  txqueuelen 1000  (Ethernet)
    RX packets 12896  bytes 15326779 (14.6 MiB)
    RX errors 0  dropped 0  overruns 0  frame 0
    TX packets 2763  bytes 210133 (205.2 KiB)
    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
    inet 127.0.0.1  netmask 255.0.0.0
    inet6 ::1  prefixlen 128  scopeid 0x10<host>
    loop  txqueuelen 1000  (Local Loopback)
    RX packets 736  bytes 74640 (72.8 KiB)
    RX errors 0  dropped 0  overruns 0  frame 0
    TX packets 736  bytes 74640 (72.8 KiB)
    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
    inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
    ether 52:54:00:53:c1:a5  txqueuelen 1000  (Ethernet)
    RX packets 0  bytes 0 (0.0 B)
    RX errors 0  dropped 0  overruns 0  frame 0
    TX packets 0  bytes 0 (0.0 B)
    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[root@localhost ~]# 

在这里插入图片描述

3.更改DHCP服务的配置文件

[root@localhost ~]# vim /etc/dhcp/dhcpd.conf 
[root@localhost ~]# systemctl restart dhcpd

在这里插入图片描述

4.验证网络连通性

[root@localhost ~]# ping 192.168.100.1
PING 192.168.100.1 (192.168.100.1) 56(84) bytes of data.
64 bytes from 192.168.100.1: icmp_seq=1 ttl=255 time=35.2 ms
64 bytes from 192.168.100.1: icmp_seq=2 ttl=255 time=31.6 ms
64 bytes from 192.168.100.1: icmp_seq=3 ttl=255 time=23.8 ms
64 bytes from 192.168.100.1: icmp_seq=4 ttl=255 time=38.4 ms
64 bytes from 192.168.100.1: icmp_seq=5 ttl=255 time=33.3 ms
64 bytes from 192.168.100.1: icmp_seq=6 ttl=255 time=28.5 ms
^C
--- 192.168.100.1 ping statistics ---
6 packets transmitted, 6 received, 0% packet loss, time 5010ms
rtt min/avg/max/mdev = 23.854/31.851/38.477/4.713 ms
[root@localhost ~]# ping 192.168.10.1
PING 192.168.10.1 (192.168.10.1) 56(84) bytes of data.
64 bytes from 192.168.10.1: icmp_seq=1 ttl=255 time=40.9 ms
64 bytes from 192.168.10.1: icmp_seq=2 ttl=255 time=35.8 ms
64 bytes from 192.168.10.1: icmp_seq=3 ttl=255 time=27.4 ms
64 bytes from 192.168.10.1: icmp_seq=4 ttl=255 time=24.4 ms
^C
--- 192.168.10.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3006ms
rtt min/avg/max/mdev = 24.498/32.174/40.920/6.557 ms
[root@localhost ~]# ping 192.168.20.1
PING 192.168.20.1 (192.168.20.1) 56(84) bytes of data.
64 bytes from 192.168.20.1: icmp_seq=1 ttl=255 time=30.7 ms
64 bytes from 192.168.20.1: icmp_seq=2 ttl=255 time=27.4 ms
64 bytes from 192.168.20.1: icmp_seq=3 ttl=255 time=26.4 ms
64 bytes from 192.168.20.1: icmp_seq=4 ttl=255 time=40.6 ms
^C
--- 192.168.20.1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3007ms
rtt min/avg/max/mdev = 26.415/31.309/40.601/5.599 ms
[root@localhost ~]# 

5.拓扑图中两个PC网络配置为DHCP,进行验证

PC1
在这里插入图片描述
PC2
在这里插入图片描述
至此,整个实验成功完成配置!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值