1
0
mirror of https://git.dn42.dev/wiki/wiki synced 2025-03-15 11:53:33 +00:00

add bird ipv6 configuration

This commit is contained in:
dn42 wiki 2015-02-27 21:27:53 +00:00
parent ba5eb7ca12
commit 5b4ea6e766

View File

@ -10,6 +10,8 @@ Compared to quagga, bird supports multiple routing, which is useful, if you also
* Replace `<PEER_AS>` the Autonomous System Number of your peer * Replace `<PEER_AS>` the Autonomous System Number of your peer
* Replace `<PEER_NAME>` a self chosen name for your peer * Replace `<PEER_NAME>` a self chosen name for your peer
### IPV4
``` ```
# /etc/bird/bird.conf # /etc/bird/bird.conf
# Device status # Device status
@ -146,6 +148,157 @@ protocol bgp <PEER_NAME> from dnpeers {
}; };
``` ```
### IPV6
```
#/etc/bird/bird6.conf
protocol device {
scan time 10;
}
# filter helpers
#################
include "/etc/bird/filter6.conf";
# local configuration
######################
include "bird/local6.conf";
# Kernel routing tables
########################
protocol kernel {
scan time 20;
device routes;
import none;
export filter {
krt_prefsrc = OWNIP;
accept;
};
}
# static routes
################
protocol static {
route <SUBNET> reject;
}
template bgp dnpeers {
local as OWNAS;
path metric 1;
import keep filtered;
import filter {
if is_valid_network() && !is_self_net() then {
accept;
}
reject;
};
export filter {
if is_valid_network() then {
accept;
}
reject;
};
route limit 10000;
}
include "/etc/bird/peers6/*";
```
```
# /etc/bird/local6.conf
# should be a unique identifier, use same id as for ipv4
router id <GATEWAY_IP>;
define OWNAS = <AS>;
define OWNIP = <GATEWAY_IP>;
function is_self_net() {
return net ~ [<SUBNET>+];
}
```
Generate the filter list from the monotone repository
```
cd net.dn42.registry
ruby utils/bgp-filter.rb < data/filter6.txt > /etc/bird/filter6.conf
```
example filter list:
```
function is_valid_network() {
return net ~ [
fc00::/8{48,64}, # ULA (undefined)
fd00::/8{48,64}, # ULA (defined)
2001:67c:20c1::/48{48,48}, # E-UTP IPv6
2001:bf7::/32{32,128}, # Freifunk (Foerderverein Freie Netzwerke) IPv6 Range
2001:67c:20a1::/48{48,48}, # CCC Event Network
2001:0470:006c:01d5::/64{64,64}, # Registered IANA
2001:0470:006d:0655::/64{64,64},
2001:0470:1f09:172d::/64{64,64},
2001:0470:1f0b:0592::/64{64,64},
2001:0470:1f0b:0bca::/64{64,64},
2001:0470:1f0b:1af5::/64{64,64},
2001:0470:1f10:0275::/64{64,64},
2001:0470:1f12:0004::/64{64,64},
2001:0470:5084::/48{48,64},
2001:0470:51c6::/48{48,64},
2001:0470:73d3::/48{48,64},
2001:0470:7972::/48{48,64},
2001:0470:9949::/48{48,64},
2001:0470:99fc::/48{48,64},
2001:0470:9af8::/48{48,64},
2001:0470:9ce6::/55{55,64},
2001:0470:9f43::/48{48,64},
2001:0470:caab::/48{48,64},
2001:0470:cd99::/48{48,64},
2001:0470:d4df::/48{48,64},
2001:0470:d889:0010::/64{64,64},
2001:0470:e3f0:000a::/64{64,64},
2001:067c:21ec::/48{48,64},
2001:06f8:1019:0000::/64{64,64},
2001:06f8:118b::/48{48,64},
2001:06f8:1194::/48{48,64},
2001:06f8:121a::/48{48,64},
2001:06f8:1c1b::/48{48,64},
2001:06f8:1d14::/48{48,64},
2001:06f8:1d26::/48{48,64},
2001:06f8:1d53::/48{48,64},
2001:07f0:3003::/48{48,64},
2001:08d8:0081:05c8::/63{63,64},
2001:08d8:0081:05ca::/64{64,64},
2001:15c0:1000:0100::/64{64,64},
2001:1b60:1000:0001::/64{64,64},
2001:41d0:0001:b6bb::/64{64,64},
2001:41d0:0001:cd42::/64{64,64},
2001:4dd0:fcff::/48{48,64},
2001:4dd0:fdd3::/48{48,64},
2001:4dd0:ff00:8710::/64{64,64},
2604:8800:0179:4200::/56{56,64},
2801:0000:80:8000::/50{50,64},
2a00:1328:e101:0200::/56{56,64},
2a00:1828:2000:0289::/64{64,64},
2a00:1828:a013:d242::/64{64,64},
2a00:5540:0387::/48{48,64},
2a01:0198:022c::/48{48,64},
2a01:0198:035a:fd13::/64{64,64},
2a01:0198:0485::/48{48,64},
2a01:04f8:0121:4fff::/64{64,64},
2a01:04f8:0140:1ffd::/64{64,64},
2a01:04f8:0d13:17c0::/64{64,64},
2a02:0a00:e010:3c00::/56{56,64},
2a02:0ee0:0002:0051::/64{64,64},
2a03:2260::/30{30,64}
];
}
```
# Useful bird commmands # Useful bird commmands
bird can be remote controlled via the `birdc` command. Here is a list of useful bird commands: bird can be remote controlled via the `birdc` command. Here is a list of useful bird commands:
@ -169,6 +322,15 @@ bird> show route for 172.22.141.181 # show possible routes to internal.dn42
172.22.141.0/24 via 172.23.67.1 on tobee [tobee 07:20:30] * (100) [AS64737i] 172.22.141.0/24 via 172.23.67.1 on tobee [tobee 07:20:30] * (100) [AS64737i]
via 172.23.64.1 on chelnok [chelnok 07:20:29] (100) [AS64737i] via 172.23.64.1 on chelnok [chelnok 07:20:29] (100) [AS64737i]
via 172.23.136.65 on hax404 [hax404 07:20:26] (100) [AS64737i] via 172.23.136.65 on hax404 [hax404 07:20:26] (100) [AS64737i]
bird> show route filtered
172.23.245.1/32 via 172.23.64.1 on chelnok [chelnok 21:26:18] * (100) [AS76175i]
172.22.247.128/32 via 172.23.64.1 on chelnok [chelnok 21:26:18] * (100) [AS76175i]
172.22.227.1/32 via 172.23.64.1 on chelnok [chelnok 21:26:18] * (100) [AS76115i]
172.23.196.75/32 via 172.23.64.1 on chelnok [chelnok 21:26:18] * (100) [AS76115i]
172.22.41.241/32 via 172.23.64.1 on chelnok [chelnok 21:26:18] * (100) [AS76115i]
172.22.249.4/30 via 172.23.64.1 on chelnok [chelnok 21:26:18] * (100) [AS4242420002i]
172.22.255.133/32 via 172.23.64.1 on chelnok [chelnok 21:26:18] * (100) [AS64654i]
...
``` ```
# External Links # External Links