了解DHCP服务

DHCP (Dynamic Host
Configuration Protocol,动态
主机配置协议)
由Internet工作任务小组设计开发专门用于为TCP/IP网络中的计算机自动分配TCP/IP参数的协议

使用DHCP的好处

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

DHCP的分配方式

自动分配:分配到-一个IP地址后永久使用
手动分配:由DHCP服务器管理员专门]指定IP地址
动态分配:使用完后释放该IP,供其它客户机使用.

DHCP的租约过程

客户机从DHCP服务器获得IP地址的过程称为DHCP的租约过程

四个步骤:

(1)客户端在网络中搜索服务
(2)服务器向客户端响应服务
(3)客户端向目标服务器发出服务
(4)服务器向客户端提供服务

DHCP的租约过程

客户机请求IP地址

当一个DHCP客户机启动时,客户机还没有IP地址,所以
客户机要通过DHCP获取一个合法的地址
此时DHCP客户机以广播方式发送DHCP Discover发现信
息来寻找DHCP服务器

服务器响应

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

客户机选择IP地址

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

服务器确定租约

DHCP服务器接收到DHCP Request消息后,以HCP
ACK消息的形式向客户机广播成功确认,该消息包含有IP
地址的有效租约和其他可配置的信息

当客户机收到DHCP ACK消息时,配置IP地址,完成
TCP/IP的初始化

重新登录

DHCP客户机每次重新登录网络时,不需要再发送DHCP
Discover信息,而是直接发送包含前一-次所分配的IP地址
的DHCP Request请求信息

更新租约

当DHCP服务器向客户机出租的IP地址租期达到50%时,
就需要更新租约
客户机直接向提供租约的服务器发送DHCP Request包,
要求更新现有的地址租约

使用DHCP动态配置主机地址

DHCP服务

为大量客户机自动分配地址,提供集中管理
减轻管理和维护成本、提高网络配置效率

可分配的地址信息主要包括

网卡的IP地址、子网掩码
对应的网络地址、广播地址
默认网关地址
DNS服务器地址

安装DHCP服务器

DHCP服务器软件
CentOS光盘中的dhcp-4.2.5-47.el7.centos.x86_ 64.rpm
DHCP软件包的主要文件
主配置文件: /etc/dhcpd.conf
执行程序: /usr/sbin/dhcpd、 /usr/sbin/dhcrelay

配置DHCP服务器

yum install -y dhcp
cd /etc/dhcp/
ls
less dhcpd. conf
cd /usr/share/doc/dhcp-4.2.5/
ls
less dhcpd. conf . example
cp /usr/ share/doc/dhcp-4.2.5/dhcpd . conf . example /etc/ dhcp/ dhcpd. conf
vim /etc/ dhcp/ dhcpd. conf
设置全局配置参数
default-lease-time 21600;
默认租约为6小时,单位为秒
max- lease-time 43200;
最大租约为12小时,单位为秒
option domain-name "benet . com" ;
指定默认域名
option domain-name-servers 202.106.0.20, 202.106.148.1;
指定DNS服务器地址
ddns-update-style none;
禁用DNS动态更新
subnet网段声明(作用于整个子网段,部分配置参数优先级高于全局配置参数)
subnet 192. 168.80.0 netmask 255.255.255.0 {
声明要分配的网段地址
range 192.168.80.10 192.168.80.20;
设置地址池
option routers 192.168.80.254;
指定默认网关地址

}

subnet 192.168.1.0 netmask 255.255.255.0 {
range 192. 168.1.100192.168.1.200;
option routers 192.168.1.254;
default-lease-time 45600;
option domain-name-servers 8.8.8.8;

}

subnet 192.168.2.0 netmask 255.255.255.0 {
range 192. 168.2.20192.168.2.30;
option routers 192.168.2.254;

}

