BGP 会话故障排除
验证 BGP 协议和对等方的清单
目的
表 1 提供链接和命令,用于验证是否正确在网络中的瞻博网络路由器上配置了边界网关协议 (BGP)、是否正确建立了内部边界网关协议 (IBGP) 和外部边界网关协议 (EBGP) 会话、是否正确播发和接收外部路由以及 BGP 路径选择过程是否正常工作。
操作
任务 |
命令或操作 |
---|---|
验证 BGP 对等方 | |
|
|
|
|
|
|
|
|
检查 BGP 路由和路由选择 | |
|
|
|
|
|
|
|
|
检查转发表中的路由 |
|
验证 BGP 对等方
目的
假设所有路由器都已正确配置 BGP,则可以验证是否正确建立了 IBGP 和 EBGP 会话,是否正确播发和接收了外部路由,以及 BGP 路径选择过程是否正常工作。
图 1 说明了本主题中使用的 BGP 网络拓扑示例。
网络由两个直接连接的 AS 组成,由外部和内部对等方组成。外部对等方通过共享接口直接连接并运行 EBGP。内部对等方通过 IBGP 通过其环路 (lo0
) 接口进行连接。AS 65001 正在运行 OSPF,AS 65002 将 IS-IS 作为其底层 IGP 运行。IBGP 路由器不必直接连接,底层 IGP 允许邻居相互连接。
AS 65001 中的两台路由器各包含一个到 AS 65002(R2
和 R4
)的 EBGP 链路,通过该链路通告聚合前缀:100.100.1.0
, 100.100.2.0
, 100.100.3.0
,和 100.100.4.0
。此外, R1
并且 R5
正在为某些路由注入多个出口鉴别器 (MED) 值分别为 5 和 10。
两个 AS 中的内部路由器都使用全网状 IBGP 拓扑。需要全网格,因为网络不使用联合体或路由反射器,因此通过 IBGP 获知的任何路由都不会分发到其他内部邻居。例如,当从 学习路由时R3
,不会将该路由分发到R6
,R3
因为路由是通过 IBGP 获知的,因此R6
必须具有直接的 BGP 连接R2
才能获知R2
路由。
在全网状拓扑中,只有接收外部 BGP 信息的边界路由器才会将该信息分发到其 AS 中的其他路由器。接收路由器不会将该信息重新分发到其自己的 AS 中的其他 IBGP 路由器。
从 AS 65002 的角度来看,应该进行以下会话:
AS 65002 中的四个路由器应相互建立 IBGP 会话。
R2
应使用 建立 EBGP 会话R1
。R4
应使用 建立 EBGP 会话R5
。
若要验证 BGP 对等方,请执行以下步骤:
验证内部路由器上的 BGP
目的
验证内部路由器的 BGP 配置。
操作
要验证内部路由器的 BGP 配置,请输入以下 Junos OS 命令行界面 (CLI) 命令:
user@host> show configuration
以下示例输出适用于 R3 上的 BGP 配置:
示例输出
命令名称
user@R3> show configuration [...Output truncated...] interfaces { so-0/0/1 { unit 0 { family inet { address 10.1.23.2/30; } family iso; } } so-0/0/3 { unit 0 { family inet { address 10.1.36.1/30; } family iso; } } lo0 { unit 0 { family inet { address 10.0.0.3/32; } family iso { address 49.0002.1000.0000.0003.00; } } } } routing-options { [...Output truncated...] router-id 10.0.0.3; autonomous-system 65002; } protocols { bgp { group internal { type internal; local-address 10.0.0.3; neighbor 10.0.0.2; neighbor 10.0.0.4; neighbor 10.0.0.6; } } isis { level 1 disable; interface all { level 2 metric 10; } interface lo0.0; } } user@R6> show configuration | [Output truncated...] interfaces { so-0/0/1 { unit 0 { family inet { address 10.1.46.2/30; } family iso; } } so-0/0/3 { unit 0 { family inet { address 10.1.36.2/30; } family iso; } } lo0 { unit 0 { family inet { address 10.0.0.6/32; } family iso { address 49.0003.1000.0000.0006.00; } } } } routing-options { [Output truncated...] router-id 10.0.0.6; autonomous-system 65002; } protocols { bgp { group internal { type internal; local-address 10.0.0.6; neighbor 10.0.0.2; neighbor 10.0.0.3; neighbor 10.0.0.4; } } isis { level 1 disable; interface all { level 2 metric 10; } interface lo0.0; } }
意义
示例输出显示了路由器 R3
和 R6
上的基本 BGP 配置。两个路由器R3
上都配置了本地 AS (65002) 和一个组 (internal
)。 在 [protocols bgp group
group
] 层次结构级别包含三个内部对等方 —10.0.0.2
、 10.0.0.4
和 10.0.0.6
。还R6
具有三个内部对等方:10.0.0.2
、 10.0.0.3
和 10.0.0.4
。底层 IGP 协议是中间系统到中间系统 (IS-IS),相关接口配置为运行 IS-IS。
请注意,在此配置中,路由器 ID 是手动配置的,以避免出现任何重复的路由器 ID 问题。
验证边界路由器上的 BGP
目的
验证边界路由器的 BGP 配置。
操作
要验证边界路由器的 BGP 配置,请输入以下 Junos OS CLI 操作模式命令:
user@host> show configuration
示例输出
命令名称
以下示例输出适用于 AS 65002 中的两台边界路由器 R2 和 R4 上的 BGP 配置:
user@R2> show configuration [...Output truncated...] interfaces { so-0/0/0 { unit 0 { family inet { address 10.1.12.2/30; } family iso; } } so-0/0/1 { unit 0 { family inet { address 10.1.23.1/30; } family iso; } } so-0/0/3 { unit 0 { family inet { address 10.1.24.1/30; } family iso; } } lo0 { unit 0 { family inet { address 10.0.0.2/32; } family iso { address 49.0002.1000.0000.0002.00; } } } } routing-options { [...Output truncated...] router-id 10.0.0.2; autonomous-system 65002; } protocols { bgp { group internal { type internal; export next-hop-self; neighbor 10.0.0.3; neighbor 10.0.0.4; neighbor 10.0.0.6; } group toR1 { type external; import import-toR1; peer-as 65001; neighbor 10.1.12.1; } } isis { level 1 disable; interface all { level 2 metric 10; } interface lo0.0; } } policy-options { policy-statement next-hop-self { term change-next-hop { from neighbor 10.1.12.1; then { next-hop self; } } } policy-statement import-toR1 { term 1 { from { route-filter 100.100.1.0/24 exact; } then { local-preference 200; } } } user@R4> show configuration [...Output truncated...] interfaces { so-0/0/1 { unit 0 { family inet { address 10.1.46.1/30; } family iso; } } so-0/0/2 { unit 0 { family inet { address 10.1.45.1/30; } family iso; } } so-0/0/3 { unit 0 { family inet { address 10.1.24.2/30; } family iso; } } lo0 { unit 0 { family inet { address 10.0.0.4/32; } family iso { address 49.0001.1000.0000.0004.00; } } } } routing-options { [...Output truncated...] router-id 10.0.0.4; autonomous-system 65002; } protocols { bgp { group internal { type internal; local-address 10.0.0.4; export next-hop-self; neighbor 10.0.0.2; neighbor 10.0.0.3; neighbor 10.0.0.6; } group toR5 { type external; peer-as 65001; neighbor 10.1.45.2; } } isis { level 1 disable; interface all { level 2 metric 10; } interface lo0.0; } } policy-options { policy-statement next-hop-self { term change-next-hop { from neighbor 10.1.45.2; then { next-hop self; } } }
意义
示例输出显示了边界路由器 R2
和 R4
上的基本 BGP 配置。两个路由器的 AS (65002) 都包含在 [routing-options
] 层次结构级别。每个路由器在 [protocols bgp group
group
] 层次结构级别包含两个组。外部对等方包含在外部组中, toR1 或 toR5
,具体取决于路由器。组中包括 internal
内部对等方。两个路由器上的底层 IGP 协议都是 IS-IS,相关接口配置为运行 IS-IS。
请注意,在两个路由器上的配置中,路由器 ID 都是手动配置的,以避免出现重复的路由器 ID 问题,并且包含该 next-hop-self
语句是为了避免任何 BGP 下一跃点可访问性问题。
验证播发的 BGP 路由
目的
您可以确定是否正在向邻接方播发已配置的特定路由。
操作
要验证已准备好向指定 BGP 邻接方播发的路由信息,请输入以下 Junos OS CLI 操作模式命令:
user@host> show route advertising-protocol bgp neighbor-address
示例输出
命令名称
user@R2> show route advertising-protocol bgp 10.0.0.4\ inet.0: 20 destinations, 22 routes (20 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path * 100.100.1.0/24 Self 5 200 65001 I * 100.100.2.0/24 Self 5 100 65001 I * 100.100.3.0/24 Self 100 65001 I * 100.100.4.0/24 Self 100 65001 I
意义
示例输出显示了从中播 R2
发到其邻居 10.0.0.4
()R4
的 BGP 路由。在路由表中总共 22 个路由 inet.0
中,有 20 个是活动目的地。没有路由处于 hidden
或处于 hold-down
状态。路由在声明为活动之前处于 hold-down
该状态,路由策略拒绝的路由可以置于该 hidden
状态。显示的信息反映了路由表导出到 BGP 路由协议的路由。
验证路由器上是否接收到特定的 BGP 路由
目的
显示通过特定 BGP 邻接方接收并由本地路由器向邻接方播发的路由信息。
操作
要验证路由器上是否接收到特定的 BGP 路由,请输入以下 Junos OS CLI 操作模式命令:
user@host> show route receive-protocol bgp neighbor-address
示例输出
命令名称
user@R6> show route receive-protocol bgp 10.0.0.2 inet.0: 18 destinations, 20 routes (18 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path * 100.100.1.0/24 10.0.0.2 5 200 65001 I * 100.100.2.0/24 10.0.0.2 5 100 65001 I 100.100.3.0/24 10.0.0.2 100 65001 I 100.100.4.0/24 10.0.0.2 100 65001 I iso.0: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden) user@R6> show route receive-protocol bgp 10.0.0.4 inet.0: 18 destinations, 20 routes (18 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path * 100.100.3.0/24 10.0.0.4 100 65001 I * 100.100.4.0/24 10.0.0.4 100 65001 I iso.0: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden)
意义
示例输出显示了来自 R2
的四个 BGP 路由和来自 R4
的两个 BGP 路由。在 的 R2
四个路由中,只有两个在路由表中处于活动状态(如星号 ()*
所示),而从 接收的两个 R4
路由在路由表中都处于活动状态。所有 BGP 路由都通过 AS 65001。
检查 BGP 路由和路由选择
目的
您可以检查 BGP 路径选择过程,以便在 BGP 收到到同一目标前缀的多个路由时确定单个活动路径。
中的图 2网络显示并R5
R1
通告相同的聚合路由R2
R4,
,从而产生R2
和R4
接收到同一目标前缀的两个路由。路由 R2
选择过程 并确定 R4
收到的两个 BGP 路由中的哪一个处于活动状态并播发至其他内部路由器(R3
和 R6
)。
在路由器安装 BGP 路由之前,必须确保可以访问 BGP next-hop
属性。如果无法解析 BGP 下一跃点,则不会安装路由。在路由表中安装 BGP 路由时,如果存在指向同一目标前缀的多个路由,则必须经历路径选择过程。BGP 路径选择过程按以下顺序进行:
比较路由表中的路由首选项。例如,如果特定目标存在 OSPF 和 BGP 路由,则会选择 OSPF 路由作为活动路由,因为 OSPF 路由的默认首选项为 110,而 BGP 路由的默认首选项为 170。
根据本地偏好比较路线。首选本地优先级最高的路线。例如,请参阅 检查本地首选项选择。
将评估 AS 路径属性。首选较短的 AS 路径。
将评估源代码。首选最低源代码 (
I (IGP) < E (EGP) < ? (Incomplete)
)。评估 MED 值。默认情况下,如果从同一相邻 AS 播发任何路由,则首选最低 MED 值。缺少 MED 值被解释为 MED 为 0。有关示例,请参阅 检查多出口鉴别器路由选择。
评估路由是通过 EBGP 还是 IBGP 获知的。EBGP 获知路由优先于 IBGP 获知路由。有关示例,请参阅 检查 EBGP 而不是 IBGP 选择
如果路由是从 IBGP 获知的,则首选 IGP 开销最低的路由。有关示例,请参阅 检查 IGP 成本选择。到 IBGP 对等方的物理下一跃点根据以下三个规则进行安装:
BGP 检查和
inet.0
inet.3
路由表后,将使用优先级最低的路由的物理下一跃点。
如果 和
inet.0
路由inet.3
表中的首选项值为平局,则使用路由表中路由inet.3
的物理下一跃点。
当同一路由表中存在首选项并列时,将安装具有更多路径的路由的物理下一跃点。
将评估路由反射集群列表属性。最好使用长度最短的群集列表。没有集群列表的路由被视为集群列表长度为 0。
将评估路由器 ID。首选路由器 ID 最低的对等方路由(通常是环路地址)。
检查对等地址值。首选具有最低对等 IP 地址的对等方。
要在 BGP 收到到同一目标前缀的多个路由时确定单个活动路径,请输入以下 Junos OS CLI 操作模式命令:
user@host> show route destination-prefix
< detail >
以下步骤说明了当 BGP 收到到同一目标前缀的多个路由并且一个路由被选为单个活动路径时显示的非活动原因:
检查本地首选项选择
目的
检查路由以确定本地首选项是否是单个活动路径的选择标准。
操作
要检查路由以确定本地首选项是否是单个活动路径的选择标准,请输入以下 Junos OS CLI 操作模式命令:
user@host> show route destination-prefix
< detail >
示例输出
命令名称
user@R4> show route 100.100.1.0 detail inet.0: 20 destinations, 24 routes (20 active, 0 holddown, 0 hidden) 100.100.1.0/24 (2 entries, 1 announced) *BGP Preference: 170/-201 Source: 10.0.0.2 Next hop: 10.1.24.1 via so-0/0/3.0, selected Protocol next hop: 10.0.0.2 Indirect next hop: 8644000 277 State: <Active Int Ext> Local AS: 65002 Peer AS: 65002 Age: 2:22:34 Metric: 5 Metric2: 10 Task: BGP_65002.10.0.0.2+179 Announcement bits (3): 0-KRT 3-BGP.0.0.0.0+179 4-Resolve inet.0 AS path: 65001 I Localpref: 200 Router ID: 10.0.0.2 BGP Preference: 170/-101 Source: 10.1.45.2 Next hop: 10.1.45.2 via so-0/0/2.0, selected State: <Ext> Inactive reason: Local Preference Local AS: 65002 Peer AS: 65001 Age: 2w0d 1:28:31 Metric: 10 Task: BGP_65001.10.1.45.2+179 AS path: 65001 I Localpref: 100 Router ID: 10.0.0.5
意义
示例输出显示已 R4
接收路由的两个 100.100.1.0
实例:一个来自 (R2
),一个来自 10.1.45.2
10.0.0.2
(R5
)。R4
选择路径R2
作为其活动路径,如星号 (*) 所示。选择基于字段中包含的 Localpref
本地首选项值。首选具有 最高 本地优先级的路径。在此示例中,具有较高本地首选项值的路径是来自 200 的 R2
路径。
未选择Inactive reason
路径R5
的原因是在字段中,在本例中为 Local Preference
。
请注意,这两个路径来自同一个相邻网络:AS 65001。
检查多出口鉴别器路由选择
目的
检查路由以确定 MED 是否为单个活动路径的选择标准。
操作
要检查路由以确定 MED 是否为单个活动路径的选择标准,请输入以下 Junos OS CLI 操作模式命令:
user@host> show route destination-prefix
< detail >
示例输出
命令名称
user@R4> show route 100.100.2.0 detail inet.0: 20 destinations, 24 routes (20 active, 0 holddown, 0 hidden) 100.100.2.0/24 (2 entries, 1 announced) *BGP Preference: 170/-101 Source: 10.0.0.2 Next hop: 10.1.24.1 via so-0/0/3.0, selected Protocol next hop: 10.0.0.2 Indirect next hop: 8644000 277 State: <Active Int Ext> Local AS: 65002 Peer AS: 65002 Age: 2:32:01 Metric: 5 Metric2: 10 Task: BGP_65002.10.0.0.2+179 Announcement bits (3): 0-KRT 3-BGP.0.0.0.0+179 4-Resolve inet.0 AS path: 65001 I Localpref: 100 Router ID: 10.0.0.2 BGP Preference: 170/-101 Source: 10.1.45.2 Next hop: 10.1.45.2 via so-0/0/2.0, selected State: <NotBest Ext> Inactive reason: Not Best in its group Local AS: 65002 Peer AS: 65001 Age: 2w0d 1:37:58 Metric: 10 Task: BGP_65001.10.1.45.2+179 AS path: 65001 I Localpref: 100 Router ID: 10.0.0.5
意义
示例输出显示已 R4
接收路由的两个 100.100.2.0
实例:一个来自 (R2
),一个来自 10.1.45.2
10.0.0.2
(R5
)。R4
选择路径R2
作为其活动路由,如星号 (*) 所示。选择基于字段中包含的 Metric:
MED 值。首选具有最低 MED 值的路径。在此示例中,MED 值最低 (5) 的路径是来自 R2
的路径。请注意,这两个路径来自同一个相邻网络:AS 65001。
未选择非活动路径的原因将显示在 Inactive reason:
字段中,在本例中为 Not Best in its group
。之所以使用措辞,是因为默认情况下 Junos OS 使用确定性 MED 选择过程。
检查 EBGP 而不是 IBGP 选择
目的
检查路由以确定是否选择了 EBGP 而不是 IBGP 作为单个活动路径的选择标准。
操作
要检查路由以确定是否通过 IBGP 选择了 EBGP 作为单个活动路径的选择标准,请输入以下 Junos OS CLI 操作模式命令:
user@host> show route destination-prefix
< detail >
示例输出
命令名称
user@R4> show route 100.100.3.0 detail inet.0: 20 destinations, 24 routes (20 active, 0 holddown, 0 hidden) 100.100.3.0/24 (2 entries, 1 announced) *BGP Preference: 170/-101 Source: 10.1.45.2 Next hop: 10.1.45.2 via so-0/0/2.0, selected State: <Active Ext> Local AS: 65002 Peer AS: 65001 Age: 5d 0:31:25 Task: BGP_65001.10.1.45.2+179 Announcement bits (3): 0-KRT 3-BGP.0.0.0.0+179 4-Resolve inet.0 AS path: 65001 I Localpref: 100 Router ID: 10.0.0.5 BGP Preference: 170/-101 Source: 10.0.0.2 Next hop: 10.1.24.1 via so-0/0/3.0, selected Protocol next hop: 10.0.0.2 Indirect next hop: 8644000 277 State: <NotBest Int Ext> Inactive reason: Interior > Exterior > Exterior via Interior Local AS: 65002 Peer AS: 65002 Age: 2:48:18 Metric2: 10 Task: BGP_65002.10.0.0.2+179 AS path: 65001 I Localpref: 100 Router ID: 10.0.0.2
意义
示例输出显示已 R4
接收路由的两个 100.100.3.0
实例:一个来自 (R5
),一个来自 10.0.0.2
10.1.45.2
(R2
)。R4
选择路径R5
作为其活动路径,如星号 (*) 所示。选择基于从 EBGP 对等方获知的路由优先于从 IBGP 获知的路由。 R5
是一个 EBGP 对等方。
您可以通过检查 和 Peer As
字段Local As
来确定路径是从 EBGP 还是 IBGP 对等方接收的。例如,路由自 R5
显示本地 AS 为 65002,对等方 AS 为 65001,表示路由是从 EBGP 对等方接收的。发件人 R2
的路由显示本地和对等 AS 均为 65002,表示它是从 IBGP 对等方接收的。
未选择非活动路径的原因将显示在 Inactive reason
字段中,在本例中为 Interior > Exterior > Exterior via Interior
。此原因的措辞显示了从两个路由器接收相同路由时应用的优先顺序。首先首选从严格内部源 (IGP) 接收的路由,其次是首选从外部源 (EBGP) 接收的路由,最后优先选择来自外部源并在内部接收的任何路由 (IBGP)。因此,选择 EBGP 路由而不是 IBGP 路由作为活动路径。
检查 IGP 成本选择
目的
检查路由以确定是否选择了 EBGP 而不是 IBGP 作为单个活动路径的选择标准。
操作
要检查路由以确定是否通过 IBGP 选择了 EBGP 作为单个活动路径的选择标准,请输入以下 Junos OS CLI 操作模式命令:
user@host> show route destination-prefix
< detail >
示例输出
命令名称
user@R6> show route 100.100.4.0 detail inet.0: 18 destinations, 20 routes (18 active, 0 holddown, 0 hidden) 100.100.4.0/24 (2 entries, 1 announced) *BGP Preference: 170/-101 Source: 10.0.0.4 Next hop: 10.1.46.1 via so-0/0/1.0, selected Protocol next hop: 10.0.0.4 Indirect next hop: 864c000 276 State: <Active Int Ext> Local AS: 65002 Peer AS: 65002 Age: 2:16:11 Metric2: 10 Task: BGP_65002.10.0.0.4+4120 Announcement bits (2): 0-KRT 4-Resolve inet.0 AS path: 65001 I Localpref: 100 Router ID: 10.0.0.4 BGP Preference: 170/-101 Source: 10.0.0.2 Next hop: 10.1.46.1 via so-0/0/1.0, selected Next hop: 10.1.36.1 via so-0/0/3.0 Protocol next hop: 10.0.0.2 Indirect next hop: 864c0b0 278 State: <NotBest Int Ext> Inactive reason: IGP metric Local AS: 65002 Peer AS: 65002 Age: 2:16:03 Metric2: 20 Task: BGP_65002.10.0.0.2+179 AS path: 65001 I Localpref: 100 Router ID: 10.0.0.2
意义
示例输出显示已 R6
接收路由的两个 100.100.4.0
实例:一个来自 (R4
),一个来自 10.0.0.2
10.0.0.4
(R2
)。R6
选择了路径R4
作为其活动路由,如星号 (*) 所示。选择基于字段中显示的 Metric2
IGP 指标。首选具有最低 IGP 指标的路由。在此示例中,IGP 指标值最低的路径是 中的 R4
路径,IGP 指标值为 10,而 的 R2
路径的 IGP 指标为 20。请注意,这两个路径来自同一个相邻网络:AS 65001。
未选择非活动路径的原因显示在 Inactive reason
字段中,在本例中为 IGP metric
。
用于检查 BGP 层的清单
问题
Description
此清单提供了检查多协议标签交换 (MPLS) 网络的 BGP 配置的步骤和命令。该清单提供了指向 BGP 配置概述的链接,以及有关用于配置 BGP 的命令的更多详细信息。(请参阅表 2。)
解决方案
任务 |
命令或操作 |
---|---|
检查 BGP 层 | |
|
|
|
|
|
|
|
|
|
|
以下命令序列可解决本主题中描述的特定问题:
|
|
|
检查 BGP 层
目的
配置标签交换路径 (LSP) 并确定其已启动、配置 BGP 并确定已建立会话后,请确保 BGP 使用 LSP 转发流量。
图 3 说明了分层 MPLS 模型的 BGP 层。
检查 BGP 层时,验证路由是否存在且处于活动状态,更重要的是,请确保下一跃点是 LSP。除非建立 LSP,否则检查 BGP 层是没有意义的,因为 BGP 使用 MPLS LSP 来转发流量。如果网络在 BGP 层无法运行,则 LSP 无法按配置工作。
图 4 说明了本主题中使用的 MPLS 网络。
中显示的 图 4 网络是全网状配置,其中每个直接连接的接口都可以接收数据包并将其发送到其他每个类似接口。此网络中的 LSP 配置为从入口路由器 R1运行,通过中转路由器 R3,到出口路由器 R6。此外,反向 LSP 配置为从 R6 到 R3R1运行,创建双向流量。
中显示的 图 4 交叉指示未使用 BGP 通过 LSP 转发流量的位置。LSP 无法正常工作的可能原因是 LSP 的目标 IP 地址不等于 BGP 下一跃点,或者 BGP 配置不正确。
要检查 BGP 层,请执行以下步骤:
检查 BGP 流量是否正在使用 LSP
目的
在此级别的故障排除模型中,BGP 和 LSP 可能已启动,但 BGP 流量可能不会使用 LSP 转发流量。
操作
要验证 BGP 流量是否正在使用 LSP,请从入口路由器输入以下 Junos OS 命令行界面 (CLI) 操作模式命令:
user@host> traceroute hostname
示例输出
命令名称
user@R1> traceroute 100.100.6.1 traceroute to 100.100.6.1 (100.100.6.1), 30 hops max, 40 byte packets 1 10.1.13.2 (10.1.13.2) 0.653 ms 0.590 ms 0.543 ms 2 10.1.36.2 (10.1.36.2) 0.553 ms !N 0.552 ms !N 0.537 ms !N user@R6> traceroute 100.100.1.1 traceroute to 100.100.1.1 (100.100.1.1), 30 hops max, 40 byte packets 1 10.1.36.1 (10.1.36.1) 0.660 ms 0.551 ms 0.526 ms 2 10.1.13.1 (10.1.13.1) 0.568 ms !N 0.553 ms !N 0.536 ms !N
意义
示例输出显示 BGP 流量未使用 LSP,因此 MPLS 标签不会出现在输出中。BGP 流量不使用 LSP,而是使用内部网关协议 (IGP) 到达 和 R1的 R6 BGP 下一跃点 LSP 出口地址。Junos OS 默认设置是在 BGP 下一跃点等于 LSP 出口地址时,将 LSP 用于 BGP 流量。
检查 BGP 会话
目的
显示有关 BGP 及其邻居的摘要信息,以确定是否从自治系统 (AS) 中的对等方接收路由。建立 BGP 会话后,对等方将交换更新消息。
操作
要检查 BGP 会话是否已启动,请从入口路由器输入以下 Junos OS CLI 操作模式命令:
user@host> show bgp summary
示例输出 1
命令名称
user@R1> show bgp summary Groups: 1 Peers: 6 Down peers: 1 Table Tot Paths Act Paths Suppressed History Damp State Pending inet.0 1 1 0 0 0 0 Peer AS InPkt OutPkt OutQ Flaps Last Up/Dwn State|#Active/Received/Damped... 10.0.0.2 65432 11257 11259 0 0 3d 21:49:57 0/0/0 0/0/0 10.0.0.3 65432 11257 11259 0 0 3d 21:49:57 0/0/0 0/0/0 10.0.0.4 65432 11257 11259 0 0 3d 21:49:57 0/0/0 0/0/0 10.0.0.5 65432 11257 11260 0 0 3d 21:49:57 0/0/0 0/0/0 10.0.0.6 65432 4 4572 0 1 3d 21:46:59 Active 10.1.36.2 65432 11252 11257 0 0 3d 21:46:49 1/1/0 0/0/0
示例输出 2
命令名称
user@R1> show bgp summary Groups: 1 Peers: 5 Down peers: 0 Table Tot Paths Act Paths Suppressed History Damp State Pending inet.0 1 1 0 0 0 0 Peer AS InPkt OutPkt OutQ Flaps Last Up/Dwn State|#Active/Received/Damped... 10.0.0.2 65432 64 68 0 0 32:18 0/0/0 0/0/0 10.0.0.3 65432 64 67 0 0 32:02 0/0/0 0/0/0 10.0.0.4 65432 64 67 0 0 32:10 0/0/0 0/0/0 10.0.0.5 65432 64 67 0 0 32:14 0/0/0 0/0/0 10.0.0.6 65432 38 39 0 1 18:02 1/1/0 0/0/0
意义
示例输出 1 显示未建立一个对等方(出口路由器 10.0.0.6 ),如字段所示 Down Peers: 1 。最后一列 (State|#Active/Received/Damped) 显示对等 10.0.0.6 方处于活动状态,表示它未建立。所有其他对等方的建立方式由活动、接收和阻尼路由的数量指示。例如, 0/0/0 for 对等 10.0.0.2 方表示路由表中没有 BGP 路由处于活动状态或接收,并且没有 BGP 路由被阻尼; 1/1/0 for 对等 10.1.36.2 方表示路由表中有一个 BGP 路由处于活动状态并已接收,并且没有 BGP 路由被阻尼。
如果入口路由器命令输出 show bgp summary
显示邻居已关闭,请检查 BGP 配置。有关检查 BGP 配置的信息,请参阅 验证 BGP 配置。
示例输出 2 显示了启用 R1 BGP 配置后入口路由器R1的输出,并在R6采取适当措施解决网络问题中进行了更正。已建立所有 BGP 对等方,并且有一个路由处于活动状态并已接收。没有 BGP 路由被阻尼。
如果命令输出 show bgp summary
显示邻居已启动,但未转发数据包,请检查从出口路由器收到的路由。有关检查出口路由器中是否有收到的路由的信息,请参阅 验证收到的 BGP 路由。
验证 BGP 配置
目的
要使 BGP 在路由器上运行,您必须定义本地 AS 编号,配置至少一个组,并包含有关组中至少一个对等方的信息(对等方的 IP 地址和 AS 编号)。当 BGP 是 MPLS 网络的一部分时,必须确保为 LSP 配置了等于 BGP 下一跃点的目标 IP 地址,以便安装 BGP 路由时会将 LSP 作为这些路由的下一跃点。
操作
要验证 BGP 配置,请输入以下 Junos OS CLI 操作模式命令:
user@host> show configuration
示例输出 1
命令名称
user@R1> show configuration [...Output truncated...] interfaces { so-0/0/0 { unit 0 { family inet { address 10.1.12.1/30; } family iso; family mpls; } } so-0/0/1 { unit 0 { family inet { address 10.1.15.1/30; } family iso; family mpls; } } so-0/0/2 { unit 0 { family inet { address 10.1.13.1/30; } family iso; family mpls; } } fxp0 { unit 0 { family inet { address 192.168.70.143/21; } } } lo0 { unit 0 { family inet { address 10.0.0.1/32; } family iso { address 49.0004.1000.0000.0001.00; } } } } routing-options { [...Output truncated...] route 100.100.1.0/24 reject; } router-id 10.0.0.1; autonomous-system 65432; } protocols { rsvp { interface so-0/0/0.0; interface so-0/0/1.0; interface so-0/0/2.0; interface fxp0.0 { disable; } } mpls { label-switched-path R1-to-R6 { to 10.0.0.6; <<< destination address of the LSP } inactive: interface so-0/0/0.0; inactive: interface so-0/0/1.0; interface so-0/0/2.0; interface fxp0.0 { disable; } } bgp { export send-statics; <<< missing local-address statement group internal { type internal; neighbor 10.0.0.2; neighbor 10.0.0.5; neighbor 10.0.0.4; neighbor 10.0.0.6; neighbor 10.0.0.3; neighbor 10.1.36.2; <<< incorrect interface address } } isis { level 1 disable; interface so-0/0/0.0; interface so-0/0/1.0; interface so-0/0/2.0; interface all { level 2 metric 10; } interface fxp0.0 { disable; } interface lo0.0 { passive; } } ospf { traffic-engineering; area 0.0.0.0 { interface so-0/0/0.0; interface so-0/0/1.0; interface so-0/0/2.0; interface lo0.0; { passive } } } } policy-options { policy-statement send-statics { term statics { from { route-filter 100.100.1.0/24 exact; } then accept; } } }
示例输出 2
命令名称
user@R6> show configuration [...Output truncated...] interfaces { so-0/0/0 { unit 0 { family inet { address 10.1.56.2/30; } family iso; family mpls; } } so-0/0/1 { unit 0 { family inet { address 10.1.46.2/30; } family iso; family mpls; } } so-0/0/2 { unit 0 { family inet { address 10.1.26.2/30; } family iso; family mpls; } } so-0/0/3 { unit 0 { family inet { address 10.1.36.2/30; } family iso; family mpls; } } fxp0 { unit 0 { family inet { address 192.168.70.148/21; } } } lo0 { unit 0 { family inet { address 10.0.0.6/32; address 127.0.0.1/32; } family iso { address 49.0004.1000.0000.0006.00; } } } } routing-options { [...Output truncated...] route 100.100.6.0/24 reject; } router-id 10.0.0.6; autonomous-system 65432; } protocols { rsvp { interface so-0/0/0.0; interface so-0/0/1.0; interface so-0/0/2.0; interface so-0/0/3.0; interface fxp0.0 { disable; } } mpls { label-switched-path R6-to-R1 { to 10.0.0.1; <<< destination address of the reverse LSP } inactive: interface so-0/0/0.0; inactive: interface so-0/0/1.0; inactive: interface so-0/0/2.0; interface so-0/0/3.0; } bgp { group internal { type internal; export send-statics; <<< missing local-address statement neighbor 10.0.0.2; neighbor 10.0.0.3; neighbor 10.0.0.4; neighbor 10.0.0.5; neighbor 10.0.0.1; neighbor 10.1.13.1; <<< incorrect interface address } } isis { level 1 disable; interface all { level 2 metric 10; } interface fxp0.0 { disable; } interface lo0.0 { passive; } } ospf { traffic-engineering; area 0.0.0.0 { interface so-0/0/0.0; interface so-0/0/1.0; interface so-0/0/2.0; interface so-0/0/3.0; interface lo0.0 { passive; } } } } policy-options { policy-statement send-statics { term statics { from { route-filter 100.100.6.0/24 exact; } then accept; } } }
意义
示例输出显示了入口路由器 R1
和出口路由器 R6
上的 BGP 配置。两种配置均显示配置的本地 AS (65432
)、一组 (internal
) 和六个对等方。底层内部网关协议为 IS-IS,相关接口配置为运行 IS-IS。
在此配置中,将手动配置 RID 以避免出现任何重复的 RID 问题,并且使用 BGP 配置的所有接口都包含 family inet
[edit interfaces
type-fpc/pic/port
unit
logical-unit-number
] 层次结构级别的语句。
入口路由器 R1
和出口路由器 R6
的示例输出显示 BGP 协议配置缺少 local-address
内部组的语句。配置语句 local-address
后,BGP 数据包将从本地路由器环回 (lo0
) 接口地址转发,该地址是 BGP 对等方对等互连的地址。如果未配置该 local-address
语句,则会从传出接口地址转发 BGP 数据包,该地址与 BGP 对等方对等的地址不匹配,并且不会启动 BGP。
在入口路由器上,语句中的 local-address
IP 地址 (10.0.0.1
) 应与语句中to
在 [edit protocols mpls label-switched-path
lsp-path-name
] 层次结构级别的出口路由器 (R6
) 上为 LSP 配置的地址相同。BGP 使用此地址(与 LSP 地址相同)通过 LSP 转发 BGP 流量。
此外,上的 R1
BGP 配置包括 的两个 R6
IP 地址,一个接口地址 (10.1.36.2
) 和一个环路 (lo0
) 接口地址 (10.0.0.6
),导致 LSP 目标地址 (10.0.0.6
) 与 BGP 下一跃点地址 (10.1.36.2
) 不匹配。上的 R6
BGP 配置还包括 的两个 R1
IP 地址,一个接口地址 (10.1.13.1
) 和一个环路 (lo0
) 接口地址,导致反向 LSP 目标地址 (10.0.0.1
) 与 BGP 下一跃点地址 (10.1.13.1
) 不匹配。
在这种情况下,由于两个路由器的 BGP 配置中都缺少该 local-address
语句,并且 LSP 目标地址与 BGP 下一跃点地址不匹配,因此 BGP 不会使用 LSP 转发流量。
检查 BGP 路由
目的
您可以检查 BGP 路径选择过程,以便在 BGP 接收到同一目标的多个路由时确定单个活动路径。在此步骤中,我们检查 反向LSP R6-to-R1,为该LSP制作 R6 入口路由器。
操作
要检查 BGP 路由和路由选择,请输入以下 Junos OS CLI 操作模式命令:
user@host> show route destination-prefix detail
示例输出 1
命令名称
user@R6> show route 100.100.1.1 detail inet.0: 30 destinations, 46 routes (29 active, 0 holddown, 1 hidden) 100.100.1.0/24 (1 entry, 1 announced) *BGP Preference: 170/-101 Source: 10.1.13.1 Next hop: via so-0/0/3.0, selected Protocol next hop: 10.1.13.1 Indirect next hop: 8671594 304 State: <Active Int Ext> Local AS: 65432 Peer AS: 65432 Age: 4d 5:15:39 Metric2: 2 Task: BGP_65432.10.1.13.1+3048 Announcement bits (2): 0-KRT 4-Resolve inet.0 AS path: I Localpref: 100 Router ID: 10.0.0.1
示例输出 2
命令名称
user@R6> show route 100.100.1.1 detail inet.0: 30 destinations, 46 routes (29 active, 0 holddown, 1 hidden) 100.100.1.0/24 (1 entry, 1 announced) *BGP Preference: 170/-101 Source: 10.0.0.1 Next hop: via so-0/0/3.0 weight 1, selected Label-switched-path R6-to-R1 Label operation: Push 100000 Protocol next hop: 10.0.0.1 Indirect next hop: 8671330 301 State: <Active Int Ext> Local AS: 65432 Peer AS: 65432 Age: 24:35 Metric2: 2 Task: BGP_65432.10.0.0.1+179 Announcement bits (2): 0-KRT 4-Resolve inet.0 AS path: I Localpref: 100 Router ID: 10.0.0.1
意义
示例输出 1 显示,当 BGP 配置R1R6 和不正确时,BGP 下一跃点 (10.1.13.1) 不等于 [edit protocols mpls label-switched-path label-switched-path-name] 层次结构级别语句中的 to
LSP 目标地址 (10.0.0.1)。
更正 R1 和 R6 上的配置后获取的示例输出 2 显示 BGP 下一跃点 (10.0.0.1) 和 LSP 目标地址 (10.0.0.1) 相同,表明 BGP 可以使用 LSP 转发 BGP 流量。
验证收到的 BGP 路由
目的
显示在反向 R6LSP R6-to-R1的入口路由器 (路由器)上收到的路由信息。
操作
要验证出口路由器上是否接收到特定的 BGP 路由,请输入以下 Junos OS CLI 操作模式命令:
user@host> show route receive protocol bgp neighbor-address
示例输出 1
命令名称
user@R6> show route receive-protocol bgp 10.0.0.1 inet.0: 30 destinations, 46 routes (29 active, 0 holddown, 1 hidden) <<< missing route inet.3: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden) iso.0: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden) mpls.0: 3 destinations, 3 routes (3 active, 0 holddown, 0 hidden) __juniper_private1__.inet6.0: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden)
示例输出 2
命令名称
user@R6> show route receive-protocol bgp 10.0.0.1 inet.0: 30 destinations, 46 routes (29 active, 0 holddown, 1 hidden) Prefix Nexthop MED Lclpref AS path * 100.100.1.0/24 10.0.0.1 100 I inet.3: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden) iso.0: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden) mpls.0: 3 destinations, 3 routes (3 active, 0 holddown, 0 hidden) __juniper_private1__.inet6.0: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden)
意义
示例输出 1 显示,当 和 R6 的 BGP 配置不正确时,入口路由器R6(反向 LSPR6-to-R1)不会接收任何进入路由表的 inet.0 BGP R1 路由。
示例输出 2 显示了在启用 R1 BGP 配置后安装在路由表中的 inet.0 BGP 路由,R6并使用采取适当的措施解决网络问题进行更正。
采取适当的措施解决网络问题
问题
Description
相应的操作取决于您隔离的问题类型。在此示例中,上 R2
配置的静态路由将从 [routing-options
] 层次结构级别中删除。其他适当的操作可能包括:
解决方案
检查本地路由器的配置,并在适当时对其进行编辑。
对中间路由器进行故障排除。
检查远程主机配置并对其进行编辑(如果适用)。
路由协议故障排除。
确定其他可能的原因。
要解决此示例中的问题,请输入以下 Junos OS CLI 命令:
[edit] user@R2# delete routing-options static routedestination-prefix
user@R2# commit and-quit user@R2# show routedestination-prefix
示例输出
[edit] user@R2# delete routing-options static route 10.0.0.5/32 [edit] user@R2# commit and-quit commit complete Exiting configuration mode user@R2> show route 10.0.0.5 inet.0: 22 destinations, 24 routes (22 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 10.0.0.5/32 *[BGP/170] 3d 20:26:17, MED 5, localpref 100 AS path: 65001 I > to 10.1.12.1 via so-0/0/0.0
意义
示例输出显示了从 [routing-options
] 层次结构中删除的静态路由和提交的新配置。命令 show route
的输出现在将 BGP 路由显示为首选路由,如星号 ()*
所示。
检查 BGP 流量是否再次使用 LSP
目的
采取适当的措施更正错误后,需要再次检查 LSP,以确认 BGP 流量正在使用 LSP,并且 BGP 层中的问题已解决。
操作
要验证 BGP 流量是否正在使用 LSP,请从入口路由器输入以下 Junos OS CLI 操作模式命令:
user@host> traceroute hostname
示例输出
命令名称
user@R1> traceroute 100.100.6.1 traceroute to 100.100.6.1 (100.100.6.1), 30 hops max, 40 byte packets 1 10.1.13.2 (10.1.13.2) 0.858 ms 0.740 ms 0.714 ms MPLS Label=100016 CoS=0 TTL=1 S=1 2 10.1.36.2 (10.1.36.2) 0.592 ms !N 0.564 ms !N 0.548 ms !N user@R6> traceroute 100.100.1.1 traceroute to 100.100.1.1 (100.100.1.1), 30 hops max, 40 byte packets 1 10.1.36.1 (10.1.36.1) 0.817 ms 0.697 ms 0.771 ms MPLS Label=100000 CoS=0 TTL=1 S=1 2 10.1.13.1 (10.1.13.1) 0.581 ms !N 0.567 ms !N 0.544 ms !N
意义
示例输出显示 MPLS 标签用于通过 LSP 转发数据包。输出中包含标签值 (MPLS Label=100016)、生存时间值 (TTL=1) 和堆栈位值 (S=1)。
该 MPLS Label 字段用于标识特定 LSP 的数据包。它是一个 20 位字段,最大值为 (2^^20-1),大约为 1,000,000。
生存时间 (TTL) 值包含此 MPLS 数据包可以通过网络传输的跃点数限制 (1)。它在每个跃点递减,如果 TTL 值降至 1 以下,则丢弃数据包。
堆栈位值 (S=1) 的底部表示这是堆栈中的最后一个标签,并且此 MPLS 数据包有一个与之关联的标签。Junos OS 中的 MPLS 实现在 M 系列路由器上支持 3 的堆叠深度,在 T 系列路由平台上支持高达 5 的堆叠深度。有关 MPLS 标签堆叠的更多信息,请参阅 RFC 3032, MPLS 标签堆栈编码。
MPLS 标签显示在示例输出中,因为 traceroute
命令被发出到 BGP 目标,该路由的 BGP 下一跃点是 LSP 出口地址。默认情况下,当 BGP 下一跃点等于 LSP 出口地址时,Junos OS 将 LSP 用于 BGP 流量。
如果 BGP 下一跃点不等于 LSP 出口地址,则 BGP 流量不使用 LSP,因此 MPLS 标签不会出现在命令的 traceroute
输出中,如 检查 BGP 会话中的示例输出所示。
显示发送或接收的 BGP 数据包
操作
若要为已发送或已接收的 BGP 协议数据包配置跟踪,请执行以下步骤:
在配置模式下,转到以下层次结构级别:
[edit] user@host# edit protocol bgp traceoptions
配置标志以显示已发送、已接收或同时显示已发送和已接收数据包信息:
[edit protocols bgp traceoptions] user@host# set flag update send
(也称为数字签名
[edit protocols bgp traceoptions] user@host# set flag update receive
(也称为数字签名
[edit protocols bgp traceoptions] user@host# set flag update
验证配置:
user@host# show
例如:
[edit protocols bgp traceoptions] user@host# show file bgplog size 10k files 10; flag update send;
(也称为数字签名
[edit protocols bgp traceoptions] user@host# show file bgplog size 10k files 10; flag update receive;
(也称为数字签名
[edit protocols bgp traceoptions] user@host# show file bgplog size 10k files 10; flag update send receive;
提交配置:
user@host# commit
查看包含详细消息的文件内容:
user@host# run show log filename
例如:
[edit protocols bgp traceoptions] user@host# run show log bgplog Sep 13 12:58:23 trace_on: Tracing to "/var/log/bgplog" started Sep 13 12:58:23 BGP RECV flags 0x40 code ASPath(2): <null> Sep 13 12:58:23 BGP RECV flags 0x40 code LocalPref(5): 100 Sep 13 12:58:23 BGP RECV flags 0xc0 code Extended Communities(16): 2:10458:3 [...Output truncated...]
检查转发表中的路由
目的
遇到问题(如连接问题)时,可能需要检查转发表中的路由,以验证路由协议进程是否已将正确的信息中继到转发表中。
操作
要显示转发表中安装的路由集,请输入以下 Junos OS CLI 操作模式命令:
user@host> show route forwarding-table
示例输出
命令名称
user@R2> show route forwarding-table Routing table: inet Internet: Destination Type RtRef Next hop Type Index NhRef Netif default perm 0 rjct 10 1 10.0.0.2/32 intf 0 10.0.0.2 locl 256 1 10.0.0.3/32 user 1 10.1.23.0 ucst 282 4 so-0/0/1.0 10.0.0.4/32 user 1 10.1.24.0 ucst 290 7 so-0/0/3.0 10.0.0.6/32 user 1 10.1.24.0 ucst 290 7 so-0/0/3.0 10.1.12.0/30 intf 1 ff.3.0.21 ucst 278 6 so-0/0/0.0 10.1.12.0/32 dest 0 10.1.12.0 recv 280 1 so-0/0/0.0 10.1.12.2/32 intf 0 10.1.12.2 locl 277 1 10.1.12.3/32 dest 0 10.1.12.3 bcst 279 1 so-0/0/0.0 10.1.23.0/30 intf 0 ff.3.0.21 ucst 282 4 so-0/0/1.0 10.1.23.0/32 dest 0 10.1.23.0 recv 284 1 so-0/0/1.0 10.1.23.1/32 intf 0 10.1.23.1 locl 281 1 10.1.23.3/32 dest 0 10.1.23.3 bcst 283 1 so-0/0/1.0 10.1.24.0/30 intf 0 ff.3.0.21 ucst 290 7 so-0/0/3.0 10.1.24.0/32 dest 0 10.1.24.0 recv 292 1 so-0/0/3.0 10.1.24.1/32 intf 0 10.1.24.1 locl 289 1 10.1.24.3/32 dest 0 10.1.24.3 bcst 291 1 so-0/0/3.0 10.1.36.0/30 user 0 10.1.23.0 ucst 282 4 so-0/0/1.0 10.1.46.0/30 user 0 10.1.24.0 ucst 290 7 so-0/0/3.0 100.100.1.0/24 user 0 10.1.12.0 ucst 278 6 so-0/0/0.0 100.100.2.0/24 user 0 10.1.12.0 ucst 278 6 so-0/0/0.0 100.100.3.0/24 user 0 10.1.12.0 ucst 278 6 so-0/0/0.0 100.100.4.0/24 user 0 10.1.12.0 ucst 278 6 so-0/0/0.0 [...Output truncated...]
意义
示例输出显示了转发表中安装的网络层前缀及其下一跃点。输出包含与命令中 show route detail
相同的下一跃点信息(下一跃点地址和接口名称)。其他信息包括目标类型、下一跃点类型、对此下一跃点的引用数以及内部下一跃点数据库的索引。(内部数据库包含数据包转发引擎使用的其他信息,以确保正确封装从接口发出的数据包。用户无法访问此数据库。
有关各种标志和类型字段含义的详细信息,请参阅 路由策略、防火墙过滤器和流量监管器用户指南。
示例:覆盖 PTX 系列数据包传输路由器上的默认 BGP 路由策略
此示例说明如何覆盖数据包传输路由器(如 PTX 系列数据包传输路由器)上的默认路由策略。
要求
此示例需要 Junos OS 12.1 或更高版本。
概述
默认情况下,PTX 系列路由器不会在转发表中安装 BGP 路由。
对于 PTX 系列路由器,使用操作配置then accept
条件不会from protocols bgp
产生在其他 Junos OS 路由设备上的通常结果。使用 PTX 系列路由器上的以下路由策略,BGP 路由不会安装在转发表中。
user@host# show policy-options policy-statement accept-no-install { term 1 { from protocol bgp; then accept; } } user@host# show routing-options forwarding-table { export accept-no-install; }
user@host> show route forwarding-table Routing table: default.inet Internet: Destination Type RtRef Next hop Type Index NhRef Netif default perm 0 rjct 36 2
转发表中未安装 BGP 路由。这是预期行为。
此示例说明如何使用该 then install-to-fib
操作有效地覆盖默认 BGP 路由策略。
配置
CLI 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改与您的网络配置匹配所需的任何详细信息,然后将命令复制并粘贴到层次结构级别的 CLI [edit]
中。
set policy-options prefix-list install-bgp 66.0.0.1/32 set policy-options policy-statement override-ptx-series-default term 1 from prefix-list install-bgp set policy-options policy-statement override-ptx-series-default term 1 then load-balance per-prefix set policy-options policy-statement override-ptx-series-default term 1 then install-to-fib set routing-options forwarding-table export override-ptx-series-default
在转发表中安装选定的 BGP 路由
分步过程
下面的示例要求您在各个配置层级中进行导航。有关导航 CLI 的信息,请参阅《Junos OS CLI 用户指南》中的在配置模式下使用 CLI 编辑器。
要在转发表中安装选定的 BGP 路由,请执行以下操作:
配置要在转发表中安装的前缀列表。
[edit policy-options prefix-list install-bgp] user@host# set 66.0.0.1/32
配置路由策略,将前缀列表应用为条件。
[edit policy-options policy-statement override-ptx-series-default term 1] user@host# set from prefix-list install-bgp user@host# set then install-to-fib user@host# set then load-balance per-prefix
将路由策略应用于转发表。
[edit routing-options forwarding-table] user@host# set export override-ptx-series-default
结果
在配置模式下,输入 show policy-options
和 show routing-options
命令,以确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明,以便进行更正。
user@host# show policy-options prefix-list install-bgp { 66.0.0.1/32; } policy-statement override-ptx-series-default { term 1 { from { prefix-list install-bgp; } then { load-balance per-prefix; install-to-fib; } } }
user@host# show routing-options forwarding-table { export override-ptx-series-default; }
如果完成设备配置,请从配置模式输入 commit
。
验证
确认配置工作正常。
验证所选路由是否已安装在转发表中
目的
确保配置的策略覆盖默认策略。
操作
在操作模式下,输入 show route forwarding-table
命令。
user@host> show route forwarding-table destination 66.0.0.1 Internet: Destination Type RtRef Next hop Type Index NhRef Netif 66.0.0.1/32 user 0 indr 2097159 3 ulst 2097156 2 5.1.0.2 ucst 574 1 et-6/0/0.1 5.2.0.2 ucst 575 1 et-6/0/0.2
意义
此输出显示到 66.0.0.1/32 的路由已安装在转发表中。
记录 BGP 状态转换事件
目的
边界网关协议 (BGP) 状态转换表示存在网络问题,需要记录和调查。
操作
若要将 BGP 状态转换事件记录到系统日志中,请执行以下步骤:
在配置模式下,转到以下层次结构级别:
[edit] user@host# edit protocol bgp
配置系统日志:
user@host# set log-updown
验证配置:
user@host# show
提交配置:
user@host# commit
意义
来自 BGP 状态转换事件的日志消息足以诊断大多数 BGP 会话问题。 表 3 列出并描述了 BGP 会话的六种状态。
BGP 状态 |
Description |
---|---|
Idle |
这是连接的第一个状态。BGP 等待管理员启动的启动事件。启动事件可能是通过路由器配置建立 BGP 会话或重置现有会话。启动事件后,BGP 初始化其资源,重置连接重试计时器,启动 TCP 传输连接,并开始侦听远程对等方发起的连接。然后,BGP 将转换为某种 Connect 状态。 如果出现错误,BGP 将回退到该 Idle 状态。 |
Connect |
BGP 等待传输协议连接完成。如果 TCP 传输连接成功,状态将 OpenSent转换为 。 如果传输连接不成功,状态将 Active转换为 。 如果连接重试计时器已过期,则状态将保持该 Connect 状态,计时器将重置,并启动传输连接。 对于任何其他事件,状态将返回到 Idle。 |
Active |
BGP 尝试通过启动传输协议连接来获取对等方。 如果成功,状态将 OpenSent转换为 。 如果连接重试计时器过期,BGP 将重新启动连接计时器并回退到该 Connect 状态。BGP 继续侦听可能从另一个对等方启动的连接。如果发生其他事件(如停止事件),状态可能会返回到 Idle 。 通常,邻居状态在 和 Active 之间 Connect翻转表示 TCP 传输连接存在问题。此类问题可能是由多次 TCP 重新传输或邻居无法访问其对等方的 IP 地址引起的。 |
OpenSent |
BGP 接收来自其对等方的开放消息。在该 OpenSent 状态下,BGP 将其自治系统 (AS) 编号与其对等方的 AS 编号进行比较,并识别对等方属于同一 AS(内部 BGP)还是属于不同的 AS(外部 BGP)。 检查打开的邮件的正确性。如果出现错误,例如不可接受的 AS 的版本号错误,BGP 会发送一条错误通知消息并返回到 Idle。 对于任何其他错误,例如保持计时器过期或停止事件,BGP 会发送包含相应错误代码的通知消息,并回退到状态 Idle 。 如果没有错误,BGP 将发送激活消息并重置激活计时器。在此状态下,将协商保留时间。如果保持时间为 0,则不会重新启动保持和激活计时器。 检测到 TCP 传输断开连接时,状态将回退到 Active。 |
OpenConfirm |
BGP 等待激活或通知消息。 如果收到激活,则状态变为 Established,并且邻居协商完成。如果系统收到更新或激活消息,它将重新启动保持计时器(假设协商的保持时间不为 0)。 如果收到通知消息,状态将回退到 Idle。 系统以激活计时器设置的速率发送定期激活消息。如果出现传输中断通知或响应停止事件,状态将回退到 Idle。为了响应其他事件,系统会发送一条包含有限状态机 (FSM) 错误代码的通知消息,并返回到 Idle。 |
Established |
这是邻居协商中的最终状态。在此状态下,BGP 与其对等方交换更新包,并且当保持计时器未设置为零时,在收到更新或激活消息时重新启动。 如果系统收到通知消息,状态将回退到 Idle。 检查更新消息是否存在错误,例如缺少属性、重复属性等。如果发现错误,则会向对等方发送通知,并且状态将回退到 Idle。 BGP 返回到 Idle 保留计时器过期、从传输协议接收断开连接通知、接收停止事件或响应任何其他事件的时间。 |
有关更详细的 BGP 协议数据包信息,请配置特定于 BGP 的跟踪。有关详细信息 ,请参阅跟踪错误条件的清单 。
配置 BGP 特定选项
目的
发生意外事件或问题时,或者如果要诊断 BGP 建立问题,可以通过配置特定于 BGP 的选项来查看更多详细信息。您还可以为特定 BGP 对等方或对等方组配置跟踪。有关详细信息,请参阅 Junos 系统基础知识配置指南。
显示详细的 BGP 协议信息
操作
若要详细显示 BGP 协议信息,请执行以下步骤:
在配置模式下,转到以下层次结构级别:
[edit] user@host# edit protocol bgp traceoptions
配置标志以显示详细的 BGP 协议消息:
[edit protocols bgp traceoptions] user@host# set flag update detail
验证配置:
user@host# show
例如:
[edit protocols bgp traceoptions] user@host# show flag update detail;
提交配置:
user@host# commit
查看包含详细消息的文件内容:
user@host# run show log filename
例如:
[edit protocols bgp traceoptions] user@pro5-a# run show log bgp Sep 17 14:47:16 trace_on: Tracing to "/var/log/bgp" started Sep 17 14:47:17 bgp_read_v4_update: receiving packet(s) from 10.255.245.53 (Internal AS 10458) Sep 17 14:47:17 BGP RECV 10.255.245.53+179 -> 10.255.245.50+1141 Sep 17 14:47:17 BGP RECV message type 2 (Update) length 128 Sep 17 14:47:17 BGP RECV flags 0x40 code Origin(1): IGP Sep 17 14:47:17 BGP RECV flags 0x40 code ASPath(2): 2 Sep 17 14:47:17 BGP RECV flags 0x80 code MultiExitDisc(4): 0 Sep 17 14:47:17 BGP RECV flags 0x40 code LocalPref(5): 100 Sep 17 14:47:17 BGP RECV flags 0xc0 code Extended Communities(16): 2:10458:1 [...Output truncated...]
意义
表 4 列出了特定于 BGP 的跟踪标志,并提供了某些标志的示例输出。您还可以为特定 BGP 对等方或对等方组配置跟踪。有关详细信息,请参阅 Junos 系统基础知识配置指南。
跟踪标志 |
Description |
示例输出 |
---|---|---|
aspath |
AS 路径正则表达式操作 |
不适用。 |
damping |
阻尼操作 |
Nov 28 17:01:12 bgp_damp_change: Change event Nov 28 17:01:12 bgp_dampen: Damping 10.10.1.0 Nov 28 17:01:12 bgp_damp_change: Change event Nov 28 17:01:12 bgp_dampen: Damping 10.10.2.0 Nov 28 17:01:12 bgp_damp_change: Change event Nov 28 17:01:12 bgp_dampen: Damping 10.10.3.0 |
keepalive |
BGP 激活消息 |
Nov 28 17:09:27 bgp_send: sending 19 bytes to 10.217.5.101 (External AS 65471) Nov 28 17:09:27 Nov 28 17:09:27 BGP SEND 10.217.5.1+179 -> 10.217.5.101+52162 Nov 28 17:09:27 BGP SEND message type 4 (KeepAlive) length 19 Nov 28 17:09:28 Nov 28 17:09:28 BGP RECV 10.217.5.101+52162 -> 10.217.5.1+179 Nov 28 17:09:28 BGP RECV message type 4 (KeepAlive) length 19 |
open |
BGP 开放数据包 |
Nov 28 18:37:42 bgp_send: sending 37 bytes to 10.217.5.101 (External AS 65471) Nov 28 18:37:42 Nov 28 18:37:42 BGP SEND 10.217.5.1+179 -> 10.217.5.101+38135 Nov 28 18:37:42 BGP SEND message type 1 (Open) length 37 |
packets |
所有 BGP 协议数据包 |
Sep 27 17:45:31 BGP RECV 10.0.100.108+179 -> 10.0.100.105+1033 Sep 27 17:45:31 BGP RECV message type 4 (KeepAlive) length 19 Sep 27 17:45:31 bgp_send: sending 19 bytes to 10.0.100.108 (Internal AS 100) Sep 27 17:45:31 BGP SEND 10.0.100.105+1033 -> 10.0.100.108+179 Sep 27 17:45:31 BGP SEND message type 4 (KeepAlive) length 19 Sep 27 17:45:31 bgp_read_v4_update: receiving packet(s) from 10.0.100.108 (Internal AS 100) |
update |
更新数据包 |
Nov 28 19:05:24 BGP SEND 10.217.5.1+179 -> 10.217.5.101+55813 Nov 28 19:05:24 BGP SEND message type 2 (Update) length 53 Nov 28 19:05:24 bgp_send: sending 65 bytes to 10.217.5.101 (External AS 65471) Nov 28 19:05:24 Nov 28 19:05:24 BGP SEND 10.217.5.1+179 -> 10.217.5.101+55813 Nov 28 19:05:24 BGP SEND message type 2 (Update) length 65 Nov 28 19:05:24 bgp_send: sending 55 bytes to 10.217.5.101 (External AS 65471) |
诊断 BGP 会话建立问题
目的
跟踪 BGP 会话建立问题。
操作
若要跟踪 BGP 会话建立问题,请执行以下步骤:
在配置模式下,转到以下层次结构级别:
[edit] user@host# edit protocol bgp
配置 BGP 开放消息:
[edit protocols bgp] user@host# set traceoptions flag open detail
验证配置:
user@host# show
例如:
[edit protocols bgp] user@host# show traceoptions { file bgplog size 10k files 10; flag open detail; }
提交配置:
user@host# commit
查看包含详细消息的文件内容:
user@host#run show log filename
例如:
[edit protocols bgp] user@hotst# run show log bgplog
Sep 17 17:13:14 trace_on: Tracing to "/var/log/bgplog" started Sep 17 17:13:14 bgp_read_v4_update: done with 201.0.0.2 (Internal AS 10458) received 19 octets 0 updates 0 routes Sep 17 17:13:15 bgp_read_v4_update: receiving packet(s) from 201.0.0.3 (Internal AS 10458) Sep 17 17:13:15 bgp_read_v4_update: done with 201.0.0.3 (Internal AS 10458) received 19 octets 0 updates 0 routes Sep 17 17:13:44 bgp_read_v4_update: receiving packet(s) from 201.0.0.2 (Internal AS 10458) [...Output truncated...]
配置 IS-IS 特定选项
目的
发生意外事件或问题时,或者如果要诊断 IS-IS 邻接建立问题,可以通过配置特定于 IS-IS 的选项来查看更多详细信息。
若要配置 IS-IS 选项,请按照下列步骤操作:
显示详细的 IS-IS 协议信息
操作
若要详细跟踪 IS-IS 消息,请按照下列步骤操作:
配置标志以显示详细的 IS-IS 协议消息。
[edit protocols isis traceoptions] user@host# set flag hello detail
验证配置。
user@host# show
例如:
[edit protocols isis traceoptions] user@host# show file isislog size 10k files 10; flag hello detail;
提交配置。
user@host# commit
查看包含详细消息的文件内容。
user@host# run show log filename
例如:
user@host# run show log isislog
Nov 29 23:17:50 trace_on: Tracing to "/var/log/isislog" started Nov 29 23:17:50 Sending PTP IIH on so-1/1/1.0 Nov 29 23:17:53 Sending PTP IIH on so-1/1/0.0 Nov 29 23:17:54 Received PTP IIH, source id abc-core-01 on so-1/1/0.0 Nov 29 23:17:54 from interface index 11 Nov 29 23:17:54 max area 0, circuit type l2, packet length 4469 Nov 29 23:17:54 hold time 30, circuit id 6 Nov 29 23:17:54 neighbor state up Nov 29 23:17:54 speaks IP Nov 29 23:17:54 area address 99.0008 (1) Nov 29 23:17:54 IP address 10.10.10.29 Nov 29 23:17:54 4396 bytes of total padding Nov 29 23:17:54 updating neighbor abc-core-01 Nov 29 23:17:55 Received PTP IIH, source id abc-core-02 on so-1/1/1.0 Nov 29 23:17:55 from interface index 12 Nov 29 23:17:55 max area 0, circuit type l2, packet length 4469 Nov 29 23:17:55 hold time 30, circuit id 6 Nov 29 23:17:55 neighbor state up Nov 29 23:17:55 speaks IP Nov 29 23:17:55 area address 99.0000 (1) Nov 29 23:17:55 IP address 10.10.10.33 Nov 29 23:17:55 4396 bytes of total padding Nov 29 23:17:55 updating neighbor abc-core-02
意义
表 5 列出了可针对 IS-IS 配置的跟踪标志,并提供了某些标志的示例输出。
跟踪标志 |
Description |
示例输出 |
---|---|---|
csn |
完整序列号 PDU (CSNP) |
Nov 28 20:02:48 Sending L2 CSN on interface so-1/1/0.0Nov 28 20:02:48 Sending L2 CSN on interface so-1/1/1.0 detail使用选项。 Nov 28 20:06:08 Sending L2 CSN on interface so-1/1/1.0Nov 28 20:06:08 LSP abc-core-01.00-00 lifetime 1146Nov 28 20:06:08 sequence 0x1c4f8 checksum 0xa1e9Nov 28 20:06:08 LSP abc-core-02.00-00 lifetime 411Nov 28 20:06:08 sequence 0x7435 checksum 0x5424Nov 28 20:06:08 LSP abc-brdr-01.00-00 lifetime 465Nov 28 20:06:08 sequence 0xf73 checksum 0xab10Nov 28 20:06:08 LSP abc-edge-01.00-00 lifetime 1089Nov 28 20:06:08 sequence 0x1616 checksum 0xdb29Nov 28 20:06:08 LSP abc-edge-02.00-00 lifetime 1103Nov 28 20:06:08 sequence 0x45cc checksum 0x6883 |
hello |
你好数据包 |
Nov 28 20:13:50 Sending PTP IIH on so-1/1/1.0Nov 28 20:13:50 Received PTP IIH, source id abc-core-01 on so-1/1/0.0Nov 28 20:13:53 Received PTP IIH, source id abc-core-02 on so-1/1/1.0Nov 28 20:13:57 Sending PTP IIH on so-1/1/0.0Nov 28 20:13:58 Received PTP IIH, source id abc-core-01 on so-1/1/0.0Nov 28 20:13:59 Sending PTP IIH on so-1/1/1.0 |
lsp |
链路状态 PDU (LSP) |
Nov 28 20:15:46 Received L2 LSP abc-edge-01.00-00, interface so-1/1/0.0Nov 28 20:15:46 from abc-core-01Nov 28 20:15:46 sequence 0x1617, checksum 0xd92a, lifetime 1197Nov 28 20:15:46 Updating L2 LSP abc-edge-01.00-00 in TEDNov 28 20:15:47 Received L2 LSP abc-edge-01.00-00, interface so-1/1/1.0Nov 28 20:15:47 from abc-core-02Nov 28 20:15:47 sequence 0x1617, checksum 0xd92a, lifetime 1197 |
lsp-generation |
链路状态 PDU 生成数据包 |
Nov 28 20:21:24 Regenerating L1 LSP abc-edge-03.00-00, old sequence 0x682Nov 28 20:21:27 Rebuilding L1, fragment abc-edge-03.00-00Nov 28 20:21:27 Rebuilt L1 fragment abc-edge-03.00-00, size 59Nov 28 20:31:52 Regenerating L2 LSP abc-edge-03.00-00, old sequence 0x689Nov 28 20:31:54 Rebuilding L2, fragment abc-edge-03.00-00Nov 28 20:31:54 Rebuilt L2 fragment abc-edge-03.00-00, size 256Nov 28 20:34:05 Regenerating L1 LSP abc-edge-03.00-00, old sequence 0x683Nov 28 20:34:08 Rebuilding L1, fragment abc-edge-03.00-00Nov 28 20:34:08 Rebuilt L1 fragment abc-edge-03.00-00, size 59 |
packets |
所有 IS-IS 协议数据包 |
不适用。 |
psn |
部分序列号 PDU (PSNP) 数据包 |
Nov 28 20:40:39 Received L2 PSN, source abc-core-01, interface so-1/1/0.0Nov 28 20:40:39 Received L2 PSN, source abc-core-02, interface so-1/1/1.0Nov 28 20:41:36 Sending L2 PSN on interface so-1/1/1.0Nov 28 20:41:36 Sending L2 PSN on interface so-1/1/0.0Nov 28 20:42:35 Received L2 PSN, source abc-core-02, interface so-1/1/1.0Nov 28 20:42:35 LSP abc-edge-03.00-00 lifetime 1196Nov 28 20:42:35 sequence 0x68c checksum 0x746dNov 28 20:42:35 Received L2 PSN, source abc-core-01, interface so-1/1/0.0Nov 28 20:42:35 LSP abc-edge-03.00-00 lifetime 1196Nov 28 20:42:35 sequence 0x68c checksum 0x746dNov 28 20:42:49 Sending L2 PSN on interface so-1/1/1.0Nov 28 20:42:49 LSP abc-core-01.00-00 lifetime 1197Nov 28 20:42:49 sequence 0x1c4fb checksum 0x9becNov 28 20:42:49 Sending L2 PSN on interface so-1/1/0.0Nov 28 20:42:49 LSP abc-core-01.00-00 lifetime 1197Nov 28 20:42:49 sequence 0x1c4fb checksum 0x9bec |
spf |
最短路径优先 (SPF) 计算 |
Nov 28 20:44:01 Scheduling SPF for L1: ReconfigNov 28 20:44:01 Scheduling multicast SPF for L1: ReconfigNov 28 20:44:01 Scheduling SPF for L2: ReconfigNov 28 20:44:01 Scheduling multicast SPF for L2: ReconfigNov 28 20:44:02 Running L1 SPFNov 28 20:44:02 L1 SPF initialization complete: 0.000099s cumulative timeNov 28 20:44:02 L1 SPF primary processing complete: 0.000303s cumulative timeNov 28 20:44:02 L1 SPF result postprocessing complete: 0.000497s cumulative timeNov 28 20:44:02 L1 SPF RIB postprocessing complete: 0.000626s cumulative timeNov 28 20:44:02 L1 SPF routing table postprocessing complete: 0.000736s cumulative time |
另请参阅
显示发送或接收的 IS-IS 协议数据包
若要仅为发送或接收的 IS-IS 协议数据包配置跟踪,请执行以下步骤:
配置标志以显示已发送、已接收或同时显示已发送和已接收的数据包。
[edit protocols isis traceoptions] user@host# set flag hello send
(也称为数字签名
[edit protocols isis traceoptions] user@host# set flag hello receive
(也称为数字签名
[edit protocols isis traceoptions] user@host# set flag hello
验证配置。
user@host# show
例如:
[edit protocols isis traceoptions] user@host# show file isislog size 10k files 10; flag hello send;
(也称为数字签名
[edit protocols isis traceoptions] user@host# show file isislog size 10k files 10; flag hello receive;
(也称为数字签名
[edit protocols isis traceoptions] user@host# show file isislog size 10k files 10; flag hello send receive;
提交配置。
user@host# commit
查看包含详细消息的文件内容。
user@host# run show log filename
例如:
user@host# run show log isislog Sep 27 18:17:01 ISIS periodic xmit to 01:80:c2:00:00:15 (IFL 2) Sep 27 18:17:01 ISIS periodic xmit to 01:80:c2:00:00:14 (IFL 2) Sep 27 18:17:03 ISIS periodic xmit to 01:80:c2:00:00:15 (IFL 2) Sep 27 18:17:04 ISIS periodic xmit to 01:80:c2:00:00:14 (IFL 2) Sep 27 18:17:06 ISIS L2 hello from 0000.0000.0008 (IFL 2) absorbed Sep 27 18:17:06 ISIS periodic xmit to 01:80:c2:00:00:15 (IFL 2) Sep 27 18:17:06 ISIS L1 hello from 0000.0000.0008 (IFL 2) absorbed
另请参阅
详细分析 IS-IS 链路状态 PDU
要详细分析 IS-IS 链路状态 PDU,请执行以下步骤:
配置 IS-IS 开放消息。
[edit protocols isis traceoptions] user@host# set flag lsp detail
验证配置。
user@host# show
例如:
[edit protocols isis traceoptions] user@host# show file isislog size 5m world-readable; flag error; flag lsp detail;
提交配置。
user@host# commit
查看包含详细消息的文件内容。
user@host# run show log filename
例如:
user@host# run show log isislog Nov 28 20:17:24 Received L2 LSP abc-core-01.00-00, interface so-1/1/0.0 Nov 28 20:17:24 from abc-core-01 Nov 28 20:17:24 sequence 0x1c4f9, checksum 0x9fea, lifetime 1199 Nov 28 20:17:24 max area 0, length 426 Nov 28 20:17:24 no partition repair, no database overload Nov 28 20:17:24 IS type 3, metric type 0 Nov 28 20:17:24 area address 99.0908 (1) Nov 28 20:17:24 speaks CLNP Nov 28 20:17:24 speaks IP Nov 28 20:17:24 dyn hostname abc-core-01 Nov 28 20:17:24 IP address 10.10.134.11 Nov 28 20:17:24 IP prefix: 10.10.10.0/30 metric 1 up Nov 28 20:17:24 IP prefix: 10.10.10.4/30 metric 5 up Nov 28 20:17:24 IP prefix: 10.10.10.56/30 metric 5 up Nov 28 20:17:24 IP prefix: 10.10.10.52/30 metric 1 up Nov 28 20:17:24 IP prefix: 10.10.10.64/30 metric 5 up Nov 28 20:17:24 IP prefix: 10.10.10.20/30 metric 5 up Nov 28 20:17:24 IP prefix: 10.10.10.28/30 metric 5 up Nov 28 20:17:24 IP prefix: 10.10.10.44/30 metric 5 up Nov 28 20:17:24 IP prefix 10.10.10.0 255.255.255.252 Nov 28 20:17:24 internal, metrics: default 1 Nov 28 20:17:24 IP prefix 10.10.10.4 255.255.255.252 Nov 28 20:17:24 internal, metrics: default 5 Nov 28 20:17:24 IP prefix 10.10.10.56 255.255.255.252 Nov 28 20:17:24 internal, metrics: default 5 Nov 28 20:17:24 IP prefix 10.10.10.52 255.255.255.252 Nov 28 20:17:24 internal, metrics: default 1 Nov 28 20:17:24 IP prefix 10.10.10.64 255.255.255.252 Nov 28 20:17:24 internal, metrics: default 5 Nov 28 20:17:24 IP prefix 10.10.10.20 255.255.255.252 Nov 28 20:17:24 internal, metrics: default 5 Nov 28 20:17:24 IP prefix 10.10.10.28 255.255.255.252 Nov 28 20:17:24 internal, metrics: default 5 Nov 28 20:17:24 IP prefix 10.10.10.44 255.255.255.252 Nov 28 20:17:24 internal, metrics: default 5 Nov 28 20:17:24 IS neighbors: Nov 28 20:17:24 IS neighbor abc-core-02.00 Nov 28 20:17:24 internal, metrics: default 1 [...Output truncated...] Nov 28 20:17:24 internal, metrics: default 5 Nov 28 20:17:24 IS neighbor abc-brdr-01.00 Nov 28 20:17:24 internal, metrics: default 5 Nov 28 20:17:24 IS neighbor abc-core-02.00, metric: 1 Nov 28 20:17:24 IS neighbor abc-esr-02.00, metric: 5 Nov 28 20:17:24 IS neighbor abc-edge-03.00, metric: 5 Nov 28 20:17:24 IS neighbor abc-edge-01.00, metric: 5 Nov 28 20:17:24 IS neighbor abc-edge-02.00, metric: 5 Nov 28 20:17:24 IS neighbor abc-brdr-01.00, metric: 5 Nov 28 20:17:24 IP prefix: 10.10.134.11/32 metric 0 up Nov 28 20:17:24 IP prefix: 10.11.0.0/16 metric 5 up Nov 28 20:17:24 IP prefix: 10.211.0.0/16 metric 0 up Nov 28 20:17:24 IP prefix 10.10.134.11 255.255.255.255 Nov 28 20:17:24 internal, metrics: default 0 Nov 28 20:17:24 IP prefix 10.11.0.0 255.255.0.0 Nov 28 20:17:24 internal, metrics: default 5 Nov 28 20:17:24 IP prefix 10.211.0.0 255.255.0.0 Nov 28 20:17:24 internal, metrics: default 0 Nov 28 20:17:24 Updating LSP Nov 28 20:17:24 Updating L2 LSP abc-core-01.00-00 in TED Nov 28 20:17:24 Analyzing subtlv's for abc-core-02.00 Nov 28 20:17:24 Analysis complete Nov 28 20:17:24 Analyzing subtlv's for abc-esr-02.00 Nov 28 20:17:24 Analysis complete Nov 28 20:17:24 Analyzing subtlv's for abc-edge-03.00 Nov 28 20:17:24 Analysis complete Nov 28 20:17:24 Analyzing subtlv's for abc-edge-01.00 Nov 28 20:17:24 Analysis complete Nov 28 20:17:24 Analyzing subtlv's for abc-edge-02.00 Nov 28 20:17:24 Analysis complete Nov 28 20:17:24 Analyzing subtlv's for abc-brdr-01.00 Nov 28 20:17:24 Analysis complete Nov 28 20:17:24 Scheduling L2 LSP abc-core-01.00-00 sequence 0x1c4f9 on interface so-1/1/1.0
另请参阅
配置 OSPF 特定选项
目的
发生意外事件或问题时,或者如果要诊断 OSPF 邻居建立问题,可以通过配置特定于 OSPF 的选项来查看更多详细信息。
要配置 OSPF 选项,请执行以下步骤:
诊断 OSPF 会话建立问题
操作
要详细跟踪 OSPF 消息,请执行以下步骤:
在配置模式下,转到以下层次结构级别:
[edit] user@host# edit protocols ospf traceoptions
配置 OSPF 你好消息:
[edit protocols ospf traceoptions] user@host# set flag hello detail
验证配置:
user@host# show
例如:
[edit protocols ospf traceoptions] user@host# show file ospf size 5m world-readable; flag hello detail;
提交配置:
user@host# commit
查看包含详细消息的文件内容:
user@host# run show log filename
例如:
user@host# run show log ospf
Dec 2 16:14:24 Version 2, length 44, ID 10.0.0.6, area 1.0.0.0 Dec 2 16:14:24 checksum 0xf01a, authtype 0 Dec 2 16:14:24 mask 0.0.0.0, hello_ivl 10, opts 0x2, prio 128 Dec 2 16:14:24 dead_ivl 40, DR 0.0.0.0, BDR 0.0.0.0 Dec 2 16:14:24 OSPF sent Hello (1) -> 224.0.0.5 (so-1/1/2.0) Dec 2 16:14:24 Version 2, length 44, ID 10.0.0.6, area 1.0.0.0 Dec 2 16:14:24 checksum 0xf01a, authtype 0 Dec 2 16:14:24 mask 0.0.0.0, hello_ivl 10, opts 0x2, prio 128 Dec 2 16:14:24 dead_ivl 40, DR 0.0.0.0, BDR 0.0.0.0 Dec 2 16:14:26 OSPF rcvd Hello 10.10.10.33 -> 224.0.0.5 (so-1/1/1.0) Dec 2 16:14:26 Version 2, length 48, ID 10.10.134.12, area 0.0.0.0 Dec 2 16:14:26 checksum 0x99b8, authtype 0Dec 2 16:14:26 mask 255.255.255.252, hello_ivl 10, opts 0x2, prio 1 ec 2 16:14:26 dead_ivl 40, DR 0.0.0.0, BDR 0.0.0.0 Dec 2 16:14:29 OSPF rcvd Hello 10.10.10.29 -> 224.0.0.5 (so-1/1/0.0) Dec 2 16:14:29 Version 2, length 48, ID 10.108.134.11, area 0.0.0.0 Dec 2 16:14:29 checksum 0x99b9, authtype 0Dec 2 16:14:29 mask 255.255.255.252, hello_ivl 10, opts 0x2, prio 1 Dec 2 16:14:29 dead_ivl 40, DR 0.0.0.0, BDR 0.0.0.0
意义
表 6 列出了 OSPF 跟踪标志,并提供了某些标志的示例输出。
跟踪标志 |
Description |
示例输出 |
---|---|---|
database-descripttion |
所有数据库描述数据包 |
Dec 2 15:44:51 RPD_OSPF_NBRDOWN: OSPF neighbor 10.10.10.29 (so-1/1/0.0) state changed from Full to Down Dec 2 15:44:51 RPD_OSPF_NBRDOWN: OSPF neighbor 10.10.10.33 (so-1/1/1.0) state changed from Full to Down Dec 2 15:44:55 RPD_OSPF_NBRUP: OSPF neighbor 10.10.10.33 (so-1/1/1.0) state changed from Init to ExStart Dec 2 15:44:55 OSPF sent DbD (2) -> 224.0.0.5 (so-1/1/1.0) Dec 2 15:44:55 Version 2, length 32, ID 10.0.0.6, area 0.0.0.0 Dec 2 15:44:55 checksum 0xf76b, authtype 0 Dec 2 15:44:55 options 0x42, i 1, m 1, ms 1, seq 0xa009eee, mtu 4470 Dec 2 15:44:55 OSPF rcvd DbD 10.10.10.33 -> 224.0.0.5 (so-1/1/1.0) Dec 2 15:44:55 Version 2, length 32, ID 10.10.134.12, area 0.0.0.0 Dec 2 15:44:55 checksum 0x312c, authtype 0 Dec 2 15:44:55 options 0x42, i 1, m 1, ms 1, seq 0x2154, mtu 4470 |
error |
OSPF 错误数据包 |
Dec 2 15:49:34 OSPF packet ignored: no matching interface from 172.16.120.29 Dec 2 15:49:44 OSPF packet ignored: no matching interface from 172.16.120.29 Dec 2 15:49:54 OSPF packet ignored: no matching interface from 172.16.120.29 Dec 2 15:50:04 OSPF packet ignored: no matching interface from 172.16.120.29 Dec 2 15:50:14 OSPF packet ignored: no matching interface from 172.16.120.29 |
event |
OSPF 状态转换 |
Dec 2 15:52:35 OSPF interface ge-2/2/0.0 state changed from DR to DR Dec 2 15:52:35 OSPF interface ge-3/1/0.0 state changed from DR to DR Dec 2 15:52:35 OSPF interface ge-3/2/0.0 state changed from DR to DR Dec 2 15:52:35 OSPF interface ge-4/2/0.0 state changed from DR to DR Dec 2 15:53:21 OSPF neighbor 10.10.10.29 (so-1/1/0.0) state changed from Full to Down Dec 2 15:53:21 RPD_OSPF_NBRDOWN: OSPF neighbor 10.10.10.29 (so-1/1/0.0) state changed from Full to Down Dec 2 15:53:21 OSPF neighbor 10.10.10.33 (so-1/1/1.0) state changed from Full to Down Dec 2 15:53:21 RPD_OSPF_NBRDOWN: OSPF neighbor 10.10.10.33 (so-1/1/1.0) state changed from Full to Down Dec 2 15:53:25 OSPF neighbor 10.10.10.33 (so-1/1/1.0) state changed from Down to Init Dec 2 15:53:25 OSPF neighbor 10.10.10.33 (so-1/1/1.0) state changed from Init to ExStart Dec 2 15:53:25 RPD_OSPF_NBRUP: OSPF neighbor 10.10.10.33 (so-1/1/1.0) state changed from Init to ExStart Dec 2 15:53:25 OSPF neighbor 10.10.10.33 (so-1/1/1.0) state changed from ExStart to Exchange Dec 2 15:53:25 OSPF neighbor 10.10.10.33 (so-1/1/1.0) state changed from Exchange to Full Dec 2 15:53:25 RPD_OSPF_NBRUP: OSPF neighbor 10.10.10.33 (so-1/1/1.0) state changed from Exchange to Full |
flooding |
链路状态泛洪数据包 |
Dec 2 15:55:21 OSPF LSA Summary 10.218.0.0 10.0.0.6 flooding on so-1/1/0.0 Dec 2 15:55:21 OSPF LSA Summary 10.218.0.0 10.0.0.6 flooding on so-1/1/1.0 Dec 2 15:55:21 OSPF LSA Summary 10.218.0.0 10.0.0.6 on no so-1/1/2.0 rexmit lists, no flood Dec 2 15:55:21 OSPF LSA Summary 10.218.0.0 10.0.0.6 on no so-1/1/3.0 rexmit lists, no flood Dec 2 15:55:21 OSPF LSA Summary 10.245.0.1 10.0.0.6 on no so-1/1/2.0 rexmit lists, no flood Dec 2 15:55:21 OSPF LSA Summary 10.245.0.1 10.0.0.6 on no so-1/1/3.0 rexmit lists, no flood |
hello |
hello 数据包 |
Dec 2 15:57:25 OSPF sent Hello (1) -> 224.0.0.5 (ge-3/1/0.0) Dec 2 15:57:25 Version 2, length 44, ID 10.0.0.6, area 2.0.0.0 Dec 2 15:57:25 checksum 0xe43f, authtype 0 Dec 2 15:57:25 mask 255.255.0.0, hello_ivl 10, opts 0x2, prio 128 Dec 2 15:57:25 dead_ivl 40, DR 10.218.0.1, BDR 0.0.0.0 Dec 2 15:57:25 OSPF rcvd Hello 10.10.10.33 -> 224.0.0.5 (so-1/1/1.0) Dec 2 15:57:25 Version 2, length 48, ID 10.10.134.12, area 0.0.0.0 Dec 2 15:57:25 checksum 0x99b8, authtype 0 Dec 2 15:57:25 mask 255.255.255.252, hello_ivl 10, opts 0x2, prio 1 Dec 2 15:57:25 dead_ivl 40, DR 0.0.0.0, BDR 0.0.0.0 Dec 2 15:57:27 OSPF sent Hello (1) -> 224.0.0.5 (ge-3/2/0.0) Dec 2 15:57:27 Version 2, length 44, ID 10.0.0.6, area 2.0.0.0 Dec 2 15:57:27 checksum 0xe4a5, authtype 0 Dec 2 15:57:27 mask 255.255.0.0, hello_ivl 10, opts 0x2, prio 128 Dec 2 15:57:27 dead_ivl 40, DR 10.116.0.1, BDR 0.0.0.0 Dec 2 15:57:28 OSPF rcvd Hello 10.10.10.1010.29 -> 224.0.0.5 (so-1/1/0.0) Dec 2 15:57:28 Version 2, length 48, ID .134.11, area 0.0.0.0 Dec 2 15:57:28 checksum 0x99b9, authtype 0 Dec 2 15:57:28 mask 255.255.255.252, hello_ivl 10, opts 0x2, prio 1 Dec 2 15:57:28 dead_ivl 40, DR 0.0.0.0, BDR 0.0.0.0 |
lsa-ack |
链路状态确认数据包 |
Dec 2 16:00:11 OSPF rcvd LSAck 10.10.10.29 -> 224.0.0.5 (so-1/1/0.0) Dec 2 16:00:11 Version 2, length 44, ID 10.10.134.11, area 0.0.0.0 Dec 2 16:00:11 checksum 0xcdbf, authtype 0 Dec 2 16:00:11 OSPF rcvd LSAck 10.10.10.33 -> 224.0.0.5 (so-1/1/1.0) Dec 2 16:00:11 Version 2, length 144, ID 10.10.134.12, area 0.0.0.0 Dec 2 16:00:11 checksum 0x73bc, authtype 0 Dec 2 16:00:16 OSPF rcvd LSAck 10.10.10.33 -> 224.0.0.5 (so-1/1/1.0) Dec 2 16:00:16 Version 2, length 44, ID 10.10.134.12, area 0.0.0.0 Dec 2 16:00:16 checksum 0x8180, authtype 0 |
lsa-request |
链路状态请求数据包 |
Dec 2 16:01:38 OSPF rcvd LSReq 10.10.10.29 -> 224.0.0.5 (so-1/1/0.0) Dec 2 16:01:38 Version 2, length 108, ID 10.10.134.11, area 0.0.0.0 Dec 2 16:01:38 checksum 0xe86, authtype 0 |
lsa-update |
链路状态更新数据包 |
Dec 2 16:09:12 OSPF built router LSA, area 0.0.0.0 Dec 2 16:09:12 OSPF built router LSA, area 1.0.0.0 Dec 2 16:09:12 OSPF built router LSA, area 2.0.0.0 Dec 2 16:09:13 OSPF sent LSUpdate (4) -> 224.0.0.5 (so-1/1/0.0) Dec 2 16:09:13 Version 2, length 268, ID 10.0.0.6, area 0.0.0.0 Dec 2 16:09:13 checksum 0x8047, authtype 0 Dec 2 16:09:13 adv count 7 Dec 2 16:09:13 OSPF sent LSUpdate (4) -> 224.0.0.5 (so-1/1/1.0) Dec 2 16:09:13 Version 2, length 268, ID 10.0.0.6, area 0.0.0.0 Dec 2 16:09:13 checksum 0x8047, authtype 0 Dec 2 16:09:13 adv count 7 |
packets |
所有 OSPF 数据包 |
不适用。 |
packet-dump |
转储所选数据包类型的内容 |
不适用。 |
spf |
防晒系数计算 |
Dec 2 16:08:03 OSPF full SPF refresh scheduled Dec 2 16:08:04 OSPF SPF start, area 1.0.0.0 Dec 2 16:08:04 OSPF add LSA Router 10.0.0.6 distance 0 to SPF list Dec 2 16:08:04 SPF elapsed time 0.000525s Dec 2 16:08:04 Stub elapsed time 0.000263s Dec 2 16:08:04 OSPF SPF start, area 2.0.0.0 Dec 2 16:08:04 OSPF add LSA Router 10.0.0.6 distance 0 to SPF list Dec 2 16:08:04 SPF elapsed time 0.000253s Dec 2 16:08:04 Stub elapsed time 0.000249s Dec 2 16:08:04 OSPF SPF start, area 0.0.0.0 Dec 2 16:08:04 OSPF add LSA Router 10.0.0.6 distance 0 to SPF list Dec 2 16:08:04 OSPF add LSA Router 10.10.10.10134.11 distance 1 to SPF list Dec 2 16:08:04 IP nexthop so-1/1/0.0 0.0.0.0 Dec 2 16:08:04 OSPF add LSA Router .134.12 distance 1 to SPF list Dec 2 16:08:04 IP nexthop so-1/1/1.0 0.0.0.0 |
详细分析 OSPF 链路状态通告数据包
操作
要详细分析 OSPF 链路状态通告数据包,请执行以下步骤:
在配置模式下,转到以下层次结构级别:
[edit] user@host# edit protocols ospf traceoptions
配置 OSPF 链路状态包:
[edit protocols ospf traceoptions] user@host# set flag lsa-update detail
验证配置:
user@host# show
例如:
[edit protocols ospf traceoptions] user@host# show file ospf size 5m world-readable; flag hello detail; flag lsa-update detail;
提交配置:
user@host# commit
查看包含详细消息的文件内容:
user@host# run show log filename
例如:
user@host# run show log ospf
Dec 2 16:23:47 OSPF sent LSUpdate (4) -> 224.0.0.5 (so-1/1/0.0) ec 2 16:23:47 Version 2, length 196, ID 10.0.0.6, area 0.0.0.0 Dec 2 16:23:47 checksum 0xcc46, authtype 0 Dec 2 16:23:47 adv count 6 Dec 2 16:23:47 OSPF sent LSUpdate (4) -> 224.0.0.5 (so-1/1/1.0) Dec 2 16:23:47 Version 2, length 196, ID 10.0.0.6, area 0.0.0.0 Dec 2 16:23:47 checksum 0xcc46, authtype 0 Dec 2 16:23:47 adv count 6