== 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.

== Software ==

Linux
* ifenslave
* tcpdump

FreeBSD
* load Kernelmodul
* tcpdump

=== Debian: Bonding / failover ===

; Pakete sicherstellen:
: <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

# 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
</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.

=== FreeBSD: Link Aggregation Control Protocol (LACP) / failover ===

; lagg Kernelmodul laden lassen
: <source lang=bash>vi /boot/kernel/loader.conf</source>
<pre>
# ## ### ### C3D2 ### ### ## #
if_lagg_load="YES"
# ## ### ### C3D2 ### ### ## #
# EOF
</pre>
: <source lang=bash>kldload if_lagg</source>
; lacp / lagg0 Network definieren
: <source lang=bash>vi /etc/rc.conf</source>
<pre>
# ## ### ### 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
</pre>
; [[wpa_supplicant]].conf - WLAN Zugänge definieren
: <source lang=bash>vi /etc/wpa_supplicant.conf</source>
<pre>
# ## ### ### C3D2 ### ### ###
network={
        ssid="C3D2"
        key_mgmt=NONE
        priority=0
        }
# ## ### ### C3D2 ### ### ###
# EOF
</pre>
; Netzwerk neustarten / wahlweise Systemreboot
: <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 ==

; 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!

== SternenLogBuch ==
* 19.06.2014 - Basis Config

[[Kategorie:Infrastruktur]]
