1
mirror of https://git.dn42.dev/wiki/wiki.git synced 2024-11-19 04:07:25 +01:00

Updated Bird communities (markdown)

This commit is contained in:
dn42 wiki 2015-03-28 14:34:04 +00:00
parent b2f31f92f2
commit f04fcee7f4

View File

@ -4,9 +4,9 @@ Communities can be used to prioritize traffic based on different flags, in DN42
The community is applied to the route when it is imported and exported, therefore you need to change your bird configuration, in /etc/bird/peers4 if you followed the [Bird](/howto/Bird) guide.
The calculations for finding the best route can be stored in a separate file, for example /etc/bird/community_filters.conf.
The filter helpers can be stored in a separate file, for example /etc/bird/community_filters.conf.
Below, you will see an example config for peers4 as well as the and the suggested improvement by tombii (prefers low latency) to original filter implementation by Jplitza (prefers high BW over low latency).
Below, you will see an example config for peers4 based on the original filter implementation by Jplitza without any bgp_local_pref calculation. An example with bgp_local_pref calculation can also be found below.
To properly assign the right community to your peer, please reference the table below. If you are running your own network and peering internally, please also apply the communities inside your network.
@ -104,7 +104,6 @@ latency = update_latency(link_latency);
bandwidth = update_bandwidth(link_bandwidth) - 20;
crypto = update_crypto(link_crypto) - 30;
if bandwidth > 4 then bandwidth = 4;
bgp_local_pref = 10000+100*bandwidth + 50*(10-latency)-200*bgp_path.len+100*crypto;
return true;
}
```
@ -120,6 +119,14 @@ include "/etc/bird/community_filters.conf";
***
### Bird bgp_local_pref calculation
If you are running a bigger network and also want to prioritize your traffic based on the communities, then you can look at the following below:
bgp_local_pref = 10000+100*bandwidth + 50*(10-latency)-200*bgp_path.len+100*crypto; (as suggested by tombii)
bgp_local_pref = 1000*bandwidth - 10*latency; if crypto < 2 then bgp_local_pref = 0; (as suggested by Jplitza)
These go into the /etc/bird/community_filters.conf just above the return true; line. However for starters I recommend to stick with the above, simpler implementation with assigning community flags to your peerings to have a smarter routing in dn42 in total.
Original implementation by Jplitza: https://gist.github.com/welterde/524cc9b37a618e29093d
All props to him for the bird code based on the suggestion from welterde.