Creates a VPN policy-based route by calling the CreateVpnPbrRouteEntry operation.
Operation description
Before you begin
Before you create a policy-based route, make sure that you have created an IPsec-VPN connection. For more information, see CreateVpnConnection.
Before you create a policy-based route, we recommend that you understand the limits and matching rules of policy-based routes. For more information, see Use policy-based routes.
Limits
- For single-tunnel VPN gateways:
0.0.0.0/0 is not supported as the destination CIDR block of a policy-based routing entry.
CIDR blocks that overlap with 100.64.0.0/10 (including 100.64.0.0/10 itself, its subnets, and parent CIDR blocks that contain it) are not supported as the destination CIDR block of a policy-based routing entry.
- The CreateVpnPbrRouteEntry operation is asynchronous. After you send a request, the system returns the policy-based routing information, but the policy-based routing entry has not been created. The creation node is still running in the background. You can invoke the DescribeVpnGateway operation to query the instance status of the VPN gateway to determine the creation status of the policy-based routing entry:
If the VPN gateway instance is in the updating state, the policy-based routing entry is being created.
If the VPN gateway instance is in the active state, the policy-based routing entry is created.
The CreateVpnPbrRouteEntry operation does not support concurrent creation of policy-based routing entries for the same VPN gateway instance.
Try it now
Test
RAM authorization
|
Action |
Access level |
Resource type |
Condition key |
Dependent action |
|
vpc:CreateVpnPbrRouteEntry |
create |
*VpnGateway
|
None | None |
Request parameters
|
Parameter |
Type |
Required |
Description |
Example |
| RegionId |
string |
Yes |
The region ID of the VPN gateway instance. You can call the DescribeRegions operation to query the region ID. |
cn-hangzhou |
| ClientToken |
string |
No |
The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests. The client token can contain only ASCII characters. Note
If you do not specify this parameter, the system automatically uses the RequestId of the API request as the ClientToken. The RequestId may be different for each API request. |
d7d24a21-f4ba-4454-9173-b3**** |
| VpnGatewayId |
string |
Yes |
The ID of the VPN gateway instance. |
vpn-bp1a3kqjiiq9legfx**** |
| RouteSource |
string |
Yes |
The source CIDR block of the policy-based route. |
192.168.1.0/24 |
| RouteDest |
string |
Yes |
The destination CIDR block of the policy-based route. |
10.0.0.0/24 |
| NextHop |
string |
Yes |
The next hop of the policy-based route. |
vco-bp15oes1py4i66rmd**** |
| Weight |
integer |
Yes |
The weight of the policy-based routing entry. When you use the same VPN gateway instance to establish active/standby IPsec-VPN connections, you can specify the active and standby links by configuring the weight of the policy-based routing entry. A policy-based routing entry with a weight of 100 is the active link by default, and a policy-based routing entry with a weight of 0 is the standby link by default. You can configure health checks for the IPsec-VPN connection to automatically detect link connectivity. If the active link is down, the system automatically switches traffic to the standby link, ensuring high availability of the cloud connection. For more information, see CreateVpnConnection.
Note
|
0 |
| PublishVpc |
boolean |
Yes |
Specifies whether to publish the policy-based route to the VPC route table. Valid values:
|
true |
| Description |
string |
No |
The description of the policy-based route. The description must be 1 to 100 characters in length. |
desctest |
| OverlayMode |
string |
No |
The tunneling protocol. Set the value to Ipsec (IPsec tunnel protocol). |
Ipsec |
| Priority |
integer |
No |
The policy priority of the policy-based routing entry. Valid values: 1 to 100. Default value: 10. A smaller value indicates a higher policy priority for the routing entry. |
10 |
| DryRun |
boolean |
No |
Specifies whether to perform a dry run, without performing the actual request. Valid values:
|
false |
Response elements
|
Element |
Type |
Description |
Example |
|
object |
The response parameters. |
||
| NextHop |
string |
The next hop of the policy-based route. |
vco-bp15oes1py4i66rmd**** |
| Weight |
integer |
The weight of the policy-based route.
|
0 |
| RouteDest |
string |
The destination CIDR block of the policy-based route. |
10.0.0.0/24 |
| RequestId |
string |
The request ID. |
5BE01CD7-5A50-472D-AC14-CA181C5C03BE |
| Description |
string |
The description of the policy-based route. |
desctest |
| State |
string |
The publish status of the policy-based route.
|
normal |
| CreateTime |
integer |
The timestamp when the policy-based route was created. Unit: milliseconds. The timestamp follows the UNIX timestamp format, which represents the total number of milliseconds that have elapsed since January 1, 1970, 00:00:00 UTC. |
1492747187000 |
| OverlayMode |
string |
The tunneling protocol. Set the value to Ipsec (IPsec tunnel protocol). |
Ipsec |
| RouteSource |
string |
The source CIDR block of the policy-based route. |
192.168.1.0/24 |
| VpnInstanceId |
string |
The instance ID of the VPN gateway. |
vpn-bp1cmw7jh1nfe43m9**** |
| Priority |
integer |
The policy priority of the policy-based routing entry. |
10 |
Examples
Success response
JSON format
{
"NextHop": "vco-bp15oes1py4i66rmd****",
"Weight": 0,
"RouteDest": "10.0.0.0/24",
"RequestId": "5BE01CD7-5A50-472D-AC14-CA181C5C03BE",
"Description": "desctest",
"State": "normal",
"CreateTime": 1492747187000,
"OverlayMode": "Ipsec",
"RouteSource": "192.168.1.0/24",
"VpnInstanceId": "vpn-bp1cmw7jh1nfe43m9****",
"Priority": 10
}
Error codes
|
HTTP status code |
Error code |
Error message |
Description |
|---|---|---|---|
| 400 | Resource.QuotaFull | The quota of resource is full | |
| 400 | VpnGateway.FinancialLocked | The specified service is financial locked. | |
| 400 | VpnRouteEntry.AlreadyExists | The specified route entry is already exist. | The route already exists. |
| 400 | VpnRouteEntry.Conflict | The specified route entry has conflict. | Route conflicts exist. |
| 400 | VpnRouteEntry.ConflictSSL | The specified route entry has conflict with SSL client. | The route conflicts with the SSL client. |
| 400 | VpnRouteEntry.BackupRoute | Validate backup route entry failed. | Active/standby routes failed authentication. |
| 400 | VpnRouteEntry.InvalidWeight | Invalid route entry weight value. | The weight specified for the route is invalid. |
| 400 | InvalidNextHop.NotFound | The specified NextHop does not exist. | The specified next hop does not exist. |
| 400 | IllegalParam.RouteDest | The specified RouteDest is invalid | The destination address is invalid. |
| 400 | OperationFailed.RouteConflict | Operation failed because there is already a route in VPC route table to another VPN on the same network block. | Operation failed because there is already a route in VPC route table to another VPN on the same network block. |
| 400 | OperationFailed.InvalidCidrBlock | Operation failed because the specified network block is invalid. | The CIDR block is invalid. |
| 400 | QuotaExceeded.VpnRouteEntry | The number of route entries to the VPN gateway in the VPC routing table has reached the quota limit. | The number of route entries to the VPN gateway in the VPC routing table has reached the quota limit. |
| 400 | VpnPbrRouteEntryPriority.NotSupport | Current version of the VPN does not support setting custom pbr route entry priority. | The VPN gateway of the current version does not allow you to set route priorities. |
| 400 | TaskConflict | The operation is too frequent, please wait a moment and try again. | Your requests are too frequent. Try again later. |
| 400 | VpnTask.CONFLICT | Vpn task has conflict. | The VPN operation conflicts. Try again later. |
| 400 | VpnGateway.Configuring | The specified service is configuring. | |
| 400 | InternalError | The request processing has failed due to some unknown error, exception or failure. | |
| 400 | VpnRouteEntry.SrcDestWeightConflict | The VPN gateway does not support Policy-based routing with the same source CIDR, destination CIDR and weight. | VPN Gateway does not support policy-based routes that have the same source CIDR block, destination CIDR block, and weight. |
| 400 | VpnRouteEntry.SamePriorityPbrRoutePrefixOverlap | The source CIDR and destination CIDR of Policy-based routes with the same priority cannot overlap. | VPN Gateway does not support policy-based routes that have the same priority and overlapping source CIDR blocks and destination CIDR blocks. |
| 400 | VpnRouteEntry.SrcDestConflict | The VPN gateway does not support Policy-based routing with the same source CIDR and destination CIDR. | The source CIDR block and destination CIDR block of a policy-based route for a dual-tunnel VPN gateway cannot be the same. |
| 400 | CreatePbrRoutesQuotaFull.QuotaFull | The number of policy routes exceeds the quota limit. | The number of policy routes exceeds the quota limit. |
| 400 | InvalidCidrBlock.Malformed | Specified CIDR block is not valid. | |
| 400 | DryRunOperation | Request validation has been passed with DryRun flag set. | The request passed the dry run. |
| 400 | VpnPbrRouteEntry.NotSupport | Current version of the VPN does not support pbr route entry. | Current version of the VPN does not support pbr route entry. |
| 403 | Forbbiden.SubUser | User not authorized to operate on the specified resource as your account is created by another user. | |
| 403 | Forbidden | User not authorized to operate on the specified resource. | You do not have the permissions to manage the specified resource. Apply for the permissions and try again. |
| 404 | InvalidVpnGatewayInstanceId.NotFound | The specified vpn gateway instance id does not exist. |
See Error Codes for a complete list.
Release notes
See Release Notes for a complete list.