GNU/Linux >> Znalost Linux >  >> Linux

Proč přidělovat MAC a IP adresy na rozhraní Bridge

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.


Linux
  1. Jak přiřadit více IP adres jednomu síťovému rozhraní na CentOS 8

  2. Linux – proč používáme Su – a nejen Su?

  3. Proč je to Rm -rf a ne Rmdir -rf?

  1. Proč jsem přešel z Macu na Linux

  2. proč linux bridge nefunguje

  3. Jak mohu přiřadit IP podle MAC adresy v dhcpd

  1. Hašování hesel a proč to potřebujeme

  2. Proč jsou data důležitá a jak je chránit

  3. Alternativy Pgrep a Pkill na Mac OS X?