On Fri, Mar 25, 2022 at 6:19 PM Amir Herzberg <amir.lists@gmail.com> wrote:
Hi Matthew and NANOG,

I don't want to defend prepending 255 times, and can understand filtering of extra-prepended-announcements, but I think Matthew may not be correct here:  
Anyone that is prepending to do traffic engineering is 
doing *differential* prepending; that is, a longer number 
of prepends along one path, with a shorter set of prepends 
along a different path.

So, dropping the inbound announcement with 255 prepends 
merely means your router will look for the advertisement with 
a shorter number of prepends on it.

Right. But let's consider the (typical) case where someone is prepending for traffic engineering. Now, if you're not very near to the origin of the prepended announcement, and still received it (and not the shorter alternative), then it is quite likely that you received it since the alternate path failed - and the backup path was announced, instead (by upstreams of the origin). So your router is quite likely not to receive the shorter announcement. 


Note that as-path prepending only matters as a *differential* value. 

Choosing between 5 and 8 prepends, for example, gives you 3 levels of 
differentiation between the paths. 

Prepending 255 times is equivalent to setting MAXCOST in OSPF; it's an 
overload setting, saying "don't freaking use this path *EVER*".

If you want to traffic engineer, you set your less preferred path with 
say 5 prepends, and your more preferred path with 3 prepends, and 
your really really preferred path with 1 prepend. 

If you're setting 255 prepends on a path, that's not traffic engineering, 
that's equivalent to setting the overload bit; it's the maximum metric 
equivalent in a link-state routing protocol.  It's clearly a DO-NOT-USE 
indicator, in the same category as community 0xFFFFFF04 or 
65535:0 

In short--if someone sends me 255 prepends, it's going to 
be treated the same way as LSInfinity in OSPF.

Matt

 
After all, if your router received both short and long announcements (from same relationship, e.g., both from providers), then your router would probably select the shorter path anyway, without need to filter out the long one, right? 

So, filtering announcements with many prepends may cause you to lose connectivity to these networks. Of course, you may not mind losing connectivity to Kazakhstan :) ...

best, Amir
 

--
Amir Herzberg

Comcast professor of Security Innovations, Computer Science and Engineering, University of Connecticut
`Applied Introduction to Cryptography' textbook and lectures: https://sites.google.com/site/amirherzberg/applied-crypto-textbook




On Fri, Mar 25, 2022 at 8:19 PM Matthew Petach <mpetach@netflight.com> wrote:


On Fri, Mar 25, 2022 at 2:59 PM Adam Thompson <athompson@merlin.mb.ca> wrote:

Tom, how exactly does someone “ride the 0/0” train in the DFZ?


It's not so much "ride the 0/0 train" as much as it is 
"treat excessive prepends as network-unreachable"

Think of prepends beyond say 10 prepends as a way 
to signal "infinite" distance--essentially, "unreachable" 
for that prefix along that path.

Anyone that is prepending to do traffic engineering is 
doing *differential* prepending; that is, a longer number 
of prepends along one path, with a shorter set of prepends 
along a different path.

So, dropping the inbound announcement with 255 prepends 
merely means your router will look for the advertisement with 
a shorter number of prepends on it.

If you're only announcing one path for your prefix, and it is 
prepended 255 times, you're fundamentally not understanding 
how BGP works, and the only way to get a clue-by-four might 
be to discover you've made your prefix invisible to a significant 
portion of the internet.
 

 

I’m connected to both commercial internet and NREN, and unfortunately-long paths are not uncommon in this scenario, in order to do traffic steering.  If there’s another solution that affects global inbound traffic distributions, I’d love to hear about it (and so would a lot of my peers in edu).

 

If there were a usable way to “dump” the excessively-long path only as long as a better path was already known by at least one edge router, that might be workable, but you’d have to keep track of it somewhere to reinstall it if the primary route went away… at which point you may as well have not dropped it in the first place.


You dump the excessively-long path based on the assumption that 
the only reason for a long set of prepends out one path is to shift traffic 
away from that path to one that you're advertising out with a *shorter* 
set of prepends.

The router doesn't need to 'look' for or 'keep track' of the different 
path; the human makes the decision that any sane BGP speaker 
would only prepend 255 times on a path if there was a shorter 
as-path advertisement they wanted people to use instead.

So, drop the excessively long prepended path, and make use 
of the 'should be in the table somewhere' advertisement of the 
prefix with fewer prepends.

Easy-peasy.
 

 

-Adam