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

Aus C3D2
Zur Navigation springen Zur Suche springen
(8 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
[[Kategorie:Infrastruktur]]
== Idee ==
 
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.
 
== Hardware ==
 
Es werden selbstverständlich mindestens 2 funktionierende [[wikipedia:de:Netzwerkschnittstelle|Netzwerkschnittstelle]]n benötigt.


== Hardware Info ==
== Software ==
benötigt mindestens 2 funktionierende [[Network-Interfaces|Interfaces]]


== Software Info ==
Linux
Linux
* ifenslave
* ifenslave
Zeile 13: Zeile 17:
* tcpdump
* tcpdump


== Verwendungszweck ==
=== Debian: Bonding / failover ===
Gewünscht ist eine ausfallsichere Verbindung (präferiert über Ethernet, fallback über WLAN) ohne packet loss


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


=== Linux (Debian): Bonding / failover ===
; Pakete sicherstellen:
 
: <source lang=bash>apt-get install ifenslave-2.6 tcpdump</source>
'''1. Pakete sicherstellen'''
; Network-Manager deaktiveren:
 
:: Das Management der [[network interface|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!''
<source lang=bash>apt-get install ifenslave-2.6 tcpdump</source>
:: <source lang=bash>sudo /etc/init.d/network-manager stop</source>
 
:: <source lang=bash>sudo update-rc.d network-manager remove</source>
'''2. Network-Manager deaktiveren'''
:: <source lang=bash>sudo /etc/init.d/networking stop</source>
 
; wlan interface herausfinden:
Das Management der [[Network-Interfaces|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!''
: <source lang=bash>dmesg | grep wlan</source>
 
; Interfaces in <code>/etc/network/interfaces</code> konfigurieren:
<source lang=bash>sudo /etc/init.d/network-manager stop
: Hier wurde angenommen, dass die [[network interface|Netzwerk-Schnittstellen]] auf <tt>eth0</tt> und <tt>wlan0</tt> lauten.
sudo update-rc.d network-manager remove
: <source lang=bash>sudo vi /etc/network/interfaces</source>
sudo /etc/init.d/networking stop</source>
 
'''3. wlan interface herausfinden'''
 
<source lang=bash>dmesg | grep wlan</source>
 
'''4. Interfaces in <tt>/etc/network/interfaces</tt> konfigurieren'''
 
Hier wurde angenommen, dass die [[Network-Interfaces|Netzwerk-Schnittstellen]] auf <tt>eth0</tt> und <tt>wlan0</tt> lauten.
 
<source lang=bash>sudo vi /etc/network/interfaces</source>
<pre>
<pre>
# ## ### ### C3D2 ### ### ## #
# ## ### ### C3D2 ### ### ## #
# The loopback network interface
auto lo
iface lo inet loopback
# 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 64:
# EOF
# EOF
</pre>
</pre>
; WLAN Zugänge mit [[wpa_supplicant#Offenes_WLAN_konfigurieren|wpa_supplicant.conf]] definieren:
; Netzwerk neustarten:
: <source lang=bash>sudo /etc/init.d/networking restart</source>
Solltet ihr Miredo nutzen wird hier eine Warnung aufgrund einer fehlerhaften Namensauflösung angezeigt.


'''5. WLAN Zugänge mit [[Wpa_supplicant#Offenes_WLAN_konfigurieren|wpa_supplicant.conf]] definieren'''
==== Debian: Bonding / failover ''/etc/systemd/network/'' ====


'''6. Netzwerk neustarten'''
[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>


<source lang=bash>sudo /etc/init.d/networking restart</source>
: <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>


Solltet ihr Miredo nutzen wird hier eine Warnung aufgrund einer fehlerhaften Namensauflösung angezeigt.
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 ===


'''1. lagg Kernelmodul laden lassen'''
; lagg Kernelmodul laden lassen
 
: <source lang=bash>vi /boot/kernel/loader.conf</source>
<source lang=bash>vi /boot/kernel/loader.conf</source>
<pre>
<pre>
# ## ### ### C3D2 ### ### ## #
# ## ### ### C3D2 ### ### ## #
Zeile 85: Zeile 136:
# ## ### ### C3D2 ### ### ## #
# ## ### ### C3D2 ### ### ## #
# EOF
# EOF
kldload if_lagg
</pre>
</pre>
 
: <source lang=bash>kldload if_lagg</source>
'''2. lacp / lagg0 Network definieren'''
; lacp / lagg0 Network definieren
 
: <source lang=bash>vi /etc/rc.conf</source>
<source lang=bash>
vi /etc/rc.conf
</source>
 
<pre>
<pre>
# ## ### ### C3D2 ### ### ###
# ## ### ### C3D2 ### ### ###
Zeile 108: Zeile 153:
# EOF
# EOF
</pre>
</pre>
 
; [[wpa_supplicant]].conf - WLAN Zugänge definieren
'''3. [[wpa_supplicant]].conf - WLAN Zugänge definieren'''
: <source lang=bash>vi /etc/wpa_supplicant.conf</source>
 
<source lang=bash>
vi /etc/wpa_supplicant.conf
</source>
<pre>
<pre>
# ## ### ### C3D2 ### ### ###
# ## ### ### C3D2 ### ### ###
Zeile 124: Zeile 165:
# EOF
# EOF
</pre>
</pre>
; Netzwerk neustarten / wahlweise Systemreboot
: <source lang=bash>/etc/rc.d/netif restart</source>


'''4. Netzwerk neustarten / wahlweise Systemreboot'''
; Siehe auch:
 
* [[stura.htw-dresden.de:user:PaulRiegel/PC-BSD#manuelles Konfigurieren von Netzwerkschnittstellen beim Laptop]]
<source lang=bash>
/etc/rc.d/netif restart
</source>


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


'''1. Drei Terminals (oder panes in [[tmux]]) öffnen'''
; Drei Terminals (oder panes in [[tmux]]) öffnen:
 
; Im Ersten:
'''2. Im ersten:'''
: <source lang=bash>tcpdump -i eth0 oder bge0 'icmp'</source>
<source lang=bash>
; Im Zweiten:
tcpdump -i eth0 oder bge0 'icmp'
: <source lang=bash>tcpdump -i wlan0 'icmp'</source>
</source>
; Im Dritten: für Traffic sorgen
'''3. Im zweiten:'''
: <source lang=bash>ping 8.8.8.8</source>
<source lang=bash>
; Jetzt nach Bedarf mal Kabel an- & abstecken
tcpdump -i wlan0 'icmp'
: ... der laufende ping sollte dabei nicht mehr unterbrochen werden!
</source>
'''4. Im dritten: für Traffik sorgen'''
<source lang=bash>
ping 8.8.8.8
</source>
'''5. Jetzt nach Bedarf mal Kabel an- & abstecken ... der laufende ping sollte dabei nicht mehr unterbrochen werden!'''


== SternenLogBuch ==
== SternenLogBuch ==
* 19.06.2014 - Basis Config
* 19.06.2014 - Basis Config
[[Kategorie:Infrastruktur]]

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