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
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
|
## Color coding:
#########################
## Main FRR: #f08080 red
## Switches: #d0e0d0 gray
## RIP: #19e3d9 Cyan
## RIPng: #fcb314 dark yellow
## OSPFv2: #32b835 Green
## OSPFv3: #19e3d9 Cyan
## ISIS IPv4 #fcb314 dark yellow
## ISIS IPv6 #9a81ec purple
## BGP IPv4 #eee3d3 beige
## BGP IPv6 #fdff00 yellow
##### Colors (see http://www.color-hex.com/)
graph ospf_ecmp_iBGP_topo1 {
label="bgp ecmp topo1 - eBGP with different AS numbers";
labelloc="t";
# Routers
r1 [
label="r1\nrtr-id 10.0.255.1/32",
shape=doubleoctagon,
fillcolor="#f08080",
style=filled,
];
# 4 Switches for eBGP Peers
s1 [
label="s1\n10.0.1.0/24",
shape=oval,
fillcolor="#d0e0d0",
style=filled,
];
s2 [
label="s2\n10.0.2.0/24",
shape=oval,
fillcolor="#d0e0d0",
style=filled,
];
s3 [
label="s3\n10.0.3.0/24",
shape=oval,
fillcolor="#d0e0d0",
style=filled,
];
s4 [
label="s4\n10.0.4.0/24",
shape=oval,
fillcolor="#d0e0d0",
style=filled,
];
# 20 ExaBGP Peers AS 101...120
peer1 [
label="eBGP peer1\nAS99\nrtr-id 10.0.1.101/32",
shape=rectangle,
fillcolor="#eee3d3",
style=filled,
];
peer2 [
label="eBGP peer2\nAS99\nrtr-id 10.0.1.102/32",
shape=rectangle,
fillcolor="#eee3d3",
style=filled,
];
peer3 [
label="eBGP peer3\nAS99\nrtr-id 10.0.1.103/32",
shape=rectangle,
fillcolor="#eee3d3",
style=filled,
];
peer4 [
label="eBGP peer4\nAS99\nrtr-id 10.0.1.104/32",
shape=rectangle,
fillcolor="#eee3d3",
style=filled,
];
peer5 [
label="eBGP peer5\nAS99\nrtr-id 10.0.1.105/32",
shape=rectangle,
fillcolor="#eee3d3",
style=filled,
];
peer6 [
label="eBGP peer6\nAS99\nrtr-id 10.0.2.106/32",
shape=rectangle,
fillcolor="#eee3d3",
style=filled,
];
peer7 [
label="eBGP peer7\nAS99\nrtr-id 10.0.2.107/32",
shape=rectangle,
fillcolor="#eee3d3",
style=filled,
];
peer8 [
label="eBGP peer8\nAS99\nrtr-id 10.0.2.108/32",
shape=rectangle,
fillcolor="#eee3d3",
style=filled,
];
peer9 [
label="eBGP peer9\nAS99\nrtr-id 10.0.2.109/32",
shape=rectangle,
fillcolor="#eee3d3",
style=filled,
];
peer10 [
label="eBGP peer10\nAS99\nrtr-id 10.0.2.110/32",
shape=rectangle,
fillcolor="#eee3d3",
style=filled,
];
peer11 [
label="eBGP peer11\nAS111\nrtr-id 10.0.3.111/32",
shape=rectangle,
fillcolor="#eee3d3",
style=filled,
];
peer12 [
label="eBGP peer12\nAS112\nrtr-id 10.0.3.112/32",
shape=rectangle,
fillcolor="#eee3d3",
style=filled,
];
peer13 [
label="eBGP peer13\nAS113\nrtr-id 10.0.3.113/32",
shape=rectangle,
fillcolor="#eee3d3",
style=filled,
];
peer14 [
label="eBGP peer14\nAS114\nrtr-id 10.0.3.114/32",
shape=rectangle,
fillcolor="#eee3d3",
style=filled,
];
peer15 [
label="eBGP peer15\nAS115\nrtr-id 10.0.3.115/32",
shape=rectangle,
fillcolor="#eee3d3",
style=filled,
];
peer16 [
label="eBGP peer16\nAS116\nrtr-id 10.0.4.116/32",
shape=rectangle,
fillcolor="#eee3d3",
style=filled,
];
peer17 [
label="eBGP peer17\nAS117\nrtr-id 10.0.4.117/32",
shape=rectangle,
fillcolor="#eee3d3",
style=filled,
];
peer18 [
label="eBGP peer18\nAS118\nrtr-id 10.0.4.118/32",
shape=rectangle,
fillcolor="#eee3d3",
style=filled,
];
peer19 [
label="eBGP peer19\nAS119\nrtr-id 10.0.4.119/32",
shape=rectangle,
fillcolor="#eee3d3",
style=filled,
];
peer20 [
label="eBGP peer20\nAS120\nrtr-id 10.0.4.120/32",
shape=rectangle,
fillcolor="#eee3d3",
style=filled,
];
# Connections
r1 -- s1 [label="eth0\n.1"];
r1 -- s2 [label="eth1\n.1"];
r1 -- s3 [label="eth2\n.1"];
r1 -- s4 [label="eth3\n.1"];
peer1 -- s1 [label="eth0\n.101"];
peer2 -- s1 [label="eth0\n.102"];
peer3 -- s1 [label="eth0\n.103"];
peer4 -- s1 [label="eth0\n.104"];
peer5 -- s1 [label="eth0\n.105"];
peer6 -- s2 [label="eth0\n.106"];
peer7 -- s2 [label="eth0\n.107"];
peer8 -- s2 [label="eth0\n.108"];
peer9 -- s2 [label="eth0\n.109"];
peer10 -- s2 [label="eth0\n.110"];
peer11 -- s3 [label="eth0\n.111"];
peer12 -- s3 [label="eth0\n.112"];
peer13 -- s3 [label="eth0\n.113"];
peer14 -- s3 [label="eth0\n.114"];
peer15 -- s3 [label="eth0\n.115"];
peer16 -- s4 [label="eth0\n.116"];
peer17 -- s4 [label="eth0\n.117"];
peer18 -- s4 [label="eth0\n.118"];
peer19 -- s4 [label="eth0\n.119"];
peer20 -- s4 [label="eth0\n.120"];
# Arrange network to make cleaner diagram
{ rank=same peer1 peer2 peer3 peer4 peer5 } -- s1 -- { rank=same peer6 peer7 peer8 peer9 peer10 } -- s2
-- { rank=same peer11 peer12 peer13 peer14 peer15 } -- s3 -- { rank=same peer16 peer17 peer18 peer19 peer20 } -- s4
-- { rank=same r1 } [style=invis]
}
|