Administration/Handbücher/Debugging einer Supernode

Aus Freifunk Nordwest Wiki
Wechseln zu: Navigation, Suche

Diese Wikiseite gibt einen Überblick über Debuggingmöglichkeiten auf einer in unser Hoodsetup eingegliederten Supernode.

Historische Statistik zur Serverauslastung

Munin generiert eine historische Statistik zur Serverauslastung.

B.A.T.M.A.N.

Zur Kontrolle von B.A.T.M.A.N. wird das Kommando batctl genutzt. Die Manpage liefert eine detaillierte Dokumentation.

Da auf einem Server theoretisch mehrere Hoods laufen können und somit auch mehrere Batman interfaces vorhanden sein können nutzen wir nicht das Standard Batman interface (bat0) sondern vergeben für die Batman interfaces eigene Namen mit dem Prefix "bat-".

Beim Aufruf des Kommandos batctl muss das Batman interface auf das sich das Kommando beziehen soll daher immer mitangegeben werden:

batctl -m bat-stadtos o

B.A.T.M.A.N.-Log

dmesg | grep batman_adv

Originators zählen

batctl -m bat-stadtos o | wc -l 

Fastd

Fastd-Log

journalctl -f -u fastd@<INSTANZ>.service

Um die Instanz herauszufinden kann man Autocompletion nutzen.

DHCP

Dnsmasq-Log

journalctl -f -u dnsmasq.service

Traceroute

traceroute -s 10.18.144.1 google.de                    
traceroute to google.de (172.217.20.99), 30 hops max, 60 byte packets
 1  10.18.1.5 (10.18.1.5)  0.344 ms  0.334 ms  0.324 ms
 2  100.64.4.188 (100.64.4.188)  21.665 ms  21.678 ms  21.675 ms
 3  google.ber.ecix.net (194.9.117.34)  21.678 ms  21.675 ms  21.669 ms
 4  209.85.249.182 (209.85.249.182)  22.361 ms 209.85.249.184 (209.85.249.184) 

Backboneverbindung prüfen

birdc
-> show protocols
ibgp-gw-ol-01.sn.ffnw.de BGP      master   up     04:11:53    Established
ibgp-test01.sn.ffnw.de BGP      master   up     04:12:55    Established

default-Route checken

IPv4

