Niit

Aus wiki.freifunk.net
Zur Navigation springenZur Suche springen

Niit, der Nachfolger von siit, soll IPv4-Connectivity über IPv6-Meshes ermöglichen, ohne das im mesh IPv4 gesprochen werden muss. Die Verbindung von IPv4-Inseln über reine IPv6-Meshes hinweg umgeht die Notwendigkeit 2 Routingprotokolle parallel betreiben zu müssen.

Niit arbeitet, in dem es IPv4-Datenpakete in IPv6-Datenpakete einkapselt, aber das Schema der Adressumsetzung von ssit behält.

Ziel ist es, einen auf niit und ahcp basierenden Prototypen zu bauen. Bei Anwesenheit eines ahcp-Servers im Mesh soll dieser Prototyp, z.B. als frisch geflashter Node, den Nutzer ohne weitere Konfiguration mit IPv4- und IPv6-Internet versorgen.

Die Idee:

Einen Prototypen bauen, welcher es ermöglicht, niit mit vielen Nodes zu testen. Es ist daher nötig, den Konfigurationsaufwand auf ein Minimum zu reduzieren.

1. Simple node

Der simple node ist der frisch geflashte Node, er soll ohne weiteres anfassen sofort funktionieren und sich weitestgehend selbst konfigurieren, wenn ein Mesh in Funkreichweite ist:

  • bekommt per ahcp ipv6 prefix, startet routing
  • bekommt per ahcp ipv4 adresse, nutzt die für niit.
    • LAN bekommt 192.168.1.1/24 und nattet
    • DHCP-Splash bekommt random 192er /27 netz und nattet
  • versucht dhcp auf wan, wenn internet da, dann sei uplink.
  • alle vorhandenen interfaces konfigurieren ipv6 mesh adressen und stehen dem routingdaemon zur verfügung
  • ein wlanscan mit nachfolgendem abgleich von skyhookwireless zwecks ungefähren karteneintrag
  • konfigurieren eines ip4 gateway tunnels nach bestimmung eines geeigneten gateways (heuristiken?)
  • optional:
    • modifikation von ahcp zwecks stateful subnetz reservierung für lan und dhcp-splash.
    • wenn uplink vorhanden, aber nachbarn nicht, reserviere per internet einen ip (und subnetz) pool und werde ahcp server.

2. Der Assistent

Ermöglicht, all die Dinge zu konfigurieren, welche nicht automatisch konfiguriert werden können:

  • routing von lan, statt NAT. dafür muss händisch ein netz eingetragen werden.
  • routing von wlan dhcp clients, auch hier muss ein netz angegeben werden.
  • klassisches ipv4 olsr routing, dafür wird eine ipv4 adresse benötigt.
  • manuelles, genaues einstellen der position mit open street map webplugin.
  • Händisches konfigurieren von ipv4 gateway tunnel.
  • root password setzen

3. IPv6 Uplink

IPv6-Uplink erfordert das stateful reservieren eines /64 Prefix pro IPv6 Interfaces bei einem IPv6 Gateway und einen asymmetrischen IPv6 in IPv6 Gatewaytunnel oder 'loose source routing' zum Gateway:

  • modifikation von ahcp zwecks stateful prefix allocation.
  • dynamische rekonfiguration von radvd.

Die Router-Appliance

  • Firmware wird auf den Router geflashed,
  • Router macht IPv6 selfconfig aus MAC-Adressen und
  • Router startet auf allen Interfaces IPv6 routing.

Quellen

Finden sich in dem Git-Repository auf [1].