Skip to content

VpnAttachment

This class encapsulates and extends the ROS resource type ALIYUN::VPC::VpnAttachment, which is used to create an IPsec-VPN connection.

After you create the IPsec-VPN connection, you can associate the IPsec-VPN connection with a transit router.

Initializers

import com.aliyun.ros.cdk.vpc.VpnAttachment;
VpnAttachment.Builder.create(Construct scope, java.lang.String id, java.lang.Boolean enableResourcePropertyConstraint)
    .localSubnet(java.lang.String)
    .localSubnet(IResolvable)
    .remoteSubnet(java.lang.String)
    .remoteSubnet(IResolvable)
//  .autoConfigRoute(java.lang.Boolean)
//  .autoConfigRoute(IResolvable)
//  .bgpConfig(IResolvable)
//  .bgpConfig(BgpConfigProperty)
//  .customerGatewayId(java.lang.String)
//  .customerGatewayId(IResolvable)
//  .effectImmediately(java.lang.Boolean)
//  .effectImmediately(IResolvable)
//  .enableDpd(java.lang.Boolean)
//  .enableDpd(IResolvable)
//  .enableNatTraversal(java.lang.Boolean)
//  .enableNatTraversal(IResolvable)
//  .enableTunnelsBgp(java.lang.Boolean)
//  .enableTunnelsBgp(IResolvable)
//  .healthCheckConfig(IResolvable)
//  .healthCheckConfig(HealthCheckConfigProperty)
//  .ikeConfig(IResolvable)
//  .ikeConfig(IkeConfigProperty)
//  .ipsecConfig(IResolvable)
//  .ipsecConfig(IpsecConfigProperty)
//  .name(java.lang.String)
//  .name(IResolvable)
//  .networkType(java.lang.String)
//  .networkType(IResolvable)
//  .remoteCaCert(java.lang.String)
//  .remoteCaCert(IResolvable)
//  .resourceGroupId(java.lang.String)
//  .resourceGroupId(IResolvable)
//  .tunnelBandwidth(java.lang.String)
//  .tunnelBandwidth(IResolvable)
//  .tunnelOptionsSpecification(IResolvable)
//  .tunnelOptionsSpecification(java.util.List<IResolvable)
//  .tunnelOptionsSpecification(TunnelOptionsSpecificationProperty>)
    .build();
Name Type Description
scope com.aliyun.ros.cdk.core.Construct No description.
id java.lang.String No description.
enableResourcePropertyConstraint java.lang.Boolean No description.
localSubnet java.lang.String OR com.aliyun.ros.cdk.core.IResolvable Property localSubnet: The CIDR block on the VPC side.
remoteSubnet java.lang.String OR com.aliyun.ros.cdk.core.IResolvable Property remoteSubnet: The CIDR block on the data center side.
autoConfigRoute java.lang.Boolean OR com.aliyun.ros.cdk.core.IResolvable Property autoConfigRoute: Specifies whether to automatically configure routes.
bgpConfig com.aliyun.ros.cdk.core.IResolvable OR BgpConfigProperty Property bgpConfig: The Border Gateway Protocol (BGP) configuration.
customerGatewayId java.lang.String OR com.aliyun.ros.cdk.core.IResolvable Property customerGatewayId: The ID of the user gateway.
effectImmediately java.lang.Boolean OR com.aliyun.ros.cdk.core.IResolvable Property effectImmediately: Whether to delete the currently negotiated IPsec tunnel and re-initiate the negotiation.
enableDpd java.lang.Boolean OR com.aliyun.ros.cdk.core.IResolvable Property enableDpd: Specifies whether to enable the dead peer detection (DPD) feature.
enableNatTraversal java.lang.Boolean OR com.aliyun.ros.cdk.core.IResolvable Property enableNatTraversal: Specifies whether to enable NAT traversal.
enableTunnelsBgp java.lang.Boolean OR com.aliyun.ros.cdk.core.IResolvable Property enableTunnelsBgp: Support configuring this parameter when creating dual-tunnel mode IPsec-VPN connections.
healthCheckConfig com.aliyun.ros.cdk.core.IResolvable OR HealthCheckConfigProperty Property healthCheckConfig: This parameter is supported if you create an IPsec-VPN connection in single-tunnel mode.
ikeConfig com.aliyun.ros.cdk.core.IResolvable OR IkeConfigProperty Property ikeConfig: Configuration information for the first phase of negotiation.
ipsecConfig com.aliyun.ros.cdk.core.IResolvable OR IpsecConfigProperty Property ipsecConfig: Configuration information for the second phase negotiation.
name java.lang.String OR com.aliyun.ros.cdk.core.IResolvable Property name: The name of the IPsec-VPN connection.
networkType java.lang.String OR com.aliyun.ros.cdk.core.IResolvable Property networkType: The network type of the IPsec connection.
remoteCaCert java.lang.String OR com.aliyun.ros.cdk.core.IResolvable Property remoteCaCert: The peer CA certificate when a ShangMi (SM) VPN gateway is used to establish the IPsec-VPN connection.
resourceGroupId java.lang.String OR com.aliyun.ros.cdk.core.IResolvable Property resourceGroupId: The resource group ID to which the IPsec connection belongs.
tunnelBandwidth java.lang.String OR com.aliyun.ros.cdk.core.IResolvable Property tunnelBandwidth: Used to indicate the bandwidth specification of a single VPN tunnel, values: Standard (default value): Standard type, default bandwidth 1Gbps Large: Large type, default bandwidth 3Gbps.
tunnelOptionsSpecification com.aliyun.ros.cdk.core.IResolvable OR java.util.ListTunnelOptionsSpecificationProperty> Property tunnelOptionsSpecification: Configuration of tunnels.

