An access list is a sequential collection of permit and deny conditions that you can use to filter inbound or outbound routes. You can use different kinds of access lists to filter routes based on either the prefix or the AS path.
To filter routes based on the prefix, you can do any of the following:
The router compares each route's prefix against the conditions in the list or tree, one-by-one. If the first match is for a permit condition, the route is accepted or passed. If the first match is for a deny condition, the route is rejected or blocked. The order of conditions is critical because testing stops with the first match. If no conditions match, the router rejects or blocks the address; that is, the last action of any list is an implicit deny condition for all routes. The implicit rule is displayed by show access-list and show config commands.
You cannot selectively place conditions in or remove conditions from an access list, prefix list, or prefix tree. You can insert a new condition only at the end of a list or tree.
The following example shows how the implicit deny condition appears:
- host1(config)#access-list 1 permit 10.10.10.1
0.0.0.255
- host1(config)#access-list 2 permit 10.25.25.1
0.0.0.255
- host1(config)#access-list 3 permit any any
- host1(config)#show access-list
- IP Access List 1:
- permit ip 10.10.10.1 0.0.0.255 any
- deny ip any any
- IP Access List 2:
- permit ip 10.25.25.1 0.0.0.255 any
- deny ip any any
- IP Access List 3:
- permit ip any any
The implicit deny rule does not appear in the display for access list 3, because any prefix matches access list 3.
The following example demonstrates how to use a route map and an access list to redistribute static routes to IS-IS.
- host1(config)#ip route 20.20.20.0 255.255.255.0
192.168.1.0
- host1(config)#ip route 20.20.21.0 255.255.255.0
192.168.2.0
- host1(config)#ip route 20.21.0.0 255.255.255.0
192.168.30.0
- host1(config)#access-list fltra permit 20.20.0.0
0.0.255.255
- host1(config)#route-map 1
- host1(config-route-map)#match ip address fltra
- host1(config-route-map)#set metric-type internal
- host1(config)#router isis testnet
- host1(config-router)#redistribute static route-map
1
host1#show isis database detail l2 IS-IS Level-2 Link State Database LSPID LSP Seq Num LSP Checksum LSP Holdtime ATT/P/OL 0000.0000.6666.00-00 0x000002B7 0x3E1F 1198 0/0/0 Area Address: 47.0005.80FF.F800.0000.0001.0001 NLPID: 0xcc IP Address: 192.168.1.105 Metric: 10 IS 0000.0000.6666.01 Metric: 10 IS 0000.0000.3333.00 Metric: 10 IS 0000.0000.7777.00 Metric: 30 IP 20.20.20.0 255.255.255.0 Metric: 30 IP 20.20.21.0 255.255.255.0
The following example demonstrates how to use an access list to filter routes advertised to a BGP device. Consider the network structure in Figure 2.
Figure 2: Filtering with Access Lists

The following commands configure router Boston to apply access list reject1 to routes inbound from router SanJose. Access list reject1 rejects routes matching 172.24.160.0/19.
- host1(config)#router bgp 17
- host1(config-router)#neighbor 10.5.5.4 remote-as
873
- host1(config-router)#neighbor 10.5.5.4 distribute-list
reject1 in
- host1(config-router)#exit
- host1(config)#access-list reject1 permit 172.24.48.0
0.0.255
- host1(config)#access-list reject1 deny 172.24.160.0
0.0.0.255
- host1(config)#access-list reject1 permit 172.24.24.0
0.0.0.255
You can use a filter list to filter incoming and outgoing routes based on the value of the AS-path attribute. Whenever a BGP route passes through an AS, BGP prepends its AS number to the AS-path attribute. The AS-path attribute is the list of ASs that a route has passed through to reach a destination.
To filter routes based on the AS path, define the access list with the ip as-path access-list command, and apply the list to routes received from or passed to a neighbor with the neighbor filter-list command. AS-path access lists use regular expressions to describe the AS path to be matched. A regular expression uses special characters—often referred to as metacharacters—to define a pattern that is compared with an input string. For a full discussion of regular expressions, with examples of how to use them, see Using Regular Expressions.
The router compares each route's AS path with each condition in the access list. If the first match is for a permit condition, the route is accepted or passed. If the first match is for a deny condition, the route is rejected or blocked. The order of conditions is critical because testing stops with the first match. If no conditions match, the router rejects or blocks the route; that is, the last action of any list is an implicit deny condition for all routes.
You cannot selectively place conditions in or remove conditions from an AS-path access list. You can insert a new condition only at the end of an AS-path access list.
Consider the network structure in Figure 3.
Suppose you want router London to behave in the following way:
Figure 3: Filtering with AS-Path Access Lists

