TFTP协议详解及TFTP穿越NAT 1、环境拓扑配置 2、TFTP协议学习 2.5、TFTP工作流程 3、TFTP穿越NAT

目录

1、环境拓扑配置

2、TFTP协议学习

2.1、协议概述

2.2、TFTP报文类型

2.3、TFTP端口号分配

2.4、TFTP报文格式

2.4.1、Read request报文格式

2.4.2、Write requst报文格式

2.4.3、Acknowledgement报文格式

2.4.4、Data 报文格式

2.4.5、Error 报文格式

2.5、TFTP工作流程

3、TFTP穿越NAT


TFTP协议详解及TFTP穿越NAT
1、环境拓扑配置
2、TFTP协议学习
2.5、TFTP工作流程

3、TFTP穿越NAT

2、TFTP协议学习


2.1、协议概述


TFTP英文全称:Trivial File Transfer Protocol,中文全称:简单文件传输协议。提供不复杂、开销不大的文件传输服务。端口号为69。基于UDP协议。


2.2、TFTP报文类型


TFTP共定义了五种类型的包,类型的区分由包数据前两个字节的Opcode字段区分,分别是:

  • 读文件请求包:Read request,简写为RRQ,对应Opcode字段值为1
  • 写文件请求包:Write requst,简写为WRQ,对应Opcode字段值为2
  • 文件数据包:Data,简写为DATA,对应Opcode字段值为3
  • 回应包:Acknowledgement,简写为ACK,对应Opcode字段值为4
  • 错误信息包:Error,简写为ERROR,对应Opcode字段值为5

2.3、TFTP端口号分配


TFTP客户端发送read request和write request报文的时候,目的端口是69。而Data、Acknowledgement、Error不使用69端口,它们使用的是随机端口1024~5000。
不同的操作系统有不同的端口号规定Linux使用32768~61000、Windows 使用1025~5000


2.4、TFTP报文格式


2.4.1、Read request报文格式


客户端使用端口65462向服务端69端口发送读文件的请求

TFTP协议详解及TFTP穿越NAT
1、环境拓扑配置
2、TFTP协议学习
2.5、TFTP工作流程

3、TFTP穿越NAT

Read requst(1):表示这个一个读取文件的请求
Source file:表示源文件是 1.txt
Type:表示传输类型为8字节
Tsize:表示文件大小为0


2.4.2、Write requst报文格式


客户端使用端口65462向服务端69端口发送写文件的请求

TFTP协议详解及TFTP穿越NAT
1、环境拓扑配置
2、TFTP协议学习
2.5、TFTP工作流程

3、TFTP穿越NAT

Write requst(2):表示这个一个写文件的请求
DESTINATION file:表示目标文件是 1.txt
Type:表示传输类型为8字节


2.4.3、Acknowledgement报文格式


服务端使用端口58780向客户端65461端口发送write requst报文的响应包

TFTP协议详解及TFTP穿越NAT
1、环境拓扑配置
2、TFTP协议学习
2.5、TFTP工作流程

3、TFTP穿越NAT

Acknowledgement(4) 表示这是一个响应报文
DESTINATION file:1.txt 表示目标文件是 1.txt
Block:0 表示块代码为0


2.4.4、Data 报文格式


客户端使用65461端口向服务端58780端口发送数据。

TFTP协议详解及TFTP穿越NAT
1、环境拓扑配置
2、TFTP协议学习
2.5、TFTP工作流程

3、TFTP穿越NAT

Data packet(3) 表示这是一个TFTP传输的数据
DESTINATION file:1.txt 表示目标文件是 1.txt
Block:1 表示块代码为1
Length:270 表示数据长度是270


2.4.5、Error 报文格式


服务端使用58783端口向客户端的65463端口发送error消息

TFTP协议详解及TFTP穿越NAT
1、环境拓扑配置
2、TFTP协议学习
2.5、TFTP工作流程

3、TFTP穿越NAT

Error code(5) 表示这个是一个报文内包含错误信息
DESTINATION file:1.txt 表示目标文件是 1.txt
Error code:access violation(2) 表示错误类型,访问错误
error message 详细错误内容
Error code值:

  • 0 Not defined, see error message(if any)
  • 1 File not found
  • 2 Access violation
  • 3 Disk full or allocation exceeded
  • 4 Illegal TFTP operation
  • 5 Unknown transfer ID
  • 6 File already exists
  • 7 No such user

2.5、TFTP工作流程


