安全设备故障排除
逻辑系统安全策略中的 DNS 名称解析疑难解答(仅限主管理员)
问题
Description
安全策略中使用的通讯簿条目中的主机名地址可能无法正确解析。
原因
通常,包含动态主机名的通讯簿条目会自动刷新 SRX 系列防火墙。与 DNS 条目关联的 TTL 字段指示应在策略缓存中刷新条目的时间。TTL 值过期后,SRX 系列防火墙会自动刷新通讯簿条目的 DNS 条目。
但是,如果 SRX 系列防火墙无法从 DNS 服务器获取响应(例如,DNS 请求或响应数据包在网络中丢失,或者 DNS 服务器无法发送响应),则通讯簿条目中的主机名地址可能无法正确解析。这可能会导致流量丢弃,因为未找到安全策略或会话匹配项。
解决方案
主管理员可以使用该 show security dns-cache
命令在 SRX 系列防火墙上显示 DNS 缓存信息。如果需要刷新 DNS 缓存信息,主管理员可以使用该 clear security dns-cache
命令。
这些命令仅供为逻辑系统配置的设备上的主管理员使用。此命令在用户逻辑系统或未为逻辑系统配置的设备上不可用。
另请参阅
链路服务接口故障排除
要解决链路服务接口上的配置问题,请执行以下操作:
确定将哪些 CoS 组件应用于组成链路
问题
Description
您正在配置多链路捆绑包,但也有没有 MLPPP 封装的流量通过该多链路捆绑包的组成链路。您是否将所有 CoS 组件应用于组成链路,或者将它们应用于多链路束是否足够?
解决方案
您可以将调度程序图应用于多链路捆绑包及其组成链路。尽管您可以将多个 CoS 组件与调度器图一起应用,但请仅配置所需的组件。我们建议您保持组成链路上的配置简单,以避免不必要的传输延迟。
表 1 显示了要应用于多链路束及其组成链路的 CoS 组件。
Cos 组件 |
多链路束 |
组成链接 |
解释 |
---|---|---|---|
分类 |
是 |
否 |
CoS 分类发生在接口的传入端,而不是在发送端,因此组成链路上不需要分类器。 |
转发类 |
是 |
否 |
转发类与队列相关联,队列通过调度器图应用于接口。队列分配是在构成链路上预先确定的。来自多链路束 Q2 的所有数据包将分配给构成链路的 Q2,来自所有其他队列的数据包将排队到构成链路的 Q0。 |
调度器映射 |
是 |
是 |
在多链路束和组成链路上应用时间表图,如下所示:
|
每单元调度程序或接口级调度器的整形速率 |
否 |
是 |
由于每单元调度仅在端点应用,因此请仅将此整形速率应用于构成链路。之前应用的任何配置都会被组成链路配置覆盖。 |
传输速率精确或队列级整形 |
是 |
否 |
应用于构成链路的接口级整形将覆盖队列上的任何整形。因此,仅在多链路束上应用传输速率精确整形。 |
重写规则 |
是 |
否 |
在分片期间,重写位会自动从数据包复制到分片中。因此,您在多链路束上配置的内容将通过分段传送到组成链路。 |
虚拟通道组 |
是 |
否 |
虚拟通道组通过防火墙过滤器规则进行标识,这些规则仅在多链路捆绑包之前应用于数据包。因此,您无需将虚拟通道组配置应用于构成链路。 |
另请参阅
确定导致多链路束抖动和延迟的原因
确定 LFI 和负载平衡是否正常工作
问题
Description
在这种情况下,您有一个支持多种服务的网络。网络传输数据和对延迟敏感的语音流量。配置 MLPPP 和 LFI 后,请确保语音数据包在网络中传输时延迟和抖动非常小。如何确定语音数据包是否被视为 LFI 数据包,以及是否正确执行了负载平衡?
解决方案
启用 LFI 后,数据(非 LFI)数据包将使用 MLPPP 标头封装,并分段为指定大小的数据包。延迟敏感型语音 (LFI) 数据包采用 PPP 封装,并在数据包片段之间交错。对于 LFI 数据包和非 LFI 数据包,排队和负载平衡的执行方式不同。
要验证是否正确执行了 LFI,请确定数据包是否按配置进行分段和封装。知道数据包是被视为 LFI 数据包还是非 LFI 数据包后,可以确认是否正确执行了负载平衡。
Solution Scenario
—假设两台瞻博网络设备 R0 和 R1 通过聚合两条串行链路的多链路束 lsq-0/0/0.0
连接, se-1/0/0
并且 se-1/0/1
. 在 R0 和 R1 上,链路服务接口上启用了 MLPPP 和 LFI,分段阈值设置为 128 字节。
在此示例中,我们使用数据包生成器来生成语音和数据流。您可以使用数据包捕获功能捕获和分析传入接口上的数据包。
在多链路束上发送了以下两个数据流:
100 个 200 字节的数据包(大于分段阈值)
500 个 60 字节的数据包(小于分段阈值)
在多链路捆绑包上发送了以下两个语音流:
来自源端口 100 的 100 个 200 字节语音数据包
来自源端口 200 的 300 个 200 字节语音数据包
要确认 LFI 和负载平衡已正确执行,请执行以下操作:
此示例仅显示和描述命令输出的重要部分。
验证数据包分段。在操作模式下,输入命令以
show interfaces lsq-0/0/0
检查大数据包是否正确分段。user@R0#> show interfaces lsq-0/0/0 Physical interface: lsq-0/0/0, Enabled, Physical link is Up Interface index: 136, SNMP ifIndex: 29 Link-level type: LinkService, MTU: 1504 Device flags : Present Running Interface flags: Point-To-Point SNMP-Traps Last flapped : 2006-08-01 10:45:13 PDT (2w0d 06:06 ago) Input rate : 0 bps (0 pps) Output rate : 0 bps (0 pps) Logical interface lsq-0/0/0.0 (Index 69) (SNMP ifIndex 42) Flags: Point-To-Point SNMP-Traps 0x4000 Encapsulation: Multilink-PPP Bandwidth: 16mbps Statistics Frames fps Bytes bps Bundle: Fragments: Input : 0 0 0 0 Output: 1100 0 118800 0 Packets: Input : 0 0 0 0 Output: 1000 0 112000 0 ... Protocol inet, MTU: 1500 Flags: None Addresses, Flags: Is-Preferred Is-Primary Destination: 9.9.9/24, Local: 9.9.9.10
Meaning
— 输出显示在多链路束上传输设备的数据包摘要。验证多链路捆绑包上的以下信息:中转数据包总数 = 1000
传输片段总数 = 1100
分段的数据包数 =100
多链路束上发送的数据包总数 (600 + 400) 与传输数据包数 (1000) 匹配,表示未丢弃任何数据包。
传输分片数比中转数据包数多 100,表示正确分片了 100 个大型数据包。
Corrective Action
— 如果数据包未正确分段,请检查分段阈值配置。小于指定分段阈值的数据包不会分段。验证数据包封装。要确定数据包是被视为 LFI 数据包还是非 LFI 数据包,请确定其封装类型。LFI 数据包使用 PPP 封装,非 LFI 数据包使用 PPP 和 MLPPP 封装。PPP 和 MLPPP 封装具有不同的开销,从而产生不同大小的数据包。您可以比较数据包大小以确定封装类型。
未分段的小型数据包包含一个 PPP 报头和一个 MLPPP 报头。在大型分段数据包中,第一个分段包含一个 PPP 报头和一个 MLPPP 报头,但连续分片仅包含一个 MLPPP 报头。
PPP 和 MLPPP 封装向数据包添加以下字节数:
PPP 封装增加 7 个字节:
4 字节的标头 + 2 字节的帧校验序列 (FCS)+ 1 个空闲或包含标志的字节
MLPPP 封装会增加 6 到 8 个字节:
4 字节 PPP 报头 + 2 到 4 字节多链路报头
图 1 显示添加到 PPP 和 MLPPP 标头的开销。
图 1: PPP 和 MLPPP 标头对于 CRTP 数据包,封装开销和数据包大小甚至小于 LFI 数据包。更多信息,请参见 示例:配置压缩实时传输协议。
表 2 显示了数据包和语音数据包各 70 字节的封装开销。封装后,数据包的大小大于语音数据包的大小。
表 2: PPP 和 MLPPP 封装开销 数据包类型
封装
初始数据包大小
封装开销
封装后的数据包大小
语音数据包 (LFI)
PPP
70 字节
4 + 2 + 1 = 7 字节
77 字节
具有短序列的数据片段(非 LFI)
MLPPP
70 字节
4 + 2 + 1 + 4 + 2 = 13 字节
83 字节
具有长序列的数据片段(非 LFI)
MLPPP
70 字节
4 + 2 + 1 + 4 + 4 = 15 字节
85 字节
在操作模式下,输入
show interfaces queue
命令以显示每个队列上传输的数据包的大小。将传输的字节数除以数据包数,得到数据包的大小并确定封装类型。验证负载平衡。在操作模式下,在多链路束及其组成链路上输入
show interfaces queue
命令,以确认是否对数据包执行相应的负载平衡。user@R0> show interfaces queue lsq-0/0/0 Physical interface: lsq-0/0/0, Enabled, Physical link is Up Interface index: 136, SNMP ifIndex: 29 Forwarding classes: 8 supported, 8 in use Egress queues: 8 supported, 8 in use Queue: 0, Forwarding classes: DATA Queued: Packets : 600 0 pps Bytes : 44800 0 bps Transmitted: Packets : 600 0 pps Bytes : 44800 0 bps Tail-dropped packets : 0 0 pps RED-dropped packets : 0 0 pps … Queue: 1, Forwarding classes: expedited-forwarding Queued: Packets : 0 0 pps Bytes : 0 0 bps … Queue: 2, Forwarding classes: VOICE Queued: Packets : 400 0 pps Bytes : 61344 0 bps Transmitted: Packets : 400 0 pps Bytes : 61344 0 bps … Queue: 3, Forwarding classes: NC Queued: Packets : 0 0 pps Bytes : 0 0 bps …
user@R0> show interfaces queue se-1/0/0 Physical interface: se-1/0/0, Enabled, Physical link is Up Interface index: 141, SNMP ifIndex: 35 Forwarding classes: 8 supported, 8 in use Egress queues: 8 supported, 8 in use Queue: 0, Forwarding classes: DATA Queued: Packets : 350 0 pps Bytes : 24350 0 bps Transmitted: Packets : 350 0 pps Bytes : 24350 0 bps ... Queue: 1, Forwarding classes: expedited-forwarding Queued: Packets : 0 0 pps Bytes : 0 0 bps … Queue: 2, Forwarding classes: VOICE Queued: Packets : 100 0 pps Bytes : 15272 0 bps Transmitted: Packets : 100 0 pps Bytes : 15272 0 bps … Queue: 3, Forwarding classes: NC Queued: Packets : 19 0 pps Bytes : 247 0 bps Transmitted: Packets : 19 0 pps Bytes : 247 0 bps …
user@R0> show interfaces queue se-1/0/1 Physical interface: se-1/0/1, Enabled, Physical link is Up Interface index: 142, SNMP ifIndex: 38 Forwarding classes: 8 supported, 8 in use Egress queues: 8 supported, 8 in use Queue: 0, Forwarding classes: DATA Queued: Packets : 350 0 pps Bytes : 24350 0 bps Transmitted: Packets : 350 0 pps Bytes : 24350 0 bps … Queue: 1, Forwarding classes: expedited-forwarding Queued: Packets : 0 0 pps Bytes : 0 0 bps … Queue: 2, Forwarding classes: VOICE Queued: Packets : 300 0 pps Bytes : 45672 0 bps Transmitted: Packets : 300 0 pps Bytes : 45672 0 bps … Queue: 3, Forwarding classes: NC Queued: Packets : 18 0 pps Bytes : 234 0 bps Transmitted: Packets : 18 0 pps Bytes : 234 0 bps
Meaning
— 这些命令的输出显示在链路服务接口及其组成链路的每个队列上传输和排队的数据包。 表 3 显示这些值的摘要。(由于传输的数据包数等于所有链路上排队的数据包数,因此此表仅显示排队的数据包。表 3: 队列上传输的数据包数 排队的数据包
捆绑包 lsq-0/0/0.0
组成链接 se-1/0/0
组成链接 se-1/0/1
解释
Q0 上的数据包
600 次
350
350
通过组成链路的数据包总数 (350+350 = 700) 超过了在多链路束上排队的数据包数 (600)。
第 2 季度的数据包
400
100
300
通过组成链路的数据包总数等于捆绑包上的数据包数。
第 3 季度的数据包
0
19
18
通过构成链路的 Q3 的数据包用于在构成链路之间交换的连接消息。因此,没有数据包被计入捆绑包的第 3 季度。
在多链路束上,验证以下内容:
排队的数据包数与传输的数量匹配。如果数字匹配,则不会丢弃任何数据包。如果排队的数据包多于传输的数据包,则会因为缓冲区太小而被丢弃数据包。组成链路上的缓冲区大小控制输出级的拥塞。若要更正此问题,请增加构成链路上的缓冲区大小。
通过 Q0 (600) 的数据包数与多链路束上接收的大数据包数和小数据包数 (100+500) 相匹配。如果数字匹配,则所有数据包都正确传输了 Q0。
在多链路束 (400) 上通过 Q2 的数据包数与在多链路束上接收的语音数据包数相匹配。如果数字匹配,则所有语音 LFI 数据包都正确传输了第 2 季度。
在构成链路上,验证以下内容:
通过 Q0 的数据包总数 (350+350) 与数据包和数据分片的数量 (500+200) 相匹配。如果数字匹配,则分段后的所有数据包都正确传输了构成链路的 Q0。
数据包传输了两个组成链路,表明在非 LFI 数据包上正确执行了负载平衡。
组成链路上通过 Q2 的数据包总数 (300+100) 与多链路束上接收的语音数据包数 (400) 相匹配。如果数字匹配,则所有语音 LFI 数据包都正确传输了第 2 季度。
已
se-1/0/0
传输来自源端口100
的 LFI 数据包,以及来自源端口200
se-1/0/1
的 LFI 数据包。因此,所有 LFI (Q2) 数据包都根据源端口进行哈希处理,并正确传输了两个组成链路。
Corrective Action
— 如果数据包仅传输一个链路,请执行以下步骤来解决问题:确定物理链路是(
up
运行)还是down
(不可用)。不可用链路表示 PIM、接口端口或物理连接存在问题(链路层错误)。如果链路正常运行,请转到下一步。验证是否已为非 LFI 数据包正确定义分类器。确保非 LFI 数据包未配置为排队到 Q2。排队到 Q2 的所有数据包都被视为 LFI 数据包。
验证 LFI 数据包中的以下值中至少有一个不同:源地址、目标地址、IP 协议、源端口或目标端口。如果为所有 LFI 数据包配置了相同的值,则所有数据包都将散列到同一流并传输相同的链路。
使用结果验证负载平衡。
安全策略故障排除
在路由引擎和数据包转发引擎之间同步策略
问题
Description
安全策略存储在路由引擎和数据包转发引擎中。提交配置时,安全策略将从路由引擎推送到数据包转发引擎。如果路由引擎上的安全策略与数据包转发引擎不同步,则提交配置将失败。如果反复尝试提交,可能会生成核心转储文件。不同步可能是由于:
从路由引擎到数据包转发引擎的策略消息在传输过程中丢失。
路由引擎错误,例如重复使用的策略 UID。
环境
路由引擎和数据包转发引擎中的策略必须同步才能提交配置。但是,在某些情况下,路由引擎和数据包转发引擎中的策略可能不同步,从而导致提交失败。
症状
修改策略配置且策略不同步时,将显示以下错误消息 - error: Warning: policy might be out of sync between RE and PFE <SPU-name(s)> Please request security policies check/resync.
解决方案
show security policies checksum
如果安全策略不同步,请使用命令显示安全策略校验和值,并使用request security policies resync
命令同步路由引擎和数据包转发引擎中的安全策略配置。
另请参阅
检查安全策略提交失败
验证安全策略提交
问题
Description
执行策略配置提交后,如果您发现系统行为不正确,请使用以下步骤解决此问题:
解决方案
操作 show 命令 - 执行安全策略的操作命令,并验证输出中显示的信息是否与预期一致。否则,需要相应地更改配置。
跟踪选项 - 在策略配置中设置
traceoptions
命令。可以根据用户对命令输出的分析show
选择此层次结构下的标志。如果无法确定要使用的标志,则可以使用 flag 选项all
捕获所有跟踪日志。user@host#
set security policies traceoptions <flag all>
您还可以配置可选文件名来捕获日志。
user@host# set security policies traceoptions <filename>
如果在跟踪选项中指定了文件名,则可以在 /var/log/<filename> 中查找日志文件,以确定文件中是否报告了任何错误。(如果未指定文件名,则默认文件名为事件。错误消息指示故障位置和适当的原因。
配置跟踪选项后,必须重新提交导致不正确系统行为的配置更改。