Networking creare un bridge su debian 9 per KVM

La creazione di un bridge di rete serve per soddisfare più esigenze. Dal punto di vista terminologico un bridge di rete è un elemento hardware o software che connette due o più reti in modo che possano comunicare tra di loro.

  • E’ possibile ad esempio create un bridge tra due schede di rete  e filtrare il traffico con un firewall.
  • Poichè un bridge è in grado di gestire più connessioni viene usata nella virtualizzione KVM per consentire alle macchine virtuali di comunicare con altri computer. La configurazione di default infatti consente la navigazione internet ma non permette la comunicazione con altri computer.

Bridge su singola scheda

Per creare il il bridge è necessaria la presenza del pacchetto bridge-utils

apt install bridge-utils

Il file di configurazione è il solito

/etc/network/interfaces

Di seguito il file di configurazione di un doppio bridge su un pc con due schede di rete standard: Realtek e Intel .

Network:   Card-1: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller driver: r8169
           IF: enp7s0 state: up speed: 1000 Mbps duplex: full mac: 00:e0:e4:69:01:43
           Card-2: Intel 82572EI Gigabit Ethernet Controller (Copper) driver: e1000e
           IF: enp8s0 state: up speed: 1000 Mbps duplex: full mac: 00:11:11:b1:16:b6

Il nome delle schede di rete enp7s0 è basato sul Predictable Network Interface Names utilizzato a partire dalla v197 di systemd.

dmesg | grep enp
[ 1.180950] r8169 0000:07:00.0 enp7s0: renamed from eth0
[ 1.326320] e1000e 0000:08:00.0 enp8s0: renamed from eth0

abilitare l’autoconfigurazione della schede e dei bridge con auto :
auto enp7s0
auto br0

manual per assicurarsi che ottengano indirizzi sul dispositivo se non quelli manuali indicati

iface enp7s0 inet manual

Le impostazioni riportate di seguito riguardano la configurazione di due bridge statici sulle due schede presenti.
I settaggi tengono conto anche di di ipv6

:~$ cat /etc/network/interfaces 
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# Network interfaces
allow-hotplug enp7s0
allow-hotplug enp8s0

# abitilità la configurazione automatica  
auto enp7s0 

iface enp7s0 inet manual
iface enp7s0 inet6 manual

# set up bridge0 and give it a static ip
auto br0
iface br0 inet static
 address 192.168.1.121
 netmask 255.255.255.0
 network 192.168.1.0
 broadcast 192.168.1.255
 gateway 192.168.1.1
 bridge_ports enp7s0 #eth0
 bridge_stp off
 bridge_fd 0
 bridge_maxwait 0
 dns-nameservers 8.8.8.8

#allow autoconf for ipv6
iface br0 inet6 auto
       accept_ra 1

...
...

in caso di modifiche per riavviare il bridge

systemctl  start mode-bridge

File di configurazione in debian con il settaggio del bridge di tipo static su enp8s0

cat /etc/network/interfaces

:~$ cat /etc/network/interfaces 
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

....
....
auto enp8s0
...
iface enp8s0 inet manual
iface enp8s0 inet6 manual
...
# enp8s0 network interface 
# set up bridge and give it a static ip
auto br1
iface br1 inet static
 address 192.168.2.141
 netmask 255.255.255.0
 network 192.168.2.0
 broadcast 192.168.2.255
 gateway 192.168.2.1
 bridge_ports enp8s0 #eth1
 bridge_stp off
 bridge_fd 0
 bridge_maxwait 0
 dns-nameservers 8.8.8.8

#allow autoconf for ipv6
iface br1 inet6 auto
        accept_ra 1

 

Riavvio Bridge

per riavviare un bridge in genere si ricorre a mode-bridge
il comando varia a seconda che sia attivo il gestore di sistema e di servizi systemd o SysV

Debian/Centos/linux
- systemd
systemctl stop mode-bridge  
e
systemctl start mode-bridge 
- System V init (initscript) 
/etc/init.d/mode-bridge stop     
e 
/etc/init.d/mode-bridge start

 

Configurazione Bridge  su Pc desktop

La gestione della connessioni di rete in un pc desktop debian attualmente è demandata a NetworkManager.

In generale network-manager gestisce solamente le interfacce di rete che non risultano dichiarate in /etc/network/interfaces