scopeRequired

  • Type: com.aliyun.ros.cdk.core.Construct

idRequired

  • Type: java.lang.String

enableResourcePropertyConstraintOptional

  • Type: java.lang.Boolean

localSubnetRequired

  • Type: java.lang.String OR com.aliyun.ros.cdk.core.IResolvable

Property localSubnet: The CIDR block on the VPC side.

The CIDR block is used in Phase 2 negotiations. Separate multiple CIDR blocks with commas (,). Example: 192.168.1.0/24,192.168.2.0/24. The following routing modes are supported:

  • If you set LocalSubnet and RemoteSubnet to 0.0.0.0/0, the routing mode of the IPsec-VPN connection is set to Destination Routing Mode.
  • If you set LocalSubnet and RemoteSubnet to specific CIDR blocks, the routing mode of the IPsec-VPN connection is set to Protected Data Flows.

remoteSubnetRequired

  • Type: java.lang.String OR com.aliyun.ros.cdk.core.IResolvable

Property remoteSubnet: The CIDR block on the data center side.

This CIDR block is used in Phase 2 negotiations. Separate multiple CIDR blocks with commas (,). Example: 192.168.3.0/24,192.168.4.0/24. The following routing modes are supported:

  • If you set LocalSubnet and RemoteSubnet to 0.0.0.0/0, the routing mode of the IPsec-VPN connection is set to Destination Routing Mode.
  • If you set LocalSubnet and RemoteSubnet to specific CIDR blocks, the routing mode of the IPsec-VPN connection is set to Protected Data Flows.

autoConfigRouteOptional

  • Type: java.lang.Boolean OR com.aliyun.ros.cdk.core.IResolvable

Property autoConfigRoute: Specifies whether to automatically configure routes.

Valid values: true (default) false


bgpConfigOptional

Property bgpConfig: The Border Gateway Protocol (BGP) configuration.

This parameter is required when the VPN gateway has dynamic BGP enabled. Before you configure BGP, we recommend that you learn about how BGP works and its limits. For more information, see VPN Gateway supports BGP dynamic routing. We recommend that you use a private ASN to establish a connection with Alibaba Cloud over BGP. Refer to the relevant documentation for the private ASN range.


customerGatewayIdOptional

  • Type: java.lang.String OR com.aliyun.ros.cdk.core.IResolvable

Property customerGatewayId: The ID of the user gateway.


effectImmediatelyOptional

  • Type: java.lang.Boolean OR com.aliyun.ros.cdk.core.IResolvable

Property effectImmediately: Whether to delete the currently negotiated IPsec tunnel and re-initiate the negotiation.

Value: True: Negotiate immediately after the configuration is complete. False (default): Negotiate when traffic enters.


enableDpdOptional

  • Type: java.lang.Boolean OR com.aliyun.ros.cdk.core.IResolvable

Property enableDpd: Specifies whether to enable the dead peer detection (DPD) feature.

Valid values: true (default) The initiator of the IPsec-VPN connection sends DPD packets to verify the existence and availability of the peer. If no response is received from the peer within a specified period of time, the connection fails. ISAKMP SAs and IPsec SAs are deleted. The IPsec tunnel is also deleted. false: disables DPD. The IPsec initiator does not send DPD packets.


enableNatTraversalOptional

  • Type: java.lang.Boolean OR com.aliyun.ros.cdk.core.IResolvable

