Linux网络进阶之分析DHCP和FTP在linux中的原理和配置

一、DHCP概念

1、DHCP (Dynamic Host Configuration Protocol,动态主机配置协议)

  • 由Internet 工作任务小组设计开发
  • 专门用于为 TCP/IP 网络中的计算机自分配ТСР/IP参数的协议
    在这里插入图片描述

2、使用DHCP的好处

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

3、DHCP的分配方式

(1)使用DHCP服务分配地址

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

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

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

(3)三种分配方式

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

4、DHCP 的租约过程

  • 客户机从DHCP服务器获得IP地址的过程称为DHCP 的租约过程
  • 总的来说分为四个步骤
    在这里插入图片描述

(1)客户端在网络中搜索服务器

  • 当一个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 消息后,以DHCP ACK 消息的形式向客户机广播成功确认,该消息包含有IP地址的有效租约和其他可配置的信息
  • 当客户机收到 DHCP ACK 消息时,配置IP地址,完成TCP/IP的初始化

(5)重新登录

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

(6)更新租约

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

二、安装DHCP服务器

1、在ensp中配置DHCP 中继

dhcp enable									#开启DHCP功能

interface Vlanif10
 ip address 192.168.10.254 255.255.255.0
 dhcp select relay							#开启DHCP中继功能
 dhcp relay server-ip 192.168.100.253			#指向DHCP服务器的地址

interface Vlanif20
 ip address 192.168.20.254 255.255.255.0
 dhcp select relay
 dhcp relay server-ip 192.168.100.253

interface Vlanif100
 ip address 192.168.100.254 255.255.255.0
 dhcp select relay
 dhcp relay server-ip 192.168.100.253

2、配置DHCP服务器

  • CentOS 7光盘中的 dhcp-4.2.5-58.el7.centos.x86_64.rpm
  • DHCP软件包的主要文件
    • 主配置文件:/etc//dhcp/dhcpd.conf
    • 执行程序:/usr/sbin/dhcpd、 /usr/sbin/dhcrelay
yum install -y dhcp
cat /etc/dhcp/dhcpd.conf    #查看主配置文件
cat /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example  #查看示例配置文件

3、配置主配置文件内容

cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf

vim /etc/dhcp/dhcpd.conf   #设置全局配置参数
default-lease-time 600;	 #默认租约为 10分钟,单位为秒
max-lease-time 7200;	 #最大租约为 1 小时,单位为秒
option domain-name "example.org";  #指定默认域名
option domain-name-servers 8.8.8.8; #指定 DNS 服务器地址
ddns-update-style none;  #禁用 DNS 动态更新

#subnet网段声明(作用于整个子网段,部分配置参数优先级高于全局配置参数)
subnet 192.168.100.0 netmask 255.255.255.0 {    	#声明要分配的网段地址
   range 192.168.100.1 192.168.100.128;     #设置地址池
  option routers 192.168.100.254;      #指定默认网关地址
}
subnet 192.168.10.0 netmask 255.255.255.0 {
  range 192.168.10.1 192.168.10.128;
  option routers 192.168.10.254;
}
subnet 192.168.20.0 netmask 255.255.255.0 {
  range 192.168.20.1 192.168.20.128;
  option routers 192.168.20.254;
}

#host主机声明(给单机分配固定的 IP 地址)
host hostname {										#指定需要分配固定 IP地址的客户机名称
  hardware ethernet 00:c0:c3:22:46:81;				#指定该主机的 MAC地址
  fixed-address 192.168.10.100;						#指定保留给该主机的 IP地址
}

#后面内容可都删除

#关上防火墙
systemctl start dhcpd
systemctl stop firewalld
setenforce 0

netstat -anpu | grep ":67"

#如果DHCP服务启动失败,可以查看日志文件
tail -f /var/log/messages

4、Linux客户端使用 DHCP 动态获取IP

#方法一:
vim /etc/sysconfig/network-scripts/ifcfg-ens33
DEVICE=ens33
ONBOOT=yes
BOOTPROTO=dhcp

ifdown ens33 ; ifup ens33

#方法二:
dhclient -d ens33

查看租约文件 
less /var/lib/dhcpd/dhcpd.lease

三、DHCP分配实验

1、先在ensp中配置好网络模型

在这里插入图片描述

(1)云服务器的配置
这里要先设置一下自己的虚拟网卡,有些可能有自带的DHCP服务,需要关上,不然会冲突。
在这里插入图片描述

