教學課程:將 BYOIP IPv4 CIDR 傳輸至 IPAM - Amazon Virtual Private Cloud

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

教學課程:將 BYOIP IPv4 CIDR 傳輸至 IPAM

請依照下列步驟將現有的 IPv4 CIDR 傳輸至 IPAM。如果您已經擁有一個具有 AWS 的 IPv4 BYOIP CIDR,則可以將 CIDR 從公有 IPv4 集區移動至 IPAM。您無法將 IPv6 CIDR 移動至 IPAM。

本教學課程假設您已經使用在 Amazon EC2 中使用自有 IP 地址 (BYOIP) 中描述的過程成功地將 IP 地址範圍帶到 AWS,現在您想將該 IP 地址範圍轉移到 IPAM。如果您是第一次將一個新 IP 地址導入 AWS,應完成 教學課程:將 IP 地址帶入 IPAM 中的步驟。

如果您是將公用 IPv4 集區轉移至 IPAM,則對現有配置不會有影響。將公用 IPv4 集區轉移至 IPAM 後,視資源類型而定,您或許能監視現有的配置。如需更多詳細資訊,請參閱 依資源監控 CIDR 使用情況

注意
  • 本教學課程假設您已完成 建立 IPAM 中的步驟。

  • 本教學課程的每個步驟必須由兩個 AWS 帳戶中的其中一個完成:

    • IPAM 管理員的帳戶。在本教學課程中,此帳戶將稱為 IPAM 帳戶。

    • 您組織中擁有 BYOIP CIDR 的帳戶。在本教學課程中,此帳戶將稱為 BYOIP CIDR 擁有者帳戶。

步驟 1:建立 AWS CLI 具名設定檔和 IAM 角色

如要以單一 AWS 使用者身分完成此教學課程,您可使用 AWS CLI 具名設定檔,從一個 IAM 角色切換至另一個。具名設定檔是您在搭配 AWS CLI 使用 --profile 選項時所參考的設定和憑證的集合。如需有關如何為 AWS 帳戶建立 IAM 角色和具名設定檔的詳細資訊,請參閱 Using an IAM role in the AWS CLI

為將在本教學課程中使用的三個 AWS 帳戶分別建立一個角色和一個具名設定檔:

  • 一個名為 ipam-account 的 AWS 帳戶設定檔,該帳戶為 IPAM 管理員。

  • 您組織中一個名為 byoip-owner-account 的 AWS 帳戶設定檔,其擁有 BYOIP CIDR。

建立 IAM 角色和具名設定檔後,請返回此頁面並繼續下一個步驟。您將在本教學課程的其餘部分中注意到,範例 AWS CLI 命令使用 --profile 選項,和其中一個具名設定檔來指出哪個帳戶必須執行該命令。

步驟 2:取得您 IPAM 的公有範圍 ID

請依照本節中的步驟取得 IPAM 的公有範圍 ID。此步驟應由 ipam-account 帳戶執行。

執行以下命令以取得公有範圍 ID。

aws ec2 describe-ipams --region us-east-1 --profile ipam-account

您會在輸出結果中看到您的公有範圍 ID。請記下 PublicDefaultScopeId 的值。下一個步驟將需要此值。

{ "Ipams": [ { "OwnerId": "123456789012", "IpamId": "ipam-090e48e75758de279", "IpamArn": "arn:aws:ec2::123456789012:ipam/ipam-090e48e75758de279", "PublicDefaultScopeId": "ipam-scope-0087d83896280b594", "PrivateDefaultScopeId": "ipam-scope-08b70b04fbd524f8d", "ScopeCount": 2, "Description": "my-ipam", "OperatingRegions": [ { "RegionName": "us-east-1" }, { "RegionName": "us-west-2" } ], "Tags": [] } ] }

步驟 3:建立 IPAM 集區

請依照本節中的步驟來建立 IPAM 集區。此步驟應由 ipam-account 帳戶執行。您建立的 IPAM 集區需為最上層集區,其 --locale 選項需與 BYOIP CIDR AWS 區域相符。只能將 BYOIP 傳輸至最上層 IPAM 集區。

重要

建立集區時,必須包含 --aws-service ec2。您選取的服務確定可公告 CIDR 的 AWS 服務。目前,唯一的選項是 ec2,這意味著從此集區配置的 CIDR 可針對 Amazon EC2 服務 (適用於彈性 IP 地址) 和 Amazon VPC 服務 (適用於與 VPC 關聯的 CIDR) 進行公告。

