在此页面上
谈话阿尔格
TALK ALG是一种视觉交流程序,用于两个用户之间的互动交流。TALK 协议使用 UDP 端口 517 和端口 518 进行控制通道连接。谈话程序由服务器和客户端组成。服务器处理客户端通知并帮助建立谈话会话。有两种类型的对话服务器:ntalk 和 talkd。TALK ALG 处理 ntalk 和 talkd 格式的数据包。它还根据需要执行 NAT 和门打开。
了解 TALK ALG
TALK ALG是一种视觉交流程序,用于两个用户之间的互动交流。TALK ALG 处理 TALK 数据包,执行网络地址转换 (NAT),并在接收端打开两个门(TCP 和 UDP)。一个门用于下一个 LOOKUP 数据包。另一个门用于建立从客户端到服务器的连接,以及启动客户端与位于瞻博网络设备两侧的服务器之间的通信。
有两种类型的 TALK 服务器:ntalkd 和 talkd。
TALK ALG 同时处理 ntalk 和 talkd 数据包。TALK ALG 使用端口 UDP517 和端口 UDP518 在客户端和服务器之间建立连接。
示例:配置 TALK ALG
此示例说明如何在路由或 NAT 模式下配置 TALK ALG,允许 TALK 流量通过设备,以及如何启动客户端与位于瞻博网络设备两侧的服务器之间的通信。
要求
此示例使用以下硬件和软件组件:
SRX 系列防火墙
两台电脑(客户端和服务器)
准备工作:
了解 ALG 背后的概念。请参阅 ALG 概述。
了解 TALK ALG 的基础知识。请参阅 了解 TALK ALG。
概述
在此示例中,首先在设备上配置网络接口,创建安全区域并将接口分配给区域,然后配置策略以允许 TALK 流量通过 SRX 系列防火墙。
然后,使用规则 r1 创建一个静态 NAT 规则集 rs1 以匹配目标地址 40.5.2.120/32,并创建一个地址为 20.5.2.120/32 的静态 NAT 前缀。
接下来,使用源规则集 src-rs1 创建源 NAT 池 src-p1,以将数据包从区域信任转换为区域不信任。对于匹配的数据包,源地址将转换为 src-p1 池中的 IP 地址。
然后,使用目标规则集 des-rs1 创建目标 NAT 池 des-p1,以将数据包从区域信任转换为目标地址 40.5.2.121/32。对于匹配的数据包,目标地址将转换为 des-p1 池中的 IP 地址。最后,配置 TALK ALG 跟踪选项。
配置
要配置 TALK ALG,请执行以下任务:
配置路由模式
CLI 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改与您的网络配置匹配所需的任何详细信息,将命令复制并粘贴到层次结构级别的 CLI [edit]
中,然后从配置模式进入 commit
。
set interfaces ge-0/0/1 unit 0 family inet address 20.5.1.1/24 set interfaces fe-0/0/2 unit 0 family inet address 20.5.2.1/24 set security zones security-zone trust interfaces ge-0/0/1 host-inbound-traffic system-services all set security zones security-zone trust interfaces ge-0/0/1 host-inbound-traffic protocols all set security zones security-zone untrust interfaces fe-0/0/2 host-inbound-traffic system-services all set security zones security-zone untrust interfaces fe-0/0/2 host-inbound-traffic protocols all set security policies from-zone trust to-zone untrust policy talk match source-address any set security policies from-zone trust to-zone untrust policy talk match destination-address any set security policies from-zone trust to-zone untrust policy talk match application junos-ntalk set security policies from-zone trust to-zone untrust policy talk then permit
分步过程
以下示例要求您在配置层次结构中导航各个级别。有关如何执行此操作的说明,请参阅 CLI 用户指南中的在配置模式下使用 CLI 编辑器。
要配置路由模式:
配置接口。
[edit interfaces] user@host#set ge-0/0/1 unit 0 family inet address 20.5.1.1/24 user@host#set fe-0/0/2 unit 0 family inet address 20.5.2.1/24
配置区域并将接口分配给区域。
[edit security zones security-zone trust] user@host#set interfaces ge-0/0/1 host-inbound-traffic system-services all user@host#set interfaces ge-0/0/1 host-inbound-traffic protocols all [edit security zones security-zone untrust] user@host#set interfaces fe-0/0/2 host-inbound-traffic system-services all user@host#set interfaces fe-0/0/2 host-inbound-traffic protocols all
配置允许从信任区域到不信任区域的 TALK 流量的 TALK 策略。
[edit security policies from-zone untrust to-zone trust] user@host#set policy talk match source-address any user@host#set policy talk match destination-address any user@host#set policy talk match application junos-ntalk user@host#set policy talk then permit
结果
在配置模式下,输入 show interfaces
、 show security zones
和 show security policies
命令确认您的配置。如果输出未显示预期的配置,请重复此示例中的配置说明以进行更正。
为简洁起见,此 show
输出仅包含与此示例相关的配置。系统上的任何其他配置都已替换为省略号 (...)。
[edit] user@host# show interfaces ... ge-0/0/1 { unit 0 { family inet { address 20.5.1.1/24; } } } ... fe-0/0/2 { unit 0 { family inet { address 20.5.2.1/24; } } }
[edit] user@host# show security zones security-zone trust { .... interfaces { ge-0/0/1.0 { host-inbound-traffic { system-services { all; } protocols { all; } } } } } ... security-zone untrust { interfaces { fe-0/0/2.0 { host-inbound-traffic { system-services { all; } protocols { all; } } } } }
[edit] user@host# show security policies from-zone trust to-zone untrust { policy talk { match { source-address any; destination-address any; application junos-ntalk; } then { permit; } } }
如果完成设备配置,请从配置模式输入 commit
。
配置静态 NAT 规则集
CLI 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改与您的网络配置匹配所需的任何详细信息,将命令复制并粘贴到层次结构级别的 CLI [edit]
中,然后从配置模式进入 commit
。
set security nat static rule-set rs1 from zone trust set security nat static rule-set rs1 rule r1 match destination-address 40.5.2.120/32 set security nat static rule-set rs1 rule r1 then static-nat prefix 20.5.2.120/32
分步过程
以下示例要求您在配置层次结构中导航各个级别。有关如何执行此操作的说明,请参阅 CLI 用户指南中的在配置模式下使用 CLI 编辑器。
要配置静态 NAT 规则集,请执行以下操作:
创建静态 NAT 规则集。
[edit security nat static rule-set rs1] user@host#set from zone trust
定义要与目标地址匹配的规则。
[edit security nat static rule-set rs1] user@host# set rule r1 match destination-address 40.5.2.120/32
定义设备的静态 NAT 前缀。
[edit security nat static rule-set rs1] user@host# set rule r1 then static-nat prefix 20.5.2.120/32
结果
在配置模式下,输入 show security nat
命令确认您的配置。如果输出未显示预期的配置,请重复此示例中的配置说明以进行更正。
[edit] user@host# show security nat static { rule-set rs1 { from zone trust; rule r1 { match { destination-address 40.5.2.120/32 } then { static-nat { prefix { 20.5.2.120/32; } } } } } }
如果完成设备配置,请从配置模式输入 commit
。
配置源 NAT 池和规则集
CLI 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改与您的网络配置匹配所需的任何详细信息,将命令复制并粘贴到层次结构级别的 CLI [edit]
中,然后从配置模式进入 commit
。
set security nat source pool src-p1 address 40.5.1.120/32 set security nat source rule-set src-rs1 from zone trust set security nat source rule-set src-rs1 to zone untrust set security nat source rule-set src-rs1 rule src-r1 match source-address 20.5.1.120/32 set security nat source rule-set src-rs1 rule src-r1 match destination-address 20.5.2.120/32 set security nat source rule-set src-rs1 rule src-r1 then source-nat pool src-p1
分步过程
以下示例要求您在配置层次结构中导航各个级别。有关如何执行此操作的说明,请参阅 CLI 用户指南中的在配置模式下使用 CLI 编辑器。
要配置源 NAT 池和规则集,请执行以下操作:
创建源 NAT 池。
[edit security nat source] user@host#set pool src-p1 address 40.5.1.120/32
创建源 NAT 规则集。
[edit security nat source] user@host# set rule-set src-rs1 from zone trust user@host# set rule-set src-rs1 to zone untrust
配置匹配数据包并将源地址转换为源池中的地址的规则。
[edit security nat source] user@host# set rule-set src-rs1 rule src-r1 match source-address 20.5.1.120/32
配置匹配数据包并将目标地址转换为源池中的地址的规则。
[edit security nat source] user@host# set rule-set src-rs1 rule src-r1 match destination-address 20.5.2.120/32
在规则中配置源 NAT 池。
[edit security nat source] user@host# set rule-set src-rs1 rule src-r1 then source-nat pool src-p1
结果
在配置模式下,输入 show security nat
命令确认您的配置。如果输出未显示预期的配置,请重复此示例中的配置说明以进行更正。
[edit] user@host# show security nat source { pool src-p1 { address { 40.5.1.120/32; } } rule-set src-rs1 { from zone trust; to zone untrust; rule src-r1 { match { source-address 20.5.1.120/32; destination-address 20.5.2.120/32; } then { source-nat { pool { src-p1; } } } } } }
如果完成设备配置,请从配置模式输入 commit
。
配置目标 NAT 池和规则集
CLI 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改与您的网络配置匹配所需的任何详细信息,将命令复制并粘贴到层次结构级别的 CLI [edit]
中,然后从配置模式进入 commit
。
set security nat destination pool des-p1 address 20.5.2.120/32 set security nat destination rule-set des-rs1 from zone trust set security nat destination rule-set des-rs1 rule des-r1 match source-address 20.5.1.120/32 set security nat destination rule-set des-rs1 rule des-r1 match destination-address 40.5.2.120/32 set security nat destination rule-set des-rs1 rule des-r1 then destination-nat pool des-p1
分步过程
以下示例要求您在配置层次结构中导航各个级别。有关如何执行此操作的说明,请参阅 CLI 用户指南中的在配置模式下使用 CLI 编辑器。
要配置目标 NAT 池和规则集,请执行以下操作:
创建目标 NAT 池。
[edit security nat destination] user@host#set pool des-p1 address 20.5.2.120/32
创建目标 NAT 规则集。
[edit security nat destination] user@host# set rule-set des-rs1 from zone trust
配置匹配数据包并将源地址转换为池中地址的规则。
[edit security nat destination] user@host# set rule-set des-rs1 rule des-r1 match source-address 20.5.1.120/32
配置匹配数据包并将目标地址转换为池中地址的规则。
[edit security nat destination] user@host# set rule-set des-rs1 rule des-r1 match destination-address 40.5.2.120/32
在规则中配置源 NAT 池。
[edit security nat destination] user@host# set rule-set des-rs1 rule des-r1 then destination-nat pool des-p1
结果
在配置模式下,输入 show security nat
命令确认您的配置。如果输出未显示预期的配置,请重复此示例中的配置说明以进行更正。
[edit] user@host# show security nat destination { pool des-p1 { address { 20.5.2.120/32; } } rule-set des-rs1 { from zone trust; rule des-r1 { match { source-address 20.5.1.120/32; destination-address 40.5.2.120/32; } then { destination-nat { pool { des-p1; } } } } }
如果完成设备配置,请从配置模式输入 commit
。
配置 TALK ALG 跟踪选项
CLI 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改与您的网络配置匹配所需的任何详细信息,将命令复制并粘贴到层次结构级别的 CLI [edit]
中,然后从配置模式进入 commit
。
set security alg talk traceoptions flag all set security alg traceoptions file trace set security alg traceoptions file size 1g set security alg traceoptions level verbose
分步过程
以下示例要求您在配置层次结构中导航各个级别。有关如何执行此操作的说明,请参阅 CLI 用户指南中的在配置模式下使用 CLI 编辑器。
要配置 TALK ALG 跟踪选项,请执行以下操作:
启用 TALK ALG 跟踪 otpions。
[edit security alg] user@host#set talk traceoptions flag all
配置文件名以接收跟踪操作的输出。
[edit security alg] user@host#set traceoptions file trace
指定最大跟踪文件大小。
[edit security alg] user@host#set traceoptions file size 1g
指定跟踪输出的级别。
[edit security alg] user@host#set traceoptions level verbose
结果
在配置模式下,输入 show security alg
命令确认您的配置。如果输出未显示预期的配置,请重复此示例中的配置说明以进行更正。
[edit] user@host# show security alg traceoptions { file trace size 1g; level verbose; } talk traceoptions flag all;
如果完成设备配置,请从配置模式输入 commit
。
验证
确认配置工作正常。
验证 TALK ALG 控制会话
目的
验证是否已创建 TALK 控制会话,以及是否已创建所有 TALK 控件和数据会话。
行动
在操作模式下,输入 show security flow session
命令。
user@host>show security flow session ession ID: 128570, Policy name: p11/4, Timeout: 56, Valid Resource information : TALK ALG, 2, 0 In: 5.1.1.200/1105 --> 6.1.1.200/518;udp, If: ge-0/0/1.0, Pkts: 3, Bytes: 336 Out: 6.1.1.200/518 --> 5.1.1.200/1105;udp, If: ge-0/0/2.0, Pkts: 3, Bytes: 156 Session ID: 128617, Policy name: p11/4, Timeout: 1796, Valid Resource information : TALK ALG, 2, 2 In: 6.1.1.200/42224 --> 5.1.1.200/518;udp, If: ge-0/0/2.0, Pkts: 1, Bytes: 112 Out: 5.1.1.200/518 --> 6.1.1.200/42224;udp, If: ge-0/0/1.0, Pkts: 1, Bytes: 52 Session ID: 128618, Policy name: p11/4, Timeout: 1796, Valid Resource information : TALK ALG, 2, 3 In: 6.1.1.200/51430 --> 5.1.1.200/32905;tcp, If: ge-0/0/2.0, Pkts: 4, Bytes: 219 Out: 5.1.1.200/32905 --> 6.1.1.200/51430;tcp, If: ge-0/0/1.0, Pkts: 3, Bytes: 167
意义
Session ID- 标识会话的编号。使用此 ID 可获取有关会话的详细信息,例如策略名称或进出数据包数。
Policy name- 允许流量的策略名称。
In—传入流(源和目标 IP 地址及其各自的源和目标端口号,会话为 TCP,此会话的源接口为 ge-0/0/1.0)。
Out—反向流(源和目标 IP 地址及其各自的源和目标端口号,会话为 TCP,此会话的目标接口为 fe-0/0/2.0)。
验证 TALK 流门信息
目的
验证是否已为 TCP 数据通道打开门并反向 UDP 回复。
行动
在操作模式下,输入 show security flow gate
命令。
user@host>show security flow gate Hole: 6.1.1.200-6.1.1.200/0-0->5.1.1.200-5.1.1.200/518-518 Translated: 0.0.0.0/0->0.0.0.0/0 Protocol: udp Application: TALK ALG/65 Age: 110 seconds Flags: 0x0080 Zone: untrust Reference count: 1 Resource: 11-2-2 Hole: 6.1.1.200-6.1.1.200/0-0->5.1.1.200-5.1.1.200/32905-32905 Translated: 0.0.0.0/0->0.0.0.0/0 Protocol: tcp Application: TALK ALG/65 Age: 110 seconds Flags: 0x0080 Zone: untrust Reference count: 1 Resource: 11-2-3
意义
Hole—针孔允许的流量范围。
Translated- 如果与针孔(源和目标 IP 地址及其各自的源和目标端口号)匹配,则用于创建会话的元组。
Protocol- 应用程序协议,如 UDP 或 TCP。
Application- 应用程序的名称。
Age- 针孔的空闲超时。
Flags— 针孔的内部调试标志。
Zone- 安全区域,例如从区域和到区域。
Reference count- 资源管理器对针孔的引用数。
Resource- 有关针孔的资源管理器信息。
验证 TALK ALG
目的
验证 TALK ALG 是否已启用。
行动
在操作模式下,输入 show security alg status
命令。
user@host>show security alg status ALG Status : PPTP : Enabled RSH : Disabled RTSP : Enabled SCCP : Enabled SIP : Enabled TALK : Enabled TFTP : Enabled IKE-ESP : Disabled
意义
输出显示 TALK ALG 状态,如下所示:
已启用 — 显示 TALK ALG 已启用。
已禁用 — 显示 TALK ALG 已禁用。
验证 TALK 资源管理器组
目的
验证 TALK ALG 使用的资源管理器组和活动组的总数。
行动
在操作模式下,输入 show security resource-manager group active
命令。
user@host>show security resource-manager group active Group ID 2: Application - TALK ALG Total groups 3276, active groups 1
验证 TALK 资源信息
目的
验证 TALK ALG 使用的资源和活动资源的总数。
行动
在操作模式下,输入 show security resource-manager resource active
命令。
user@host>show security resource-manager resource active Resource ID 3: Group ID - 2, Application - TALK ALG Resource ID 2: Group ID - 2, Application - TALK ALG Total Resources 6015, active resources 2