Protože most je ethernetové zařízení, potřebuje MAC adresu. Linuxový most může pocházet z věcí, jako jsou rámce protokolu spanning-tree, a takový provoz potřebuje původní MAC adresu.
Most nevyžaduje ip adresu. Existuje mnoho situací, ve kterých nebudete mít žádnou. V mnoha případech však můžete mít jeden, například:
-
Když most funguje jako výchozí brána pro skupinu kontejnerů nebo virtuálních počítačů (nebo dokonce fyzických rozhraní). V tomto případě potřebuje IP adresu (protože směrování probíhá na IP vrstvě).
-
Když je vaše "primární" NIC členem mostu, takže most je vaše připojení k vnějšímu světu. V tomto případě spíše než přiřazení IP adresy (například)
eth0
, místo toho byste jej přiřadili k přemosťovacímu zařízení.
Pokud most není vyžadováno pro směrování IP, pak nepotřebuje adresu IP. Příklady této situace zahrnují:
- Když se most používá k vytvoření soukromé sítě zařízení bez externího připojení nebo s externím připojením poskytovaným prostřednictvím jiného zařízení než mostu.
Ano, rozhraní mostu funguje jako další port.
Po man 5 systemd.netdev
:
Přemosťovací zařízení je softwarový přepínač a každé jeho podřízené zařízení a samotný most jsou porty přepínače.
Přemosťovací zařízení uvedené u vašich ostatních síťových zařízení nepředstavuje virtuální most, představuje virtuální síťovou kartu, která je připojena k mostu. Pokud byste měli fyzický most připojený k fyzickým síťovým zařízením, neuvidíte fyzický most uvedený ani ve vašich síťových zařízeních – ale uvidíte svou síťovou kartu, která je připojena k mostu, který má samozřejmě svou vlastní MAC adresu, např. jakékoli jiné síťové zařízení.
Přiřazení IP adresy mostovému zařízení (což je opět ve skutečnosti virtuální NIC připojená k virtuálnímu mostu) umožňuje vašemu hostitelskému zařízení směrovat pakety do podsítě vytvořené mostem a všemi zařízeními k němu připojenými. Skvělé!
Při propojování síťových nástrojů zařízení, jako je iproute2
(s ip link
a ip addr
příkazy) vám umožní vidět virtuální NIC připojenou k mostu, je také možné vidět samotný virtuální most pomocí brctl
program. brctl show
příkaz zobrazí seznam všech mostů a jejich připojených rozhraní. Zde je příklad použití iproute
a brctl
s linuxovými mosty a tuntapy:
# ip link add br0 type bridge
# ip tuntap add dev tap0 mode tap
# ip tuntap add dev tap1 mode tap
# ip addr add 10.0.0.1/24 broadcast 10.0.0.255 dev br0
# ip addr add 10.0.0.2/24 broadcast 10.0.0.255 dev tap0
# ip addr add 10.0.0.3/24 broadcast 10.0.0.255 dev tap1
# brctl addif br0 tap0
# brctl addif br0 tap1
# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.2e22e593fe8c no tap0
tap1
# ip addr show to 10.0.0.0/24
11: br0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
inet 10.0.0.1/24 brd 10.0.0.255 scope global br0
valid_lft forever preferred_lft forever
12: tap0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast master br0 state DOWN group default qlen 1000
inet 10.0.0.2/24 brd 10.0.0.255 scope global tap0
valid_lft forever preferred_lft forever
13: tap1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast master br0 state DOWN group default qlen 1000
inet 10.0.0.3/24 brd 10.0.0.255 scope global tap1
valid_lft forever preferred_lft forever
Všimněte si, že to, co je uvedeno v části "rozhraní" ve výstupu brctl show
jsou jiné rozhraní připojená k mostu, navíc k br0
rozhraní, které bylo automaticky přidáno při vytvoření mostu. (Myslím, že Linux neumožňuje vytvoření virtuálního mostu bez připojených zařízení a mosty bez zařízení jsou automaticky zničeny.) Pro pořádek jsem to v jádře nezkoumal, ani nejsem odborník na sítě. Zveřejnil jsem to, protože se zdá, že to přesvědčivě vysvětluje poněkud matoucí implementaci virtuálních mostů v Linuxu. Nevěřím, že samotné virtuální mosty mají MAC adresy.