跳至內容

如何對 Transit Gateway Connect 附件進行 BGP 連線的疑難排解?

3 分的閱讀內容
0

我的邊界閘道協定 (BGP) 工作階段無法透過 AWS Transit Gateway Connect 附件建立。

解決方法

檢查 BGP 工作階段的需求

請採取以下動作:

  • 確認一般路由封裝 (GRE) 通道的最大傳輸單元 (MTU) 小於外部介面 MTU。從外部介面 MTU 減去 24 位元組的 GRE 標頭和 20 位元組的外部 IP 位址標頭額外負荷。
    **注意:**GRE 通道也稱為 Transit Gateway Connect 對等節點。
  • 確認您已正確設定 Connect 對等節點,且該對等節點在您的設備和傳輸閘道之間正常運作。
  • 檢查您是否使用支援的 BGP 類型,例如內部 BGP (iBGP) 和外部 BGP (eBGP),以實現特定路由行為。
  • 在 Connect 附件上建立一或多個 Connect 對等節點,並透過每個 Connect 對等節點建立兩個 BGP 工作階段以提供備援。
    **重要:**最佳實務是設定兩個 BGP 對等互連工作階段。只有單一 BGP 工作階段的 Connect 對等節點可能會在 AWS 基礎結構維護期間暫時失去連線。

**注意:**Connect 附件不支援雙向轉送偵測 (BFD) 和正常重新啟動。

如需 Connect 附件需求的更多資訊,請參閱需求與考量事項。

檢查 AWS 資源是否處於正確狀態

檢視您的 Connect 附件與 Connect 對等節點,以確定其處於可用狀態。

**注意:**新的 Connect 對等節點會保持在「擱置中」狀態,直到佈建完成。

此外,請確認 Connect 對等節點組態顯示 BGP 的 Transit Gateway 位址、對等節點 IP 位址和內部 CIDR 區塊。

檢查 AWS 和您設備上的 BGP 位址與 ASN 組態

如果您未在對等節點之間正確設定 IP 位址或自治系統編號 (ASN),則 BGP 相鄰節點建立將會失敗。

**注意:**為了備援,請為每個 Connect 對等節點使用兩個 BGP 對等互連工作階段。AWS 預設會建立兩個 BGP 對等互連工作階段。如果您有多個 Connect 對等節點,請設定兩個 BGP 對等互連工作階段。

首先,檢查您的 Connect 對等節點是否具有以下組態:

  • 對於 InsideCIDR,確認 BGP 工作階段針對對等節點 IP 位址使用 /29 CIDR 區塊。
  • 對於 Peer ASN,檢查您是否指定了 ASN,或 AWS 是否指派了預設 ASN。
    **注意:**如果您在建立 Connect 對等節點時未指定 ASN,則 AWS 會使用相同的傳輸閘道 ASN,並建立 iBGP 工作階段。這可能會導致非預期的路由行為。

接著,檢查您的設備是否具有以下組態:

  • 確認您已使用內部 CIDR 區塊中的第一個 IP 位址設定通道介面。例如,如果內部 CIDR 區塊範圍是 169.254.6.0/29,則在設備通道上設定 169.254.6.1。

  • 確認傳輸閘道使用內部 CIDR 區塊範圍中的第二個 IP 位址。
    Cisco IOS 的範例組態:

    interface Tunnel0
      ip address 169.254.6.1 255.255.255.248
      tunnel source GRE OUTER IP ADDDRESS
      tunnel destination TGW TUNNEL IP
    router bgp 65001
      neighbor 169.254.6.2 remote-as 64512
      neighbor 169.254.6.2 ebgp-multihop 2
      neighbor 169.254.6.2 timers 10 30

    **注意:**將 169.254.6.1 和 169.254.6.2 替換為您內部 CIDR 區塊中的 IP 位址。將 TGW TUNNEL IP 和 GRE OUTER IP ADDRESS 替換為您的值。在 eBGP,設定 ebgp-multihop,並將存留時間 (TTL) 值設定為 2。

疑難排解 BGP 相鄰節點狀態

檢查您設備上的 BGP 摘要和相鄰節點詳細資訊。例如,如果您的設備執行 Cisco IOS,請執行以下命令。

若要檢視所有相鄰節點的 BGP 工作階段狀態摘要,請執行以下 show ip bgp summary 命令:

