Netzwerk/Super-Node Backbone Anbindung
Anbindung von Supernodes an den Freifunk Rheinland Backbone
Dieser Artikel soll erläutern wie eine Supernode an den Backbone des Freifunk Rheinland angeschlossen werden kann.
Anbindung an das Layer2 Netz via tinc
Zuerst einmal ist das Paket tinc auf dem Super-Node zu installieren.
mkdir -p /etc/tinc/rheinland
# < /etc/tinc/rheinland/tinc.conf AddressFamily ipv4 BindToInterface <public IPv4 Interface> Broadcast direct DeviceType tap DirectOnly yes Forwarding off HostNames no Interface bb0 Mode switch Name <hostname> PingInterval 15 PingTimeout 5 PrivateKeyFile /etc/tinc/rsa_key.priv ConnectTo = rheinland0 ConnectTo = rheinland1 Debug 3
# < /etc/tinc/rheinland/hosts/rheinland0 Address=78.47.35.141 -----BEGIN RSA PUBLIC KEY----- MIIBCgKCAQEAxaewx1cZPPjeRLomoO2z0GN/Lioc0bwEoM9cB++lzqfhfEbNLDbU hMkn2Q/2uR51h2ZJ5tgUcU1wCa2lrPXVO8e8oZo7RTJi+rYJyDtosC2W693GtLxK GYDQOyPmrcc55X4j0UeyFNP2dKH8qmRH2cs2VM1sJslKOGheJVSXxo2xBQy2EiQw AMITubAW6NaG/tB5hwehyvcp11B/EXuWl1UByEi3R8TCQPPyyuyhmVswnSUZzbsU UMkazbrbaK322DmuHT8txn4DK6/DLSz0MzPwe0AGB8ReQA5wKS2JgnRmZ0HKLJ9K awnBNLV2ate25FZuvjHkD6yyjQcCsoryMwIDAQAB -----END RSA PUBLIC KEY-----
# < /etc/tinc/rheinland/hosts/rheinland1 Address=78.47.35.139 -----BEGIN RSA PUBLIC KEY----- MIIBCgKCAQEA2xz9NGY9XUkrsciIZ5AucrtGnlXcD257/jYDyyCVLDNuS16cA3vF bsH5Br3zjYRsN+AZjvgUbfCyrM4qxWBoSTmcFOH5uQLt0RD+p8dpq/p/9B0vRMI2 eGLK6C+2EylLEui9lrwpXF27530uIlXxORsjEgGjgJMegkTQoU/yFpt8kXr0N+Zg sCdLyVByzS6FqmZOuFJiNTC/IggkRHqqKLoj9Kp4L/qqdTCeszWVtkNQpljXhiEq 4OR9nreH+icns+GrvWAqhMUyVTJrOr1nPDgFT5FytGjmudN/tSpp7PE4OZbvpIg/ ZxMfmKM7Qs/+xPLry7SB7NJzJSJVOR6fDQIDAQAB -----END RSA PUBLIC KEY-----
Skript zum Setzen der Adressen. Bitte XXX und XXXX durch zugewiesene Werte ersetzen!
# < /etc/tinc/rheinland/tinc-up #/bin/sh ip link set up dev $INTERFACE ip -4 addr add 10.78.0.XXX/22 dev $INTERFACE ip -6 addr add 2001:470:72da::XXXX/64 dev $INTERFACE ip -6 addr add 2001:470:7861::XXXX/64 dev $INTERFACE
Ausführbar machen
# chmod +x /etc/tinc/rheinland/tinc-up
Public/private key pair erzeugen. Wir nehmen die Standardlänge von 2048 bit und den vorgeschlagenen Pfad zu den Dateien (/etc/tinc/rsa_key.priv und /etc/tinc/rsa_key.pub).
# tincd -K
Tincd starten. (per Init, Systemd,...)
Adressierung der Supernodes im Backbone
IPv6
SLAAC ist zu verwenden.
Legacy IP (IPv4)
Der Adressbereich 10.78.0.0/22 ist für den Backbone reserviert. Adressen sind hier zu verwalten.
Konfiguration von dynamischem Routing
Innerhalb des Backbones des Freifunk Rheinland wird das Routingprotokoll OSPF verwendet. Als Routing Software kommt derzeit Quagga zum Einsatz. Quagga ist in den Paketsammlungen der üblichen Linux Distributionen bereits enthalten. Die Konfigurationen für IPv4 und IPv6 finden getrennt statt.
Konfiguration Zebra
Zebra ist ein Dienst aus dem Quagga Paket welches von den verschiedenen Routing Daemonen Routen annimmt und im Kernel installiert. Eine einfache Konfiguration kann wie folgt aussehen:
# > /etc/quagga/zebra.conf ! ! Zebra configuration saved from vty ! 2014/01/27 23:38:55 ! hostname <hostname>-zebra password zebra ! ip forwarding ipv6 forwarding ! ! line vty !
<hostname> ist zu ersetzen.
Es wird lediglich ein Hostname sowie ein Passwort für die Zebra Shell gesetzt und IP Forwarding aktiviert. Mittels telnet 127.0.0.1 2601 kann Zebra auch interaktiv konfiguriert werden. Die Konfiguration ähnelt der von Routern mit Cisco IOS.
Konfiguration OSPF für IPv6
OSPF für IPv6 wird in Quagga durch den Dienst ospf6d bereitgestellt. Dieser teilt Zebra die Routinginformationen mit welche in die Kernel Routingtabelle installiert werden sollen. Eine einfache Konfiguratuion wie folgt aussehen:
# < /etc/quagga/ospf6d.conf ! ! Zebra configuration saved from vty ! 2014/01/05 12:17:57 ! hostname <hostname>-ospf6d password ospf6d ! interface bb0 ipv6 ospf6 hello-interval 1 ipv6 ospf6 dead-interval 4 ! router ospf6 redistribute connected route-map bat0 interface bb0 area 0.0.0.0 ! route-map bat0 permit 10 match interface bat0 ! line vty !
<hostname> ist zu ersetzen.
Konfiguration OSPF für legacy IP (IPv4)
OSPF für IPv4 wird in Quagga durch den Dienst ospfd bereitgestellt. Dieser teilt Zebra die Routinginformationen mit welche in die Kernel Routingtabelle installiert werden sollen. Eine einfache Konfiguratuion wie folgt aussehen:
! ! Zebra configuration saved from vty ! 2013/12/19 21:59:29 ! hostname <hostname>-ospf password ospfd ! ! interface bb0 ip ospf hello-interval 1 ip ospf dead-interval 4 ! router ospf auto-cost reference-bandwidth 100000 passive-interface default no passive-interface bb0 network 10.78.0.0/22 area 0.0.0.0 network <IP-Range of Domain> area 0.0.0.0 ! line vty
Die Konfiguration aktiviert OSPF auf der Schnittstelle zum Backbone und auf der Schnittstelle zur Domäne. Durch passive-interface default wird in Richtung batman jedoch kein OSPF gesprochen, das Netz aber in Richtung Backbone angekündigt.