The following commands configure router London to apply filters based on AS path to routes received from router Berlin and router Paris and to routes forwarded to router Madrid.
- host1(config)#router bgp 47
- host1(config-router)#neighbor 10.2.9.2 remote-as
621
- host1(config-router)#neighbor 10.2.9.2 filter-list
1 in
- host1(config-router)#neighbor 10.2.8.2 remote-as
11
- host1(config-router)#neighbor 10.2.8.2 filter-list
2 in
- host1(config-router)#neighbor 10.2.7.2 remote-as
435
- host1(config-router)#neighbor 10.2.7.2 filter-list
3 out
- host1(config-router)#exit
- host1(config)#ip as-path access-list 1 deny ^11
- host1(config)#ip as-path access-list 1 permit .*
- host1(config)#ip as-path access-list 2 deny ^621
- host1(config)#ip as-path access-list 2 permit .*
- host1(config)#ip as-path access-list 3 deny [621 11]
- host1(config)#ip as-path access-list 3 permit .*
AS-path access list 1 is applied to routes that router London receives from router Paris. Router London rejects routes with the AS path 11 621 or 11 282 621.
AS-path access list 2 is applied to routes that router London receives from router Berlin. Router London rejects routes with the AS path 621 11 or 621 282 11.
Router London accepts routes with the AS path 282 11, 282 621, 282 621 11, or 282 11 621. However, it applies AS-path access list 3 to routes it forwards to router Madrid, and filters out routes with the AS path 282 621 11 or 282 11 621.
You can use a route map instead of the neighbor filter-list command to apply access lists for filtering routes.
In Figure 4, a route map is used to determine the weight for routes learned by router Chicago.
Figure 4: Route Map Filtering

