brctl sta per Bridge Control.
In Linux, questo comando viene utilizzato per creare e manipolare il bridge ethernet.
Viene in genere utilizzato quando disponi di più reti Ethernet sui tuoi server e desideri combinarle e presentarle come un'unica rete logica.
Ad esempio, se hai eth0 ed eth1, puoi combinarli e presentarlo solo come br0, che a sua volta utilizzerà sia eth0 che eth1 per il traffico di rete.
In questo tutorial abbiamo trattato quanto segue:
- Crea un nuovo bridge Ethernet utilizzando addbr
- Visualizza il bridge Ethernet disponibile utilizzando lo spettacolo
- Elimina il bridge Ethernet esistente utilizzando delbr
- Aggiungi un'interfaccia al bridge esistente
- Aggiungi più interfacce al bridge esistente
- Tracciamento dell'indirizzo MAC di un Bridge
- Imposta il tempo di invecchiamento per l'indirizzo Mac su un bridge
- Imposta Spanning Tree su Ethernet Bridge
- Visualizza i valori dei parametri STP di un bridge
- Modifica i valori dei parametri del ponte
1. Crea un nuovo bridge Ethernet usando addbr
Usando brctl addbr, possiamo creare un nuovo bridge ethernet.
Nell'esempio seguente, abbiamo creato tre bridge ethernet su questo server:dev, stage e prod.
brctl addbr dev brctl addbr stage brctl addbr prod
Tieni presente che in questa fase questo è solo un bridge ethernet vuoto che non ha nessun'altra rete ethernet su di esso.
Tieni presente che questo brctl è leggermente diverso dal legame NIC EtherChannel Linux di cui abbiamo discusso in precedenza.
2. Visualizza Bridge Ethernet disponibile utilizzando show
Usando brctl show, possiamo visualizzare tutti i bridge Ethernet disponibili sul tuo server.
L'esempio seguente mostrerà tutte le istanze correnti dei tre bridge che abbiamo appena creato.
# brctl show bridge name bridge id STP enabled interfaces dev 8000.000000000000 no prod 8000.000000000000 no stage 8000.000000000000 no
Se noti che l'ultima colonna "interfacce" non contiene nulla. Ciò significa che a nessuno di questi bridge è ancora associato alcun dispositivo Ethernet.
In una nota correlata:9 esempi di Linux ethtool per manipolare la scheda Ethernet
3. Elimina il bridge Ethernet esistente utilizzando delbr
Usando brctl delbr, possiamo eliminare un bridge ethernet esistente.
L'esempio seguente eliminerà l'istanza "stage" del bridge ethernet.
brctl delbr stage
Come puoi vedere dal comando show, non vediamo più il bridge ethernet "stage".
# brctl show bridge name bridge id STP enabled interfaces dev 8000.000000000000 no prod 8000.000000000000 no
Tieni presente che quando un bridge è attivo (cioè attivo), puoi rimuoverlo. Devi prima abbattere il bridge e poi eliminarlo.
Inoltre, tieni presente che il precedente comando brctl era chiamato brcfg.
4. Aggiungi un'interfaccia al bridge esistente
Usando brctl addif, possiamo aggiungere un'interfaccia a un bridge ethernet esistente.
L'esempio seguente aggiungerà la rete ethernet eth0 al bridge "dev" che abbiamo appena creato.
Avvertimento:non provarlo su macchine critiche, poiché potresti perdere la connessione di rete a quella macchina quando qualcosa va storto. Provalo solo su un'istanza di prova in cui hai accesso alla console.
brctl addif dev eth0
In quanto sopra:
- Questo renderà davvero l'eth0 un port del bridge “dev”.
- Quindi, tutti i frame che arrivano su eth0 verranno elaborati come se stessero davvero arrivando al bridge.
- Inoltre, quando i frame vengono inviati sul bridge "dev", utilizzerà eth0. Quando più interfacce fanno parte del bridge "dev", eth0 sarà un potenziale candidato per inviare i frame in uscita dal bridge.
Dopo aver aggiunto eth0 al bridge "dev", il comando brctl show mostrerà quanto segue.
# brctl show bridge name bridge id STP enabled interfaces dev 8000.0050568954bc no eth0 prod 8000.000000000000 no
Come puoi vedere dall'output sopra, l'ultima colonna "interfacce" come ha eth0 per il bridge "dev".
Nota:se qualcosa va storto durante l'aggiunta di eth0 al bridge "dev", esegui il seguente comando dalla console per eliminare il bridge dev.
# brctl delbr dev
Inoltre, nota che se provi ad aggiungere l'interfaccia di loopback al bridge, otterrai il seguente comando di argomento non valido.# brctl addif dev lo
impossibile aggiungere lo a bridge dev:argomento non valido
Come puoi immaginare, non puoi aggiungere al bridge un'interfaccia che non esiste sul sistema.
# brctl addif dev eth2 interface eth2 does not exist!
5. Aggiungi più interfacce al bridge esistente
Nell'esempio sopra, abbiamo aggiunto un solo dispositivo ethernet (eth0) al bridge.
Ma l'idea di utilizzare un bridge è aggiungere più interfacce al bridge.
Nell'esempio seguente, stiamo aggiungendo sia eth0 che eth1 al bridge "dev".
# brctl addif dev eth0 eth1
Come vedete dal seguente output, per il dev bridge vediamo due righe. Nell'ultima colonna "interfaces", vediamo sia eth0 che eth1 per bridge ethernet "dev".
# brctl show bridge name bridge id STP enabled interfaces dev 8000.0050568954bc no eth0 eth1 prod 8000.000000000000 no
Nota:se una particolare interfaccia Ethernet fa già parte di un bridge, non puoi aggiungerla a un altro bridge.
Fondamentalmente, una rete può far parte di un solo bridge. In caso contrario, verrà visualizzato il seguente messaggio di errore quando si tenta di aggiungerlo a un altro bridge.
# brctl addif prod eth1 device eth1 is already a member of a bridge; can't enslave it to bridge prod
6. Monitoraggio dell'indirizzo MAC di un Bridge
Usando brctl showmacs, possiamo vedere tutti gli indirizzi MAC appresi di un bridge.
Nell'esempio seguente, a partire da ora, i due indirizzi mac che si sono collegati al bridge ethernet “prod”. Questi dati continueranno a cambiare a seconda dello stato attuale di ciò che è collegato al bridge.
# brctl showmacs prod port no mac addr is local? ageing timer 1 00:50:56:89:54:bc yes 0.00 2 00:60:50:46:bc:40 no 0.00
7. Imposta il tempo di invecchiamento per l'indirizzo Mac su un bridge
Nell'esempio seguente, stiamo impostando il tempo di invecchiamento dell'indirizzo mac su 120 secondi su bridge ethernet "dev".
brctl setaging dev 120
In quanto sopra:
- dev è il nome del bridge su cui stiamo impostando questo valore
- 120 sono secondi
- Quindi, se un frame non viene visto per il bridge "dev" entro 120 secondi, il bridge "dev" cancellerà l'indirizzo mac dal database di inoltro.
8. Configura Spanning Tree su Ethernet Bridge
Usando brctl stp, possiamo configurare lo spanning tree su un bridge ethernet.
Ma per impostazione predefinita, lo spanning tree non è abilitato quando creiamo un bridge.
Lo spanning tree è utile quando hai più bridge sulla tua rete e tutti possono collaborare per trovare il percorso più breve tra due Ethernet.
Nell'esempio seguente, stiamo attivando lo spanning tree sul bridge ethernet "dev".
Possiamo usare on o yes per abilitare lo spanning tree. Quindi, entrambi i seguenti comandi faranno esattamente lo stesso.
brctl stp dev on brctl stp dev yes
Come puoi vedere dal seguente output dello spettacolo, i valori nella colonna "STP abilitato" per il bridge "dev" sono ora "sì".
# brctl show bridge name bridge id STP enabled interfaces dev 8000.000000000000 yes prod 8000.000000000000 no
Per disattivare lo spanning tree sul tuo bridge ethernet, procedi come segue:
# brctl stp dev off # brctl show bridge name bridge id STP enabled interfaces dev 8000.000000000000 no prod 8000.000000000000 no
9. Visualizza i valori dei parametri STP di un ponte
STP sta per Spanning Tree Protocol.
Dopo aver abilitato stp sul tuo bridge, puoi utilizzare showstp come mostrato di seguito per visualizzare tutti i valori dei parametri stp del tuo bridge.
Di seguito verrà visualizzato il parametro stp e il suo valore corrente per il bridge "dev".
# brctl showstp dev dev bridge id 000a.000000000000 designated root 000a.000000000000 root port 0 path cost 0 max age 19.99 bridge max age 19.99 hello time 1.99 bridge hello time 1.99 forward delay 14.99 bridge forward delay 14.99 ageing time 299.95 hello timer 0.00 tcn timer 0.00 topology change timer 0.00 gc timer 0.00 hash elasticity 4 hash max 512 mc last member count 2 mc init query count 2 mc router 1 mc snooping 1 mc last member timer 0.99 mc membership timer 259.96 mc querier timer 254.96 mc query interval 124.98 mc response interval 9.99 mc init query interval 31.24 flags
10. Modifica i valori dei parametri del ponte
È possibile modificare i valori predefiniti del parametro spanning tree per un bridge specifico. Puoi anche modificare altri valori dei parametri del bridge che hai creato.
Tutti i seguenti comandi impostati menzionati nella tabella seguente iniziano con brctl. Ad esempio:
brctl setageing dev 100
La tabella seguente mostra i comandi set disponibili per brctl. Il valore del tempo è in secondi.
comando brctl | Descrizione |
---|---|
impostazione del tempo di ponte | Imposta il tempo di invecchiamento |
setbridgeprio bridge prio | Imposta la priorità del bridge (tra 0 e 65535) |
imposta l'ora del ponte | Imposta ritardo bridge forward |
ora del ponte di sethello | Imposta ora di saluto |
setmaxage bridge time | Imposta l'età massima del messaggio |
imposta l'ora del ponte | Imposta l'intervallo di raccolta dei rifiuti in secondi |
sethashel bridge int | Imposta l'elasticità dell'hash |
sethashmax bridge int | Imposta hash max |
setmclmc bridge int | Imposta il conteggio degli ultimi membri multicast |
setmcrouter bridge int | Imposta router multicast |
setmcsnoop bridge int | Imposta snooping multicast |
setmcsqc bridge int | Imposta il conteggio delle query di avvio multicast |
imposta l'ora del bridge | Imposta l'intervallo dell'ultimo membro multicast |
setmcmi bridge time | Imposta intervallo di appartenenza multicast |
setmcqpi bridge time | Imposta intervallo interrogante multicast |
setmcqi bridge time | Imposta intervallo di query multicast |
setmcqri bridge time | Imposta intervallo di risposta alla query multicast |
setmcqri bridge time | Imposta l'intervallo della query di avvio multicast |
setpathcost costo della porta del bridge | Imposta il costo del percorso |
prio porta bridge setportprio | Imposta la priorità della porta (tra 0 e 255) |
setportmcrouter bridge port int | Imposta porta router multicast |
sethashel bridge int | Imposta il valore di elasticità dell'hash |
.