在这里插入图片描述
(2)DHCP中继的配置
在这里插入图片描述
(3)二层交换机的配置
在这里插入图片描述

2、虚拟机上的操作

(1)配置网卡,并重新加载网卡配置
在这里插入图片描述
在这里插入图片描述
(2)安装dhcp,查看并复制配置文件
在这里插入图片描述
查看主配置文件和配置模板文件
在这里插入图片描述
在这里插入图片描述
将配置模板文件覆盖主配置文件
在这里插入图片描述
(3)修改主配置文件,配置完别忘记wq保存
在这里插入图片描述
(4)修改虚拟机网络类型
在这里插入图片描述
(5)关闭防火墙
在这里插入图片描述
在这里插入图片描述
(6)在ensp中测试
PC1
在这里插入图片描述
在这里插入图片描述
PC2
在这里插入图片描述

3、给PC机固定IP地址

这里改地址不要改的和之前设置的地址有一样的,防止地址冲突。
在这里插入图片描述
在这里插入图片描述
从虚拟机win10上获取MAC地址
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

四、FTP文件传输实验

  • FTP服务–用来传输文件的协议
  • FTP服务器默认使用TCP协议的20、21端口于客户端进行通信
    • 20端口用于建立数据连接,并传输文件数据
    • 21端口用于建立控制连接,并传输FTP控制命令
  • FTP数据连接分为主动模式和被动模式
    • 主动模式:服务器主动发起数据连接
    • 被动模式:服务器被动等待数据连接

1、安装软件包

yum install -y vsftpd
cd /etc/vsftpd/
cp vsftpd.conf vsftpd.conf.bak

在这里插入图片描述
在这里插入图片描述

2、设置匿名用户访问的FTP服务(最大权限)

#修改配置文件
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES            #开启匿名用户访问。默认已开启
write_enable=YES                #开放服务器的写权限(若要上传,必须开启)。默认已开启
anon_umask=022                  #设置匿名用户所上传数据的权限掩码(反掩码)。默认已开启
anon_upload_enable=YES          #允许匿名用户上传文件。默认已注释,需取消注释
anon_mkdir_write_enable=YES     #允许匿名用户创建(上传)目录。默认已注释,需取消注释
anon_other_write_enable =YES    #允许删除、重命名、覆盖等操作。需添加

#为匿名访问ftp的根目录下的 pub子目录设置最大权限,以便匿名用户上传数据
chmod 777 /var/ftp/pub/

#开启服务,关闭防火墙和增强型安全功能
systemctl start vsftpd
systemctl stop firewalld
setenforce 0

在这里插入图片描述
在这里插入图片描述

3、匿名访问测试

在Windows系统打开 开始 菜单,输入 cmd 命令打开命令提示符
#建立ftp连接
ftp 192.168.163.20
#匿名访问,用户名为ftp,密码为空,直接回车即可完成登录
ftp> pwd			#匿名访问ftp的根目录为Linux系统的/var/ftp/目录
ftp> ls				#查看当前目录
ftp> cd pub			#切换到pub 目录
ftp> get 文件名		#下载文件到当前Windows本地目录
ftp> put 文件名		#上传文件到ftp目录
ftp> quit			#退出

先在linux上操作
在这里插入图片描述
win10电脑上的操作
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4、设置本地用户验证访问ftp,并禁止切换到ftp以外的目录(默认登录的根目录为本地用户的家目录)

#修改配置文件
vim /etc/vsftpd/vsftpd.conf
local_enable=Yes        		 #启用本地用户
anonymous_enable=NO     		 #关闭匿名用户访问
write_enable=YES        		 #开放服务器的写权限(若要上传,必须开启)
anon_umask=077          		 #可设置仅宿主用户拥有被上传的文件的权限(反掩码)
chroot_local_user=YES   		 #将访问禁锢在用户的宿主目录中
allow_writeable_chroot=YES		 #允许被限制的用户主目录具有写权限

重启服务
systemctl restart vsftpd


修改匿名用户、本地用户登录的默认根目录(这个在配置文件里填上即可,这就不演示了)
anon_root=/var/www/html			#anon_root 针对匿名用户
local_root=/var/www/html		#local_root 针对系统用户

修改配置文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
重启服务
在这里插入图片描述
win10下的操作,用户被限制,不允许访问出宿主家目录以外的目录。
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_51326240/article/details/110872097
今日推荐