Networking Guide
Chapter 5, Configuring Internet Protocol (IP) routing

Matching AS paths in gated

Matching AS paths in gated

An AS path is a list of autonomous systems that routing information has passed through to get to this router and an indicator of the origin of the AS path. This information can be used to prefer one path to a destination network over another. The primary method for doing this with gated is to specify a list of patterns to be applied to AS paths when importing and exporting routes.

Each autonomous system that a route passes through prepends its AS number to the beginning of the AS path.

The origin information details the completeness of AS path information. An origin of igp indicates the route was learned from an interior routing protocol and is most likely complete. An origin of egp indicates the route was learned from an exterior routing protocol that does not support AS paths (EGP, for example) and the path is most likely not complete. When the path information is definitely not complete, an origin of incomplete is used.

AS path regular expressions are defined in RFC 1164, section 4.2.

An AS path is matched using the following syntax:

   aspath aspath_regexp origin [ any | igp | egp | incomplete ]
This specifies that an AS matching the aspath_regexp with the specified origin is matched.

Technically, an AS path regular expression is a regular expression with the alphabet being the set of AS numbers. An AS path regular expression is composed of one or more AS path expressions. An AS path expression is composed of AS path terms and AS path operators.

An AS path term is one of the following three objects:

   autonomous_system
   ( aspath_regexp )

autonomous_system
any valid autonomous system number, from one through 65534 inclusive.

.
matches any autonomous system number.

( aspath_regexp )
parentheses group subexpressions -- an operator, such as ``'' or ``?'' works on a single element or on a regular expression enclosed in parentheses.

An AS path operator is one of the following:
   aspath_term {m,n}
   aspath_term {m}
   aspath_term {m,}
   aspath_term 
   aspath_term +
   aspath_term ?
   aspath_term | aspath_term

aspath_term {m,n}
A regular expression followed by {m,n} (where m and n are both nonnegative integers and m <= n) means at least m and at most n repetitions.

aspath_term {m}
A regular expression followed by {m} (where m is a positive integer) means exactly m repetitions.

aspath_term {m,}
A regular expression followed by {m,} (where m is a positive integer) means m or more repetitions.

aspath_term
An AS path term followed by means zero or more repetitions. This is shorthand for {0,}.

aspath_term +
A regular expression followed by + means one or more repetitions. This is shorthand for {1,}.

aspath_term ?
A regular expression followed by ? means zero or one repetition. This is shorthand for {0,1}.

aspath_term | aspath_term
Matches the AS term on the left or the AS term on the right.