BIRD » Historique » Version 11
Laurent GUERBY, 05/04/2012 19:41
1 | 11 | Laurent GUERBY | {{>toc}} |
---|---|---|---|
2 | 11 | Laurent GUERBY | |
3 | 1 | Laurent GUERBY | h1. BIRD |
4 | 1 | Laurent GUERBY | |
5 | 3 | Laurent GUERBY | Implémentation GPL du protocole BGP |
6 | 3 | Laurent GUERBY | http://bird.network.cz/ |
7 | 3 | Laurent GUERBY | |
8 | 3 | Laurent GUERBY | h2. Volontaires |
9 | 3 | Laurent GUERBY | |
10 | 3 | Laurent GUERBY | * Laurent GUERBY |
11 | 3 | Laurent GUERBY | * autre |
12 | 3 | Laurent GUERBY | |
13 | 4 | Laurent GUERBY | h2. HOWTO |
14 | 4 | Laurent GUERBY | |
15 | 4 | Laurent GUERBY | * ou intervenir sur le code de BIRD ? |
16 | 4 | Laurent GUERBY | * proposition ici |
17 | 4 | Laurent GUERBY | |
18 | 1 | Laurent GUERBY | h2. Spécification du projet |
19 | 4 | Laurent GUERBY | |
20 | 5 | Laurent GUERBY | * http://lists.tetaneutral.net/pipermail/technique/2012-March/000230.html |
21 | 5 | Laurent GUERBY | * http://www.toulibre.org/archives/toulouse-ll/2012-March/006926.html |
22 | 5 | Laurent GUERBY | |
23 | 4 | Laurent GUERBY | Temps estimé une semaine pour quelqu'un qui connait le C mais pas le code de BIRD. |
24 | 1 | Laurent GUERBY | |
25 | 2 | Laurent GUERBY | From: Benjamin Cama |
26 | 2 | Laurent GUERBY | To: Laurent GUERBY |
27 | 2 | Laurent GUERBY | Cc: adminsys |
28 | 1 | Laurent GUERBY | Subject: Proposition d'amélioration pour BIRD |
29 | 1 | Laurent GUERBY | Date: Tue, 06 Mar 2012 01:18:31 +0100 |
30 | 1 | Laurent GUERBY | |
31 | 1 | Laurent GUERBY | Bonjour, |
32 | 1 | Laurent GUERBY | |
33 | 1 | Laurent GUERBY | BIRD est un démon de routage qui est utilisé chez FDN pour gérer le |
34 | 1 | Laurent GUERBY | routage de ses abonnés, de ses services, et également des FAI locaux |
35 | 1 | Laurent GUERBY | avec qui il partage sa collecte ADSL. Ce démon est configuré sur deux |
36 | 1 | Laurent GUERBY | machines qui collectent les lignes ADSL avec basculement automatique |
37 | 1 | Laurent GUERBY | (failover) de l'une à l'autre en cas de besoin ou de problème. Ces |
38 | 1 | Laurent GUERBY | lignes sont collectées en L2TP grâce au logiciel l2tpns. |
39 | 1 | Laurent GUERBY | |
40 | 1 | Laurent GUERBY | Actuellement, l2tpns ajoute/supprime les routes des abonnés quand il se |
41 | 1 | Laurent GUERBY | connectent/déconnectent automatiquement, dans la table de routage du |
42 | 1 | Laurent GUERBY | kernel. BIRD extrait ces informations du kernel pour les propager en BGP |
43 | 1 | Laurent GUERBY | Ã d'autres routeurs. Les FAI locaux ayant des interconnexions diverses |
44 | 1 | Laurent GUERBY | avec FDN et des adressages différents, filtrer les routes ainsi |
45 | 1 | Laurent GUERBY | importées du kernel fait intervenir des filtres qui peuvent devenir |
46 | 1 | Laurent GUERBY | complexes. |
47 | 1 | Laurent GUERBY | |
48 | 1 | Laurent GUERBY | Une solution serait de filtrer uniquement sur le «â¯protocoleâ¯Â» de la |
49 | 1 | Laurent GUERBY | route, ainsi qu'indiqué par le kernel. En effet, chaque route contenue |
50 | 1 | Laurent GUERBY | dans les tables de routage du kernel contient un champ qui indique le |
51 | 1 | Laurent GUERBY | «â¯protocoleâ¯Â» qui a ajouté cette route, et l2tpns renseigne cette |
52 | 1 | Laurent GUERBY | information quand il en ajoute une (c'est une version patchée pour faire |
53 | 1 | Laurent GUERBY | ça, cf http://dolka.fr/code/l2tpns.git ). Cela est visible par le |
54 | 1 | Laurent GUERBY | mot-clé «â¯protoâ¯Â» dans les routes affichées par l'utilitaire iproute2 |
55 | 1 | Laurent GUERBY | (le protocole n'est pas visible avec l'ancien utilitaire «â¯routeâ¯Â»). |
56 | 1 | Laurent GUERBY | Nous pourrions ainsi importer les routes de l2tpns uniquement en |
57 | 1 | Laurent GUERBY | filtrant sur cet attribut. |
58 | 1 | Laurent GUERBY | |
59 | 1 | Laurent GUERBY | Malheureusement, BIRD ne sait actuellement pas filtrer sur cet attribut |
60 | 1 | Laurent GUERBY | (cf le thread |
61 | 1 | Laurent GUERBY | http://www.mail-archive.com/bird-users@atrey.karlin.mff.cuni.cz/msg01425.html |
62 | 1 | Laurent GUERBY | entre autres). Le travail consisterait donc en l'implémentation d'un |
63 | 1 | Laurent GUERBY | attribut «â¯kernel protocolâ¯Â» (ou autre meilleur nom) dans les |
64 | 1 | Laurent GUERBY | âroute entryâ de BIRD afin de pouvoir filtrer dessus. |
65 | 1 | Laurent GUERBY | |
66 | 1 | Laurent GUERBY | Le site de BIRD est http://bird.network.cz/ et présente leur dépôt git |
67 | 1 | Laurent GUERBY | où se trouve le code. Une bonne compréhension des principes de BIRD |
68 | 1 | Laurent GUERBY | (assez déroutant quand on est habitué à d'autres démons de routage) est |
69 | 1 | Laurent GUERBY | nécessaire avant de se lancer dans le projet. |
70 | 1 | Laurent GUERBY | |
71 | 1 | Laurent GUERBY | Merci et bon courage à celui qui voudra bien se lancer là -dedansâ¯! |
72 | 1 | Laurent GUERBY | |
73 | 1 | Laurent GUERBY | benjamin |
74 | 6 | Laurent GUERBY | |
75 | 6 | Laurent GUERBY | Date: Tue, 06 Mar 2012 12:06:52 +0100 |
76 | 6 | Laurent GUERBY | |
77 | 6 | Laurent GUERBY | Je viens de voir qu'il existe déjà certains attributs spécifiques aux |
78 | 6 | Laurent GUERBY | routes kernel de linux qui sont utilisés dans bird, cf |
79 | 6 | Laurent GUERBY | http://bird.network.cz/?get_doc&f=bird-6.html#ss6.4 |
80 | 6 | Laurent GUERBY | en particulier krt_realm (qui pourrait être intéressant pour nous pour |
81 | 6 | Laurent GUERBY | classifier les routes des FAI locauxâ¯; je ne connaissais pas cet |
82 | 6 | Laurent GUERBY | attribut). Ãa ne devrait pas être trop dur de se baser dessus pour faire |
83 | 6 | Laurent GUERBY | l'équivalent «â¯krt_protoâ¯Â». |
84 | 6 | Laurent GUERBY | |
85 | 6 | Laurent GUERBY | Date: Tue, 06 Mar 2012 12:28:21 +0100 |
86 | 6 | Laurent GUERBY | |
87 | 6 | Laurent GUERBY | Pour préciser ma pensée, j'ai lu |
88 | 6 | Laurent GUERBY | http://www.policyrouting.org/PolicyRoutingBook/ONLINE/CH07.web.html |
89 | 6 | Laurent GUERBY | et des realms différents pourraient être assignés à chaque FAI local dès |
90 | 6 | Laurent GUERBY | qu'un paquet rentre du tun depuis ses IP, ou de l'interco. Ainsi, on |
91 | 6 | Laurent GUERBY | pourrait facilement les repérer, et par exemple les null-router s'ils |
92 | 6 | Laurent GUERBY | veulent passer par la route par défaut de FDN. Comme ça, on «â¯sépareâ¯Â» |
93 | 6 | Laurent GUERBY | bien les trafics. |
94 | 6 | Laurent GUERBY | |
95 | 6 | Laurent GUERBY | Juste une idée comme ça. |
96 | 6 | Laurent GUERBY | |
97 | 6 | Laurent GUERBY | Date: Tue, 06 Mar 2012 12:18:35 +0100 |
98 | 6 | Laurent GUERBY | |
99 | 6 | Laurent GUERBY | Et des fois, on se demande WTFâ¯?â¯: |
100 | 6 | Laurent GUERBY | |
101 | 7 | Laurent GUERBY | <pre> |
102 | 6 | Laurent GUERBY | % cat /etc/iproute2/rt_realms |
103 | 6 | Laurent GUERBY | # |
104 | 6 | Laurent GUERBY | # reserved values |
105 | 6 | Laurent GUERBY | # |
106 | 6 | Laurent GUERBY | 0 cosmos |
107 | 6 | Laurent GUERBY | # |
108 | 6 | Laurent GUERBY | # local |
109 | 6 | Laurent GUERBY | # |
110 | 6 | Laurent GUERBY | #1 inr.ac |
111 | 6 | Laurent GUERBY | #2 inr.ruhep |
112 | 6 | Laurent GUERBY | #3 freenet |
113 | 6 | Laurent GUERBY | #4 radio-msu |
114 | 6 | Laurent GUERBY | #5 russia |
115 | 6 | Laurent GUERBY | #6 internet |
116 | 7 | Laurent GUERBY | </pre> |
117 | 6 | Laurent GUERBY | |
118 | 6 | Laurent GUERBY | benjamin |
119 | 8 | Jérémie Dimino | |
120 | 8 | Jérémie Dimino | Date: Sun, 11 Mar 2012 02:26:46 +0100 |
121 | 8 | Jérémie Dimino | |
122 | 8 | Jérémie Dimino | J'ai commencé à regarder. En fait le champ protocol est déjà présent |
123 | 8 | Jérémie Dimino | dans les structures de données de bird et netlink le renseigne correctement; |
124 | 8 | Jérémie Dimino | fichier nest/route.h, ligne 209: |
125 | 8 | Jérémie Dimino | |
126 | 8 | Jérémie Dimino | <pre><code class="C"> |
127 | 8 | Jérémie Dimino | struct { /* Routes generated by krt sync (both temporary and inherited ones) */ |
128 | 8 | Jérémie Dimino | s8 src; /* Alleged route source (see krt.h) */ |
129 | 8 | Jérémie Dimino | u8 proto; /* Kernel source protocol ID */ |
130 | 8 | Jérémie Dimino | u8 type; /* Kernel route type */ |
131 | 8 | Jérémie Dimino | u8 seen; /* Seen during last scan */ |
132 | 8 | Jérémie Dimino | u32 metric; /* Kernel metric */ |
133 | 8 | Jérémie Dimino | } krt; |
134 | 8 | Jérémie Dimino | </pre> |
135 | 8 | Jérémie Dimino | |
136 | 8 | Jérémie Dimino | Du coup il faut juste adapter le parser et l'interpréteur. |
137 | 8 | Jérémie Dimino | |
138 | 8 | Jérémie Dimino | Jérémie |
139 | 9 | Jérémie Dimino | |
140 | 9 | Jérémie Dimino | Date: Sun, 11 Mar 2012 13:05:28 +0100 |
141 | 9 | Jérémie Dimino | |
142 | 9 | Jérémie Dimino | J'ai rajouté l'accès à deux attributs depuis les filtres: krt_source et krt_proto. |
143 | 9 | Jérémie Dimino | Ils ont la même signification, la seule différence c'est que krt_proto est plus précis et est OS-dependent |
144 | 9 | Jérémie Dimino | mais n'est renseigné qu'avec netlink. |
145 | 9 | Jérémie Dimino | |
146 | 9 | Jérémie Dimino | Le code est ici: |
147 | 9 | Jérémie Dimino | |
148 | 9 | Jérémie Dimino | http://solaria.dimino.org/gitweb/?p=bird.git;a=summary |
149 | 9 | Jérémie Dimino | |
150 | 10 | Jérémie Dimino | Les valeurs possibles pour krt_source sont: |
151 | 10 | Jérémie Dimino | |
152 | 10 | Jérémie Dimino | * @KRT_SRC_BIRD@ |
153 | 10 | Jérémie Dimino | * @KRT_SRC_REDIRECT@ |
154 | 10 | Jérémie Dimino | * @KRT_SRC_ALIEN@ |
155 | 10 | Jérémie Dimino | * @KRT_SRC_KERNEL@ |
156 | 10 | Jérémie Dimino | |
157 | 10 | Jérémie Dimino | et pour krt_proto (avec netlink uniquement): |
158 | 10 | Jérémie Dimino | |
159 | 10 | Jérémie Dimino | * @KRT_PROTO_UNSPEC@ |
160 | 10 | Jérémie Dimino | * @KRT_PROTO_REDIRECT@ |
161 | 10 | Jérémie Dimino | * @KRT_PROTO_KERNEL@ |
162 | 10 | Jérémie Dimino | * @KRT_PROTO_BOOT@ |
163 | 10 | Jérémie Dimino | * @KRT_PROTO_STATIC@ |
164 | 10 | Jérémie Dimino | * @KRT_PROTO_GATED@ |
165 | 10 | Jérémie Dimino | * @KRT_PROTO_RA@ |
166 | 10 | Jérémie Dimino | * @KRT_PROTO_MRT@ |
167 | 10 | Jérémie Dimino | * @KRT_PROTO_ZEBRA@ |
168 | 10 | Jérémie Dimino | * @KRT_PROTO_BIRD@ |
169 | 10 | Jérémie Dimino | * @KRT_PROTO_DNROUTED@ |
170 | 10 | Jérémie Dimino | * @KRT_PROTO_XORP@ |
171 | 10 | Jérémie Dimino | * @KRT_PROTO_NTK@ |
172 | 10 | Jérémie Dimino | * @KRT_PROTO_DHCP@ |
173 | 10 | Jérémie Dimino | |
174 | 9 | Jérémie Dimino | Jérémie |
175 | 11 | Laurent GUERBY | |
176 | 11 | Laurent GUERBY | h2. Misc |
177 | 11 | Laurent GUERBY | |
178 | 11 | Laurent GUERBY | <pre> |
179 | 11 | Laurent GUERBY | From: Ondrej Zajicek <santiago@crfreenet.org> |
180 | 11 | Laurent GUERBY | To: Tapio Haapala <tapio.haapala@f-solutions.fi> |
181 | 11 | Laurent GUERBY | Cc: bird-users@network.cz |
182 | 11 | Laurent GUERBY | Subject: Re: bgp community loggin/export |
183 | 11 | Laurent GUERBY | Date: Thu, 8 Mar 2012 11:29:25 +0100 |
184 | 11 | Laurent GUERBY | |
185 | 11 | Laurent GUERBY | As cmmunities already answered by others, i just note that for traffic |
186 | 11 | Laurent GUERBY | accounting probably the better way than using iptables is to use ip |
187 | 11 | Laurent GUERBY | realms for routes (route attribute krt_realm in BIRD), kernel |
188 | 11 | Laurent GUERBY | automatically keeps statistics for different realms. |
189 | 11 | Laurent GUERBY | </pre> |