Hub-and-Spoke-VPNs
Konfiguration von Hub-and-Spoke-VPN-Topologien: Eine Schnittstelle
Verwenden Sie eine Konfiguration mit nur einer Schnittstelle, um eine Standardroute von einem oder mehreren Hubs anzukündigen.
Abbildung 1 zeigt eine Layer 3-VPN-Hub-and-Spoke-Anwendung, bei der es nur eine Schnittstelle zwischen dem Hub-CE (CE1) und dem Hub-PE (PE1) gibt. Dies ist die empfohlene Methode zum Konfigurieren von Hub-and-Spoke-Topologien.
In dieser Konfiguration wird eine Standardroute vom Hub zu den Spokes angekündigt. Wenn spezifischere Spoke CE-Routen zwischen Spoke CE-Routern ausgetauscht werden müssen, werden zwei Schnittstellen zwischen Hub CE und Hub PE benötigt. Ein Beispiel für zwei Schnittstellen finden Sie unter Konfigurieren von Hub-and-Spoke-VPN-Topologien: Zwei Schnittstellen .
In diesem Konfigurationsbeispiel sieht die Verteilung der Spoke-Route wie folgt aus:
-
Spoke CE2 kündigt seine Routen zu spoke PE2 an.
-
Spoke PE2 installiert Routen von CE2 in seine VPN-Routing- und Weiterleitungstabelle (VRF).
-
Spoke PE2 überprüft seine VRF-Exportrichtlinie, fügt die Routenziel-Community hinzu und kündigt die Routen zum Hub PE1 an.
-
Hub PE1 überprüft seine VRF-Importrichtlinie und installiert Routen, die der Importrichtlinie entsprechen, in der Tabelle bgp.l3vpn.0.
-
Hub PE1 installiert Routen aus der Tabelle bgp.l3vpn.0 in die VRF-Tabelle des Hubs.
-
Hub PE1 kündigt Routen von der Hub-VRF-Tabelle zum Hub CE1 an.
In diesem Konfigurationsbeispiel lautet die Standardroutenverteilung wie folgt:
-
Hub CE1 kündigt eine Standardroute zu Hub PE1 an.
-
Hub PE1 installiert die Standardroute in der Hub-VRF-Tabelle.
-
Hub PE1 überprüft seine VRF-Exportrichtlinie, fügt die Routenziel-Community hinzu und kündigt die Standardroute zu Spoke PE2 und PE3 an.
-
Spoke PE2 und PE3 überprüfen ihre VRF-Importrichtlinie und installieren die Standardroute in die Tabelle bgp.l3vpn.0.
-
Spoke PE2 und PE3 installieren die Routen aus der Tabelle bgp.l3vpn.0 in ihre Spoke-VRF-Tabellen.
-
Spoke PE2 und PE3 kündigen die Standardroute von der Spoke-VRF-Tabelle zu Spoke CE2 und CE3 an.
In den folgenden Abschnitten wird beschrieben, wie Sie eine Hub-and-Spoke-Topologie mit einer Schnittstelle basierend auf der in Abbildung 1 dargestellten Topologie konfigurieren:
- Konfigurieren von Hub CE1
- Konfigurieren von Hub PE1
- Konfigurieren des P-Routers
- Konfigurieren von Spoke PE2
- Konfigurieren von Spoke PE3
- Konfigurieren von Spoke CE2
- Konfigurieren von Spoke CE3
- Aktivieren von Ausgangsfunktionen auf dem Hub PE-Router
Konfigurieren von Hub CE1
Konfigurieren Sie Hub CE1 wie folgt:
[edit routing-options]
static {
route 0.0.0.0/0 discard;
}
autonomous-system 100;
[edit protocols]
bgp {
group hub {
type external;
export default;
peer-as 200;
neighbor 10.49.4.1;
}
}
[edit policy-options]
policy-statement default {
term 1 {
from {
protocol static;
route-filter 0.0.0.0/0 exact;
}
then accept;
}
term 2 {
then reject;
}
}
Konfigurieren von Hub PE1
Konfigurieren Sie Hub PE1 wie folgt:
[edit]
routing-instances {
hub {
instance-type vrf;
interface t3-0/0/0;
route-distinguisher 10.255.14.176:2;
vrf-target {
import target:200:100;
export target:200:101;
}
protocols {
bgp {
group hub {
type external;
peer-as 100;
as-override;
neighbor 10.49.4.2;
}
}
}
}
}
Konfigurieren des P-Routers
Konfigurieren Sie den P-Router wie folgt:
[edit]
interfaces {
t3-0/1/1 {
unit 0 {
family inet {
address 10.49.2.1/30;
}
family mpls;
}
}
t3-0/1/3 {
unit 0 {
family inet {
address 10.49.0.2/30;
}
family mpls;
}
}
t1-0/2/0 {
unit 0 {
family inet {
address 10.49.1.2/30;
}
family mpls;
}
}
}
[edit]
protocols {
ospf {
area 0.0.0.0 {
interface t3-0/1/3.0;
interface t1-0/2/0.0;
interface t3-0/1/1.0;
interface lo0.0 {
passive;
}
}
}
ldp {
interface t3-0/1/1.0;
interface t3-0/1/3.0;
interface t1-0/2/0.0;
}
}
Konfigurieren von Spoke PE2
Konfigurieren Sie Spoke PE2 wie folgt:
[edit]
interfaces {
t3-0/0/0 {
unit 0 {
family inet {
address 10.49.0.1/30;
}
family mpls;
}
}
t1-0/1/2 {
unit 0 {
family inet {
address 10.49.3.1/30;
}
}
}
}
[edit protocols]
bgp {
group ibgp {
type internal;
local-address 10.255.14.182;
peer-as 200;
neighbor 10.255.14.176 {
family inet-vpn {
unicast;
}
}
}
}
ospf {
area 0.0.0.0 {
interface t3-0/0/0.0;
interface lo0.0 {
passive;
}
}
}
ldp {
interface t3-0/0/0.0;
}
[edit]
routing-instances {
spoke {
instance-type vrf;
interface t1-0/1/2.0;
route-distinguisher 10.255.14.182:20;
vrf-target {
import target:200:101;
export target:200:100;
}
protocols {
bgp {
group spoke {
type external;
peer-as 100;
as-override;
neighbor 10.49.3.2;
}
}
}
}
}
Konfigurieren von Spoke PE3
Konfigurieren Sie Spoke PE3 wie folgt:
[edit]
interfaces {
t3-0/0/0 {
unit 0 {
family inet {
address 10.49.6.1/30;
}
}
}
t3-0/0/1 {
unit 0 {
family inet {
address 10.49.2.2/30;
}
family mpls;
}
}
}
[edit protocols}
bgp {
group ibgp {
type internal;
local-address 10.255.14.178;
peer-as 200;
neighbor 10.255.14.176 {
family inet-vpn {
unicast;
}
}
}
}
ospf {
area 0.0.0.0 {
interface t3-0/0/1.0;
interface lo0.0 {
passive;
}
}
}
ldp {
interface t3-0/0/1.0;
}
[edit]
routing-instances {
spoke {
instance-type vrf;
interface t3-0/0/0.0;
route-distinguisher 10.255.14.178:30;
vrf-target {
import target:200:101;
export target:200:100;
}
protocols {
bgp {
group spoke {
type external;
peer-as 100;
as-override;
neighbor 10.49.6.2;
}
}
}
}
}
Konfigurieren von Spoke CE2
Konfigurieren Sie Spoke CE2 wie folgt:
[edit routing-options]
autonomous-system 100;
{edit protocols]
bgp {
group spoke {
type external;
export loopback;
peer-as 200;
neighbor 10.49.3.1;
}
}
Konfigurieren von Spoke CE3
Konfigurieren Sie Spoke CE3 wie folgt:
[edit routing-options]
autonomous-system 100;
[edit protocols]
bgp {
group spoke {
type external;
export loopback;
peer-as 200;
neighbor 10.49.6.1;
}
}
In diesem Konfigurationsbeispiel sieht die Datenverkehrsweiterleitung zwischen Spoke CE2 und Hub CE1 wie folgt aus:
-
Spoke CE2 leitet den Datenverkehr unter Verwendung der Standardroute weiter, die von Spoke PE2 über BGP gelernt wurde.
0.0.0.0/0 *[BGP/170] 02:24:15, localpref 100 AS path: 200 200 I > to 10.49.3.1 via t1-3/0/1.0 -
Spoke PE2 führt eine Routensuche in der Spoke-VRF-Tabelle durch und leitet den Datenverkehr an Hub PE1 weiter (über den P-Router – PE2 pusht zwei Labels) unter Verwendung der Standardroute, die über BGP gelernt wurde.
0.0.0.0/0 *[BGP/170] 01:35:45, localpref 100, from 10.255.14.176 AS path: 100 I > via t3-0/0/1.0, Push 100336, Push 100224(top) -
Hub PE1 führt in der Tabelle mpls.0 eine Routensuche nach dem VPN-Label
100336durch.100336 *[VPN/170] 01:37:03 > to 10.49.4.2 via t3-0/0/0.0, Pop -
Hub PE1 leitet den Datenverkehr über die Schnittstelle
t3-0/0/0.0an Hub CE1 weiter.
In diesem Konfigurationsbeispiel sieht die Weiterleitung des Datenverkehrs zwischen Hub CE1 und Spoke CE2 wie folgt aus:
-
Hub CE1 leitet den Datenverkehr über die durch BGP gelernte Route an den Hub PE1 weiter.
10.49.10.250/32 *[BGP/170] 02:28:46, localpref 100 AS path: 200 200 I > to 10.49.4.1 via t3-3/1/0.0 -
Hub PE1 führt eine Routensuche in der VRF-Tabelle des Hubs durch und leitet den Datenverkehr an Spoke PE2 weiter (über den P-Router – PE1 pusht zwei Labels).
10.49.10.250/32 *[BGP/170] 01:41:05, localpref 100, from 10.255.14.182 AS path: 100 I > via t1-0/1/0.0, Push 100352, Push 100208(top) -
Spoke PE2 führt eine Routensuche in der Tabelle mpls.0 für das VPN-Label
100352durch.100352 *[VPN/170] 02:31:39 > to 10.49.3.2 via t1-0/1/2.0, Pop -
Spoke PE2 leitet den Datenverkehr über die Schnittstelle
t1-0/1/2.0an Spoke CE2 weiter.
In diesem Konfigurationsbeispiel sieht die Weiterleitung des Datenverkehrs zwischen Spoke CE2 und Spoke CE3 wie folgt aus:
-
Spoke CE2 leitet den Datenverkehr unter Verwendung der Standardroute weiter, die von Spoke PE2 über BGP gelernt wurde.
0.0.0.0/0 *[BGP/170] 02:24:15, localpref 100 AS path: 200 200 I > to 10.49.3.1 via t1-3/0/1.0 -
Spoke PE2 führt eine Routensuche in der Spoke-VRF-Tabelle durch und leitet den Datenverkehr an Hub PE1 weiter (über den P-Router – PE2 pusht zwei Labels), wobei die Standardroute verwendet wird, die über BGP gelernt wurde.
0.0.0.0/0 *[BGP/170] 01:35:45, localpref 100, from 10.255.14.176 AS path: 100 I > via t3-0/0/1.0, Push 100336, Push 100224(top) -
Hub PE1 führt in der Tabelle mpls.0 eine Routensuche nach dem VPN-Label
100336durch.100336 *[VPN/170] 01:37:03 > to 10.49.4.2 via t3-0/0/0.0, Pop -
Hub PE1 leitet den Datenverkehr über die Schnittstelle
t3-0/0/0.0an den Hub CE1 weiter. -
Hub CE1 leitet den Datenverkehr über BGP an Hub PE1 weiter.
10.49.10.253/32 *[BGP/170] 02:40:03, localpref 100 AS path: 200 200 I > to 10.49.4.1 via t3-3/1/0.0 -
Hub PE1 führt eine Routensuche in der VRF-Tabelle des Hubs durch und leitet den Datenverkehr an Spoke PE3 weiter (über den P-Router – PE1 überträgt zwei Labels).
10.49.10.253/32 *[BGP/170] 01:41:05, localpref 100, from 10.255.14.178 AS path: 100 I > via t1-0/1/0.0, Push 100128, Push 100192(top) -
Spoke PE3 führt eine Routensuche in der Tabelle mpls.0 für das VPN-Label
100128durch.100128 *[VPN/170] 02:41:30 > to 10.49.6.2 via t3-0/0/0.0, Pop -
Spoke PE3 leitet den Datenverkehr über die Schnittstelle
t3-0/0/0.0an Spoke CE3 weiter.
Wenn Ausgangsfunktionen auf der Hub-PE benötigt werden, die eine IP-Weiterleitungssuche auf der VRF-Routing-Tabelle des Hubs erfordern, finden Sie weitere Informationen unter Aktivieren von Ausgangsfunktionen auf dem Hub-PE-Router.
Aktivieren von Ausgangsfunktionen auf dem Hub PE-Router
Dieses Beispiel wird in Verbindung mit Konfigurieren von Hub-and-Spoke-VPN-Topologien: Eine Schnittstelle bereitgestellt. In diesem Beispiel wird auch die in Abbildung 1 dargestellte Topologie verwendet.
Wenn Ausgangsfunktionen auf der Hub-PE benötigt werden, die eine IP-Weiterleitungssuche auf der VRF-Routing-Tabelle des Hubs erfordern, funktioniert die unter Konfigurieren von Hub-and-Spoke-VPN-Topologien: Eine Schnittstelle beschriebene Konfiguration nicht. Wenn Sie die vrf-table-label Anweisung auf die Hub-Routinginstanz anwenden, wird erzwungen, dass Datenverkehr von einer Remote-Spoke-PE an die Hub-PE weitergeleitet wird, und es wird eine IP-Suche erzwungen. Da sich bestimmte Spoke-Routen in der VRF-Tabelle des Hubs befinden, wird der Datenverkehr an eine Spoke-PE weitergeleitet, ohne den Hub CE zu durchlaufen.
Die Hub-PE kündigt die Standardroute unter Verwendung der VPN-Bezeichnung 1028 wie folgt an:
hub.inet.0: 7 destinations, 7 routes (7 active, 0 holddown, 0 hidden)
* 0.0.0.0/0 (1 entry, 1 announced)
BGP group ibgp type Internal
Route Distinguisher: 10.255.14.176:2
VPN Label: 1028
Nexthop: Self
Localpref: 100
AS path: 100 I
Communities: target:200:101
Eingehender Datenverkehr wird über die VPN-Bezeichnung 1028 weitergeleitet. Die Tabelle mpls.0 zeigt, dass ein IP-Lookup in der Tabelle hub.inet.0 erforderlich ist:
1028 *[VPN/0] 00:00:27
to table hub.inet.0, Pop
Die Hub-VRF-Tabelle hub.inet.0 enthält jedoch bestimmte Spoke-Routen:
10.49.10.250/32 *[BGP/170] 00:00:05, localpref 100, from 10.255.14.182
AS path: 100 I
> via t1-0/1/0.0, Push 100352, Push 100208(top)
10.49.10.253/32 *[BGP/170] 00:00:05, localpref 100, from 10.255.14.178
AS path: 100 I
> via t1-0/1/0.0, Push 100128, Push 100192(top)
Aus diesem Grund wird der Datenverkehr direkt an die Spoke-PEs weitergeleitet, ohne den Hub CE zu durchlaufen. Um dies zu verhindern, müssen Sie eine sekundäre Routing-Instanz für den Downstream-Datenverkehr im Hub PE1 konfigurieren.
Konfigurieren von Hub PE1
Konfigurieren Sie Hub PE1 wie folgt:
[edit]
routing-instances {
hub {
instance-type vrf;
interface t3-0/0/0.0;
route-distinguisher 10.255.14.176:2;
vrf-target {
import target:200:100;
export target:200:101;
}
no-vrf-advertise;
routing-options {
auto-export;
}
protocols {
bgp {
group hub {
type external;
peer-as 100;
as-override;
neighbor 10.49.4.2;
}
}
}
}
hub-downstream {
instance-type vrf;
route-guisher 10.255.14.176:3;
vrf-target target:200:101;
vrf-table-label;
routing-options {
auto-export;
}
}
}
Wenn die no-vrf-advertise Anweisung auf Hierarchieebene [edit routing-instances hub] verwendet wird, sind keine Routing-Tabelle-Gruppen oder VRF-Exportrichtlinien erforderlich. Die no-vrf-advertise Anweisung konfiguriert die Hub-PE so, dass VPN-Routen von der primären Routing-Instanz hubnicht angekündigt werden. Diese Routen werden stattdessen von der sekundären Routinginstanz hub_downstreamangekündigt. Weitere Informationen zu dieser Anweisung finden Sie in der no-vrf-advertise Junos OS Routing Protocols Library.
Die auto-export Anweisung auf der [edit routing-instances hub-downstream routing-options] Hierarchieebene identifiziert Routen, die von der Hub-Instanz zur Hub-Downstream-Instanz exportiert werden, indem sie die für jede Routing-Instanz definierten Routenziele betrachtet. Weitere Informationen zur Verwendung der Anweisung finden Sie in der auto-export Junos OS Routing Protocols Library. Weitere Beispiele für Exportrichtlinien finden Sie unter Konfigurieren von überlappenden VPNs mit dem automatischen Routenexport.
Bei dieser Konfiguration auf Hub-PE fließt Spoke-to-Spoke-CE-Datenverkehr durch die Hub-CE und ermöglicht die Aktivierung von Ausgangsfunktionen (z. B. Filterung) auf der Hub-PE.
In diesem Konfigurationsbeispiel sieht die Weiterleitung des Datenverkehrs zwischen Spoke CE2 und Spoke CE3 wie folgt aus:
-
Spoke CE2 leitet den Datenverkehr unter Verwendung der Standardroute weiter, die von Spoke PE2 über BGP gelernt wurde.
0.0.0.0/0 *[BGP/170] 02:24:15, localpref 100 AS path: 200 200 I > to 10.49.3.1 via t1-3/0/1.0 -
Spoke PE2 führt eine Routensuche in der Spoke-VRF-Tabelle durch und leitet den Datenverkehr an Hub PE1 weiter (über den P-Router – PE2 pusht zwei Labels), wobei die Standardroute verwendet wird, die über BGP gelernt wurde.
spoke.inet.0: 5 destinations, 5 routes (5 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 0.0.0.0/0 *[BGP/170] 00:00:09, localpref 100, from 10.255.14.176 AS path: 100 I > via t3-0/0/0.0, Push 1029, Push 100224(top) -
Hub PE1 führt in der Tabelle mpls.0 eine Routensuche nach dem VPN-Label
1029durch.mpls.0: 5 destinations, 5 routes (5 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 1029 *[VPN/0] 00:11:49 to table hub_downstream.inet.0, PopDas VPN-Label
1029wird aus folgenden Gründen beworben:-
Die
vrf-table-labelAnweisung wird auf der[edit routing-instances hub_downsteam]Hierarchieebene in der Hub-PE1-Konfiguration angewendet. -
Die
no-vrf-advertiseAnweisung wird auf der[edit routing-instances hub]Hierarchieebene angewendet und weist den Router an, die Route aus der sekundären Tabelle anzukündigen.
Daher werden IP-Suchvorgänge in der Tabelle hub_downstream.inet.0 und nicht in der Tabelle hub.inet.0 ausgeführt.
Geben Sie den
show route advertising-protocolBefehl auf der Hub-PE an eine Spoke-PE aus, um die VPN-Labelankündigung1029zu überprüfen:user@host> show route advertising-protocol hub_downstream.inet.0: 2 destinations, 2 routes (2 active, 0 holddown, 0 hidden) * 0.0.0.0/0 (1 entry, 1 announced) BGP group ibgp type Internal Route Distinguisher: 10.255.14.176:3 VPN Label: 1029 Nexthop: Self Localpref: 100 AS path: 100 I Communities: target:200:101 -
-
Hub PE1 führt eine IP-Suche in der
hub_downstream.inet.0Tabelle durch und leitet die Datenverkehrsschnittstellet3-0/0/0.0an Hub CE1 weiter.hub_downstream.inet.0: 2 destinations, 2 routes (2 active, 0 holddown, 0 hidden) 0.0.0.0/0 (1 entry, 1 announced) *BGP Preference: 170/-101 Next-hop reference count: 4 Source: 10.49.4.2 Next hop: 10.49.4.2 via t3-0/0/0.0, selected State: <Secondary Active Ext> Peer AS: 100 Age: 3:03 Task: BGP_100.10.49.4.2+1707 Announcement bits (2): 0-KRT 2-BGP.0.0.0.0+179 AS path: 100 I Communities: target:200:101 Localpref: 100 Router ID: 10.49.10.251 Primary Routing Table hub.inet.0Der primäre Routing-Tabelle ist
hub.inet.0, was angibt, dass diese Route aus der Tabellehub.inet.0in diese hub_downstream.inet.0-Tabelle exportiert wurde, und zwar als Ergebnis derno-vrf-advertiseAnweisung auf der[edit routing-instances hub]Hierarchieebene und derauto-exportAnweisung auf der[edit routing-instances hub-downstream routing-options]Hierarchieebene in der Hub-PE1-Konfiguration. -
Hub CE1 leitet den Datenverkehr mithilfe des durch BGP gelernten Routers zurück an Hub PE1.
10.49.10.253/32 *[BGP/170] 02:40:03, localpref 100 AS path: 200 200 I > to 10.49.4.1 via t3-3/1/0.0 -
Hub PE1 führt eine Routensuche in der VRF-Tabelle des Hubs durch und leitet den Datenverkehr an Spoke PE3 weiter (über den P-Router – PE1 überträgt zwei Labels).
10.49.10.253/32 *[BGP/170] 01:41:05, localpref 100, from 10.255.14.178 AS path: 100 I > via t1-0/1/0.0, Push 100128, Push 100192(top) -
Spoke PE3 führt eine Routensuche in der Tabelle mpls.0 für die VPN-Bezeichnung
100128durch.100128 *[VPN/170] 02:41:30 > to 10.49.6.2 via t3-0/0/0.0, Pop -
Spoke PE3 leitet den Datenverkehr an
t3-0/0/0.0Spoke CE3 weiter.
Konfiguration von Hub-and-Spoke-VPN-Topologien: Zwei Schnittstellen
Verwenden Sie eine Konfiguration mit zwei Schnittstellen, um Routen von Spoke zu Spoke weiterzugeben.
Im Beispiel in diesem Abschnitt wird eine Hub-and-Spoke-Topologie mit zwei Schnittstellen mithilfe der folgenden Komponenten konfiguriert (siehe Abbildung 2):
-
Ein Hub-PE-Router (Router D).
-
Ein Hub CE-Router, der mit dem Hub PE-Router verbunden ist. Damit diese Hub-and-Spoke-VPN-Topologie ordnungsgemäß funktioniert, muss es zwei Schnittstellen geben, die den Hub-PE-Router mit dem Hub-CE-Router verbinden, und jede Schnittstelle muss über eine eigene VRF-Tabelle auf dem PE-Router verfügen:
-
Die erste Schnittstelle (hier Schnittstelle ge-0/0/0.0) wird verwendet, um Spoke-Routen zum Hub-CE-Router anzukündigen. Die VRF-Tabelle, die dieser Schnittstelle zugeordnet ist, enthält die Routen, die von den Spoke-PE-Routern an den Hub-CE-Router angekündigt werden.
-
Die zweite Schnittstelle (hier Schnittstelle ge-0/0/1.0) wird verwendet, um Routenankündigungen vom Hub CE zu empfangen, die für die Hub-and-Spoke-Router bestimmt sind. Die VRF-Tabelle, die dieser Schnittstelle zugeordnet ist, enthält die Routen, die vom Hub-CE-Router an die Spoke-PE-Router angekündigt wurden. In diesem Beispiel werden zwei separate physische Schnittstellen verwendet. Es würde auch funktionieren, wenn Sie zwei separate logische Schnittstellen konfigurieren würden, die sich dieselbe physische Schnittstelle zwischen dem Hub-PE-Router und dem Hub CE-Router teilen.
-
-
Zwei Speichen-PE-Router (Router E und Router F).
-
Zwei Spoke CE-Router (CE1 und CE2), einer mit jedem Spoke PE-Router verbunden.
-
LDP als Signalisierungsprotokoll.
In dieser Konfiguration erfolgt die Routenverteilung vom Spoke CE-Router CE1 wie folgt:
-
Spoke Router CE1 kündigt seine Routen zum Spoke PE Router E an.
-
Router E installiert die Routen von CE1 in seine VRF-Tabelle.
-
Nach der Überprüfung der VRF-Exportrichtlinie fügt Router E die Spoke-Ziel-Community zu den Routen von Router CE1 hinzu, der die Richtlinie bestanden hat, und meldet sie dem Hub-PE-Router (Router D) an.
-
Router D prüft die VRF-Importrichtlinie, die der Schnittstelle ge-0/0/0.0 zugeordnet ist, und legt alle Routen von Spoke-PE-Routern, die der Richtlinie entsprechen, in seiner Routing-Tabelle bgp.l3vpn ab. (Alle Routen, die nicht übereinstimmen, werden verworfen.)
-
Router D überprüft seine VRF-Importrichtlinie, die mit der Schnittstelle ge-0/0/0.0 verknüpft ist, und installiert alle übereinstimmenden Routen in seiner Spoke-VRF-Tabelle. Die Routen werden mit der Spoke-Ziel-Community installiert.
-
Router D kündigt Routen zum Hub CE über die Schnittstelle ge-0/0/0 an.
-
Der Hub-CE-Router kündigt die Routen zurück zum Hub-PE-Router D über die zweite Schnittstelle zum Hub-Router, Schnittstelle ge-0/0/1, an.
-
Der Hub-PE-Router installiert die vom Hub-CE-Router gelernten Routen in seine Hub-VRF-Tabelle, die der Schnittstelle ge-0/0/1 zugeordnet ist.
-
Der Hub-PE-Router überprüft die VRF-Exportrichtlinie, die mit der Schnittstelle ge-0/0/1.0 verknüpft ist, und kündigt alle Routen an, die mit allen Spokes übereinstimmen, nachdem er die Hub-Ziel-Community hinzugefügt hat.
Abbildung 3 zeigt, wie Routen von diesem Spoke-Router zum anderen Spoke CE-Router, Router CE2, verteilt werden. Derselbe Pfad wird befolgt, wenn Sie einen traceroute Befehl von Router CE1 an Router CE2 ausgeben.
Im letzten Abschnitt dieses Beispiels, Zusammenfassung der Hub-and-Spoke-VPN-Konfiguration nach Router, werden die Anweisungen zusammengefasst, die zum Konfigurieren der VPN-Funktionalität für jeden der in Abbildung 2 dargestellten Service Provider-Router erforderlich sind.
In den folgenden Abschnitten wird erläutert, wie Sie die VPN-Funktionalität für eine Hub-and-Spoke-Topologie auf den Hub-and-Spoke-PE-Routern konfigurieren. Die CE-Router haben keine Informationen über das VPN, daher konfigurieren Sie sie normal.
- Aktivieren einer IGP auf den Hub-and-Spoke-PE-Routern
- Konfigurieren von LDP auf den Hub-and-Spoke PE-Routern
- Konfigurieren von IBGP auf den PE-Routern
- Konfigurieren von VPN-Routinginstanzen auf den Hub-and-Spoke-PE-Routern
- Konfigurieren der VPN-Richtlinie auf den PE-Routern
- Hub-and-Spoke-VPN-Konfiguration zusammengefasst nach Router
Aktivieren einer IGP auf den Hub-and-Spoke-PE-Routern
Damit die Hub-and-Spoke-PE-Router Routinginformationen austauschen können, müssen Sie auf allen diesen Routern oder statische Routen konfigurieren. Sie konfigurieren die IGP auf der primären Instanz des Routing-Protokollprozesses (rpd) (d. h. auf der [edit protocols] Hierarchieebene), nicht innerhalb der Routinginstanz (d. h. nicht auf der [edit routing-instances] Hierarchieebene).
Sie konfigurieren die IGP auf die Standardweise. In diesem Konfigurationsbeispiel ist dieser Teil der Konfiguration nicht enthalten.
Wenn bei der Routenverteilung in einer Hub-and-Spoke-Topologie das Protokoll zwischen den CE- und PE-Routern am Hub-Standort BGP ist, meldet der Hub-CE-Router alle vom Hub-PE-Router empfangenen Routen und die Spoke-Router zurück an den Hub-PE-Router und alle Spoke-Router. Das bedeutet, dass die Hub-and-Spoke-PE-Router Routen erhalten, die ihre AS-Nummer enthalten. Wenn eine Route diese Informationen enthält, bedeutet dies normalerweise, dass eine Routing-Schleife aufgetreten ist und der Router die Routen ablehnt. Damit die VPN-Konfiguration jedoch funktioniert, müssen der Hub-PE-Router und die Spokerouter diese Routen akzeptieren. Um dies zu aktivieren, schließen Sie die loops Option bei der Konfiguration des AS auf der [edit routing-options] Hierarchieebene auf dem Hub-PE-Router und allen Spoke-Routern ein. Für diese Beispielkonfiguration geben Sie den Wert 1 an. Sie können eine Zahl zwischen 0 und 10 angeben.
[edit routing-options] autonomous-system as-number loops 1;
Konfigurieren von LDP auf den Hub-and-Spoke PE-Routern
Konfigurieren Sie LDP auf den Schnittstellen zwischen den Hub-and-Spoke-PE-Routern, die am VPN teilnehmen.
Konfigurieren Sie auf dem Hub-PE-Router D LDP:
[edit protocols]
ldp {
interface so-1/0/0.0;
interface t3-1/1/0.0;
}
Konfigurieren Sie auf dem Spoke-PE-Router E LDP:
[edit protocols]
ldp {
interface fe-0/1/2.0;
}
Konfigurieren Sie auf dem Spoke-PE-Router Router F LDP:
[edit protocols]
ldp {
interface fe-1/0/0.0;
}
Konfigurieren von IBGP auf den PE-Routern
Konfigurieren Sie auf den Hub-and-Spoke-PE-Routern eine IBGP-Sitzung mit den folgenden Eigenschaften:
-
VPN-Familie: Um anzugeben, dass die IBGP-Sitzung für das VPN bestimmt ist, fügen Sie die
family inet-vpnAnweisung ein. -
Loopback-Adresse: Fügen Sie die
local-addressAnweisung hinzu und geben Sie die Loopback-Adresse des lokalen PE-Routers an. Die IBGP-Sitzung für VPNs läuft über die Loopback-Adresse. Außerdem müssen Sie dielo0Schnittstelle auf Hierarchieebene[edit interfaces]konfigurieren. Das Beispiel enthält diesen Teil der Konfiguration des Routers nicht. -
Nachbaradresse: Schließen Sie die
neighborAnweisung ein. Geben Sie auf dem Hub-Router die IP-Adresse jedes Spoke-PE-Routers an, und geben Sie auf dem Spoke-Router die Adresse des Hub-PE-Routers an.
Für den Hub-Router konfigurieren Sie eine IBGP-Sitzung mit jedem Spoke, und für jeden Spoke-Router konfigurieren Sie eine IBGP-Sitzung mit dem Hub. Es gibt keine IBGP-Sitzungen zwischen den beiden Spoke-Routern.
Konfigurieren Sie auf Hub-Router D IBGP. Mit der ersten neighbor Anweisung wird eine IBGP-Sitzung für Spoke-Router E und mit der zweiten Anweisung für Spoke-Router F konfiguriert.
[edit protocols]
bgp {
group Hub-to-Spokes {
type internal;
local-address 10.255.14.174;
family inet-vpn {
unicast;
}
neighbor 10.255.14.180;
neighbor 10.255.14.182;
}
}
Konfigurieren Sie auf Spoke-Router E eine IBGP-Sitzung mit dem Hub-Router:
[edit protocols]
bgp {
group Spoke-E-to-Hub {
type internal;
local-address 10.255.14.180;
neighbor 10.255.14.174 {
family inet-vpn {
unicast;
}
}
}
}
Konfigurieren Sie auf Spoke-Router F eine IBGP-Sitzung mit dem Hub-Router:
[edit protocols]
bgp {
group Spoke-F-to-Hub {
type internal;
local-address 10.255.14.182;
neighbor 10.255.14.174 {
family inet-vpn {
unicast;
}
}
}
}
Konfigurieren von VPN-Routinginstanzen auf den Hub-and-Spoke-PE-Routern
Damit der Hub-PE-Router zwischen Paketen unterscheiden kann, die zu den Spoke-PE-Routern gehen und von diesen kommen, müssen Sie ihn mit zwei Routinginstanzen konfigurieren:
-
Eine Routinginstanz (in diesem Beispiel ) ist der Schnittstelle zugeordnet,
Spokes-to-Hub-CEdie Pakete vom Hub-PE-Router zum Hub-CE-Router (in diesem Beispiel Schnittstellege-0/0/0.0) überträgt. Die VRF-Tabelle enthält die Routen, die von den Spoke-PE-Routern und dem Hub-PE-Router zum Hub-CE-Router angekündigt werden. -
Die zweite Routinginstanz (in diesem Beispiel ) ist der Schnittstelle zugeordnet,
Hub-CE-to-Spokesdie Pakete vom Hub-CE-Router zum Hub-PE-Router (in diesem Beispiel Schnittstellege-0/0/1.0) überträgt. Die VRF-Tabelle enthält die Routen, die vom Hub-CE-Router zu den Hub-and-Spoke-PE-Routern angekündigt werden.
Auf jedem Spoke-Router müssen Sie eine Routing-Instanz konfigurieren.
In der Routing-Instanz müssen Sie Folgendes definieren:
-
Route Distinguisher, der verwendet wird, um die Adressen in einem VPN von denen in einem anderen VPN zu unterscheiden.
-
Instanztyp von
vrf, der die VRF-Tabelle auf dem PE-Router erstellt. -
Schnittstellen, die Teil des VPN sind und die PE-Router mit ihren CE-Routern verbinden.
-
VRF-Import- und Exportrichtlinien. Beide Importrichtlinien müssen einen Verweis auf eine Community enthalten. Andernfalls, wenn Sie versuchen, einen Commit für die Konfiguration auszuführen, schlägt der Commit fehl. (Die Ausnahme hiervon ist, wenn die Importrichtlinie nur eine
then rejectAnweisung enthält.) In der VRF-Exportrichtlinie hängen Spoke-PE-Router die Spoke-Zielcommunity an. -
Routing zwischen den PE- und CE-Routern, das erforderlich ist, damit der PE-Router VPN-bezogene Routen zu und von verbundenen CE-Routern verteilen kann. Sie können ein Routing-Protokoll konfigurieren – BGP, OSPF oder RIP – oder Sie können statisches Routing konfigurieren.
Für eine Hub-and-Spoke-Topologie müssen Sie in jeder Routing-Instanz auf dem Hub-CE-Router unterschiedliche Richtlinien konfigurieren. Für die Routing-Instanz, die der Schnittstelle zugeordnet ist, die Pakete vom Hub-PE-Router zum Hub-CE-Router transportiert (in diesem Beispiel), Spokes-to-Hub-CEmuss die Importrichtlinie alle Routen akzeptieren, die in der IBGP-Sitzung zwischen den Hub-and-Spoke-PE-Routern empfangen werden, und die Exportrichtlinie muss alle vom Hub-CE-Router empfangenen Routen ablehnen. Für die Routinginstanz, die der Schnittstelle zugeordnet ist, die Pakete vom Hub-CE-Router zum Hub-PE-Router transportiert (in diesem Beispiel), Hub-CE-to-Spokesmuss die Importrichtlinie alle von den Spoke-PE-Routern empfangenen Routen ablehnen, und die Exportrichtlinie muss an alle Spoke-Router exportiert werden.
Konfigurieren Sie auf dem Hub-PE-Router D die folgenden Routinginstanzen. Router D verwendet OSPF, um Routen zum und vom Hub-CE-Router zu verteilen.
[edit]
routing-instance {
Spokes-to-Hub-CE {
instance-type vrf;
interface ge-0/0/0.0;
route-distinguisher 10.255.1.174:65535;
vrf-import spoke;
vrf-export null;
protocols {
ospf {
domain-id disable;
export redistribute-vpn;
domain-vpn-tag 0;
area 0.0.0.0 {
interface ge-0/0/0;
}
}
}
}
Hub-CE-to-Spokes {
instance-type vrf;
interface ge-0/0/1.0;
route-distinguisher 10.255.1.174:65534;
vrf-import null;
vrf-export hub;
protocols {
ospf {
export redistribute-vpn;
area 0.0.0.0 {
interface ge-0/0/1.0;
}
}
}
}
}
Konfigurieren Sie auf dem Spoke PE-Router E die folgenden Routinginstanzen. Router E verwendet OSPF, um Routen zum und vom Spoke CE-Router CE1 zu verteilen.
[edit]
routing-instance {
Spoke-E-to-Hub {
instance-type vrf;
interface fe-0/1/0.0;
route-distinguisher 10.255.14.80:65035;
vrf-import hub;
vrf-export spoke;
protocols {
ospf {
export redistribute-vpn;
area 0.0.0.0 {
interface fe-0/1/0.0;
}
}
}
}
}
Konfigurieren Sie auf dem Spoke PE-Router F die folgenden Routinginstanzen. Router F verwendet OSPF, um Routen zum und vom Spoke CE-Router CE2 zu verteilen.
[edit]
routing-instance {
Spoke-F-to-Hub {
instance-type vrf;
interface fe-1/0/1.0;
route-distinguisher 10.255.14.182:65135;
vrf-import hub;
vrf-export spoke;
protocols {
ospf {
export redistribute-vpn;
area 0.0.0.0 {
interface fe-1/0/1.0;
}
}
}
}
}
Konfigurieren der VPN-Richtlinie auf den PE-Routern
Sie müssen VPN-Import- und Exportrichtlinien auf jedem der Hub-and-Spoke-PE-Router so konfigurieren, dass sie die entsprechenden Routen in den VRF-Tabellen installieren, die sie zum Weiterleiten von Paketen innerhalb der einzelnen VPNs verwenden.
Auf den Spoke-Routern definieren Sie Richtlinien für den Austausch von Routen mit dem Hub-Router.
Auf dem Hub-Router definieren Sie Richtlinien, um Routen von den Spoke PE-Routern zu akzeptieren und an den Hub-CE-Router zu verteilen und umgekehrt. Der Hub-PE-Router verfügt über zwei VRF-Tabellen:
-
Spoke-to-Hub-VRF-Tabelle: Verarbeitet von Spoke-Routern empfangene Routen und meldet diese Routen an den Hub-CE-Router weiter. Für diese VRF-Tabelle muss die Importrichtlinie prüfen, ob der Spoke-Zielname vorhanden ist und ob die Route von der IBGP-Sitzung zwischen dem Hub-PE und den Spoke-PE-Routern empfangen wurde. Diese VRF-Tabelle darf keine Routen exportieren, daher sollte ihre Exportrichtlinie alles ablehnen.
-
Hub-to-Spoke-VRF-Tabelle: Verarbeitet die vom Hub-CE-Router empfangenen Routen und meldet sie den Spoke-Routern an. Für diese VRF-Tabelle muss die Exportrichtlinie die Hub-Zielcommunity hinzufügen. Diese VRF-Tabelle darf keine Routen importieren, daher sollte ihre Importrichtlinie alles ablehnen.
In der VPN-Richtlinie konfigurieren Sie auch die VPN-Ziel-Communitys.
Konfigurieren Sie auf Hub-PE-Router D die folgenden Richtlinien, die auf die VRF-Tabellen angewendet werden sollen:
-
spoke– Akzeptiert von der IBGP-Sitzung empfangene Routen zwischen der IBGP-Sitzung und den Spoke PE-Routern, die das Community-Zielspokeenthalten, und lehnt alle anderen Routen ab. -
hub: Fügt den Community-Ziel-Hub allen Routen hinzu, die von OSPF empfangen werden (d. h. von der Sitzung zwischen ihm und dem Hub-CE-Router). Alle anderen Routen werden abgelehnt. -
null– Lehnt alle Routen ab. -
redistribute-vpn– Verteilt OSPF-Routen an Nachbarn innerhalb der Routing-Instanz.[edit] policy-options { policy-statement spoke { term a { from { protocol bgp; community spoke; } then accept; } term b { then reject; } } policy-statement hub { term a { from protocol ospf; then { community add hub; accept; } } term b { then reject; } } policy-statement null { then reject; } policy-statement redistribute-vpn { term a { from protocol bgp; then accept; } term b { then reject; } } community hub members target:65535:1; community spoke members target:65535:2; }
Um die VRF-Richtlinien auf Router D anzuwenden, schließen Sie die vrf-export and-Anweisungen vrf-import ein, wenn Sie die Routing-Instanzen konfigurieren:
[edit]
routing-instance {
Spokes-to-Hub-CE {
vrf-import spoke;
vrf-export null;
}
Hub-CE-to-Spokes {
vrf-import null;
vrf-export hub;
}
}
Konfigurieren Sie auf den Spoke-PE-Routern E und Router F die folgenden Richtlinien, die auf die VRF-Tabellen angewendet werden sollen:
-
hub– Akzeptiert von der IBGP-Sitzung empfangene Routen zwischen ihr und den Hub-PE-Routern, die das Community-Zielhubenthalten, und lehnt alle anderen Routen ab. -
spokeFügt das Community-Ziel Spoke zu allen Routen hinzu, die von OSPF empfangen wurden (d. h. von der Sitzung zwischen OSPF und dem Hub-CE-Router), und lehnt alle anderen Routen ab. -
redistribute-vpn– Verteilt OSPF-Routen an Nachbarn innerhalb der Routing-Instanz.
Konfigurieren Sie auf den Spoke-PE-Routern E und Router F die folgenden VPN-Import- und Exportrichtlinien:
[edit]
policy-options {
policy-statement hub {
term a {
from {
protocol bgp;
community hub;
}
then accept;
}
term b {
then reject;
}
}
policy-statement spoke {
term a {
from protocol ospf;
then {
community add spoke;
accept;
}
}
term b {
then reject;
}
}
policy-statement redistribute-vpn {
term a {
from protocol bgp;
then accept;
}
term b {
then reject;
}
}
community hub members target:65535:1;
community spoke members target 65535:2;
}
Um die VRF-Richtlinien auf die Spoke-Router anzuwenden, schließen Sie die vrf-export and-Anweisungen vrf-import ein, wenn Sie die Routing-Instanzen konfigurieren:
[edit]
routing-instance {
Spoke-E-to-Hub {
vrf-import hub;
vrf-export spoke;
}
}
[edit]
routing-instance {
Spoke-F-to-Hub {
vrf-import hub;
vrf-export spoke;
}
}
Hub-and-Spoke-VPN-Konfiguration zusammengefasst nach Router
Router D (Hub PE-Router)
Routing-Instanz zum Verteilen von Spoke-Routen an Hub CE
Spokes-to-Hub-CE {
instance-type vrf;
interface fe-0/0/0.0;
route-distinguisher 10.255.1.174:65535;
vrf-import spoke;
vrf-export null;
}
Instance Routing (Protokoll)
protocols {
ospf {
domain-id disable;
domain-vpn-tag 0;
export redistribute-vpn;
area 0.0.0.0 {
interface ge-0/0/0.0;
}
}
}
Routing-Instanz zum Verteilen von Hub-CE-Routen an Spokes
Hub-CE-to-Spokes {
instance-type vrf;
interface ge-0/0/1.0;
route-distinguisher 10.255.1.174:65534;
vrf-import null;
vrf-export hub;
}
Routing-Instanz Routing-Protokolle
protocols {
ospf {
export redistribute-vpn;
area 0.0.0.0 {
interface ge-0/0/1.0;
}
}
}
Routing-Optionen (primäre Instanz)
routing-options {
autonomous-system 1 loops 1;
}
Protokolle (primäre Instanz)
protocols {
}
LDP aktivieren
ldp {
interface so-1/0/0.0;
interface t3-1/1/0.0;
}
Konfigurieren von IBGP
bgp {
group Hub-to-Spokes {
type internal;
local-address 10.255.14.174;
family inet-vpn {
unicast;
}
neighbor 10.255.14.180;
neighbor 10.255.14.182;
}
}
VPN-Richtlinie konfigurieren
policy-options {
policy-statement spoke {
term a {
from {
protocol bgp;
community spoke;
}
then accept;
}
term b {
then reject;
}
}
policy-statement hub {
term a {
from protocol ospf;
then {
community add hub;
accept;
}
}
term b {
then reject;
}
}
policy-statement null {
then reject;
}
policy-statement redistribute-vpn {
term a {
from protocol bgp;
then accept;
}
term b {
then reject;
}
}
community hub members target:65535:1;
community spoke members target:65535:2;
}
Router E (Spoke PE-Router)
Routing-Instanz
routing-instance {
Spoke-E-to-Hub {
instance-type vrf;
interface fe-0/1/0.0;
route-distinguisher 10.255.14.80:65035;
vrf-import hub;
vrf-export spoke;
}
}
Instance Routing (Protokoll)
protocols {
ospf {
export redistribute-vpn;
area 0.0.0.0 {
interface fe-0/1/0.0;
}
}
}
Routing-Optionen (primäre Instanz)
routing-options {
autonomous-system 1 loops 1;
}
Protokolle (primäre Instanz)
protocols {
}
LDP aktivieren
ldp {
interface fe-0/1/2.0;
}
Konfigurieren von IBGP
bgp {
group Spoke-E-to-Hub {
type internal;
local-address 10.255.14.180;
neighbor 10.255.14.174 {
family inet-vpn {
unicast;
}
}
}
}
VPN-Richtlinie konfigurieren
policy-options {
policy-statement hub {
term a {
from {
protocol bgp;
community hub;
}
then accept;
}
term b {
then reject;
}
}
policy-statement spoke {
term a {
from protocol ospf;
then {
community add spoke;
accept;
}
}
term b {
then reject;
}
}
policy-statement redistribute-vpn {
term a {
from protocol bgp;
then accept;
}
term b {
then reject;
}
}
community hub members target:65535:1;
community spoke members target:65535:2;
}
Router F (Spoke PE Router)
Routing-Instanz
routing-instance {
Spoke-F-to-Hub {
instance-type vrf;
interface fe-1/0/1.0;
route-distinguisher 10.255.14.182:65135;
vrf-import hub;
vrf-export spoke;
}
}
Instance Routing (Protokoll)
protocols {
ospf {
export redistribute-vpn;
area 0.0.0.0 {
interface fe-1/0/1.0;
}
}
}
Routing-Optionen (primäre Instanz)
routing-options {
autonomous-system 1 loops 1;
}
Protokolle (primäre Instanz)
protocols {
}
LDP aktivieren
ldp {
interface fe-1/0/0.0;
}
Konfigurieren von IBGP
bgp {
group Spoke-F-to-Hub {
type internal;
local-address 10.255.14.182;
neighbor 10.255.14.174 {
family inet-vpn {
unicast;
}
}
}
}
VPN-Richtlinie konfigurieren
policy-options {
policy-statement hub {
term a {
from {
protocol bgp;
community hub;
}
then accept;
}
term b {
then reject;
}
}
policy-statement spoke {
term a {
from protocol ospf;
then {
community add spoke;
accept;
}
}
term b {
then reject;
}
}
policy-statement redistribute-vpn {
term a {
from {
protocol bgp;
}
then accept;
}
term b {
then reject;
}
}
community hub members target:65535:1;
community spoke members target:65535:2;
}