#host主机声明(给单机分配固定的IP地址)
host hostname {
#指定需要分配固定IP地址的客户机名称
hardware ethernet 00:c0:c3:22:46:81;
指定该主机的MAC地址
fixed-address 192.168.4. 100;
指定保留给该主机的IP地址
后面内容可都删除

systemctl start dhcpd
systemctl stop firewalld
setenforce 0
netstat -anpu | grep ":67"

实验前的准备工作

关闭防火墙操作.PNG==该图是用来关闭防火墙的操作命令,可以用systemctl stop firewalld命令来关闭防火墙。==

关闭开机自启动.PNG==该指令用来关闭开机自启动。==
查询selinux这个文件有没有被关掉,以及临时关闭的方法.PNG==图中我使用了getenforce这个命令来查看selinux这个选项有没有被关闭,图中显示的是没有关闭,所以我用了setenforce 0来进行临时关闭。==

永久关闭selinux这个选项的方法.PNG==该图是永久关闭selinux的方法,在selinux这个选项的后面,我们输入disabled来进行永久关闭。==

安装dhcp这个软件包.PNG==该图是用来安装DHCP这个软件包的过程,我们可以使用rpm -ivh选项来进行安装,当然也可以使用yum来进行安装,我这里用的是rpm来进行安装,当中我使用了grep这个命令来筛选出有关于dhcp的文件。==

把文件复制到dhcp里面.PNG==由于dhcpd.conf.example
这个文件里面是空的,我们可以用cp这个命令来把/usr/share/doc/dhcp里面的dhcpd.conf.example文件的内容给复制过来,然后进行修改。==

进入vim DHCPd.conf文件进行编写,如图我们可以进行改名的操作.PNG==这里就是利用vim编辑器对里面的内容进行修改,我们进行对内容进行修改。==
设置多个网关.PNG==我们可以在这里进行设置多个网关的操作。==
启动dhcpd这个文件选项以及进行查看.PNG==我们启动dhcpd这个选项,提示正常启动。==
端口号.PNG==这里把dhcpd用的端口号给查找出来。==
将虚拟机网络模式改为仅主机模式.PNG==这里我们要把虚拟机的网络模式改为今主机模式,由于我是用linux虚拟机操作,所以做实验的几台虚拟机都需要把网络模式改为仅主机模式。==
把使用本地dhcp服务这个选项给关掉.PNG==这里我们需要把本地dhcp服务这个选项给关掉。==
vment1.PNG==进入电脑的网络管理器里面使用vment1打开它的属性。==
要把ip地址设置为当前主机的网关以及是可用的IP地址.PNG==然后要把它的ip地址改为当前主机的网关,其是要可用的IP地址。==
实验结果的展示,成功获取到属性.PNG==这是我使用另一台虚拟机来进行查看能不能获取到实验的结果,这里已经成功获取到。==

==dhcp的中继结合ensp实验==

ensp的实验图.PNG==这里是使用ensp来进行dhcp的操作,这里是我的实验图。==
cloud云添加网卡的操作.PNG==这里我们要在cloud云里面进行添加网卡的操作,首先添加udp,然后我们在添加vment1这个网卡的选项,然后就可以进行正常的操作了。==
sw2的操作.PNG==该图是sw2里面的操作内容,我们进行vlan的配置。==
sw1的操作.PNG==该图是sw1里面的操作我们进行配置接口类型,以及vlanif的操作。==
sw1的操作2.PNG==这里我们要进行配置dhcp的ip,这里设置的IP要与我们进行操作修改dhcpd.conf.example文件的这台虚拟机的IP地址一致。==
将pc3的MAC地址复制过来.PNG==这里我们要把pc3这个主机的mac地址给复制到dhcpd.conf.example文件里面然后进行改写。==
一开始不能拼通.PNG==在虚拟机里面我们拼VLAN10的IP发现拼不通。==
将网关的尾缀改为254.PNG==我们进入虚拟机把网关的尾缀改为与其相同。==
修改网关尾缀后可以进行拼通了.PNG==修改后,发现可用进行拼通了。==
ipconfig命令来查看有无数据过来.PNG==这里我们在pc端的命令行里输入ipconfig命令来查看有无数据传输过来,表示中继有用。==
ipconfig来查看中继的结果.PNG==这里我们在pc端的命令行里输入ipconfig命令来查看有无数据传输过来,表示中继有用==
ipconfig命令来查看中继的结果.PNG==这里我们在pc端的命令行里输入ipconfig命令来查看有无数据传输过来,表示中继有用==