Access list 1 permits any route whose AS-path attribute includes 32 or 837. This condition permits routes that originate in (or pass through from elsewhere) AS 32 or AS 837. When these routes are advertised through AS 451 and AS 17 to router Chicago, instance 1 of route map 1 matches such routes and sets their weight to 25, overriding the neighbor weight set for updates received from 10.2.2.4.
Access list 2 permits any route whose AS-path attribute indicates that it originates in AS 74. When these routes are advertised through AS 837 and AS 32 to router Chicago, instance 1 of route map 2 matches such routes and sets their weight to 175, overriding the neighbor weight set for updates received from 10.5.5.2.
The following example configures router Chicago:
- host1(config)#router bgp 293
- host1(config-router)#network 192.168.5.0 mask
255.255.255.0
- host1(config-router)#neighbor 10.2.2.4 remote-as
17
- host1(config-router)#neighbor 10.2.2.4 weight
150
- host1(config-router)#neighbor 10.2.2.4 route-map
1 in
- host1(config-router)#exit
- host1(config-router)#neighbor 10.5.5.2 remote-as
32
- host1(config-router)#neighbor 10.5.5.2 weight
50
- host1(config-router)#neighbor 10.5.5.2 route-map
2 in
- host1(config)#route-map 1 permit 1
- host1(config-route-map)#match as-path 1
- host1(config-route-map)#set weight 25
- host1(config-route-map)#exit
- host1(config)#ip as-path access-list 1 permit [ 32 837 ]
- host1(config)#route-map 2 permit 1
- host1(config-route-map)#match as-path 2
- host1(config-route-map)#set weight 175
- host1(config-route-map)#exit
- host1(config)#ip as-path access-list 2 permit [ 74 ]
The result of this configuration is that router Chicago prefers routes learned through router Boston (weight 150) over routes learned through router NY (weight 50), except that:
access-list
- host1(config)#access-list bronze permit ip
host any 228.0.0.0 0.0.0.255
default-information originate
- host1(config-router)#default-information originate
ip as-path access-list
- host1(config)#ip as-path access-list 1 permit ^\(
ipv6 access-list
- host1(config)#ipv6 access-list bronze deny
1::1/16 any
neighbor distribute-list
- host1:vr1(config-router)#neighbor group1 distribute-list
list1 in
neighbor filter-list
- host1:vr1(config-router)#neighbor group2 filter-list
list2 out
neighbor prefix-list
- host1(config-router)#neighbor 192.168.1.158
prefix-list seoul19 in
neighbor prefix-tree
- host1(config-router)#neighbor 192.168.1.158
prefix-tree newyork out
redistribute
- host1(config)#router bgp 100
- host1(config-router)#neighbor 192.56.10.2
remote-as 200
- host1(config-router)#redistribute static
- host1(config-router)#exit
- host1(config)#ip route 155.30.0.0 0.0.255.255
You can apply access lists to PIM sparse mode interfaces along with the ip pim join-filter or ipv6 pim join-filter command to use the access lists as PIM sparse mode join filters.
To configure PIM join filters:
- host1(config)#! create bronze service
- host1(config)#! - restrict SSM channels to 232.0.1/24 only
- host1(config)#access-list bronze permit ip
host any 228.0.0.0 0.0.0.255
- host1(config)#access-list bronze permit ip
host 1.1.1.1 232.0.1.0 0.0.0.255
- host1(config)#access-list bronze permit ip
host 2.2.2.2 232.0.1.0 0.0.0.255
- host1(config)#
- host1(config)#! create silver service
- host1(config)#! - bronze service + new channels 232.0.2/24
- host1(config)#access-list silver permit ip
host any 228.0.0.0 0.0.0.255
- host1(config)#access-list silver permit ip
host 1.1.1.1 232.0.1.0 0.0.0.255
- host1(config)#access-list silver permit ip
host 2.2.2.2 232.0.1.0 0.0.0.255
- host1(config)#access-list silver permit ip
host 1.1.1.1 232.0.2.0 0.0.0.255
- host1(config)#access-list silver permit ip
host 2.2.2.2 232.0.2.0 0.0.0.255
- host1(config)#
- host1(config)#! create gold service
- host1(config)#! - silver service + new channels 232.0.3/24
- host1(config)#access-list gold permit ip host
any 228.0.0.0 0.0.0.255
- host1(config)#access-list gold permit ip host
1.1.1.1 232.0.1.0 0.0.0.255
- host1(config)#access-list gold permit ip host
2.2.2.2 232.0.1.0 0.0.0.255
- host1(config)#access-list gold permit ip host
1.1.1.1 232.0.2.0 0.0.0.255
- host1(config)#access-list gold permit ip host
2.2.2.2 232.0.2.0 0.0.0.255
- host1(config)#access-list gold permit ip host
1.1.1.1 232.0.3.0 0.0.0.255
- host1(config)#access-list gold permit ip host
2.2.2.2 232.0.3.0 0.0.0.255
For additional information about how to create access lists, see Access Lists .
- host1(config)#ip multicast-routing
- host1(config)#ip pim ssm
- host1(config)#ip pim join-filter bronze
- host1(config)#interface atm 3/0.101
- host1(config-if)#ip address 101.0.0.1 255.255.255.255
- host1(config-if)#ip pim sparse-mode
This interface (and any other PIM interface to which you do not specifically assign an access list filter) uses the default (bronze) join filter.
- host1(config-if)#interface atm 3/0.102
- host1(config-if)#ip address 102.0.0.1 255.255.255.255
- host1(config-if)#ip pim sparse-mode
- host1(config-if)#ip pim join-filter silver
- host1(config-if)#interface atm 3/0.103
- host1(config-if)#ip address 103.0.0.1 255.255.255.255
- host1(config-if)#ip pim sparse-mode
- host1(config-if)#ip pim join-filter gold
For information about the ip pim join-filter command, see Configuring PIM for IPv4 Multicast in JUNOSe Multicast Routing Configuration Guide. For information about the ipv6 pim join-filter command, see Configuring PIM for IPv6 Multicast in JUNOSe Multicast Routing Configuration Guide.
Use the clear access-list or clear ipv6 access-list commands to clear access list counters.
clear access-list
clear ipv6 access-list
- host1#clear access-list list1
- host1#clear ipv6 access-list list2
For static routes and access routes, you can configure and apply a table map that filters routes before an access list adds them to the routing table. For static routes, you can use the ip static-route table-map or ipv6 static-route table-map command. For access routes, you can use the ip access-route table-map or ipv6 access-route table-map command.
Use these commands when triggering on the policy values listed in Table 4.
Table 4: Match and Set Policy Values
|
Match |
Set |
|---|---|
|
ip address |
metric |
|
metric |
distance |
|
distance |
tag |
|
tag |
|
For example, you can configure an access list and route map to filter, based on IP address, any routes that appear in the routing table:
- host1(config)#ip access-route table-map just10net
- host1(config)#access-list permit10 permit
10.0.0.0 0.255.255.255
- host1(config)#access-list permit10 deny any
- host1(config)#route-map just10net
- host1(config-route-map)#match ip address permit10
Using the same name for both the table map and the route map creates an association specifying (in this case) that only IP addresses that match the access list criterion appear in the routing table.
ip access-route table-map
ipv6 access-route table-map
- host1(config)#ip access-route table-map just10net
- host1(config)#ipv6 access-route table-map
map2
ip static-route table-map
ipv6 static-route table-map
- host1(config)#ip static-route table-map map3
- host1(config)#ipv6 static-route table-map
map4