diff options
Diffstat (limited to 'doc/book-enea-edge-example-usecases/doc/clav_vnf_examples.xml')
-rw-r--r-- | doc/book-enea-edge-example-usecases/doc/clav_vnf_examples.xml | 418 |
1 files changed, 418 insertions, 0 deletions
diff --git a/doc/book-enea-edge-example-usecases/doc/clav_vnf_examples.xml b/doc/book-enea-edge-example-usecases/doc/clav_vnf_examples.xml new file mode 100644 index 0000000..80755c2 --- /dev/null +++ b/doc/book-enea-edge-example-usecases/doc/clav_vnf_examples.xml | |||
@@ -0,0 +1,418 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8"?> | ||
2 | <chapter id="clav_vnf_example"> | ||
3 | <title>Clavister VNF Example Use-cases</title> | ||
4 | |||
5 | <para>The Clavister VNF is a telco-ready, carrier-grade virtual next | ||
6 | generation firewall.</para> | ||
7 | |||
8 | <section id="clav_vnf"> | ||
9 | <title>Clavister VNF using an Open vSwitch Bridge</title> | ||
10 | |||
11 | <para>In this use-case, uCPE device 1 runs the Clavister VNF, while uCPE | ||
12 | device 2 runs two Enea Test VNFs with iPerf client and server | ||
13 | applications. The uCPE devices are connected using OVS-DPDK | ||
14 | bridges.</para> | ||
15 | |||
16 | <section id="prere_clav_vnf"> | ||
17 | <title>Prerequisites</title> | ||
18 | |||
19 | <para>Two uCPE devices will be required for this setup. The system | ||
20 | requirements for each uCPE device are:</para> | ||
21 | |||
22 | <itemizedlist> | ||
23 | <listitem> | ||
24 | <para>1 Network Interface</para> | ||
25 | </listitem> | ||
26 | |||
27 | <listitem> | ||
28 | <para>2 GB of RAM memory</para> | ||
29 | </listitem> | ||
30 | </itemizedlist> | ||
31 | |||
32 | <para>The following files are needed for this example use-case:</para> | ||
33 | |||
34 | <itemizedlist> | ||
35 | <listitem> | ||
36 | <para>Enea Test VNF image. Please contact Enea to get this | ||
37 | image.</para> | ||
38 | </listitem> | ||
39 | |||
40 | <listitem> | ||
41 | <para>Clavister VNF image. Please contact Clavister to get this | ||
42 | image.</para> | ||
43 | </listitem> | ||
44 | |||
45 | <listitem> | ||
46 | <para>VNF Configuration files. These files are provided with your | ||
47 | Enea Edge release:</para> | ||
48 | |||
49 | <itemizedlist spacing="compact"> | ||
50 | <listitem> | ||
51 | <para><filename>clavister-cloudinit.conf</filename>.</para> | ||
52 | </listitem> | ||
53 | |||
54 | <listitem> | ||
55 | <para><filename>enea-vnf-iperf-client.conf</filename>.</para> | ||
56 | </listitem> | ||
57 | |||
58 | <listitem> | ||
59 | <para><filename>enea-vnf-iperf-server.conf</filename>.</para> | ||
60 | </listitem> | ||
61 | </itemizedlist> | ||
62 | </listitem> | ||
63 | </itemizedlist> | ||
64 | </section> | ||
65 | |||
66 | <section id="clav_vnf_setup_1"> | ||
67 | <title>Use-case Setup</title> | ||
68 | |||
69 | <para>In this use-case, uCPE device 1 runs the Clavister VNF, while uCPE | ||
70 | device 2 runs two Enea Test VNFs with iPerf client and server | ||
71 | applications. The uCPE devices are connected using OVS-DPDK | ||
72 | bridges.</para> | ||
73 | |||
74 | <figure> | ||
75 | <title>Clavister VNF using an Open vSwitch bridge</title> | ||
76 | |||
77 | <mediaobject> | ||
78 | <imageobject> | ||
79 | <imagedata align="center" contentwidth="600" | ||
80 | fileref="images/uc_clavister_bridge.png" /> | ||
81 | </imageobject> | ||
82 | </mediaobject> | ||
83 | </figure> | ||
84 | |||
85 | <note> | ||
86 | <para>When connecting, the uCPE devices can use a back-to-back or a | ||
87 | VPN connection. An appropriate interface with the required | ||
88 | capabilities needs to be chosen for this purpose.</para> | ||
89 | </note> | ||
90 | |||
91 | <para><emphasis role="bold">Network Configuration:</emphasis></para> | ||
92 | |||
93 | <orderedlist> | ||
94 | <listitem> | ||
95 | <para>Select uCPE device 1, access <literal>Configuration</literal>, | ||
96 | add the network interface that will be used and configure it for | ||
97 | DPDK.</para> | ||
98 | </listitem> | ||
99 | |||
100 | <listitem> | ||
101 | <para>Create an OVS bridge and attach the DPDK network | ||
102 | interface.</para> | ||
103 | </listitem> | ||
104 | |||
105 | <listitem> | ||
106 | <para>Repeat the steps above for uCPE device 2.</para> | ||
107 | </listitem> | ||
108 | </orderedlist> | ||
109 | |||
110 | <para><emphasis role="bold">Onboarding the VNFs:</emphasis></para> | ||
111 | |||
112 | <orderedlist> | ||
113 | <listitem> | ||
114 | <para>Onboard the Clavister VNF by filling the required fields with | ||
115 | the following values:</para> | ||
116 | |||
117 | <itemizedlist spacing="compact"> | ||
118 | <listitem> | ||
119 | <para><emphasis role="bold">VM Image File</emphasis>: Provide | ||
120 | the path to the Clavister VNF qcow2 image</para> | ||
121 | </listitem> | ||
122 | |||
123 | <listitem> | ||
124 | <para><emphasis role="bold">Memory in MB</emphasis>: 1024</para> | ||
125 | </listitem> | ||
126 | |||
127 | <listitem> | ||
128 | <para><emphasis role="bold">Num of CPUs</emphasis>: 4</para> | ||
129 | </listitem> | ||
130 | |||
131 | <listitem> | ||
132 | <para><emphasis role="bold">Storage in GB</emphasis>: 20</para> | ||
133 | </listitem> | ||
134 | |||
135 | <listitem> | ||
136 | <para><emphasis role="bold">Interfaces</emphasis>: Add 2 | ||
137 | interfaces</para> | ||
138 | </listitem> | ||
139 | |||
140 | <listitem> | ||
141 | <para><emphasis role="bold">Cloud-init Datasource</emphasis>: | ||
142 | ConfigDrive</para> | ||
143 | </listitem> | ||
144 | |||
145 | <listitem> | ||
146 | <para><emphasis role="bold">Cloud-init Disk Type</emphasis>: | ||
147 | disk</para> | ||
148 | </listitem> | ||
149 | </itemizedlist> | ||
150 | </listitem> | ||
151 | |||
152 | <listitem> | ||
153 | <para>Onboard the Enea Test VNF by filling the required fields with | ||
154 | the following values: <itemizedlist spacing="compact"> | ||
155 | <listitem> | ||
156 | <para><emphasis role="bold">VM Image File</emphasis>: Provide | ||
157 | the path to the Enea Test VNF qcow2 image</para> | ||
158 | </listitem> | ||
159 | |||
160 | <listitem> | ||
161 | <para><emphasis role="bold">Memory in MB</emphasis>: | ||
162 | 2048</para> | ||
163 | </listitem> | ||
164 | |||
165 | <listitem> | ||
166 | <para><emphasis role="bold">Num of CPUs</emphasis>: 2</para> | ||
167 | </listitem> | ||
168 | |||
169 | <listitem> | ||
170 | <para><emphasis role="bold">Storage in GB</emphasis>: | ||
171 | 10</para> | ||
172 | </listitem> | ||
173 | |||
174 | <listitem> | ||
175 | <para><emphasis role="bold">Interfaces</emphasis>: Add 1 | ||
176 | interface</para> | ||
177 | </listitem> | ||
178 | |||
179 | <listitem> | ||
180 | <para><emphasis role="bold">Cloud-init Datasource</emphasis>: | ||
181 | NoCloud</para> | ||
182 | </listitem> | ||
183 | |||
184 | <listitem> | ||
185 | <para><emphasis role="bold">Cloud-init Disk Type</emphasis>: | ||
186 | disk</para> | ||
187 | </listitem> | ||
188 | </itemizedlist></para> | ||
189 | </listitem> | ||
190 | </orderedlist> | ||
191 | |||
192 | <para><emphasis role="bold">Instantiating the VNFs:</emphasis></para> | ||
193 | |||
194 | <para><orderedlist> | ||
195 | <listitem> | ||
196 | <para>Instantiate the Clavister VNF on uCPE device 1 using the | ||
197 | required fields below:</para> | ||
198 | |||
199 | <itemizedlist spacing="compact"> | ||
200 | <listitem> | ||
201 | <para><emphasis role="bold">Name</emphasis>: clavister</para> | ||
202 | </listitem> | ||
203 | |||
204 | <listitem> | ||
205 | <para><emphasis role="bold">VNF Type</emphasis>: Select | ||
206 | Clavister VNF</para> | ||
207 | </listitem> | ||
208 | |||
209 | <listitem> | ||
210 | <para><emphasis role="bold">uCPE Device</emphasis>: Select | ||
211 | uCPE device 1</para> | ||
212 | </listitem> | ||
213 | |||
214 | <listitem> | ||
215 | <para><emphasis role="bold">Cloud Init File</emphasis>: | ||
216 | Provide the path to the Clavister cloud-init file.</para> | ||
217 | </listitem> | ||
218 | |||
219 | <listitem> | ||
220 | <para><emphasis role="bold">Interfaces</emphasis>: Set the | ||
221 | interface type to <literal>DPDK</literal> and select the OVS | ||
222 | bridge created above, for both interfaces.</para> | ||
223 | </listitem> | ||
224 | </itemizedlist> | ||
225 | </listitem> | ||
226 | |||
227 | <listitem> | ||
228 | <para>Instantiate the Enea iPerf server VNF on uCPE device 2 by | ||
229 | filling the required fields with the values below:</para> | ||
230 | |||
231 | <itemizedlist spacing="compact"> | ||
232 | <listitem> | ||
233 | <para><emphasis role="bold">Name</emphasis>: | ||
234 | iperf_server</para> | ||
235 | </listitem> | ||
236 | |||
237 | <listitem> | ||
238 | <para><emphasis role="bold">VNF Type</emphasis>: Select Enea | ||
239 | Test VNF</para> | ||
240 | </listitem> | ||
241 | |||
242 | <listitem> | ||
243 | <para><emphasis role="bold">uCPE Device</emphasis>: Select | ||
244 | uCPE device 2</para> | ||
245 | </listitem> | ||
246 | |||
247 | <listitem> | ||
248 | <para><emphasis role="bold">Cloud Init File</emphasis>: | ||
249 | Provide the path to the Enea VNF IPerf server cloud-init | ||
250 | file.</para> | ||
251 | </listitem> | ||
252 | |||
253 | <listitem> | ||
254 | <para><emphasis role="bold">Interfaces</emphasis>: Set the | ||
255 | interface type to <literal>DPDK</literal> and select the OVS | ||
256 | bridge created above.</para> | ||
257 | </listitem> | ||
258 | </itemizedlist> | ||
259 | </listitem> | ||
260 | |||
261 | <listitem> | ||
262 | <para>Instantiate the Enea iPerf client VNF on uCPE device 2 by | ||
263 | filling the required fields with the values below:</para> | ||
264 | |||
265 | <itemizedlist spacing="compact"> | ||
266 | <listitem> | ||
267 | <para><emphasis role="bold">Name</emphasis>: | ||
268 | iperf_client</para> | ||
269 | </listitem> | ||
270 | |||
271 | <listitem> | ||
272 | <para><emphasis role="bold">VNF Type</emphasis>: Select Enea | ||
273 | Test VNF</para> | ||
274 | </listitem> | ||
275 | |||
276 | <listitem> | ||
277 | <para><emphasis role="bold">uCPE Device</emphasis>: Select | ||
278 | uCPE device 2</para> | ||
279 | </listitem> | ||
280 | |||
281 | <listitem> | ||
282 | <para><emphasis role="bold">Cloud Init File</emphasis>: | ||
283 | Provide the path to the Enea VNF iPerf client cloud-init | ||
284 | file.</para> | ||
285 | </listitem> | ||
286 | |||
287 | <listitem> | ||
288 | <para><emphasis role="bold">Interfaces</emphasis>: Set the | ||
289 | interface type to <literal>DPDK</literal> and select the OVS | ||
290 | bridge created above.</para> | ||
291 | </listitem> | ||
292 | </itemizedlist> | ||
293 | </listitem> | ||
294 | </orderedlist></para> | ||
295 | </section> | ||
296 | |||
297 | <section id="test_clav_uc_1"> | ||
298 | <title>Testing the Use-case</title> | ||
299 | |||
300 | <para>SSH to uCPE device 2 (Username: root) and connect to the IPerf | ||
301 | client VNF console:</para> | ||
302 | |||
303 | <programlisting>virsh list | ||
304 | virsh console <id of iperf client></programlisting> | ||
305 | |||
306 | <para>In order to check that traffic is forwarded between the VNFs, run | ||
307 | the following:</para> | ||
308 | |||
309 | <programlisting># qemux86-64 login: root | ||
310 | root@qemux86-64:~# iperf3 -c 192.168.10.10</programlisting> | ||
311 | </section> | ||
312 | </section> | ||
313 | |||
314 | <section id="clav_example_sriov"> | ||
315 | <title>Clavister VNF using SR-IOV</title> | ||
316 | |||
317 | <section id="prere_clav_vnf_sriov"> | ||
318 | <title>Prerequisites</title> | ||
319 | |||
320 | <para>Two uCPE devices will be required for this setup. The system | ||
321 | requirements for each uCPE device are:</para> | ||
322 | |||
323 | <itemizedlist> | ||
324 | <listitem> | ||
325 | <para>1 Network Interface</para> | ||
326 | </listitem> | ||
327 | |||
328 | <listitem> | ||
329 | <para>2 GB of RAM memory</para> | ||
330 | </listitem> | ||
331 | </itemizedlist> | ||
332 | |||
333 | <para>The following files are needed for this example use-case:</para> | ||
334 | |||
335 | <itemizedlist> | ||
336 | <listitem> | ||
337 | <para>Enea Test VNF image. Please contact Enea to get this | ||
338 | image.</para> | ||
339 | </listitem> | ||
340 | |||
341 | <listitem> | ||
342 | <para>Clavister VNF image. Please contact Clavister to get this | ||
343 | image.</para> | ||
344 | </listitem> | ||
345 | |||
346 | <listitem> | ||
347 | <para>VNF Configuration files. These files are provided with your | ||
348 | Enea Edge release:</para> | ||
349 | |||
350 | <itemizedlist spacing="compact"> | ||
351 | <listitem> | ||
352 | <para><filename>clavister-cloudinit.conf</filename>.</para> | ||
353 | </listitem> | ||
354 | |||
355 | <listitem> | ||
356 | <para><filename>enea-vnf-iperf-client.conf</filename>.</para> | ||
357 | </listitem> | ||
358 | |||
359 | <listitem> | ||
360 | <para><filename>enea-vnf-iperf-server.conf</filename>.</para> | ||
361 | </listitem> | ||
362 | </itemizedlist> | ||
363 | </listitem> | ||
364 | </itemizedlist> | ||
365 | </section> | ||
366 | |||
367 | <section id="clav_vnf_setup_2"> | ||
368 | <title>Use-case Setup</title> | ||
369 | |||
370 | <para>The following use-case is essentially the same as the one detailed | ||
371 | above, in this scenario however, the uCPE devices are connected using | ||
372 | SR-IOV, with two virtual functions.</para> | ||
373 | |||
374 | <figure> | ||
375 | <title>Clavister VNF using SR-IOV</title> | ||
376 | |||
377 | <mediaobject> | ||
378 | <imageobject> | ||
379 | <imagedata align="center" contentwidth="600" | ||
380 | fileref="images/uc_clavister_sriov.png" /> | ||
381 | </imageobject> | ||
382 | </mediaobject> | ||
383 | </figure> | ||
384 | |||
385 | <para><emphasis role="bold">Network Configuration:</emphasis></para> | ||
386 | |||
387 | <orderedlist> | ||
388 | <listitem> | ||
389 | <para>Select uCPE device 1, access <literal>Configuration</literal>, | ||
390 | add the network interface that will be used and configure it for | ||
391 | SR-IOV. For <literal>sriov-mode</literal> select | ||
392 | <literal>adapter-pool</literal> and for | ||
393 | <literal>sriov-num-vfs</literal> select "2".</para> | ||
394 | </listitem> | ||
395 | |||
396 | <listitem> | ||
397 | <para>Repeat the step above for uCPE device 2.</para> | ||
398 | </listitem> | ||
399 | </orderedlist> | ||
400 | |||
401 | <para><emphasis role="bold">Onboarding the VNFs:</emphasis></para> | ||
402 | |||
403 | <para>See the onboarding parameters in the use-case above.</para> | ||
404 | |||
405 | <para><emphasis role="bold">Instantiating the VNFs:</emphasis></para> | ||
406 | |||
407 | <para>Use the same instantiation parameters as above, but select | ||
408 | interface type <literal>SrIovAdapterPool</literal> instead.</para> | ||
409 | </section> | ||
410 | |||
411 | <section id="test_clav_uc_2"> | ||
412 | <title>Testing the Use-case</title> | ||
413 | |||
414 | <para>Use the same test instructions as detailed in the use-case | ||
415 | above.</para> | ||
416 | </section> | ||
417 | </section> | ||
418 | </chapter> \ No newline at end of file | ||