show ip bgp summary

若要檢視 BGP 和 TCP 與相鄰節點連線的相關資訊,請執行以下 show ip bgp neighbors 命令:

show ip bgp neighbors

若要檢視 BGP 偵錯記錄,請執行以下 debug ip bgp 命令:

debug ip bgp

如果您的 BGP 相鄰節點處於閒置、作用中或連線狀態,請完成以下步驟:

  1. 執行以下 telnet 命令,測試與設定在傳輸閘道上 BGP 對等節點 IP 位址的連線:

    telnet TGW-BGP-PEER-IP 179

    **注意:**將 TGW-BGP-PEER-IP 替換為您傳輸閘道的 BGP 對等節點 IP 位址。

  2. 在您的設備上執行 tcpdump 命令,以監控 GRE 封包和 BGP 流量 (例如 TCP 連接埠 179)。

  3. 確認出現 GRE 封裝封包以及連接埠 179 的 TCP SYN/ACK。

  4. 如果您的設備使用不同或較短的 BGP 計時器,最佳實務是設定您的設備以符合傳輸閘道預設設定。將 keepalive 設定為 10 秒,並將 hold time 設定為 30 秒。

確認路由表關聯與傳播

請完成以下步驟:

  1. 開啟 Amazon VPC console (Amazon VPC 主控台)。
  2. 在導覽窗格中,選擇 Transit gateway attachments (傳輸閘道附件),然後選取您的附件 ID。
  3. 在 Details (詳細資訊) 索引標籤上,選取路由表 ID,然後檢查您是否已將附件與正確的路由表建立關聯。
  4. 在相同路由表,選擇 Propagations (傳播) 索引標籤。
  5. 確認您已開啟傳播,讓路由表可以接受來自 Connect 附件的傳播。

如果路由出現在傳輸閘道路由表中,但未出現在連線附件的路由表中,請檢查您的路由表關聯和傳播設定。

如果預期的路由未出現,請採取以下動作:

  • 檢查您的設備是否傳送 BGP 公告。此外,檢查是否有可能封鎖公告的匯出篩選條件或路由對應。
  • 對於 iBGP 連線,只有在路由源自 eBGP 對等節點時,傳輸閘道才會安裝路由。確認您的設備透過 iBGP 連線公告的路由具有 ASN,或改用 eBGP。

您可以從設備公告到 Connect 對等節點的動態路由預設配額為 1,000。您可以調整該配額。不過,最佳實務是將動態路由數量限制限制在 1,000 以內,以避免 BGP 不穩定。

檢查 MTU 與分段問題

GRE 封裝會增加封包大小,並導致封包分段。封包分段時,無法建立 BGP 工作階段。

若要解決此問題,請採取以下動作:

  • 確認您已在設備上正確設定 GRE MTU。若要計算 GRE MTU,請從外部 MTU 減去 24 位元組的 GRE 標頭和 20 位元組的 IP 位址標頭 (共計 44 位元組)。例如,如果您的外部 MTU 為 1,500,則將 MTU 設定為 1,456。

  • 若要檢查 MTU 路徑問題,請從您的設備使用不同的封包大小執行以下 ping 命令,並包含「不要分段」旗標 -M:

    ping -M do -s 1400 TRANSIT_GATEWAY_BGP_PEER_IP

    **注意:**將 1400 替換為不同的值,以找出可在不分段情況下運作的最大 MTU 大小。將 TRANSIT_GATEWAY_BGP_PEER_IP 替換為內部 CIDR 區塊範圍中的 BGP 對等節點 IP 位址。如果您設定了兩個 BGP 工作階段,請對兩個 BGP 對等節點 IP 位址執行 ping 命令。

  • 在您的 GRE 介面上執行 tcpdump 或 Wireshark,以檢查分段封包。尋找顯示 More Fragments 的 IP 位址旗標,並檢查 TCP 重新傳輸。

如果您發現 MTU 問題,請降低設備上的 GRE 通道 MTU。此外,在您的設備上開啟最大區段大小 (MSS) 鎖定,讓大型封包不會讓路徑負荷過重。

相關資訊

AWS Transit Gateway 中的 Connect 附件和 Connect 對等節點

AWS Transit Gateway 中的傳輸閘道路由表

AWS Transit Gateway 配額

AWS 官方已更新 10 個月前