Access Control List and Access Control List-based Forwarding
An Access Control List (ACL) is used to define access rights for a subscriber. It is also used for filtering content, blocking access to various network resources, and so on.
Certain service providers need to route certain traffic be routed through specific paths, instead of using the path computed by routing protocols. For example, a service provider may require that voice traffic traverse through certain expensive routes, but data traffic to use the regular routing path. This is achieved by specifying the next-hop address in the ACL configuration, which is then used for forwarding packet towards its destination. This feature of using ACL for packet forwarding is called ACL-based Forwarding (ABF).
The ACL is defined through CLI or XML; however, it can be applied to a subscriber session either through a dynamic-template, or through VSAs from RADIUS. Deploying ABF (using ACL) involves these stages:
-
Defining an ACL, see Configuring Access-Control Lists.
-
Applying the ACL to an access-interface, see Activating ACL.
Note |
ACL is not supported for LAC sessions. |
Configuring Access-Control Lists
Perform this task to create an access control list. As an example, this access list is created to deploy ABF; therefore, it defines the next hop address.
SUMMARY STEPS
- configure
- {ipv4 | ipv6} access-list access-list-name
- sequence-number permit tcp any any
- sequence-number permit {ipv4 | ipv6} host source_address nexthop source_address destination_address
- Use the commit or end command.
DETAILED STEPS
Command or Action | Purpose | |||
---|---|---|---|---|
Step 1 |
configure Example:
|
Enters global configuration mode. |
||
Step 2 |
{ipv4 | ipv6} access-list access-list-name Example:
or
|
Configures the access-list. |
||
Step 3 |
sequence-number permit tcp any any Example:
|
Enters an access control list rule to tcp traffic. |
||
Step 4 |
sequence-number permit {ipv4 | ipv6} host source_address nexthop source_address destination_address Example:
or
|
Specifies packets to forward on ipv4 protocol from source IP address to destination IP address.
|
||
Step 5 |
Use the commit or end command. |
commit —Saves the configuration changes and remains within the configuration session.
|
Configuring Access-Control Lists: Examples
//For IPv4
configure
ipv4 access-list foo_in
10 permit tcp any any
10 permit ipv4 host 9.8.8.9 nexthop 6.6.6.6 7.7.7.7
!
!
end
//For IPv6
configure
ipv6 access-list foo_in
10 permit tcp any any
10 permit ipv4 host 192:2:1:9 nexthop 192:2:6:8
!
!
end
Activating ACL
Perform this task to define a dynamic-template that is used to activate an access-control list.
SUMMARY STEPS
- configure
- dynamic-template
- type{ ipsubscriber | ppp | service} dynamic-template-name
- {ipv4 | ipv6} access-group access-list-name ingress
- Use the commit or end command.
DETAILED STEPS
Command or Action | Purpose | |||
---|---|---|---|---|
Step 1 |
configure Example:
|
Enters global configuration mode. |
||
Step 2 |
dynamic-template Example:
|
Enters the dynamic-template configuration mode. |
||
Step 3 |
type{ ipsubscriber | ppp | service} dynamic-template-name Example:
|
Creates a service dynamic-template type. |
||
Step 4 |
{ipv4 | ipv6} access-group access-list-name ingress Example:
or
|
Specifies access-control for the incoming packets.
|
||
Step 5 |
Use the commit or end command. |
commit —Saves the configuration changes and remains within the configuration session.
|
Activating ACL: Examples
//For IPv4
configure
dynamic-template
type service foo
ipv4 access-group foo_in ingress
!
!
end
//For IPv6
configure
dynamic-template
type service foo
ipv6 access-group foo_in ingress
!
!
end