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

Aus C3D2
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
(29 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 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
 
=== Linx (Debian): Bonding / failover ===
 
<source lang=bash>
apt-get install ifenslave-2.6 tcpdump
</source>
 
Network-Manager deaktiveren
 
<source lang=bash>
sudo /etc/init.d/network-manager stop
sudo update-rc.d network-manager remove
 
sudo /etc/init.d/networking stop
</source>


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


<source lang=bash>
; Pakete sicherstellen:
sudo vi /etc/network/interfaces
: <source lang=bash>apt-get install ifenslave-2.6 tcpdump</source>
; 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>sudo /etc/init.d/network-manager stop</source>
:: <source lang=bash>sudo update-rc.d network-manager remove</source>
:: <source lang=bash>sudo /etc/init.d/networking stop</source>
; wlan interface herausfinden:
: <source lang=bash>dmesg | grep wlan</source>
; Interfaces in <code>/etc/network/interfaces</code> konfigurieren:
: Hier wurde angenommen, dass die [[network interface|Netzwerk-Schnittstellen]] auf <tt>eth0</tt> und <tt>wlan0</tt> lauten.
: <source lang=bash>sudo vi /etc/network/interfaces</source>
<pre>
# ## ### ### C3D2 ### ### ## #
# The loopback network interface
auto lo
iface lo inet loopback


### ### ### C3D2 ### ### ###
# 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 44: Zeile 47:
     bond-mode active-backup
     bond-mode active-backup


auto wlan1
auto wlan0
iface wlan1 inet manual
iface wlan0 inet manual
     wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
     wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
     bond-master bond0
     bond-master bond0
Zeile 58: Zeile 61:
     bond-mode active-backup
     bond-mode active-backup
     bond-miimon 100
     bond-miimon 100
### ### ### C3D2 ### ### ###
# ## ### ### C3D2 ### ### ## #
# EOF
# EOF
</source>
</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.


wpa_supplicant.conf - WLAN Zugänge definieren
==== Debian: Bonding / failover ''/etc/systemd/network/'' ====


<source lang=bash>
[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.
sudo vi /etc/wpa_supplicant/wpa_supplicant.conf


### ### ### C3D2 ### ### ###
: <code>systemctl mask networking.service</code>
network={
: <code>systemctl mask dhcpcd.service</code>
        ssid="C3D2"
: <s><code>rm /etc/network/interfaces</code></s>
        key_mgmt=NONE
:: <code>mv /etc/network/interfaces /etc/network/interfaces.old.was-used-by-networking</code>
        priority=0
        }
### ### ### C3D2 ### ### ###
# EOF
</source>


Netzwerk neustarten
: <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>


<source lang=bash>
: <code>$EDITOR /etc/systemd/network/20-bond1.netdev</code>
sudo vi /etc/init.d/networking restart
<pre>
</source>
[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>


=== FreeBSD: Link Aggregation Control Protocol (LACP) / failover ===
: <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>


lagg Kernelmodul laden lassen
Getestet (auf dem [[Computer/pubert]]) mit Debian&nbsp;10 ([[Proxmox]]&nbsp;6)!


<source lang=bash>
=== FreeBSD: Link Aggregation Control Protocol (LACP) / failover ===
vi /boot/kernel/loader.conf


### ### ### C3D2 ### ### ###
; lagg Kernelmodul laden lassen
: <source lang=bash>vi /boot/kernel/loader.conf</source>
<pre>
# ## ### ### C3D2 ### ### ## #
if_lagg_load="YES"
if_lagg_load="YES"
### ### ### C3D2 ### ### ###
# ## ### ### C3D2 ### ### ## #
# EOF
# EOF
 
</pre>
kldload if_lagg
: <source lang=bash>kldload if_lagg</source>
</source>
; lacp / lagg0 Network definieren
 
: <source lang=bash>vi /etc/rc.conf</source>
lacp / lagg0 Network definieren
<pre>
 
# ## ### ### C3D2 ### ### ###
<source lang=bash>
vi /etc/rc.conf
 
### ### ### C3D2 ### ### ###
ifconfig_bge0="up"
ifconfig_bge0="up"
ifconfig_bge0="ether DE:AD:BE:EF:BA:BE"
ifconfig_bge0="ether DE:AD:BE:EF:BA:BE"
Zeile 112: Zeile 150:
ifconfig_lagg0_ipv6="inet6 accept_rtadv"
ifconfig_lagg0_ipv6="inet6 accept_rtadv"
ip6addrctl_policy="ipv6_prefer"
ip6addrctl_policy="ipv6_prefer"
### ### ### C3D2 ### ### ###
# ## ### ### C3D2 ### ### ###
# EOF
# EOF
</source>
</pre>
 
; [[wpa_supplicant]].conf - WLAN Zugänge definieren
wpa_supplicant.conf - WLAN Zugänge definieren
: <source lang=bash>vi /etc/wpa_supplicant.conf</source>
 
<pre>
<source lang=bash>
# ## ### ### C3D2 ### ### ###
vi /etc/wpa_supplicant.conf
 
### ### ### C3D2 ### ### ###
network={
network={
         ssid="C3D2"
         ssid="C3D2"
Zeile 127: Zeile 162:
         priority=0
         priority=0
         }
         }
### ### ### C3D2 ### ### ###
# ## ### ### C3D2 ### ### ###
# EOF
# EOF
</source>
</pre>
 
; Netzwerk neustarten / wahlweise Systemreboot
Netzwerk neustarten / wahlweise Systemreboot
: <source lang=bash>/etc/rc.d/netif restart</source>


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


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


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


<source lang=bash>
== SternenLogBuch ==
tcpdump -i eth0/bge0 'icmp'
* 19.06.2014 - Basis Config


tcpdump -i wlan1/wlan0 'icmp'
[[Kategorie:Infrastruktur]]
</source>
 
Jetzt nach Bedarf mal Kabel an & abstecken ... ein laufender ping sollte dabei nicht mehr unterbrochen werden!
 
== Log ==
* 19.06.2014 - Basis Config

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