Property enableNatTraversal: Specifies whether to enable NAT traversal.

Valid values: true (default) After NAT traversal is enabled, the initiator does not check the UDP ports during IKE negotiations and can automatically discover NAT gateway devices along the VPN tunnel. false


enableTunnelsBgpOptional

  • Type: java.lang.Boolean OR com.aliyun.ros.cdk.core.IResolvable

Property enableTunnelsBgp: Support configuring this parameter when creating dual-tunnel mode IPsec-VPN connections.

Whether to enable BGP function for the tunnel. Values: true or false (default value).

Before adding BGP configuration, it is recommended that you first understand the working mechanism and usage limitations of the BGP dynamic routing function. For more information, please see Configuring BGP Dynamic Routing.


healthCheckConfigOptional

Property healthCheckConfig: This parameter is supported if you create an IPsec-VPN connection in single-tunnel mode.

The health check configurations:

  • HealthCheckConfig.enable: indicates whether the health check is enabled. Valid values: true and false (default).
  • HealthCheckConfig.dip: the destination IP address configured for health checks. Enter the IP address of the on-premises data center that the VPC can access through the IPsec connection.
  • HealthCheckConfig.sip: the source IP address configured for health checks. Enter the IP address of the VPC that the on-premises data center can access through the IPsec connection.
  • HealthCheckConfig.interval: the time interval of health check retries. Unit: seconds. Default value: 3.
  • HealthCheckConfig.retry: the maximum number of health check retries. Default value: 3.
  • HealthCheckConfig.Policy: specifies whether to withdraw published routes when health checks fail. Valid values:
  • revoke_route (default): withdraws published routes.
  • reserve_route: does not withdraw published routes.

ikeConfigOptional

Property ikeConfig: Configuration information for the first phase of negotiation.


ipsecConfigOptional

Property ipsecConfig: Configuration information for the second phase negotiation.


nameOptional

  • Type: java.lang.String OR com.aliyun.ros.cdk.core.IResolvable

Property name: The name of the IPsec-VPN connection.

The name must be 1 to 100 characters in length and cannot start with http:\/\/ or https:\/\/.


networkTypeOptional

  • Type: java.lang.String OR com.aliyun.ros.cdk.core.IResolvable

Property networkType: The network type of the IPsec connection.

Value: public|private.


remoteCaCertOptional

  • Type: java.lang.String OR com.aliyun.ros.cdk.core.IResolvable

Property remoteCaCert: The peer CA certificate when a ShangMi (SM) VPN gateway is used to establish the IPsec-VPN connection.

This parameter is required when an SM VPN gateway is used to establish the IPsec-VPN connection. You can ignore this parameter when a standard VPN gateway is used to create the IPsec-VPN connection.


resourceGroupIdOptional

  • Type: java.lang.String OR com.aliyun.ros.cdk.core.IResolvable

Property resourceGroupId: The resource group ID to which the IPsec connection belongs.

  • You can call the ListResourceGroups interface to query the resource group ID.
  • If you do not specify a resource group ID, the IPsec connection will belong to the default resource group after creation.

tunnelBandwidthOptional

  • Type: java.lang.String OR com.aliyun.ros.cdk.core.IResolvable

Property tunnelBandwidth: Used to indicate the bandwidth specification of a single VPN tunnel, values: Standard (default value): Standard type, default bandwidth 1Gbps Large: Large type, default bandwidth 3Gbps.


tunnelOptionsSpecificationOptional

  • Type: com.aliyun.ros.cdk.core.IResolvable OR java.util.ListTunnelOptionsSpecificationProperty>

Property tunnelOptionsSpecification: Configuration of tunnels.

  • When creating dual-tunnel mode IPsec-VPN connections, you can configure parameters under TunnelOptionsSpecification array.
  • When creating dual-tunnel mode IPsec-VPN connections, you must add two tunnels for the IPsec-VPN connection simultaneously to ensure the IPsec-VPN connection has link redundancy capability. Only two tunnels are supported under an IPsec-VPN connection.

Methods

Name Description
toString Returns a string representation of this construct.
synthesize Allows this construct to emit artifacts into the cloud assembly during synthesis.
addCondition No description.
addCount No description.
addDependency No description.
addResourceDesc No description.
applyRemovalPolicy No description.
fetchCondition No description.
fetchDependency No description.
fetchResourceDesc No description.
getAtt No description.
setMetadata No description.

toString

public java.lang.String toString()

Returns a string representation of this construct.

synthesize

