Bündelung und Ausfallüberbrückung von Netzwerkverbindungen

Aus C3D2
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Idee

Verwendungszweck ist eine gewünschte ausfallsichere Verbindung ohne packet loss). Präferiert wird LAN per Ethernet und der fallback ist WLAN.

Hardware

Es werden selbstverständlich mindestens 2 funktionierende Netzwerkschnittstellen benötigt.

Software

Linux

  • ifenslave
  • tcpdump

FreeBSD

  • load Kernelmodul
  • tcpdump

Debian: Bonding / failover

Debian: Bonding / failover /etc/network/interfaces

Pakete sicherstellen
apt-get install ifenslave-2.6 tcpdump
Network-Manager deaktiveren
Das Management der Schnittstellen erfolgt über wpa_supplicant anstatt mit dem network-manager um Kontrolle über sie zu haben. Dennoch sollte das Paket unter gnome nicht deinstalliert, sondern lediglich der Dienst permanent deaktiviert werden!
sudo /etc/init.d/network-manager stop
sudo update-rc.d network-manager remove
sudo /etc/init.d/networking stop
wlan interface herausfinden
dmesg | grep wlan
Interfaces in /etc/network/interfaces konfigurieren
Hier wurde angenommen, dass die Netzwerk-Schnittstellen auf eth0 und wlan0 lauten.
sudo vi /etc/network/interfaces
# ## ### ### C3D2 ### ### ## #
# The loopback network interface
auto lo
iface lo inet loopback

# Define slaves   
#allow-hotplug eth0  # um networking start nicht unnoetig zu verzoegern
auto eth0
iface eth0 inet manual
    bond-master bond0
    bond-primary eth0
    bond-mode active-backup

auto wlan0
iface wlan0 inet manual
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
    bond-master bond0
    bond-primary eth0
    bond-mode active-backup

# Define master
auto bond0
iface bond0 inet dhcp
    bond-slaves none
    bond-primary eth0
    bond-mode active-backup
    bond-miimon 100
# ## ### ### C3D2 ### ### ## #
# EOF
WLAN Zugänge mit wpa_supplicant.conf definieren
Netzwerk neustarten
sudo /etc/init.d/networking restart

Solltet ihr Miredo nutzen wird hier eine Warnung aufgrund einer fehlerhaften Namensauflösung angezeigt.

Debian: Bonding / failover /etc/systemd/network/

systemd hat den Dienst systemd-networkd.service (systemd.netdevsystemd.network), um das Netzwerk zu verwalten.

systemctl mask networking.service
systemctl mask dhcpcd.service
rm /etc/network/interfaces
mv /etc/network/interfaces /etc/network/interfaces.old.was-used-by-networking
systemctl enable systemd-networkd
systemctl enable systemd-resolved
ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
$EDITOR /etc/systemd/network/20-bond1.netdev
[NetDev]
Name=bond1
Kind=bond
$EDITOR /etc/systemd/network/21-bond1-e.network
[Match]
Name=e*
[Network]
Bond=bond1
$EDITOR /etc/systemd/network/21-bond1-w.network
[Match]
Name=w*
[Network]
Bond=bond0
$EDITOR /etc/systemd/network/29-bond1.network
[Match]
Name=bond0
[Network]
DHCP=yes
#Address=192.168.1.100/24
#Gateway=192.168.1.1
$EDITOR /etc/modprobe.d/bonding.conf

options bonding mode=active-backup
options bonding primary=eth0
options bonding miimon=500
options bonding updelay=1000
options bonding downdelay=1000
options bonding min_links=1

Getestet (auf dem Computer/pubert) mit Debian 10 (Proxmox 6)!

FreeBSD: Link Aggregation Control Protocol (LACP) / failover

lagg Kernelmodul laden lassen
vi /boot/kernel/loader.conf
# ## ### ### C3D2 ### ### ## #
if_lagg_load="YES"
# ## ### ### C3D2 ### ### ## #
# EOF
kldload if_lagg
lacp / lagg0 Network definieren
vi /etc/rc.conf
# ## ### ### C3D2 ### ### ###
ifconfig_bge0="up"
ifconfig_bge0="ether DE:AD:BE:EF:BA:BE"
wlans_wpi0="wlan0"
ifconfig_wlan0="WPA"
ifconfig_wpi0="ether DE:AD:BE:EF:BA:BE"
ifconfig_lagg0="laggproto failover laggport bge0 laggport wlan0 DHCP"
ifconfig_lagg0_ipv6="inet6 accept_rtadv"
ip6addrctl_policy="ipv6_prefer"
# ## ### ### C3D2 ### ### ###
# EOF
wpa_supplicant.conf - WLAN Zugänge definieren
vi /etc/wpa_supplicant.conf
# ## ### ### C3D2 ### ### ###
network={
        ssid="C3D2"
        key_mgmt=NONE
        priority=0
        }
# ## ### ### C3D2 ### ### ###
# EOF
Netzwerk neustarten / wahlweise Systemreboot
/etc/rc.d/netif restart
Siehe auch

Traffic-Control mit tcpdump

Drei Terminals (oder panes in tmux) öffnen
Im Ersten
tcpdump -i eth0 oder bge0 'icmp'
Im Zweiten
tcpdump -i wlan0 'icmp'
Im Dritten
für Traffic sorgen
ping 8.8.8.8
Jetzt nach Bedarf mal Kabel an- & abstecken
... der laufende ping sollte dabei nicht mehr unterbrochen werden!

SternenLogBuch

  • 19.06.2014 - Basis Config