DHCP原理与配置

 

 

目录:

一、了解DHCP服务

二、DHCP的租约过程

三、配置DHCP服务

四、FTP服务–用来传输文件的协议

 

 

一、了解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) 服务器向客户端提供服务

客户机请求IP地址

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

服务器响应

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

客户机选择IP地址

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

服务器确定租约

  • DHCP服务器接收到DHCPRequest消息后,以DHCP ACK消息的形式向客户机广播成功确认,该消息包含有IP地址的有效租约和其他可配置的信息
  • 当客户机收到DHCPACK消息时,配置IP地址,完成 TCP/IP的初始化

重新登录

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

更新租约

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

租约过程:

重新登陆:

 

 

 

 

 

三、配置DHCP 服务

DHCP 服务
  • 为大量客户机自动分配地址,提供集中管理
  • 减轻管理和维护成本,提高网络配置效率
 
可分配的地址信息主要包括
  • 网卡的 IP 地址,子网掩码
  • 对应的网络地址,广播地址
  • 默认网关地址
  • DNS 服务器地址

# DHCP 服务端使用 UDP  67 端口, DHCP 客户端使用 UDP 68 

举例

实验拓扑

DHCP 服务器 :192.168.23.10 /24
DHCP中继: LSW2
pc 1 分配固定 ip  192.168.23.108 /24 ,vlan 100
PC2 valn 10 
PC3 vlan20

 

虚拟机配置

 1 [root@localhost ~]# yum -y install dhcp   #下载软件包[root@localhost ~]# rpm -qc dhcp           #查看dhcp 的配置文件/etc/dhcp/dhcpd.conf [root@localhost ~]# cd /etc/dhcp/ 4[root@localhost dhcp]# ls dhcpd.conf dhcpd.conf [root@localhost dhcp]# cp \ > /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example \ > /etc/dhcp/dhcpd.conf                      #复制模板文件vim  /etc/dhcp/dhcpd.conf
 2 #注意 dhcp 配置文件 是 /etc/dhcp/dhcpd.conf
 3 
 4 option domain-name "example.org";    #指定域名
 5 option domain-name-servers 8.8.8.8;  #指定dns 服务器地址
 6 default-lease-time 600;              #默认租约600s
 7 max-lease-time 7200;                 #最大租约7200s
 8 ddns-update-style none;              #禁用dns 动态更新,可以加快dns 的响应速度
 9 
