PfR and PIRO


I'm trying to understand how the "mode route control" works with PfR when BGP is not used on the border. From what I can gather it follows by default this set of rules:

1) If the prefix's parent is a static route, it will inject a static route on the border

2) If the prefix's parent is an IGP learned route, it will use policy-based routing to direct traffic a specific next-hop

3) If the prefix's doesn't have a match in the RiB, it will do nothing

The use of static route can be quite useful as it could be redistributed into the IGP and provide a route for other routers.

Is there a way to force the border to inject a static route while using an IGP learned route as the prefix's parent?




  • Hi Eric,

    I know it is a bit late and maybe you have figured it out or find a solution for this. Anyways, I checked this and indeed the behavior is what you said in your email. The order PFR looks for a parent route is:

    1. BGP LocRIB

    2. Static Routes

    3. IGP RIB

    If the parent route is found in BGP LocRIB the output is enforced manipulating Local Preference on the BRs and injecting a more specific route into BGP. If it is via static routing it will inject a more specific static route, and if it is via IGP RIB it will do PBR. You can check this in the output of "show oer master traffic", it will be marked as "RIB-PBR", and when you issue command "show route-map dynamic" it will show the route-maps that have been dinamically created for bringing a traffic class IN-POLICY. Note that for this to work BRs must be one hop away from each other. My guess is that the logic behind this is since you are already learning the parent prefix via IGP, injecting an static route and redistributing it may cause a loop since the injected static route will be more specific and, unlike BGP, there is no way for link state IGPs to control the scope of that redistributed route (i.e. avoid advertising it "back" to the "external" network"). This could be accomplished for distance vector IGPs easily, but since PIRO works for all IGPs I think the best solution was to do just PBR.

    So back to your original question, I didn't find a way to inject a static route if the parent route is only in the IGP RIB. You need to have a less specific static route that encompasses the traffic class, at least a default route.

    Please let me know your findings about this issue. I am quite curious about it.



Sign In or Register to comment.