brctl je zkratka pro Bridge Control.
V Linuxu se tento příkaz používá k vytvoření a manipulaci s ethernetovým mostem.
To se obvykle používá, když máte na svých serverech více ethernetových sítí a chcete je zkombinovat a prezentovat to jako jednu logickou síť.
Například, pokud máte eth0 a eth1, můžete je zkombinovat a prezentovat to jen jako br0, což následně použije pro síťový provoz eth0 i eth1.
V tomto tutoriálu jsme probrali následující:
- Vytvořte nový ethernetový most pomocí addbr
- Zobrazit dostupný Ethernet Bridge pomocí show
- Odstranit existující ethernetový most pomocí delbr
- Přidat rozhraní ke stávajícímu mostu
- Přidat více rozhraní ke stávajícímu mostu
- Sledování MAC adresy mostu
- Nastavte dobu stárnutí pro adresu Mac na Bridge
- Nastavení Spanning Tree na Ethernet Bridge
- Zobrazení hodnot parametrů STP mostu
- Změna hodnot parametrů mostu
1. Vytvořte nový ethernetový most pomocí addbr
Pomocí brctl addbr můžeme vytvořit nový ethernetový most.
V následujícím příkladu jsme na tomto serveru vytvořili tři ethernetové mosty:dev, stage a prod.
brctl addbr dev brctl addbr stage brctl addbr prod
Upozorňujeme, že v této fázi se jedná pouze o prázdný ethernetový most, na kterém není žádná další ethernetová síť.
Vezměte prosím na vědomí, že tento brctl se trochu liší od propojení linuxových EtherChannel NIC, o kterém jsme hovořili dříve.
2. Zobrazit dostupný ethernetový most pomocí show
Pomocí brctl show můžeme zobrazit všechny dostupné ethernetové mosty na vašem serveru.
Následující příklad zobrazí všechny aktuální instance tří mostů, které jsme právě vytvořili.
# brctl show bridge name bridge id STP enabled interfaces dev 8000.000000000000 no prod 8000.000000000000 no stage 8000.000000000000 no
Pokud si všimnete, že poslední sloupec „rozhraní“ na něm nic není. To znamená, že k žádnému z těchto mostů zatím není přidruženo žádné ethernetové zařízení.
K související poznámce:9 příkladů Linux ethtool pro manipulaci s ethernetovou kartou
3. Smazat existující ethernetový most pomocí delbr
Pomocí brctl delbr můžeme odstranit existující ethernetový most.
Následující příklad odstraní instanci „stage“ ethernetového mostu.
brctl delbr stage
Jak vidíte z příkazu show, už nevidíme ethernetový most „stage“.
# brctl show bridge name bridge id STP enabled interfaces dev 8000.000000000000 no prod 8000.000000000000 no
Vezměte prosím na vědomí, že když je most aktivní (tj. nahoře), můžete jej odstranit. Nejprve musíte most sundat a pak ho smazat.
Všimněte si také, že dřívější příkaz brctl byl nazýván jako brcfg.
4. Přidejte rozhraní ke stávajícímu mostu
Pomocí brctl addif můžeme přidat rozhraní k existujícímu ethernetovému mostu.
Následující příklad přidá ethernetovou síť eth0 k mostu „dev“, který jsme právě vytvořili.
Upozornění:Nezkoušejte to na žádném kritickém počítači, protože byste mohli ztratit síťové připojení k tomuto počítači, když se něco pokazí. Zkuste to pouze na testovací instanci, kde máte přístup ke konzole.
brctl addif dev eth0
Ve výše uvedeném:
- To skutečně udělá z eth0 jako přístavu mostu „dev“.
- Všechny snímky, které dorazí na eth0, budou tedy zpracovány, jako by skutečně přicházely na most.
- Také, když jsou rámce odesílány na „dev“ bridge, použije eth0. Pokud je součástí „dev“ mostu více rozhraní, pak eth0 bude potenciálním kandidátem na odesílání odchozích rámců z mostu.
Po přidání eth0 do mostu „dev“ příkaz brctl show zobrazí následující.
# brctl show bridge name bridge id STP enabled interfaces dev 8000.0050568954bc no eth0 prod 8000.000000000000 no
Jak vidíte z výše uvedeného výstupu, poslední sloupec „rozhraní“ má eth0 pro most „dev“.
Poznámka:Pokud se při přidávání eth0 do mostu „dev“ něco pokazí, spusťte z konzoly následující příkaz a smažte most dev.
# brctl delbr dev
Pamatujte také, že pokud se pokusíte přidat rozhraní zpětné smyčky do mostu, dostanete následující příkaz neplatný argument.# brctl addif dev lo
nelze přidat lo do bridge dev:Neplatný argument
Jak si dokážete představit, do mostu nemůžete přidat rozhraní, které v systému neexistuje.
# brctl addif dev eth2 interface eth2 does not exist!
5. Přidat více rozhraní do existujícího mostu
Ve výše uvedeném příkladu jsme do mostu přidali pouze jedno ethernetové zařízení (eth0).
Ale celá myšlenka použití mostu je přidat k mostu více rozhraní.
V následujícím příkladu přidáváme eth0 i eth1 k mostu „dev“.
# brctl addif dev eth0 eth1
Jak vidíte z následujícího výstupu, pro dev bridge vidíme dvě čáry. V posledním sloupci „rozhraní“ vidíme eth0 i eth1 pro „dev“ ethernetový most.
# brctl show bridge name bridge id STP enabled interfaces dev 8000.0050568954bc no eth0 eth1 prod 8000.000000000000 no
Poznámka:Pokud je určité ethernetové rozhraní již součástí mostu, nemůžete jej přidat do jiného mostu.
V zásadě může být jedna síť součástí pouze jednoho mostu. Pokud ne, při pokusu o přidání do jiného mostu se zobrazí následující chybová zpráva.
# brctl addif prod eth1 device eth1 is already a member of a bridge; can't enslave it to bridge prod
6. Sledování MAC adresy mostu
Pomocí brctl showmacs můžeme vidět všechny naučené MAC adresy mostu.
V následujícím příkladu jsou od nynějška následující dvě adresy mac, které se připojily k „prod“ ethernetovému mostu. Tato data se budou neustále měnit v závislosti na aktuálním stavu toho, co je připojeno k mostu.
# 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. Nastavení doby stárnutí pro adresu Mac na mostu
V následujícím příkladu nastavujeme dobu stárnutí mac adresy na 120 sekund na „dev“ ethernetovém můstku.
brctl setaging dev 120
Ve výše uvedeném:
- dev je název mostu, kde nastavujeme tuto hodnotu
- 120 je sekund
- Pokud tedy pro „dev“ bridge není vidět rámec do 120 sekund, pak „dev“ bridge odstraní mac adresu z databáze pro předávání.
8. Nastavte Spanning Tree na Ethernet Bridge
Pomocí brctl stp můžeme nastavit spanning tree na ethernet bridge.
Ve výchozím nastavení však spanning tree není povolen, když vytváříme most.
Spanning tree je užitečný, když máte v síti více mostů a všechny mohou spolupracovat při hledání nejkratší cesty mezi dvěma ethernety.
V následujícím příkladu zapínáme spanning tree na „dev“ ethernet bridge.
K aktivaci spanning tree můžeme použít buď on nebo yes. Oba následující příkazy tedy udělají přesně totéž.
brctl stp dev on brctl stp dev yes
Jak vidíte z následující ukázky, hodnoty ve sloupci „STP enabled“ pro most „dev“ jsou nyní „yes“.
# brctl show bridge name bridge id STP enabled interfaces dev 8000.000000000000 yes prod 8000.000000000000 no
Chcete-li na svém ethernetovém mostu vypnout spanning tree, postupujte takto:
# brctl stp dev off # brctl show bridge name bridge id STP enabled interfaces dev 8000.000000000000 no prod 8000.000000000000 no
9. Zobrazení hodnot parametrů STP mostu
STP je zkratka pro Spanning Tree Protocol.
Jakmile povolíte stp na mostě, můžete použít showtp, jak je uvedeno níže, k zobrazení všech hodnot parametrů stp vašeho mostu.
Následující zobrazí parametr stp a jeho aktuální hodnotu pro most „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. Změňte hodnoty parametrů mostu
Výchozí hodnoty parametru spanning tree pro konkrétní most lze změnit. Můžete také změnit další hodnoty parametrů mostu, který jste vytvořili.
Všechny následující příkazy sady uvedené v tabulce níže začínají na brctl. Například:
brctl setageing dev 100
Následující tabulka zobrazuje dostupné příkazy sady pro brctl. Hodnota času je v sekundách.
příkaz brctl | Popis |
---|---|
doba nastavení mostu | Nastavit dobu stárnutí |
setbridgeprio bridge prio | Nastavte prioritu mostu (mezi 0 a 65535) |
setfd bridge time | Nastavit dopředné zpoždění mostu |
sethello bridge time | Nastavit čas ahoj |
setmaxage bridge time | Nastavit maximální stáří zprávy |
setgcint bridge time | Nastavit interval sběru odpadu v sekundách |
sethashel bridge int | Nastavit hašovací elasticitu |
sethashmax bridge int | Nastavit maximální hodnotu hash |
setmclmc bridge int | Nastavit počet posledních členů vícesměrového vysílání |
setmcrouter bridge int | Nastavit směrovač vícesměrového vysílání |
setmcsnoop bridge int | Nastavit multicast snooping |
setmcsqc bridge int | Nastavit počet dotazů při spuštění vícesměrového vysílání |
setmclmi čas přemostění | Nastavit interval posledního člena vícesměrového vysílání |
setmcmi čas přemostění | Nastavit interval členství ve vícesměrovém vysílání |
setmcqpi doba přemostění | Nastavit interval dotazu vícesměrového vysílání |
setmcqi čas přemostění | Nastavit interval dotazů vícesměrového vysílání |
setmcqri přemostění | Nastavit interval odpovědi na dotaz vícesměrového vysílání |
setmcqri přemostění | Nastavit interval dotazů při spuštění vícesměrového vysílání |
setpathcost bridge port cost | Nastavit cenu trasy |
setportprio bridge port prio | Nastavte prioritu portu (mezi 0 a 255) |
setportmcrouter bridge port int | Nastavit směrovač vícesměrového vysílání portů |
sethashel bridge int | Nastavit hodnotu hašovací elasticity |
.