Bündelung und Ausfallüberbrückung von Netzwerkverbindungen: Unterschied zwischen den Versionen

Aus C3D2
Zur Navigation springen Zur Suche springen
K (loopback dev hinzugefügt)
(4 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
== Hardware Info ==
== Idee ==


benötigt mindestens 2 funktionierende [[network interface|Interfaces]]
Verwendungszweck ist eine gewünschte ausfallsichere Verbindung ohne [[w:de:packet loss|packet loss]]). Präferiert wird LAN per Ethernet und der [[w:de:Rückfallebene | fallback]] ist WLAN.


== Software Info ==
== Hardware ==
 
Es werden selbstverständlich mindestens 2 funktionierende [[wikipedia:de:Netzwerkschnittstelle|Netzwerkschnittstelle]]n benötigt.
 
== Software ==


Linux
Linux
Zeile 13: Zeile 17:
* tcpdump
* tcpdump


== Verwendungszweck ==
=== Debian: Bonding / failover ===
 
Gewünscht ist eine ausfallsichere Verbindung (präferiert über Ethernet, [[w:de:Rückfallebene | fallback über]] WLAN) ohne [[w:de:packet loss|packet loss]]).


=== Debian: Bonding / failover ===
==== Debian: Bonding / failover ''/etc/network/interfaces'' ====


; Pakete sicherstellen:
; Pakete sicherstellen:
Zeile 38: Zeile 40:


# Define slaves   
# Define slaves   
#allow-hotplug eth0  # um networking start nicht unnoetig zu verzoegern
auto eth0
auto eth0
iface eth0 inet manual
iface eth0 inet manual
Zeile 66: Zeile 69:


Solltet ihr Miredo nutzen wird hier eine Warnung aufgrund einer fehlerhaften Namensauflösung angezeigt.
Solltet ihr Miredo nutzen wird hier eine Warnung aufgrund einer fehlerhaften Namensauflösung angezeigt.
==== Debian: Bonding / failover ''/etc/systemd/network/'' ====
[https://www.freedesktop.org/software/systemd/ systemd] hat den Dienst [https://www.freedesktop.org/software/systemd/man/systemd-networkd.service.html systemd-networkd.service] ([https://www.freedesktop.org/software/systemd/man/systemd.netdev systemd.netdev][https://www.freedesktop.org/software/systemd/man/systemd.network systemd.network]), um das Netzwerk zu verwalten.
: <code>systemctl mask networking.service</code>
: <code>systemctl mask dhcpcd.service</code>
: <s><code>rm /etc/network/interfaces</code></s>
:: <code>mv /etc/network/interfaces /etc/network/interfaces.old.was-used-by-networking</code>
: <code>systemctl enable systemd-networkd</code>
: <code>systemctl enable systemd-resolved</code>
: <s><code>ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf</code></s>
: <code>$EDITOR /etc/systemd/network/20-bond1.netdev</code>
<pre>
[NetDev]
Name=bond1
Kind=bond
</pre>
: <code>$EDITOR /etc/systemd/network/21-bond1-e.network</code>
<pre>
[Match]
Name=e*
[Network]
Bond=bond1
</pre>
: <code>$EDITOR /etc/systemd/network/21-bond1-w.network</code>
<pre>
[Match]
Name=w*
[Network]
Bond=bond0
</pre>
: <code>$EDITOR /etc/systemd/network/29-bond1.network</code>
<pre>
[Match]
Name=bond0
[Network]
DHCP=yes
#Address=192.168.1.100/24
#Gateway=192.168.1.1
</pre>
: <s><code>$EDITOR /etc/modprobe.d/bonding.conf</code></s>
<s>
<pre>
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
</pre>
</s>
Getestet (auf dem [[Computer/pubert]]) mit Debian&nbsp;10 ([[Proxmox]]&nbsp;6)!


=== FreeBSD: Link Aggregation Control Protocol (LACP) / failover ===
=== FreeBSD: Link Aggregation Control Protocol (LACP) / failover ===
Zeile 107: Zeile 167:
; Netzwerk neustarten / wahlweise Systemreboot
; Netzwerk neustarten / wahlweise Systemreboot
: <source lang=bash>/etc/rc.d/netif restart</source>
: <source lang=bash>/etc/rc.d/netif restart</source>
; Siehe auch:
* [[stura.htw-dresden.de:user:PaulRiegel/PC-BSD#manuelles Konfigurieren von Netzwerkschnittstellen beim Laptop]]


== Traffic-Control mit tcpdump ==
== Traffic-Control mit tcpdump ==

Version vom 23. Juli 2019, 12:00 Uhr

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