目錄

簡介

必要條件

問題

解決方案

簡介

本文說明如何判斷最大傳輸單元(MTU)問題是否導致了內部或外部邊界閘道通訊協定(BGP)鄰居翻動。

必要條件

完成本檔案中的程式之前，請確認已在兩台BGP路由器上完成以下任務：

- 檢查BGP配置。

- 驗證是否可透過網際網路控制訊息通訊協定(ICMP)連線至BGP鄰居，且未觀察到捨棄專案。

- 驗證用於對等BGP的已連線介面不是超訂用介面，並且沒有任何輸入/輸出丟棄或錯誤。

- 檢查CPU和記憶體利用率。

問題

BGP鄰居形式；但是，在進行字首交換時，BGP狀態將丟棄，並且日誌將生成丟失的BGP hello keepalive，否則其他對等體將終止會話。

完成以下步驟，以判斷MTU是否導致BGP鄰居翻動：

1. 使用以下命令以檢查哪個鄰居受到影響，以及兩台BGP路由器上的已連線介面。如果對等地址是環回地址，請檢查環回可訪問的連線介面。此外，請檢查兩台對等路由器上的BGP OutQ。一致的非零OutQ強烈表示更新由於路徑中的MTU問題而未到達對等體。
Router#show ip bgp summ | in InQ|10.10.10.2

Neighbor      V   AS MsgRcvd MsgSent  TblVer  InQ OutQ Up/Down  State/PfxRcd

10.10.10.2    4   3     64      62       3     0    0   00:00:3       2

Router#show ip route 10.10.10.2

Routing entry for 10.10.10.0/24

Known via "connected", distance 0, metric 0 (connected, via interface)

Routing Descriptor Blocks:

* directly connected, via GigabitEthernet1/0

Route metric is 0, traffic share count is 1

2. 檢查兩端的介面MTU:
Router#show ip int g1/0 | i MTU

MTU is 1500 bytes

Router#

3. 確認兩個BGP揚聲器的TCP協定最大資料段：
Router#show ip bgp neigh 20.20.20.2 | inc segment

Datagrams (max data segment is 1460 bytes):

Router#

在上方範例中，1460是正確的，因為20位元組指定給TCP標頭，另外20位元組指定給IP標頭。

4. 確認BGP used path-mtu是否已啟用:
Router#show ip bgp neigh 10.10.10.2 | in tcp

Transport(tcp) path-mtu-discovery is enabled

Router#

5. 對已設定最大介面MTU和DF（不分段）位元的BGP對等點執行Ping:
Router#ping 10.10.10.2 size 1500 df

Type escape sequence to abort.

Sending 5, 1500-byte ICMP Echos to 10.10.10.2, timeout is 2 seconds:

Packet sent with the DF bit set

.....

Success rate is 0 percent (0/5)

6. 降低ICMP大小值，以確定可以使用的最大MTU大小：
ping 10.10.10.2 size 1300 df

解決方案

以下是一些可能的原因：

- 兩台路由器上的介面MTU不匹配。

- 兩台路由器上的介面MTU相符，但形成BGP作業階段的第2層網域不相符。

- 路徑MTU發現確定TCP BGP會話的最大資料集不正確。

- 由於PMTUD ICMP封包遭封鎖（防火牆或ACL），BGP路徑最大傳輸單元探索(PMTUD)可能失敗

以下是解決MTU問題的可能方式：

1. 兩台路由器上的介面MTU應該相同；執行show ip int |在MTU命令中，檢查目前的MTU設定。

2. 如果兩台路由器上的介面MTU都正確（例如1500），但已設定DF位元的ping測試不超過1300，則構成受影響的BGP作業階段的第2層網域可能包含不一致的MTU組態。檢查每個第2層介面MTU。修正第2層介面MTU以解決問題。

3. 如果您無法檢查/變更第2層網域，可以將ip tcp mss global指令設定為較小的值，例如1000，這會強制所有本地發起的TCP最大資料段作業階段（包括BGP）達到1000。有關此命令的詳細資訊，請參閱Cisco IOS IP應用服務命令參考的ip tcp mss部分。

此外，您還可以使用ip tcp adjust-mss指令進行進一步的疑難排解；此命令在介面級別配置，會影響所有TCP會話。有關此命令的詳細資訊，請參閱Cisco IOS IP應用程式服務命令參考的ip tcp adjust-mss部分。

4. (可選)BGP路徑最大傳輸單元探索(PMTUD)可能不能產生正確的最大資料大小。您可以全域性禁用或按鄰居禁用該功能，以確認這是不是原因。停用BGP PMTUD時，BGP最大區段大小(MSS)預設為536，如RFC 879所定義。

有關如何停用PMTUD的資訊，請參閱Cisco IOS BGP組態指南的為TCP路徑MTU探索設定BGP支援一節。

有關PMTUD的詳細資訊，請參閱什麼是PMTUD?