Filtering BGP Routes Based on AS Paths
Problem
You want to filter the BGP routes that you either send or receive based on AS Path information.
Solution
You can use AS Path filters, either inbound or outbound, to filter either the routes you send or the routes you receive, respectively. You must apply these filters to each peer separately:
Router1#configure terminal
Enter configuration commands, one per line. End with CNTL/Z. Router1(config)#ip as-path access-list
15
permit
Router1(config)#
^65501$
ip as-path access-list
25
permit
Router1(config)#
_65530_
ip as-path access-list
25
deny
Router1(config)#
_65531$
ip as-path access-list
25
permit
Router1(config)#
.*
router bgp
Router1(config-router)#
65500
neighbor
192.168.1.5
remote-as
Router1(config-router)#
65510
neighbor
192.168.1.5
filter-list
15
in
Router1(config-router)#neighbor
192.168.2.5
remote-as
Router1(config-router)#
65520
neighbor
192.168.2.5
filter-list
25
out
Router1(config-router)#exit
Router1(config)#end
Router1#
Discussion
One of the most common reasons for filtering routes based on the AS Path is to prevent AS transit, as we showed in Recipes 9.4 and 9.5. However, there are some other useful applications for AS Path filters. The example shown above contains two distinct filters, one of which applies to routes received inbound from one neighbor, and the other works on outbound routes sent to a second neighbor.
AS Path filters are constructed by using a subset of UNIX regular expressions. Regular expressions provide an extremely ...
Get Cisco IOS Cookbook, 2nd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.