Eigenes Backbonenetz: spezifisches Routing v4 Demo und v6 Frage

Moin zusammen,

wir haben im Münsterland inzwischen drei Backboneserver, die am Rheinlandbackbone hängen, das Natting für alle Subdomänen übernehmen usw.

Solange wir z.B. 3 Gateways pro Domäne haben und diese an drei unterschiedliche Backboneserver hängen, ist alles gut. Über die Natting-IPv4s wird der eingehende Verkehr sowieso eindeutig zugewiesen und dann direkt an das passende Gateway geschickt und von dort durch Batman zum Knoten usw., weil es nur einen kürzesten Weg gibt. Wenn ich jetzt aber in einer Community zwei Gateways am selben Backbone hängen habe, gibt es Querverkehr, der das Netz massiv ausbremst:

Backboneserver
  |-> Gateway A
  |     | (Gretap)
  |-> Gateway B

Entweder schickt der Backboneserver alles zum Gateway A und das, was zu B sollte, muss dann nochmal durch den Gretap-Tunnel und somit durch Batman oder umgekehrt. Das führt zu ziemlichen Durchsatzeinbußen.

Die Idee ist also dem Backboneserver schon mitzuteilen, weile Teilbereiche des Netzes wohin müssen. Dazu hab ich mit ipcalc und Ansible aus dem DHCP-Bereich statische Routen berechnen lassen und verteile diese per OSPF an den Backboneserver:

protocol static dhcp_Bereich {
    table ffnet;
    route 10.43.8.2/32 via "bat0";
    route 10.43.8.26/31 via "bat0";
    route 10.43.8.28/30 via "bat0";
    route 10.43.8.32/27 via "bat0";
    route 10.43.8.64/26 via "bat0";
    route 10.43.8.128/25 via "bat0";
    route 10.43.9.0/24 via "bat0";
    route 10.43.10.0/25 via "bat0";
    route 10.43.10.128/27 via "bat0";
    route 10.43.10.160/32 via "bat0";
}

So einen Block gibt es dann pro Gateway. Die Anzahl ist groß, weil die DHCP-Bereich derzeit so krumm sind. Wenn man da saubere /24er-Netze nehmen würde, wäre es deutlich übersichtlicher. Aber das ist erstmal egal.

OSPF-Export-Filter:

export filter {
    if source=RTS_STATIC_DEVICE then accept;
    else reject;
};

Da ich das auch erst seit heute habe, weiß ich noch nicht, wie gut es funktioniert. Aber mal abwarten. Ich bin da optimistisch. Es gibt dafür auch eine Ansible-Rolle, falls sich jemand dafür interessiert: - FÃr Birdv4 automatisch spezifische statische Routen fÃr den DHCP-B… · FreiFunkMuenster/ansible-ffms@ab36289 · GitHub und - Route zum Gateways selbst noch als /32 eingefügt · FreiFunkMuenster/ansible-ffms@4a625ed · GitHub sind die Patches.

Frage: Wie würdet ihr das mit IPv6 machen? Bei uns hat jede Subdomäne ein /56, sodass wir das theoretisch später mal separat ans Rheinlandbackbone proklamieren (announcen) können, wenn wir das per Skript oder Gui selbst Tunnel schalten können. Jetzt könnte man jedem Gateway innerhalb einer Subdomäne ein eigenes /64 geben und dieses separat routen lassen. Aber wie verhalten sich dann die Knoten? Diese proklamieren ja auch nochmal ein /64-Netz. Könnte man das abschalten, oder wird das von dem rdnss des bird6 überschrieben? Hat jemand eine Idee?

Ich bin da mit IPv6 noch nicht so firm, würde mich über Tipps freuen.

Grüße
Matthias

1 Like

Die Knoten verteilen doch nur eine ULA und die Gateways die PublicIPv6. Die Endgeräte können mehrere IPv6 haben und entscheiden dann ja nach Ziel welche sie benutzen.

Okay, d.h. wenn ich dich richtig verstehe, könnte ich im bird6 auf jedem Gateway ein anderes /64-Netz einstellen. Muss ich dann noch was beachten, sodass Batman das /56-Netz als ein Layer2-Netz auffasst?