gpt4 book ai didi

amazon-web-services - 用于确定或计算 AWS 中 VPC Cidr 的标准公式

转载 作者:行者123 更新时间:2023-12-04 00:16:50 25 4
gpt4 key购买 nike

我正在学习 AWS CloudFormation。现在,我正在尝试为 VPC 和子网创建模板。我现在正在创建 VPC。

这是我的模板:

AWSTemplateFormatVersion: '2010-09-09'
Description: "Template for Networks and IAM Roles"
Resources:
Vpc:
Type: AWS::EC2::VPC
Properties:
CidrBlock: '10.0.0.0/16'
EnableDnsHostnames: True
EnableDnsSupport: True

我在这里不明白的是CidrBlock。现在,我将其指定为 10.0.0.0/16。老实说,它到底是如何工作的。将其设置为 10.0.0.0/16 总是有效吗?那个有什么用?该 IP 地址范围究竟如何运作?它有什么帮助?我如何确定为其设置哪个值?有公式可以计算吗?如何?我在控制台中看到了一个现有的 VPC。 IP 地址不同。

另外,我如何计算将其拆分以分配给子网?

我正在寻求对以下模板的理解,尤其是子网的 Cidr。

AWSTemplateFormatVersion: '2010-09-09'
Description: "Template for Networks and IAM Roles"
Parameters:
VpcCidr:
Default: '10.0.0.0/16'
Type: String
AllowedPattern: '(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})/(\d{1,2})'
Resources:
Vpc:
Type: AWS::EC2::VPC
Properties:
CidrBlock: !Ref VpcCidr
EnableDnsHostnames: True
EnableDnsSupport: True
PublicSubnet1:
Type: AWS::EC2::Subnet
Properties:
VpcId: !Ref Vpc
CidrBlock: !Select [ 0, !Cidr [ !Ref VpcCidr, 12, 8 ] ]
MapPublicIpOnLaunch: True
AvailabilityZone: !Select
- 0
- Fn::GetAZs: !Ref "AWS::Region"
PublicSubnet2:
Type: AWS::EC2::Subnet
Properties:
VpcId: !Ref Vpc
CidrBlock: !Select [ 1, !Cidr [ !Ref VpcCidr, 12, 8 ] ]
MapPublicIpOnLaunch: True
AvailabilityZone: !Select
- 0
- Fn::GetAZs: !Ref "AWS::Region"

最佳答案

子问题太多,无法在这里单独回答。相反,我可以写这个。

VPC 的 CIDR 从三个 common ranges 中选择:

  • 10.0.0.0 - 10.255.255.255(10/8 前缀)

  • 172.16.0.0 - 172.31.255.255(172.16/12 前缀)

  • 192.168.0.0 - 192.168.255.255(192.168/16 前缀)

使用这些范围是因为它们在互联网上不可路由

10.0.0.0/16 - 是用于 VPC 的最常用 CIDR。这将为您提供 65535 个私有(private) IP 地址,供您在 VPC 中使用。

您通常将其划分为大小为 /24 的子网,每个子网有 255 个私有(private)地址。例如:

  • 10.0.1.0/24
  • 10.0.2.0/24
  • 10.0.3.0/24
  • 10.0.4.0/24

如果您对 VPC 和子网使用上述模式,则无需执行任何计算或记住任何形式。当然,如果你想要更具体的子网,或者不同大小的子网,你就必须学会如何计算子网。互联网上有许多资源和工具用于此目的。例子有:

更新

模板使用本质函数Fn::Cidr .

结构:

 !Cidr [ !Ref VpcCidr, 12, 8 ]

将创建一个包含 12 个 CIDR 范围的列表,大小为/24 (32-8)。每个子网将有 255 个地址。 Select 用于从列表中选择单个 CIDR:

!Select [ 0, !Cidr [ !Ref VpcCidr, 12, 8 ] ] # 10.0.0.0/24 
!Select [ 1, !Cidr [ !Ref VpcCidr, 12, 8 ] ] # 10.0.1.0/24
!Select [ 2, !Cidr [ !Ref VpcCidr, 12, 8 ] ] # 10.0.2.0/24
!Select [ 11, !Cidr [ !Ref VpcCidr, 12, 8 ] ] # 10.0.11.0/24

关于amazon-web-services - 用于确定或计算 AWS 中 VPC Cidr 的标准公式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63094271/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com