This article provides information about how to do bandwidth limitation for dual stack ppppoe session.
Sample configuration for bandwidth limitation for dual stack session.
The normally dynamic-profile configuration for dual stack pppoe:
dynamic-profiles { DualStack-ae-pppoe { predefined-variable-defaults { input-filter up512k-v4; output-filter down512k-v4; input-ipv6-filter up512k-v6; output-ipv6-filter down512k-v6; } interfaces { pp0 { unit "$junos-interface-unit" { actual-transit-statistics; ppp-options { pap; } pppoe-options { underlying-interface "$junos-underlying-interface"; server; } targeted-distribution; keepalives interval 30; family inet { filter { input "$junos-input-filter"; output "$junos-output-filter"; } unnumbered-address "$junos-loopback-interface"; } family inet6 { filter { input "$junos-input-ipv6-filter"; output "$junos-output-ipv6-filter"; } address $junos-ipv6-address; } } } } protocols { router-advertisement { interface "$junos-interface-name" { other-stateful-configuration; } } } }}Type: PPPoEUser Name: spirentIP Address: 100.0.0.30IP Netmask: 255.255.255.255IPv6 Address: 2401:ce00:c412::2IPv6 Prefix: 2401:ce00:c416:6::/64Logical System: defaultRouting Instance: vr03Interface: pp0.3221225528Interface type: DynamicUnderlying Interface: demux0.3221225495Dynamic Profile Name: DualStack-ae-pppoeDynamic Profile Version: 2MAC Address: 00:10:94:00:00:01State: ActiveRadius Accounting ID: 59Session ID: 59PFE Flow ID: 176Stacked VLAN Id: 100VLAN Id: 2200Login Time: 2024-10-31 15:59:49 CSTIP Address Pool: v4-poolIPv6 Address Pool: v6-pool IPv6 Framed Interface Id: 0:0:0:3bIPv4 Input Filter Name: up512k-v4-pp0.3221225528-inIPv4 Output Filter Name: down512k-v4-pp0.3221225528-outIPv6 Input Filter Name: up512k-v6-pp0.3221225528-inIPv6 Output Filter Name: down512k-v6-pp0.3221225528-out
We can see there is two type of filters to do bandwidth limitation, inet4 filter does limitation for IPv4 traffic, inet6 filter does limitation for IPv6 traffic. They are working alone.
How to do limitation for both IPv4 and IPv6 traffic together? We need the 3rd. type of filter, interface filter.
firewall { family any { filter down512k-any { interface-specific; term 100 { then policer 512k; } } filter up512k-any { interface-specific; term 100 { then policer 512k; } } }}
dynamic-profiles { DualStack-ae-pppoe { predefined-variable-defaults { input-filter up512k-v4; output-filter down512k-v4; input-interface-filter up512k-any; output-interface-filter down512k-any; input-ipv6-filter up512k-v6; output-ipv6-filter down512k-v6; } interfaces { pp0 { unit "$junos-interface-unit" { actual-transit-statistics; ppp-options { pap; } pppoe-options { underlying-interface "$junos-underlying-interface"; server; } targeted-distribution; keepalives interval 30; filter { input "$junos-input-interface-filter"; output "$junos-output-interface-filter"; } family inet { filter { input "$junos-input-filter"; output "$junos-output-filter"; } unnumbered-address "$junos-loopback-interface"; } family inet6 { filter { input "$junos-input-ipv6-filter"; output "$junos-output-ipv6-filter"; } address $junos-ipv6-address; } } } } protocols { router-advertisement { interface "$junos-interface-name" { other-stateful-configuration; } } } }}Type: PPPoEUser Name: spirentIP Address: 100.0.0.31IP Netmask: 255.255.255.255IPv6 Address: 2401:ce00:c412::3IPv6 Prefix: 2401:ce00:c416:6::/64Logical System: defaultRouting Instance: vr03Interface: pp0.3221225530Interface type: DynamicUnderlying Interface: demux0.3221225495Dynamic Profile Name: DualStack-ae-pppoeDynamic Profile Version: 2MAC Address: 00:10:94:00:00:01State: ActiveRadius Accounting ID: 61Session ID: 61PFE Flow ID: 180Stacked VLAN Id: 100VLAN Id: 2200Login Time: 2024-10-31 16:07:13 CSTIP Address Pool: v4-poolIPv6 Address Pool: v6-pool IPv6 Framed Interface Id: 0:0:0:3dIPv4 Input Filter Name: up512k-v4-pp0.3221225530-inIPv4 Output Filter Name: down512k-v4-pp0.3221225530-outIPv6 Input Filter Name: up512k-v6-pp0.3221225530-inIPv6 Output Filter Name: down512k-v6-pp0.3221225530-outIFL Input Filter Name: up512k-any-pp0.3221225530-inIFL Output Filter Name: down512k-any-pp0.3221225530-out
The ifl filter works protocol-independent. It can limit both IPv4 and IPv6 traffic.
The new question, how to do it with radius?
Juniper Networks supported VSAs.
26-10 Ingress-Policy-Name
26-11 Egress-Policy-Name
It can be used for IPv4 filter and interface filter.
Notice, doesn't apply both level as same time. The filter type must be same as where you apply.
dynamic-profiles { DualStack-ae-pppoe { predefined-variable-defaults { input-filter up512k-any; output-filter down512k-any; } interfaces { pp0 { unit "$junos-interface-unit" { actual-transit-statistics; ppp-options { pap; } pppoe-options { underlying-interface "$junos-underlying-interface"; server; } targeted-distribution; keepalives interval 30; filter { input "$junos-input-filter"; output "$junos-output-filter"; } family inet { unnumbered-address "$junos-loopback-interface"; } family inet6 { address $junos-ipv6-address; } } } } protocols { router-advertisement { interface "$junos-interface-name" { other-stateful-configuration; } } } }}Type: PPPoEUser Name: spirentIP Address: 100.0.0.34IP Netmask: 255.255.255.255IPv6 Address: 2401:ce00:c412::6IPv6 Prefix: 2401:ce00:c416:6::/64Logical System: defaultRouting Instance: vr03Interface: pp0.3221225536Interface type: DynamicUnderlying Interface: demux0.3221225495Dynamic Profile Name: DualStack-ae-pppoeDynamic Profile Version: 2MAC Address: 00:10:94:00:00:01State: ActiveRadius Accounting ID: 67Session ID: 67PFE Flow ID: 192Stacked VLAN Id: 100VLAN Id: 2200Login Time: 2024-11-04 12:12:00 CSTIP Address Pool: v4-poolIPv6 Address Pool: v6-pool IPv6 Framed Interface Id: 0:0:0:43IFL Input Filter Name: up512k-any-pp0.3221225536-inIFL Output Filter Name: down512k-any-pp0.3221225536-out
2024-11-04 : Article Created
2024-11-05: Formated.