如何疑難排解 VPC 中常見的 BYOIP 組態錯誤?

上次更新日期:2022 年 4 月 5 日

我正在嘗試為我的 Amazon Virtual Private Cloud (Amazon VPC) 設定「使用自有 IP (BYOIP)」。如何疑難排解常見錯誤?

簡短描述

以下是在 VPC 中設定 BYOIP 時可能出現的常見錯誤:

  • 所提供的 CIDR 和 Amazon ASN 的路由來源授權 (ROA) 無效或找不到。
  • WHOIS 備註中未找到 X509 憑證。
  • IP 範圍不是相關網際網路登錄中可接受的分配類型。
  • 無法使用區域網際網路註冊管理機構 (RIR) 記錄中的 X509 憑證驗證 CidrAuthorizationContext 簽名。
  • 您的 IP 地址卡在等待佈建狀態。

解決方案

錯誤:所提供的 CIDR 和 Amazon ASN 的 ROA 無效或找不到

建立 ROA 以授權 Amazon ASN 16509 和 14618 公告您的地址範圍。ROA 最長可能需要 24 小時才能將 ASN 提供給 Amazon。

若要確認 ROA 建立和 ASN 映射,請使用 WHOIS:

$ whois -h whois.bgpmon.net " --roa 16509 <Customer IP/CIDR> "
$ whois -h whois.bgpmon.net " --roa 14618 <Customer IP/CIDR> "

有效輸出範例:

$ whois -h whois.example.com " --roa 14618 X.X.X.X/24"
0 - Valid
------------------------
ROA Details
------------------------
Origin ASN: AS14618
Not valid Before: 2019-02-20 05:00:00
Not valid After: 2020-02-20 05:00:00 Expires in 266d11h4m39s
Trust Anchor: rpki.arin.net
Prefixes: X.X.X.X/24 (max length /24)

無效輸出範例:

$ whois -h whois.example.com " --roa 14618 X.X.X.X/24"
2 - Not Valid: Invalid Origin ASN, expected 16509

若要避免此錯誤:

  • ROA 必須在使用期內對兩個 ASN 有效,並且特定於您要引入 AWS 的地址範圍。如需詳細資訊,請參閲使用自有 IP (BYOIP) 簡介中的準備您的 IP 地址範圍部分。
  • 在建立 ROA 後等待 24 小時,然後再重新佈建。

錯誤:WHOIS 備註中找不到 X509 憑證

此錯誤的常見原因包括:

  • RIR 的 RDAP 記錄中未提供憑證。
  • 憑證中有新行字元。
  • 提供的憑證無效。
  • 憑證不是從有效的金鑰對產生。

確保您正確建立並上傳憑證。如需詳細資訊,請參閲建立 AWS 身分驗證的金鑰對

若要疑難排解此錯誤,請驗證上傳的憑證是否有效。您可以使用 WHOIS 檢查 RIR 中的網路範圍記錄。

對於 ARIN:

whois -a <Public IP>

請查看 NetRange (網路範圍) 的 Comments (註釋) 部分。確保已針對您的地址範圍在 Public Comments (公開註釋) 部分中新增了憑證。

對於 RIPE:

whois -r <Public IP>

請查看 WHOIS 顯示畫面中 inetnum 物件 (網路範圍) 的 descr 部分。確保已針對您的地址範圍將憑證新增至 desc 欄位中。

對於 APNIC:

whois -A <Public IP>

請查看 WHOIS 顯示畫面中 inetnum 物件 (網路範圍) 的 remarks (備註) 部分。確保您的地址範圍的憑證已存在於 remarks (備註) 欄位中。

完成上述檢查後,請執行以下操作:

1.    如果沒有憑證,請建立一個新憑證,然後依照本「解決方案」部分中概述的建議將其上傳。

2.    如果有憑證,請確保沒有新行。如果有任何新行,請依以下範例所示將其移除:

openssl req -new -x509 -key private.key -days 365 | tr -d "\n" > publickey.cer

3.    驗證提供的憑證是否有效。若要執行此操作,請將憑證內容複製至新檔案中,然後執行以下命令:

openssl x509 -in example.crt -text -noout

如果收到 unable to load certificate (無法載入憑證) 錯誤,請在 BEGIN CERTIFICATE (憑證開始) 後新增一個新行,並在 END CERTIFICATE (憑證結束) 之前新增另一個新行。

4.    如果上述內容均不適用,則憑證是使用錯誤的金鑰對產生。

錯誤:IP 範圍不是相關網際網路登錄中可接受的分配類型

出現此錯誤的可能原因包括:

  • 地址範圍的 RIR 分配類型錯誤。
  • 不支援登錄。

目前有五個區域網際網路註冊管理機構 (RIR) - AFRINIC、ARIN、APNIC、LACNIC 和 RIPE。AWS 支援 ARIN、RIPE 和 APNIC 已註冊前綴。

若要驗證 RIR,請使用 WHOIS:

whois <public ip>

對於 RIPE:驗證 Status (狀態) 是否為 ALLOCATED PA (已分配 PA)、LEGACY (舊式) 或 ASSIGNED PI (已指派 PI)。

對於 ARIN:驗證 NetType 是否為 Direct Allocation (直接分配) 或 Direct Assignment (直接指派)。

對於 APNIC:驗證 Status (狀態) 是否為 ALLOCATED PORTABLE (已分配可移植) 或 ASSIGNED PORTABLE (已指派可移植)。

注意:某些註釋可能聲明 Addresses within this block are non-portable (此區塊內的地址不可移植)。此註釋進一步確認 RIR 無法佈建該地址範圍。

出現上述錯誤的原因如下:

  • 如果 Status (狀態) (對於 RIPE 和 APNIC) 或 NetType (對於 ARIN) 不是上述設定。
  • 如果是不支援的登錄。

錯誤:無法使用 RIR 記錄中的 X509 憑證驗證 CidrAuthorizationContext 簽名

佈建地址範圍時,AWS 將使用從憑證衍生的公有金鑰來驗證 aws ec2 provision-byoip-cidr API 呼叫中的簽名。此錯誤表示未能透過加密方式驗證提供的簽名。

造成此錯誤的常見原因如下:

  • 佈建時您未使用正確的簽名。
  • 您使用錯誤的私有金鑰簽署訊息。
  • 您上傳了 RIR 的 RDAP 記錄中的錯誤憑證

錯誤:卡在「等待佈建」狀態

最長可能需要一週時間才能完成可公開公告範圍的佈建程序。使用 describe-byoip-cidrs 命令監視進度,如以下範例所示:

aws ec2 describe-byoip-cidrs --max-results 5 --region us-east-1

如果狀態變更為 failed-provision (佈建失敗),則必須在問題得到解決後再次執行 provision-byoip-cidr 命令

如需詳細資訊,請參閲在 AWS 中佈建公開公告的地址範圍


此文章是否有幫助?


您是否需要帳單或技術支援?