So erzwingen Sie, dass VPLS / L2VPN einen bestimmten Pfad verwendet

8

Wir verwenden VPLS und L2VPN auf Juniper MX für L2-Verbindungen. Die Signalisierung erfolgt über BGP und die Verteilung der Etiketten über LDP.

Jetzt möchten wir, dass ein L2VPN einen bestimmten Pfad durch das Netzwerk verwendet und nicht dem IGP folgt.

Da wir derzeit nur LDP verwenden, müssten wir RSVP neben LDP einführen. Gibt es dabei irgendwelche Einschränkungen?

Ich suche nach praktischen Beispielen, wie dies bei den Juniper-Boxen gemacht wird.

Sebastian Wiesinger
quelle

Antworten:

8

Kurze Antwort, verwenden Sie einfach das Resource ReSerVation Protocol (RSVP).

Lange Antwort, Sie könnten Multi-Topologie-Routing verwenden und mehrere Metriken in jeder Schnittstelle haben und einige Pakete in eine andere Topologie als andere Pakete zwingen. Aber ich würde mich nicht wirklich dorthin wagen.

Möglicherweise möchten Sie mit Ihrem Account-Team darüber sprechen, dass das Segment-Routing implementiert werden soll: http://tools.ietf.org/html/draft-previdi-filsfils-isis-segment-routing-02 (Kundendruck hilft bei der Ressourcenentwicklung)

Das Segment-Routing würde es trivial machen, Ihr Problem zu lösen, während Sie sowohl LDP als auch RSVP aus Ihrem Netzwerk entfernen und sich nur auf IGP verlassen.


Da mein Vorschlag in den Kommentaren nicht wirklich funktioniert hat, werde ich erklären, warum nicht und wie man das Problem behebt.
Das Problem ist, dass LSP in HW installiert sein muss, um es verwenden zu können. Und nach meinem Vorschlag wird der RSVP-LSP erst installiert, wenn der LDP-LSP nicht mehr vorhanden ist. Daher können wir dort keinen bedingten Verkehr einspeisen.

Ich konnte keine Möglichkeit finden, RSVP + LDP in ECMP zu erzwingen, mit gleicher Präferenz gewinnt LDP. Aber wir können immer noch das erreichen, was zumindest auf zwei verschiedene Arten gewünscht wird.

  1. Dual Next-Hops
    Fügen Sie den l2circuit PEs den zweiten Next-Hop hinzu. Dieser Next-Hop wird von iBGP nicht verwendet, daher wird überhaupt kein Datenverkehr gezogen.
    Konfigurieren Sie nun den RSVP-Tunnel für diesen zweiten Loopback und verwenden Sie ihn als Nachbaradresse für l2circuit.
    Der Nettoeffekt ist, dass der gesamte Datenverkehr LDP verwendet, mit Ausnahme dieses l2-Schaltkreises, der RSVP verwendet
  2. Nur RSVP
    Erstellen Sie zwei RSVP-Tunnel, einen über den IGP-Pfad (dh über denselben wie LDP) und einen über Ihren expliziten Pfad. Diese können auf ECMP eingestellt werden, dh der gesamte Verkehr verwendet beide Tunnel.
    Nachdem wir die ECMP-Anforderungen erfüllt haben, können wir die Exportrichtlinie "Routing-Optionen-Weiterleitungstabelle" verwenden, um etwas Verkehr auf LSP_NORMAL und etwas Verkehr auf LSP_EVPN zu setzen. Im Wesentlichen wäre unsere Exportpolitik:

.

term EVPN {
    from community EVPN;
    then {
        install-nexthop lsp LSP_EVPN;
        accept;
    }
}
term NORMAL {
    from next-hop 1.2.3.4;
    then {
        install-nexthop lsp LSP_NORMAL;
        accept;
    }
}

Jetzt würde kein Datenverkehr tatsächlich das ECMP verwenden, da der gesamte Datenverkehr zu dem einen oder anderen RSVP-LSP gezwungen würde.
Ich würde die 1. Option bevorzugen.

ytti
quelle
1
Dies sollte den Weg weisen: kb.juniper.net/InfoCenter/… - im Wesentlichen RSVP-Tunnel erstellen, Community verwenden, um zu unterscheiden, welcher Verkehr in ihn eintritt
ytti
1
Stellen Sie die RSVP-Tunnelpräferenz auf mehr als 9 ein.
ytti
1
Nur eine Anmerkung, das scheint nicht zu funktionieren. Wenn ich dem RSVP eine höhere Präferenz gebe, wird das Label nicht in der mpls-Tabelle installiert und der Pfad wird nicht angezeigt (l2circuit meldet "OL" -> kein ausgehendes Label)
Sebastian Wiesinger
1
Du hast recht. Mit höherer Präferenz wird es überhaupt nicht in HW installiert (Routenweiterleitungstabelle mit EGRESS / 32 anzeigen), sodass es vom Export der Weiterleitungstabelle nicht akzeptiert werden kann. Ich habe versucht, eine Lösung zu finden, um sowohl installiert als auch RSVP unter bestimmten Bedingungen zu verwenden, aber ich habe schwarz gezeichnet. Eine Lösung wäre, einen weiteren Loopback für RSVP hinzuzufügen, den Sie nur dafür verwenden, und dann den l2circuit in Richtung des neuen 'RSVP-Loopbacks' zu machen. Auf diese Weise verwenden die restlichen Präfixe das LDP-Loopback-Label und dieses verwendet RSVP-Loopback-Labels. Kein Community + Forwarding-Table-Export erforderlich.
Ytti
1
Ich denke, Sie hätten 'psn-tunnel- endpoint
ytti