> AFAICT making a difference between routes learned via radio, tunnel or the AMPR IPIP mesh
> has most importance within your local AS. You may forward those annoucements by any mean to another AS.
> For example, you may learn a route via tunnel bit forward it via radio to another AS. This other AS may
> learn that same route via tunnel and your radio link. So the question may come up if that other AS should
> prefer a direct route via tunnel ot a route learned via radio whcih ultimately still goes via a tunnel.
> From a HAM perspective you might want to prefer the longer route via radio but then you will eventually
> have to pay for the bandwidth used by that other AS, but this might not be relevant in your case.
I have been varying what is an AS, but at the moment I am using the simple "one site is one AS".
This means everything is eBGP and there is no interior routing protocol.
Of course one could define larger areas and use iBGP within them, but it will be very difficult to set
up a reasonable system because geographical boundaries and management group boundaries are very different
here, and also difficult to predict. Some people may want to do everything themselves, others will leave
the management to me. And of course we like "simple" deployment without the headaches of setting up
peering with an increasing number of routers within the AS. With eBGP you only need to peer with the
routers you link to.
I have read that in other countries OSPF is used as IGP and eBGP on top of that as an inter-AS protocol.
That is most likely too difficult to deploy here, except when we exclusively use OSPF inside the country
and BGP at the links to our neighbors.
The way I see it now is that we use eBGP to exchange the routes between our nodes inside the country and
our gateway, where we distribute 3 routes (0.0.0.0/0, 44.0.0.0/8 and 44.137.0.0/16) that can be used as
"default" easily selectable with a filter, and the /22 or lower subnets are exchanged as defined in our
IP plan.
When we make links to our neighboring countries Germany and Belgium, we will only send them the aggregated
route to 44.137.0.0/16 and not the route to 44.0.0.0/8 or 0.0.0.0/0. When we receive /15 or smaller
routes from them we announce them inside our network and also to the other neighboring country, so we
can also carry transit traffic from Belgium to Germany and v.v.
We are not going to route traffic towards internet for them, neither direct nor tunneled.
> What may be of interest in a more universal way, might be the available bandwidth on the route.
> A route which goes over multiple links (whatever kind) of which one has one link limited to 50kbps
> might be worth to be used as a secondary route over a route which has the slowest link at 1 Mbps, regardless of the technology.
> So may we should define "well known communities" which define the link speed over which they are learned.
> Those pseudo well known communities could start by X: followed by the bandwidth class. For example:
> 0:1 = 10kbps
> 0:2 = 100 kbps
> 0:3 = 1 Mbps
> 0:4 = 10 Mbps
> Etc
The problem with eBGP is that there is no other metric than hop count to select preference of a route,
all other selections have to be made by local static configuration or derived from community values.
In the automatic routing protocols we used before, like NET/ROM, the metric of a path is calculated
from the metrics of the individual links, and assigning a metric corresponding the the quality of each
link would influence the selection of that link as part of a long path. 3 fast link hops could be
preferred over one slow one.
Not so in eBGP. You can influence the path by introducing "artificial" extra hops on slow or bad
links, so that for example a 10kbps link counts as 3 hops, and is not used when two other faster hops
can reach the same destination, but of course this works very coarsely.
A system as depicted above could only be used at the next hop, but it would not be easy to assign
such values to every link and then calculate an aggregate metric of all the hops to the destination.
Routers can match community values using a direct compare and often a simple pattern match on the
decimal representation of the numbers (e.g. when the value is 1234 you can match on 1??? to select
the values that start with a 1 when written in decimal), but operations like multiplying community
values to achieve a new value to be used as a preference are not available.
That means you would need long and complicated matching tables to do anything with information like
you propose.
Rob