OLSR/SmartGateway
Wozu SmartGateway?
Ohne SmartGateway wählt OLSR immer das Gateway mit dem aktuell besten ETX-Wert. Wenn mehrere Gateways einen ähnlichen ETX-Wert haben, dann wird wegen der normalen Fluktuationen oft das Gateway gewechselt. Das führt zu dem unangenehmen Nebeneffekt, dass alle laufenden Verbindungen (TCP, z.B. SSH-Sessions oder Downloads per HTTP) hängen und irgendwann abgebrochen werden.
SmartGateway soll dieses Problem beheben, indem ein (unverschlüsselter IPIP-) Tunnel zu einem Gateway aufgebaut wird und dieses Gateway beibehalten wird, selbst wenn ein anderes Gateway aktuell einen besseren ETX-Wert hat. Das Gateway wird nach Pfadkosten/-länge und seiner angegebenen Bandbreite ausgewählt. Details dazu finden sich im README.
- README-Olsr-Extensions von OLSRd
Konfiguration
Installieren des IPIP Kernel Moduls:
opkg install kmod-ipip
Hilfreich beim Aufspüren von Problemen:
opkg install ip
Aktivieren von Smartgateway in /etc/config/olsrd in der section config 'olsrd':
option 'SmartGateway' 'yes'
Die Konfiguration ist hier separat beschrieben für ein Gateway bzw. "Client"-Node. Es kann aber auch beides gleichzeitig eingerichtet werden, dann kann ein "Client"-Node ohne neue Konfiguration in ein Gateway-Node umgewandelt werden und umgekehrt.
Gateway
Unter /etc/config/network das tunl0 Interface hinzufügen:
config 'interface' 'tunl0' option 'proto' 'none' option 'ifname' 'tunl0'
Das tunl0 Interface zu einer zone hinzufügen und forwarding auf die wan-zone erlauben in /etc/config/firewall, z.B. so:
config 'zone' option 'input' 'ACCEPT' option 'forward' 'REJECT' option 'output' 'ACCEPT' option 'name' 'smarttun' option 'network' 'tunl0' config 'forwarding' option 'dest' 'wan' option 'src' 'smarttun'
Todo: Proto 4 fuer ipip muss eingehend erlaubt werden noch auf den wlan-interfaces, z.B. iptables -I INPUT -p 4 -i ath0 -j ACCEPT
"Client"
Für die dynamisch erstellten tnl_XXXXX Intefaces müssen forwarding und NAT in der /etc/firewall.user aktiviert werden:
iptables -I FORWARD -o tnl_+ -j ACCEPT iptables -t nat -I POSTROUTING -o tnl_+ -j MASQUERADE
Todo
- Wie kann ein anderes Gateway ausgewählt werden?
- Dazu bräuchte es ein kleines Plugin für olsr, gibts laut Henning aber noch nicht --Soma 09:34, 7. Mai 2011 (UTC)