# CfnSubnetProps

Properties for defining a `CfnSubnet`.

Extends: CfnSubnetProps
Used as props by: CfnSubnet

- Source: Generated code
- Type last changed: v2.227.0 · 21 Nov 2025

## Example

```ts
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import { aws_ec2 as ec2 } from 'aws-cdk-lib';

declare const privateDnsNameOptionsOnLaunch: any;
const cfnSubnetProps: ec2.CfnSubnetProps = {
  vpcId: 'vpcId',

  // the properties below are optional
  assignIpv6AddressOnCreation: false,
  availabilityZone: 'availabilityZone',
  availabilityZoneId: 'availabilityZoneId',
  cidrBlock: 'cidrBlock',
  enableDns64: false,
  enableLniAtDeviceIndex: 123,
  ipv4IpamPoolId: 'ipv4IpamPoolId',
  ipv4NetmaskLength: 123,
  ipv6CidrBlock: 'ipv6CidrBlock',
  ipv6IpamPoolId: 'ipv6IpamPoolId',
  ipv6Native: false,
  ipv6NetmaskLength: 123,
  mapPublicIpOnLaunch: false,
  outpostArn: 'outpostArn',
  privateDnsNameOptionsOnLaunch: privateDnsNameOptionsOnLaunch,
  tags: [{
    key: 'key',
    value: 'value',
  }],
};
```

## Properties

- `assignIpv6AddressOnCreation`: boolean | [IResolvable](/cdk/api/v2/docs/aws-cdk-lib.IResolvable.html) — Indicates whether a network interface created in this subnet receives an IPv6 address. The default value is `false` .

  If you specify `AssignIpv6AddressOnCreation` , you must also specify an IPv6 CIDR block.

- `availabilityZone`: string — The Availability Zone of the subnet.

  If you update this property, you must also update the `CidrBlock` property.

- `availabilityZoneId`: string — The AZ ID of the subnet.

- `cidrBlock`: string — The IPv4 CIDR block assigned to the subnet.

  If you update this property, we create a new subnet, and then delete the existing one.

- `enableDns64`: boolean | [IResolvable](/cdk/api/v2/docs/aws-cdk-lib.IResolvable.html) — Indicates whether DNS queries made to the Amazon-provided DNS Resolver in this subnet should return synthetic IPv6 addresses for IPv4-only destinations.

  > You must first configure a NAT gateway in a public subnet (separate from the subnet containing the IPv6-only workloads). For example, the subnet containing the NAT gateway should have a `0.0.0.0/0` route pointing to the internet gateway. For more information, see [Configure DNS64 and NAT64](https://docs.aws.amazon.com/vpc/latest/userguide/nat-gateway-nat64-dns64.html#nat-gateway-nat64-dns64-walkthrough) in the *Amazon Virtual Private Cloud User Guide* .

- `enableLniAtDeviceIndex`: number — Indicates the device position for local network interfaces in this subnet.

  For example, `1` indicates local network interfaces in this subnet are the secondary network interface (eth1).

- `ipv4IpamPoolId`: string — An IPv4 IPAM pool ID for the subnet.

- `ipv4NetmaskLength`: number — An IPv4 netmask length for the subnet.

- `ipv6CidrBlock`: string — The IPv6 CIDR block.

  If you specify `AssignIpv6AddressOnCreation` , you must also specify an IPv6 CIDR block.

- `ipv6IpamPoolId`: string — An IPv6 IPAM pool ID for the subnet.

- `ipv6Native`: boolean | [IResolvable](/cdk/api/v2/docs/aws-cdk-lib.IResolvable.html) — Indicates whether this is an IPv6 only subnet.

  For more information, see [Subnet basics](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Subnets.html#subnet-basics) in the *Amazon Virtual Private Cloud User Guide* .

- `ipv6NetmaskLength`: number — An IPv6 netmask length for the subnet.

- `mapPublicIpOnLaunch`: boolean | [IResolvable](/cdk/api/v2/docs/aws-cdk-lib.IResolvable.html) — Indicates whether instances launched in this subnet receive a public IPv4 address. The default value is `false` .

  AWS charges for all public IPv4 addresses, including public IPv4 addresses associated with running instances and Elastic IP addresses. For more information, see the *Public IPv4 Address* tab on the [VPC pricing page](https://docs.aws.amazon.com/vpc/pricing/) .

- `outpostArn`: string — The Amazon Resource Name (ARN) of the Outpost.

- `privateDnsNameOptionsOnLaunch`: any — The hostname type for EC2 instances launched into this subnet and how DNS A and AAAA record queries to the instances should be handled.

  For more information, see [Amazon EC2 instance hostname types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-naming.html) in the *Amazon Elastic Compute Cloud User Guide* .

  Available options:

  - EnableResourceNameDnsAAAARecord (true | false)
  - EnableResourceNameDnsARecord (true | false)
  - HostnameType (ip-name | resource-name)

- `tags`: [CfnTag](/cdk/api/v2/docs/aws-cdk-lib.CfnTag.html)[] — Any tags assigned to the subnet.

- `vpcId`: string | [IVPCRef](/cdk/api/v2/docs/aws-cdk-lib.interfaces.aws_ec2.IVPCRef.html) (required) — The ID of the VPC the subnet is in.

  If you update this property, you must also update the `CidrBlock` property.
