IGP-Kopplung-Roadmap.page 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. ---
  2. title: Roadmap für die Weiterentwicklung der IGP-Kopplung
  3. categories: Projekte Routing VPN
  4. format: DocBook
  5. ...
  6. <article>
  7. <articleinfo>
  8. <title>Roadmap für die Weiterentwicklung der IGP-Kopplung</title>
  9. </articleinfo>
  10. <simpara>
  11. Dieses Dokument dient der Planung und Kooperation zur praktischen Weiterentwicklung der IGP-Kopplung. Zur Herleitung dieses Routingkonzepts für Freifunk-Netze siehe den Text zum <ulink url="Fussgaengerzonenproblem">Fußgängerzonenproblem</ulink>.
  12. </simpara>
  13. <table>
  14. <tgroup cols="3">
  15. <colspec align="left" />
  16. <colspec align="left" />
  17. <colspec align="left" />
  18. <thead>
  19. <row>
  20. <entry>
  21. Bereich
  22. </entry>
  23. <entry>
  24. Status
  25. </entry>
  26. <entry>
  27. Aufgaben
  28. </entry>
  29. </row>
  30. </thead>
  31. <tbody>
  32. <row>
  33. <entry>
  34. Routing
  35. </entry>
  36. <entry>
  37. -
  38. </entry>
  39. <entry>
  40. <para>
  41. Erstellung einer (mit den Teilnehmenden wachsenden) Einführung in das Thema dynamisches Routing:
  42. <itemizedlist>
  43. <listitem>
  44. <simpara>
  45. als Text, mit repository für Text und config und src, sowie ggf. passende Laborfirmware (zB à la <ulink url="http://nicolasacco.diveni.re/~gioacchino/internship-report/main.html">Libre-Mesh</ulink>).
  46. </simpara>
  47. </listitem>
  48. <listitem>
  49. <simpara>
  50. Unterthemen: Routing im Internet mit großem I (OSPF, BGP). Routing für den Freifunk, d.h. u.a. WLAN-adhoc-Meshes, leistungsschwache Router, communities (OLSR, Babel, B.A.T.M.A.N.). Mit Beispielen aus dem FF und insb. Übungen zum "Routing Selbermachen" mit üblicher Hardware.
  51. </simpara>
  52. </listitem>
  53. <listitem>
  54. <simpara>
  55. Ziel der Einführung: Eigenhändiger Anschluss der Geräte der Routing-Adepten (m/w) an das dynamische Routing der FF-(Übungs-)Netze. Dadurch leichteres Verstehen des eigenen (FF-)Netzes. Befähigung zum Analysieren und Lösen von Routingproblemen, und ggf. zum Verbessern und Weiterenwickeln des FF-Routings.
  56. </simpara>
  57. </listitem>
  58. </itemizedlist>
  59. </para>
  60. </entry>
  61. </row>
  62. <row>
  63. <entry>
  64. IGP-Kopplung
  65. </entry>
  66. <entry>
  67. Laborbetrieb (bewohnbar;)
  68. </entry>
  69. <entry>
  70. <itemizedlist>
  71. <listitem>
  72. <simpara>
  73. Aktualisierung des praktischen Teils des Textes "<ulink url="Fussgaengerzonenproblem">Fußgängerzonenproblem</ulink>": die zZ in Betrieb befindliche Konkretisierung der IGP-Kopplung enthält kleinere Korrekturen, Verbesserungen und insb. die für den realen Betrieb wichtige Integration von Babel-Metriken. Diese Fortschritte gegenüber der Version zu den FF-RL-Routing-Days sind noch nicht dokumentiert.
  74. </simpara>
  75. </listitem>
  76. <listitem>
  77. <para>
  78. Bird attitude readjustment:-) Notwendige und wünschenswerte patches sind nach bisheriger Erfahrung mit der IGP-Kopplung:
  79. <itemizedlist>
  80. <listitem>
  81. <simpara>
  82. OSPF &lt;-&gt; OSPF redistribution ermöglichen. Höchste Priorität, denn dies macht die Einfachheit der Idee "IGP-Kopplung" durch massive Vereinfachung gegenüber der jetzigen Bird-Konfiguration sichtbar und wirksam.
  83. </simpara>
  84. </listitem>
  85. <listitem>
  86. <simpara>
  87. Einführung eines Routenattributes "common_metric", das als tie-braker bei Routen gleicher preference fungiert, wenn es vorhanden ist. Dadurch können auch Routen aus verschiedenen IGPs gemäß einer gemeinsamen (globalen) Metrik verglichen werden. Dies stellt eine Voraussetzung für eine hererogene IGP-Kopplung dar, also dass verschiedene IGPs gleichzeitig genutzt und gekoppelt werden.
  88. </simpara>
  89. </listitem>
  90. <listitem>
  91. <simpara>
  92. Ggf. Optimierung der Interaktion von Bird und Kernel: bei den häufigen Routenänderungen in einer IGP-Kopplung mit dynamischen Metriken sollten die von Bird durchgeführten Änderungen an der FIB des Kernels minimiert werden, also insb. sollte nur dann eine Routenänderung erfolgen, wenn sich das gateway geändert hat, nicht nur der Metrikwert. Eine FIB-Änderung sollten in einem Schritt erfolgen (change) statt in zweien (delete + add).
  93. </simpara>
  94. </listitem>
  95. <listitem>
  96. <simpara>
  97. Die für die "Schleifenbits" der IGP-Kopplung benötigte Bitarithmetik könnte direkt in die filter language von Bird als elementare Operationen eingebaut werden.
  98. </simpara>
  99. </listitem>
  100. </itemizedlist>
  101. </para>
  102. </listitem>
  103. <listitem>
  104. <para>
  105. Babel attitude readjustment:-) Notwendige und wünschenswerte patches des babeld sind nach bisheriger Erfahrung:
  106. <itemizedlist>
  107. <listitem>
  108. <simpara>
  109. IP-Adressen, die auf einem Interface liegen, auf dem babeld läuft, sollten von babeld auch auf diesem Interface geroutet werden. (Der jetzige Zustand erscheint eher als bug denn als feature.)
  110. </simpara>
  111. </listitem>
  112. <listitem>
  113. <simpara>
  114. Erweiterung von Babel um die "Schleifenbits", oder Verallgemeinerungen davon.
  115. </simpara>
  116. </listitem>
  117. </itemizedlist>
  118. </para>
  119. </listitem>
  120. </itemizedlist>
  121. </entry>
  122. </row>
  123. <row>
  124. <entry>
  125. dDHCP (verteiltes DHCP)
  126. </entry>
  127. <entry>
  128. Laborbetrieb (bewohnbar;)
  129. </entry>
  130. <entry>
  131. <itemizedlist>
  132. <listitem>
  133. <simpara>
  134. In der jetzigen (extrem gebaumarkteten) Implementierung eines <ulink url="/Technik/Routing/Fragen#verteiltes-dhcp-durch-routing">durch Routinginformationen vermittelten dDHCP</ulink> fehlt noch die Konfliktauflösung nach Partitionierungen einer IGP-Kopplung. Dafür sollte zunächst ein geeigneter, d.h. insb. verteilter Entscheidungsalgorithmus formuliert werden, der (zB durch ein totale Ordnungsrelation auf den dDHCP-Routen der IGP-Kopplung) regelt, welche lease gültig bleibt und welche lease(s) von den entsprechenden dDHCP-Servern (Routern) autonom verworfen werden müssen. Das resultierende Verfahren könnte mit der Konvergenzgeschwindigkeit des Routings nach dem Wegfall einer Partitionierung den dDHCP-Adressbereich wieder konfliktfrei machen - wenn da nicht die Gültigkeitsspanne der ausgebenen leases wäre. Falls also globale Partitionierungen in einer konkreten IGP-Kopplung ein reales Problem darstellen, sollte die lease time möglichst klein gewählt werden, um die Auswirkungen auf die von IP-Adresskonflikten betroffenen clients zu minimieren, wg. "betroffen" = "keine Connectivity über den AP hinaus", also der GAU für den client.
  135. </simpara>
  136. </listitem>
  137. <listitem>
  138. <para>
  139. ISC-dhcpd attitude readjustment:-) Für die zZ implementierte Nutzung des ISC-dhcpd für dDHCP waren unschöne Workarounds nötig, die durch vmtl. kleine Eingriffe (patches) vermieden werden könnten, was auch seriöseren Implementierungen eines dDHCP-mit-ISC-dhcpd nutzen könnte.
  140. <itemizedlist>
  141. <listitem>
  142. <simpara>
  143. Mehr Informationen über eine lease an die getriggerten (on commit/on expiry) Skripte oder Daemons übergeben, die sich dann um das "d" in "dDHCP" kümmern.
  144. </simpara>
  145. </listitem>
  146. <listitem>
  147. <simpara>
  148. Bessere Abfragemöglichkeiten für leases und host entries in der lease DB.
  149. </simpara>
  150. </listitem>
  151. </itemizedlist>
  152. </para>
  153. </listitem>
  154. <listitem>
  155. <simpara>
  156. Entwicklung eines Daemons, der zwischen Bird und ISC-dhcpd vermittelt und die jetzigen Shell-Skripte (sic!) für das dDHCP ablöst. Dann könnten auch Caching (gegen Wackelkontakte im Routing) und Konfliktauflösung (gegen die Auswirkungen von globalen Partitionierungen, s.o.) leichter implementiert werden.
  157. </simpara>
  158. </listitem>
  159. <listitem>
  160. <simpara>
  161. Alternativ zu allem obigen könnte man auch einen eigenständigen dDHCPd versuchen (zB <ulink url="/Technik/Routing/Fragen#verteiltes-dhcp-im-mesh">pyddhcpd</ulink>, <ulink url="https://git.toppoint.de/sargon/ddhcpd/">ddhcpd</ulink>) oder selbst entwickeln. Gegen Letzteres spricht der Aufwand, das Rad neu zu erfinden, und für dDHCP mit ISC-dhcpd spricht die Verbreitung des ISC-dhcpd, die eine oft leichte Integrierbarkeit des dDHCP in bestehende Umgebungen verspricht. Außerdem kann der ISC-dhcpd auch Einiges, was es FF-Routernutzerinnen (m/w) erleichtert, DHCP-bezogene Spezialaufgaben vor Ort mit einem Standard-FF-Router und ohne Installation eines weiteren DHCPd zu lösen.
  162. </simpara>
  163. </listitem>
  164. </itemizedlist>
  165. </entry>
  166. </row>
  167. </tbody>
  168. </tgroup>
  169. </table>
  170. </article>