Tuttavia qualora si installi KVM su pc desktop con attivo Network-Manager potrebbe inzialmente risultare comoda o necessaria anche la disabiltazione manuale della scheda di rete da usare per il bridge.

 

Risorse:

Annunci

Bridges su server di virtualizzazione kvm qemu

Impostazione doppio bridge su server di virtualizzazione kvm qemu ubuntu in ambito domestico .

HP NC382T PCI Express Dual Port Multifunction Gigabit Server Adapter (458492-B21) -Impostazione delle tre porte  di rete:

  • eth0 integrata realtek
  • eth1  HP  NC382T
  • eth2 HP   NC382T

File /etc/network/iterfaces

:~$ cat /etc/network/interfaces

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary on board nic
auto eth0 
# iface eth0 inet dhcp   
iface eth0 inet static
 address 192.168.1.161
 netmask 255.255.255.0
 broadcast 192.168.1.255
 network 192.168.1.0
 gateway 192.168.1.254
 dns-nameservers 8.8.8.8 61.101.93.101 85.37.17.14

# The eth1 left HP dual board primary  network interface
auto eth1
iface eth1 inet manual

auto br1 
iface br1 inet static
 address 192.168.67.160
 network 192.168.67.0
 netmask 255.255.255.0
 broadcast 192.168.67.255
# gateway 192.168.67.1
 bridge_ports eth1
 bridge_stp off
 bridge_fd 0
 bridge_maxwait 0
# dns-nameservers 85.37.17.14 85.38.28.78 8.8.8.8

# The eth2 right HP dual port nic
auto eth2
#iface eth2 inet dhcp
iface eth2 inet manual

auto br2 
iface br2 inet static  
 address 192.168.1.160
 network 192.168.1.0
 netmask 255.255.255.0
 broadcast 192.168.1.255 
 gateway 192.168.1.254
 bridge_ports eth2
 bridge_stp off
 bridge_fd 0
 bridge_maxwait 0
 # dns-nameservers 61.101.93.101 83.103.25.250 8.8.8.8

Impostatazione risultante delle porte di rete con ifconfig:

:~$ ifconfig
br1       Link encap:Ethernet  HWaddr ac:16:2d:c2:bf:b0  
          inet addr:192.168.67.160  Bcast:192.168.67.255  Mask:255.255.255.0
          inet6 addr: fe80::ae16:2dff:fec2:bfb0/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:71750 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1328 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:8513102 (8.5 MB)  TX bytes:134757 (134.7 KB)

br2       Link encap:Ethernet  HWaddr ac:16:2d:c2:bf:b2  
          inet addr:192.168.1.160  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::ae16:2dff:fec2:bfb2/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:52931 errors:0 dropped:0 overruns:0 frame:0
          TX packets:18593 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:7694979 (7.6 MB)  TX bytes:781446 (781.4 KB)

eth0      Link encap:Ethernet  HWaddr 90:2b:34:a8:43:f7  
          inet addr:192.168.1.161  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::922b:34ff:fea8:43f7/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1480373 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2574286 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:119896407 (119.8 MB)  TX bytes:3039995108 (3.0 GB)

eth1      Link encap:Ethernet  HWaddr ac:16:2d:c2:bf:b0  
          inet6 addr: fe80::ae16:2dff:fec2:bfb0/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3598708 errors:0 dropped:0 overruns:0 frame:0
          TX packets:12491199 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:643806892 (643.8 MB)  TX bytes:16984776801 (16.9 GB)

