DHCP原理与配置
DHCP服务
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)
用途:
1.给内部网络或网络服务供应商自动分配ip地址
2.给用户或者内部网络管理员作为对所有计算机中央管理的手段
使用DHCP的好处
减少管理员的工作量
避免输入错误的可能
避免ip地址的冲突
当更改ip地址段时,不需要重新配置每个用户的IP地址
提高了ip地址的利用率
方便客户端的配置
DHCP的典型应用模式如下:
在网络中架设一台专用的DHCP服务器,复制集中分配各种网络地址参数(主要包括ip地址、子网掩码、广播地址、默认网关地址、cos服务器地址)﹔其他主机作为DHCP客户机,将网卡配置为自动获取地址,即可与 DHCP服务器进行通信,完成自动配置过程。
DHCP
采用UDP作为传输协议
两个端口:67(服务端)68(客户端)
DHCP的ip地址自动获取工作原理:
第一步:客户端在网络中搜索服务器
客户端通过广播发送DHCP Discover报文寻找服务器端
第二步:服务器向客户端响应服务
服务器端通过广播(华为路由器使用单播,思科、linux、windows使用的是广播)发送DHCP offer报文向客户端提供ip地址等网络信息,从IP地址池中挑选一个尚未分配的IP地址分配给客户端
华为的DHCP服务器会按照由大到小的顺序从ip池里分配ip
第三步:客户端向服务器发出服务请求
如果有多台DHCP服务器向该客户端发来DHCP-offer报文,客户端只接受第一个收到的DHCP-offer报文并提取I地址,然后客户端通过广播发送 Request报文告知服务器端本地选择使用该IP地址
第四步 :服务器向客户端提供服务
服务器通过广播(华为路由器使用单播,思科、linux、windows使用的是广播)发送DECP Ack报文告知客户端IP地址是合法可用的,并在选项字段中增加Ip地址的使用租期信息
(5)重新登录
DHCP客户机每次重新登录网络时,不需要再发送DHCP Discover信息,而是直接发送包含前一次所分配的IP地址的DHCP Request请求信息
(6)更新租约
当DHCP服务器向客户机出租的IP地址租期达到50%时,就需要更新租约 客户机直接向提供租约的服务器发送DHCP Request包,要求更新现有的地址租约
DHCP服务器 可以通过 路由器或者Windows、linux系统进行配置
服务器架构: X86_64 inter 64位架构的服务器
linux_adm64
DHCP服务器
CentOS光盘中的 dhcp-4.2.5-47.el7.centos.x86_64.rpm
DHCP软件包的主要文件
主配置文件:/etc/dhcpd.conf
执行程序:/usr/sbin/dhcpd、 /usr/sbin/dhcrelay
实验:设置DHCP服务器并分配地址
搭建DHCP服务器
关闭防火墙,关闭开机自启动
安装DHCP服务
配置DHCP服务器
yum install -y dhcp
cd /etc/dhcp/
ls
cat dhcpd.conf
cd /usr/share/doc/dhcp-4.2.5/
ls
cat dhcpd.conf.example
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
将虚拟机的网络模式改成仅主机模式
修改网卡配置文件,之后重启服务
[root@localhost ~]#vim /etc/sysconfig/network-scripts/ifcfg-ens33 #修改网卡配置文件
[root@localhost ~]#systemctl restart network #重启网络服务
[root@localhost ~]#ifconfig ens33
设置全局配置参数
例子:
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.59.0 netmask 255.255.255.0 { #声明要分配的网段地址
range 192.168.59.100 192.168.59.200; #设置地址池
option routers 192.168.59.2; #指定默认网关地址
}
option domain-name-servers 8.8.8.8; #指定DNS服务器地址
systemctl restart dhcpd #重启dhcp服务
验证Windows10虚拟机是否获取DHCP服务器分配的地址
Windows10虚拟机将网络类型修改为”仅主机模式“
释放ip地址,之后重新获取IP地址
验证linux虚拟机是否获取DHCP服务器分配的地址
linux虚拟机将网络类型修改为”仅主机模式“
vim /etc/sysconfig/network-scripts/ifcfg-ens33
systemctl restart network
ifconfig
host主机声明(给单机分配固定的IP地址)
例:
host hostname { #指定需要分配固定IP地址的客户机名称
hardware ethernet 00:0C:29:7B:B5:43; #指定该主机的MAC地址
fixed-address 192.168.59.188; #指定保留给该主机的IP地址
}
FTP服务——用来传输文件的协议
概述:
FTP服务器默认使用TCP协议的20、21端口与客户端进行通信:
20端口用于建立数据连接,并传输文件数据 21端口用于建立控制连接,并传输FTP控制命令
数据连接模式
FTP数据连接分为主动模式和被动模式
主动模式:服务器主动发起数据连接 被动模式:服务器被动等待数据连接
FTP服务的相关配置
安装FTP服务
rpm -ivh vsftpd-3.0.2-22.el7.x86_64.rpm #rpm安装
yum install -y vsftpd #yum一键安装
rpm -qc vsftpd #查看ftp配置目录
cd /etc/vsftpd/ #切换到ftp配置目录下
进行原配置文件的备份:
cp vsftpd.conf{,.bak}
或 cp vsftpd.conf vsftpd.conf.bak #进行原配置文件的备份
实验:
1.匿名用户访问的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子目录设置最大权限,以便匿名用户上传数据
chomd 777 /var/ftp/pub
开启服务,关闭防火墙和安全机制
systemctl start vsftpd #开启服务
systemctl stop firewalld #关闭防火墙
setenforce 0 #关闭系统安全机制
匿名测试:
建立ftp连接
ftp 192.168.80.10 #匿名访问,用户名为ftp,密码为空,直接回车即可完成登录
ftp> pwd #匿名访问ftp的根目录为Linux系统的/var/ftp/目录
ftp> ls #查看当前目录
ftp> cd pub #切换到pub目录
ftp> get 文件名 #下载文件到当前Windows本地目录
ftp> put 文件名 #上传文件到ftp目录
ftp> quit #退出
在Windows中输入cmd打开命令提示符
进行ftp文件传输,123.txt下载到Windows本地目录,将Windows桌面上aaa.txt上传到ftp目录
2.设置本地用户验证访问ftp,禁止切换到ftp以外的目录(默认登录的根目录为本地用户的家目录)
vim /etc/vsftpd/vsftpd.conf #修改配置文件
local_enable=Yes #启用本地用户
anonymous_enable=NO #关闭匿名用户访问
write_enable=YES #开放服务器的写权限(若要上传,必须开启)
local_umask=077 #可设置仅宿主用户拥有被上传的文件的权限(反掩码)
chroot_local_user=YES #将访问禁锢在用户的宿主目录中
allow_writeable_chroot=YES #允许被限制的用户主目录具有写权限
3.修改匿名用户、本地用户登录的默认根目录
anon_root=/var/www/html #anon_root 针对匿名用户
local_root=/var/www/html #local_root 针对系统用户
使用user_list用户列表文件
vim /etc/vsftpd/user_list
lisi #末尾添加lisi用户
vim /etc/vsftpd/vsftpd.conf
userlist_enable=YES #启用user_list用户列表文件
userlist_deny=NO #设置白名单,仅允许user_list用户列表文件的用户访问。默 认为YES为黑名单,禁用