在此页面上
TFTP ALG
简单文件传输协议 (TFTP) ALG 处理 TFTP 数据包,以向 UDP 目标端口 69 发起请求并打开一个门,允许数据包从反向返回至发送请求的端口。支持状态防火墙和NAT服务需要为 UDP 目标端口 69 配置 TFTP ALG。
了解 TFTP ALG
概述
简单文件传输协议 (TFTP) 是一种用于文件传输 (RFC 1350) 的简单协议。TFTP 在 UDP 顶部实施,其中目标端口 69 是众所周知的端口。TFTP 应用层网关 (ALG) 处理 TFTP 数据包,以启动请求并创建针孔以允许数据包从反向返回。
在流处理中,有两个会话用于一个 TFTP 对话,一个是由读取请求 (RRQ) 或写入请求 (WRQ) 数据包创建的 TFTP 控制会话;另一个是由数据包(用于 RRQ)或确认 (ACK) 数据包(用于 WRQ)创建的 TFTP 数据会话。
在Junos OS防火墙中,通过 junos-tftp 应用程序策略允许 TFTP 控制会话。接收控制会话数据包时,数据会话允许通过 TFTP ALG 从服务器任何端口开放针孔到客户端的 TID(端口)。不需要NAT转换,因为NAT已执行转换,并且信息可从会话数据结构获取。
如果SRX210、SRX240、SRX320、SRX340 或 SRX380 设备,则当设备上启用流时,不支持广播 TFTP。(平台支持取决于Junos OS的新版本。)
TFTP 数据包
任何传输都始于请求阅读或编写文件。小于 512 字节的数据包会发出传输终止信号。
TFTP 支持五种类型的数据包:
读取请求 (RRQ)
写入请求 (WRQ)
数据(数据)
确认 (ACK)
错误(错误)
TFTP 会话
TFTP ALG 基于 UDP,这是一种无状态传输协议。在防火墙中,TFTP ALG 会作为超时的 UDP 会话。如果没有数据包刷新会话,则超时后会话终止。尽管 TFTP 客户端和服务器确定 TFTP 对话的终止,但他们有时会不知道 Fireware 中的会话。因此,在这种情况下,客户端和服务器可以请求新的 TFTP 对话。
TFTP ALG 会话可以通过以下任一种方式继续:
当 TFTP 控制会话达到超时时,如果数据会话仍然处于活动状态,会话不会终止。
无论数据会话是否持续进行,TFTP 会话可能会终止或被 CLI 命令
clear security flow session all
clear specific session
损坏。如果新 TFTP 会话请求到达并到达现有会话,TFTP ALG 将为新请求再次打开针孔。
如果针孔已存在,TFTP ALG 不会再次打开针孔,并且不会丢失数据包。
TFTP ALG 不会丢弃任何数据包。
了解 TFTP ALG 对话
默认情况下,TFTP 服务器侦听端口 69 上的 TFTP 客户端的传入请求。TFTP 客户端选择其源隧道标识符 (TID) 端口并将其初始请求发送到服务器。作为响应,服务器使用 TID 作为源端口,并将响应发送到客户端的 TID 作为目标端口。然后,两个 TIDs 端口用于其余数据传输。
Read file conversation steps:
主机 A(客户端)将 RRQ 数据包发送到主机 B(服务器),将 A 的 TID 作为源,将端口 69 作为目标。
主机 B(服务器)将数据包发送到主机 A(客户端),将 B 的 TID 作为源,将 A 的 TID 作为目标。
主机 A(客户端)将 ACK 数据包发送到主机 B(服务器),A 的 TID 作为源,B 的 TID 作为目标。
DATA 和 ACK 数据包对话将持续,直到文件数据传输完成。
Write file conversation steps:
主机 A(客户端)将 WRQ 数据包发送到主机 B(服务器),将 A 的 TID 作为源,将端口 69 作为目标。
主机 B(服务器)将 ACK 数据包发送到主机 A(客户端),将 B 的 TID 作为源,将 A 的 TID 作为目标。
主机 A(客户端)将数据包发送到主机 B(服务器),A 的 TID 作为源,B 的 TID 作为目标。
主机 B(服务器)将 ACK 数据包发送到主机 A(客户端),将 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,以通过 TFTP 流量,NAT设备上的瞻博网络流量。
要求
为源设备池中的所有 IP 地址配置NAT ARP。
了解 TFTP ALG 的基本概念。请参阅 了解 TFTP ALG。
概述
此示例将 TFTP ALG 配置为监控并允许 TFTP 流量,在设备两侧的客户端和服务器瞻博网络文件。
配置
配置NAT源池、规则集和策略
CLI快速配置
要快速配置示例的此部分,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以匹配网络配置,将命令复制并粘贴到 层次结构级别的 CLI 中,然后从配置模式进入 。 [edit]
commit
set security nat source pool pool1 address 10.10.10.1/32 to 10.10.10.10/32 set security zones security-zone green address-book address sa1 1.1.1.0/24 set security zones security-zone red address-book address da1 2.2.2.0/24 set security nat source rule-set rs1 from zone green set security nat source rule-set rs1 to zone red set security nat source rule-set rs1 rule r1 match source-address 1.1.1.0/24 set security nat source rule-set rs1 rule r1 match destination-address 2.2.2.0/24 set security nat source rule-set rs1 rule r1 then source-nat pool pool1
set security policy from-zone green to-zone red policy pol1 match destination-address da1 set security policy from-zone green to-zone red policy pol1 match source-address sa1 set security policy from-zone green to-zone red policy pol1 match application junos-tftp set security policy from-zone green to-zone red policy pol1 then permit
如果您不确定 TFTP 客户端和服务器 IP 地址,可以将"da1"和"sa1"替换为"any"。
逐步过程
以下示例要求您在配置层次结构中导航各个级别。有关如何操作的说明,请参阅 CLI用户指南 中的 在配置模式下CLI编辑器 。
要配置源NAT池:
创建一NAT源池。
[edit security] user@host# set nat source pool pool1 address 10.10.10.1/32 to 10.10.10.10/32
配置安全区域地址簿条目。
[edit security zones security-zone] user@host# set green address-book address sa1 1.1.1.0/24 user@host# set red address-book address da1 2.2.2.0/24
创建一NAT源规则集。
[edit security nat source rule-set rs1] user@host# set from zone green user@host# set to zone red user@host# set rule r1 match source-address 1.1.1.0/24 user@host# set rule r1 match destination-address 2.2.2.0/24 user@host# set rule r1 then source-nat pool pool1
配置策略
[edit security policies from-zone green to-zone red policy pol1] user@host# set match source-address sa1 user@host# set match destination-address da1 user@host# set match application junos-tftp user@host# set then permit
结果
在配置模式下,输入 和 命令以确认 show security nat
您的 show security policies
配置。如果输出未显示预期的配置,请重复此示例中的配置说明进行更正。
[edit] user@host# show security nat source { pool pool1 { address { 10.10.10.1/32 to 10.10.10.10/32; } } rule-set rs1 { from zone green; to zone red; rule r1 { match { source-address 1.1.1.0/24; destination-address 2.2.2.0/24; } then { source-nat { pool { pool1; } } } } }
[edit] user@host# show security policies from-zone green to-zone red {policy pol1 { policy pol1 { match { source-address sa1; destination-address da1; application [junos-tftp]; } then { permit; } } } default-policy { permit-all; }
如果完成设备配置,请从配置 commit
模式输入 。
验证
确认配置工作正常。
验证NAT源池和规则集
目的
验证用于NAT TFTP ALG 的源池和规则集是否正常运行。
行动
在操作模式下,输入 show security nat static rule r1
命令。