Fn::Cidr - AWS CloudFormation

Fn::Cidr

A função intrínseca Fn::Cidr retorna uma matriz de blocos de endereços CIDR. O número de blocos CIDR retornados depende do parâmetro count.

Declaração

JSON

{ "Fn::Cidr" : [ipBlock, contagem, cidrBits]}

YAML

Sintaxe para o nome da função completo:

Fn::Cidr: - ipBlock - contagem - cidrBits

Sintaxe para a forma resumida:

!Cidr [ ipBlock, contagem, cidrBits ]

Parâmetros

ipBlock

O bloco de endereços CIDR especificado pelo usuário a ser dividido em blocos CIDR menores.

contagem

O número de CIDRs para gerar. O intervalo válido é entre 1 e 256.

cidrBits

O número de bits de sub-rede para o CIDR. Por exemplo, se você especificar um valor "8" para esse parâmetro, criará um CIDR com uma máscara de "/ 24".

nota

Bits de sub-rede é o inverso de uma máscara de sub-rede. Para calcular os bits de host necessários para um determinado número de bits de sub-rede, subtraia os bits de sub-rede de 32 para IPv4 ou de 128 para IPv6.

Valor de retorno

Uma matriz de blocos de endereços CIDR.

Exemplo

Uso básico

Este exemplo cria 6 CIDRs com uma máscara de sub-rede "/ 27" dentro de um CIDR com uma máscara de "/24".

JSON

{ "Fn::Cidr" : [ "192.168.0.0/24", "6", "5"] }

YAML

!Cidr [ "192.168.0.0/24", 6, 5 ]

Criar uma VPC habilitada para IPv6

Este modelo de exemplo cria uma sub-rede habilitada para IPv6.

JSON

{ "Resources": { "ExampleVpc": { "Type": "AWS::EC2::VPC", "Properties": { "CidrBlock": "10.0.0.0/16" } }, "IPv6CidrBlock": { "Type": "AWS::EC2::VPCCidrBlock", "Properties": { "AmazonProvidedIpv6CidrBlock": true, "VpcId": { "Ref": "ExampleVpc" } } }, "ExampleSubnet": { "Type": "AWS::EC2::Subnet", "DependsOn": "IPv6CidrBlock", "Properties": { "AssignIpv6AddressOnCreation": true, "CidrBlock": { "Fn::Select": [ 0, { "Fn::Cidr": [ { "Fn::GetAtt": [ "ExampleVpc", "CidrBlock" ] }, 1, 8 ] } ] }, "Ipv6CidrBlock": { "Fn::Select": [ 0, { "Fn::Cidr": [ { "Fn::Select": [ 0, { "Fn::GetAtt": [ "ExampleVpc", "Ipv6CidrBlocks" ] } ] }, 1, 64 ] } ] }, "VpcId": { "Ref": "ExampleVpc" } } } } }

YAML

Resources: ExampleVpc: Type: AWS::EC2::VPC Properties: CidrBlock: 10.0.0.0/16 IPv6CidrBlock: Type: AWS::EC2::VPCCidrBlock Properties: AmazonProvidedIpv6CidrBlock: true VpcId: !Ref ExampleVpc ExampleSubnet: Type: AWS::EC2::Subnet DependsOn: IPv6CidrBlock Properties: AssignIpv6AddressOnCreation: true CidrBlock: !Select - 0 - !Cidr - !GetAtt ExampleVpc.CidrBlock - 1 - 8 Ipv6CidrBlock: !Select - 0 - !Cidr - !Select - 0 - !GetAtt ExampleVpc.Ipv6CidrBlocks - 1 - 64 VpcId: !Ref ExampleVpc

Funções compatíveis

Você pode usar as seguintes funções em uma função Fn::Cidr: