Bgp » Historial » Versió 3
Agustí Moll Garcia, 16-04-2011 09:36
1 | 2 | Agustí Moll Garcia | h1. Apunts sobre BGP |
---|---|---|---|
2 | 1 | Agustí Moll Garcia | |
3 | 2 | Agustí Moll Garcia | h2. Escenari |
4 | |||
5 | 1 | Agustí Moll Garcia | Disposo del següent escenari: |
6 | |||
7 | 2 | Agustí Moll Garcia | * Node MANET amb GSF (routerstation2): 10.229.193.6 |
8 | * Node MANET amb GSF (routerstation1): 10.228.193.4 / 10.0.1.4 |
||
9 | * Virtual amb openWRT (prova1): 10.0.1.2 / 10.0.0.2 |
||
10 | * Virtual amb openWRT (prova2): 10.0.0.3 |
||
11 | 1 | Agustí Moll Garcia | |
12 | La conexió física és la següent: |
||
13 | |||
14 | RS2 ----- RS1 ----- prova1 ----- prova2 |
||
15 | |||
16 | Tant prova1 com prova2, representen supernodes de guifi en infraestrucutra. RS1 representa un node MANET frontera entre el núbol i guifi. |
||
17 | |||
18 | **L'objectiu és que prova2 vegi RS2 mitjançant una instància BGP publicada per RS1 a través de prova1** |
||
19 | |||
20 | RS2 i RS1 ja és veuen mitjançant BMX |
||
21 | |||
22 | |||
23 | 2 | Agustí Moll Garcia | h2. Configuració BGP |
24 | |||
25 | 1 | Agustí Moll Garcia | 1. Primer instal·lem quagga en RS1 + prova1 + prova2 |
26 | |||
27 | 2 | Agustí Moll Garcia | @opkg install quagga quagga-bgpd quagga-vtysh@ |
28 | |||
29 | 1 | Agustí Moll Garcia | 2. Configurem /etc/quagga/zebra.conf |
30 | 2 | Agustí Moll Garcia | |
31 | <pre><code class=`schema`> |
||
32 | interface eth0 |
||
33 | 1 | Agustí Moll Garcia | ! |
34 | access-list vty permit 127.0.0.0/8 |
||
35 | ! |
||
36 | access-list vty deny any |
||
37 | ! |
||
38 | ip forwarding |
||
39 | ! |
||
40 | line vty |
||
41 | ! |
||
42 | 2 | Agustí Moll Garcia | access-class vty |
43 | </code></pre> |
||
44 | |||
45 | 1 | Agustí Moll Garcia | Afegim totes les interfaces de cada màquina.... |
46 | |||
47 | 2 | Agustí Moll Garcia | h2. Configurem /etc/quagga/bgpd.conf |
48 | 1 | Agustí Moll Garcia | |
49 | 3 | Agustí Moll Garcia | h3. RS1 |
50 | |||
51 | 2 | Agustí Moll Garcia | <pre><code class=`schema`> |
52 | hostname rs1 |
||
53 | router bgp 400 |
||
54 | bgp router-id 10.0.1.4 |
||
55 | network 10.228.193.6/32 |
||
56 | neighbor 10.0.1.2 remote-as 200 |
||
57 | 1 | Agustí Moll Garcia | </code></pre> |
58 | |||
59 | 3 | Agustí Moll Garcia | h3. prova2 |
60 | 2 | Agustí Moll Garcia | |
61 | <pre><code class=`schema`> |
||
62 | hostname prova2 |
||
63 | 1 | Agustí Moll Garcia | router bgp 300 |
64 | bgp router-id 10.0.0.3 |
||
65 | neighbor 10.0.0.2 remote-as 200 |
||
66 | </code></pre> |
||
67 | 2 | Agustí Moll Garcia | |
68 | 3 | Agustí Moll Garcia | h3. prova1 |
69 | |||
70 | 2 | Agustí Moll Garcia | <pre><code class=`schema`> |
71 | hostname prova1 |
||
72 | 1 | Agustí Moll Garcia | router bgp 200 |
73 | |||
74 | bgp router-id 10.0.0.2 |
||
75 | |||
76 | network 10.0.0.0/24 |
||
77 | network 10.0.1.0/24 |
||
78 | |||
79 | neighbor 10.0.0.3 remote-as 300 |
||
80 | neighbor 10.0.1.4 remote-as 400 |
||
81 | 2 | Agustí Moll Garcia | </code></pre> |
82 | 1 | Agustí Moll Garcia | |
83 | 2 | Agustí Moll Garcia | * `router bgp` -> El nom del AS |
84 | * `network` -> La xarxa a publicar |
||
85 | * `neighbor` -> Els veins amb qui ens comuniquem |
||
86 | 1 | Agustí Moll Garcia | |
87 | |||
88 | 2 | Agustí Moll Garcia | <pre><code class=`schema`> |
89 | /etc/init.d/quagga start |
||
90 | </code></pre> |
||
91 | 1 | Agustí Moll Garcia | |
92 | 2 | Agustí Moll Garcia | h2. Proves |
93 | 1 | Agustí Moll Garcia | |
94 | Des de prova2: |
||
95 | 2 | Agustí Moll Garcia | |
96 | <pre><code class=`schema`> |
||
97 | ip route show |
||
98 | 1 | Agustí Moll Garcia | 10.228.193.6 via 10.0.0.2 dev eth1 proto zebra |
99 | 10.0.0.0/24 dev eth1 proto kernel scope link src 10.0.0.3 |
||
100 | 10.0.1.0/24 via 10.0.0.2 dev eth1 proto zebra |
||
101 | 192.168.10.0/24 dev br-lan proto kernel scope link src 192.168.10.3 |
||
102 | 10.3.3.0/24 dev eth1 proto kernel scope link src 10.3.3.1 |
||
103 | 172.20.0.0/14 via 10.0.0.2 dev eth1 proto zebra |
||
104 | 1.0.0.0/8 dev eth0 proto kernel scope link src 1.1.1.1 |
||
105 | default via 192.168.10.1 dev br-lan |
||
106 | 2 | Agustí Moll Garcia | </code></pre> |
107 | 1 | Agustí Moll Garcia | |
108 | Com es pot veure, des de prova dos veiem 10.228.193.6, que és la IP de RS2, per tant el recorregut dels paquets seria: |
||
109 | |||
110 | 2 | Agustí Moll Garcia | @prova2 ---bgp---> prova1 ---bgp---> RS1 ---bmx---> RS2 @ |
111 | 1 | Agustí Moll Garcia | |
112 | 2 | Agustí Moll Garcia | h2. Implamtació a GSF |
113 | 1 | Agustí Moll Garcia | |
114 | 2 | Agustí Moll Garcia | Bé,ja hem conseguit que el node MANET frontera sigui capaç de publicar una IP del seu núvol. |
115 | |||
116 | 1 | Agustí Moll Garcia | Però ens queda resoldre la pregunta: Cóm fem això dinàmic? |
117 | |||
118 | Amb l'aplicació vtysh podem fer el següent per afegir dinàmicament una nova ruta (10.228.193.7/32), i eliminar l'anterior (10.228.193.6/32) |
||
119 | |||
120 | 2 | Agustí Moll Garcia | <pre><code class=`schema`> |
121 | vtysh |
||
122 | 1 | Agustí Moll Garcia | configure terminal |
123 | router bgp 400 |
||
124 | network 10.228.193.7/32 |
||
125 | no network 10.228.193.6/32 |
||
126 | end |
||
127 | write memory |
||
128 | exit |
||
129 | 2 | Agustí Moll Garcia | </code></pre> |
130 | 1 | Agustí Moll Garcia | |
131 | Seria el mateix que executar aquesta comanda bash: |
||
132 | |||
133 | 2 | Agustí Moll Garcia | <pre><code class=`python`> |
134 | printf `configure terminal\nrouter bgp 400\nnetwork 10.228.193.7/32\nno network 10.228.193.6/32\nend\nwrite memory\nexit\n` | vtysh |
||
135 | </code></pre> |
||
136 | |||
137 | 1 | Agustí Moll Garcia | Mola bastant eh!! |
138 | |||
139 | Per tant és podria fer un script executat cada X temps (diguem 10 minuts?). Que recullís les IPs vistes mitjançant BMX, i ho publiques al BGP, d'aquesta manera des de GUIFI ens podran veure i enrutar directament cap a nosaltres. I el més important, podrem disposar de varis nodes frontera :-D |
||
140 | |||
141 | 2 | Agustí Moll Garcia | h2. Referències |
142 | 1 | Agustí Moll Garcia | |
143 | - http://www.quagga.net/docs/quagga.html |
||
144 | - http://martybugs.net/wireless/openwrt/quagga.cgi |
||
145 | - http://www.mcmcse.com/cisco/guides/bgp_neighbor_process.shtml |