On 2016/05/17 21:34, Stuart Henderson wrote: > On 2016/05/17 18:35, Kevin Wier wrote: > > I would like to submit a feature request to where networks could > > be announced per neighbor instead of globally. This would afford the > > benefit of manipulating inbound BGP preferences to utilize a larger > > inbound connection by announcing the smaller ranges, being more specific > > than the larger range announced on the other smaller links. This still > > provides failed link redundancy as the other connections will still be > > used when the larger connection is down. I have included proposed config > > examples to reference. > > Use "announce all" and use filters to choose what is sent to each > neighbour.
Following up with a bit more detail.. As well as filter rules themselves you need two things in the top part of the file: 1. The prefixes need to be created somewhere. Either coming from another router, or redistributed from static routes or connected routes, or generated with "network" lines e.g.: network 10.2.0.0/18 network 10.2.4.0/24 network 10.2.5.0/24 network 10.2.6.0/24 i.e. one for each individual prefix you're announcing. The prefixes coming from neighbours and the prefixes from "network" lines feed into: 2. "announce" in the neighbour config selects which of the above prefixes are passed to filter rules. You can use "announce all" here and do everything else in the filter rules. Or actually (and contrary to my first mail), you could also use "self" here, which may be helpful to avoid mistakes in filter rules accidentally advertising transit routes to bad places. 3. Prefixes that make it through "announce" get fed into the filter rules. These are just the allow/deny rules like you'll see in the sample configuration - it's PF-like and see the FILTER and PARAMETERS sections of bgpd.conf(5) for the syntax description. A contrived example with the above networks: deny to any allow to any prefix 10.2.0.0/18 allow to group somegroup prefix {10.2.4.0/24 10.2.5.0/24} allow to 5.6.7.8 prefix 10.2.6.0/24 allow to 5.6.7.10 # send all routes to this transit customer