eth2      Link encap:Ethernet  HWaddr ac:16:2d:c2:bf:b2  
          inet6 addr: fe80::ae16:2dff:fec2:bfb2/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:83979 errors:0 dropped:0 overruns:0 frame:0
          TX packets:24852 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:25307687 (25.3 MB)  TX bytes:2064289 (2.0 MB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:4245672 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4245672 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:6966004595 (6.9 GB)  TX bytes:6966004595 (6.9 GB)

virbr0    Link encap:Ethernet  HWaddr fe:54:00:74:ab:cc  
          inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:320 errors:0 dropped:0 overruns:0 frame:0
          TX packets:247 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:37549 (37.5 KB)  TX bytes:47897 (47.8 KB)

vnet0     Link encap:Ethernet  HWaddr fe:54:00:38:ba:0d  
          inet6 addr: fe80::fc54:ff:fe38:ba0d/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3049011 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3490305 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:500 
          RX bytes:16309005764 (16.3 GB)  TX bytes:513720532 (513.7 MB)

vnet1     Link encap:Ethernet  HWaddr fe:54:00:89:0d:a9  
          inet6 addr: fe80::fc54:ff:fe89:da9/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3914 errors:0 dropped:0 overruns:0 frame:0
          TX packets:18612 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:500 
          RX bytes:1365381 (1.3 MB)  TX bytes:2133097 (2.1 MB)

vnet2     Link encap:Ethernet  HWaddr fe:54:00:bb:f6:ed  
          inet6 addr: fe80::fc54:ff:febb:f6ed/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:6097 errors:0 dropped:0 overruns:0 frame:0
          TX packets:10878 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:500 
          RX bytes:819235 (819.2 KB)  TX bytes:7984953 (7.9 MB)

vnet3     Link encap:Ethernet  HWaddr fe:54:00:74:ab:cc  
          inet6 addr: fe80::fc54:ff:fe74:abcc/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:264 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8337 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:500 
          RX bytes:29599 (29.5 KB)  TX bytes:446597 (446.5 KB)

Schede di rete a disposizione in KVM in questo caso.

KVM-virtual network device
KVM virtual network device available

Impostando il bridge2 come source device è possible assegnare al nic virtuale della VM anche indirizzi della classe relativa primo bridge,in questo caso 192.168.67.xxx, che vengono però correttamente instradati verso il gateway della seconda porta 192.168.1.xxx.

KVM-virt-manager-VM-bridge2
KVM-virt-manager VM con eth1 using bridge2 -vrtio
KVM-VM-ip-bridge2-class-eth1
KVM-VM con nic bridge2 using class bridge1 server eth1
KVM- eth2 bridge2 firefox
KVM-  bridge2  using ip class bridge1 firefox

Altrettando dicasi per il caso del bridge1 è possibile utlizzare anche la classe della eth2.

Unica avvertenza indicare comunque il gateway della sottorete scelta e se possibile i dns di google 8.8.8.8. Diversamente impostare i dns relativi al bridge della porta e sottorete specifica.

riavviare il servizio di networking con

sudo service networking restart
o
sudo service networking --full-restart
o
sudo /etc/init.d/networking restart

Risorse:

Networking creare un bridge – linux ubuntu

La creazione di un bridge di rete serve per soddisfare più esigenze. Dal punto di vista terminologico un bridge di rete è un elemento hardware o software che connette due o più reti in modo che possano comunicare tra di loro. E’ possibile create un bridge tra due schede du rete  e filtrare il traffico con un firewall. Oppure su un computer è possibile creare solo un bridge di rete, ma poichè un bridge è in grado di gestire più connessioni di rete questo consente alle macchine virtuali presenti un accesso diretto al rete.

Bridge su singola scheda

Il bridge su singola scheda consente alle macchine virtuali ospitate nel server  di connettersi alla rete esterna in modo diretto. Per creare il il bridge è necessario installare il pacchetto bridge-utils

sudo apt-get install bridge-utils

File di configurazione in ubuntu server con un bridge singolo tipo dhcp su eth1

cat /etc/network/interfaces

maurizio@ubuSer:~$ cat /etc/network/interfaces 
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth1
iface eth1 inet manual

auto br1
iface br1 inet dhcp
  bridge_ports eth1
  bridge_stp off
  bridge_fd 0
  bridge_maxwait 0

riavviare il servizio di networking con

sudo service networking restart
o
sudo service networking --full-restart
o
sudo /etc/init.d/networking restart

File di configurazione in ubuntu server con un bridge tipo static su eth2

cat /etc/network/interfaces

maurizio@ubuSer:~$ cat /etc/network/interfaces 
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

....
....
# The primary network interface
auto eth2
iface eth2 inet manual

auto br2
  address 192.168.1.160
  network 192.168.1.0
  netmask 255.255.255.0
  broadcast 192.168.1.255
  gateway 192.168.1.254
  bridge_ports eth2
  bridge_stp off 
  bridge_fd 0 
  bridge_maxwait 0

Altra Configurazione

auto lo
iface lo inet loopback

auto br0
iface br0 inet static
  address 192.168.1.10
  network 192.168.1.0
  netmask 255.255.255.0
  broadcast 192.168.0.255
  gateway 192.168.1.254
  bridge_ports eth0
  bridge_stp off
  bridge_fd 9
  bridge_hello 2
  bridge_maxage 12

LInks: