如何疑難排解 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 中佈建公開公告的地址範圍 。