Cisco routers implement a route policy using Route Maps. A route map can utilize access-lists, prefix-lists, as-path access lists, and community lists to create an effective route policy.
A route map consists of a series of statements that check to see if a route matches the policy, to permit or deny the route, and then possibly an additional series of commands to adjust the atrributes or metrics of those routes.
AS-path prepending is an example of one such use of route maps, as is the implementation of community string controlled local preference. Using a route map, you can lable routes you receive with special community strings so that you can modify the metrics, or filter the routes before announcing them.
A route map consists of the route map statement permitting or denying all routes matching the list it calls. Each route map statement contains a number. These numbers are used to place the steps of the route map in order.
For example:
route-map NAME permit 10 match access-list 22 set community 701:666 ! route-map NAME permit 20 match prefix-list NO-GO set metric 20000000 ! route-map NAME deny 30 match community 41
WHAT YOU CAN MATCH
You can match on any of the following list types:
LIST TYPE |
COMMAND |
MATCHES BY |
access-list | match ip address | IP address |
prefix-list | match prefix | IP address |
as-path-access-list | match as-path | AS-path |
community-list | match community | Community String |
You can also match on the following:
- Interface
- NEXT_HOP
- route-source
- metric
- route-type
- tag
WHAT YOU CAN SET
You can set any of the following metrics and attributes:
- LOCAL_PREF (affects routes within the AS)
- NEXT_HOP
- AS_PATH (prepend routes or modify the path)
- Multi Exit Discriminator (MED) (Affect the route an external AS uses to enter your network)
- Community strings (lable a route)
HOW A ROUTE MAP WORKS
ROUTE MAP <NAME> PERMIT nn
A route that meets the route map's MATCH criterion will have all SET commands applied to the route's metrics or attributes. The lists called by the MATCH statements can have PERMIT or DENY commands. Items matching the PERMIT statement will be SET, items matching a DENY will not be SET.
ROUTE MAP <NAME> DENY nn
A route not matching some line in the lists this route map's MATCH statements call will be permitted. The route map will exit to begin again and evaluate the next route.