目錄

簡介

必要條件

需求

採用元件

問題

案例1 — 拓撲變更的多躍點EBGP

案例2 - eBGP with Update Source Address Change

解決方案

XR版本中的增強功能

相關資訊

簡介

本檔案將說明如何排解eBGP(外部邊界閘道通訊協定)的疑難問題，因為作業階段由於LPTS(本機封包傳輸服務)專案不正確而停滯在使用狀態。

作者：思科TAC工程師William Xu。

必要條件

需求

思科建議您瞭解以下主題：

- BGP

- TCP

- 適用於IOS XR的LPTS

採用元件

本文檔中的資訊基於ASR9000（聚合服務路由器）平台。

本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除（預設）的組態來啟動。如果您的網路運作中，請確保您已瞭解任何指令可能造成的影響。

問題

設定eBGP時，如果發生以下情況，作業階段可能會無限期停留在作用中：

- 未配置update-source 命令

- 拓撲發生變化時，流量會採用不同的路徑

出現此問題時，會出現以下症狀：

- 可訪問IP地址

- 兩個BGP對等體都保持停滯在活動狀態

- 封包擷取顯示路由器傳送許多TCP重設

- show tcp trace error 表示BGP會話的此錯誤。

Feb 18 09:32:15.393 tcp/error 0/RSP0/CPU0 t9  Lpts set the drop flag for 179 -> 5368, drop packet (pak 0xb1cf80f3) and send a RST

總之，問題的根本原因是路由和轉發更改不會更新LPTS條目。這意味著拓撲更改後，它們仍保持陳舊狀態。

對BGP做了一些增強。這兩種方案將詳細介紹此問題。

註:iBGP(內部邊界網關協定)通常不會遇到此問題，因為update-source始終使用。

案例1 — 拓撲變更的多躍點EBGP

您可以在ASR9K-1和ASR9K-3之間建立多跳eBGP會話。物理介面上的對等IP地址為172.123.1.1和172.123.2.2。未配置update-source 命令。在當前拓撲中，會話保持活動狀態。這是預期結果，因為兩台路由器都將使用子網172.123.3.0/24中的介面作為輸出介面。

您可以關閉ASR9K-1和ASR9K-3之間的直接鏈路。然後，通過ASR9K-2（多跳鏈路）可以到達對等體地址，因此ping成功。兩端的來源IP位址相符，但BGP作業階段仍處於作用中狀態。

配置BGP鄰居時，將根據CEF（思科快速轉發）表建立LPTS條目。對於ASR9K-1，可通過172.123.3.0/24子網訪問IP地址172.123.2.2。因此，LPTS中的相關條目可用。它允許BGP鄰居使用本地IP地址172.123.3.1連線埠179。由於它嘗試從本地埠26036發起TCP會話，因此您可以看到它的另一個條目。

ASR9K-1:

========

ASR9K-1#show lpts ifib entry brief | inc "BGP"

...

BGP4 default TCP any 0/RSP1/CPU0 172.123.3.1,179 172.123.2.2

BGP4 default TCP any 0/RSP1/CPU0 172.123.3.1,26036 172.123.2.2,179

此輸出在ASR9K-3中相同。

ASR9K-3:

========

ASR9K-3#show lpts ifib entry brief | inc "BGP"

...

BGP4 default TCP any 0/RSP1/CPU0 172.123.3.2,11126 172.123.1.1,179

BGP4 default TCP any 0/RSP1/CPU0 172.123.3.2,179 172.123.1.1

當ASR9K-1和ASR9K-3之間的鏈路斷開時，通過具有新的本地源IP地址的ASR9K-2路徑可以到達對等體。但是拓撲更改不會觸發LPTS更新。埠179的原始條目保留原始本地IP地址。這可以防止路由器允許向新的本地IP地址發出輸入TCP請求。因此，兩端的BGP作業階段仍停滯在作用中狀態。

案例2 - eBGP with Update Source Address Change

您可以在ASR9K-1和ASR9K-3之間部署eBGP會話。IP地址為172.123.3.1和172.123.3.2。根據新計畫，您將IP地址更改為172.123.3.111和172.123.3.222。如果您先配置eBGP，然後在介面上更新IP地址，則EBGP會話會停滯在活動狀態。

原因與場景1相同。配置eBGP會話後，LPTS條目將根據該點的本地出口介面生成。

ASR9K-1:

========

ASR9K-1#show lpts ifib entry brief | inc "BGP"

...

BGP4 default TCP any 0/RSP1/CPU0 172.123.3.1,179 172.123.3.222

BGP4 default TCP any 0/RSP1/CPU0 172.123.3.1,24067 172.123.3.222,179

ASR9K-3:

========

ASR9K-3#show lpts ifib entry brief | inc "BGP"

...

BGP4 default TCP any 0/RSP1/CPU0 172.123.3.2,45091 172.123.3.111,179

BGP4 default TCP any 0/RSP1/CPU0 172.123.3.2,179 172.123.3.111

儘管本地IP地址後來發生了更改，但LPTS條目並未更新。TCP要求遭封鎖，作業階段會永久停滯在作用中狀態。

解決方案

要解決此問題，您需要觸發對LPTS的更新。您可以使用以下選項來解決問題：

- 關閉/不關閉BGP鄰居

- 重新配置BGP鄰居

- 重新啟動進程bgp

- 在兩端配置update-source，可以防止此問題。

XR版本中的增強功能

最近的IOS XR版本中有一些增強功能。

CSCuz51103 - BGP會話停滯在活動狀態

此增強功能自XR 6.1.1版引入。在此版本中，當BGP嘗試重新建立會話時，LPTS會使用新的本地IP地址更新其條目。更新時間取決於兩端的保持時間配置。您仍然可以等待有時看到會話啟動。

即使使用此增強功能，如果您已設定passive 模式，BGP作業階段仍會停滯在主動狀態。原因顯而易見。如果BGP不嘗試重新建立會話，則不會檢查本地IP地址。因此LPTS條目不會更新。

XR 6.2.1版對此情況還有另一個增強功能。

CSCvb15128- BGP會話在路由器配置被動BGP模式時停滯在活動狀態

相關資訊

- ASR9000/XR：本地封包傳輸服務(LPTS)CoPP(控制平面管制)

- 配置指南：實施LPTS

- 配置指南：實施BGP