This article discusses PPPoE Service-Name-Table and its usage for enforcing PPPoE session limits.
The PPPoE Service-Name table feature provides a configuration attribute “max-sessions” that allows the user to configure a limit on the number of PPPoE subscribers associated with a specific Service-Name tag. Every Service-Name table by default includes an <empty> Service-Name entry which would always provide a matching entry for PPPoE subscribers sending a zero-length Service-Name tag and prevent these subscribers from using configurations provided by the <any> Service-Name entry. This means that the <any> Service-Name entry can only be used by PPPoE subscribers with nonzero-length Service-Name tags and its max-sessions limit would only control this subset of subscribers while the <empty> Service-Name entry max-sessions would control the other group of subscribers.
Example
Zero-Length Service Name :00:13:01:00:00:01 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 28: vlan 100, p 0, ethertype PPPoE D, PPPoE PADI
jtac@ERX-MX960-II-RE0# run show subscribers
Interface IP Address/VLAN ID User Name LS:RI
pp0.3221225472 20.0.0.1 test@test.com default:default
jtac@ERX-MX960-II-RE0# run show pppoe interfaces pp0.3221225472
pp0.3221225472 Index 536874524
State: Session Up, Session ID: 1, Type: Dynamic,
Service name: <empty>, Remote MAC address: 00:13:01:00:00:01,
Session AC name: ERX-MX960-II-RE0,
Session uptime: 00:00:31 ago,
Dynamic Profile: PPPOE,
Underlying interface: demux0.100 Index 325
Limiting PPPoE Session
Configuration
jtac@ERX-MX960-II-RE0# show interfaces demux0
unit 100 {
vlan-id 100;
demux-options {
underlying-interface ae1;
}
family pppoe {
duplicate-protection;
dynamic-profile PPPOE;
service-name-table test;
}
}
jtac@ERX-MX960-II-RE0#show protocols pppoe
service-name-tables test {
service any {
terminate;
max-sessions 10;
00:13:01:00:00:01 > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 32: vlan 100, p 0, ethertype PPPoE D, PPPoE PADI [Service-Name "TEST"]
jtac@ERX-MX960-II-RE0# run show pppoe interfaces pp0.3221225475
pp0.3221225475 Index 536874528
State: Session Up, Session ID: 1, Type: Dynamic,
Service name: TEST, Remote MAC address: 00:13:01:00:00:01,
Session AC name: ERX-MX960-II-RE0,
Session uptime: 00:00:39 ago,
Dynamic Profile: PPPOE,
Underlying interface: demux0.100 Index 325
jtac@ERX-MX960-II-RE0# run show subscribers summary
Subscribers by State
Active: 10
Total: 10
Subscribers by Client Type
PPPoE: 10
Total: 10
Jun 3 15:17:48.546332 Dropping PADI due to Service Name (TEST)
<-- PPPoE session exceeding 10 will be dropped
Starting from 16.1, the default <empty> Service-Name entry will be eliminated from the Service-Name table, allowing for the possibility that PPPoE subscribers with a zero-length Service-Name tag can use the configuration provided by the <any> Service-Name entry and additionally be limited by its max-session value.The Service-Name table will be configured with only the “any” Service-Name and the required max-session value. This forces all PPPoE subscribers to be included in a single session count for the “any” Service-Name entry and restricted by its max-sessions limit.
Without the default “empty” Service-Name entry, all PADI/PADR control packets with a zero-length Service-Name tag will no longer have a default match in the Service-Name table and the behavior in the absence of explicit user configuration is then controlled by the “any”, or wildcard, Service-Name entry of the Service-Name table.
Example
00:13:01:00:00:0b > ff:ff:ff:ff:ff:ff, ethertype 802.1Q (0x8100), length 28: vlan 100, p 0, ethertype PPPoE D, PPPoE PADI <-- No Service-Name
jtac@ERX-MX960-II-RE0# run show subscribers summary
Subscribers by State
Active: 10
Total: 10
Subscribers by Client Type
PPPoE: 10
Total: 10
jtac@ERX-MX960-II-RE0> show pppoe interfaces pp0.3221225483
pp0.3221225483 Index 536874539
State: Session Up, Session ID: 2, Type: Dynamic,
Service name: <empty>, Remote MAC address: 00:13:01:00:00:01,
Session AC name: ERX-MX960-II-RE0,
Session uptime: 00:00:14 ago,
Dynamic Profile: PPPOE,
Underlying interface: demux0.100 Index 2134
jtac@ERX-MX960-II-RE0> show pppoe service-name-tables test
Service Name Table: test
Service Name: <any>,
Action: Terminate
Max Sessions: 10
Active Sessions: 10
Jun 3 15:43:25.263818 Dropping PADI due to Service Name () <-- PPPoE session exceeding 10 will be dropped