public void synthesize(ISynthesisSession session)

Allows this construct to emit artifacts into the cloud assembly during synthesis.

This method is usually implemented by framework-level constructs such as Stack and Asset as they participate in synthesizing the cloud assembly.

sessionRequired

  • Type: com.aliyun.ros.cdk.core.ISynthesisSession

The synthesis session.


addCondition

public void addCondition(RosCondition condition)

conditionRequired

  • Type: com.aliyun.ros.cdk.core.RosCondition

addCount

public void addCount(java.lang.Number OR IResolvable count)

countRequired

  • Type: java.lang.Number OR com.aliyun.ros.cdk.core.IResolvable

addDependency

public void addDependency(Resource resource)

resourceRequired

  • Type: com.aliyun.ros.cdk.core.Resource

addResourceDesc

public void addResourceDesc(java.lang.String desc)

descRequired

  • Type: java.lang.String

applyRemovalPolicy

public void applyRemovalPolicy(RemovalPolicy policy)

policyRequired

  • Type: com.aliyun.ros.cdk.core.RemovalPolicy

fetchCondition

public RosCondition fetchCondition()

fetchDependency

public java.util.List<java.lang.String> fetchDependency()

fetchResourceDesc

public java.lang.String fetchResourceDesc()

getAtt

public IResolvable getAtt(java.lang.String name)

nameRequired

  • Type: java.lang.String

setMetadata

public void setMetadata(java.lang.String key, java.lang.Object value)

keyRequired

  • Type: java.lang.String

valueRequired

  • Type: java.lang.Object

Static Functions

Name Description
isConstruct Return whether the given object is a Construct.

isConstruct

import com.aliyun.ros.cdk.vpc.VpnAttachment;
VpnAttachment.isConstruct(java.lang.Object x)

Return whether the given object is a Construct.

xRequired

  • Type: java.lang.Object

Properties

Name Type Description
node com.aliyun.ros.cdk.core.ConstructNode The construct tree node associated with this construct.
env com.aliyun.ros.cdk.core.IResourceEnvironment The environment this resource belongs to.
ref java.lang.String No description.
stack com.aliyun.ros.cdk.core.Stack The stack in which this resource is defined.
resource com.aliyun.ros.cdk.core.RosResource No description.
attrInternetIp java.lang.String OR com.aliyun.ros.cdk.core.IResolvable Attribute InternetIp: The gateway IP address of the IPsec connection.
attrPeerVpnAttachmentConfig java.lang.String OR com.aliyun.ros.cdk.core.IResolvable Attribute PeerVpnAttachmentConfig: Peer vpc Attachment config.
attrVpnAttachmentId java.lang.String OR com.aliyun.ros.cdk.core.IResolvable Attribute VpnAttachmentId: ID of the IPsec attachment.
props VpnAttachmentProps No description.

nodeRequired

public ConstructNode getNode();
  • Type: com.aliyun.ros.cdk.core.ConstructNode

The construct tree node associated with this construct.


envRequired

public IResourceEnvironment getEnv();
  • Type: com.aliyun.ros.cdk.core.IResourceEnvironment

The environment this resource belongs to.

For resources that are created and managed by the CDK (generally, those created by creating new class instances like Role, Bucket, etc.), this is always the same as the environment of the stack they belong to; however, for imported resources (those obtained from static methods like fromRoleArn, fromBucketName, etc.), that might be different than the stack they were imported into.


refRequired

public java.lang.String getRef();
  • Type: java.lang.String

stackRequired

public Stack getStack();
  • Type: com.aliyun.ros.cdk.core.Stack

The stack in which this resource is defined.


resourceOptional

public RosResource getResource();
  • Type: com.aliyun.ros.cdk.core.RosResource

attrInternetIpRequired

public java.lang.Object getAttrInternetIp();
  • Type: java.lang.String OR com.aliyun.ros.cdk.core.IResolvable

Attribute InternetIp: The gateway IP address of the IPsec connection.


attrPeerVpnAttachmentConfigRequired

public java.lang.Object getAttrPeerVpnAttachmentConfig();
  • Type: java.lang.String OR com.aliyun.ros.cdk.core.IResolvable

Attribute PeerVpnAttachmentConfig: Peer vpc Attachment config.


attrVpnAttachmentIdRequired

public java.lang.Object getAttrVpnAttachmentId();
  • Type: java.lang.String OR com.aliyun.ros.cdk.core.IResolvable

Attribute VpnAttachmentId: ID of the IPsec attachment.


propsRequired

public VpnAttachmentProps getProps();