Monitoring: Unterschied zwischen den Versionen

Aus Freifunk Franken
Wechseln zu:Navigation, Suche
KKeine Bearbeitungszusammenfassung
 
(69 dazwischenliegende Versionen von 7 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Entwurf}}
[[Datei:Monitoring Map Übersicht.png|thumb|Monitoring-Map]]
__TOC__
Die Monitoring-Map zeigt alle Knoten im Bereich von Freifunk Franken und ihre Verbindungen untereinander.
 
: [https://monitoring.freifunk-franken.de/map?mapcenter=49.45000,11.10000,10 → zur '''Monitoring-Map'''] <br> [[Monitoringseite eines Knotens|→ zur Hilfeseite über die '''Monitoringseite eines Knotens''']] <br> [[Monitoring-Datenbank|→ zur Hilfeseite über die '''Monitoring-Datenbank''']]
 


Hier soll eine Seite entstehen wie man das Monitoring richtig liest:


== Map ==
== Map ==
Auf der [https://monitoring.freifunk-franken.de/map?mapcenter=49.45000,11.10000,10 Map-Seite] kann rechts oben über das kleine Symbol ein Layer eingeblendet werden, der die Hoodgrenzen anzeigt.
[[Datei:Monitoring Map Nürnberg-Fürth.png|thumb|Layer-3 Richtfunkverbindungen (blau) <br> und Knoten als Popup in der Monitoring-Map]]


== Interfaces ==
Derzeit findet eine Umstellung der Firmware statt von Version 1 zu Version 2.
Beachtet das nicht jeder Router alle Interfaces hat. Dies ist von Modell zu Modell leicht unterschiedlich. Das Monitoring zeigt manche Interfaces auch erst an, wenn damit etwas verbunden wurde (z.b. die ethX.Y).
<br> Alte Router (V1) und bereits umgestellte Router (V2) werden farblich unterschieden:


=== br-mesh ===
{|
[https://de.wikipedia.org/wiki/Bridge_%28Netzwerk%29 Bridge] in der das bat0 sowie alle Clientinterfaces die mit Batman kommunizieren sollen (z.b. w2ap, w5ap und eth0.1 falls vorhanden) hängen
|
{|class="wikitable"
! colspan="4" style="text-align:center"| Knoten
|-
! &nbsp;
! Uplink
! Mesh
!
|- style="border-top:medium solid"
! rowspan="2" | V1
| style="text-align:center; | [[Datei:Monitoring-router green white.svg|Monitoring-router green white.svg]]
| style="text-align:center; | [[Datei:Monitoring-router green.svg|Monitoring-router green.svg]]
| online
|-
| style="text-align:center; | [[Datei:Monitoring-router red white.svg|Monitoring-router red white.svg]]
| style="text-align:center; | [[Datei:Monitoring-router red.svg|Monitoring-router red.svg]]
| offline
|- style="border-top:medium solid"
! rowspan="2" | V2<br />Local
| style="text-align:center; | [[Datei:Monitoring-router green v2 white.svg|Monitoring-router green v2 white.svg]]
| style="text-align:center; | [[Datei:Monitoring-router green v2.svg|Monitoring-router green v2.svg]]
| online
|-
| style="text-align:center; | [[Datei:Monitoring-router red v2 white.svg|Monitoring-router red v2 white.svg]]
| style="text-align:center; | [[Datei:Monitoring-router red v2.svg|Monitoring-router red v2.svg]]
| offline
|- style="border-top:medium solid"
! rowspan="2" | alle  
| style="text-align:center; | [[Datei:Monitoring-router grey white.svg|Monitoring-router grey white.svg]]
| style="text-align:center; | [[Datei:Monitoring-router grey.svg|Monitoring-router grey.svg]]
| länger als zehn Tage offline
|-
| style="text-align:center; | [[Datei:Monitoring-router yellow white.svg|Monitoring-router yellow white.svg]]
| style="text-align:center; | [[Datei:Monitoring-router yellow.svg|Monitoring-router yellow.svg]]
| unbekannt
|}


=== bat0 ===
| &nbsp;  &nbsp;
Hier sieht man den Traffic der ins Batman (=der große Switch) geschickt wird oder der aus dem Batman herauskommt. Das wäre z.b. wenn ein Client auf w2ap connectet ist und Traffic über das Batman-VPN zu einen Gateway transferiert (Traffic kommt über w2ap rein und wird dann ins bat0 reingesteckt, somit wird er hier angezeigt). Traffic der im Batman bleibt, ist hier nicht zu sehen (z.b. wenn Traffic von w2mesh (=Batman WLAN) oder eth0.3 (Batman Kabel) ankommt und per fffVPN (=Batman-VPN) weiter zu einen Gateway geht)
|
{| class="wikitable"
! colspan="2" | Verbindung
|-
| <div style="line-height:5px; background:#008c00;">&nbsp;</div>
| Kabel
|-
| <div style="line-height:5px; background:lightgreen;">&nbsp;</div>
| WLAN gut
|-
| <div style="line-height:5px; background:gold"> &nbsp; </div>
| WLAN mittel
|-
| <div style="line-height:5px; background:red"> &nbsp; </div>
| WLAN schlecht
|-
| <div style="line-height:5px; background:DodgerBlue"> &nbsp; </div>
| Layer-3 Verbindung <br> (verbindet Hoods)
|-
! colspan="2" | Hood-Grenze
|-
| <span style="color:#73B9FF"> &#9603; &#9603; &#9603; </span> || V1
|-
| <span style="color:Blue"> &#9603; &#9603; &#9603; </span> || V2
|}
|}


=== ethX.Y ===
Dies ist je nach Routermodell ein wenig unterschiedlich grundsätzlich gilt aber (falls vorhanden):


==== ethX.1 ====
V1 und V2 bezieht sich auf Router der jeweiligen '''KeyXchange-Version'''. <br> [[Dezentrale Hood|Dezentrale Hoods]] werden separat dargestellt, benutzen aber den Farbcode von V2.
Dies ist das VLAN an welches die Kabel-Clientports angebunden sind, dort ist der komplette Traffic aller Clients die per Kabel angebunden sind zu sehen


==== ethX.2 ====
Knoten mit '''weißem Zentrum''' im Marker sind '''Uplink-Router''', <br> Knoten mit '''schwarzem Zentrum''' sind reine '''Mesh-Router'''. <br> Knoten, die länger als zehn Tage offline sind, werden grau angezeigt und nach 180 Tagen abgeschaltet.
Dies ist bei manchen Routern das VLAN des WAN Ports. Hier sieht man den kompletten Traffic der über das WAN in das Internet geht. Bei manchen Routern ist WAN auch eth0 und eth1.1 und eth1.3 Client und Batman


==== ethX.3 ====
Gateways haben per Definition keinen Uplink und erscheinen mit schwarzem Punkt.
Dies ist das VLAN in welches die Kabelgebunden Batmangeräte hängen. Hier sieht man den Traffic der über Batman-Kabel hereinkommt oder herausgeht


==== Router mit nur einem Ethernetport ====
== Bedienung ==
; Zoom
: Mit dem Mausrad <br> oder oben links mit "+" und "-" kann man rein- und rauszoomen.


Bei Routern mit nur einen Etherntport ist meist eth0 das, als was der Port konfiguriert wurde. Dort gibt es meist keine VLANs
; Layer
: Oben rechts können über das kleine Symbol die Layer ausgewählt werden:
:* Router V1
:* Router V2
:* Router local ("dezentral")
:* [[Hoods|Hood V2 Grenzen]]
:* [[Hood_als_Polygon|Poly-Hood Grenzen]]
:* Wird "Position-Popup" aktiviert, wird die Koordinate des Mauszeigers angezeigt, <br> sobald man in einen leeren Bereich der Karte klickt. Kann in Zwischenablage kopiert werden.
 
; Maßstab
: Unten links ist ein Maßstab, mit dem man Entfernungen schätzen kann.
 
Die Karte stammt von OpenStreetMap, der Knoten-Layer von Freifunk-Franken.
 
== Popup ==
[[Datei:Monitoring Karte Knoten-Link.png|thumb|Popup zu einem Knoten]]
 
Mit einem Klick auf einen roten, grünen oder grauen Knoten-Punkt der Monitoring-Karte wird in einem Popup-Fenster der Knotenname angezeigt, und darunter mit dem Knoten verbundene weitere Knoten und die Verbindungsqualität. Gut funktionierende Verbindungen werden grün, schlecht funktionierende rot angezeigt. Blaue Felder sind Layer-3 Verbindungen.
 
{|class="wikitable"
! Parameter || Bedeutung
|-
| Router || Name des angezeigten Knotens <br>Link zum Monitoring des angezeigten Knotens
|-
| Link || Name des verbundenen Nachbar-Knotens <br>Link zum Monitoring des verbundenen Nachbar-Knotens
|-
| Quality || Qualität der Verbindung (1 = schlecht, 255 = gut) <br>die Qualität wird auch in verschiednenen Stufen der Ampelfarben angezeigt <br>für [[Babel]] wurde eine blaue Farbe eingeführt.
|-
| Interface ||
{|
| eth0.3 || Der Nachbar ist per Kabel über die VLAN ID 3 verbunden
|-
| w2mesh || Der Nachbar ist über das WLAN Netzwerk w2mesh verbunden.
|}
|}
 
== Monitoring eines Knotens ==
Mit einem Klick auf einen Knotennamen im Popup-Fenster öffnet sich die "Monitoringseite des Knotens". <br> Sie bietet detaillierte Informationen über den aktuellen Status.
 
: [[Monitoringseite eines Knotens|→ zur Hilfeseite über die '''Monitoringseite eines Knotens''']]
 
<div style="clear:both">
 
 
 
 
----
 
{{Entwurf}}


=== fffVPN oder fffauxVPN ===
Dies ist das Interface für das VPN. Dort ist der komplette Traffic der innerhalb des VPN verschickt wird zu sehen


=== l2tpX ===
== Bestimmung der Hood im Monitoring ==
Dies ist das l2tp Interface zu den Gateways
Prinzipiell sind zwei Fälle zu unterschieden:


=== w2ap / w5ap ===
1. Der Router übermittelt eine Hood. In diesem Fall wird die Hood vom Monitoring ohne weitere Prüfung übernommen.
Dies ist das WLAN-Interface auf welches Clients per WLAN zugreifen. Dort ist der komplette WLAN Traffic für Clients zu sehen. w2ap ist das 2,4GHz Band, w5ap ist das 5GHz Band


=== w2mesh / w5mesh ===
2. Der Router liefert KEINE Hood. Das Monitoring berechnet die Hood selbst aus den Koordinaten. In ungünstigen Fällen kann diese Anzeige fehlerhaft sein z.B.:
Dies ist das WLAN-AdHoc-Interface über welches die Router anschließend mit Batman verbunden werden. Hier ist der komplette Traffic zu sehen welcher per Batman über WLAN verschickt wird. w2mesh ist das 2,4GHz Batman, w5mesh ist das 5GHz Batman.
* ein Meshrouter steht in einer anderen Hood als der Uplinkrouter dazu, dies ist möglich solang am Meshrouter kein Uplinkrouter aus der Hood wo er steht dran mesht. Der Meshrouter ist aber tatsächlich in der Hood des jeweiligen Uplinks.
* Sind keine Koordinaten gesetzt und der Router hat Uplink kommt er in die Default-Hood.
* Sind keine Koordinaten gesetzt und der Router hat keinen Uplink wird er in die Hood NoCoordinates einsortiert, obwohl er eigentlich in der Hood des Uplink-Routers ist.


== Neighbours Anzeige ==
Wichtig ist hier zu wissen, das nur Nachbarn angezeigt werden, die Batman auch nutzt. Es kommt immer wieder vor, das Verbindungen hier nicht angezeigt werden obwohl sie möglich wären, da sie keinen Sinn machen und Batman sie daher nicht nutzt.


== Hood ==
Blaue Linien zeigen Layer-3 Verbindungen an, sie verbinden somit Hoods untereinander.
Das Monitoring berechnet die Hood selbst aus den Koordinaten. In ungünstigen Fällen kann diese Anzeige fehlerhaft sein z.b.:
* ein Meshrouter steht in einer anderen Hood als der Uplinkrouter dazu, dies ist möglich solang am Meshrouter kein Uplinkrouter aus der Hood wo er steht dran mesht
* Hoods die vor Ort aufgebaut wurden und keine Standortangaben haben (z.b. [https://monitoring.freifunk-franken.de/map?mapcenter=49.46024,11.03293,18 fablabnbg] )
** Die Router in diesen Hoods senden mittlerweile aktiv ihre Hood mit, so das sie im Monitoring als extra Hood erscheinen.
Damit ist z.b. auch die Clientzählung auf der Statistikseite mit vorsicht zu genießen da diese dann ebenfalls fehlerhaft wird. AUX Router werden ebenfalls in der Clientzählung mit in die Hood gezählt obwohl sie da nicht hinein gehören.
* Blaue Linien zeigen Layer 3 Verbindungen an, sie verbinden somit Hoods untereinander.


== Eigene Daten mit an das Monitoring schicken ==
== Eigene Daten mit an das Monitoring schicken ==


=== andere Hood ===
=== Andere Hood ===
 
<pre>
uci set "system.@system[0].hood=meinehood"
uci commit system
</pre>
 
=== Blaue Linien zeichnen ===
 
'''Bitte diesen Teil überprüfen, ob noch aktuell'''


https://github.com/FreifunkFranken/firmware/blob/master/src/packages/fff/fff-nodewatcher/files/usr/sbin/nodewatcher
https://github.com/FreifunkFranken/firmware/blob/master/src/packages/fff/fff-nodewatcher/files/usr/sbin/nodewatcher


Nach Zeile 137 eine weitere Zeile einfügen:
Nach dem Blöcken mit "DATA=$DATA..." (ca. Zeile 296) muss folgendes mitgeschickt werden:


<pre>
<pre>
SYSTEM_DATA=$SYSTEM_DATA"<hood>HOODNAME</hood>"
    BABELS=$(echo dump | nc ::1 33123 | awk '/^add neighbour/ {print "<neighbour><ip>"$5"</ip><outgoing_interface>"$7"</outgoing_interface></neighbour>"}')
    DATA=$DATA"<babel_neighbours>$BABELS</babel_neighbours>"                              
</pre>
</pre>


=== Blaue Linien zeichnen ===


https://github.com/FreifunkFranken/firmware/blob/master/src/packages/fff/fff-nodewatcher/files/usr/sbin/nodewatcher
'''Achtung:''' geht erst ab Babel 1.8 und nur, wenn in Babel die Option 'local-port 33123' aktiviert ist (Entweder in /etc/config/babeld (lede) oder /etc/babeld.conf (Debian) ).
Das Standard netcat unter Debian 9 kann kein IPv6, es muss netcat-openbsd installiert sein. Bei diesem ist für korrekte Funktion noch die Option '-N' notwendig.
 
 


Nach Zeile 252 muss folgende Zeile mitgeschickt werden:
Andernfalls können die Babel-Nachbarn auch so mitgeschickt werden:


<pre>
<pre>
DATA=$DATA"<babel_neighbours>"   
DATA=$DATA"<babel_neighbours>"   
DATA=$DATA"<neighbour>fe80::6666:b3ff:fede:f5cd<outgoing_interface>eth0.4</outgoing_interface></neighbour>"
DATA=$DATA"<neighbour><ip>fe80::6666:b3ff:fede:f5cd</ip><outgoing_interface>eth0.4</outgoing_interface></neighbour>"
DATA=$DATA"</babel_neighbours>"
DATA=$DATA"</babel_neighbours>"
</pre>
</pre>


generiert kann sie z.b. so werden:
bzw. automatisch generiert kann sie z.b. so werden (Syntax ist so richtig und funktioniert so, wenn auch unschön):


<pre>
<pre>
Zeile 85: Zeile 197:
numhops=`traceroute 10.50.130.1 2>/dev/null | tail -1 | cut -d' ' -f2`                                                                                                                         
numhops=`traceroute 10.50.130.1 2>/dev/null | tail -1 | cut -d' ' -f2`                                                                                                                         
if [ "$numhops" = "1" ]; then                                                                                                                                                                 
if [ "$numhops" = "1" ]; then                                                                                                                                                                 
         DATA=$DATA"<neighbour>fe80::6666:b3ff:fede:f5cd<outgoing_interface>eth0.4</outgoing_interface></neighbour>"                                                                           
         DATA=$DATA"<neighbour><ip>fe80::6666:b3ff:fede:f5cd</ip><outgoing_interface>eth0.4</outgoing_interface></neighbour>"                                                                           
fi                                                                                                                                                                                             
fi                                                                                                                                                                                             
                                                                                                                                                                                                
                                                                                                                                                                                                
Zeile 91: Zeile 203:
</pre>
</pre>


Besser wäre es die Daten Live aus dem Babel zu holen... Anleitung ähhhh folgt...
 
Weiterhin existiert eine Variante, die die Link-Kosten mit einschließt und ähnlich der Nachbar-Verbindungsqualität im Monitoring als History anzeigt (so implementiert in Adrians GW-Firmware):
 
<pre>
BABELS="$(echo dump | nc ::1 33123 | grep '^add neighbour' |
    awk -v RS='\n' \
    '{r = gensub(/.*add neighbour.*address ([0-9a-fA-F:]*) +if +([^ ]+).* cost +([0-9.]+).*/, \
    "<neighbour><ip>\\1</ip><outgoing_interface>\\2</outgoing_interface><link_cost>\\3</link_cost></neighbour>", "g"); print r;}')"
 
DATA=$DATA"<babel_neighbours>$BABELS</babel_neighbours>"
</pre>
 
== Debug ==
* https://monitoring.freifunk-franken.de:2367/munin
* https://monitoring.freifunk-franken.de:2367/debug.php
 
[[Kategorie:Dienste]]

Aktuelle Version vom 9. April 2020, 09:10 Uhr

Monitoring-Map

Die Monitoring-Map zeigt alle Knoten im Bereich von Freifunk Franken und ihre Verbindungen untereinander.

→ zur Monitoring-Map
→ zur Hilfeseite über die Monitoringseite eines Knotens
→ zur Hilfeseite über die Monitoring-Datenbank


Map

Layer-3 Richtfunkverbindungen (blau)
und Knoten als Popup in der Monitoring-Map

Derzeit findet eine Umstellung der Firmware statt von Version 1 zu Version 2.
Alte Router (V1) und bereits umgestellte Router (V2) werden farblich unterschieden:

Knoten
  Uplink Mesh
V1 Monitoring-router green white.svg Monitoring-router green.svg online
Monitoring-router red white.svg Monitoring-router red.svg offline
V2
Local
Monitoring-router green v2 white.svg Monitoring-router green v2.svg online
Monitoring-router red v2 white.svg Monitoring-router red v2.svg offline
alle Monitoring-router grey white.svg Monitoring-router grey.svg länger als zehn Tage offline
Monitoring-router yellow white.svg Monitoring-router yellow.svg unbekannt
   
Verbindung
 
Kabel
 
WLAN gut
 
WLAN mittel
 
WLAN schlecht
 
Layer-3 Verbindung
(verbindet Hoods)
Hood-Grenze
▃ ▃ ▃ V1
▃ ▃ ▃ V2


V1 und V2 bezieht sich auf Router der jeweiligen KeyXchange-Version.
Dezentrale Hoods werden separat dargestellt, benutzen aber den Farbcode von V2.

Knoten mit weißem Zentrum im Marker sind Uplink-Router,
Knoten mit schwarzem Zentrum sind reine Mesh-Router.
Knoten, die länger als zehn Tage offline sind, werden grau angezeigt und nach 180 Tagen abgeschaltet.

Gateways haben per Definition keinen Uplink und erscheinen mit schwarzem Punkt.

Bedienung

Zoom
Mit dem Mausrad
oder oben links mit "+" und "-" kann man rein- und rauszoomen.
Layer
Oben rechts können über das kleine Symbol die Layer ausgewählt werden:
  • Router V1
  • Router V2
  • Router local ("dezentral")
  • Hood V2 Grenzen
  • Poly-Hood Grenzen
  • Wird "Position-Popup" aktiviert, wird die Koordinate des Mauszeigers angezeigt,
    sobald man in einen leeren Bereich der Karte klickt. Kann in Zwischenablage kopiert werden.
Maßstab
Unten links ist ein Maßstab, mit dem man Entfernungen schätzen kann.

Die Karte stammt von OpenStreetMap, der Knoten-Layer von Freifunk-Franken.

Popup

Popup zu einem Knoten

Mit einem Klick auf einen roten, grünen oder grauen Knoten-Punkt der Monitoring-Karte wird in einem Popup-Fenster der Knotenname angezeigt, und darunter mit dem Knoten verbundene weitere Knoten und die Verbindungsqualität. Gut funktionierende Verbindungen werden grün, schlecht funktionierende rot angezeigt. Blaue Felder sind Layer-3 Verbindungen.

Parameter Bedeutung
Router Name des angezeigten Knotens
Link zum Monitoring des angezeigten Knotens
Link Name des verbundenen Nachbar-Knotens
Link zum Monitoring des verbundenen Nachbar-Knotens
Quality Qualität der Verbindung (1 = schlecht, 255 = gut)
die Qualität wird auch in verschiednenen Stufen der Ampelfarben angezeigt
für Babel wurde eine blaue Farbe eingeführt.
Interface
eth0.3 Der Nachbar ist per Kabel über die VLAN ID 3 verbunden
w2mesh Der Nachbar ist über das WLAN Netzwerk w2mesh verbunden.

Monitoring eines Knotens

Mit einem Klick auf einen Knotennamen im Popup-Fenster öffnet sich die "Monitoringseite des Knotens".
Sie bietet detaillierte Informationen über den aktuellen Status.

→ zur Hilfeseite über die Monitoringseite eines Knotens




Diese Seite befindet sich noch im Entwurfsstadium.
Hilf mit sie zu verbessern!



Bestimmung der Hood im Monitoring

Prinzipiell sind zwei Fälle zu unterschieden:

1. Der Router übermittelt eine Hood. In diesem Fall wird die Hood vom Monitoring ohne weitere Prüfung übernommen.

2. Der Router liefert KEINE Hood. Das Monitoring berechnet die Hood selbst aus den Koordinaten. In ungünstigen Fällen kann diese Anzeige fehlerhaft sein z.B.:

  • ein Meshrouter steht in einer anderen Hood als der Uplinkrouter dazu, dies ist möglich solang am Meshrouter kein Uplinkrouter aus der Hood wo er steht dran mesht. Der Meshrouter ist aber tatsächlich in der Hood des jeweiligen Uplinks.
  • Sind keine Koordinaten gesetzt und der Router hat Uplink kommt er in die Default-Hood.
  • Sind keine Koordinaten gesetzt und der Router hat keinen Uplink wird er in die Hood NoCoordinates einsortiert, obwohl er eigentlich in der Hood des Uplink-Routers ist.


Blaue Linien zeigen Layer-3 Verbindungen an, sie verbinden somit Hoods untereinander.

Eigene Daten mit an das Monitoring schicken

Andere Hood

uci set "system.@system[0].hood=meinehood"
uci commit system

Blaue Linien zeichnen

Bitte diesen Teil überprüfen, ob noch aktuell

https://github.com/FreifunkFranken/firmware/blob/master/src/packages/fff/fff-nodewatcher/files/usr/sbin/nodewatcher

Nach dem Blöcken mit "DATA=$DATA..." (ca. Zeile 296) muss folgendes mitgeschickt werden:

    BABELS=$(echo dump | nc ::1 33123 | awk '/^add neighbour/ {print "<neighbour><ip>"$5"</ip><outgoing_interface>"$7"</outgoing_interface></neighbour>"}')
    DATA=$DATA"<babel_neighbours>$BABELS</babel_neighbours>"                               


Achtung: geht erst ab Babel 1.8 und nur, wenn in Babel die Option 'local-port 33123' aktiviert ist (Entweder in /etc/config/babeld (lede) oder /etc/babeld.conf (Debian) ). Das Standard netcat unter Debian 9 kann kein IPv6, es muss netcat-openbsd installiert sein. Bei diesem ist für korrekte Funktion noch die Option '-N' notwendig.


Andernfalls können die Babel-Nachbarn auch so mitgeschickt werden:

DATA=$DATA"<babel_neighbours>"  
DATA=$DATA"<neighbour><ip>fe80::6666:b3ff:fede:f5cd</ip><outgoing_interface>eth0.4</outgoing_interface></neighbour>"
DATA=$DATA"</babel_neighbours>"

bzw. automatisch generiert kann sie z.b. so werden (Syntax ist so richtig und funktioniert so, wenn auch unschön):

DATA=$DATA"<babel_neighbours>"                                                                                                                                                                
                                                                                                                                                                                              
numhops=`traceroute 10.50.130.1 2>/dev/null | tail -1 | cut -d' ' -f2`                                                                                                                        
if [ "$numhops" = "1" ]; then                                                                                                                                                                 
        DATA=$DATA"<neighbour><ip>fe80::6666:b3ff:fede:f5cd</ip><outgoing_interface>eth0.4</outgoing_interface></neighbour>"                                                                           
fi                                                                                                                                                                                            
                                                                                                                                                                                              
DATA=$DATA"</babel_neighbours>"


Weiterhin existiert eine Variante, die die Link-Kosten mit einschließt und ähnlich der Nachbar-Verbindungsqualität im Monitoring als History anzeigt (so implementiert in Adrians GW-Firmware):

BABELS="$(echo dump | nc ::1 33123 | grep '^add neighbour' |
    awk -v RS='\n' \
    '{r = gensub(/.*add neighbour.*address ([0-9a-fA-F:]*) +if +([^ ]+).* cost +([0-9.]+).*/, \
    "<neighbour><ip>\\1</ip><outgoing_interface>\\2</outgoing_interface><link_cost>\\3</link_cost></neighbour>", "g"); print r;}')"

DATA=$DATA"<babel_neighbours>$BABELS</babel_neighbours>"

Debug