使用 CLI AWS 開始使用 IPAM - Amazon Virtual Private Cloud

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

使用 CLI AWS 開始使用 IPAM

本教學課程將引導您完成設定和使用 Amazon VPC IP Address Manager (IPAM) 與使用單一 AWS 帳戶的 AWS CLI 的程序。在本教學課程結束時,您將建立 IPAM、建立 IP 地址集區的階層,並將 CIDR 配置給 VPC。

先決條件

開始本教學課程之前,請確定您已:

  • 具有建立和管理 IPAM 資源許可 AWS 的帳戶。

  • CLI AWS 已安裝並使用適當的登入資料設定。如需安裝 AWS CLI 的資訊,請參閱安裝或更新最新版本的 AWS CLI。如需設定 CLI AWS 的資訊,請參閱組態基本概念

  • 對 IP 定址和 CIDR 表示法的基本了解。

  • Amazon VPC 概念的基本知識。

  • 完成教學課程約需 30 分鐘。

建立 IPAM

第一步是使用操作區域建立 IPAM。IPAM 可協助您規劃、追蹤和監控 AWS 工作負載的 IP 地址。

使用 us-east-1 和 us-west-2 中的操作區域建立 IPAM:

aws ec2 create-ipam \ --description "My IPAM" \ --operating-regions RegionName=us-east-1 RegionName=us-west-2

此命令會建立 IPAM,並使其能夠管理指定區域中的 IP 地址。操作區域是允許 IPAM 管理 IP 地址 CIDRs AWS 的區域。

確認您的 IPAM 已建立:

aws ec2 describe-ipams

請記下輸出的 IPAM ID,因為後續步驟會需要它。

等待 IPAM 完全建立並可用 (約 20 秒):

sleep 20

取得 IPAM 範圍 ID

當您建立 IPAM 時, AWS 會自動建立私有和公有範圍。在本教學課程中,我們將使用私有範圍。

擷取 IPAM 詳細資訊並擷取私有範圍 ID:

aws ec2 describe-ipams --ipam-id ipam-0abcd1234

ipam-0abcd1234 將 取代為您實際的 IPAM ID。

從輸出中,識別並記下 PrivateDefaultScopeId 欄位的私有範圍 ID。這看起來會像是 ipam-scope-0abcd1234

建立頂層 IPv4 集區

現在,讓我們在私有範圍內建立頂層集區。此集區將做為階層中所有其他集區的父集區。

建立最上層 IPv4 集區:

aws ec2 create-ipam-pool \ --ipam-scope-id ipam-scope-0abcd1234 \ --address-family ipv4 \ --description "Top-level pool"

ipam-scope-0abcd1234 將 取代為您實際的私有範圍 ID。

等待集區完全建立並可用:

aws ec2 describe-ipam-pools --ipam-pool-ids ipam-pool-0abcd1234 --query 'IpamPools[0].State' --output text

ipam-pool-0abcd1234 將 取代為您實際的頂層集區 ID。在繼續create-complete之前,狀態應該是 。

集區可用後,為其佈建 CIDR 區塊:

aws ec2 provision-ipam-pool-cidr \ --ipam-pool-id ipam-pool-0abcd1234 \ --cidr 10.0.0.0/8

等待 CIDR 完全佈建:

aws ec2 get-ipam-pool-cidrs --ipam-pool-id ipam-pool-0abcd1234 --query "IpamPoolCidrs[?Cidr=='10.0.0.0/8'].State" --output text

在繼續provisioned之前,狀態應該是 。

建立區域 IPv4 集區

接著,在頂層集區中建立區域集區。此集區將專屬於特定 AWS 區域。

建立區域 IPv4 集區:

aws ec2 create-ipam-pool \ --ipam-scope-id ipam-scope-0abcd1234 \ --source-ipam-pool-id ipam-pool-0abcd1234 \ --locale us-east-1 \ --address-family ipv4 \ --description "Regional pool in us-east-1"

ipam-scope-0abcd1234 將 取代為您實際的私有範圍 ID,並將 ipam-pool-0abcd1234取代為您的最上層集區 ID。

等待區域集區完全建立並可用:

aws ec2 describe-ipam-pools --ipam-pool-ids ipam-pool-1abcd1234 --query 'IpamPools[0].State' --output text

ipam-pool-1abcd1234 將 取代為您實際的區域集區 ID。在繼續create-complete之前,狀態應該是 。

集區可用後,為其佈建 CIDR 區塊:

aws ec2 provision-ipam-pool-cidr \ --ipam-pool-id ipam-pool-1abcd1234 \ --cidr 10.0.0.0/16

等待 CIDR 完全佈建:

aws ec2 get-ipam-pool-cidrs --ipam-pool-id ipam-pool-1abcd1234 --query "IpamPoolCidrs[?Cidr=='10.0.0.0/16'].State" --output text

在繼續provisioned之前,狀態應該是 。

建立開發 IPv4 集區

現在,在區域集區中建立開發集區。此集區將用於開發環境。

建立開發 IPv4 集區:

aws ec2 create-ipam-pool \ --ipam-scope-id ipam-scope-0abcd1234 \ --source-ipam-pool-id ipam-pool-1abcd1234 \ --locale us-east-1 \ --address-family ipv4 \ --description "Development pool"

ipam-scope-0abcd1234 將 取代為您實際的私有範圍 ID,並將 ipam-pool-1abcd1234取代為您的區域集區 ID。