使用 AWS CLI 為傳輸的 BYOIP CIDR 建立 IPv4 地址集區
  1. 執行下列命令以建立 IPAM 集區。使用您在上一個步驟中取得的 IPAM 公有範圍 ID。

    aws ec2 create-ipam-pool --region us-east-1 --profile ipam-account --ipam-scope-id ipam-scope-0087d83896280b594 --description "top-level-pool" --locale us-west-2 --aws-service ec2 --address-family ipv4

    您會在輸出結果中看到 create-in-progress,表示正在建立集區。

    { "IpamPool": { "OwnerId": "123456789012", "IpamPoolId": "ipam-pool-0a03d430ca3f5c035", "IpamPoolArn": "arn:aws:ec2::123456789012:ipam-pool/ipam-pool-0a03d430ca3f5c035", "IpamScopeArn": "arn:aws:ec2::123456789012:ipam-scope/ipam-scope-0087d83896280b594", "IpamScopeType": "public", "IpamArn": "arn:aws:ec2::123456789012:ipam/ipam-090e48e75758de279", "Locale": "us-west-2", "PoolDepth": 1, "State": "create-in-progress", "Description": "top-level-pool", "AutoImport": false, "AddressFamily": "ipv4", "Tags": [], "AwsService": "ec2" } }
  2. 執行下列命令,直到輸出結果顯示 create-complete 的狀態為止。

    aws ec2 describe-ipam-pools --region us-east-1 --profile ipam-account

    下例的輸出結果顯示集區的狀態:您在下個步驟中將會需要 OwnerId

    { "IpamPools": [ { "OwnerId": "123456789012", "IpamPoolId": "ipam-pool-0a03d430ca3f5c035", "IpamPoolArn": "arn:aws:ec2::123456789012:ipam-pool/ipam-pool-0a03d430ca3f5c035", "IpamScopeArn": "arn:aws:ec2::123456789012:ipam-scope/ipam-scope-0087d83896280b594", "IpamScopeType": "public", "IpamArn": "arn:aws:ec2::123456789012:ipam/ipam-090e48e75758de279", "Locale": "us-west-2", "PoolDepth": 1, "State": "create-complete", "Description": "top-level-pool", "AutoImport": false, "AddressFamily": "ipv4", "Tags": [], "AwsService": "ec2" } ] }

步驟 4:使用 AWS RAM 共用 IPAM 集區

請按照本節中的步驟來使用 AWS RAM 共用 IPAM 集區,使其他 AWS 帳戶可將現有的 BYOIP IPV4 CIDR 傳輸至 IPAM 集區,並使用 IPAM 集區。此步驟應由 ipam-account 帳戶執行。

使用 AWS CLI 共用 IPv4 地址集區
  1. 檢視 IPAM 集區的可用 AWS RAM 許可。您需要使用兩個 ARN,才能完成本節中的步驟。

    aws ram list-permissions --region us-east-1 --profile ipam-account --resource-type ec2:IpamPool
    { "permissions": [ { "arn": "arn:aws:ram::aws:permission/AWSRAMDefaultPermissionsIpamPool", "version": "1", "defaultVersion": true, "name": "AWSRAMDefaultPermissionsIpamPool", "resourceType": "ec2:IpamPool", "status": "ATTACHABLE", "creationTime": "2022-06-30T13:04:29.335000-07:00", "lastUpdatedTime": "2022-06-30T13:04:29.335000-07:00", "isResourceTypeDefault": true }, { "arn": "arn:aws:ram::aws:permission/AWSRAMPermissionIpamPoolByoipCidrImport", "version": "1", "defaultVersion": true, "name": "AWSRAMPermissionIpamPoolByoipCidrImport", "resourceType": "ec2:IpamPool", "status": "ATTACHABLE", "creationTime": "2022-06-30T13:03:55.032000-07:00", "lastUpdatedTime": "2022-06-30T13:03:55.032000-07:00", "isResourceTypeDefault": false } ] }
  2. 建立資源共用,以讓 byoip-owner-account 帳戶將 BYOIP CIDR 匯入 IPAM。--resource-arns 值為您在上一節建立之 IPAM 集區的 ARN。--principals 值為 BYOIP CIDR 擁有者帳戶的帳戶 ID。--permission-arns 值為 AWSRAMPermissionIpamPoolByoipCidrImport 許可的 ARN。

    aws ram create-resource-share --region us-east-1 --profile ipam-account --name PoolShare2 --resource-arns arn:aws:ec2::123456789012:ipam-pool/ipam-pool-0a03d430ca3f5c035 --principals 111122223333 --permission-arns arn:aws:ram::aws:permission/AWSRAMPermissionIpamPoolByoipCidrImport
    { "resourceShare": { "resourceShareArn": "arn:aws:ram:us-east-1:123456789012:resource-share/7993758c-a4ea-43ad-be12-b3abaffe361a", "name": "PoolShare2", "owningAccountId": "123456789012", "allowExternalPrincipals": true, "status": "ACTIVE", "creationTime": "2023-04-28T07:32:25.536000-07:00", "lastUpdatedTime": "2023-04-28T07:32:25.536000-07:00" } }
  3. (選用) 如果您要允許 byoip-owner-account 帳戶在傳輸完成後,將 IPAM 集區的 IP 地址 CIDRS 配置給公有 IPv4 集區,請複製 AWSRAMDefaultPermissionsIpamPool 的 ARN,並建立第二個資源共用。--resource-arns 值為您在上一節建立之 IPAM 集區的 ARN。--principals 值為 BYOIP CIDR 擁有者帳戶的帳戶 ID。--permission-arns 值為 AWSRAMDefaultPermissionsIpamPool 許可的 ARN。

    aws ram create-resource-share --region us-east-1 --profile ipam-account --name PoolShare1 --resource-arns arn:aws:ec2::123456789012:ipam-pool/ipam-pool-0a03d430ca3f5c035 --principals 111122223333 --permission-arns arn:aws:ram::aws:permission/AWSRAMDefaultPermissionsIpamPool
    { "resourceShare": { "resourceShareArn": "arn:aws:ram:us-east-1:123456789012:resource-share/8d1e229b-2830-4cf4-8b10-19c889235a2f", "name": "PoolShare1", "owningAccountId": "123456789012", "allowExternalPrincipals": true, "status": "ACTIVE", "creationTime": "2023-04-28T07:31:25.536000-07:00", "lastUpdatedTime": "2023-04-28T07:31:25.536000-07:00" } }

