一、DHCP工作原理
1.DHCP服务简介
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)通常被应用在大型的局域网络环境中,主要作用是集中的管理、分配IP地址,使网络环境中的主机动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。
2.DHCP服务的好处
(1)减少管理员的工作量;
(2)避免IP地址冲突;
(3)当网络更改IP地址段时,不需要再重新配置每个用户的IP地址;
(4)提高了IP地址的利用率;
(5)方便客户端的配置。
3.DHCP的分配方式
(1)自动分配:分配到一-个IP地址后永久使用;
(2)手动分配:由DHCP服务器管理员专门指定IP地址;
(3)动态分配:使用完后释放该IP,供其它客户机使用。
4.DHCP的租约过程
(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客户机。在网络环境中可能有多个DHCP服务器,所以DHCP客户机会得到多个 DHCP offer,这是DHCP客户机需要选择其中一个提供的IP,然后广播发送request告诉所有DHCP服务器自己的选择。
(4)服务器确定租约(ACK)
DHCP服务器接收到DHCP Request消息后,以DHCP ACK消息的形式向客户机广播成功确认,该消息包含有IP地址的有效租约和其他可配置的信息。当客户机收到DHCP ACK消息时,它就配置了IP地址,完成TCP/IP的初始化。
(5)重新登录
DHCP客户机每次重新登录网络时,不需要再发送DHCP Discover信息,而是直接发送包含前一次所分配的IP地址的DHCP Request请求信息。
(6)更新租约
当DHCP服务器向客户机出租的IP地址租期达到50%时,就需要更新租约。客户机直接向提供租约的服务器发送DHCP Request包,要求更新现有的地址租约。
二、DHCP中继服务的配置
1.首先在GNS3中将拓扑图设置好,然后将设备按图中接口连接好。
接口连接:
sw1:f1/0----------sw2:f1/0
sw1:f1/1----------DHCP:VMnet1
sw1:f1/2----------win10:VMnet2
sw1:f1/3----------server:VMnet8
vlan分配:
win10:vlan 10
server:vlan 20
DHCP:vlan 100
网段分配:
win10:192.168.10.0/24
server:192.168.20.0/24
DHCP:192.168.100.0/24
2.在Linux系统用yum源安装DHCP服务。注意:需要在联网环境下安装。
3.将win10系统的网络模式,选择为自定义并绑定VMnet1网卡。
4.将server系统的网络模式,选择为自定义并绑定VMnet2网卡。
5.将Linux系统的网络模式,选择为自定义并绑定VMnet8网卡。
6.点击“编辑”选择“虚拟网络编辑器”,然后选择“更改设置”,再选择“VMnet8”网卡将改为仅主机模式,并将“使用本地DHCP服务分配IP地址”选项的“√”去掉。(4、5、6步是为了创造一个局域网内没有DHCP服务器的实验环境)
7.进入Linux系统,用vim编辑器对网卡“ens33”的配置文件进行编辑,给它配置一个固定IP。
输入:vim /etc/sysconfig/network-scripts/ifcfg-ens33
将dhcp改为static
添加:
IPADDR=192.168.100.100
NETMASK=255.255.255.0
GATEWAY=192.168.100.1
8.更改完网卡“ens33”的配置后,重启网络服务,再查看网卡信息,可以看到IP地址设置成功。
输入:service network restart
输入:ifconfig
9.我们将系统给的DHCP配置文件的模板“/usr/share/doc/dhcp-4.2.5/dhcpd.conf.example”,复制到DHCP服务的配置文件“/etc/dhcp/dhcpd.conf”中,并将其覆盖。
输入:cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
10.用vim编辑器对DHCP服务的配置文件“/etc/dhcp/dhcpd.conf”进行配置。在里面添加三个网段的DHCP服务。
输入:vim /etc/dhcp/dhcpd.conf
添加:
subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.50 192.168.10.100;
option routers 192.168.10.1;
}
subnet 192.168.20.0 netmask 255.255.255.0 {
range 192.168.20.50 192.168.20.100;
option routers 192.168.20.1;
}
subnet 192.168.100.0 netmask 255.255.255.0 {
range 192.168.100.50 192.168.100.100;
option routers 192.168.100.1;
}
11.开启dhcp服务,并查看服务状态。
输入:systemctl start dhcpd
输入:systemctl status dhcpd
12.进入GNS3将所有设备开启。
13.双击sw1,打开sw1的配置面板。进入全局模式,然后关闭路由功能。
输入:conf t
输入:no ip routing
14.新建三个vlan,分别为vlan 10、vlan 20、vlan 100。然后查看vlan是否添加成功。
输入:vlan 10,20,100
输入:do show vlan-sw b
输入:exit
15.分别进入f1/1、f1/2、f1/3接口,将接口模式设置为“access”模式,然后将三个接口分别添加到vlan 100、vlan 10、vlan 20。再进入f1/0接口,将f1/0接口模式设置为“trunk”模式,trunk封装类型设置为“dot1q”。
输入:int f1/1
输入:switch mode access
输入:switch access vlan 100
输入:exit
输入:int f1/2
输入:switch mode access
输入:switch access vlan 10
输入:exit
输入:int f1/3
输入:switch mode access
输入:switch access vlan 20
输入:exit
输入:int f1/0
输入:switch mode trunk
输入:switchport trunk encapsulation dot1q
输入:exit
16.双击sw2设备,打开sw2的配置面板。先进入全局模式,再新建三个vlan,vlan 10、vlan 20、vlan 100。然后查看是否添加成功。
输入:conf t
输入:vlan 10,20,100
输入:exit
输入:do show vlan-switch brief
17.进入f1/0接口,将f1/0接口模式设置为“trunk”模式,trunk封装类型设置为“dot1q”。
输入:int f1/0
输入:switch mode trunk
输入:switchport trunk encapsulation dot1q
输入:exit
18.分别进入vlan 10、vlan 20、vlan 100,设置它们的网关地址并开启。
输入:int vlan 10
输入:ip add 192.168.10.1 255.255.255.0
输入:no shutdown
输入:exit
输入:int vlan 20
输入:ip add 192.168.20.1 255.255.255.0
输入:no shutdown
输入:exit
输入:int vlan 100
输入:ip add 192.168.100.1 255.255.255.0
输入:no shutdown
输入:exit
19.查看一下,IP地址是否设置成功。
输入:do show ip int brief
20.分别进入vlan 10、vlan 20、vlan 100中,然后给它们设置DHCP服务器的IP地址。
输入:int vlan 10
输入:ip helper-address 192.168.100.100
输入:no shutdown
输入:exit
输入:int vlan 20
输入:ip helper-address 192.168.100.100
输入:no shutdown
输入:exit
输入:int vlan 100
输入:ip helper-address 192.168.100.100
输入:no shutdown
输入:exit
21.进入win10系统,先释放掉之前获取的IP地址,再重新获取IP地址。结果成功获取到DHCP服务器分配的IP地址192.168.10.50。
输入:ipconfig /release
输入:ipconfig /renew
22.用“ipconfig /all”命令,查看一下DHCP服务器的地址。就是192.168.100.100。
23.进入server系统,先释放掉之前获取的IP地址,再重新获取IP地址。结果成功获取到DHCP服务器分配的IP地址192.168.20.51。
输入:ipconfig /release
输入:ipconfig /renew
23.用“ipconfig /all”命令,查看一下DHCP服务器的地址。就是192.168.100.100。
24.给win10系统,指定一个固定的IP地址。先用“ipconfig /all”命令,查看一下win10的MAC地址。
25.再次进入Linux系统的DHCP服务配置文件,在里面设置win10的固定IP地址为192.168.10.10
输入:vim /etc/dhcp/dhcpd.conf
添加:
host fantasia {
hardware ethernet 00:0C:29:1E:27:9B;
fixed-address 192.168.10.10;
}
26.重启DHCP服务。
输入:systemctl restart dhcpd
27.再次进入win10系统,先释放掉之前获取的IP地址,再重新获取IP地址。结果成功获取到DHCP服务器分配的固定IP地址192.168.10.10。
输入:ipconfig /release
输入:ipconfig /renew
原文地址:https://blog.51cto.com/14449541/2434621