How to configure Cisco IOS XR Radius (ASR 9000 series)

Recently, we’ve implemented PPPoE Radius authentication on Cisco one of the most powerful BRASes ASR 9000, that runs the IOS XR operation system. There are two steps of the configuration – the first one is to make the PPPoE server work and request a Radius server and the second part is an advanced configuration with speed limitation definitions and COA configuration.

The first part is the basic configuration of IOS XR PPPoE Radius:

Radius configuration

Radius server is reachable in VRF called DMZ :

aaa group server radius SPLYNX

vrf DMZ

server 172.16.0.20 auth-port 1812 acct-port 1813

key 7 014156547F5A070D321D1C5A395546

timeout 10

retransmit 5

source-interface XXXX (please define to be sure what IP will be used as NAS IP)!

aaa authorization network default group SPLYNX

aaa accounting network default start-stop group SPLYNX

aaa accounting service default group SPLYNX

aaa accounting subscriber default group SPLYNX

aaa authorization subscriber default group SPLYNX

aaa authentication subscriber default group SPLYNX

Dynamic template definition:

dynamic-template

type ppp SPLYNX_PPP_Chap

ppp authentication chap

keepalive 60 3

ppp ipcp dns 1.1.1.1 8.8.8.8

accounting aaa list default type session periodic-interval 5

ipv4 unnumbered Loopback10

!

type ppp dynamic-template

!

type service s1

ipv4 unnumbered Loopback10

!

!

interface Loopback 10

ipv4 address 192.168.50.1 255.255.255.0

PPPOE_ACCESS and the POLICY to apply Dynamic template:

subscriber

pta tcp mss-adjust 1430

!

pppoe bba-group SPLYNX_PPPOE

service selection disable

!

class-map type control subscriber match-any PPP

match protocol ppp

end-class-map

!

!

policy-map type control subscriber PPP_PM

event session-start match-first

class type control subscriber PPP do-until-failure

10 activate dynamic-template SPLYNX_PPP_Chap

!

!

event session-activate match-first

class type control subscriber PPP do-until-failure

10 authenticate aaa list default

!

!

end-policy-map

APPLYING ALL ON INTERFACE VLAN 200 under LCAP bundle :

interface Bundle-Ether1.200

ipv4 point-to-point

ipv4 unnumbered Loopback10

service-policy type control subscriber PPP_PM

pppoe enable bba-group SPLYNX_PPPOE

encapsulation dot1q 200

!

The second part of the configuration is related to COA/COD disconnection of the session when it’s initiated on Splynx and also to setting speed limits.

To achieve the PPPoE session disconnection from Splynx we should allow connection from Radius server to Cisco IOS XR device. The configuration for allowing incoming requests from the Radius server is following:

aaa server radius dynamic-author

port 3799

client 172.16.0.20 vrf DMZ

server-key 7 1446405858517C

We usually use port 3799 for it and it also should be defined inside Splynx Config → Radius → NAS settings:

How to configure Cisco IOS XR Radius in Splynx

As you can see in the screenshot, there are also two rate limit attributes defined:

Cisco-AVPair = ip:sub-qos-policy-out={{ tariff_attributes.policy_ingress }}

Cisco-AVPair += ip:sub-qos-policy-in={{ tariff_attributes.policy_egress }}

These are the policy names that are setting the speed limitation for end-user. To set up the speed limits we added additional fields to Splynx Internet plans and then used these values in the policy applies to the PPPoE tunnel.

Below is an example of the Splynx tariff plan with two additional fields and with the policy names specified:

This is an example of the Splynx tariff plan

When a customer connects a PPPoE session, the value of the fields tariff_attributes.policy_egress and tariff_attributes.policy_ingress are taken and applied – in this case, POLICY_CUSTOMER_EGRESS_100Mbps and POLICY_CUSTOMER_INGRESS_100Mbps.

The policies should be defined inside IOS XR configuration this or similar way:

policy-map POLICY_CUSTOMER_EGRESS_100Mbps
class CUSTOMER_PREC_ALL
shape average 100000000 bps
queue-limit 1000000 bytes
!
class class-default
!
end-policy-map
!

policy-map POLICY_CUSTOMER_INGRESS_100Mbps
class class-default
police rate 100000000 bps
conform-action transmit
exceed-action drop
!
!
end-policy-map
!

More in Network management

Network management Below is the topology sample that depicts the captured flow of how Splynx and NetFlow accounting work.

How to configure NetFlow accounting in Splynx

Learn how to configure NetFlow accounting to to bring usage data into Splynx.

Network management Hotspot add-on in Splynx 4.0

Hotspot add-on in Splynx 4.0

The Hotspot add-on was built to help businesses from low-income communities grow and earn more.

Network management How to configure Juniper Radius

Juniper Radius configuration with variables

This article is the second part of the Juniper MX Radius configuration tutorial.

Network management How to configure Radius Juniper MX

How to configure Radius Juniper MX

Juniper Networks is one of the leading vendors producing networking equipment. Together with Cisco, Juniper defines wher...

Network management Mikrotik ipv6 configuration

How to configure Mikrotik IPv6

This blog post describes how to configure the Mikrotik router to act as a PPPoE server with IPv6 enabled.

Network management How to configure Cisco IOS XR Radius in Splynx

How to configure Cisco IOS XR Radius (ASR 9000 series)

We've implemented PPPoE Radius authentication on Cisco one of the most powerful BRASes ASR 9000, that runs the IOS XR op...

Network management How to configure Juniper Radius server in Splynx

How to configure Juniper Radius server (updated)

This is an updated version of the Radius server configuration with Juniper using variables for speed limitations.

Network management How to configure Huawei NE (NetEngine) router Radius

How to configure Huawei NE (NetEngine) router Radius

We'll tackle the configuration of the Huawei NE20 and Huawei NE40 router with the Radius server. We will be using Splynx...

Network management

IPv6 CPE and home routers support

This article shows examples of 3 different CPEs from 3 other vendors. We have selected IPv6 routers that are used in net...

Network management

Splynx IPv6 support

Starting from the 3.0 version, Splynx has native IPv6 support. In this topic we will cover three main areas of IPv6 depl...

Find out how Splynx helps ISPs grow

Learn more