文章目录
一、DHCP概述
1.1了解DHCP服务
DHCP(动态主机配置协议)是一个局域网的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。默认情况下,DHCP作为Windows Server的一个服务组件不会被系统自动安装,还需要管理员手动安装并进行必要的配置。
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)通常被应用在大型的局域网络环境中,主要作用是集中的管理、分配IP地址,使网络环境中的主机动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。
DHCP协议采用客户端/服务器模型,主机地址的动态分配任务由网络主机驱动。当DHCP服务器接收到来自网络主机申请地址的信息时,才会向网络主机发送相关的地址配置等信息,以实现网络主机地址信息的动态配置。DHCP具有以下功能:
- 保证任何IP地址在同一时刻只能由一台DHCP客户机所使用。
- DHCP应当可以给用户分配永久固定的IP地址。
- DHCP应当可以同用其他方法获得IP地址的主机共存(如手工配置IP地址的主机)。
- DHCP服务器应当向现有的BOOTP客户端提供服务。
1.2DHCP的优点
- 减少管理员的工作量
- 避免输入错误的可能
- 避免IP地址冲突
- 当更改IP地址段时,不需要重新配置每个用户的IP地址
- 提高了IP地址的利用率
- 方便客户端的配置
1.3DHCP的分配方式
- 自动分配:DHCP服务器为主机指定一个永久性的IP地址,一旦DHCP客户端第一次成功从DHCP服务器端租用到IP地址后,就可以永久性的使用该地址
- 手动分配:客户端的IP地址是由网络管理员指定的,DHCP服务器只是将指定的IP地址告诉客户端主机
- 动态分配:DHCP服务器给主机指定一个具有时间限制的IP地址,时间到期或主机明确表示放弃该地址时,该地址可以被其他主机使用
1.4DHCP的租约过程
DHCP租约过程主要分为4步,下图是简单的概述
1.4.1租约过程1
客户机请求IP地址:发送DHCP discover广播
当一个DHCP客户机启动时,客户机还没有IP地址,所以客户机要通过DHCP获取一个合法的地址
此时DHCP客户机以广播方式发送DHCP discover发现信息来寻找DHCP服务器
因为自己没有IP地址,所以源IP地址为:0.0.0.0
同时也不知道DHCP服务器地址,所以发送广播255.255.255.255
1.4.2租约过程2
服务器响应:发送DHCP offer广播
当DHCP服务器接收到来自客户机请求IP地址的信息时,他就在自己的IP地址池中查找是否有合法的IP地址提供给客户机,如果有,DHCP服务器就将此IP地址做上标记,加入到DHCP offer的消息中,然后DHCP服务器就广播DHCP offer消息(客户机仍没有IP地址,所以发送广播)
1.4.3租约过程3
客户机选择IP地址:发送DHCP request广播
DHCP客户机从接收到的第一个DHCP offer消息中提取IP地址,发出IP地址的DHCP服务器将该地址保留,这样该地址就不能再分配给另一个DHCP客户机
第一个DHCP offer表示:若局域网中同时存在两个DHCP,那么客户机根据收到DHCP offer的顺序来确定使用哪个DHCP服务器的地址
客户机发送DHCP request 广播,选择IP地址,并附上租约期限信息(默认8天)
1.4.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地址资源池
1.发现客户机请求中的IP地址仍旧存在,便发送ACK,将IP地址分配给客户机
2.发现客户机请求中的IP地址已被占用,便返回一个Nack否认信息,然后客户机重新开始请求IP地址的步骤
1.4.6租约过程–更新租约
当DHCP服务器向客户机出租的IP地址租期达到50%时,就需要更新租约,客户机直接向提供租约的服务器发送DHCP request包,要求更新现有的地址租约
若DHCP服务器宕机,客户机租约到期后,会自动释放地址,然后使用169.254.0.0–169.254.255.255网段的地址
二、使用DHCP动态配置主机地址
2.1DHCP服务
- 为大量客户机自动分配地址,提供集中管理
- 减轻管理和维护成本,提高网络配置效率
2.2可分配的地址信息主要包括
- 网卡的IP地址,子网掩码
- 对应的网络地址,广播地址
- 默认网关地址
- DNS服务器地址
2.3DHCP主要配置文件
主配置文件:/etc/dhcpd.conf
执行程序:/usr/sbin/dhcpd,/usr/sbin/dhcrelay
执行参数配置:/etc/sysconfig/dhcpd
dhcpd.conf的内容构成
ddns-update-style interim; # 全局配置参数
......
subnet 192.168.0.0 netmask 255.255.255.0 { #网段声明
option routers 192.168.0.1; #配置选项(网关)
......
default-lease-time 21600; #配置参数(默认的租约期限,单位秒)
......
host ns {
......
fixed-address 207.175 .42.254; #主机声明(固定地址与MAC地址绑定)
}
}
主配置文件
全局设置,作用于整个DHCP服务器
●ddns-update-style none; 禁用
●default-lease-time 21600; 租约期限(秒)
●max-lease -time 43200; 最大的租约期限
●option domain-name “domain.org”; 域名
●option domain-name-servers 202.106.0.20; 分配一个DNS的地址给客户机
Subnet网段声明, 作用于整个子网段 (在子网段中配置的优先级高,优先生效)
●range参数:设置用于分配的IP地址池
●option subnet-mask参数:设置客户机的子网掩码
●option routers参数:设置客户机的默认网关地址
host主机声明,作用于单个主机
●hardware ethernet参数:指定对应主机的MAC地址
●fixed-address参数:指定为该主机保留的IP地址
host prtsvr { prtsvr可以更改,申明的名字
hardware ethernet 00:c0:c3:22:46:81;
fixed-address 192. 168.4.100;
}
2.4DHCP配置流程
使用两台虚拟机,一台为centos7作DHCP服务器,一台为Windows7作客户机
将两台虚拟机绑定VMnet1网卡,此网卡为仅主机模式
在有网情况下安装DHCP服务
[root@localhost ~]# yum install dhcp -y #安装DHCP服务
切换网络后
[root@localhost dhcp]# iptables -F #清空防火墙规则
[root@localhost dhcp]# setenforce 0 #关闭核心防护
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO="static" #此处要修改成static
IPADDR=192.168.17.144 #设置IP地址相关信息
NETMASK=255.255.255.0
GATEWAY=192.168.17.2
[root@localhost ~]# systemctl restart network #重启网卡
[root@localhost dhcp]# vim /etc/dhcp/dhcpd.conf #编辑DHCP配置文件
DHCP Server Configuration file.
see /usr/share/doc/dhcp*/ dhcpd.conf.example #这里提示我们查看这边的文件,存放的模板
see dhcpd . conf (5) man page
[root@localhost dhcp]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf #将配置模板复制到DHCP配置文件中
cp:overwrite"/etc/dhcp/dhcpd.conf"? yes
[root@localhost dhcp]# vim dhcpd.conf #编辑配置文件
...
option domain-name-servers 8.8.8.8; #全局配置DNS服务器地址
...
subnet 192.168.17.0 netmask 255.255.255.0 { #从第一个subnet开始设置主机的IP地址
range 192.168.17.110 192.168.17.200; #自动分配地址的地址池范围
option routers 192.168.17.1; #设置网关
[root@localhost dhcp]# systemctl start dhcpd #开启dhcp服务
[root@localhost dhcp]# netstat -nuap #查看dhcp服务是否开启
配置完毕后,打开Windows,设置自动获取IP地址
打开cmd,释放IP地址
重新获取后可以看到获得的IP地址为设置的地址池的第一个
之前有说过在子网段中配置的优先级高,优先生效,我们可以试验一下,同时将网卡与IP地址绑定,DHCP服务器分配固定IP地址给客户机
[root@localhost dhcp]# vim /etc/dhcp/dhcpd.conf #编辑DHCP配置文件
...
subnet 192.168.17.0 netmask 255.255.255.0 { #从第一个subnet开始设置主机的IP地址
range 192.168.17.110 192.168.17.200; #自动分配地址的地址池范围
option routers 192.168.17.1; #设置网关
option domain-name-servers 9.9.9.9; #添加DNS服务器地址
}
...
# set.
host fantasia {
hardware ethernet 00:0C:29 :E7:F3:5B ; #网卡绑定(网卡信息可在Windows中查看)
fixed-address 192.168.17.99 ; 固定的IP地址
}
[root@localhost dhcp]# systemctl restart dhcpd #重启dhcp服务
再次进入客户机,将IP地址释放后,重新获取IP地址,进行查看,可以看到自动获取的IP地址为设置的固定IP,DNS服务器为子网段中的9.9.9.9
三、DHCP中继
3.1DHCP中继原理
- 当企业的内部网络规模较大时,通常被划分为多个不同的子网,网络内配置了VLAN, VLAN能隔离广播,而DHCP协议使用广播
- DHCP服务器在VLAN 100中,就只有VLAN 100内的客户机能从在此获取IP地址
- 如果VLAN 2或VLAN 3的客户机也需要通过这台DHCP服务器来获取获取IP地址,应该怎么办?
两种解决办法
- 为每个网段安装一台DHCP服务器, 但这种方式存在资源上的浪费,而且不利于集中管理
- 在连接不同网段的设备上开启DHCP中继功能,将DHCP这种特殊的广播信息在VLAN之间转发,让其他VL AN的客户机也能从DHCP服务器获得IP地址
3.2DHCP中继实验
3.2.1实验拓扑图
3.2.2实验配置流程
云和虚拟机都绑定VMnet8网卡,作为DHCP服务器,IP地址192.168.100.100
关于华为ensp的DHCP配置,可以看我之前的博客https://blog.csdn.net/weixin_47153988/article/details/106332417
SW2
[Huawei]v b 10 20 100
[Huawei]int e0/0/1
[Huawei-Ethernet0/0/1]p l a
[Huawei-Ethernet0/0/1]p d v 10
[Huawei]int e0/0/2
[Huawei-Ethernet0/0/2]p l a
[Huawei-Ethernet0/0/2]p d v 20
[Huawei]int e0/0/3
[Huawei-Ethernet0/0/3]p l a
[Huawei-Ethernet0/0/3]p d v 100
[Huawei-Ethernet0/0/3]int e0/0/4
[Huawei-Ethernet0/0/4]p l t
[Huawei-Ethernet0/0/4]p t a v all
SW1
[Huawei]v b 10 20 100
[Huawei]int g0/0/1
[Huawei-GigabitEthernet0/0/1]p l t
[Huawei-GigabitEthernet0/0/1]p t a v all
[Huawei]dhcp enable
[Huawei]interface v 10
[Huawei-Vlanif10]ip add 192.168.10.1 24
[Huawei-Vlanif10]dhcp select relay
[Huawei-Vlanif10]dhcp relay server-ip 192.168.100.100
[Huawei-Vlanif10]int v 20
[Huawei-Vlanif20]ip address 192.168.20.1 24
[Huawei-Vlanif20]dhcp select relay
[Huawei-Vlanif20]dhcp relay server-ip 192.168.100.100
[Huawei-Vlanif20]int v 100
[Huawei-Vlanif100]ip add 192.168.100.1 24
[Huawei-Vlanif100]dhcp select relay
[Huawei-Vlanif100]dhcp relay server-ip 192.168.100.100
转到centos中
[root@localhost dhcp]# iptables -F #清空防火墙规则
[root@localhost dhcp]# setenforce 0 #关闭核心防护
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO="static" #此处要修改成static
IPADDR=192.168.100.100 #设置IP地址相关信息
NETMASK=255.255.255.0
GATEWAY=192.168.100.1
[root@localhost ~]# systemctl restart network #重启网卡
[root@localhost ~]#ping 192.168.100.1 #ping网关,连通顺畅配置没问题
[root@localhost dhcp]# vim /etc/dhcp/dhcpd.conf #编辑DHCP配置文件
...
option domain-name-servers 8.8.8.8; #全局配置DNS服务器地址
...
subnet 192.168.100.0 netmask 255.255.255.0 { #从第一个subnet开始设置主机的IP地址
range 192.168.100.110 192.168.100.200; #自动分配地址的地址池范围
option routers 192.168.100.1; #设置网关
}
subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.110 192.168.10.200;
option routers 192.168.10.1;
}
subnet 192.168.20.0 netmask 255.255.255.0 {
range 192.168.20.110 192.168.20.200;
option routers 192.168.20.1;
}
[root@localhost dhcp]# systemctl start dhcpd #启动dhcp服务
[root@localhost dhcp]#netstat -naup #查看DHCP服务是否开启
ensp设置两台客户机DHCP自动获取IP地址
获取到IP地址,与服务器连通
同样的PC2自动获取IP地址