Creates a policy-based route for a VPN gateway.
Usage notes
- Before you call this operation, we recommend that you learn about the match rules of policy-based routes and limits on policy-based routes. For more information, see Work with policy-based routes.
- Before you create a policy-based route, make sure that an IPsec-VPN connection is created. For more information, see CreateVpnConnection.
- CreateVpnPbrRouteEntry is an asynchronous operation. After you send the request, the route information is returned but the operation is still being performed in the background. You can call DescribeVpnGateway to query the status of a VPN gateway.
- If a VPN gateway is in the updating state, the policy-based route entry is being created.
- If a VPN gateway is in the active state, the policy-based route entry is created.
- You cannot repeatedly call CreateVpnPbrRouteEntry to create a policy-based route for a VPN gateway within the specified period of time.
Debugging
Request parameters
Parameter | Type | Required | Example | Description |
---|---|---|---|---|
Action | String | Yes | CreateVpnPbrRouteEntry | The operation that you want to perform. Set the value to CreateVpnPbrRouteEntry. |
RegionId | String | Yes | cn-hangzhou | The ID of the region where the VPN gateway is created. You can call the DescribeRegions operation to query the most recent region list. |
ClientToken | String | No | d7d24a21-f4ba-4454-9173-b3**** | The client token that is used to ensure the idempotence of the request. You can use the client to generate the value, but you must make sure that the value is unique among different requests. The client token can contain only ASCII characters. Note If you do not set this parameter, ClientToken is set to the value of RequestId. The value of RequestId may be different for each API request. |
VpnGatewayId | String | Yes | vpn-bp1a3kqjiiq9legfx**** | The ID of the VPN gateway. |
RouteSource | String | Yes | 192.168.1.0/24 | The source CIDR block of the policy-based route. |
RouteDest | String | Yes | 10.0.0.0/24 | The destination CIDR block of the policy-based route. |
NextHop | String | Yes | vco-bp15oes1py4i66rmd**** | The next hop of the policy-based route. |
Weight | Integer | Yes | 0 | The weight of the policy-based route. If you use the same VPN gateway to establish active/standby IPsec-VPN connections, you can configure route weights to specify which connection is active. A value of 100 specifies the active connection while a value of 0 specifies the standby connection. You can configure health checks to automatically check the connection connectivity. If the active connection is down, the standby connection automatically takes over. For more information, see CreateVpnConnection.
Note When you specify the active or standby connection, the primary route and secondary route must use the same source CIDR block and destination CIDR block. |
PublishVpc | Boolean | Yes | true | Specifies whether to advertise the policy-based route to a virtual private cloud (VPC) route table. Valid values:
|
Description | String | No | desctest | The description of the policy-based route. The description must be 1 to 100 characters in length, and cannot start with http:// or https://. |
OverlayMode | String | No | Ipsec | The tunneling protocol. Set the value to Ipsec. |
Priority | Integer | No | 10 | The priority of the policy-based route. Valid values: 1 to 100. Default value: 10. A smaller value indicates a higher priority. Note Only some VPN gateways in specific regions allow you to configure priorities for policy-based routes. For more information about the regions, see Match rules of policy-based routes. |
Response parameters
Parameter | Type | Example | Description |
---|---|---|---|
NextHop | String | vco-bp15oes1py4i66rmd**** | The next hop of the policy-based route. |
Weight | Integer | 0 | The weight of the policy-based route.
|
RouteDest | String | 10.0.0.0/24 | The destination CIDR block of the policy-based route. |
RequestId | String | 5BE01CD7-5A50-472D-AC14-CA181C5C03BE | The ID of the request. |
Description | String | desctest | The description of the policy-based route. |
State | String | normal | The status of the policy-based route. Valid values:
|
CreateTime | Long | 1492747187000 | The timestamp generated when the policy-based route was created. Unit: milliseconds. This value is a UNIX timestamp representing the number of milliseconds that have elapsed since the epoch time January 1, 1970, 00:00:00 UTC. |
OverlayMode | String | Ipsec | The tunneling protocol. The value is set to Ipsec, which indicates the IPsec tunneling protocol. |
RouteSource | String | 192.168.1.0/24 | The source CIDR block of the policy-based route. |
VpnInstanceId | String | vpn-bp1cmw7jh1nfe43m9**** | The ID of the VPN gateway. |
Priority | Integer | 10 | The priority of the policy-based route. |
Examples
Sample requests
http(s)://[Endpoint]/?Action=CreateVpnPbrRouteEntry
&RegionId=cn-hangzhou
&ClientToken=d7d24a21-f4ba-4454-9173-b3****
&VpnGatewayId=vpn-bp1a3kqjiiq9legfx****
&RouteSource=192.168.1.0/24
&RouteDest=10.0.0.0/24
&NextHop=vco-bp15oes1py4i66rmd****
&Weight=0
&PublishVpc=true
&Description=desctest
&OverlayMode=Ipsec
&Priority=10
&Common request parameters
Sample success responses
XML
format
HTTP/1.1 200 OK
Content-Type:application/xml
<CreateVpnPbrRouteEntryResponse>
<NextHop>vco-bp15oes1py4i66rmd****</NextHop>
<Weight>0</Weight>
<RouteDest>10.0.0.0/24</RouteDest>
<RequestId>5BE01CD7-5A50-472D-AC14-CA181C5C03BE</RequestId>
<Description>desctest</Description>
<State>normal</State>
<CreateTime>1492747187000</CreateTime>
<OverlayMode>Ipsec</OverlayMode>
<RouteSource>192.168.1.0/24</RouteSource>
<VpnInstanceId>vpn-bp1cmw7jh1nfe43m9****</VpnInstanceId>
<Priority>10</Priority>
</CreateVpnPbrRouteEntryResponse>
JSON
format
HTTP/1.1 200 OK
Content-Type:application/json
{
"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
HttpCode | Error code | Error message | Description |
---|---|---|---|
400 | Resource.QuotaFull | The quota of resource is full | The error message returned because the resource quota is exhausted. |
400 | VpnGateway.Configuring | The specified service is configuring. | The error message returned because the operation is not allowed when the specified service is being configured. Try again later. |
400 | VpnGateway.FinancialLocked | The specified service is financial locked. | The error message returned because the service is suspended due to overdue payments. Top up your account balance first. |
400 | VpnRouteEntry.AlreadyExists | The specified route entry is already exist. | The error message returned because the route already exists. |
400 | VpnRouteEntry.Conflict | The specified route entry has conflict. | The error message returned because the specified route conflicts with an existing route. |
400 | VpnRouteEntry.ConflictSSL | The specified route entry has conflict with SSL client. | The error message returned because the route conflicts with the SSL client. |
400 | VpnRouteEntry.BackupRoute | Validate backup route entry failed. | The error message returned because active/standby routes failed authentication. |
400 | VpnRouteEntry.InvalidWeight | Invalid route entry weight value. | The error message returned because the weight specified for the route is invalid. |
400 | InvalidNextHop.NotFound | The specified NextHop does not exist. | The error message returned because the specified next hop does not exist. |
400 | IllegalParam.RouteDest | The specified RouteDest is invalid | The error message returned because 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. | The error message returned because a route that points to another VPN gateway already exists in the same CIDR block in the route table of the VPC. |
400 | OperationFailed.InvalidCidrBlock | Operation failed because the specified network block is invalid. | The error message returned because the specified CIDR block is invalid. |
400 | OperationFailed.RouteConflict | Operation failed because there is already a route in VPC route table to a non-RI and non-VPN next hop on the same network block. | The error message returned because a route that points to another VPN gateway already exists in the same CIDR block in the route table of the VPC. |
400 | QuotaExceeded.VpnRouteEntry | The number of route entries to the VPN gateway in the VPC routing table has reached the quota limit. | The error message returned because the number of routes that point to the VPN gateway in the VPC route table reaches the upper limit. |
400 | VpnPbrRouteEntryPriority.NotSupport | Current version of the VPN does not support setting custom pbr route entry priority. | The error message returned because 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. | The error message returned because your requests are too frequent. Try again later. |
403 | Forbbiden.SubUser | User not authorized to operate on the specified resource as your account is created by another user. | The error message returned because you are unauthorized to perform this operation on the specified resource. Acquire the required permissions and try again. |
403 | Forbidden | User not authorized to operate on the specified resource. | The error message returned because you are unauthorized to perform this operation on the specified resource. Apply for the required permissions and try again. |
404 | InvalidVpnGatewayInstanceId.NotFound | The specified vpn gateway instance id does not exist. | The error message returned because the specified VPN gateway does not exist. Check whether the specified VPN gateway is valid. |
For a list of error codes, see Service error codes.