Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

TFTP ALG

简单文件传输协议 (TFTP) ALG 处理向 UDP 目标端口 69 发起请求的 TFTP 数据包,并打开一个门以允许从相反方向返回数据包到发送请求的端口。支持状态防火墙和 NAT 服务需要为 UDP 目标端口 69 配置 TFTP ALG。

使用 功能浏览器 确认平台和版本对特定功能的支持。

查看 特定于平台的 TFTP ALG 行为 部分,了解与您的平台相关的说明。

了解 TFTP ALG

概述

简单文件传输协议 (TFTP) 是用于文件传输 (RFC 1350) 的简单协议。TFTP 是在 UDP 之上实现的,目标端口 69 是众所周知的端口。TFTP 应用层网关 (ALG) 处理发起请求的 TFTP 数据包并创建针孔以允许从相反方向返回数据包。

在流处理中,一个 TFTP 对话有两个会话,一个是由读取请求 (RRQ) 或写入请求 (WRQ) 数据包创建的 TFTP 控制会话;另一个是由 DATA 数据包(用于 RRQ)或确认 (ACK) 数据包(用于 WRQ)创建的 TFTP 数据会话。

在 Junos OS 防火墙中,通过 junos-tftp 应用程序策略允许 TFTP 控制会话。当收到控制会话数据包时,允许数据会话通过 TFTP ALG 开放针孔从服务器的任何端口到客户端的 TID(端口)。不需要 NAT 转换,因为已经执行了 NAT 转换,并且可以从会话数据结构中获得信息。

TFTP 数据包

任何传输都从读取或写入文件的请求开始。小于 512 字节的数据包表示传输终止。

TFTP 支持五种类型的数据包:

  • 读取请求 (RRQ)

  • 写入请求 (WRQ)

  • 数据 (DATA)

  • 确认 (ACK)

  • 错误 (ERROR)

TFTP 会话

TFTP ALG 基于 UDP,这是一种无状态传输协议。在防火墙中,TFTP ALG 充当具有超时功能的 UDP 会话。如果没有数据包刷新会话,则该会话将在超时后终止。尽管 TFTP 客户端和服务器决定了 TFTP 会话的终止,但它们有时并不知道 Fireware 中的会话。因此,在这种情况下,客户端和服务器可以请求新的 TFTP 对话。

TFTP ALG 会话可通过以下任一方式进行:

  • 当 TFTP 控制会话达到超时时,如果数据会话仍处于活动状态,则会话不会终止。

  • 无论数据会话是否正在进行中,TFTP 会话都可能被 clear security flow session allclear specific session CLI 命令终止或损坏。

  • 如果新的 TFTP 会话请求到达并到达现有会话,TFTP ALG 将再次为新请求打开针孔。

  • 如果针孔已存在,TFTP ALG 将不会再次打开针孔,也不会出现丢包的情况。

  • TFTP ALG 不会丢弃任何数据包。

了解 TFTP ALG 对话

默认情况下,TFTP 服务器侦听来自端口 69 上的 TFTP 客户端的传入请求。TFTP 客户端选择其源隧道标识符 (TID) 端口,并将其初始请求发送到服务器。作为响应,服务器使用选择的 TID 作为源端口,并向客户端的 TID 作为目标端口发送响应。然后,这两个 TID 端口将用于其余的数据传输。

Read file conversation steps:

  1. 主机 A(客户端)向主机 B(服务器)发送 RRQ 数据包,其中 A 的 TID 为源,端口 69 为目标。

  2. 主机 B(服务器)向主机 A(客户端)发送 DATA 数据包,其中 B 的 TID 为源,A 的 TID 为目标。

  3. 主机 A(客户端)向主机 B(服务器)发送 ACK 数据包,其中 A 的 TID 为源,B 的 TID 为目标。

  4. DATA 和 ACK 数据包对话继续进行,直到文件数据传输完成。

Write file conversation steps:

  1. 主机 A(客户端)向主机 B(服务器)发送 WRQ 数据包,其中 A 的 TID 为源,端口 69 为目标。

  2. 主机 B(服务器)向主机 A(客户端)发送 ACK 数据包,其中 B 的 TID 为源,A 的 TID 为目标。

  3. 主机 A(客户端)向主机 B(服务器)发送 DATA 数据包,其中 A 的 TID 为源,B 的 TID 为目标。

  4. 主机 B(服务器)向主机 A(客户端)发送 ACK 数据包,其中 B 的 TID 为源,A 的 TID 为目标。

了解 TFTP ALG 的 IPv6 支持

简单文件传输协议 (TFTP) 应用层网关 (ALG) 已得到增强,可支持 IPv6 和 IPv4 TFTP 对话,该对话具有源 IP 地址和目标 IP 地址的 IPv6 和 IPv4 地址。

TFTP ALG 处理发起路由请求的数据包,并创建针孔,以允许数据包从相反方向返回到发送请求的端口。

数据会话由从客户端到服务器的第一个数据包建立。TFTP ALG 监控第一个数据包,并打开从服务器上任何端口到客户端的针孔。此过程有助于从服务器返回的数据包和后续数据包通过。

示例:配置 TFTP ALG

TFTP ALG 处理发起请求的 TFTP 数据包,并打开一个门,允许将数据包从相反方向返回到发送请求的端口。

此示例说明如何将 TFTP ALG 配置为通过瞻博网络设备上的源 NAT 池传递 TFTP 流量。

要求

  • 为源 NAT 池中的所有 IP 地址配置代理 ARP。

  • 了解 TFTP ALG 的基本概念。请参阅 了解 TFTP ALG

概述

在此示例中,TFTP ALG 配置为监控和允许 TFTP 流量,并在位于瞻博网络设备相对两侧的客户端和服务器之间传输文件。

配置

配置 NAT 源池、规则集和策略

CLI 快速配置

要快速配置示例的此部分,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以便与网络配置匹配,将命令复制并粘贴到层 [edit] 级的 CLI 中,然后从配置模式进入 commit

注意:

如果您不确定 TFTP 客户端和服务器 IP 地址,可以将“da1”和“sa1”替换为“any”。

分步过程

下面的示例要求您在各个配置层级中进行导航。有关作说明,请参阅 CLI 用户指南中的在配置模式下使用 CLI 编辑器。

要配置源 NAT 池,请执行以下作:

  1. 创建 NAT 源池。

  2. 配置安全区域通讯簿条目。

  3. 创建 NAT 源规则集。

  4. 配置策略

结果

在配置模式下,输入 show security natshow security policies 命令,以确认您的配置。如果输出未显示预期的配置,请重复此示例中的配置说明,以便进行更正。

如果完成设备配置,请从配置模式输入 commit

验证

确认配置工作正常。

验证 NAT 源池和规则集

目的

验证用于支持 TFTP ALG 的 NAT 源池和规则集是否工作正常。

行动

在作模式下,输入 show security nat static rule r1 命令。

验证 TFTP ALG

目的

验证是否已启用 TFTP ALG。

行动

在作模式下,输入 show security alg status 命令。

意义

输出显示 TFTP ALG 状态,如下所示:

  • 已启用 — 显示 TFTP ALG 已启用。

  • 已禁用 — 显示 TFTP ALG 已禁用。

特定于平台的 TFTP ALG 行为

使用 功能浏览器 确认平台和版本对特定功能的支持。

使用下表查看您的平台特定于平台的行为:

平台

差异

SRX 系列

  • 如果支持 TFTP 的 SRX320、SRX340 和 SRX380 设备在设备上启用了流,则不支持广播 TFTP。