Opennet Firmware
 Alle Dateien Funktionen Variablen Gruppen Seiten
Routing

Abfrage von Routing-Informationen und Einrichtung des Policy-Routings. Mehr ...

Funktionen

 is_ipv4 (target)
 Prüfe ob der übergebene Text eine IPv4-Adresse ist.
 is_ipv6 (target)
 Prüfe ob der übergebene Text eine IPv6-Adresse ist.
 filter_routable_addresses ()
 Filtere aus einer Menge von Ziel-IPs diejenigen heraus, für die eine passende Routing-Regel existiert.
 get_target_route_interface (target)
 Ermittle das Netzwerkinterface, über den der Verkehr zu einem Ziel laufen würde.
 add_zone_policy_rules_by_iif (zone, route)
 Erzeuge Policy-Rules fuer Quell-Interfaces.
 initialize_olsrd_policy_routing ()
 Policy-Routing-Initialisierung nach dem System-Boot und nach Interface-Hotplug-Ereignissen.
 get_routing_table_id (table_name)
 Ermittle die Nummer der namentlich gegebenen Routing-Tabelle.
 add_routing_table (table_name)
 Erstelle einen neuen Routing-Tabellen-Eintrag.
 get_hop_count_and_etx (host)
 Liefere den Hop-Count und den ETX-Wert für einen Zielhost zurück.

Ausführliche Beschreibung

Abfrage von Routing-Informationen und Einrichtung des Policy-Routings.

Dokumentation der Funktionen

add_routing_table ( table_name  )

Erstelle einen neuen Routing-Tabellen-Eintrag.

Parameter
table_nameder Name der zu erstellenden Routing-Tabelle

Die Routing-Tabellen-Nummer wird automatisch ermittelt. Sollte die Tabelle bereits existieren, dann wird ihre Nummer zurückgeliefert.

Rückgabe
die neue Routing-Tabellen-Nummer wird zurückgeliefert

Definiert in Zeile 48 der Datei routing.sh.

add_zone_policy_rules_by_iif ( zone  ,
route   
)

Erzeuge Policy-Rules fuer Quell-Interfaces.

Parameter
zonePakete aus allen Interfaces dieser Zone kommend sollen betroffen sein
routeSpezifikation einer Route (siehe 'ip route add ...')

Definiert in Zeile 29 der Datei routing.sh.

filter_routable_addresses ( )

Filtere aus einer Menge von Ziel-IPs diejenigen heraus, für die eine passende Routing-Regel existiert.

Lies IP-Addressen zeilenweise via stdin ein und gib alle Adressen aus, die (laut "ip route get") erreichbar sind. Dies bedeutet nicht, dass wir mit den Adressen kommunizieren koennen - es geht lediglich um lokale Routing-Regeln.

Rückgabe
zeilenweise Ausgabe der route-baren Ziel-IPs:w

Definiert in Zeile 18 der Datei routing.sh.

get_hop_count_and_etx ( host  )

Liefere den Hop-Count und den ETX-Wert für einen Zielhost zurück.

Parameter
hostdie Ziel-IP
Rückgabe
Der Hop-Count und der ETX-Wert wird mit einem Leerzeichen separiert ausgegeben. Falls keine Route bekannt ist, ist das Ergebnis ein leerer String.

Die Quelle dieser Information ist olsrd. Routen außerhalb von olsrd werden nicht beachtet.

Definiert in Zeile 54 der Datei routing.sh.

get_routing_table_id ( table_name  )

Ermittle die Nummer der namentlich gegebenen Routing-Tabelle.

Parameter
table_nameName der gesuchten Routing-Tabelle
Rückgabe
Routing-Tabellen-ID oder nichts (falls die Tabelle nicht existiert)

Definiert in Zeile 41 der Datei routing.sh.

get_target_route_interface ( target  )

Ermittle das Netzwerkinterface, über den der Verkehr zu einem Ziel laufen würde.

Parameter
targetHostname oder IP des Ziel-Hosts

Falls erforderlich, findet eine Namensauflösung statt.

Rückgabe
Name des physischen Netzwerk-Interface, über den der Verkehr zum Ziel-Host fließen würde

Definiert in Zeile 24 der Datei routing.sh.

initialize_olsrd_policy_routing ( )

Policy-Routing-Initialisierung nach dem System-Boot und nach Interface-Hotplug-Ereignissen.

Folgende Seiteneffekte treten ein:

  • alle Policy-Rules mit Bezug zu den Tabellen olsrd/olsrd-default/main werden gelöscht
  • die neuen Policy-Rules für die obigen Tabellen werden an anderer Stelle erzeugt Kurz gesagt: alle bisherigen Policy-Rules sind hinterher kaputt

Definiert in Zeile 36 der Datei routing.sh.

is_ipv4 ( target  )

Prüfe ob der übergebene Text eine IPv4-Adresse ist.

Parameter
targeteine Zeichenkette (wahrscheinlich ein DNS-Name, eine IPv4- oder IPv6-Adresse)

Definiert in Zeile 7 der Datei routing.sh.

is_ipv6 ( target  )

Prüfe ob der übergebene Text eine IPv6-Adresse ist.

Parameter
targeteine Zeichenkette (wahrscheinlich ein DNS-Name, eine IPv4- oder IPv6-Adresse)

Achtung: der Test ist recht oberflächlich und kann falsche Positive liefern.

Definiert in Zeile 12 der Datei routing.sh.