Un bridge relie plusieurs interfaces au sein d’un réseau local et leur permet de communiquer comme si elles étaient connectées à un switch. Un bond agrège plusieurs interfaces physiques pour offrir de la redondance et/ou une bande passante améliorée.
Bridge et Bond
Différences entre Bridge et Bond :
Bridge (Pont)
Bond (Liaison)
Objectif principal
Relier plusieurs interfaces dans un même réseau local (LAN)
Combiner plusieurs interfaces physiques en une seule interface
Type de connexion
Fonctionne comme un switch (niveau 2)
Combinaison de liens physiques pour redondance ou performance
Isolation/routage
Pour connecter des machines dans le même sous-réseau
Pour augmenter la résilience et la bande passante
Domaines d’application
Virtualisation, isolation réseau, multi-interface dans un LAN
Augmentation de la bande passante, redondance
Bande passante
Ne modifie pas la bande passante
Peut augmenter la bande passante en fonction du mode choisi
Redondance
Non (utilisé pour relier des interfaces, pas pour la redondance)
Oui, en cas de panne d’une interface, une autre prend le relais
# nmcli connection add type bond ifname bond0 con-name bond0 mode 802.3ad # nmcli connection add type bond-slave ifname eno42 con-name eno42-slave master bond0 # nmcli connection add type bond-slave ifname eno43 con-name eno43-slave master bond0 # nmcli connection add type bridge con-name bridge0 ifname bridge0 # nmcli con mod bridge0 ipv4.address 10.xxx.4.12/22 # nmcli con mod bridge0 ipv4.gateway 10.xxx.7.11 # nmcli con mod bridge0 ipv4.method manual # nmcli con mod bridge0 ipv4.dns 10.yyy.0.63 # nmcli con mod bridge0 +ipv4.dns 10.yyy.1.63 # nmcli con mod bridge0 connection.autoconnect-slaves yes # nmcli con mod bridge0 connection.autoconnect yes # nmcli connection modify bond0 master bridge0 # nmcli con up bridge0
Faire un Bridge sans bond
# nmcli con add type bridge con-name bridge0 ifname bridge0 # nmcli conn modify bridge0 ipv4.addresses '10.xxx.5.191/22' # nmcli conn modify bridge0 ipv4.gateway '10.xxx.7.11' # nmcli conn modify bridge0 ipv4.dns '10.yyy.0.63' +ipv4.dns '10.yyy.1.63' # nmcli conn modify bridge0 ipv4.dns-search codac.iter.org # nmcli conn modify bridge0 ipv4.method manual # nmcli conn add type ethernet slave-type bridge con-name bridge0-slave ifname enp2s0 master bridge0 # nmcli con mod bridge0 connection.autoconnect-slaves yes # nmcli con mod bridge0 connection.autoconnect yes # nmcli conn up bridge0
Faire un simple bond :
# nmcli connection add type bond ifname bond0 con-name bond0 mode 802.3ad # nmcli connection add type bond-slave ifname eno42 con-name eno42-slave master bond0 # nmcli connection add type bond-slave ifname eno43 con-name eno43-slave master bond0 # nmcli con mod bond0 ipv4.address 10.xxx.4.12/22 # nmcli con mod bond0 ipv4.gateway 10.xxx.7.11 # nmcli con mod bond0 ipv4.method manual # nmcli con mod bond0 ipv4.dns 10.yyy.0.63 # nmcli con mod bond0 +ipv4.dns 10.yyy.1.63 # nmcli con mod eno42-slave connection.autoconnect on # nmcli con mod eno43-slave connection.autoconnect on # nmcli con mod bond0 connection.autoconnect-slaves yes # nmcli con up bond0
Exemple :
Configuration réseau :
# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eno1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000 link/ether dd:44:ee:55:ff:0c brd ff:ff:ff:ff:ff:ff 3: eno2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000 link/ether dd:44:ee:55:ff:0d brd ff:ff:ff:ff:ff:ff 4: eno3: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000 link/ether dd:44:ee:55:ff:0e brd ff:ff:ff:ff:ff:ff 5: eno4: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000 link/ether dd:44:ee:55:ff:0f brd ff:ff:ff:ff:ff:ff 6: eno42: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 11:aa:22:bb:33:54 brd ff:ff:ff:ff:ff:ff inet 10.zzz.xx.46/24 brd 10.zzz.xx.255 scope global dynamic noprefixroute eno42 valid_lft 31449452sec preferred_lft 31449452sec inet6 fe80::1111:dddd:3333:7654/64 scope link noprefixroute valid_lft forever preferred_lft forever 7: eno43: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 11:aa.22:bb:33:55 brd ff:ff:ff:ff:ff:ff
Le mieux est de mettre dans un script car la manipulation réseau entraine des déconnexions :
# vim bond.sh
#!/bin/bash nmcli connection add type bond ifname bond0 con-name bond0 mode 802.3ad nmcli connection add type bond-slave ifname eno42 con-name eno42-slave master bond0 nmcli connection add type bond-slave ifname eno43 con-name eno43-slave master bond0 nmcli con mod bond0 ipv4.address 10.zzz.xx.46/24 nmcli con mod bond0 ipv4.gateway 10.zzz.xx.1 nmcli con mod bond0 ipv4.method manual nmcli con mod bond0 ipv4.dns 10.zzz.0.10 nmcli con mod bond0 +ipv4.dns 10.zzz.1.10 nmcli con mod eno42-slave connection.autoconnect on nmcli con mod eno43-slave connection.autoconnect on nmcli con mod bond0 connection.autoconnect-slaves yes nmcli con up bond0
Lancement avec nohup sh qui permet d’exécuter un script en arrière-plan, sans être interrompu par la fermeture du terminal et qui créé un fichier d’output :
# nohup sh bond.sh
nohup: ignoring input and appending output to 'nohup.out'
Bonding Mode: IEEE 802.3ad Dynamic link aggregation Transmit Hash Policy: layer2 (0) MII Status: up MII Polling Interval (ms): 100 Up Delay (ms): 0 Down Delay (ms): 0 Peer Notification Delay (ms): 0
802.3ad info LACP rate: slow Min links: 0 Aggregator selection policy (ad_select): stable System priority: 65535 System MAC address: 11:aa.22:bb:33:54 Active Aggregator Info: Aggregator ID: 1 Number of ports: 2 Actor Key: 15 Partner Key: 32818 Partner Mac Address: 00:11:aa:22:bb:51
Slave Interface: eno42 MII Status: up Speed: 10000 Mbps Duplex: full Link Failure Count: 0 Permanent HW addr: 11:aa.22:bb:33:54 Slave queue ID: 0 Aggregator ID: 1 Actor Churn State: none Partner Churn State: none Actor Churned Count: 0 Partner Churned Count: 0 details actor lacp pdu: system priority: 65535 system mac address: 11:aa.22:bb:33:54 port key: 15 port priority: 255 port number: 1 port state: 61 details partner lacp pdu: system priority: 16384 system mac address: 00:11:aa:22:bb:51 oper key: 32818 port priority: 32768 port number: 257 port state: 61
Slave Interface: eno43 MII Status: up Speed: 10000 Mbps Duplex: full Link Failure Count: 0 Permanent HW addr: 11:aa.22:bb:33:55 Slave queue ID: 0 Aggregator ID: 1 Actor Churn State: none Partner Churn State: none Actor Churned Count: 0 Partner Churned Count: 0 details actor lacp pdu: system priority: 65535 system mac address: 11:aa.22:bb:33:54 port key: 15 port priority: 255 port number: 2 port state: 61 details partner lacp pdu: system priority: 16384 system mac address: 00:11:aa:22:bb:51 oper key: 32818 port priority: 32768 port number: 16641 port state: 61
Quentin E.
Merci à Quentin E.