透過 AWS CLI 開始使用 IPAM
本教學課程引導您在單一 AWS 帳戶中,透過 AWS CLI 設定與使用 Amazon VPC IP 位址管理器 (IPAM)。到本教學課程結束時,您將已建立 IPAM、IP 位址集區階層,並將 CIDR 配置給 VPC。
必要條件
在開始本教學課程之前,請確認已滿足以下條件:
-
具有建立與管理 IPAM 資源之許可的 AWS 帳戶。
-
已安裝 AWS CLI,並已使用正確的憑證完成設定。如需有關安裝 AWS CLI 的資訊,請參閱 Installing or updating the latest version of the AWS CLI。如需有關設定 AWS CLI 的資訊,請參閱 Configuration basics。
-
基本了解 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 位址 CIDR 的 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:CreateIpam、ec2:CreateIpamPool及其他相關許可。 -
超過資源限制:依預設,每個帳戶只能建立一個 IPAM。如果您已經有 IPAM,則需要先將其刪除,然後再建立新的 IPAM,或使用現有的 IPAM。
-
CIDR 配置失敗:將 CIDR 佈建至集區時,請確保您嘗試佈建的 CIDR 不會與其他集區中的現有配置重疊。
-
API 請求逾時:如果您遇到 "RequestExpired" 錯誤,可能是因為網路延遲或時間同步問題。再次嘗試命令。
-
狀態錯誤:如果您收到 "IncorrectState" 錯誤,可能是因為您嘗試對未處於正確狀態的資源執行操作。等待資源完全建立或佈建,然後再繼續。
-
配置大小錯誤:如果您收到有關配置大小的 "InvalidParameterValue" 錯誤,請確保您請求的網路遮罩長度適合集區大小。例如,您無法從 /24 集區配置 /25 CIDR。
-
相依性違規:清除資源時,您可能會遇到 "DependencyViolation" 錯誤。這是因為資源彼此具有相依性。刪除集區之前,請務必以建立和取消佈建 CIDR 的相反順序刪除資源。
清除資源
完成本教學課程後,您應該清理所建立的資源,以避免產生不必要的費用。
-
刪除 VPC
aws ec2 delete-vpc --vpc-id vpc-0abcd1234 -
取消佈建開發集區的 CIDR:
aws ec2 deprovision-ipam-pool-cidr --ipam-pool-id ipam-pool-2abcd1234 --cidr 10.0.0.0/24 -
刪除開發集區:
aws ec2 delete-ipam-pool --ipam-pool-id ipam-pool-2abcd1234 -
取消佈建區域集區的 CIDR:
aws ec2 deprovision-ipam-pool-cidr --ipam-pool-id ipam-pool-1abcd1234 --cidr 10.0.0.0/16 -
刪除區域集區:
aws ec2 delete-ipam-pool --ipam-pool-id ipam-pool-1abcd1234 -
取消佈建頂層集區的 CIDR:
aws ec2 deprovision-ipam-pool-cidr --ipam-pool-id ipam-pool-0abcd1234 --cidr 10.0.0.0/8 -
刪除頂層集區:
aws ec2 delete-ipam-pool --ipam-pool-id ipam-pool-0abcd1234 -
刪除 IPAM:
aws ec2 delete-ipam --ipam-id ipam-0abcd1234
將所有 ID 取代為實際的資源 ID。
注意
在這些操作之間,您可能需要等待資源完全刪除,然後再繼續進行下一個步驟。如果您遇到相依性違規,請等待幾秒鐘,然後再試一次。
後續步驟
現在您已了解如何透過 AWS CLI 建立與使用 IPAM,您可能想要探索更進階的功能:
-
規劃 IP 地址佈建 – 了解如何有效地規劃 IP 位址空間
-
依資源監控 CIDR 使用情況 – 了解如何監控 IP 位址用量
-
透過 AWS RAM 共用 IPAM 集區 – 了解如何跨 AWS 帳戶共用 IPAM 集區
-
將 IPAM 與 AWS Organizations 中的帳戶整合 – 探索如何在組織中使用 IPAM