Estoy aprendiendo AWS CloudFormation. Ahora, estoy tratando de crear una plantilla para VPC y subredes. Ahora estoy creando una VPC.
Esta es mi plantilla:
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
Lo que no entiendo aquí es que CidrBlock. Ahora, lo especifiqué como 10.0.0.0/16. Para ser honesto, ¿cómo funciona exactamente? ¿Configurarlo como 10.0.0.0/16 siempre funcionará? ¿Para que es eso? ¿Cómo funciona exactamente ese rango de direcciones IP? ¿Cómo ayuda? ¿Cómo puedo determinar qué valor establecer para él? ¿Hay alguna fórmula para calcularlo? ¿Cómo? Vi una VPC existente en mi consola. La dirección IP es diferente.
Además, ¿cómo puedo calcular para dividirlo y asignarlo a subredes?
Estoy buscando una comprensión de la siguiente plantilla, especialmente Cidr para subredes.
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"
Hay demasiadas preguntas secundarias para responder a cada una de ellas individualmente aquí. En cambio, puedo escribir esto.
Los CIDR para VPC se seleccionan de tres rangos comunes :
10.0.0.0 - 10.255.255.255 (prefijo 10/8)
172.16.0.0 - 172.31.255.255 (prefijo 172.16/12)
192.168.0.0 - 192.168.255.255 (prefijo 192.168/16)
Estos rangos se utilizan porque no son enrutables a través de Internet.
10.0.0.0/16
: es el CIDR más utilizado para VPC. Esto le brinda 65535 direcciones IP privadas para trabajar en su VPC.
Por lo general , lo divide en subredes de tamaño /24
, cada una con 255 direcciones privadas. Por ejemplo:
Si usa el patrón anterior para VPC y subredes, no tiene que hacer ningún cálculo ni memorizar ningún formal. Por supuesto, si desea tener subredes más específicas o subredes de diferentes tamaños, debe aprender a calcular subredes. Hay muchos recursos y herramientas en Internet para eso. Los ejemplos son:
Actualizar
La plantilla usa la función intrística Fn::Cidr .
El constructo:
!Cidr [ !Ref VpcCidr, 12, 8 ]
Creará una lista de 12 rangos CIDR , de tamaño /24 (32-8). Cada subred tendrá 255 direcciones. El Select
se utiliza para elegir CIDR individuales de la lista:
!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
Pregunta 1:
10.0.0.0/16 significa que está creando una VPC que tiene 65 536 direcciones IP privadas disponibles internamente en su VPC, por lo que puede tener instancias EC2 con direcciones IP como 10.0.0.4, 10.0.0.5... así.
Nota: Hay 5 IPs reservadas por AWS
10.0.0.0: Dirección de red.
10.0.0.1: Reservado por AWS para el enrutador de VPC.
10.0.0.2: Reservado por AWS. La dirección IP del servidor DNS es la base del rango de la red VPC más dos. Para las VPC con varios bloques de CIDR, la dirección IP del servidor DNS se encuentra en el CIDR principal. También reservamos la base de cada rango de subred más dos para todos los bloques CIDR en la VPC. Para obtener más información, consulte Servidor DNS de Amazon.
10.0.0.3: Reservado por AWS para uso futuro.
10.0.0.255: dirección de transmisión de red. No admitimos la transmisión en una VPC, por lo tanto, reservamos esta dirección
Para calcular, puede usar sitios web para calcular y visualizar, como https://mxtoolbox.com/subnetcalculator.aspx (simplemente lo tomo al azar, no soy el autor de esto)
Por favor lea aquí para más detalles