File: Bridge

package info (click to toggle)
doc-linux-it 2000.01-1
  • links: PTS
  • area: main
  • in suites: woody
  • size: 8,136 kB
  • ctags: 19
  • sloc: perl: 249; makefile: 50; sh: 42
file content (330 lines) | stat: -rw-r--r-- 8,343 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
  Bridging mini-Howto
  Christopher Cole,  cole@lynkmedia.com. Tradotto da Alessan
  dro Rubini (rubini@linux.it).
  v1.10, 13 Novembre 1997. Tradotto il 30 Novembre 1997.

  Questo documento descrive come preparare un bridge per reti Ethernet.
  Ma cos' un bridge?  un dispositivo che controlla il flusso dei pac
  chetti in una sottorete cercando di ridurre l'ammontare di traffico.
  Un bridge di solito viene posizionato tra due gruppi di computer che
  parlano molto tra loro ma poco con i calcolatori dell'altro gruppo.
  Come esempio prendiamo un gruppo di Macintosh e un gruppo di macchine
  Unix: entrambi questi gruppi tendono a chiacchierare abbastanza al
  loro interno e il traffico che producono causa collisioni nelle comu
  nicazioni tra le altre macchine che tentano di parlare tra loro;
  questa  una situazione in cui occorrerebbe mettere un bridge tra i
  due gruppi di calcolatori. Il lavoro del bridge, allora, sta
  nell'esaminare il destinatario di ciascuno dei pacchetti e decidere se
  tale pacchetto deve essere ritrasmesso sull'altro segmento Ethernet
  oppure no. Il risultato di questo lavoro  una rete pi veloce perch
  si verificano meno collisioni.

  1.  Preparazione


  1. Ci si procuri il pacchetto ``Bridge Config'':

       <ftp://shadow.cabi.net/pub/Linux/BRCFG.tgz>



  2. Ci si procuri e si legga il ``Multiple Ethernet'' HOWTO:

       <ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/mini/Multiple-Ethernet>



  3.

     Si abiliti la seconda interfaccia ethernet sulla propria macchina
     aggiungendo questo al proprio /etc/lilo.conf, e si reinvochi lilo:


       append = "ether=0,0,eth1"





  Se si hanno tre interfacce sul bridge, si usi questa riga al posto
  della precedete:


       append = "ether=0,0,eth1 ether=0,0,eth2"





  Si possono usare pi interfacce aggiungendo altre direttive ether.
  Normalmente il kernel di Linux cerca solo una scheda ethernet, e una
  volta che l'ha trovata smette di verificare l'hardware installato. Le
  direttive append mostrate sopra servono a dire al kernel di continuare
  a cercare schede ethernet anche dopo che ne ha trovata una.

  In alternativa, si pu usare il parametro di linea di comando al
  momento del boot:
       linux ether=0,0,eth1





  Oppure, se si hanno 3 interfacce:


       linux ether=0,0,eth1 ether=0,0,eth2






  4. Si ricompili il kernel attivando l'opzione ``bridging''.

  5. Un bridge non dovrebbe avere un indirizzo IP. Pu averne uno, ma un
     bridge che non svolga altri compiti non ne ha bisogno.  Per
     rimuovere l'indirizzo IP dal proprio bridge si vada a vedere
     /etc/sysconfig/network-scripts/ (l'esempio si riferisce a un
     sistema RedHat) e si copi ifcfg-lo0 sopra a ifcfg-eth0 e a ifcfg-
     eth1.  In questi due file ``eth'', si cambi la riga che contiene
     ``DEVICE=lo'' in ``DEVICE=eth0'' e ``DEVICE=eth1''.  Altre
     distribuzioni hanno diversi script di configurazione, e bisogna
     applicare modifiche equivalenti ai file appropriati.  Se il proprio
     bridge ha pi di due interfacce bisogna assicurarsi di configurare
     allo stesso modo anche le altre interfacce.


  6. Si riavvii il sistema in modo da far girare il  nuovo kernel,
     quello configurato per il bridging; bisogna anche assicurarsi che
     le interfacce di rete non abbiano un indirizzo IP assegnato.

  7. Una volta che il sistema  attivo, si mettano le schede ethernet in
     modo promiscuo, in modo che ricevano tutti i pacchetti che vedono
     transitare sulla rete:


       ifconfig promisc eth0 ; ifconfig promisc eth1





  Devono essere messe in modo promiscuo tutte le interfacce che sono
  connesse ai segmenti ethernet che si vuole collegare.

  8. Si attivi il ``bridging'' usando il programma brcfg:


       brcfg -ena






  9. Si verifiche che il traffico di rete  diverso su ciascuna
     interfaccia:





  tcpdump -i eth0      # in una finestra
  tcpdump -i eth1      # in un'altra finestra






  10.
     Si faccia girare uno ``sniffer'' o tcpdump su di un'altra macchina
     per verificare che il bridge sta partizionando correttamente la
     rete.

  2.  Problemi tipici


  1.

     Domanda
        Ricevo il messaggio


          ioctl(SIOCGIFBR) failed: Package not installed





     Cosa significa?

     Risposta
        Il proprio kernel non ha la capacit di funzionare da bridge. Ci
        si procuri un kernel versione 2.0 o maggiore e lo si ricompili
        attivando l'opzione bridging.


  2.

     Domanda
        Le macchina da una parte non riescono a raggiungere quelle
        dall'altra parte.

     Risposta

        stato abilitato il bridging invocando ``brcfg -ena''?  (brcfg
        dovrebbe dire ``bridging is ENABLED'')

       Le due interfacce sono state messe in modo promiscuo?  (si
        invochi ``ifconfig'': la modalit ``PROMISC'' dovrebbe risultare
        attiva per entrambe le interfacce).

       Se si usano delle schede di rete a funzionalit multipla
        (BNC/TP), ci si assicuri di avere abilitato quella corretta.
        Occorrer usare il programma di setup che viene fornito insieme
        con la scheda.


  3.

     Domanda
        Non posso fare telnet n ftp dal bridge. Perch?

     Risposta
        Questo perch il bridge non ha un indirizzo IP. Un bridge  un
        pezzo di rete che risulta trasparente al resto della rete.

  4.

     Domanda
        Cosa devo fare per predisporre l'instradamento?

     Risposta
        Nulla!  Tutte le problematiche di instradamento sono gestite dal
        codice del kernel che si occupa del ``bridging''.  Per vedere
        come il brisge impara l'instradamento dei vari indirizzi
        ethernet si usi il comando brcfg in modalit debug:


          brcfg -deb






  5.

     Domanda
        Sembra che il bridge funzioni, ma perch il comando
        ``traceroute'' non lo mostra come parte del cammino dei
        pacchetti?

     Risposta
        Per la natura del bridge, un ``traceroute'' NON dovrebbe
        mostrare il bridge stesso nel cammino dei pacchetti. Il bridge
        dovrebbe essere un componente trasparente della rete.


  6.

     Domanda
        Occorre abilitare IP_FORWARD quando si compila il kernel?

     Risposta
        No. Il codice del kernel che si occupa del bridging si occupa
        del trasporto dei pacchetti indipendentemente da IP_FORWARD.
        IP_FORWARD occorre per i gateway che hanno indirizzi IP validi
        associati alle loro interfacce.


  7.

     Domanda
        Perch secondo il programma ``brcfg'' gli indirizzi hardware
        delle due porte ethernet sono uguali? Non dovrebbero essere
        differenti?

     Risposta
        No. Per come funziona il bridging, tutte le porte di un bridge
        hanno lo stesso indirizzo ethernet fisico.


  8.

     Domanda
        Il bridging non appare tra le opzioni di compilazione del
        kernel, come faccio ad abilitarlo?

     Risposta
        Durante la configurazione del kernel, si risponda Y alla domanda
        ``Prompt for development and/or incomplete code/drivers
        (CONFIG_EXPERIMENTAL) [Y/n/?]''.
  9.

     Domanda
        So che avere troppi hub (4 o pi) in catena sulla stessa
        ethernet crea dei problemi di temporizzazione. Che effetto ha un
        bridge su una rete che contiene altri hub?

     Risposta
        Un bridge non  un hub, e la regola dei 4 hub va applicata a
        ciascun segmento ethernet collegato al bridge. Un bridge non
        contribuisce ai problemi di tempo nella trasmissione dei
        pacchetti.


  10.

     Domanda
         possibile interfacciare con un bridge segmenti ethernet da
        10Mb e da 100Mb? Una configurazione del genere non rallenta il
        resto del traffico sul lato ad alta velocit della rete?

     Risposta
        Si,  possibile collegare con un bridge un segmento da 10Mb con
        un segmento da 100Mb. Finch la scheda di rete del bridge
        collegata con la rete veloce  in grado di portare 100Mb, TCP si
        preoccuper del resto. Anche se  vero che la comunicazione tra
        un calcolatore collegato a 100Mb e uno collegato a 10Mb avverr
        solo a 10Mb, il resto del traffico sulla rete ad alta velocit
        non viene rallentato dalla presenza del bridge.