brctl signifie Bridge Control.
Sous Linux, cette commande est utilisée pour créer et manipuler un pont Ethernet.
Ceci est généralement utilisé lorsque vous avez plusieurs réseaux Ethernet sur vos serveurs et que vous souhaitez les combiner et les présenter comme un seul réseau logique.
Par exemple, si vous avez eth0 et eth1, vous pouvez les combiner et le présenter simplement comme br0, qui utilisera à son tour eth0 et eth1 pour le trafic réseau.
Dans ce didacticiel, nous avons abordé les éléments suivants :
- Créer un nouveau pont Ethernet à l'aide d'addbr
- Afficher le pont Ethernet disponible à l'aide de show
- Supprimer le pont Ethernet existant à l'aide de delbr
- Ajouter une interface à un pont existant
- Ajouter plusieurs interfaces au pont existant
- Suivi de l'adresse MAC d'un pont
- Définir le temps de vieillissement pour l'adresse Mac sur un pont
- Configurer Spanning Tree sur un pont Ethernet
- Afficher les valeurs des paramètres STP d'un pont
- Modifier les valeurs des paramètres de pont
1. Créer un nouveau pont Ethernet à l'aide d'addbr
En utilisant brctl addbr, nous pouvons créer un nouveau pont Ethernet.
Dans l'exemple suivant, nous avons créé trois ponts Ethernet sur ce serveur :dev, stage et prod.
brctl addbr dev brctl addbr stage brctl addbr prod
Veuillez noter qu'à ce stade, il s'agit simplement d'un pont Ethernet vide qui n'a aucun autre réseau Ethernet dessus.
Veuillez noter que ce brctl est un peu différent de la liaison Linux EtherChannel NIC dont nous avons parlé plus tôt.
2. Afficher le pont Ethernet disponible à l'aide de show
En utilisant brctl show, nous pouvons voir tous les ponts Ethernet disponibles sur votre serveur.
L'exemple suivant affichera toutes les instances actuelles des trois ponts que nous venons de créer.
# brctl show bridge name bridge id STP enabled interfaces dev 8000.000000000000 no prod 8000.000000000000 no stage 8000.000000000000 no
Si vous remarquez que la dernière colonne "interfaces" n'a rien dessus. Cela signifie qu'aucun de ces ponts n'a encore de périphérique Ethernet associé.
Sur une note connexe :9 exemples Linux ethtool pour manipuler une carte Ethernet
3. Supprimer le pont Ethernet existant à l'aide de delbr
En utilisant brctl delbr, nous pouvons supprimer un pont Ethernet existant.
L'exemple suivant supprimera l'instance "stage" du pont Ethernet.
brctl delbr stage
Comme vous le voyez dans la commande show, nous ne voyons plus le pont Ethernet "stage".
# brctl show bridge name bridge id STP enabled interfaces dev 8000.000000000000 no prod 8000.000000000000 no
Veuillez noter que lorsqu'un pont est actif (c'est-à-dire en place), vous pouvez le supprimer. Vous devez d'abord faire tomber le pont, puis le supprimer.
Veuillez également noter que la commande brctl précédente était appelée brcfg.
4. Ajouter une interface au pont existant
En utilisant brctl addif, nous pouvons ajouter une interface à un pont Ethernet existant.
L'exemple suivant ajoutera le réseau Ethernet eth0 au pont "dev" que nous venons de créer.
Avertissement :N'essayez pas ceci sur des machines critiques, car vous risquez de perdre la connexion réseau à cette machine en cas de problème. Essayez ceci uniquement sur une instance de test où vous avez accès à la console.
brctl addif dev eth0
Dans ce qui précède :
- Cela fera vraiment de eth0 un port du pont "dev".
- Ainsi, toutes les trames qui arrivent sur eth0 seront traitées comme si elles arrivaient réellement au pont.
- De plus, lorsque les trames sont envoyées sur le pont "dev", il utilisera eth0. Lorsque plusieurs interfaces font partie du pont "dev", alors eth0 sera un candidat potentiel pour envoyer les trames sortantes du pont.
Après avoir ajouté le pont eth0 à "dev", la commande brctl show affichera ce qui suit.
# brctl show bridge name bridge id STP enabled interfaces dev 8000.0050568954bc no eth0 prod 8000.000000000000 no
Comme vous le voyez dans la sortie ci-dessus, la dernière colonne "interfaces" comment a eth0 pour le pont "dev".
Remarque :Si quelque chose ne va pas lors de l'ajout d'eth0 au pont "dev", exécutez la commande suivante à partir de la console pour supprimer le pont dev.
# brctl delbr dev
Notez également que si vous essayez d'ajouter l'interface de bouclage au pont, vous obtiendrez la commande d'argument invalide suivante.# brctl addif dev lo
can't add lo to bridge dev :Invalid argument
Comme vous pouvez l'imaginer, vous ne pouvez pas ajouter au pont une interface qui n'existe pas sur le système.
# brctl addif dev eth2 interface eth2 does not exist!
5. Ajouter plusieurs interfaces au pont existant
Dans l'exemple ci-dessus, nous avons ajouté un seul périphérique Ethernet (eth0) au pont.
Mais, l'idée même d'utiliser un pont est d'ajouter plus d'interfaces au pont.
Dans l'exemple suivant, nous ajoutons à la fois eth0 et eth1 au pont "dev".
# brctl addif dev eth0 eth1
Comme vous le voyez dans la sortie suivante, pour le pont de développement, nous voyons deux lignes. Dans la dernière colonne "interfaces", nous voyons à la fois eth0 et eth1 pour le pont Ethernet "dev".
# brctl show bridge name bridge id STP enabled interfaces dev 8000.0050568954bc no eth0 eth1 prod 8000.000000000000 no
Remarque :Si une interface Ethernet particulière fait déjà partie d'un pont, vous ne pouvez pas l'ajouter à un autre pont.
Fondamentalement, un réseau ne peut faire partie que d'un seul pont. Sinon, nous recevrons le message d'erreur suivant lorsque nous essaierons de l'ajouter à un autre pont.
# brctl addif prod eth1 device eth1 is already a member of a bridge; can't enslave it to bridge prod
6. Suivi de l'adresse MAC d'un pont
En utilisant brctl showmacs, nous pouvons voir toutes les adresses MAC apprises d'un pont.
Dans l'exemple suivant, à partir de maintenant, voici les deux adresses mac qui se sont connectées au pont Ethernet "prod". Ces données continueront de changer en fonction de l'état actuel de ce qui est connecté au pont.
# 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. Définir le temps de vieillissement pour l'adresse Mac sur un pont
Dans l'exemple suivant, nous définissons le délai de vieillissement de l'adresse mac sur 120 secondes sur le pont Ethernet "dev".
brctl setaging dev 120
Dans ce qui précède :
- dev est le nom du pont où nous définissons cette valeur
- 120 correspond à des secondes
- Ainsi, si aucune trame n'est vue pour le pont "dev" dans les 120 secondes, le pont "dev" supprimera l'adresse mac de la base de données de transfert.
8. Configurer Spanning Tree sur un pont Ethernet
En utilisant brctl stp, nous pouvons configurer le spanning tree sur le pont Ethernet.
Mais par défaut, le spanning tree n'est pas activé lorsque nous créons un pont.
Spanning Tree est utile lorsque vous avez plusieurs ponts sur votre réseau, et ils peuvent tous collaborer pour trouver le chemin le plus court entre deux Ethernets.
Dans l'exemple suivant, nous activons le spanning tree sur le pont Ethernet "dev".
Nous pouvons utiliser on ou yes pour activer le spanning tree. Ainsi, les deux commandes suivantes feront exactement la même chose.
brctl stp dev on brctl stp dev yes
Comme vous le voyez dans la sortie d'affichage suivante, les valeurs de la colonne "STP activé" pour le pont "dev" sont désormais "oui".
# brctl show bridge name bridge id STP enabled interfaces dev 8000.000000000000 yes prod 8000.000000000000 no
Pour désactiver le Spanning Tree sur votre pont Ethernet, procédez comme suit :
# brctl stp dev off # brctl show bridge name bridge id STP enabled interfaces dev 8000.000000000000 no prod 8000.000000000000 no
9. Afficher les valeurs des paramètres STP d'un pont
STP signifie Spanning Tree Protocol.
Une fois que vous avez activé stp sur votre pont, vous pouvez utiliser showstp comme indiqué ci-dessous pour afficher toutes les valeurs des paramètres stp de votre pont.
Ce qui suit affichera le paramètre stp et sa valeur actuelle pour le pont "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. Modifier les valeurs des paramètres de pont
Les valeurs par défaut des paramètres Spanning Tree pour un pont spécifique peuvent être modifiées. Vous pouvez également modifier d'autres valeurs de paramètres du pont que vous avez créé.
Toutes les commandes set suivantes mentionnées dans le tableau ci-dessous commencent par brctl. Par exemple :
brctl setageing dev 100
Le tableau suivant affiche les commandes set disponibles pour brctl. La valeur de temps est en secondes.
commande brctl | Description |
---|---|
configuration du temps de pont | Définir le temps de vieillissement |
setbridgeprio bridge prior | Définir la priorité du pont (entre 0 et 65535) |
setfd bridge time | Définir le délai de transfert du pont |
heure du pont sethello | Définir l'heure d'accueil |
setmaxage bridge time | Définir l'âge maximum des messages |
setgcint bridge time | Définir l'intervalle de récupération de place en secondes |
Pont Sethashel int | Définir l'élasticité du hachage |
sethashmax bridge int | Définir le hachage max |
setmclmc bridge int | Définir le nombre de derniers membres multicast |
setmcrouter bridge int | Définir le routeur multidiffusion |
setmcsnoop bridge int | Définir la surveillance multidiffusion |
setmcsqc bridge int | Définir le nombre de requêtes de démarrage multidiffusion |
setmclmi bridge time | Définir l'intervalle du dernier membre de multidiffusion |
setmcmi bridge time | Définir l'intervalle d'adhésion à la multidiffusion |
temps de pont setmcqpi | Définir l'intervalle de demande de multidiffusion |
temps de pont setmcqi | Définir l'intervalle de requête multidiffusion |
temps de pont setmcqri | Définir l'intervalle de réponse aux requêtes multidiffusion |
temps de pont setmcqri | Définir l'intervalle de requête de démarrage multidiffusion |
coût du port du pont setpathcost | Définir le coût du chemin |
setportprio bridge port prior | Définir la priorité du port (entre 0 et 255) |
setportmcrouter bridge port int | Définir le routeur de multidiffusion du port |
Pont Sethashel int | Définir la valeur d'élasticité du hachage |
.