Previous page Next page

as-path

Configures the values to be used when a synthetic AS path is required.

Syntax
as-path {
 
          explicit <list> | 
 
          synthetic <number> <length> | 
 
          any-from-bgp 
 
        }
 
no as-path
 
Arguments
Prerequisites

Must be in engine or policy configuration mode (config-eng or config-eng-policy), which requires privileged-level access.

Default

synthetic

Description

When CNA asserts a route to an edge router for a prefix, it includes the AS path that was received when the prefix was announced by the BGP peer.

However, CNA does not always have AS path data for every prefix through every link, such as after a system restart, or for prefixes associated with a VPN which CNA knows about only because you added them to the configuration through the CLI. This no-available-path condition can also occur in a service provider environment where CNA is part of a mesh that includes upstream and downstream peerings.

When asserting such routes, CNA needs to construct an AS path using the values specified by the as-path command.

Use the explicit keyword and list argument if you know the precise AS path that should be used with the route. The AS path you specify will always be used. If a BGP-generated path exists, it will be overwritten.

Use the synthetic keyword with the number and length arguments if you want CNA to construct an AS path according to the following formula:

AS_path = link_AS + [ defined_AS [ defined_AS [ ... ] ] ] + origin_AS
 

 

...where:

If link_AS is equal to origin_AS, the synthetic AS path will have a length of one and the AS number will be set equal to the origin_AS value.

If link_AS and origin_AS are different, the number of instances of defined_AS will be equal to the value of the length argument.

If you do not specify a value for the length argument, CNA will set it to whatever value is required to make the AS path equal in length to the shortest path in all BGP-provided routes that have been obtained for the prefix since the most recent restart of the decision-maker process.

For example, if the shortest BGP path has a length of 2, then the value of the length argument will be 0 and the synthetic AS path will be set to a length of 2; if the shortest BGP path has a length of 3, then the value of the length argument would be 1 and the synthetic AS path will be set to a length of 3.

There is an exception, however: if BGP’s shortest AS path length for the prefix is 1 but CNA has determined that the BGP path is not the best performance route, then the synthetic AS path will not be set to the length of the shortest path. Instead, it will consist of link_AS and origin_AS and have a length of two.

The default length is intended to make CNA-asserted routes at least as attractive as the best BGP selection (other than the case where a BGP route has an AS path length of one and CNA asserts a different service provider).

This is useful when it is desired that the route propagates inside your network or to downstream networks.

NOTE: However, such behavior is potentially dangerous. If the CNA-asserted route were to leak beyond your network boundaries into the Internet at large, unwanted traffic could be attracted to your network instead of the network in which the prefix is located. If there is a chance that asserted routes could leak into the Internet beyond your private network--if, for example, you have elected to not propagate the no-export community attribute that CNA attaches to all of its asserted routes--you may want to set the number value higher to make asserted routes unattractive to outsiders.

Use the any-from-bgp keyword if you want CNA to use the AS path it has learned from any BGP peer. If there are multiple BGP-generated AS paths available because of multiple peerings, the CNA decision-maker process will arbitrarily choose the first AS path it finds in the CNA database. If no BGP-generated AS path is available, the route will not be asserted.

Use the no form of the command, which takes no arguments, to reset the AS path construction method to its default.


Previous page Next page