Im normalen Betrieb wird es vorkommen, dass Routingtabellen zwischen den einzelnen Routinginstanzen ausgetauscht werden müssen. In dem Beispiel 6 (“VRF Import / Export”) konnte man die Routen eines VRFs in ein anderes übertragen, jedoch kann es vorkommen, dass dies nicht mehr ausreicht. Im folgenden Beispiel soll eine statische Defaul Route aus dem VRF WAN in die VRFs DC und RED importiert werden. Folgende Topologie wird konfiguriert:

Grundlegendes
Um Routen zwischen den VRF-Routingtabellen auszutauschen werden rib-groups benötigt. Diese bauen sich nach dem Schema Source-Routingtabelle Destination-Routingtabelle(n) auf. Der erste Schritt ist die Einrichtung einer rib-group in den routing-options der Standard Routinginstanz (inet.0 für IPv4). Dann wird diese in die entsprechenden VRF / VR Instanzen als “Interface-Route” eingebunden. Anschließend können in dem passenden VRF statische oder dynamische Routen direkt in diese Gruppe übergeben werden. Wichtig: der Import muss in der richtigen Instanz konfiguriert werden. Andernfalls werden falsche Routen in der falschen Instanz kopiert. Es sollte sich vorher ein Plan gemacht werden, welche Routen in welcher Tabelle erwartet werden.
Konfigurationsdaten Spine01
Um den Zugriff ins Internet zu gewährleisten wird ein weiteres VRF erstellt.
| Name des VRF | WAN |
| Loopback Interface | lo0.99 |
| Loopback IP Adresse | 192.168.0.99 |
| Route Distinguisher | 192.168.0.1:99 |
| Route Target | target:65000:99 |
| VLAN ID | 99 |
| VxLAN ID | 10099 |
| IP Adresse | 172.16.0.100/24 |
Konfiguration VRF Spine01
Das VRF mit allen Loopbacks und VLANs wird eingerichtet.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
edit vlans VL99
set description "Transit-Netz"
set vlan-id 99
set vxlan vni 10099
set l3-interface irb.99
top edit interfaces lo0 unit 99
set description VRF-WAN
set family inet address 192.168.0.99/32
top edit interfaces xe-0/0/9
delete unit 0
set description "Uplink-A--ISP"
set unit 0 family ethernet-switching interface-mode access
set unit 0 family ethernet-switching vlan members VL99
top edit interfaces irb unit 99
set description VRF-WAN
set family inet address 172.16.0.100/24
top edit routing-instances WAN
set description VRF-WAN
set instance-type vrf
set interface irb.99
set interface lo0.99
set route-distinguisher 192.168.0.1:99
set vrf-target target:65000:99
commit
Konfiguration Default Route Spine01
1
2
3
4
edit routing-instances WAN routing-options
set static route 0.0.0.0/0 next-hop 172.16.0.1 metric 1
commit
Damit sollte die Routingtabelle WAN.inet.0 erstellt sein und eine Default Route besitzen.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
root@Spine01# run show route table WAN.inet.0
WAN.inet.0: 5 destinations, 5 routes (5 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
0.0.0.0/0 *[Static/5] 00:00:36, metric 1
> to 172.16.0.1 via irb.99
172.16.0.0/24 *[Direct/0] 00:00:36
> via irb.99
172.16.0.1/32 *[EVPN/7] 00:00:12
> via irb.99
172.16.0.100/32 *[Local/0] 00:00:36
Local via irb.99
192.168.0.99/32 *[Direct/0] 00:09:55
> via lo0.99
Konfiguration rib-group Spine01
Jetzt soll die Default Route in das VRF-DC und VRF-RED importiert werden. Dies wird über rib-groups ermöglicht.
1
2
3
4
5
6
7
8
9
top edit routing-options
edit rib-groups vrf-wan-export
set import-rib [ WAN.inet.0 DC.inet.0 ]
top edit routing-instances WAN routing-options
set static rib-group vrf-wan-export
set interface-routes rib-group inet vrf-wan-export
commit
Die statische Route wurde direkt in die rib-group “vrf-wan-to-vrf-dc” kopiert. Das Ganze wird im VRF WAN als Interface-Route konfiguriert. Interfacerouten sind alle direkten Routen. Diese sind aktuell nicht erwünscht und müssen noch ausgefiltert werden.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
root@Spine01# run show route table DC.inet.0
DC.inet.0: 11 destinations, 11 routes (11 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
0.0.0.0/0 *[Static/5] 00:00:19, metric 1
> to 172.16.0.1 via irb.99
10.10.0.0/24 *[Direct/0] 14:52:53
> via irb.10
10.20.0.0/24 *[Direct/0] 14:52:53
> via irb.20
10.50.0.0/24 *[Direct/0] 1d 01:31:49
> via irb.50
10.100.0.0/24 *[Direct/0] 6d 03:25:19
> via irb.100
10.100.0.1/32 *[Local/0] 6d 03:25:19
Local via irb.100
10.100.0.254/32 *[Local/0] 6d 03:25:19
Local via irb.100
172.16.0.0/24 *[Direct/0] 00:00:19
> via irb.99
172.16.0.100/32 *[Local/0] 00:00:19
Local via irb.99
192.168.0.99/32 *[Direct/0] 00:00:19
> via lo0.99
192.168.0.103/32 *[Direct/0] 6d 03:25:19
> via lo0.103
Policyfilter Spine01
Um die rot markierten Routen zu entfernen wird folgende Policy erstellt.
1
2
3
4
5
6
7
8
9
10
11
12
13
edit policy-options policy-statement RIB-vrf-wan-export
edit term 1
set from protocol static
set from route-filter 0.0.0.0/0 exact
set to rib DC.inet.0
set then accept
up
set then reject
top edit routing-options rib-groups vrf-wan-export
set import-policy RIB-vrf-wan-export
commit
Damit sieht die Routingtabelle DC.inet.0 wie erwartet aus.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
root@Spine01# run show route table DC.inet.0
DC.inet.0: 8 destinations, 8 routes (8 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
0.0.0.0/0 *[Static/5] 00:00:15, metric 1
> to 172.16.0.1 via irb.99
10.10.0.0/24 *[Direct/0] 15:01:21
> via irb.10
10.20.0.0/24 *[Direct/0] 15:01:21
> via irb.20
10.50.0.0/24 *[Direct/0] 1d 01:40:17
> via irb.50
10.100.0.0/24 *[Direct/0] 6d 03:33:47
> via irb.100
10.100.0.1/32 *[Local/0] 6d 03:33:47
Local via irb.100
10.100.0.254/32 *[Local/0] 6d 03:33:48
Local via irb.100
192.168.0.103/32 *[Direct/0] 6d 03:33:48
> via lo0.103
Erweiterung des VRF RED
1
2
3
4
5
6
7
8
9
10
11
edit routing-options rib-groups vrf-wan-export
set import-rib RED.inet.0
top edit policy-options policy-statement RIB-vrf-wan-export
edit term 2
set from protocol static route-filter 0.0.0.0/0 exact
set to rib RED.inet.0
set then accept
commit
Die Routingtabelle RED.inet.0 sollte nun ein Default-Gateway haben.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
root@Spine01# run show route table RED.inet.0
RED.inet.0: 9 destinations, 9 routes (9 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
0.0.0.0/0 *[Static/5] 00:02:09, metric 1
> to 172.16.0.1 via irb.99
10.10.0.0/24 *[Direct/0] 6d 12:32:26
> via irb.10
10.10.0.1/32 *[Local/0] 6d 12:32:26
Local via irb.10
10.10.0.254/32 *[Local/0] 6d 12:32:26
Local via irb.10
10.20.0.0/24 *[Direct/0] 6d 12:59:05
> via irb.20
10.20.0.1/32 *[Local/0] 6d 12:59:05
Local via irb.20
10.20.0.254/32 *[Local/0] 6d 12:59:05
Local via irb.20
10.100.0.0/24 *[Direct/0] 17:36:43
> via irb.100
192.168.0.101/32 *[Direct/0] 6d 12:59:05
> via lo0.101
Konfigurationsdaten Spine02
Um den Zugriff ins Internet zu gewährleisten wird ein weiteres VRF erstellt.
| Name des VRF | WAN |
| Loopback Interface | lo0.99 |
| Loopback IP Adresse | 192.168.0.199 |
| Route Distinguisher | 192.168.0.2:99 |
| Route Target | target:65000:99 |
| VLAN ID | 99 |
| VxLAN ID | 10099 |
| IP Adresse | 172.16.0.200/24 |
Konfiguration VRF Spine02
Das VRF mit allen Loopbacks und VLANs wird eingerichtet.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
edit vlans VL99
set description "Transit-Netz"
set vlan-id 99
set vxlan vni 10099
set l3-interface irb.99
top edit interfaces lo0 unit 99
set description VRF-WAN
set family inet address 192.168.0.199/32
top edit interfaces xe-0/0/9
delete unit 0
set description "Uplink-B--ISP"
set unit 0 family ethernet-switching interface-mode access
set unit 0 family ethernet-switching vlan members VL99
top edit interfaces irb unit 99
set description VRF-WAN
set family inet address 172.16.0.200/24
top edit routing-instances WAN
set description VRF-WAN
set instance-type vrf
set interface irb.99
set interface lo0.99
set route-distinguisher 192.168.0.2:99
set vrf-target target:65000:99
commit
Konfiguration Default Route Spine02
1
2
3
4
edit routing-instances WAN routing-options
set static route 0.0.0.0/0 next-hop 172.16.0.1 metric 1
commit
Damit sollte die Routingtabelle WAN.inet.0 erstellt sein und eine Default Route besitzen.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
root@Spine02# run show route table WAN.inet.0
WAN.inet.0: 5 destinations, 5 routes (5 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
0.0.0.0/0 *[Static/5] 00:00:36, metric 1
> to 172.16.0.1 via irb.99
172.16.0.0/24 *[Direct/0] 00:00:36
> via irb.99
172.16.0.1/32 *[EVPN/7] 00:00:12
> via irb.99
172.16.0.100/32 *[EVPN/7] 00:00:12
> via irb.99
172.16.0.200/32 *[Local/0] 00:00:36
Local via irb.99
192.168.0.99/32 *[Direct/0] 00:09:55
> via lo0.99
Konfiguration rib-group Spine02
Jetzt soll die Default Route in das VRF-DC und VRF-RED importiert werden. Dies wird über rib-groups ermöglicht.
1
2
3
4
5
6
7
8
9
top edit routing-options
edit rib-groups vrf-wan-export
set import-rib [ WAN.inet.0 DC.inet.0 ]
top edit routing-instances WAN routing-options
set static rib-group vrf-wan-export
set interface-routes rib-group inet vrf-wan-export
commit
Die statische Route wurde direkt in die rib-group vrf-wan-to-vrf-dc kopiert. Das Ganze wird im VRF WAN als Interface-Route konfiguriert. Interfacerouten sind alle direkten Routen. Diese sind aktuell nicht erwünscht und müssen noch ausgefiltert werden.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
root@Spine01# run show route table DC.inet.0
DC.inet.0: 11 destinations, 11 routes (11 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
0.0.0.0/0 *[Static/5] 00:00:19, metric 1
> to 172.16.0.1 via irb.99
10.10.0.0/24 *[Direct/0] 14:52:53
> via irb.10
10.20.0.0/24 *[Direct/0] 14:52:53
> via irb.20
10.50.0.0/24 *[Direct/0] 1d 01:31:49
> via irb.50
10.100.0.0/24 *[Direct/0] 6d 03:25:19
> via irb.100
10.100.0.1/32 *[Local/0] 6d 03:25:19
Local via irb.100
10.100.0.254/32 *[Local/0] 6d 03:25:19
Local via irb.100
172.16.0.0/24 *[Direct/0] 00:00:19
> via irb.99
172.16.0.200/32 *[Local/0] 00:00:19
Local via irb.99
192.168.0.99/32 *[Direct/0] 00:00:19
> via lo0.99
192.168.0.103/32 *[Direct/0] 6d 03:25:19
> via lo0.103
Policyfilter Spine02
Um die rot markierten Routen zu entfernen wird folgende Policy erstellt.
1
2
3
4
5
6
7
8
9
10
edit policy-options policy-statement RIB-vrf-wan-export
edit term 1
set from protocol static
set from route-filter 0.0.0.0/0 exact
set to rib DC.inet.0
set then accept
up
set then reject
commit
Damit sieht die Routingtabelle DC.inet.0 wie erwartet aus.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
root@Spine02# run show route table DC.inet.0
DC.inet.0: 8 destinations, 8 routes (8 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
0.0.0.0/0 *[Static/5] 00:00:15, metric 1
> to 172.16.0.1 via irb.99
10.10.0.0/24 *[Direct/0] 15:01:21
> via irb.10
10.20.0.0/24 *[Direct/0] 15:01:21
> via irb.20
10.50.0.0/24 *[Direct/0] 1d 01:40:17
> via irb.50
10.100.0.0/24 *[Direct/0] 6d 03:33:47
> via irb.100
10.100.0.1/32 *[Local/0] 6d 03:33:47
Local via irb.100
10.100.0.254/32 *[Local/0] 6d 03:33:48
Local via irb.100
192.168.0.103/32 *[Direct/0] 6d 03:33:48
> via lo0.103
## Erweiterung des VRF RED
```bash
edit routing-options rib-groups vrf-wan-export
set import-rib RED.inet.0
top edit policy-options policy-statement RIB-vrf-wan-export
edit term 2
set from protocol static route-filter 0.0.0.0/0 exact
set to rib RED.inet.0
set then accept
commit
Die Routingtabelle RED.inet.0 sollte nun ein Default-Gateway haben.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
root@Spine02# run show route table RED.inet.0
RED.inet.0: 9 destinations, 9 routes (9 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
0.0.0.0/0 *[Static/5] 00:02:09, metric 1
> to 172.16.0.1 via irb.99
10.10.0.0/24 *[Direct/0] 6d 12:32:26
> via irb.10
10.10.0.1/32 *[Local/0] 6d 12:32:26
Local via irb.10
10.10.0.254/32 *[Local/0] 6d 12:32:26
Local via irb.10
10.20.0.0/24 *[Direct/0] 6d 12:59:05
> via irb.20
10.20.0.1/32 *[Local/0] 6d 12:59:05
Local via irb.20
10.20.0.254/32 *[Local/0] 6d 12:59:05
Local via irb.20
10.100.0.0/24 *[Direct/0] 17:36:43
> via irb.100
192.168.0.101/32 *[Direct/0] 6d 12:59:05
> via lo0.101
Damit sind die entsprechenden Routen veröffentlicht.
Konfigurationsblöcke
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
root@Spine01# show vlans VL99
description VRF-WAN;
vlan-id 99;
l3-interface irb.99;
vxlan {
vni 10099;
}
root@Spine01# show interfaces lo0 unit 99
description VRF-WAN;
family inet {
address 192.168.0.99/32;
}
description Uplink-A--ISP;
unit 0 {
family ethernet-switching {
interface-mode access;
vlan {
members VL99;
}
}
}
routing-options {
static {
route 0.0.0.0/0 {
next-hop 172.16.0.1;
metric 1;
}
rib-group vrf-wan-export;
}
interface-routes {
rib-group inet vrf-wan-export;
}
auto-export {
family inet {
unicast;
}
}
}
root@Spine01# show routing-options
rib-groups {
vrf-wan-export {
import-rib [ WAN.inet.0 DC.inet.0 RED.inet.0 ];
import-policy RIB-vrf-wan-export;
}
}
root@Spine01# show policy-options policy-statement RIB-vrf-wan-export
term 1 {
from {
protocol static;
route-filter 0.0.0.0/0 exact;
}
to rib RED.inet.0;
then accept;
}
term 2 {
from {
protocol static;
route-filter 0.0.0.0/0 exact;
}
to rib DC.inet.0;
then accept;
}
then reject;