hknutzen/Netspoc

Must not use routing=manual at single interface

hknutzen opened this issue · 1 comments

Netspoc generiert statische Routen für Router.
Die Routen können über unterschiedliche Interfaces führen.
Das Approve gleicht die Routen auf dem Gerät an die von Netspoc generierten Routen an.
Wenn Netspoc für ein Gerät keine Routen generiert hat, dann lässt Approve die (manuell eingetragenen) Routen auf dem Gerät unverändert.

Problem:
Wir können mit routing=manual das Generieren von Routen für einzelne Interfaces abschalten.
Wenn Netspoc aber für andere Interfaces Routen generiert, dann enthält die generierte Router-Konfiguration Routen. Das Approve nimmt das als Aufforderung, alle Routen abzugleichen.
Für die Interfaces mit routing=manual werden dann fälschlich die Routen entfernt.

Lösungsansätze:
1.
Dem Approve mitteilen, dass Routen für einzelne Interfaces nicht angefasst werden sollen.
Auf Cisco-ASA enthalten die Befehle für statische Routen den Namen des Interface. Hier könnten diese Routen einfach ausgelassen werden.
Aber bei allen anderen Geräten kann nicht direkt erkannt werden, über welches Interface eine Route verläuft.
Daher weiß das Approve nicht, welche Routen es anfassen darf und welche nicht.
Dieser Ansatz kann also nicht genommen werden.
2.
routing=manual nicht mehr für einzelne Interfaces, sondern nur noch für das ganze Gerät und damit alle Interfaces zulassen. Dann tritt das Problem nicht mehr auf.

Ansatz 2 kann aber nicht direkt umgesetzt werden.
Denn wir verwenden routing=manual zur Zeit auch, wenn auf einem Interface die Routen durch ein nicht näher beschriebenes Routing-Protokoll (z.B. BGP) dynamisch gesetzt werden.
Hier ist es durchaus sinnvoll, nur an dem einen Interface das Generieren statischer Routen auszuschalten.
Sollten wir für diese Situation ein neues Schlüsselwort routing=dynamic einführen?
Technisch bedeutet routing=manual und routing=dynamic exakt dasselbe, nämlich das Netspoc für das Interface keine statischen Routen generiert.

Hilft dem Benutzer diese Unterscheidung?

Fixed in 03c7a1b.