ip r s t 42 | grep "default"                            :(
default via 10.18.248.5 dev bb-ol01  proto bird  src 10.18.1.4

IPv6

ip -6 r s t 42 | grep "default"                            :(
default via 10.18.248.5 dev bb-ol01  proto bird  src 10.18.1.4

Trafficanalyse

Durchsatz der Supernode messen

IPv4

wget --bind-address=10.18.XX.1 http://proof.ovh.net/files/10Gb.dat

IPv6

wget --bind-address=IPV6-die-auf-bat-xxx-liegt http://proof.ovh.net/files/10Gb.dat

Liveanalyse

vnstat -l -i fastd-stadtos0

Routing

Auf unseren Supernodes unterscheiden wir zwischen statischem und dynamischen Routing, siehe auch den entsprechenden Artikel in der Wikipedia.

* Statische Routen: werden direkt auf dem Server in /etc/network/interfaces.d/<interface> konfiguriert und vom Kernel gesetzt
* Dynamische Routen: werden mithilfe von Routingprotokollen und dem Deamon Bird von anderen Routingteilnehmern (andere Supernodes) über das Supernode-Backbone empfangen und automatisch gesetzt

Siehe http://linux-ip.net/html/tools-ip-route.html

Bird-Log

IPv4

journalctl -f -u bird.service 

IPv6

journalctl -f -u bird6.service

Liste aller genutzen Routingtabellen

ip route show table all | grep "table" | sed 's/.*\(table.*\)/\1/g' | awk '{print $2}' | sort | uniq

http://serverfault.com/a/618877

Routingtabelle main

Mit folgendem Befehl kann man sich die Routingtabelle main der Supernode anzeigen lassen. Die Routingtabelle main ist die Standardtabelle für die Befehle route und ip route. Sie enthält idR. die statischen Routen.

ip route show table main

bzw.

ip route show

Die minimale Routigtabelle main einer Supernode sollte so aussehen:

root@gw-os01 /home/floh1111 # ip route show
# Alle Adressen für die kein spezielles Routing definiert ist nutzen die Defaultroute
# über den Default-Gatway des Rechenzentrums mit der IP 5.9.56.3. Dieser Traffic geht direkt
# über das Interface eth0 raus.
default via 5.9.56.3 dev eth0

# Die Adresse 5.9.56.3 ist von der IP-Adresse 5.9.56.25 aus über das Interface eth0 erreichbar
5.9.56.3 dev eth0  proto kernel  scope link  src 5.9.56.25 

# Alle IP-Adressen des Netzes 10.18.144.0/21 sind von der IP-Adresse 10.18.144.1
# über das Interface bat-stadtos erreichbar.
# Hierbei handelt es sich um die Route zu den über Batman-Nodes angebundenen Clients
10.18.144.0/21 dev bat-stadtos  proto kernel  scope link  src 10.18.144.1

# Alle IP-Adressen des Netzes 10.18.248.4/31 sind von der IP-Adresse 10.18.248.4
# über das Interface bb-ol01 erreichbar.
# Hierbei handelt es sich um beiden Enpunkte der Backbone-Verbindung ol01.
# Diese Route wird in Bird konfiguriert.
10.18.248.4/31 dev bb-ol01  proto kernel  scope link  src 10.18.248.4 

# Alle IP-Adressen des Netzes 10.207.0.0/16 sind von der IP-Adresse 10.207.18.4
# über das Interface icvpn erreichbar.
# Hierbei handelt es sich um die Teilnehmer des IC-VPN
10.207.0.0/16 dev icvpn  proto kernel  scope link  src 10.207.18.4 

Zu den Erklärungen was die Werte für proto und scope bedeuten siehe auch http://linux.die.net/man/8/ip in den Abschnitten scope SCOPE_VALUE und protocol RTPROTO.

Routingtabelle 42

Die Routingtabelle 42 ist die von Bird verwaltete Routingtabelle und enthält die dynamischen Routen. Der Name 42 ist willkürlich gewählt.

root@gw-os01 /etc/bird # ip r s t 42                                                                                         
default via 10.18.248.5 dev bb-ol01  proto bird  src 10.18.1.4 
unreachable 10.18.0.0/16  proto bird  src 10.18.1.4 
10.18.1.1 via 10.18.248.5 dev bb-ol01  proto bird  src 10.18.1.4 
10.18.1.3 via 10.18.248.5 dev bb-ol01  proto bird  src 10.18.1.4 
10.18.1.4 dev lo  proto bird  src 10.18.1.4 
10.18.1.5 via 10.18.248.5 dev bb-ol01  proto bird  src 10.18.1.4 
10.18.128.0/21 via 10.18.248.5 dev bb-ol01  proto bird  src 10.18.1.4 
10.18.136.0/21 via 10.18.248.5 dev bb-ol01  proto bird  src 10.18.1.4 
10.18.144.0/21 dev bat-stadtos  proto bird  src 10.18.1.4 
10.18.152.0/21 via 10.18.248.5 dev bb-ol01  proto bird  src 10.18.1.4 
10.18.248.0/31 via 10.18.248.5 dev bb-ol01  proto bird  src 10.18.1.4 
10.18.248.2/31 via 10.18.248.5 dev bb-ol01  proto bird  src 10.18.1.4 
10.18.248.4/31 dev bb-ol01  proto bird  src 10.18.1.4 
10.18.248.6/31 via 10.18.248.5 dev bb-ol01  proto bird  src 10.18.1.4 
10.207.0.0/16 dev icvpn  proto bird  src 10.18.1.4