由於您已在 RAM 中建立資源共用,因此 byoip-owner-account 帳戶現在可將 CIDR 移動至 IPAM。

步驟 5:將現有的 BYOIP IPV4 CIDR 傳輸至 IPAM

請依照本節中的步驟將現有的 BYOIP IPV4 CIDR 傳輸至 IPAM。此步驟應由 byoip-owner-account 帳戶執行。

重要

將 IPv4 地址範圍帶至 AWS 後,您可以使用範圍內的所有 IP 位址,包括第一個地址 (網路地址) 和最後一個地址 (廣播地址)。

若要將 BYOIP CIDR 傳輸至 IPAM,BYOIP CIDR 擁有者的 IAM 政策需具有下列許可:

  • ec2:MoveByoipCidrToIpam

  • ec2:ImportByoipCidrToIpam

注意

您可以針對此步驟使用 AWS 管理主控台 或 AWS CLI。

AWS Management Console
若要將 BYOIP CIDR 傳輸至 IPAM 集區:
  1. 請以 byoip-owner-account 帳戶的身分在 https://console.aws.amazon.com/ipam/ 開啟 IPAM 主控台。

  2. 在導覽窗格中選擇 Pools (集區)。

  3. 選擇此教學課程中所建立的最上層集區並共用之。

  4. 選擇動作 >傳輸 BYOIP CIDR

  5. 選擇傳輸 BYOIP CIDR

  6. 選擇您的 BYOIP CIDR。

  7. 選擇 Provision (佈建)。

Command line

使用下列 AWS CLI 命令,將 BYOIP CIDR 傳輸至使用 AWS CLI 的 IPAM 集區:

  1. 執行下列命令以傳輸 CIDR。確保 --region 值代表 BYOIP CIDR 的 AWS 區域。

    aws ec2 move-byoip-cidr-to-ipam --region us-west-2 --profile byoip-owner-account --ipam-pool-id ipam-pool-0a03d430ca3f5c035 --ipam-pool-owner 123456789012 --cidr 130.137.249.0/24

    輸出結果會顯示 CIDR 的佈建處於待定狀態。

    { "ByoipCidr": { "Cidr": "130.137.249.0/24", "State": "pending-transfer" } }
  2. 確保 CIDR 已傳輸。執行下列命令,直到輸出結果顯示 complete-transfer 的狀態為止。

    aws ec2 move-byoip-cidr-to-ipam --region us-west-2 --profile byoip-owner-account --ipam-pool-id ipam-pool-0a03d430ca3f5c035 --ipam-pool-owner 123456789012 --cidr 130.137.249.0/24

    下例的輸出結果即顯示狀態。

    { "ByoipCidr": { "Cidr": "130.137.249.0/24", "State": "complete-transfer" } }

步驟 6:檢視 IPAM 中的 CIDR

請依照本節中的步驟檢視 IPAM 中的 CIDR。此步驟應由 ipam-account 帳戶執行。

使用 AWS CLI 來檢視傳輸至 IPAM 集區的 BYOIP CIDR
  • 執行下列命令以檢視透過 IPAM 進行管理的配置。確保 --region 值代表 BYOIP CIDR 的 AWS 區域。

    aws ec2 get-ipam-pool-allocations --region us-west-2 --profile ipam-account --ipam-pool-id ipam-pool-0d8f3646b61ca5987

    該輸出結果會顯示 IPAM 中的分配情況。

    { "IpamPoolAllocations": [ { "Cidr": "130.137.249.0/24", "IpamPoolAllocationId": "ipam-pool-alloc-5dedc8e7937c4261b56dc3e3eb53dc46", "ResourceId": "ipv4pool-ec2-0019eed22a684e0b3", "ResourceType": "ec2-public-ipv4-pool", "ResourceOwner": "111122223333" } ] }

