一.动态主机配置协议DHCP
- DHCP(Dynamic HostConfiguration Protocol,动态主机配置协议)
- TCP/IP网络
- DHCP服务器
- 客户端
- 口由Internet工作任务小组设计开发
- 专门用于为TCP/IP网络中的计算机自动分配TCP/IP参数的协议
1 .(1)使用DHCP的好处
- 减少管理员的工作量
- 避免输入错误的可能
- 避免IP地址冲突
- 当更改IP地址段时,不需要重新配置每个用户的IP地址
- 提高了IP地址的利用率
- 方便客户端的配置
(2).DHCP的分配方式
- 自动分配:分配到一个IP地址后永久使用
- 手动分配:由DHCP服务器管理员专门指定IP地址
- 动态分配:使用完后释放该IP,供其它客户机使用
2.DHCP的租约过程
- 客户机从DHCP服务器获得IP地址的过程称为DHCP的租约过程
- 分为四个步骤
(1)客户机请求IP地址
- 当一个DHCP客户机启动时,客户机还没有IP地址,所以客户机要通过DHCP获取一个合法的
- 地址此时DHCP客户机以广播方式发送DHCP Discover发现信息来寻找DHCP服务器
(2)服务器响应
- DHCP服务器接收到来自客户机请求IP地址的信息时,在自己的IP地址池中查找是否有合法的IP地址提供给客户机
- 如果有,DHCP服务器将此IP地址做上标记,加入到DHCP Offer的消息中,然后广播一则DHCP Offer消息
(3)客户机选择IP地址
- DHCP客户机从接收到的第一个DHCP Offer消息中提取IP地址,发出IP地址的DHCP服务器将该地址保留,这样该地址就不能再分配给另一个DHCP客户机
(4) 服务器确定租约
- DHCP服务器接收到DHCP Request消息后,以DHCPACK消息的形式向客户机广播成功确认,该消息包含有IP地址的有效租约和其他可配置的信息
- 当客户机收到DHCPACK消息时,配置IP地址,完成TCP/IP的初始化
(5)重新登录
- DHCP客户机每次重新登录网络时,不需要再发送DHCPDiscover信息,而是直接发送包含前一次所分配的IP地址的DHCP Request请求信息
(6)更新租约
- 当DHCP服务器问客户机出租的P地址租期达到50%时,就需要更新租约
- 客户机直接向提供租约的服务器发送DHCP Request包要求更新现有的地址租约
DHCP自动获取IP地址的工作原理:
- 第一步:客户端在网络中搜索服务器。
- 客户端通过广播发送DHCP Discover报文寻找服务器端。
- 第二步:服务器向客户端响应服务。
- 服务器端通过广播(只有华为设备单播发送)发送DHCP offer报文向客户端提供IP地址等网络信息,从IP地址池中挑选一个尚未分配的IP地址分配给客户端。
- 第三步:客户端向服务器发出服务请求。
- 如果有多台DHCP服务器向该客户端发来DHCP-offer报文,客户端只接受第一个收到的DHCP-offer报文并提取IP地址,然后客户端通过广播发送DHCP Request报文告知服务器端本地选择使用该IP地址。
- 第四步:服务器向客户端提供服务。
- 服务器通过广播(只有华为设备单播发送)发送DHCP Ack报文告知客户端IP地址是合法可用的,并在选项字段中增加IP地址的使用租期信息。
- (5)重新登录
- DHCP客户机每次重新登录网络时,不需要再发送DHCP Discover信息,而是直接发送包含前一次所分配的IP地址的DHCP Request请求信息。
- (6)更新租约
- 当DHCP服务器向客户机出租的IP地址租期达到50%时,就需要更新租约。客户机直接向提供租约的服务器发送DHCP Request包,要求更新现有的地址租约。
4. 使用DHCP动态配置主机地址
-
DHCP服务
-
为大量客户机自动分配地址,提供集中管理减轻管理和维护成本、提高网络配置效率
-
可分配的地址信息主要包括
- 网卡的IP地址、子网掩码
- 对应的网络地址、广播地址
- 默认网关地址
- DNS服务器地址
5.实例:DHCP服务器的配置
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# yum install -y bind
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 bind.x86_64.32.9.11.4-26.P2.el7_9.9 将被 安装
--> 解决依赖关系完成
依赖关系解决
================================================================================================================
Package 架构 版本 源 大小
================================================================================================================
正在安装:
bind x86_64 32:9.11.4-26.P2.el7_9.9 local 2.3 M
事务概要
================================================================================================================
安装 1 软件包
总下载量:2.3 M
安装大小:5.4 M
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在安装 : 32:bind-9.11.4-26.P2.el7_9.9.x86_64 1/1
验证中 : 32:bind-9.11.4-26.P2.el7_9.9.x86_64 1/1
已安装:
bind.x86_64 32:9.11.4-26.P2.el7_9.9
完毕!
[root@localhost named]# ls
data dynamic named.ca named.empty named.localhost named.loopback slaves
[root@localhost named]# vim /etc/named.conf
[root@localhost named]# vim /etc/named.rfc1912.zones
[root@localhost named]# cd /var/named
[root@localhost named]# cp -a named.localhost xy101.com.zone
[root@localhost named]# ll
总用量 20
drwxrwx---. 2 named named 6 2月 24 2022 data
drwxrwx---. 2 named named 6 2月 24 2022 dynamic
-rw-r-----. 1 root named 2253 4月 5 2018 named.ca
-rw-r-----. 1 root named 152 12月 15 2009 named.empty
-rw-r-----. 1 root named 152 6月 21 2007 named.localhost
-rw-r-----. 1 root named 168 12月 15 2009 named.loopback
drwxrwx---. 2 named named 6 2月 24 2022 slaves
-rw-r-----. 1 root named 152 6月 21 2007 xy101.com.zone
[root@localhost ~]# nslookup xy101.com
Server: 192.168.100.100
Address: 192.168.100.100#53
Name: xy101.com
Address: 192.168.100.100
六.FTP
1.1 FTP概述
- FTP服务——用来传输文件的协议
- FTP服务器默认使用TCP协议的20、21端口与客户端进行通信
- 20端口用于建立数据连接,并传输文件数据
- 21端口用于建立控制连接,并传输FTP控制命令
-
1.2 FTP主动模式
主动模式:客户端给服务端的21控制端口发命令说,我要下载什么什么,并且还会说我已经打开了自己的某个端口,你就从这里把东西给我吧,服务器知道后就会连接客户端已打开的那个数据端口把东西传给客户端,这就是主动模式,可以理解为服务端主动给客户端传输文件。
-
1.3 FTP被动模式
被动模式:客户端给服务器端的21端口发命令说,我要下载什么什么,服务端知道后,就打开一个空闲的端口,然后告诉客户端,我已经打开了某某端口,你自己进去拿吧。于是客户端就从那个端口进去拿文件了,这就是被动模式,可以理解为服务端被客户端拿走了东西。
2. 实例:匿名用户访问FTP服务
(1)设置匿名用户能够下载和上传文件的命令配置;
[root@lll ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
tmpfs 394M 28K 394M 1% /run/user/0
/dev/sr0 4.4G 4.4G 0 100% /mnt #查看光盘镜像文件是否已经挂载成功
[root@lll /etc/yum.repos.d]# yum install -y vsftpd #安装vsftpd服务
已加载插件:fastestmirror, langpacks
已安装:
vsftpd.x86_64 0:3.0.2-28.el7
完毕!
[root@lll /etc/yum.repos.d]# rpm -qc vsftpd #查看vsftpd安装包配置文件所在的位置
/etc/vsftpd/user_list
/etc/vsftpd/vsftpd.conf #vsftpd的配置文件
[root@lll /etc/yum.repos.d]# cd /etc/vsftpd/
[root@lll /etc/vsftpd]# ls
ftpusers user_list vsftpd.conf vsftpd_conf_migrate.sh
[root@lll /etc/vsftpd]# cp vsftpd.conf{,.bak} #先将vsftpd的配置文件备份下来
[root@lll /etc/vsftpd]# ls
ftpusers user_list vsftpd.conf vsftpd.conf.bak vsftpd_conf_migrate.sh
[root@lll /etc/vsftpd]# vim vsftpd.conf #修改vsftpd的配置文件
12 anonymous_enable=YES #开启匿名用户访问
13 anon_umask=022 #设置匿名用户创建文件和目录的默认权限为755
17 local_enable=YES #开启本地用户访问
20 write_enable=YES #为匿名用户开放服务器的写权限
24 local_umask=022 #本地用户对文件和目录权限
30 anon_upload_enable=YES #取消注释,允许匿名用户上传文件
34 anon_mkdir_write_enable=YES #允许匿名用户创建和上传目录
35 anon_other_write_enable=YES #开启其他权限,允许匿名用户删除、重命名、覆盖等操作
[root@lll /etc/vsftpd]# cd /var/
[root@lll /var]# ls
account cache db ftp gopher lib lock mail nis preserve spool tmp
adm crash empty games kerberos local log named opt run target yp
[root@lll /var]# cd ftp/
[root@lll /var/ftp]# ll
总用量 0
drwxr-xr-x. 2 root root 6 10月 14 2020 pub #默认权限为755,只允许超级用户root具有写入修改权限
[root@lll /var/ftp]# mkdir lll
[root@lll /var/ftp]# ll
总用量 0
drwxr-xr-x. 2 root root 6 4月 19 22:27 gzy
drwxr-xr-x. 2 root root 6 10月 14 2020 pub
[root@lll /var/ftp]# chmod 777 gzy/ #修改gzy目录为所有用户可读可修改权限
[root@lll /var/ftp]# ll
总用量 0
drwxrwxrwx. 2 root root 6 4月 19 22:27 gzy #允许匿名用户在gzy目录中进行写入和修改权限
drwxr-xr-x. 2 root root 6 10月 14 2020 pub
[root@lll ~]# systemctl start vsftpd #开启ftp服务
[root@lll ~]# systemctl enable vsftpd #将ftp服务设置为开机自启
Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.
[root@lll ~]# netstat -lntp | grep :21 #查看ftp的21号端口状态,是否已经打开
tcp6 0 0 :::21 :::* LISTEN 11577/vsftpd
[root@lll ~]# cd /var/ftp/
[root@lll /var/ftp]# ls
gzy pub
[root@lll /var/ftp]# cd lll/
[root@lll /var/ftp/lll]# echo 'helloworld' > 123.txt #向lll/目录中的123.txt文件中写入helloworld
[root@lll /var/ftp/lll]# ls
123.txt
[root@lll /var/ftp/lll]# cat 123.txt
helloworld
[root@lll /var/ftp/lll]# cp /etc/passwd ./passwd.txt #将/etc/passwd文件复制到当前目录下中,并重命名为passwd.txt
[root@lll /var/ftp/lll]# ls
123.txt passwd.txt
(2)客户端WIN10验证连接FTP服务器的结果;
切记一定要关闭防火墙,防止影响实验结果;