注意:請務必包含 --locale 參數,以符合父集區的地區設定。

等待開發集區完全建立並可用:

aws ec2 describe-ipam-pools --ipam-pool-ids ipam-pool-2abcd1234 --query 'IpamPools[0].State' --output text

將 取代ipam-pool-2abcd1234為您實際的開發集區 ID。在繼續create-complete之前,狀態應該是 。

集區可用後,為其佈建 CIDR 區塊:

aws ec2 provision-ipam-pool-cidr \ --ipam-pool-id ipam-pool-2abcd1234 \ --cidr 10.0.0.0/24

等待 CIDR 完全佈建:

aws ec2 get-ipam-pool-cidrs --ipam-pool-id ipam-pool-2abcd1234 --query "IpamPoolCidrs[?Cidr=='10.0.0.0/24'].State" --output text

在繼續provisioned之前,狀態應該是 。

使用 IPAM 集區 CIDR 建立 VPC

最後,建立使用來自 IPAM 集區的 CIDR 的 VPC。這示範如何使用 IPAM 將 IP 地址空間配置給 AWS 資源。

使用 IPAM 集區 CIDR 建立 VPC:

aws ec2 create-vpc \ --ipv4-ipam-pool-id ipam-pool-2abcd1234 \ --ipv4-netmask-length 26 \ --tag-specifications 'ResourceType=vpc,Tags=[{Key=Name,Value=IPAM-VPC}]'

將 取代ipam-pool-2abcd1234為您實際的開發集區 ID。

--ipv4-netmask-length 26 參數指定您希望從集區配置 /26 CIDR 區塊 (64 個 IP 地址)。系統會選擇此網路遮罩長度,以確保其小於集區的 CIDR 區塊 (/24)。

確認您的 VPC 已建立:

aws ec2 describe-vpcs --filters "Name=tag:Name,Values=IPAM-VPC"

驗證 IPAM 集區配置

檢查 CIDR 是否已從您的 IPAM 集區配置:

aws ec2 get-ipam-pool-allocations \ --ipam-pool-id ipam-pool-2abcd1234

將 取代ipam-pool-2abcd1234為您實際的開發集區 ID。

此命令會顯示來自指定 IPAM 集區的所有配置,包括您剛建立的 VPC。

故障診斷

以下是使用 IPAM 時可能遇到的一些常見問題:

  • 許可錯誤:確保您的 IAM 使用者或角色具有建立和管理 IPAM 資源所需的許可。您可能需要 ec2:CreateIpamec2:CreateIpamPool和其他相關許可。

  • 超過資源限制:根據預設,每個帳戶只能建立一個 IPAM。如果您已經有 IPAM,則需要在建立新的 IPAM 或使用現有的 IPAM 之前將其刪除。

  • CIDR 配置失敗:將 CIDRs至集區時,請確定您嘗試佈建的 CIDR 不會與其他集區中的現有配置重疊。

  • API 請求逾時:如果您遇到「RequestExpired」錯誤,可能是因為網路延遲或時間同步問題。再次嘗試 命令。

  • 狀態錯誤:如果您收到「IncorrectState」錯誤,可能是因為您嘗試對未處於正確狀態的資源執行 操作。等待資源完全建立或佈建,然後再繼續。

  • 配置大小錯誤:如果您收到有關配置大小的「InvalidParameterValue」錯誤,請確定您請求的網路遮罩長度適合集區大小。例如,您無法從 /24 集區配置 /25 CIDR。

  • 相依性違規:清除資源時,您可能會遇到「DependencyViolation」錯誤。這是因為資源彼此具有相依性。刪除集區之前,請務必以建立和取消佈建 CIDRs的相反順序刪除資源。

清除資源

完成本教學課程後,您應該清除您建立的資源,以避免產生不必要的費用。

  1. 刪除 VPC

    aws ec2 delete-vpc --vpc-id vpc-0abcd1234
  2. 從開發集區取消佈建 CIDR:

    aws ec2 deprovision-ipam-pool-cidr --ipam-pool-id ipam-pool-2abcd1234 --cidr 10.0.0.0/24
  3. 刪除開發集區:

    aws ec2 delete-ipam-pool --ipam-pool-id ipam-pool-2abcd1234
  4. 從區域集區取消佈建 CIDR:

    aws ec2 deprovision-ipam-pool-cidr --ipam-pool-id ipam-pool-1abcd1234 --cidr 10.0.0.0/16
  5. 刪除區域集區:

    aws ec2 delete-ipam-pool --ipam-pool-id ipam-pool-1abcd1234
  6. 從頂層集區取消佈建 CIDR:

    aws ec2 deprovision-ipam-pool-cidr --ipam-pool-id ipam-pool-0abcd1234 --cidr 10.0.0.0/8
  7. 刪除最上層集區:

    aws ec2 delete-ipam-pool --ipam-pool-id ipam-pool-0abcd1234
  8. 刪除 IPAM:

    aws ec2 delete-ipam --ipam-id ipam-0abcd1234

以您的實際資源 IDs 取代所有 IDs。

注意

您可能需要在這些操作之間等待,才能完全刪除資源,然後再繼續進行下一個步驟。如果您遇到相依性違規,請等待幾秒鐘,然後再試一次。

後續步驟

現在您已了解如何透過 CLI AWS 建立和使用 IPAM,您可能想要探索更進階的功能: