VPC での一般的な BYOIP 設定エラーのトラブルシューティング方法を教えてください。
最終更新日: 2022 年 4 月 5 日
Amazon Virtual Private Cloud (Amazon VPC) 用に独自 IP の持ち込み (BYOIP、Bring Your Own IP) を設定しようとしています。一般的なエラーのトラブルシューティング方法を教えてください。
簡単な説明
VPC で BYOIP を設定するときに発生する可能性のある一般的なエラーを次に示します。
- Route Origin Authorization (ROA) が無効であるか、指定された CIDR と Amazon ASN に対して見つからない。
- WHOIS の remarks で X509 証明書が見つからなかった。
- IP 範囲が、関連付けられたインターネットレジストリで許容される割り当てタイプでない。
- Regional Internet Registries (RIR) レコードの X509 証明書で CidrAuthorizationContext 署名を検証できなかった。
- IP アドレスが pending-provision 状態のままになっている。
解決方法
Error: The ROA is not valid or isn't found for the provided CIDR and Amazon ASNs (エラー: ROA が無効であるか、指定された CIDR と Amazon ASN に対して見つかりません)
ご使用のアドレス範囲をアドバタイズするために Amazon ASN 16509 および 14618 を許可する ROA を作成します。ROA によって Amazon で ASN を利用できるようになるまでには、最大 24 時間かかる場合があります。
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 に持ち込むアドレス範囲に固有である必要があります。詳細については、「Introducing Bring Your Own IP (BYOIP)」の「Preparing your IP address range」セクションを参照してください。
- ROA を作成してから 24 時間待ってから再プロビジョニングしてください。
Error: No X509 certificate could be found in the WHOIS remarks (エラー: WHOIS の remarks で 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. 上記のいずれにも当てはまらない場合は、不正なキーペアを使用して証明書が生成されています。
Error: The IP range isn't an acceptable allocation type in the associated internet registry (エラー: IP 範囲が、関連付けられたインターネットレジストリで許容される割り当てタイプでありません)
このエラーの考えられる理由は以下のとおりです。
- アドレス範囲の RIR 割り当てタイプが間違っている。
- レジストリがサポートされていない。
AFRINIC、ARIN、APNIC、LACNIC、RIPE という 5 つの Regional Internet Registries (RIR) があります。AWS では、ARIN、RIPE、および APNIC で登録されたプレフィックスがサポートされています。
RIR を確認するには、次のように WHOIS を使用します。
whois <public ip>
RIPE の場合: Status が ALLOCATED PA、LEGACY、または ASSIGNED 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 の場合) が上記のいずれでもない。
- レジストリがサポートされていない。
Error: The CidrAuthorizationContext signature could not be verified with the X509 certificates in the RIR records (エラー: RIR レコードの X509 証明書で CidrAuthorizationContext 署名を検証できませんでした)
アドレス範囲をプロビジョンすると、AWS は証明書から派生したパブリックキーを使用して、aws ec2 provision-byoip-cidr API コールで署名を検証します。このエラーは、指定された署名の暗号検証に失敗したことを示します。
このエラーが発生する一般的な原因は次のとおりです。
- プロビジョニング時に正しい署名を使用していない。
- 間違ったプライベートキーを使用してメッセージに署名した。
- RIR で RDAP レコードに間違った証明書をアップロードした
Error: Stuck in "pending-provision" state (エラー: pending-provision 状態のままになっています)
パブリックにアドバタイズ可能な範囲のプロビジョニングプロセスが完了するまでに最長で 1 週間かかることがあります。次の例に示すように、describe-byoip-cidrs コマンドを使用して進行状況をモニタリングします。
aws ec2 describe-byoip-cidrs --max-results 5 --region us-east-1
ステータスが failed-provision に変わった場合は、問題が解決した後に provision-byoip-cidr コマンドを再度実行する必要があります。
詳細については、「AWS でパブリックにアドバタイズされているアドレス範囲をプロビジョニングする」を参照してください。