Hochverfuegbare Firewalls mit Linux
https://github.com/formorer/froscon2013-talk
Wer bin ich?
-
technischer Leiter bei der credativ GmbH
-
Debian Developer seit 2003
-
Maintainer von (unter anderem)
-
Nagios
-
Icinga
-
iproute
-
keepalived
-
conntrackd
Das Problem
-
Bei einer Firewall mit Standby führt Failover zum Verbindungsabruch
Die Ursache
-
Firewalls sind heutzutage Stateful
-
Diese Informationen gehen beim Failover verloren
Connection trackings
-
Der Linuxkernel verwendet connection tracking um den Status einer Verbindung zu tracken
conntrack speichert
-
Protokoll
-
Quell IP
-
Ziel IP
-
Quellport
-
Zielport
-
Status der Verbindung
conntrackd
-
Synchronisiert conntrack Verbindungsinformationen über mehrere Rechner
-
Unterstützt Primary/Backup und Multi-Primarys Setups
-
Kommunikation via TCP, UDP oder Multicast
-
Synchronisationsprotokolle: NOTRACK, FT-TW, ALARM
conntrackd - Kommunikation
-
TCP: zuverlässig, aber langsam
-
UDP: unzuverlässig, aber geringe Latenzen
-
Multicast: unzuverlässig, aber geringe Latenzen
conntrackd - NOTRACK
-
Basiert auf einem unzuverlässigen Protokoll
-
Sendet immer die gesamten State Informationen
-
Macht nur mit TCP als Transport Sinn
conntrackd - ALARM
-
Sendet kontinuierlich die gesamten State Informationen Richtung Backup
-
Sehr Bandbreitenintensiv
-
Macht Sinn mit UDP und Multicast
conntrackd - FT-TW
-
zuverlässiges Protokoll
-
erkennt den Verlust von Nachrichten
-
macht Sinn mit UDP und Multicast
-
Die Kombination von UDP oder Multicast mit FT-TW wird empfohlen
Die Umsetzung
-
conntrackd benötigt einen HA Manager wie Pacemaker oder Keepalived
-
Beispielscripte liegen (bei Debian) /usr/share/doc/conntrackd/examples
Keepalived
-
verwendet VRRP (RFC 5798) für die Synchronisation von Nodes
-
Frontend für IPVS (Layer 4 Load Balancing)
-
schlank
-
leicht zu konfigurieren
Beispielsetup
verwendete Software
-
Keepalived: http://keepalived.org
-
Conntrackd: http://conntrack-tools.netfilter.org/
-
Vagrant: http://www.vagrantup.com/
-
Puppet: https://puppetlabs.com/
-
Debian: http://www.debian.org/
-
Asciidoc: http://www.methods.co.nz/asciidoc/
Allerletzte Informationen
-
Talk: https://github.com/formorer/froscon2013-talk
-
Source: https://github.com/formorer/froscon2013-talk
-
Vagrant Konfiguration: https://github.com/formorer/vagrant-keepalived-conntrackd
-
Ich: alexander.wirt@credativ.de