步驟 7:清除

請依照本節中的步驟移除您在本教學課程中建立的資源。此步驟應由 ipam-account 帳戶執行。

使用 AWS CLI 清除本教學課程所建立的資源
  1. 若要刪除 IPAM 集區共用資源,請執行下列命令,以取得第一個資源共用 ARN:

    aws ram get-resource-shares --region us-east-1 --profile ipam-account --name PoolShare1 --resource-owner SELF
    { "resourceShares": [ { "resourceShareArn": "arn:aws:ram:us-east-1:123456789012:resource-share/8d1e229b-2830-4cf4-8b10-19c889235a2f", "name": "PoolShare1", "owningAccountId": "123456789012", "allowExternalPrincipals": true, "status": "ACTIVE", "creationTime": "2023-04-28T07:31:25.536000-07:00", "lastUpdatedTime": "2023-04-28T07:31:25.536000-07:00", "featureSet": "STANDARD" } ] }
  2. 複製資源共用 ARN,並使用其刪除 IPAM 集區資源共用。

    aws ram delete-resource-share --region us-east-1 --profile ipam-account --resource-share-arn arn:aws:ram:us-east-1:123456789012:resource-share/8d1e229b-2830-4cf4-8b10-19c889235a2f
    { "returnValue": true }
  3. 如果您在 步驟 4:使用 AWS RAM 共用 IPAM 集區 中已建立其他資源共用,請重複前兩個步驟,以取得 PoolShare2 的第二個資源共用 ARN,並刪除第二個資源共用。

  4. 執行下列命令以取得 BYOIP CIDR 的配置 ID。確保 --region 值代表 BYOIP CIDR 的 AWS 區域。

    aws ec2 get-ipam-pool-allocations --region us-west-2 --profile ipam-account --ipam-pool-id ipam-pool-0d8f3646b61ca5987

    該輸出結果會顯示 IPAM 中的分配情況。

    { "IpamPoolAllocations": [ { "Cidr": "130.137.249.0/24", "IpamPoolAllocationId": "ipam-pool-alloc-5dedc8e7937c4261b56dc3e3eb53dc46", "ResourceId": "ipv4pool-ec2-0019eed22a684e0b3", "ResourceType": "ec2-public-ipv4-pool", "ResourceOwner": "111122223333" } ] }
  5. 釋出公有 IPv4 集區的 CIDR。當您執行本節中的命令時,--region 的值必須與 IPAM 的區域相符。

    此步驟必須由 byoip-owner-account 帳戶完成。

    aws ec2 deprovision-public-ipv4-pool-cidr --region us-east-1 --profile byoip-owner-account --pool-id ipv4pool-ec2-0019eed22a684e0b3 --cidr 130.137.249.0/24
  6. 再次檢視您的 BYOIP CIDR,並確保其中不再有已佈建的地址。當您執行本節中的命令時,--region 的值必須與 IPAM 的區域相符。

    此步驟必須由 byoip-owner-account 帳戶完成。

    aws ec2 describe-public-ipv4-pools --region us-east-1 --profile byoip-owner-account

    您會在輸出結果的公有 IPv4 集區中看到 IP 地址計數。

    { "PublicIpv4Pools": [ { "PoolId": "ipv4pool-ec2-0019eed22a684e0b3", "Description": "", "PoolAddressRanges": [], "TotalAddressCount": 0, "TotalAvailableAddressCount": 0, "NetworkBorderGroup": "us-east-1", "Tags": [] } ] }
  7. 執行下列命令以刪除最上層集區。

    aws ec2 delete-ipam-pool --region us-east-1 --profile ipam-account --ipam-pool-id ipam-pool-0a03d430ca3f5c035

    您可在輸出結果中看到刪除狀態。

    { "IpamPool": { "OwnerId": "123456789012", "IpamPoolId": "ipam-pool-0a03d430ca3f5c035", "IpamPoolArn": "arn:aws:ec2::123456789012:ipam-pool/ipam-pool-0a03d430ca3f5c035", "IpamScopeArn": "arn:aws:ec2::123456789012:ipam-scope/ipam-scope-0087d83896280b594", "IpamScopeType": "public", "IpamArn": "arn:aws:ec2::123456789012:ipam/ipam-090e48e75758de279", "Locale": "us-east-1", "PoolDepth": 2, "State": "delete-in-progress", "Description": "top-level-pool", "AutoImport": false, "Advertisable": true, "AddressFamily": "ipv4", "AwsService": "ec2" } }