一、了解DHCP服务
1、手工配置网络参数存在的问题
传统的手工配置网络参数需要每个用户都手动配置IP地址、掩码、网关、DNS等多个参数 这样就会存在一些问题。
人员素质要求高
主机的使用者需要懂得如何进行网络参数的配置操作方法,这在实际中是难以做到的。
容易出错
手工配置过程中非常容易出现人为的误操作情况。
灵活性差
网络参数发生改变时,需要重新进行配置操作。例如,如果某主机在网络中的位置发生了变化,则该主机的网关地址也可能会发生变化,这时就需要重新配置该主机的网关地址。IP地址资源利用率低,IP地址无法得到重复利用。
工作量大
配置工作量会随着主机数量的增加而增大。
2、DHCP概念的提出
随着用户规模的扩大及用户位置的不固定性,传统的静态手工配置方式已经无法满足需求,为了实现网络可以动态合理地分配IP地址给主机使用,需要用到动态主机配置协议DHCP。 DHCP相对于静态手工配置有如下优点:
效率高
灵活性强
易于管理
3、DHCP基本原理 与配置实现
DHCP采用了Client/Server模型;DHCP Client需要从DHCP Server那里获得各种网络配 置参数,这个过程是通过DHCP Client与DHCP Server之间交互各种DHCP消息来实现的。DHCP消息是封装在UDP报文中的,DHCP Server使用端口号67来接收DHCP消息,DHCPClient使用端口号68来接收DHCP消息。本课程中,我们主要关心DHCP Client是如何获得自己的IP地址的。
发现阶段:
发现阶段也就是PC上的DHCP Client寻找DHCPServer的阶段。PC上的DHCP Client开始运行后,会以广播的方式发送一个DHCP Discover消息。需要说明的是,二层广播域中除了路由器R上运行了DHCP Server 外,可能还有其它设备也运行了DHCP Server。如果是这样,那么所有这些DHCPServer都会接收到PC发送的DHCP Discover消息,也都会对所收到的 DHCPDiscover消息做出回应。
提供阶段
提供阶段也就是DHCP Server向DHCP Client提供IP地址的阶段,每一个接收到DHCP Discover消息的DHCP Server(包括路由器R上运行的DHCP Server)都会从自己维护的地址池中选择一个合适的IP地址,并通过DHCP Offer消息将这个IP地址发送给DHCP Client。DHCP Server是以单播的方式来发送DHCP Offer消息的
请求阶段
在请求阶段中,PC上的DHCP Client会在若干个收到的Offer(即若干个收到的DHCPOffer消息)中根据某种原则来确定出自己将要接受哪一个Offer。通常情况下,DHCP Client会接受它所收到的第一个Offer(即最先收到的那个DHCP Offer消息)。图中,假 设PC最先收到的DHCP Offer消息是来自路由器R。于是,PC上的DHCP Client会以广播方式发送一个DHCP Request消息,其意图就是向路由器R上的DHCP Server提出请求,希望获取到该DHCP Server发送给自己的DHCP Offer消息中所提供的那个IP地址。注意,这个 DHCPRequest消息中携带有R上的DHCP Server的标识(称为Server Identifier),表示 PC上的DHCP Client只愿意接受R上的DHCPServer所给出的Offer。 显然,该二层广播域中所有的DHCPServer都会接收到PC上的DHCP Client发送的DHCPRequest消息。R上的DHCP Server收到并分析了该DHCP Request消息后,会明白PC已 经愿意接受自己的Offer了。其他的DHCP Server收到并分析了该DHCP Request消息后, 会明白PC拒绝了自己的Offer。于是,这些DHCPServer就会收回自己当初给予PC的Offer。 也就是说,当初准备提供给PC使用的IP地址现在可以用来分配给别的设备使用了。
确认阶段
在确认阶段,R上的DHCP Server会向PC上的DHCP Client发送一个DHCP Ack消息。注 意,由于种种原因,R上的DHCP Server也可能会向PC上的DHCP Client发送一个DHCPNak消息。如果PC接收到了DHCP Nak消息,就说明这次获取IP地址的尝试失败了。在这 种情况下,PC只能重新回到发现阶段来开始新一轮的IP地址申请过程。
二、linux上搭建dhcp服务器
1、安装dhcp服务器
[root@CentOs7 ~]# yum -y install dhcp* '//////dhcp服务器也有许多环境包,这里*代表所有dhcp开头的软件包
2、找到dhcp的配置文件
1、主配置文件 :/etc/dhcpd/dhcp.conf
执行程序: /usr/sbin/dhcpd /usr/sbin/dhcrelay
2、修改DHCP的配置文件
这里下载完成后,直接打开主配置文件,你会发现,里面什么都没有,只有一个索引目录,目录里是配置文件的模板,所以需要拷贝过来。我个人理解官方的用意是怕你把配置文件搞崩了,人家帮你备份一份><
[root@CentOs7 ~]# cp/usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf 将样板拷贝到并替换配置文件。
在配置文件中加入这么一段
27subnet 192.168.110.0 netmask 255.255.255.0 {
28 option routers 192.168.110.2;
29 range 192.168.110.100 192.168.110.200;
30 }
31
'这里是配置文件的第一个subnet '
其中subnet 和netmask分别代表网段号和子网掩码号。可以按需求选择三种private ip中的任意一种。
range代表你要划分的ip池的范围。
3、启动dhcp服务
[root@localhost dhcp]# systemctl startdhcpd '开启dhcp服务'
[root@localhost dhcp]# netstat -nuap | grepdhcpd '检索udp dhcp服务端口号'
udp 0 0 0.0.0.0:67 0.0.0.0:* 3388/dhcpd
[root@localhost dhcp]# systemctl stopfirewalld.service '关闭防火墙服务'
[root@localhost dhcp]# setenforce 0
4、测试dhcp服务器是否可用
1、准备一台win10 ,与centos绑定同一网卡,vm1仅主机模式网卡
2、打开win10的dhcp自动获取ip地址服务,让其自动获取
如下
证明dhcp服务器已经可以正常工作了
三、关于指定ip地址的配置方法
1、指定mac地址配置文件,进入dhcp主配置文件/etc/dhcp/dhcpd.conf 找到下面字段 查看win10的mac地址 ipconfig /all 将win10的ip地址写入进去指定mac地址配置文件
host fantasia {
hardware ethernet 00:0C:29:95:E6:EC;
fixed-address 192.168.110.150;
2、续订接口 Ethernet0 时出错: 无法联系 DHCP 服务器
这里有可能是上次你电脑的ip地址没有释放,导致一直在报错申请不到ip地址续订接口 Ethernet0 时出错:无法联系 DHCP 服务器。请求超时。不能在 蓝牙网络连接 上执行任何操作,它已断开媒体连接。
C:\Users\23746>ipconfig /release /'当出现这样字段说明你之前的IP地址没有释放。release释放一下' Windows IP 配置不能在 蓝牙网络连接 上执行任何操作,它已断开媒体连接。
以太网适配器Ethernet0:
连接特定的 DNS 后缀. . . . . . . :
本地链接 IPv6 地址. . . . . . . . :fe80::75a9:3f46:3361:60bb%15
默认网关. . . . . . . . . . . . . :
以太网适配器 蓝牙网络连接:
媒体状态 . . . . . . . . . . . . :媒体已断开连接
连接特定的 DNS 后缀. . . . . . . :
C:\Users\23746>ipconfig /renew
Windows IP 配置不能在 蓝牙网络连接 上执行任何操作,它已断开媒体连接。
以太网适配器Ethernet0:
连接特定的 DNS 后缀. . . . . . . : example.org
本地链接 IPv6 地址. . . . . . . . :fe80::75a9:3f46:3361:60bb%15
IPv4地址. . . . . . . . . . . . :192.168.110.160
子网掩码 . . . . . . . . . . . . :255.255.255.0
默认网关. . . . . . . . . . . . . : 192.168.110.2
以太网适配器 蓝牙网络连接:
媒体状态 . . . . . . . . . . . . :媒体已断开连接
连接特定的 DNS 后缀. . . . . . . :
四、关于dhcp的DNS域名解析的问题
1、win10查看被默认分配的dhcp
C:\Users\23746>ipconfig /all
以太网适配器Ethernet0:
连接特定的 DNS 后缀. . . . . . . : example.org
描述. . . . . . . . . . . . . . . : Intel(R) 82574L Gigabit NetworkConnection
物理地址. . . . . . . . . . . . . : 00-0C-29-95-E6-EC
DHCP已启用 . . . . . . . . . . . : 是
自动配置已启用. . . . . . . . . . : 是
本地链接 IPv6 地址. . . . . . . . :
fe80::75a9:3f46:3361:60bb%15(首选)
IPv4地址 . . . . . . . . . . . . :
192.168.110.160(首选)
子网掩码 . . . . . . . . . . . . :255.255.255.0
获得租约的时间 . . . . . . . . . : 2020年7月4日11:13:04
租约过期的时间 . . . . . . . . . : 2020年7月4日11:33:05
默认网关. . . . . . . . . . . . . : 192.168.110.2
DHCP服务器. . . . . . . . . . . : 192.168.110.133
DHCPv6 IAID . . . . . . . . . . . : 117443625
DHCPv6客户端DUID . . . . . . . : 00-01-00-01-26-34-1E-33-00-0C-29-95-E6-EC
DNS服务器 .. . . . . . . . . . : 8.8.8.8
TCPIP上的NetBIOS . . . . . . . :已启用
2、关于dhcp配置的两个要点
(1)接口配置
还是一样进入dhcp主配置文件找到以下字段,这里配置的时候默认的dns就是8.8.8.8 也就是我们刚刚申请到的dns
subnet 192.168.110.0 netmask 255.255.255.0{
option routers 192.168.110.2;
range 192.168.110.100 192.168.110.200;
option domain-name-servers 9.9.9.9;
}
(2)全局配置
option definitions common to all supportednetworks...
option domain-name "example.org";
option domain-name-servers 8.8.8.8;
default-lease-time 600;
max-lease-time 7200;
这里发现,接口模式的dns优先级更高一点
五、在华为ensp上进行小型dhcp实验
实验需求:
准备一台centos7当做dhcp服务器 ,三层交换机配置dhcp中继 使得pc可以动态获取IP地址
具体如下:
sys
[Huawei]sysname sw2
[sw2]v b 10 20 30
[sw2]int e0/0/1
[sw2-Ethernet0/0/1]p l a '设置其接口为access口'
[sw2-Ethernet0/0/1]p d v 10 '允许通过vlan10'
[sw2-Ethernet0/0/1]int e0/0/2
[sw2-Ethernet0/0/2]p l a ' 设置为access'
[sw2-Ethernet0/0/2]p d v 20 '允许通过vlan20'
[sw2]int e0/0/3
[sw2-Ethernet0/0/3]p l a
[sw2-Ethernet0/0/3]p d v 100 ' vlan100'
[sw2-Ethernet0/0/3]int g0/0/1
[sw2-GigabitEthernet0/0/1]p l t 'trunk口'
[sw2-GigabitEthernet0/0/1]p t a v a '全部放通'
[Huawei]sys
[Huawei]sysname sw1
[sw1]v b 10 20 100
[sw1-Vlanif10]ip add 192.168.10.1 24
[sw1]dhcp enable '在交换机上开启dhcp'
[sw1]int Vlan10
[sw1-Vlanif10]dhcp select relay '开启dhcp中继'
[sw1-Vlanif10]dhcp relay server-ip192.168.100.100 'dhcp服务器的IP地址'
[sw1-Vlanif10]int vlan20
[sw1-Vlanif20]ip add 192.168.20.1 24
[sw1-Vlanif20]dhcp select relay
[sw1-Vlanif20]dhcp relay server-ip192.168.100.100
[sw1]int Vlan100
[sw1-Vlanif100]ip add 192.168.100.1 24
[sw1-Vlanif100]dhcp select relay
[sw1-Vlanif100]dhcp relay server-ip192.168.100.100