Přeskočit obsah

Nastavení bondingu (redundantní připojení serveru)

Debian

Nainstalovat balíček ifenslave:

apt-get install ifenslave

Editovat soubor /etc/network/interfaces a prepsat eth0 na nasledujici:

auto bond0  
iface bond0 inet static  
        address x.x.x.x  
        netmask x.x.x.x  
        gateway x.x.x.x  
        dns-nameservers 78.24.12.150 217.16.191.70  
        dns-search vshosting.cz  
        bond-mode 802.3ad  
        bond-xmit-hash-policy layer3+4  
        bond-lacp-rate 1  
        bond-miimon 100  
        bond-downdelay 200  
        bond-updelay 200  
        slaves eth0 eth1

Ubuntu 16.04

Zde je nastavení obdobné jako u Debianu

Ubuntu 18.04 a novější

Vytvořte soubor /etc/netplan/config.yaml s následujícím obsahem:

network:
 version: 2
 renderer: networkd
 ethernets:
 eno1:
 dhcp4: no
 eno2:
 dhcp4: no
 bonds:
 bond0:
 addresses:
        - XXX.XXX.XXX.XXX/YY
 gateway4: XXX.XXX.XXX.XXX
 nameservers:
 addresses:  
 - 78.24.12.150  
 - 217.16.191.70
 interfaces:
        - eno1
        - eno2
 parameters:
 mode: 802.3ad
 mii-monitor-interval: 100

A potom spusťte netplan apply.

Centos 7 a 8

Nejprve je nastavit načítání modulu pro podporu bondingu.

modprobe --first-time bonding

Vytvoříme soubor ifcfg-bond0:

vi /etc/sysconfig/network-scripts/ifcfg-bond0

a vložíme

DEVICE=bond0  
NAME=bond0  
TYPE=Bond  
BONDING_MASTER=yes  
IPADDR=x.x.x.x  
PREFIX=xx  
ONBOOT=yes  
BOOTPROTO=none  
BONDING_OPTS="miimon=100 mode=4 lacp_rate=1 xmit_hash=1 downdelay=200 updelay=200"

Nastavíme oba interface, které chceme s bondovat (upravíme z výrazněné)

vi /etc/sysconfig/networks-scripts/ifcfg-encp0sX
HWADDR="08:00:27:04:03:86"  
TYPE="Ethernet"  
**BOOTPROTO="none"**  
DEFROUTE="yes"  
PEERDNS="yes"  
PEERROUTES="yes"  
IPV4_FAILURE_FATAL="no"  
IPV6INIT="yes"  
IPV6_AUTOCONF="yes"  
IPV6_DEFROUTE="yes"  
IPV6_PEERDNS="yes"  
IPV6_PEERROUTES="yes"  
IPV6_FAILURE_FATAL="no"  
NAME="enp0s8"  
UUID="a97b23f2-fa87-49de-ac9b-39661ba9c20f"  
ONBOOT="yes"  
MASTER=bond0  
SLAVE=yes

Stejně pro další interface.

Poté nahodíme interfacy.

ifup ifcfg-enp0sX

Pokud používáme Network Manager, provedeme ještě:

nmcli con reload

A nakonec restartuje síť.

systemctl restart network

Ověříme si stav bonding

cat /proc/net/bonding/bond0

Centos 6.5

Vytvoříme soubor ifcfg-bond0.

vi /etc/sysconfig/network-script/ifcfg-bond0

a vložíme

DEVICE=bond0  
BOOTPROTO=none  
ONBOOT=yes  
IPADDR=x.x.x.x  
NETWORK=x.x.x.x  
NETMASK=x.x.x.x  
USERCTL=no  
BONDING_OPTS="mode=4 miimon=100 lacp_rate=1 xmit_hash=1 downdelay=200 updelay=200"

Vytvoříme soubor bonding.conf

vi /etc/modprobe.d/bonding.conf

a vložíme

alias bond0 bonding

Upavíme konfiguraci eth0 a eth1.

vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth1  
MASTER=bond0  
SLAVE=yes  
USERCTL=no  
ONBOOT=yes  
BOOTPROTO=none

Stejně pro eth1.

Spustíme:

modprobe bonding
service network restart

A zkontrolujeme stav bondu

cat /proc/net/bonding/bond0  

Ruční konfigurace

Pro ruční nastavení bondingu např. v situaci, kdy chybí balík ifenslave je možné v terminálu použít následující příkazy (eno1, eno2 jsou síťová rozhraní)

ip link add bond0 type bond
ip link set bond0 type bond mode 802.3ad
ip link set eno1 down
ip link set eno1 master bond0
ip link set eno2 down
ip link set eno2 master bond0
ip link set bond0 up
ip address add XXX.XXX.XXX.XXX/YY dev bond0
ip route add default via XXX.XXX.XXX.XXX

Nastavení není trvalé, konfigurace bude po restartu ztracena.