1、服务端在端口为69的UDP上等待客户端发出写文件请求包
2、客户端通过UDP发送符合TFTP请求格式的Write requst包给服务端。从UDP包角度看,该UDP包的源端口由客户端随意选择,而目标端口则是服务端的69。

TFTP协议详解及TFTP穿越NAT
1、环境拓扑配置
2、TFTP协议学习
2.5、TFTP工作流程

3、TFTP穿越NAT

3、服务端收到客户端的这个请求包后,需发送Acknowledgement给客户端。对于写请求包,服务端发送的ACK包block为0。

TFTP协议详解及TFTP穿越NAT
1、环境拓扑配置
2、TFTP协议学习
2.5、TFTP工作流程

3、TFTP穿越NAT

4、客户端发送DATA数据给服务端

TFTP协议详解及TFTP穿越NAT
1、环境拓扑配置
2、TFTP协议学习
2.5、TFTP工作流程

3、TFTP穿越NAT

5、服务端接收数据并写文件,然后发送Acknowledgement给客户端,服务端发送的ACK包block为1

TFTP协议详解及TFTP穿越NAT
1、环境拓扑配置
2、TFTP协议学习
2.5、TFTP工作流程

3、TFTP穿越NAT

6、当客户端发送的DATA数据长度小于512字节时,服务端认为这次Write requst请求完成。


3、TFTP穿越NAT


总体转换报文浏览

TFTP协议详解及TFTP穿越NAT
1、环境拓扑配置
2、TFTP协议学习
2.5、TFTP工作流程

3、TFTP穿越NAT

包29:客户端向服务端发送write request报文,发送写文件的请求。
SIP:10.10.10.2、Sport:65461;DIP:192.168.10.115、Dport:69

TFTP协议详解及TFTP穿越NAT
1、环境拓扑配置
2、TFTP协议学习
2.5、TFTP工作流程

3、TFTP穿越NAT

包30:经过防火墙设备SNAT转换后的write request报文,转换源IP和源端口,生成链接跟踪表。
Sip:192.168.10.114、Sport:10847;Dip:192.168.10.115、Dport:69

TFTP协议详解及TFTP穿越NAT
1、环境拓扑配置
2、TFTP协议学习
2.5、TFTP工作流程

3、TFTP穿越NAT

包31:服务端收到write request报文后,发送ack响应报文。
Sip:192.168.10.115、Sport:58780;Dip:192.168.10.114、Dport:10847

TFTP协议详解及TFTP穿越NAT
1、环境拓扑配置
2、TFTP协议学习
2.5、TFTP工作流程

3、TFTP穿越NAT

包32:经过防火墙设备后,防火墙查找链接跟踪表,找到对应表象,把访问192.168.10.114的IP转换为10.10.10.2,把目的端口10847转换成65461

TFTP协议详解及TFTP穿越NAT
1、环境拓扑配置
2、TFTP协议学习
2.5、TFTP工作流程

3、TFTP穿越NAT

包33:客户端收到服务端的响应后,向服务端发送上传的数据
SIP:10.10.10.2、Sport:65461;DIP:192.168.10.115、Dport:58780

TFTP协议详解及TFTP穿越NAT
1、环境拓扑配置
2、TFTP协议学习
2.5、TFTP工作流程

3、TFTP穿越NAT

包34:防火墙收到客户端发送的报文后,匹配NAT策略,将data报文的源IP和源端口转换为192.168.10.114和10847

TFTP协议详解及TFTP穿越NAT
1、环境拓扑配置
2、TFTP协议学习
2.5、TFTP工作流程

3、TFTP穿越NAT

包35:服务器收到data报文后,储存客户端发送的数据,然后发送ack响应报文。
Sip:192.168.10.115、Sport:58780;Dip:192.168.10.114、Dport:10847

TFTP协议详解及TFTP穿越NAT
1、环境拓扑配置
2、TFTP协议学习
2.5、TFTP工作流程

3、TFTP穿越NAT

包36:经过防火墙设备后,防火墙查找链接跟踪表,找到对应表象,把访问192.168.10.114的IP转换为10.10.10.2,把目的端口10847转换成65461

TFTP协议详解及TFTP穿越NAT
1、环境拓扑配置
2、TFTP协议学习
2.5、TFTP工作流程

3、TFTP穿越NAT
DNAT的交互经过抓包发现和SNAT的交互报文相同,报文格式没有改变,只是改变的IP地址不同。