Redundancy & Summarization

Patrick W. Gilmore patrick at
Fri Aug 21 15:08:42 CDT 2009

On Aug 21, 2009, at 3:47 PM, Brian Dickson wrote:

>> My institution has a single /16 spread across 2 sites: the lower / 
>> 17 is
>> used at site A, the upper /17 at site B.  Sites A & B are connected
>> internally.  Currently both sites have their own ISPs and only  
>> advertise
>> their own /17's.  For redundancy we proposed that each site advertise
>> both their own /17 and the whole /16, so that an ISP failure at  
>> either
>> site would trigger traffic from both /17s to reconverge towards the
>> unaffected location.
> There are two different ways to achieve almost-identical results.

As much as I like Brian, I am going to have to respectfully disagree.

> However, one is a 50%  more "green" than the other, i.e. friendly to  
> other network operators.
> These two choices are functionally equivalent, and possible, only  
> because things currently work for both your /17's.
> Here are the two ways to do this:
> One is:
> - announce /17 "A" and /16 from uplink ISP-A
> - announce /17 "B" and /16 from uplink ISP-B
> - This results in 3 prefixes globally: A, B, and /16.
> The other is:
> - announce /17 "A" and /17 "B", with different policies (i.e.  
> prepend your AS once or twice), at *both* ISPs.
> - This results in 2 prefixes globally: A and B.
> In all cases, as long as one ISP link is up, there is a path to both  
> A and B.
> In most cases, the best path to A or B, is *mostly*, but not  
> completely, under your influence.

This is highly dependent on variables not in evidence.  If your  
upstreams are, for instance, Sprint & Level 3, then a large percentage  
of the Internet will be traveling through one or the other.  And once  
it hits your upstream, prepends are irrelevant.  Every upstream (for  
values of "every" == "100%" to at least one decimal place) localprefs  
their downstreams' prefixes.

In this case, anyone downstream of either L3 or Sprint will send _all_  
traffic through that upstream's link.  While not the whole Internet,  
it's still quite a bit.  Moreover, many people do things like  
localpref Sprint _down_ because they are more expensive.  So even  
someone multi-homed to both may send all traffic through L3.  Etc., etc.

A slight twist on Brian's idea would be to use communities and tell  
Upstream A to localpref Prefix B below that of peer routes.  Then you  
only need two prefixes, and each site only receives its own traffic  
except when the other site fails.  If Upstream B goes down, Upstream A  
will accept Prefix B and propagate it.

Again, dependent upon your upstreams having communities able to do  
this.  Or if they are "nimble", maybe a call to their operations  


> So, the main difference to everyone else is, the presence or absence  
> of a routing slot (/16), and/or extra copies of A and/or B.
> The routing slot occupies a slot in data-forwarding-plane hardware  
> that is very limited.
> The extra copies of A and B (and extra copies of your AS in the AS- 
> path) only eat cheap control-plane memory.
> If everyone did things nicely, we would not have as much of a crisis  
> on the hardware side as we (collectively) do.
> Please consider being part of the solution (announcing only /17's,  
> but in both places) rather than part of the problem (adding a new  
> redundant /16 to everyone's routers, including in the hardware slots.)
> Brian

More information about the NANOG mailing list