-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathtopology.yml
More file actions
144 lines (124 loc) · 5.55 KB
/
Copy pathtopology.yml
File metadata and controls
144 lines (124 loc) · 5.55 KB
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
---
# NetLab OSPF Multi-Area Lab
# ===========================
# Demonstrates the following OSPF area types:
#
# Area 0 (0.0.0.0) – Backbone
# Area 1 (0.0.0.1) – Regular (Standard) Area
# Area 2 (0.0.0.2) – Stub Area
# Area 3 (0.0.0.3) – Totally Stubby Area
# Area 4 (0.0.0.4) – Not-So-Stubby Area (NSSA)
# Area 5 (0.0.0.5) – Totally NSSA (NSSA No-Summary)
#
# Device: FRRouting (FRR) – open-source routing suite
# Provider: Containerlab (clab)
defaults:
device: frr
provider: clab
module: [ ospf ]
plugin: [ ospf.areas ]
# All nodes default to Area 0 (backbone) unless overridden at node level.
# The ospf.areas plugin auto-configures stub, totally-stubby, NSSA, and
# totally-NSSA area types on every router in the respective area.
ospf:
area: 0.0.0.0
areas:
- area: 0.0.0.2 # Stub
kind: stub
- area: 0.0.0.3 # Totally Stubby
kind: stub
inter_area: false
- area: 0.0.0.4 # NSSA
kind: nssa
- area: 0.0.0.5 # Totally NSSA
kind: nssa
inter_area: false
nodes:
# ── Area 0: Backbone ────────────────────────────────────────────────────────
bb:
# ── Area Border Routers (ABRs) ──────────────────────────────────────────────
abr1: # Area 0 ↔ Area 1 (Regular)
abr2: # Area 0 ↔ Area 2 (Stub)
abr3: # Area 0 ↔ Area 3 (Totally Stubby)
abr4: # Area 0 ↔ Area 4 (NSSA)
abr5: # Area 0 ↔ Area 5 (Totally NSSA)
# ── Area 1: Regular (Standard) Area ─────────────────────────────────────────
# Receives all LSA types (1-5). Identical behaviour to the backbone area.
r1:
ospf:
area: 0.0.0.1
# ── Area 2: Stub Area ────────────────────────────────────────────────────────
# Type-5 (external) LSAs are blocked. The ABR injects a default route instead.
r2:
ospf:
area: 0.0.0.2
# ── Area 3: Totally Stubby Area ──────────────────────────────────────────────
# Type-3, -4, and -5 LSAs are all blocked.
# Only a single default route from the ABR is accepted.
r3:
ospf:
area: 0.0.0.3
# ── Area 4: Not-So-Stubby Area (NSSA) ───────────────────────────────────────
# Type-5 LSAs are blocked, but external routes can be imported by an ASBR
# inside the area as Type-7 LSAs (converted to Type-5 at the ABR).
# r4 acts as ASBR: the 10.99.0.0/24 link is role:external (not part of OSPF)
# and is redistributed into OSPF via ospf.import as a Type-7 LSA.
r4:
ospf:
area: 0.0.0.4
import: [ connected ]
# ── Area 5: Totally NSSA (NSSA No-Summary) ──────────────────────────────────
# Like NSSA, Type-5 LSAs are blocked and an ASBR can inject Type-7 LSAs.
# Additionally, Type-3 inter-area summary LSAs are suppressed (no-summary),
# so only intra-area routes and one default route reach r5.
# r5 acts as ASBR: the 10.100.0.0/24 link is role:external (not part of OSPF)
# and is redistributed into OSPF via ospf.import as a Type-7 LSA.
r5:
ospf:
area: 0.0.0.5
import: [ connected ]
links:
# ── Area 0: Backbone LAN (broadcast) ─────────────────────────────────────────
# All backbone routers share a single broadcast segment.
# OSPF runs DR/BDR election on this multi-access network.
- bb:
abr1:
abr2:
abr3:
abr4:
abr5:
# ── Area 1: Regular Area ────────────────────────────────────────────────────
- abr1:
ospf:
area: 0.0.0.1
r1:
# ── Area 2: Stub Area ───────────────────────────────────────────────────────
- abr2:
ospf:
area: 0.0.0.2
r2:
# ── Area 3: Totally Stubby Area ─────────────────────────────────────────────
- abr3:
ospf:
area: 0.0.0.3
r3:
# ── Area 4: NSSA ────────────────────────────────────────────────────────────
- abr4:
ospf:
area: 0.0.0.4
r4:
# External network on r4 – role:external excludes this interface from OSPF.
# ospf.import: [connected] on r4 redistributes it into OSPF as a Type-7 LSA.
- r4:
role: external
prefix: 10.99.0.0/24
# ── Area 5: Totally NSSA ────────────────────────────────────────────────────
- abr5:
ospf:
area: 0.0.0.5
r5:
# External network on r5 – role:external excludes this interface from OSPF.
# ospf.import: [connected] on r5 redistributes it into OSPF as a Type-7 LSA.
- r5:
role: external
prefix: 10.100.0.0/24