Amazon-Web-Services

資源處理程序返回消息:“CIDR ‘10.0.1.0/22’ 無效

  • August 31, 2022

我在嘗試使用 CloudFormation 中的子網創建 VPC 時遇到此錯誤。

Subnet  CREATE_FAILED   Resource handler returned message: "The CIDR '10.0.1.0/22' is invalid. (Service: Ec2, Status Code: 400, Request ID: 97af4b96-80dd-4092-910c-5d11e5b9ca72, Extended Request ID: null)" (RequestToken: bed19eb5-2309-589e-98bf-9dacc656462a, HandlerErrorCode: InvalidRequest)

這是我在 yaml 中的 VPC 和子網設置:

VPC:
   Type: 'AWS::EC2::VPC'
   Properties:
     CidrBlock: 10.0.2.0/24
   Metadata:
     'AWS::CloudFormation::Designer':
       id: 45e7f38e-c4b6-4a19-9d54-b74e36ef53de
 Subnet:
   Type: 'AWS::EC2::Subnet'
   Properties:
     VpcId: !Ref VPC
     CidrBlock: 10.0.1.0/22
   Metadata:
     'AWS::CloudFormation::Designer':
       id: 58cd6d64-1f79-4dbe-a981-c9238975f154

CIDR 塊覆蓋 1024個/22主機。因此,IP 地址塊必須以 1024 塊邊界開始。

10.0.1.0/22是屬於IP地址空間的IP地址10.0.0.1 - 10.0.3.254。因此10.0.1.0不是/22子網的有效起始地址。

一些有效的/22大小塊範例是:

10.0.0.0/22 10.0.4.0/22 10.0.8.0/22

消息是正確的。10.0.1.0 不是 /22 網路的有效基地址。最接近的合法值為 10.0.0.0 和 10.0.4.0。

考慮 10.0.1.0 和 /22 網路遮罩的二進製表示:

10.0.1.0 = 00001010 00000000 00000001 00000000
/22      = 11111111 11111111 11111100 00000000

您可以看到,在第三個八位字節的末尾,地址中設置了一個位,該位在遮罩中是明確的。這是非法的。

引用自:https://serverfault.com/questions/1109584