GNU/Linux >> Linux Esercitazione >  >> Linux

Perché assegnare indirizzi MAC e IP sull'interfaccia Bridge

Poiché un bridge è un dispositivo Ethernet, necessita di un indirizzo MAC. Un bridge linux può dare origine a cose come frame di protocollo spanning-tree e un traffico del genere ha bisogno di un indirizzo MAC di origine.

Un bridge non richiede un indirizzo ip. Ci sono molte situazioni in cui non ne avrai uno. Tuttavia, in molti casi puoi averne uno, come:

  • Quando il bridge funge da gateway predefinito per un gruppo di contenitori o macchine virtuali (o anche interfacce fisiche). In questo caso ha bisogno di un indirizzo IP (poiché il routing avviene a livello IP).

  • Quando la tua NIC "primaria" è un membro del bridge, in modo tale che il bridge sia la tua connettività con il mondo esterno. In questo caso, piuttosto che assegnare un indirizzo IP a (per esempio) eth0 , lo assegneresti invece al dispositivo bridge.

Se il ponte non richiesto per il routing IP, quindi non necessita di un indirizzo IP. Esempi di questa situazione includono:

  • Quando il bridge viene utilizzato per creare una rete privata di dispositivi senza connettività esterna o con connettività esterna fornita tramite un dispositivo diverso dal bridge.

Sì, l'interfaccia bridge funge da porta aggiuntiva.

Dopo man 5 systemd.netdev :

Un dispositivo bridge è uno switch software e ciascuno dei suoi dispositivi slave e il bridge stesso sono porte dello switch.


Il dispositivo bridge elencato con gli altri dispositivi di rete non rappresenta il bridge virtuale, rappresenta una NIC virtuale connessa al bridge. Se avessi un bridge fisico connesso a dispositivi di rete fisici, non vedresti nemmeno il bridge fisico elencato nei tuoi dispositivi di rete, ma vedresti la tua scheda NIC collegata al bridge, che ovviamente ha il proprio indirizzo MAC come qualsiasi altro dispositivo di rete.

L'assegnazione di un indirizzo IP al dispositivo bridge (che, ancora una volta, è in realtà una NIC virtuale connessa al bridge virtuale) consente al dispositivo host di instradare i pacchetti alla sottorete creata dal bridge e a tutti i dispositivi ad esso collegati. Perfetto!

Mentre strumenti per dispositivi di rete come iproute2 (con il ip link e ip addr comandi) consentono di vedere la NIC virtuale collegata al bridge, è anche possibile vedere il bridge virtuale stesso con il brctl programma. Il brctl show comando elencherà tutti i bridge e le loro interfacce collegate. Ecco un esempio che utilizza iproute e brctl con bridge Linux e tuntaps:

# 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

Nota che ciò che è elencato sotto "interfacce" nell'output di brctl show sono gli altri interfacce collegate al bridge, oltre al br0 interfaccia che è stata aggiunta automaticamente quando è stato creato il bridge. (Immagino che Linux non consenta la creazione di un bridge virtuale senza dispositivi collegati e i bridge senza dispositivi vengano automaticamente distrutti.) Per la cronaca, non ho effettuato ricerche nel kernel, né sono un esperto di reti. Ho pubblicato questo perché sembra spiegare in modo convincente l'implementazione piuttosto confusa dei bridge virtuali in Linux. Non credo che gli stessi bridge virtuali abbiano indirizzi MAC.


Linux
  1. Perché sono passato da Mac a Linux

  2. Linux – Perché usiamo Su – e non solo Su?

  3. Alternative Pgrep e Pkill su Mac Os X?

  4. Perché Deis e che cos'è?

  5. Come creare un'interfaccia bridge utilizzando nmcli in CentOS/RHEL 7 e 8

Linux vs Mac:7 motivi per cui Linux è una scelta migliore del Mac

Che cos'è una macchina virtuale e perché usarla?

Linux vs Mac OS:15 motivi per utilizzare Linux invece di Mac OS

Interfaccia a nastro per GTK e Qt

Perché la porta 1111 è aperta ed è sicuro esserlo?

Posso associare un (grande) blocco di indirizzi a un'interfaccia?