10 subnet 192.168.23.0 netmask 255.255.255.0 {   #声明要分配的网段地址
11   range 192.168.23.100  192.168.23.200;       #设置地址池
12   option routers 192.168.23.254;              #指定默认网关
13 }     
14  #要先设置dhcp 所在的网段
15 
16 subnet 192.168.10.0 netmask 255.255.255.0 {
17   range 192.168.10.100  192.168.10.200;  
18   option routers 192.168.10.254;
19 }
20 
21 subnet 192.168.20.0 netmask 255.255.255.0 {
22   range 192.168.20.100  192.168.20.200;
23   option routers 192.168.20.254;
24 }
25 
26 host hostname {                            #指定需要分配固定Ip地址的客户机地址        
27   hardware ethernet 54:89:98:41:0A:22;    
28    #指定该主机的MAC地址。每8位)以冒号:分隔 (这里是16进制数 ,每个占0.5 字节,4位)
29   fixed-address 192.168.23.108;             #指定保留给该主机的IP地址
30 }
31 #host 主机声明(给单机分配固定IP地址)
32 
33 :wq
34 
35 [root@localhost dhcp-4.2.5]# systemctl restart dhcpd   #重启dhcp 服务
36 [root@localhost ~]# systemctl enable dhcpd 
37 [root@localhost dhcp-4.2.5]# systemctl stop firewalld.service     #关闭防火墙 
38 [root@localhost dhcp-4.2.5]# setenforce 0                         #设置 selinux
39 [root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33   #修改网卡配置......
40 IPADDR=192.168.23.10      #虚拟机ip地址
41 GATEWAY=192.168.23.254    #将网关修改为 192.168.23.254.....
42 :wq[root@localhost dhcp]# systemctl restart network    #重启网卡

vmware 设置

修改虚拟网络编辑器,将虚拟网卡 vmnet1 设置为仅主机模式,不使用dhcp分配

 

 

将网络适配器选择为  自定义(u):特定虚拟网络   ,vmnet1 仅主机模式

 

 

宿主机设置

宿主机设置vmnet 1 网卡属性,设置 ip v4 地址(192.168.23.188)

 

 

 

 

ensp 配置

cloud 设置
 
先添加UDP,再添加 vmnet 1 ,出端口号设置为2 设置为 双向通道

 

 

 

 

 

 设置LSW1

与交换机相连的接口设置为 trunk 口, 与主机相连的接口设置为access 口
 1 [SW1]v b 10 20 100
 2 [sw1]int e0/0/2
 3 [sw1-Ethernet0/0/2]p l a
 4 [sw1-Ethernet0/0/2]p d v 10
 5  
 6 [sw1-Ethernet0/0/2]int e0/0/3
 7 [sw1-Ethernet0/0/3]p l a 
 8 [sw1-Ethernet0/0/3]p d v 20
 9  
10 [sw1-Ethernet0/0/3]int e0/0/4
11 [sw1-Ethernet0/0/4]p l a
12 [sw1-Ethernet0/0/4]p d v  100 
13  
14 [sw1-Ethernet0/0/4]int e0/0/1
15 [sw1-Ethernet0/0/5]p l a 
16 [sw1-Ethernet0/0/5]p d v 100
17  
18 [sw1-Ethernet0/0/5]int e0/0/1
19 [sw1-Ethernet0/0/1]p l t
20 [sw1-Ethernet0/0/1]p t a v a
三层交换机LSW2 设置
设置dhcp 中继
 1 [sw2]dhcp enable           #开启dhcp 服务    
 2 [sw1]v b 10 20 100
 3 [sw2]int g0/0/1
 4 [sw2-GigabitEthernet0/0/1]p l t
 5 [sw2-GigabitEthernet0/0/1]p t a v a     #将与交换机相连的设置为 trunk 口
 6 [sw2]int vlanif 100
 7 [sw2-Vlanif10]ip add 192.168.23.254 24
 8 [sw2-Vlanif10]dhcp relay serv   
 9 [sw2-Vlanif10]dhcp relay server-ip  192.168.23.10    #设置dhcp 中继
10 [sw2]int vlanif 10
11 [sw2-Vlanif10]ip add 192.168.10.254 24
12 [sw2-Vlanif10]dhcp relay serv   
13 [sw2-Vlanif10]dhcp relay server-ip  192.168.23.10
14 [sw2]int vlanif 20
15 [sw2-Vlanif20]ip add 192.168.20.254 24
16 [sw2-Vlanif20]dhcp relay serv   
17 [sw2-Vlanif20]dhcp relay server-ip  192.168.23.10

获取 dhcp

 

四、FTP服务–用来传输文件的协议

FTP服务器默认使用TCP协议的20、21端口与客户端进行通信
  • 20端口用于建立数据连接,并传输文件数据
  • 21端口用于建立控制连接,并传输FTP控制命令
FTP数据连接分为主动模式和被动模式
  • 主动模式: 服务器主动发起数据连接
  • 被动模式: 服务器被动等待数据连接
yum install -y vsftpd
cd /etc/vsftpd/
cp vsftpd.conf vsftpd.conf.bak

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

#修改配置文件
vim /etc/vs ftpd/vs ftpd.conf

anonymous_enable=YES
#开启匿名用户访问。默认E开启

write enable=YES
#开放服务器的写权限(若要上传,必须开启)。默认已开启

anon umask=022
#设置匿名用户所上传数据的权限掩码(反掩码)

anon_ upload_ enable=YES 
#允许匿名用户.上传文件。默认E已注释,需取消注释

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

#匿名访问测试
在Windows系统打开开始菜单,输入cmd命令打开命令提示符

#建立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
#退出

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

#修改配置文件
vim /etc/vsftpd/vs ftpd. conf

local enable=Yes
#启用本地用户

anonymous_enable=NO
#关闭匿名用户访问

write enable=YES
#开放服务器的写权限(若要_上传,必须开启)

local_umask=077
#可设置仅宿主用户拥有被上传的文件的权限( 反掩码)

chroot_local_user=YES
#将访问禁锢在用户的宿主目录中

allow_writeable_chroot=YES
#允许被限制的用户主目录具有写权限

重启服务
systemctl restart vsftpd

ftp 192.168.80.10
ftp://zhangsan@192.168.80.10

修改匿名用户、本地用户登录的默认根目录
anon root=/ var/ Www/ html
#anon_ root 针对匿名用户

local root=/ var/www/html
#local_ root 针对系统用户
使用user_list 用户列表文件
vim /etc/vsftpd/user_ list
//末尾添加zhangsan用户
zhangsan

vim /etc/vsttpd/vsttpd.cont
userlist enable=YES
#启用user_ list用户列表文件

userlist deny=NO
#设置白名单,仅允许user_ list用户列表文件的用户访问。默认为YES,为黑名单,禁用

举例

 

 

 

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

 

 

 

 

 

设置白名单,仅允许user_ list用户列表文件的用户访问。默认为YES,为黑名单,禁用: 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  

  

 

  

  

posted @ 2021-07-04 14:52  咖啡coffee  阅读(127)  评论(0编辑  收藏  举报