summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiruna Paun <Miruna.Paun@enea.com>2019-07-29 12:30:27 +0200
committerMiruna Paun <Miruna.Paun@enea.com>2019-07-30 12:23:08 +0200
commitd6be45dbae3cc0e2df7f92f6b855126e21051952 (patch)
treec8a11542e4527b980662e22e94017fb176add25e
parent631609b2f424264a74542f2e1ea99e1bb8a43e9c (diff)
downloadel_releases-nfv-access-d6be45dbae3cc0e2df7f92f6b855126e21051952.tar.gz
Updating the structuring and pictures of ENA example-usecases.
Change-Id: If2026f111c8004e31f329df56c63d9d7e0ad5eab
-rw-r--r--doc/book-enea-nfv-access-example-usecases/doc/clav_vnf_examples.xml174
-rw-r--r--doc/book-enea-nfv-access-example-usecases/doc/eltf_params_updated.xml2
-rw-r--r--doc/book-enea-nfv-access-example-usecases/doc/enea_vnf_examples.xml74
-rw-r--r--doc/book-enea-nfv-access-example-usecases/doc/forti_vnf_examples.xml2019
-rwxr-xr-xdoc/book-enea-nfv-access-example-usecases/doc/images/clav_VNF_demo_SR-IOV.pngbin18909 -> 34141 bytes
-rwxr-xr-xdoc/book-enea-nfv-access-example-usecases/doc/images/clav_VNF_demo_SR-IOV.svg1283
-rw-r--r--doc/book-enea-nfv-access-example-usecases/doc/inband_management.xml453
-rw-r--r--doc/book-enea-nfv-access-example-usecases/doc/introduction.xml25
-rw-r--r--doc/book-enea-nfv-access-example-usecases/doc/vnf_chaining.xml531
9 files changed, 2395 insertions, 2166 deletions
diff --git a/doc/book-enea-nfv-access-example-usecases/doc/clav_vnf_examples.xml b/doc/book-enea-nfv-access-example-usecases/doc/clav_vnf_examples.xml
index 570ea7a..f8ac57d 100644
--- a/doc/book-enea-nfv-access-example-usecases/doc/clav_vnf_examples.xml
+++ b/doc/book-enea-nfv-access-example-usecases/doc/clav_vnf_examples.xml
@@ -2,6 +2,9 @@
2<chapter id="clav_vnf_example"> 2<chapter id="clav_vnf_example">
3 <title>Clavister VNF Example Use-cases</title> 3 <title>Clavister VNF Example Use-cases</title>
4 4
5 <para>The Clavister VNF is a telco-ready, carrier-grade virtual next
6 generation firewall.</para>
7
5 <section id="prere_clav_vnf"> 8 <section id="prere_clav_vnf">
6 <title>Prerequisites</title> 9 <title>Prerequisites</title>
7 10
@@ -33,7 +36,7 @@
33 Open vSwitch bridge, while uCPE device 2 will run two iPerf VNFs.</para> 36 Open vSwitch bridge, while uCPE device 2 will run two iPerf VNFs.</para>
34 37
35 <figure> 38 <figure>
36 <title>Clavister VNF Example Overview</title> 39 <title>Clavister VNF using Open vSwitch Bridge Overview</title>
37 40
38 <mediaobject> 41 <mediaobject>
39 <imageobject> 42 <imageobject>
@@ -44,9 +47,9 @@
44 </figure> 47 </figure>
45 48
46 <section id="clav_vnf_setup_1"> 49 <section id="clav_vnf_setup_1">
47 <title>uCPE device Setup</title> 50 <title>Use-case Setup</title>
48 51
49 <para><emphasis role="bold">Configure Network interfaces on the uCPE 52 <para><emphasis role="bold">Configuring Network Interfaces on uCPE
50 devices:</emphasis></para> 53 devices:</emphasis></para>
51 54
52 <orderedlist> 55 <orderedlist>
@@ -80,10 +83,8 @@
80 interface and creating another OVS bridge.</para> 83 interface and creating another OVS bridge.</para>
81 </listitem> 84 </listitem>
82 </orderedlist> 85 </orderedlist>
83 </section>
84 86
85 <section id="onboard_vnf_clav"> 87 <para><emphasis role="bold">Onboarding the VNFs:</emphasis></para>
86 <title>Onboard the VNFs</title>
87 88
88 <orderedlist> 89 <orderedlist>
89 <listitem> 90 <listitem>
@@ -121,63 +122,70 @@
121 </itemizedlist> 122 </itemizedlist>
122 </listitem> 123 </listitem>
123 </orderedlist> 124 </orderedlist>
124 </section>
125 125
126 <section id="instance_vnfs_clav"> 126 <para><emphasis role="bold">Instantiating the VNFs:</emphasis></para>
127 <title>Instantiate the VNFs</title>
128 127
129 <para><emphasis role="bold">A) Instantiate the Clavister VNF on uCPE 128 <itemizedlist>
130 device 1:</emphasis></para>
131
132 <orderedlist>
133 <listitem> 129 <listitem>
134 <para>Select uCPE device 1, then from the top toolbar: 130 <para><emphasis role="bold">A) Instantiate the Clavister VNF on uCPE
135 <literal>VNF</literal> -&gt; <literal>Instances</literal> -&gt; 131 device 1:</emphasis></para>
136 <literal>Add</literal>.</para> 132
133 <orderedlist>
134 <listitem>
135 <para>Select uCPE device 1, then from the top toolbar:
136 <literal>VNF</literal> -&gt; <literal>Instances</literal> -&gt;
137 <literal>Add</literal>.</para>
138 </listitem>
139
140 <listitem>
141 <para>Fill in the required information about the Clavister VNF,
142 (the default network configuration can be used) and select
143 <literal>Create</literal>.</para>
144 </listitem>
145 </orderedlist>
137 </listitem> 146 </listitem>
138 147
139 <listitem> 148 <listitem>
140 <para>Fill in the required information about the Clavister VNF, (the 149 <para><emphasis role="bold">B) Instantiate two Enea VNFs (one as the
141 default network configuration can be used) and select 150 client and one as the server) on uCPE device 2:</emphasis></para>
142 <literal>Create</literal>.</para>
143 </listitem>
144 </orderedlist>
145 151
146 <para><emphasis role="bold">B) Instantiate two Enea VNFs (one as the 152 <orderedlist>
147 client and one as the server) on uCPE device 2:</emphasis></para> 153 <listitem>
154 <para>Select uCPE device 2, then from the top toolbar:
155 <literal>VNF</literal> -&gt; <literal>Instances</literal> -&gt;
156 <literal>Add</literal>.</para>
157 </listitem>
148 158
149 <orderedlist> 159 <listitem>
150 <listitem> 160 <para>In the new <literal>VNF Instance</literal> window, select
151 <para>Select uCPE device 2, then from the top toolbar: 161 the Enea VNF from the dropdown menu, configure it to act as a
152 <literal>VNF</literal> -&gt; <literal>Instances</literal> -&gt; 162 server by unchecking the <literal>Client mode IPerf</literal>
153 <literal>Add</literal>.</para> 163 box, and then click <literal>Create</literal>.</para>
154 </listitem> 164 </listitem>
155 165
156 <listitem> 166 <listitem>
157 <para>In the new <literal>VNF Instance</literal> window, select the 167 <para>Select <literal>Add</literal> once more, enable the
158 Enea VNF from the dropdown menu, configure it to act as a server by 168 <literal>Client mode IPerf</literal> checkbox this time, and
159 unchecking the <literal>Client mode IPerf</literal> box, and then 169 click <literal>Create</literal> to instantiate the second
160 click <literal>Create</literal>.</para> 170 <literal>iPerf VNF</literal> as a client, and to run it in
171 client mode.</para>
172 </listitem>
173 </orderedlist>
161 </listitem> 174 </listitem>
175 </itemizedlist>
176 </section>
162 177
163 <listitem> 178 <section id="test_clav_uc_1">
164 <para>Select <literal>Add</literal> once more, enable the 179 <title>Testing the Use-case</title>
165 <literal>Client mode IPerf</literal> checkbox this time, and click
166 <literal>Create</literal> to instantiate the second <literal>iPerf
167 VNF</literal> as a client, and to run it in client mode.</para>
168 </listitem>
169 180
170 <listitem> 181 <para>In order to check that traffic is forwarded between the two VNFs,
171 <para>In order to check that traffic is forwarded between the two 182 connect to the iPerf VNF client console: <literal>SSH</literal> -&gt;
172 VNFs, connect to the iPerf VNF client console: 183 <literal>user</literal> (root) -&gt; <literal>Connect</literal> and run
173 <literal>SSH</literal> -&gt; <literal>user</literal> (root) -&gt; 184 the following:</para>
174 <literal>Connect</literal> and run the following:</para>
175 185
176 <programlisting>virsh list 186 <programlisting>virsh list
177virsh console 187virsh console
178root@qemux86-64:~# iperf3 -c 192.168.10.10</programlisting> 188root@qemux86-64:~# iperf3 -c 192.168.10.10</programlisting>
179 </listitem>
180 </orderedlist>
181 </section> 189 </section>
182 </section> 190 </section>
183 191
@@ -189,7 +197,7 @@ root@qemux86-64:~# iperf3 -c 192.168.10.10</programlisting>
189 using SR-IOV with two virtual functions (vf1 and vf2):</para> 197 using SR-IOV with two virtual functions (vf1 and vf2):</para>
190 198
191 <figure> 199 <figure>
192 <title>Example Overview</title> 200 <title>Clavister VNF using SR-IOV Overview</title>
193 201
194 <mediaobject> 202 <mediaobject>
195 <imageobject> 203 <imageobject>
@@ -200,16 +208,19 @@ root@qemux86-64:~# iperf3 -c 192.168.10.10</programlisting>
200 </figure> 208 </figure>
201 209
202 <section id="clav_vnf_setup_2"> 210 <section id="clav_vnf_setup_2">
203 <title>Example Setup</title> 211 <title>Use-case Setup</title>
212
213 <para><emphasis role="bold">Configuring Network Interfaces on uCPE
214 devices:</emphasis></para>
204 215
205 <orderedlist> 216 <orderedlist>
206 <listitem> 217 <listitem>
207 <para>On uCPE device 2, create an SR-IOV configuration with 2 218 <para>On uCPE device 2, create an SR-IOV configuration with 2
208 virtual functions by selecting <literal>Configuration</literal> 219 virtual functions by selecting <literal>Configuration</literal>
209 -&gt; <literal>OpenVSwitch</literal> -&gt; <literal>Host 220 -&gt; <literal>OpenVSwitch</literal> -&gt; <literal>Host
210 Interfaces</literal> -&gt; <literal>Add</literal>:</para> 221 Interfaces</literal> -&gt; <literal>Add</literal>.</para>
211 222
212 <figure> 223 <figure condition="hidden">
213 <title>SR-IOV configuration with 2 virtual functions</title> 224 <title>SR-IOV configuration with 2 virtual functions</title>
214 225
215 <mediaobject> 226 <mediaobject>
@@ -222,6 +233,30 @@ root@qemux86-64:~# iperf3 -c 192.168.10.10</programlisting>
222 </listitem> 233 </listitem>
223 234
224 <listitem> 235 <listitem>
236 <para>On uCPE device 1, create an SR-IOV interface as done in step
237 1.</para>
238 </listitem>
239
240 <listitem>
241 <para>Create the iPerf server on uCPE device 1 and select
242 <literal>SrIovAdapterPool</literal> as an Interface type.</para>
243 </listitem>
244
245 <listitem>
246 <para>Create the iPerf client on uCPE device 1. Select
247 <literal>SrIovAdapterPool</literal> as an Interface type and tick
248 the <literal>Client mode IPerf</literal> checkbox.</para>
249 </listitem>
250 </orderedlist>
251
252 <para><emphasis role="bold">Onboarding the VNFs:</emphasis></para>
253
254 <para>????</para>
255
256 <para><emphasis role="bold">Instantiating the VNFs:</emphasis></para>
257
258 <orderedlist>
259 <listitem>
225 <para>Instantiate the Clavister VNF on uCPE device 2: 260 <para>Instantiate the Clavister VNF on uCPE device 2:
226 <literal>VNF</literal> -&gt; <literal>Instances</literal> -&gt; 261 <literal>VNF</literal> -&gt; <literal>Instances</literal> -&gt;
227 <literal>Add</literal>.</para> 262 <literal>Add</literal>.</para>
@@ -232,7 +267,7 @@ root@qemux86-64:~# iperf3 -c 192.168.10.10</programlisting>
232 type for both Interface 1 type and 2 type, before clicking 267 type for both Interface 1 type and 2 type, before clicking
233 <literal>Create</literal>.</para> 268 <literal>Create</literal>.</para>
234 269
235 <figure> 270 <figure condition="hidden">
236 <title>Instantiating the Clavister VNF on uCPE device 2</title> 271 <title>Instantiating the Clavister VNF on uCPE device 2</title>
237 272
238 <mediaobject> 273 <mediaobject>
@@ -243,33 +278,20 @@ root@qemux86-64:~# iperf3 -c 192.168.10.10</programlisting>
243 </mediaobject> 278 </mediaobject>
244 </figure> 279 </figure>
245 </listitem> 280 </listitem>
281 </orderedlist>
282 </section>
246 283
247 <listitem> 284 <section id="test_clav_uc_2">
248 <para>On uCPE device 1, create an SR-IOV interface as done in step 285 <title>Testing the Use-case</title>
249 1.</para>
250 </listitem>
251
252 <listitem>
253 <para>Create the iPerf server on uCPE device 1 and select
254 <literal>SrIovAdapterPool</literal> as an Interface type.</para>
255 </listitem>
256 286
257 <listitem> 287 <para>In order to check that traffic is forwarded between the VNFs,
258 <para>Create the iPerf client on uCPE device 1. Select 288 connect to the iPerf VNF client console by using: <literal>SSH</literal>
259 <literal>SrIovAdapterPool</literal> as an Interface type and tick 289 -&gt; <literal>user</literal> (root) -&gt;<literal>Connect</literal> and
260 the <literal>Client mode IPerf</literal> checkbox.</para> 290 run the following commands:</para>
261 </listitem>
262 291
263 <listitem> 292 <programlisting>virsh list
264 <para>In order to check that traffic is forwarded between the VNFs,
265 connect to the iPerf VNF client console by using:
266 <literal>SSH</literal> -&gt; <literal>user</literal> (root)
267 -&gt;<literal>Connect</literal> and run the following commands:
268 <programlisting>virsh list
269virsh console 293virsh console
270root@qemux86-64:~# iperf3 -c 192.168.10.10</programlisting></para> 294root@qemux86-64:~# iperf3 -c 192.168.10.10</programlisting>
271 </listitem>
272 </orderedlist>
273 </section> 295 </section>
274 </section> 296 </section>
275</chapter> \ No newline at end of file 297</chapter> \ No newline at end of file
diff --git a/doc/book-enea-nfv-access-example-usecases/doc/eltf_params_updated.xml b/doc/book-enea-nfv-access-example-usecases/doc/eltf_params_updated.xml
index f260584..bb969c6 100644
--- a/doc/book-enea-nfv-access-example-usecases/doc/eltf_params_updated.xml
+++ b/doc/book-enea-nfv-access-example-usecases/doc/eltf_params_updated.xml
@@ -42,7 +42,7 @@ export PATH=~/bin:$PATH</programlisting></para>
42 correct also compared to the "previous" REL VER in pardoc-distro.xml 42 correct also compared to the "previous" REL VER in pardoc-distro.xml
43 "prev_baseline".</bridgehead> 43 "prev_baseline".</bridgehead>
44 44
45 <para id="EneaLinux_REL_VER"><phrase>2.2</phrase></para> 45 <para id="EneaLinux_REL_VER"><phrase>2.2.1</phrase></para>
46 46
47 <para id="Yocto_VER"><phrase>2.1</phrase></para> 47 <para id="Yocto_VER"><phrase>2.1</phrase></para>
48 48
diff --git a/doc/book-enea-nfv-access-example-usecases/doc/enea_vnf_examples.xml b/doc/book-enea-nfv-access-example-usecases/doc/enea_vnf_examples.xml
index ac4347c..8f11107 100644
--- a/doc/book-enea-nfv-access-example-usecases/doc/enea_vnf_examples.xml
+++ b/doc/book-enea-nfv-access-example-usecases/doc/enea_vnf_examples.xml
@@ -2,6 +2,11 @@
2<chapter id="enea_vnf_examples"> 2<chapter id="enea_vnf_examples">
3 <title>Enea VNF Example Use-cases</title> 3 <title>Enea VNF Example Use-cases</title>
4 4
5 <para>Enea NFV Access is a complete NFV Infrastructure (NFVI) platform
6 designed for deployment on white box uCPEs at the customer premise, and
7 optimized for common Virtual Customer Premises Equipment (vCPE) and SD-WAN
8 use cases.</para>
9
5 <section id="prere_enea_vnf"> 10 <section id="prere_enea_vnf">
6 <title>Prerequisites</title> 11 <title>Prerequisites</title>
7 12
@@ -20,7 +25,7 @@
20 which will terminate traffic.</para> 25 which will terminate traffic.</para>
21 26
22 <figure> 27 <figure>
23 <title>Enea VNF Example Overview</title> 28 <title>Enea TestPMD VNF Overview</title>
24 29
25 <mediaobject> 30 <mediaobject>
26 <imageobject> 31 <imageobject>
@@ -31,15 +36,16 @@
31 </figure> 36 </figure>
32 37
33 <section id="enea_vnf_setup"> 38 <section id="enea_vnf_setup">
34 <title>Example Setup</title> 39 <title>Use-case Setup</title>
35 40
36 <para><emphasis role="bold">Configure the Network interface on uCPE 41 <para><emphasis role="bold">Configuring Network Interfaces on uCPE
37 devices 1 and 2:</emphasis></para> 42 devices:</emphasis></para>
38 43
39 <orderedlist> 44 <orderedlist>
40 <listitem> 45 <listitem>
41 <para>Bind the host interfaces to the DPDK by selecting uCPE device 46 <para>Bind the host interfaces to the DPDK by selecting
42 1 first, then accessing <literal>Configuration</literal> -&gt; 47 <literal>uCPE device 1</literal> first, then accessing
48 <literal>Configuration</literal> -&gt;
43 <literal>OpenVSwitch</literal> -&gt; <literal>Host 49 <literal>OpenVSwitch</literal> -&gt; <literal>Host
44 Interfaces</literal> -&gt; <literal>Add</literal>.</para> 50 Interfaces</literal> -&gt; <literal>Add</literal>.</para>
45 </listitem> 51 </listitem>
@@ -51,34 +57,29 @@
51 57
52 <listitem> 58 <listitem>
53 <para>Select the <literal>Create</literal> button to send the 59 <para>Select the <literal>Create</literal> button to send the
54 configuration to uCPE device 1.</para> 60 configuration to <literal>uCPE device 1</literal>.</para>
55 </listitem> 61 </listitem>
56 62
57 <listitem> 63 <listitem>
58 <para>Repeat these same steps on uCPE device 2.</para> 64 <para>Repeat these same steps on <literal>uCPE device
65 2</literal>.</para>
59 </listitem> 66 </listitem>
60 </orderedlist>
61
62 <para><emphasis role="bold">Create an Open vSwitch bridge on uCPE device
63 1:</emphasis></para>
64 67
65 <para>Create an Open vSwitch bridge (<literal>ovsbr0</literal>) on uCPE
66 device 1, that uses one DPDK interface:</para>
67
68 <orderedlist>
69 <listitem> 68 <listitem>
70 <para>Click the <literal>Add</literal> button from the Bridges 69 <para>Click the <literal>Add</literal> button from the Bridges
71 tab.</para> 70 tab.</para>
72 </listitem> 71 </listitem>
73 72
74 <listitem> 73 <listitem>
75 <para>Select uCPE device 1, then access 74 <para>Create an Open vSwitch bridge (<literal>ovsbr0</literal>) on
75 <literal>uCPE device 1</literal> that uses one DPDK interface, by
76 selecting <literal>uCPE device 1</literal>, then:
76 <literal>Configuration</literal> -&gt;<literal>OpenVSwitch</literal> 77 <literal>Configuration</literal> -&gt;<literal>OpenVSwitch</literal>
77 -&gt;<literal>Bridges</literal>.</para> 78 -&gt;<literal>Bridges</literal>.</para>
78 </listitem> 79 </listitem>
79 </orderedlist> 80 </orderedlist>
80 81
81 <para><emphasis role="bold">Onboard the Enea VNF:</emphasis></para> 82 <para><emphasis role="bold">Onboarding the VNF:</emphasis></para>
82 83
83 <orderedlist> 84 <orderedlist>
84 <listitem> 85 <listitem>
@@ -117,7 +118,7 @@
117 </listitem> 118 </listitem>
118 </orderedlist> 119 </orderedlist>
119 120
120 <para><emphasis role="bold">Instantiate two VNFs on uCPE device 121 <para><emphasis role="bold">Instantiating two VNFs on uCPE device
121 2:</emphasis></para> 122 2:</emphasis></para>
122 123
123 <orderedlist> 124 <orderedlist>
@@ -182,30 +183,31 @@ Pktgen:/&gt; start 0</programlisting>
182 configuration.</para> 183 configuration.</para>
183 </note> 184 </note>
184 </listitem> 185 </listitem>
186 </orderedlist>
187 </section>
185 188
186 <listitem> 189 <section id="test_ena_vnf">
187 <para>Connect to the forwarder VNF in order to check the traffic 190 <title>Testing the Use-case</title>
188 statistics, by selecting the uCPE device first, then accessing 191
189 <literal>SSH</literal> -&gt; <literal>user</literal> (root):</para> 192 <para>Connect to the forwarder VNF in order to check the traffic
193 statistics, by selecting the uCPE device first, then accessing
194 <literal>SSH</literal> -&gt; <literal>user</literal> (root):</para>
190 195
191 <programlisting>Virsh list 196 <programlisting>Virsh list
192Virsh console 1 197Virsh console 1
193# Qemux86-64 login: root 198# Qemux86-64 login: root
194tail -f /var/log/testpmd-out</programlisting> 199tail -f /var/log/testpmd-out</programlisting>
195 200
196 <figure> 201 <figure>
197 <title>Traffic Statistics</title> 202 <title>Traffic Statistics</title>
198 203
199 <mediaobject> 204 <mediaobject>
200 <imageobject> 205 <imageobject>
201 <imagedata align="center" 206 <imagedata align="center"
202 fileref="images/connection_information.png" 207 fileref="images/connection_information.png" scale="70" />
203 scale="70" /> 208 </imageobject>
204 </imageobject> 209 </mediaobject>
205 </mediaobject> 210 </figure>
206 </figure>
207 </listitem>
208 </orderedlist>
209 </section> 211 </section>
210 212
211 <section condition="hidden" id="vnf_pci"> 213 <section condition="hidden" id="vnf_pci">
diff --git a/doc/book-enea-nfv-access-example-usecases/doc/forti_vnf_examples.xml b/doc/book-enea-nfv-access-example-usecases/doc/forti_vnf_examples.xml
index 8174aa1..48f2995 100644
--- a/doc/book-enea-nfv-access-example-usecases/doc/forti_vnf_examples.xml
+++ b/doc/book-enea-nfv-access-example-usecases/doc/forti_vnf_examples.xml
@@ -7,47 +7,50 @@
7 appliances. The virtual appliances can be integrated in Firewall or SD-WAN 7 appliances. The virtual appliances can be integrated in Firewall or SD-WAN
8 solution development.</para> 8 solution development.</para>
9 9
10 <section id="forti_firewall_prereq"> 10 <para>Enea provides a prepared VNF bundle for usage with Enea NFV Access.
11 <title>Prerequisites</title> 11 The bundle includes the FortiGate VNF image as well as a VNF Descriptor and
12 12 other onboarding related configuration files.</para>
13 <para>Enea provides a prepared VNF bundle for usage with the Enea
14 NFV Access product. The bundle includes the FortiGate VNF image as well
15 as a VNF Descriptor and other onboarding related configuration files.
16 The VNF Descriptor provided configures a setup, which requires the
17 following resources:</para>
18
19 <itemizedlist>
20 <listitem>
21 <para>3 x Network Interfaces</para>
22 </listitem>
23
24 <listitem>
25 <para>1 x vCPU</para>
26 </listitem>
27
28 <listitem>
29 <para>1 GB of RAM memory</para>
30 </listitem>
31 </itemizedlist>
32 13
33 <para>The VNF Descriptor represents one specific setup, suitable for usage 14 <para>The VNF Descriptor represents one specific setup, suitable for usage
34 with the Firewall and SD-WAN VPN instructions in this guide. Alternative VNF 15 with the Firewall and SD-WAN VPN instructions in this guide. Alternative VNF
35 Descriptor configurations may be needed to support other setups 16 Descriptor configurations may be needed to support other setups desired by
36 desired by the customer.</para> 17 the customer.</para>
37 18
38 <para>Enea can offer assistance and provide alternative VNF Descriptor 19 <para>Enea can offer assistance and provide alternative VNF Descriptor
39 configurations.</para> 20 configurations.</para>
40 21
41 <note> 22 <section id="forti_firewall_prereq">
42 <para>While the prepared FortiGate bundle is available from Enea, 23 <title>Prerequisites</title>
43 additional content needs to acquired directly from Fortinet. The 24
44 FortiGate VNF license file as well as any FortiGate specific documentation 25 <para>The following hardware and software resources are needed for this
45 is available from the local Fortinet sales representatives in your 26 example use case:</para>
46 region, and must be requested before FortiGate can be used.</para> 27
47 </note> 28 <itemizedlist>
29 <listitem>
30 <para>3 x Network Interfaces</para>
31 </listitem>
32
33 <listitem>
34 <para>1 x vCPU</para>
35 </listitem>
36
37 <listitem>
38 <para>1 GB of RAM memory</para>
39 </listitem>
40
41 <listitem>
42 <para>FortiGate VNF license file. This file is provided by the local
43 Fortinet sales representatives in your region.</para>
44 </listitem>
45
46 <listitem>
47 <para>FortiGate specific documentation. These files are provided by
48 the local Fortinet sales representatives in your region.</para>
49 </listitem>
50 </itemizedlist>
48 </section> 51 </section>
49 52
50 <section id="fortigate_firewall"> 53 <section id="fortigate_firewall_uc_1">
51 <title>FortiGate VNF as a Firewall</title> 54 <title>FortiGate VNF as a Firewall</title>
52 55
53 <para>FortiGate Next Generation Firewall utilizes purpose-built security 56 <para>FortiGate Next Generation Firewall utilizes purpose-built security
@@ -57,7 +60,8 @@
57 networks, and provides security ratings to adopt security best 60 networks, and provides security ratings to adopt security best
58 practices.</para> 61 practices.</para>
59 62
60 <para>Enea provides an example of a simple base firewall configuration for the FortiGate VNF.</para> 63 <para>Enea provides an example of a simple base firewall configuration for
64 the FortiGate VNF.</para>
61 65
62 <table> 66 <table>
63 <title>FortiGate VNF Example Configuration</title> 67 <title>FortiGate VNF Example Configuration</title>
@@ -85,14 +89,15 @@
85 89
86 <entry align="left"><para>DHCP Client, dynamically assigned IP 90 <entry align="left"><para>DHCP Client, dynamically assigned IP
87 address.</para><para>FortiGate In-Band 91 address.</para><para>FortiGate In-Band
88 Management<superscript>1</superscript>.</para></entry> 92 Management<superscript>1</superscript>.</para></entry>
89 </row> 93 </row>
90 94
91 <row> 95 <row>
92 <entry align="left">WAN (Virtual Port2)</entry> 96 <entry align="left">WAN (Virtual Port2)</entry>
93 97
94 <entry align="left"><para>IP address: 172.168.16.1</para><para>DHCP server (IP range 98 <entry align="left"><para>IP address:
95 172.168.16.1 - 172.168.16.255).</para></entry> 99 172.168.16.1</para><para>DHCP server (IP range 172.168.16.1 -
100 172.168.16.255).</para></entry>
96 </row> 101 </row>
97 102
98 <row> 103 <row>
@@ -107,460 +112,985 @@
107 <para><superscript>1</superscript>FortiGate In-Band Management is a 112 <para><superscript>1</superscript>FortiGate In-Band Management is a
108 feature for running FortiGate Management traffic over WAN.</para> 113 feature for running FortiGate Management traffic over WAN.</para>
109 114
110 <para>Instructions on how to alter the default configuration are provided 115 <para>Instructions on how to alter the default configuration are provided,
111 in the Fortigate VNF management chapter.<remark>where is this chapter located?</remark></para> 116 <olink targetdoc="book_enea_nfv_access_example_usecases"
117 targetptr="fortigate_webmg">FortiGate VNF Management in <xi:include
118 href="../../s_docbuild/olinkdb/pardoc-names.xml"
119 xmlns:xi="http://www.w3.org/2001/XInclude"
120 xpointer="element(book_enea_nfv_access_example_usecases/1)" /></olink>.</para>
121
122 <section id="lab_setup_fortfirewall">
123 <title>Lab Setup</title>
124
125 <para>Before starting the configuration of the FortiGate Firewall, a lab
126 setup of hardware and software configurations has to be built. The
127 following table illustrates the requirements.</para>
128
129 <table>
130 <title>Lab Setup Prerequisites</title>
131
132 <tgroup cols="2">
133 <colspec align="center" />
134
135 <thead>
136 <row>
137 <entry align="center">Component</entry>
138
139 <entry align="center">Description/Requirements</entry>
140 </row>
141 </thead>
142
143 <tbody>
144 <row>
145 <entry align="left">Lab Network</entry>
146
147 <entrytbl cols="1">
148 <tbody>
149 <row>
150 <entry>DHCP enabled Lab Network</entry>
151 </row>
152
153 <row>
154 <entry>Internet Connectivity</entry>
155 </row>
156 </tbody>
157 </entrytbl>
158 </row>
159
160 <row>
161 <entry align="left">Setup of an Intel Whitebox uCPE
162 device</entry>
163
164 <entrytbl cols="1">
165 <tbody>
166 <row>
167 <entry>Minimum 4 Physical Network Devices</entry>
168 </row>
169
170 <row>
171 <entry>4 GB RAM and 4 cores (C3000 or Xeon D)</entry>
172 </row>
173
174 <row>
175 <entry>Enea NFV Access Installed</entry>
176 </row>
177
178 <row>
179 <entry>WAN Connected to Lab Network</entry>
180 </row>
181
182 <row>
183 <entry>LAN1 Connected to Test Machine</entry>
184 </row>
185
186 <row>
187 <entry>LAN2 Unconnected</entry>
188 </row>
189
190 <row>
191 <entry>ETH0 connected to the Lab Network (for Enea uCPE
192 Manager communications)</entry>
193 </row>
194 </tbody>
195 </entrytbl>
196 </row>
197
198 <row>
199 <entry align="left">Setup of a Lab Machine</entry>
200
201 <entrytbl cols="1">
202 <tbody>
203 <row>
204 <entry>Connected to Lab Network</entry>
205 </row>
206
207 <row>
208 <entry>Running either Windows or CentOS</entry>
209 </row>
210
211 <row>
212 <entry>Enea uCPE Manager installed</entry>
213 </row>
214 </tbody>
215 </entrytbl>
216 </row>
217
218 <row>
219 <entry align="left">Setup of a Test Machine</entry>
220
221 <entrytbl cols="1">
222 <tbody>
223 <row>
224 <entry>Connected to Whitebox LAN</entry>
225 </row>
226
227 <row>
228 <entry>Internet Connectivity via LAN</entry>
229 </row>
230
231 <row>
232 <entry>Configured as DHCP client on LAN</entry>
233 </row>
234 </tbody>
235 </entrytbl>
236 </row>
237
238 <row>
239 <entry align="left">FortiGate VNF</entry>
240
241 <entrytbl cols="1">
242 <tbody>
243 <row>
244 <entry>Copy the FortiGate VNF Bundle provided by Enea to
245 the Lab Machine file system.</entry>
246 </row>
247
248 <row>
249 <entry>Copy the FortiGate configuration examples from Enea
250 to the Lab Machine file system. Unpack the configuration
251 examples onto the Lab Machine.</entry>
252 </row>
253
254 <row>
255 <entry>Retrieve the FortiGate VNF license file from
256 Fortinet and store it on the Lab Machine file system. See
257 FortiGate VNF for details.</entry>
258 </row>
259
260 <row>
261 <entry>Optionally, retrieve FortiGate VNF documentation
262 from Fortinet. See FortiGate VNF for details.</entry>
263 </row>
264 </tbody>
265 </entrytbl>
266 </row>
267 </tbody>
268 </tgroup>
269 </table>
270
271 <figure>
272 <title>Lab Setup Overview</title>
273
274 <mediaobject>
275 <imageobject>
276 <imagedata align="center" fileref="images/intel_whitebox.png"
277 scale="45" />
278 </imageobject>
279 </mediaobject>
280 </figure>
281 </section>
282
283 <section id="exam_setup_fortifirewall">
284 <title>Use-case Setup</title>
285
286 <para><emphasis role="bold">Configuring Network Interfaces on uCPE
287 devices</emphasis></para>
288
289 <para>Before deploying the FortiGate Firewall, the Enea NFV Access
290 platform has to be configured to the specific networking setup.</para>
291
292 <para>Since the firewall uses three External Network Interfaces, three
293 bridges need to be configured. Each bridge provides the ability to
294 connect a physical network interface to the virtual machines' virtual
295 network interface. Each physical to virtual network interface connection
296 is setup in two steps:</para>
297
298 <itemizedlist>
299 <listitem>
300 <para>Bind the physical network interfaces with a DPDK
301 driver.</para>
302 </listitem>
303
304 <listitem>
305 <para>Create a named bridge for each physical network
306 interface.</para>
307 </listitem>
308 </itemizedlist>
309
310 <orderedlist>
311 <listitem>
312 <para>Start the setup by preparing each interface for attachment to
313 a bridge. Bind the physical network interfaces to the DPDK by
314 selecting the uCPE device, then accessing:
315 <literal>Configuration</literal> -&gt;
316 <literal>OpenVSwitch</literal> -&gt; <literal>Host Interfaces
317 </literal>-&gt; <literal>Add</literal>.</para>
318
319 <para>The result of binding these three physical network interfaces
320 should look like the following:</para>
112 321
113 <para><emphasis role="bold">Lab Setup</emphasis></para> 322 <figure>
323 <title>Successful Binding</title>
324
325 <mediaobject>
326 <imageobject>
327 <imagedata align="center"
328 fileref="images/result_of_binding.png" scale="65" />
329 </imageobject>
330 </mediaobject>
331 </figure>
332 </listitem>
333
334 <listitem>
335 <para>Create one Open vSwitch bridge for each firewall network
336 connection (WAN, LAN1 and LAN2), by selecting:
337 <literal>Configuration</literal> -&gt;
338 <literal>OpenVSwitch</literal> -&gt; <literal>Bridges</literal>
339 -&gt; <literal>Add</literal>.</para>
340 </listitem>
341
342 <listitem>
343 <para>Repeat this step for each type of connection until all are
344 bridges are configured.</para>
345
346 <figure>
347 <title>Configured Bridges per Connection Type</title>
348
349 <mediaobject>
350 <imageobject>
351 <imagedata align="center"
352 fileref="images/configured_bridges.png" scale="68" />
353 </imageobject>
354 </mediaobject>
355 </figure>
356 </listitem>
357 </orderedlist>
358
359 <para>Alternatively, the firewall can be setup to use bridges as
360 connection points for the Fortigate VNF, by replacing the OVS-DPDK
361 bridges with SR-IOV connection points.</para>
362
363 <para>It was previously assumed that three physical interfaces are
364 available for VNF connection. In the case of a firewall setup only two
365 physical interfaces are needed for the data path (one for WAN and one
366 for LAN). Only two interfaces will be configured as DPDK, with two
367 bridges created, one for each type of connection.</para>
114 368
115 <para>Before starting the configuration of the FortiGate Firewall, a lab 369 <para>Please note that at VNF instantiation instead of assigning
116 setup of hardware and software configurations has to be built. The 370 distinct bridges for each LAN interface, only one will be used for both
117 following table illustrates the required lab setup:</para> 371 LAN1 and LAN2, with no changes in WAN interface configuration. Please
372 see the picture below for the final setup:</para>
118 373
119 <table> 374 <figure>
120 <title>Lab Setup Prerequisites</title> 375 <title>Two-Interface Configuration</title>
121 376
122 <tgroup cols="2"> 377 <mediaobject>
123 <colspec align="center" /> 378 <imageobject>
379 <imagedata align="center" fileref="images/two_inst_firewall.png"
380 scale="65" />
381 </imageobject>
382 </mediaobject>
383 </figure>
124 384
125 <thead> 385 <para><emphasis role="bold">Onboarding the FortiGate
126 <row> 386 VNF:</emphasis></para>
127 <entry align="center">Component</entry>
128 387
129 <entry align="center">Description/Requirements</entry> 388 <orderedlist>
130 </row> 389 <listitem>
131 </thead> 390 <para>To onboard the Fortigate VNF select from the top toolbar
391 <literal>VNF</literal> -&gt; <literal>Descriptors</literal> -&gt;
392 <literal>On-board.</literal></para>
393 </listitem>
132 394
133 <tbody> 395 <listitem>
134 <row> 396 <para>Click <literal>Browse</literal> to view selections, and choose
135 <entry align="left">Lab Network</entry> 397 the <literal>Fortigate.zip</literal> file, before clicking
398 <literal>Send</literal>.</para>
399 </listitem>
400 </orderedlist>
136 401
137 <entrytbl cols="1"> 402 <para><emphasis role="bold">Instantiating the FortiGate
138 <tbody> 403 VNF</emphasis></para>
139 <row>
140 <entry>DHCP enabled Lab Network</entry>
141 </row>
142 404
143 <row> 405 <orderedlist>
144 <entry>Internet Connectivity</entry> 406 <listitem>
145 </row> 407 <para>Fortigate VNF instantiation requires the following
146 </tbody> 408 settings:</para>
147 </entrytbl>
148 </row>
149 409
150 <row> 410 <table>
151 <entry align="left">Setup of an Intel Whitebox uCPE device</entry> 411 <title>Instantiation Requirements</title>
152 412
153 <entrytbl cols="1"> 413 <tgroup cols="2">
154 <tbody> 414 <colspec align="center" colwidth="1*" />
155 <row>
156 <entry>Minimum 4 Physical Network Devices</entry>
157 </row>
158 415
159 <row> 416 <colspec align="center" colwidth="4*" />
160 <entry>4 GB RAM and 4 cores (C3000 or Xeon D)</entry>
161 </row>
162 417
418 <thead>
163 <row> 419 <row>
164 <entry>Enea NFV Access Installed</entry> 420 <entry align="center">Component</entry>
165 </row>
166 421
167 <row> 422 <entry align="center">Description</entry>
168 <entry>WAN Connected to Lab Network</entry>
169 </row> 423 </row>
424 </thead>
170 425
426 <tbody>
171 <row> 427 <row>
172 <entry>LAN1 Connected to Test Machine</entry> 428 <entry align="left">Name</entry>
173 </row>
174 429
175 <row> 430 <entry align="left">Name of the VM which will be created on
176 <entry>LAN2 Unconnected</entry> 431 the uCPE device.</entry>
177 </row> 432 </row>
178 433
179 <row> 434 <row>
180 <entry>ETH0 connected to the Lab Network (for Enea uCPE Manager 435 <entry align="left">VNF Type</entry>
181 communications)</entry>
182 </row>
183 </tbody>
184 </entrytbl>
185 </row>
186 436
187 <row> 437 <entry align="left">Name of the onboarded VNF
188 <entry align="left">Setup of a Lab Machine</entry> 438 bundle.</entry>
189
190 <entrytbl cols="1">
191 <tbody>
192 <row>
193 <entry>Connected to Lab Network</entry>
194 </row> 439 </row>
195 440
196 <row> 441 <row>
197 <entry>Running either Windows or CentOS</entry> 442 <entry align="left">VIM</entry>
198 </row>
199 443
200 <row> 444 <entry align="left">Name and IP address of the device where
201 <entry>Enea uCPE Manager installed</entry> 445 the VNF will be instantiated.</entry>
202 </row> 446 </row>
203 </tbody>
204 </entrytbl>
205 </row>
206
207 <row>
208 <entry align="left">Setup of a Test Machine</entry>
209 447
210 <entrytbl cols="1">
211 <tbody>
212 <row> 448 <row>
213 <entry>Connected to Whitebox LAN</entry> 449 <entry align="left">License file</entry>
214 </row>
215 450
216 <row> 451 <entry align="left">FortiGate license file provided by
217 <entry>Internet Connectivity via LAN</entry> 452 Fortinet.</entry>
218 </row> 453 </row>
219 454
220 <row> 455 <row>
221 <entry>Configured as DHCP client on LAN</entry> 456 <entry align="left">Configuration file</entry>
222 </row>
223 </tbody>
224 </entrytbl>
225 </row>
226
227 <row>
228 <entry align="left">FortiGate VNF</entry>
229 457
230 <entrytbl cols="1"> 458 <entry align="left">Firewall example configuration file
231 <tbody> 459 provided by Enea
232 <row> 460 (<filename>FGVM080000136187_20180828_0353_basic_fw.conf</filename>).</entry>
233 <entry>Copy the FortiGate VNF Bundle provided by Enea to the Lab Machine file system.</entry>
234 </row> 461 </row>
235 462
236 <row> 463 <row>
237 <entry>Copy the FortiGate configuration examples from Enea to the Lab Machine file system. Unpack the configuration 464 <entry align="left">Port1 - WAN</entry>
238 examples onto the Lab Machine.</entry> 465
466 <entry align="left">Set the External Interface type to Dpdk
467 and connect it to the <literal>wanmgrbr</literal> ovs
468 bridge.</entry>
239 </row> 469 </row>
240 470
241 <row> 471 <row>
242 <entry>Retrieve the FortiGate VNF license file from Fortinet and 472 <entry align="left">Port2 - LAN1</entry>
243 store it on the Lab Machine file system. See FortiGate VNF 473
244 for details.</entry> 474 <entry align="left">Set the Incoming Interface type to Dpdk
475 and connect it to the <literal>lan1</literal> ovs
476 bridge.</entry>
245 </row> 477 </row>
246 478
247 <row> 479 <row>
248 <entry>Optionally, retrieve FortiGate VNF documentation from 480 <entry align="left">Port3 - LAN2</entry>
249 Fortinet. See FortiGate VNF for details.</entry> 481
482 <entry align="left">Set the Outgoing Interface type to Dpdk
483 and connect it to the <literal>lan2</literal> ovs
484 bridge.</entry>
250 </row> 485 </row>
251 </tbody> 486 </tbody>
252 </entrytbl> 487 </tgroup>
253 </row> 488 </table>
254 </tbody> 489 </listitem>
255 </tgroup> 490
256 </table> 491 <listitem>
257 492 <para>Select the uCPE device, then from the top toolbar select
258 <figure> 493 <literal>VNF</literal> -&gt; <literal>Instances</literal> -&gt;
259 <title>Lab Setup Overview</title> 494 <literal>Add</literal>.</para>
260 495 </listitem>
261 <mediaobject> 496 </orderedlist>
262 <imageobject> 497 </section>
263 <imagedata align="center" fileref="images/intel_whitebox.png" 498
264 scale="45" /> 499 <section id="testing_fortigate_uc_1">
265 </imageobject> 500 <title>Testing the Use-case</title>
266 </mediaobject> 501
267 </figure> 502 <para>Connect the Test Machine on the LAN interface and access the
268 </section> 503 internet from the Test Machine to use the firewall on the uCPE
269 504 device.</para>
270 <section id="exam_setup_forti"> 505
271 <title>Example Setup</title> 506 <note>
272 507 <para>The connected Test Machine can be a laptop or a uCPE device. It
273 <para><emphasis role="bold">uCPE Networking Setup</emphasis></para> 508 must have one interface configured to get a dynamic IP from a DHCP
274 509 server. The <literal>dhclient &lt;interface&gt;</literal> command can
275 <para>Before deploying the FortiGate Firewall, the Enea NFV Access 510 be used to request an IP address. The received IP must be in the
276 platform has to be configured to the specific networking setup.</para> 511 172.16.1.2 - 172.16.1.255 range.</para>
277 512 </note>
278 <para>Since the firewall uses three External Network Interfaces, three 513
279 bridges need to be configured. Each bridge provides the ability to connect 514 <para>The FortiGate VNF management interface is accessible through the
280 a physical network interface to the virtual machines' virtual network 515 WAN interface. The WAN IP address can be used from a web browser on the
281 interface. Each physical to virtual network interface connection is setup 516 Lab Machine to access the Fortigate VNF Management Web UI. Please check
282 in two steps:</para> 517 <olink targetdoc="book_enea_nfv_access_example_usecases"
283 518 targetptr="fortigate_webmg">Fortigate VNF web management<xi:include
284 <itemizedlist> 519 href="../../s_docbuild/olinkdb/pardoc-names.xml"
285 <listitem> 520 xmlns:xi="http://www.w3.org/2001/XInclude"
286 <para>Bind the physical network interfaces with a DPDK driver.</para> 521 xpointer="element(book_enea_nfv_access_example_usecases/1)" /></olink>
287 </listitem> 522 for more information.</para>
288 523 </section>
289 <listitem>
290 <para>Create a named bridge for each physical network
291 interface.</para>
292 </listitem>
293 </itemizedlist>
294
295 <note>
296 <para>For more details about interface configuration, please see the
297 Network Configuration section in the chapter on Configuration
298 Options.<remark>where is this chapter and its section located exactly?</remark></para>
299 </note>
300
301 <orderedlist>
302 <listitem>
303 <para>Start the setup by preparing each interface for attachment to a
304 bridge. Bind the physical network interfaces to the DPDK by selecting
305 the uCPE device, then accessing: <literal>Configuration</literal> -&gt;
306 <literal>OpenVSwitch</literal> -&gt; <literal>Host Interfaces
307 </literal>-&gt; <literal>Add</literal>:</para>
308
309 <figure>
310 <title>Binding a physical network interface</title>
311
312 <mediaobject>
313 <imageobject>
314 <imagedata align="center"
315 fileref="images/bind_phys_interface.png" scale="80" />
316 </imageobject>
317 </mediaobject>
318 </figure>
319
320 <para>The result of binding these three physical network interfaces
321 should look like the following:</para>
322
323 <figure>
324 <title>Successful Binding</title>
325
326 <mediaobject>
327 <imageobject>
328 <imagedata align="center" fileref="images/result_of_binding.png"
329 scale="65" />
330 </imageobject>
331 </mediaobject>
332 </figure>
333 </listitem>
334
335 <listitem>
336 <para>Create one Open vSwitch bridge for each firewall network
337 connection (WAN, LAN1 and LAN2), by selecting:
338 <literal>Configuration</literal> -&gt;
339 <literal>OpenVSwitch</literal> -&gt; <literal>Bridges</literal> -&gt; <literal>Add</literal>.
340 A popup like the following should appear:</para>
341
342 <figure>
343 <title>Creating a bridge for a Firewall Net. Connection</title>
344
345 <mediaobject>
346 <imageobject>
347 <imagedata align="center" fileref="images/bridge_net_conn.png"
348 scale="80" />
349 </imageobject>
350 </mediaobject>
351 </figure>
352 </listitem>
353
354 <listitem>
355 <para>Repeat this step for each type of connection until all are
356 bridges are configured.</para>
357
358 <figure>
359 <title>Configured Bridges per Connection Type</title>
360
361 <mediaobject>
362 <imageobject>
363 <imagedata align="center"
364 fileref="images/configured_bridges.png" scale="68" />
365 </imageobject>
366 </mediaobject>
367 </figure>
368 </listitem>
369 </orderedlist>
370 </section> 524 </section>
371 525
372 <section id="onboarding_fortigate"> 526 <section id="fortigate_sdwan_vpn">
373 <title>Onboarding the FortiGate VNF</title> 527 <title>FortiGate VNF as an SD-WAN VPN</title>
374
375 <orderedlist>
376 <listitem>
377 <para>To onboard the Fortigate VNF select from the top toolbar
378 <literal>VNF</literal> -&gt; <literal>Descriptors</literal> -&gt;
379 <literal>On-board.</literal></para>
380 </listitem>
381
382 <listitem>
383 <para>Click <literal>Browse</literal> to view selections, and choose the
384 <literal>Fortigate.zip</literal> file, before clicking <literal>Send</literal>.</para>
385 </listitem>
386 </orderedlist>
387 </section>
388
389 <section id="instance_fortigate">
390 <title>Instantiating and Testing the FortiGate VNF</title>
391
392 <para><emphasis role="bold">Instantiate the FortiGate VNF</emphasis></para>
393
394 <orderedlist>
395 <listitem>
396 <para>Select the uCPE device, then from the top toolbar select
397 <literal>VNF</literal> -&gt; <literal>Instances</literal> -&gt;
398 <literal>Add</literal>.</para>
399
400 <para>Make sure you have downloaded valid license files for the
401 Fortigate VNF from Fortinet, and the configuration file provided by
402 Enea as examples according to the previous instructions.</para>
403
404 <figure>
405 <title>Example License and Configuration files</title>
406
407 <mediaobject>
408 <imageobject>
409 <imagedata align="center"
410 fileref="images/fortigate_licenses.png" scale="70" />
411 </imageobject>
412 </mediaobject>
413 </figure>
414 </listitem>
415
416 <listitem>
417 <para>Fortigate VNF instantiation requires the following
418 settings:</para>
419
420 <table>
421 <title>Instantiation Requirements</title>
422
423 <tgroup cols="2">
424 <colspec align="center" colwidth="2*" />
425
426 <colspec align="center" colwidth="4*" />
427
428 <thead>
429 <row>
430 <entry align="center">Component</entry>
431
432 <entry align="center">Description</entry>
433 </row>
434 </thead>
435
436 <tbody>
437 <row>
438 <entry align="left">Name</entry>
439
440 <entry align="left">Name of the VM which will be created on the uCPE
441 device.</entry>
442 </row>
443
444 <row>
445 <entry align="left">VNF Type</entry>
446
447 <entry align="left">Name of the onboarded VNF bundle.</entry>
448 </row>
449
450 <row>
451 <entry align="left">VIM</entry>
452
453 <entry align="left">Name and IP address of the device where the VNF will
454 be instantiated.</entry>
455 </row>
456
457 <row>
458 <entry align="left">License file</entry>
459
460 <entry align="left">FortiGate license file provided by Fortinet.</entry>
461 </row>
462
463 <row>
464 <entry align="left">Configuration file</entry>
465
466 <entry align="left">Firewall example configuration file provided by Enea
467 (<filename>FGVM080000136187_20180828_0353_basic_fw.conf
468 </filename>).</entry>
469 </row>
470
471 <row>
472 <entry align="left">Port1 - WAN</entry>
473
474 <entry align="left">Set the External Interface type to Dpdk and connect it to the
475 <literal>wanmgrbr</literal> ovs bridge.</entry>
476 </row>
477
478 <row>
479 <entry align="left">Port2 - LAN1</entry>
480
481 <entry align="left">Set the Incoming Interface type to Dpdk and connect it to the
482 <literal>lan1</literal> ovs bridge.</entry>
483 </row>
484
485 <row>
486 <entry align="left">Port3 - LAN2</entry>
487 528
488 <entry align="left">Set the Outgoing Interface type to Dpdk and connect it to the 529 <para>The Software-Defined Wide-Area Network (SD-WAN or SDWAN) is a
489 <literal>lan2</literal> ovs bridge.</entry> 530 specific application of software-defined networking (SDN) technology
490 </row> 531 applied to WAN connections. It connects enterprise networks, including
491 </tbody> 532 branch offices and data centers, over large geographic distances.</para>
492 </tgroup>
493 </table>
494 </listitem>
495 </orderedlist>
496 533
497 <para><emphasis role="bold">Testing the FortiGate Firewall</emphasis></para> 534 <para>SD-WAN decouples the network from the management plane, detaching
498 535 traffic management and monitoring functions from hardware. Most forms of
499 <para>Connect the Test Machine on the LAN interface<remark>which lan interface?</remark> 536 SD-WAN technology create a virtual overlay that is transport-agnostic,
500 and access the internet from the Test Machine to use the firewall on the uCPE device.</para> 537 i.e. it abstracts underlying private or public WAN connections. With an
501 538 overlay SD-WAN, a vendor provides an edge device to the customer that
502 <note> 539 contains the software necessary to run the SD-WAN technology. </para>
503 <para>The connected Test Machine can be a laptop or a uCPE device. It must have one 540
504 interface configured to get a dynamic IP from a DHCP server. The 541 <para>For deployment, the customer plugs in WAN links into the device,
505 <literal>dhclient &lt;interface&gt;</literal> command can be used to 542 which automatically configures itself with the network.</para>
506 request an IP address. The received IP must be in the 172.16.1.2 - 543
507 172.16.1.255 range.</para> 544 <para>Example SD-WAN configurations for the FortiGate VNF are provided by
508 </note> 545 Enea.</para>
509 546
510 <figure> 547 <section id="prereq_forti_sdwan_vpn">
511 <title>Testing Setup Overview</title> 548 <title>Prerequisites</title>
512 549
513 <mediaobject> 550 <para>The following table illustrates the use-case prerequisites of the
514 <imageobject> 551 setup:</para>
515 <imagedata align="center" fileref="images/testing_fortigate.png" 552
516 scale="60" /> 553 <table>
517 </imageobject> 554 <title>Prerequisites</title>
518 </mediaobject> 555
519 </figure> 556 <tgroup cols="2">
520 557 <colspec align="center" />
521 <para>In the example above<remark>what example exactly, in the overview picture or?</remark>, 558
522 the FortiGate VNF management interface is accessible through the WAN interface. The 559 <thead>
523 WAN IP address can be used from a web browser on the Lab Machine to access the 560 <row>
524 Fortigate VNF Management Web UI. Please check the Fortigate VNF web management section 561 <entry align="center">Component</entry>
525 for more information.<remark>Note to self: An olink is needed to this section in this book, 562
526 use fortigate_webmg as the ID.</remark></para> 563 <entry align="center">Description</entry>
527 564 </row>
528 <para>In another example, the firewall can be setup to use bridges as 565 </thead>
529 connection points for the Fortigate VNF. It is possible to replace these 566
530 OVS-DPDK bridges with SR-IOV connection points. Please check the network 567 <tbody>
531 configuration chapter on how to configure an interface for SR-IOV.<remark>An olink 568 <row>
532 is needed but I can't add it without clarifying which chapter do you refer to?</remark></para> 569 <entry align="left">Lab Network</entry>
533 570
534 <para>It was previously assumed that three physical interfaces are 571 <entrytbl cols="1">
535 available for VNF connection. In the case of a firewall setup only two physical interfaces 572 <tbody>
536 are needed for the data path (one for WAN and one for LAN).</para><remark>Is this the meaning you 573 <row>
537 intented to convey in this sentence?</remark> 574 <entry>DHCP enabled Lab Network.</entry>
538 575 </row>
539 <para>In the example below only two interfaces will be configured as DPDK, with two 576
540 bridges created, one for each type of connection.</para> 577 <row>
578 <entry>Internet Connectivity.</entry>
579 </row>
580 </tbody>
581 </entrytbl>
582 </row>
583
584 <row>
585 <entry align="left">Two Intel Whitebox uCPE devices</entry>
586
587 <entrytbl cols="1">
588 <tbody>
589 <row>
590 <entry>Minimum 4 Physical Network Devices.</entry>
591 </row>
592
593 <row>
594 <entry>4 GB RAM and 4 cores (C3000 or Xeon D).</entry>
595 </row>
596
597 <row>
598 <entry>Enea NFV Access Installed.</entry>
599 </row>
600
601 <row>
602 <entry>VNFMgr Connected to Lab Network for VNF management
603 access.</entry>
604 </row>
605
606 <row>
607 <entry>WAN interfaces directly connected through Ethernet
608 cable.</entry>
609 </row>
610
611 <row>
612 <entry>LAN Connected to Test Machine.</entry>
613 </row>
614
615 <row>
616 <entry>ETH0 connected to Lab Network (for Enea uCPE
617 Manager communications).</entry>
618 </row>
619 </tbody>
620 </entrytbl>
621 </row>
622
623 <row>
624 <entry align="left">One Lab Machine</entry>
625
626 <entrytbl cols="1">
627 <tbody>
628 <row>
629 <entry>Connected to Lab Network.</entry>
630 </row>
631
632 <row>
633 <entry>Running either Windows or CentOS.</entry>
634 </row>
635
636 <row>
637 <entry>Enea uCPE Manager installed.</entry>
638 </row>
639 </tbody>
640 </entrytbl>
641 </row>
642
643 <row>
644 <entry align="left">Two Test Machines</entry>
645
646 <entrytbl cols="1">
647 <tbody>
648 <row>
649 <entry>Connected to Whitebox LANs.</entry>
650 </row>
651
652 <row>
653 <entry>Internet Connectivity via LAN.</entry>
654 </row>
655
656 <row>
657 <entry>Configured as DHCP client on LAN.</entry>
658 </row>
659 </tbody>
660 </entrytbl>
661 </row>
662
663 <row>
664 <entry align="left">FortiGate VNF</entry>
665
666 <entrytbl cols="1">
667 <tbody>
668 <row>
669 <entry>FortiGate VNF Bundle copied from Enea to the Lab
670 Machine file system.</entry>
671 </row>
672
673 <row>
674 <entry>FortiGate configuration examples from Enea, copied
675 to the Lab Machine file system. Unpack the configuration
676 examples specific for SD-WAN onto the Lab Machine.</entry>
677 </row>
678
679 <row>
680 <entry>Retrieve the FortiGate VNF license from Fortinet
681 and store it on the Lab Machine file system.</entry>
682 </row>
683
684 <row>
685 <entry>Optionally, retrieve FortiGate VNF documentation
686 from Fortinet.</entry>
687 </row>
688 </tbody>
689 </entrytbl>
690 </row>
691 </tbody>
692 </tgroup>
693 </table>
694 </section>
695
696 <section id="forti_labsetup_uc2">
697 <title>Lab Setup</title>
698
699 <para>The following will detail an SD-WAN setup for a branch to branch
700 connection using the FortiGate VNF. FortiGate provides native SD-WAN
701 along with integrated advanced threat protection.</para>
702
703 <table>
704 <title>FortiGate VNF Example Configuration - SD-WAN uCPE device
705 1</title>
706
707 <tgroup cols="2">
708 <colspec align="center" />
709
710 <thead>
711 <row>
712 <entry align="center">Component</entry>
713
714 <entry align="center">Description</entry>
715 </row>
716 </thead>
717
718 <tbody>
719 <row>
720 <entry align="left">SD-WAN</entry>
721
722 <entry>VPN connection between two branches (uCPE device 1 and
723 uCPE device 2).</entry>
724 </row>
725
726 <row>
727 <entry align="left">VNFMgr (Virtual Port1)</entry>
728
729 <entry>DHCP Client, dynamically assigned IP address.</entry>
730 </row>
731
732 <row>
733 <entry align="left">WAN (Virtual Port2)</entry>
734
735 <entry>IP address: 10.0.0.1</entry>
736 </row>
737
738 <row>
739 <entry align="left">LAN (Virtual Port3)</entry>
740
741 <entrytbl cols="1">
742 <tbody>
743 <row>
744 <entry>IP address: 172.16.1.1</entry>
745 </row>
746
747 <row>
748 <entry>DHCP server (IP range 172.16.1.2 -
749 172.16.1.254)</entry>
750 </row>
751 </tbody>
752 </entrytbl>
753 </row>
754 </tbody>
755 </tgroup>
756 </table>
757
758 <table>
759 <title>FortiGate VNF Example Configuration - SD-WAN uCPE device
760 2</title>
761
762 <tgroup cols="2">
763 <colspec align="center" />
764
765 <thead>
766 <row>
767 <entry align="center">Component</entry>
768
769 <entry align="center">Description</entry>
770 </row>
771 </thead>
772
773 <tbody>
774 <row>
775 <entry align="left">SD-WAN</entry>
776
777 <entry>VPN connection between two branches (uCPE device 2 and
778 uCPE device 1).</entry>
779 </row>
780
781 <row>
782 <entry align="left">VNFMgr (Virtual Port1)</entry>
783
784 <entry>DHCP Client, dynamically assigned IP address.</entry>
785 </row>
786
787 <row>
788 <entry align="left">WAN (Virtual Port2)</entry>
789
790 <entry>IP address: 10.0.0.2</entry>
791 </row>
792
793 <row>
794 <entry align="left">LAN (Virtual Port3)</entry>
795
796 <entrytbl cols="1">
797 <tbody>
798 <row>
799 <entry>IP address: 172.16.2.1</entry>
800 </row>
801
802 <row>
803 <entry>DHCP server (IP range 172.16.2.2 -
804 172.16.2.254)</entry>
805 </row>
806 </tbody>
807 </entrytbl>
808 </row>
809 </tbody>
810 </tgroup>
811 </table>
812
813 <para>Download locally the valid license files for the Fortigate VNF
814 from Fortinet and the configuration file provided by Enea as
815 examples.</para>
816
817 <figure>
818 <title>SD-WAN: VPN Configuration</title>
819
820 <mediaobject>
821 <imageobject>
822 <imagedata align="center"
823 fileref="images/sdwan_vpn_overview_1.png" scale="55" />
824 </imageobject>
825 </mediaobject>
826 </figure>
827 </section>
828
829 <section id="forti_examsetup_uc2">
830 <title>Use-case Setup</title>
831
832 <para><emphasis role="bold">Configuring Network Interfaces on uCPE
833 devices</emphasis></para>
834
835 <para>Before deploying the FortiGate SD-WAN, the Enea NFV Access
836 platform has to be configured to the specific networking setup.</para>
837
838 <para>Since the SD-WAN VNF uses three External Network Interfaces, three
839 bridges need to be configured. Each bridge provides the ability to
840 connect a physical network interface to the VM's virtual network
841 interface. Each physical to virtual network interface connection is
842 setup in two steps:</para>
843
844 <itemizedlist>
845 <listitem>
846 <para>Bind the physical network interfaces with a DPDK
847 driver.</para>
848 </listitem>
849
850 <listitem>
851 <para>Create a named bridge for each physical network
852 interface.</para>
853 </listitem>
854 </itemizedlist>
855
856 <para>Start the setup by preparing each physical interface for
857 attachment to a bridge. Each VNF instance will have a virtual interface
858 for VNF management, for the WAN network and for LAN
859 communication.</para>
860
861 <orderedlist>
862 <listitem>
863 <para>Bind a physical interface to the DPDK by selecting uCPE device
864 1 first, then: <literal>Configuration</literal> -&gt;
865 <literal>OpenVSwitch</literal> -&gt; <literal>Host
866 Interfaces</literal> -&gt; <literal>Add</literal>.</para>
867
868 <para>Repeat this step for the other two interfaces. The result of a
869 successful binding should look like the following:</para>
870
871 <figure>
872 <title>Results of Binding</title>
873
874 <mediaobject>
875 <imageobject>
876 <imagedata align="center" fileref="images/binding_results.png"
877 scale="70" />
878 </imageobject>
879 </mediaobject>
880 </figure>
881 </listitem>
882
883 <listitem>
884 <para>Create an Open vSwitch bridge for each SD-WAN network
885 connection (VNF management, WAN and LAN) by selecting the uCPE
886 device then: <literal>Configuration</literal> -&gt;
887 <literal>OpenvSwitch</literal> -&gt; <literal>Bridges</literal>
888 -&gt; <literal>Add</literal>.</para>
889 </listitem>
890
891 <listitem>
892 <para>Repeat this step for all network connections. Three bridges
893 will be created:</para>
894
895 <figure>
896 <title>OVS Bridges</title>
897
898 <mediaobject>
899 <imageobject>
900 <imagedata align="center" fileref="images/created_bridges.png"
901 scale="70" />
902 </imageobject>
903 </mediaobject>
904 </figure>
905 </listitem>
906 </orderedlist>
907
908 <para><emphasis role="bold">Onboarding the FortiGate
909 VNF</emphasis></para>
910
911 <orderedlist>
912 <listitem>
913 <para>To onboard a VNF, select a uCPE device on the map and click
914 the <literal>VNF</literal> button in the top toolbar. Then, click
915 the <literal>Descriptors</literal> -&gt; <literal>On-board</literal>
916 -&gt; <literal>Browse</literal> options, and select the
917 <filename>Fortigate.zip</filename> file, before pressing
918 <literal>Send</literal>:</para>
919
920 <figure>
921 <title>Onboarding FortiGate VNF</title>
922
923 <mediaobject>
924 <imageobject>
925 <imagedata align="center" fileref="images/onboard.png"
926 scale="45" />
927 </imageobject>
928 </mediaobject>
929 </figure>
930 </listitem>
931
932 <listitem>
933 <para>Wait for the <literal>Onboarding Status</literal> popup to
934 display the confirmation message and select
935 <literal>OK</literal>.</para>
936 </listitem>
937 </orderedlist>
938
939 <para><emphasis role="bold">Instantiating the FortiGate
940 VNF</emphasis></para>
941
942 <para>FortiGate VNF instantiation requires the following
943 settings:</para>
944
945 <table>
946 <title>FortiGate VNF Instantiation Requirements</title>
947
948 <tgroup cols="2">
949 <colspec align="left" colwidth="2*" />
950
951 <colspec align="left" colwidth="4*" />
952
953 <thead>
954 <row>
955 <entry align="center">Component</entry>
956
957 <entry align="center">Description</entry>
958 </row>
959 </thead>
960
961 <tbody>
962 <row>
963 <entry>Name</entry>
964
965 <entry>The name of the VM which will be created on the uCPE
966 device.</entry>
967 </row>
968
969 <row>
970 <entry>VNF Type</entry>
971
972 <entry>The name of the onboarded VNF bundle.</entry>
973 </row>
974
975 <row>
976 <entry>VIM</entry>
977
978 <entry>Name and IP address of the device where the VNF will be
979 instantiated.</entry>
980 </row>
981
982 <row>
983 <entry>License file</entry>
984
985 <entry>The FortiGate license file provided by Fortinet.</entry>
986 </row>
987
988 <row>
989 <entry>Configuration file(s)</entry>
541 990
542 <para>Please note that at VNF instantiation instead of assigning distinct bridges for each 991 <entry>SD-WAN example configuration files provided by Enea:
543 LAN interface, only one will be used for both LAN1 and LAN2, with no 992 <literal>FGVM080000136187_20180215_0708_sdwan1.conf</literal>
544 changes in WAN interface configuration. Please see the picture below for the 993 <literal>FGVM080000136188_20180215_0708_sdwan2.conf</literal></entry>
545 final setup:</para> 994 </row>
546 995
547 <figure> 996 <row>
548 <title>Two-Interface Configuration</title> 997 <entry>Port1 - VNFMgr</entry>
549 998
550 <mediaobject> 999 <entry>Set as Dpdk type and connect it to the
551 <imageobject> 1000 <literal>vnfmgrbr</literal> bridge.</entry>
552 <imagedata align="center" fileref="images/two_inst_firewall.png" 1001 </row>
553 scale="65" /> 1002
554 </imageobject> 1003 <row>
555 </mediaobject> 1004 <entry>Port2 - WAN</entry>
556 </figure> 1005
1006 <entry>Set as Dpdk type and connect it to the
1007 <literal>wanbr</literal> bridge.</entry>
1008 </row>
1009
1010 <row>
1011 <entry>Port3 - LAN</entry>
1012
1013 <entry>Set as Dpdk type and connect it to the
1014 <literal>lanbr</literal> bridge.</entry>
1015 </row>
1016 </tbody>
1017 </tgroup>
1018 </table>
1019
1020 <orderedlist>
1021 <listitem>
1022 <para>Select a uCPE device on the map, then from the top toolbar
1023 click <literal>VNF</literal> -&gt; <literal>Instances</literal>
1024 -&gt; <literal>Add</literal>.</para>
1025 </listitem>
1026
1027 <listitem>
1028 <para>Use the <literal>sdwan1</literal> example configuration file
1029 for uCPE device 1:</para>
1030
1031 <figure>
1032 <title>Configuring uCPE device 1</title>
1033
1034 <mediaobject>
1035 <imageobject>
1036 <imagedata align="center"
1037 fileref="images/sdwan1_eg_config.png" scale="70" />
1038 </imageobject>
1039 </mediaobject>
1040 </figure>
1041 </listitem>
1042
1043 <listitem>
1044 <para>To complete the branch-to-branch setup, configure the peer
1045 uCPE device in the same way as <literal>uCPE device 1</literal>.
1046 Make sure to use the
1047 <filename>FGVM080000136188_20180215_0708_sdwan2.conf</filename>
1048 configuration file for the second VNF instantiation.</para>
1049 </listitem>
1050 </orderedlist>
1051 </section>
1052
1053 <section id="forti_test_uc2">
1054 <title>Testing the Use-case</title>
1055
1056 <para>Once the full SD-WAN setup is in place a VPN connection needs to
1057 be established between the two uCPE devices. The Test Machines can be
1058 connected to the LAN interface on each uCPE device.</para>
1059
1060 <para>The connected Test Machine can be a laptop or a uCPE device that
1061 has one interface configured to get a dynamic IP from a DHCP server. The
1062 <command>dhclient &lt;interface&gt;</command> command can be used to
1063 request an IP address.</para>
1064
1065 <note>
1066 <para>The received IP must be in the 172.16.1.2 - 172.16.1.255 range
1067 for Test Machine-1 and in the 172.16.2.2 - 172.16.2.255 range for Test
1068 Machine-2.</para>
1069 </note>
1070
1071 <para><literal>uCPE device 1</literal> should be able to ping Test
1072 <literal>uCPE device 2</literal> in this setup over the WAN connection.
1073 The FortiGate VNF management interface can be accessed from a web
1074 browser on the Lab Machine. For more details please see <olink
1075 targetdoc="book_enea_nfv_access_example_usecases"
1076 targetptr="fortigate_webmg">FortiGate VNF Web Management, <xi:include
1077 href="../../s_docbuild/olinkdb/pardoc-names.xml"
1078 xmlns:xi="http://www.w3.org/2001/XInclude"
1079 xpointer="element(book_enea_nfv_access_example_usecases/1)" /></olink>.</para>
1080
1081 <note>
1082 <para>In this SD-WAN VPN setup example, bridges were used as
1083 connection points for the Fortigate VNF. It is possible to replace
1084 OVS-DPDK bridges with SR-IOV connection points.</para>
1085 </note>
1086 </section>
557 </section> 1087 </section>
558 1088
559 <section id="fortigate_webmg"> 1089 <section id="fortigate_webmg">
560 <title>FortiGate VNF Web Management</title> 1090 <title>FortiGate VNF Web Management</title>
561 1091
562 <para>In order to check the IP address assigned to the Fortigate VNF you need 1092 <para>In order to check the IP address assigned to the Fortigate VNF you
563 to connect to the Fortigate CLI.</para> 1093 need to connect to the Fortigate CLI.</para>
564 1094
565 <para><emphasis role="bold">Connecting to the Fortigate 1095 <para><emphasis role="bold">Connecting to the Fortigate
566 CLI</emphasis></para> 1096 CLI</emphasis></para>
@@ -584,8 +1114,8 @@
584 </listitem> 1114 </listitem>
585 1115
586 <listitem> 1116 <listitem>
587 <para>To access Fortigate CLI, use <literal>admin</literal> as the user, 1117 <para>To access Fortigate CLI, use <literal>admin</literal> as the
588 leaving the password blank/empty, and press enter.</para> 1118 user, leaving the password blank/empty, and press enter.</para>
589 1119
590 <para>Use the CLI command <literal>get system interface</literal> to 1120 <para>Use the CLI command <literal>get system interface</literal> to
591 get the dynamic interfaces configuration.</para> 1121 get the dynamic interfaces configuration.</para>
@@ -606,18 +1136,7 @@
606 <para>Use the IP address assigned for the management interface in the 1136 <para>Use the IP address assigned for the management interface in the
607 web browser (<literal>https://&lt;IP&gt;</literal>), to access the 1137 web browser (<literal>https://&lt;IP&gt;</literal>), to access the
608 Fortinet VNF web management interface. Use the same credentials as 1138 Fortinet VNF web management interface. Use the same credentials as
609 before to login:</para> 1139 before to login.</para>
610
611 <figure>
612 <title>Accessing the web management interface</title>
613
614 <mediaobject>
615 <imageobject>
616 <imagedata align="center"
617 fileref="images/fortinet_vnf_login.png" scale="50" />
618 </imageobject>
619 </mediaobject>
620 </figure>
621 </listitem> 1140 </listitem>
622 1141
623 <listitem> 1142 <listitem>
@@ -647,8 +1166,8 @@
647 </listitem> 1166 </listitem>
648 1167
649 <listitem> 1168 <listitem>
650 <para>Connect to the FortiGate VNF Web Management interface with a web 1169 <para>Connect to the FortiGate VNF Web Management interface with a
651 browser.</para> 1170 web browser.</para>
652 </listitem> 1171 </listitem>
653 1172
654 <listitem> 1173 <listitem>
@@ -657,8 +1176,8 @@
657 </listitem> 1176 </listitem>
658 1177
659 <listitem> 1178 <listitem>
660 <para>Store the updated configuration in a file, so it may be used at the 1179 <para>Store the updated configuration in a file, so it may be used
661 next FortiGate VNF instantiation.</para> 1180 at the next FortiGate VNF instantiation.</para>
662 </listitem> 1181 </listitem>
663 </orderedlist> 1182 </orderedlist>
664 1183
@@ -669,598 +1188,4 @@
669 </listitem> 1188 </listitem>
670 </orderedlist> 1189 </orderedlist>
671 </section> 1190 </section>
672 1191</chapter> \ No newline at end of file
673 <section id="fortigate_sdwan_vpn">
674 <title>FortiGate VNF as an SD-WAN VPN</title>
675
676 <para>The Software-Defined Wide-Area Network (SD-WAN or SDWAN) is a
677 specific application of software-defined networking (SDN) technology
678 applied to WAN connections. It connects enterprise networks, including
679 branch offices and data centers, over large geographic distances.</para>
680
681 <para>SD-WAN decouples the network from the management plane, detaching
682 traffic management and monitoring functions from hardware. Most forms
683 of SD-WAN technology create a virtual overlay that is transport-agnostic,
684 i.e. it abstracts underlying private or public WAN connections. With an
685 overlay SD-WAN, a vendor provides an edge device to the customer that
686 contains the software necessary to run the SD-WAN technology. For
687 deployment, the customer plugs in WAN links into the device, which
688 automatically configures itself with the network.</para>
689
690 <para>The following will detail an SD-WAN setup for a branch to branch
691 connection using the FortiGate VNF. FortiGate provides native SD-WAN along
692 with integrated advanced threat protection.</para>
693
694 <note>
695 <para>Example SD-WAN configurations for the FortiGate VNF are provided
696 by Enea.</para>
697 </note>
698
699 <table>
700 <title>FortiGate VNF Example Configuration - SD-WAN uCPE device
701 1</title>
702
703 <tgroup cols="2">
704 <colspec align="center" />
705
706 <thead>
707 <row>
708 <entry align="center">Component</entry>
709
710 <entry align="center">Description</entry>
711 </row>
712 </thead>
713
714 <tbody>
715 <row>
716 <entry align="left">SD-WAN</entry>
717
718 <entry>VPN connection between two branches (uCPE device 1 and uCPE
719 device 2).</entry>
720 </row>
721
722 <row>
723 <entry align="left">VNFMgr (Virtual Port1)</entry>
724
725 <entry>DHCP Client, dynamically assigned IP address.</entry>
726 </row>
727
728 <row>
729 <entry align="left">WAN (Virtual Port2)</entry>
730
731 <entry>IP address: 10.0.0.1</entry>
732 </row>
733
734 <row>
735 <entry align="left">LAN (Virtual Port3)</entry>
736
737 <entrytbl cols="1">
738 <tbody>
739 <row>
740 <entry>IP address: 172.16.1.1</entry>
741 </row>
742
743 <row>
744 <entry>DHCP server (IP range 172.16.1.2 -
745 172.16.1.254)</entry>
746 </row>
747 </tbody>
748 </entrytbl>
749 </row>
750 </tbody>
751 </tgroup>
752 </table>
753
754 <table>
755 <title>FortiGate VNF Example Configuration - SD-WAN uCPE device
756 2</title>
757
758 <tgroup cols="2">
759 <colspec align="center" />
760
761 <thead>
762 <row>
763 <entry align="center">Component</entry>
764
765 <entry align="center">Description</entry>
766 </row>
767 </thead>
768
769 <tbody>
770 <row>
771 <entry align="left">SD-WAN</entry>
772
773 <entry>VPN connection between two branches (uCPE device 2 and uCPE
774 device 1).</entry>
775 </row>
776
777 <row>
778 <entry align="left">VNFMgr (Virtual Port1)</entry>
779
780 <entry>DHCP Client, dynamically assigned IP address.</entry>
781 </row>
782
783 <row>
784 <entry align="left">WAN (Virtual Port2)</entry>
785
786 <entry>IP address: 10.0.0.2</entry>
787 </row>
788
789 <row>
790 <entry align="left">LAN (Virtual Port3)</entry>
791
792 <entrytbl cols="1">
793 <tbody>
794 <row>
795 <entry>IP address: 172.16.2.1</entry>
796 </row>
797
798 <row>
799 <entry>DHCP server (IP range 172.16.2.2 -
800 172.16.2.254)</entry>
801 </row>
802 </tbody>
803 </entrytbl>
804 </row>
805 </tbody>
806 </tgroup>
807 </table>
808
809 <para><emphasis role="bold">Lab Setup</emphasis></para>
810
811 <para>The following table illustrates the use-case prerequisites of the
812 setup:</para>
813
814 <table>
815 <title>Lab Setup Prerequisites</title>
816
817 <tgroup cols="2">
818 <colspec align="center" />
819
820 <thead>
821 <row>
822 <entry align="center">Component</entry>
823
824 <entry align="center">Description</entry>
825 </row>
826 </thead>
827
828 <tbody>
829 <row>
830 <entry align="left">Lab Network</entry>
831
832 <entrytbl cols="1">
833 <tbody>
834 <row>
835 <entry>DHCP enabled Lab Network.</entry>
836 </row>
837
838 <row>
839 <entry>Internet Connectivity.</entry>
840 </row>
841 </tbody>
842 </entrytbl>
843 </row>
844
845 <row>
846 <entry align="left">Two Intel Whitebox uCPE devices</entry>
847
848 <entrytbl cols="1">
849 <tbody>
850 <row>
851 <entry>Minimum 4 Physical Network Devices.</entry>
852 </row>
853
854 <row>
855 <entry>4 GB RAM and 4 cores (C3000 or Xeon D).</entry>
856 </row>
857
858 <row>
859 <entry>Enea NFV Access Installed.</entry>
860 </row>
861
862 <row>
863 <entry>VNFMgr Connected to Lab Network for VNF management
864 access.</entry>
865 </row>
866
867 <row>
868 <entry>WAN interfaces directly connected through Ethernet
869 cable.</entry>
870 </row>
871
872 <row>
873 <entry>LAN Connected to Test Machine.</entry>
874 </row>
875
876 <row>
877 <entry>ETH0 connected to Lab Network (for Enea uCPE Manager
878 communications).</entry>
879 </row>
880 </tbody>
881 </entrytbl>
882 </row>
883
884 <row>
885 <entry align="left">One Lab Machine</entry>
886
887 <entrytbl cols="1">
888 <tbody>
889 <row>
890 <entry>Connected to Lab Network.</entry>
891 </row>
892
893 <row>
894 <entry>Running either Windows or CentOS.</entry>
895 </row>
896
897 <row>
898 <entry>Enea uCPE Manager installed.</entry>
899 </row>
900 </tbody>
901 </entrytbl>
902 </row>
903
904 <row>
905 <entry align="left">Two Test Machines</entry>
906
907 <entrytbl cols="1">
908 <tbody>
909 <row>
910 <entry>Connected to Whitebox LANs.</entry>
911 </row>
912
913 <row>
914 <entry>Internet Connectivity via LAN.</entry>
915 </row>
916
917 <row>
918 <entry>Configured as DHCP client on LAN.</entry>
919 </row>
920 </tbody>
921 </entrytbl>
922 </row>
923
924 <row>
925 <entry align="left">FortiGate VNF</entry>
926
927 <entrytbl cols="1">
928 <tbody>
929 <row>
930 <entry>FortiGate VNF Bundle copied from Enea to the Lab Machine file system.</entry>
931 </row>
932
933 <row>
934 <entry>FortiGate configuration examples from Enea, copied to the Lab Machine file system. Unpack the configuration
935 examples specific for SD-WAN onto the Lab Machine.</entry>
936 </row>
937
938 <row>
939 <entry>Retrieve the FortiGate VNF license from Fortinet and
940 store it on the Lab Machine file system.</entry>
941 </row>
942
943 <row>
944 <entry>Optionally, retrieve FortiGate VNF documentation from
945 Fortinet.</entry>
946 </row>
947 </tbody>
948 </entrytbl>
949 </row>
950 </tbody>
951 </tgroup>
952 </table>
953
954 <figure>
955 <title>SD-WAN: VPN Configuration</title>
956
957 <mediaobject>
958 <imageobject>
959 <imagedata align="center" fileref="images/sdwan_vpn_overview_1.png"
960 scale="55" />
961 </imageobject>
962 </mediaobject>
963 </figure>
964
965 <para><emphasis role="bold">uCPE Networking Setup</emphasis></para>
966
967 <para>Before deploying the FortiGate SD-WAN, the Enea NFV Access platform
968 has to be configured to the specific networking setup.</para>
969
970 <para>Since the SD-WAN VNF uses three External Network Interfaces, three
971 bridges need to be configured. Each bridge provides the ability to connect
972 a physical network interface to the VM's virtual network
973 interface. Each physical to virtual network interface connection is setup
974 in two steps:</para>
975
976 <itemizedlist>
977 <listitem>
978 <para>Bind the physical network interfaces with a DPDK driver.</para>
979 </listitem>
980
981 <listitem>
982 <para>Create a named bridge for each physical network
983 interface.</para>
984 </listitem>
985 </itemizedlist>
986
987 <para>Start the setup by preparing each physical interface for attachment
988 to a bridge. Each VNF instance will have a virtual interface for VNF
989 management, for the WAN network and for LAN communication.</para>
990
991 <orderedlist>
992 <listitem>
993 <para>Bind a physical interface to the DPDK by selecting uCPE device 1 first, then:
994 <literal>Configuration</literal> -&gt; <literal>OpenVSwitch</literal>
995 -&gt; <literal>Host Interfaces</literal> -&gt;
996 <literal>Add</literal>:</para>
997
998 <figure>
999 <title>Binding the Physical Interface</title>
1000
1001 <mediaobject>
1002 <imageobject>
1003 <imagedata align="center"
1004 fileref="images/bind_phys_interface.png" scale="90" />
1005 </imageobject>
1006 </mediaobject>
1007 </figure>
1008
1009 <para>Repeat this step for the other two interfaces. The result of a successful binding
1010 should look like the following:</para>
1011
1012 <figure>
1013 <title>Results of Binding</title>
1014
1015 <mediaobject>
1016 <imageobject>
1017 <imagedata align="center" fileref="images/binding_results.png"
1018 scale="70" />
1019 </imageobject>
1020 </mediaobject>
1021 </figure>
1022 </listitem>
1023
1024 <listitem>
1025 <para>Create an Open vSwitch bridge for each SD-WAN network connection
1026 (VNF management, WAN and LAN) by selecting the uCPE device then:
1027 <literal>Configuration</literal> -&gt; <literal>OpenvSwitch</literal> -&gt;
1028 <literal>Bridges</literal> -&gt; <literal>Add</literal>. A popup will appear:</para>
1029
1030 <figure>
1031 <title>Creating an Open vSwitch bridge for an SD-WAN network
1032 connection</title>
1033
1034 <mediaobject>
1035 <imageobject>
1036 <imagedata align="center" fileref="images/ovs_bridge_four.png"
1037 scale="70" />
1038 </imageobject>
1039 </mediaobject>
1040 </figure>
1041 </listitem>
1042
1043 <listitem>
1044 <para>Repeat this step for all network connections. Three bridges will
1045 be created:</para>
1046
1047 <figure>
1048 <title>OVS Bridges</title>
1049
1050 <mediaobject>
1051 <imageobject>
1052 <imagedata align="center" fileref="images/created_bridges.png"
1053 scale="70" />
1054 </imageobject>
1055 </mediaobject>
1056 </figure>
1057 </listitem>
1058 </orderedlist>
1059
1060 <para>Once the interfaces and bridges are ready, onboard and instantiate the VNF.</para>
1061
1062 <para><emphasis role="bold">Onboarding the FortiGate VNF</emphasis></para>
1063
1064 <orderedlist>
1065 <listitem>
1066 <para>To onboard a VNF, select a uCPE device on the map and click the
1067 <literal>VNF</literal> button in the top toolbar. Then, click the
1068 <literal>Descriptors</literal> -&gt; <literal>On-board</literal> -&gt;
1069 <literal>Browse</literal> options, and select the
1070 <filename>Fortigate.zip</filename> file, before pressing
1071 <literal>Send</literal>:</para>
1072
1073 <figure>
1074 <title>Onboarding FortiGate VNF</title>
1075
1076 <mediaobject>
1077 <imageobject>
1078 <imagedata align="center" fileref="images/onboard.png"
1079 scale="45" />
1080 </imageobject>
1081 </mediaobject>
1082 </figure>
1083 </listitem>
1084
1085 <listitem>
1086 <para>Wait for the <literal>Onboarding Status</literal> popup to
1087 display the confirmation message and select
1088 <literal>OK</literal>:</para>
1089
1090 <figure>
1091 <title>Successful Confirmation</title>
1092
1093 <mediaobject>
1094 <imageobject>
1095 <imagedata align="center"
1096 fileref="images/onboarded_successfully.png"
1097 scale="42" />
1098 </imageobject>
1099 </mediaobject>
1100 </figure>
1101 </listitem>
1102 </orderedlist>
1103
1104 <para><emphasis role="bold">Instantiating the FortiGate
1105 VNF</emphasis></para>
1106
1107 <note><para>Download locally the valid license files for the Fortigate VNF from
1108 Fortinet and the configuration file provided by Enea as examples.</para>
1109 </note>
1110
1111 <orderedlist>
1112 <listitem>
1113 <para>Select a uCPE device on the map, then from the top toolbar click
1114 <literal>VNF</literal> -&gt; <literal>Instances</literal> -&gt; <literal>Add</literal>:</para>
1115
1116 <figure>
1117 <title>Adding an Instance</title>
1118
1119 <mediaobject>
1120 <imageobject>
1121 <imagedata align="center" fileref="images/adding_instance.png"
1122 scale="52" />
1123 </imageobject>
1124 </mediaobject>
1125 </figure>
1126 </listitem>
1127
1128 <listitem>
1129 <para>Use the <literal>sdwan1</literal> example configuration file for
1130 uCPE device 1:</para>
1131
1132 <figure>
1133 <title>Configuring uCPE device 1</title>
1134
1135 <mediaobject>
1136 <imageobject>
1137 <imagedata align="center" fileref="images/sdwan1_eg_config.png"
1138 scale="70" />
1139 </imageobject>
1140 </mediaobject>
1141 </figure>
1142 </listitem>
1143 </orderedlist>
1144
1145 <para>FortiGate VNF instantiation requires the following settings:</para>
1146
1147 <table>
1148 <title>FortiGate VNF Instantiation Requirements</title>
1149
1150 <tgroup cols="2">
1151 <colspec align="left" colwidth="2*" />
1152
1153 <colspec align="left" colwidth="4*" />
1154
1155 <thead>
1156 <row>
1157 <entry align="center">Component</entry>
1158
1159 <entry align="center">Description</entry>
1160 </row>
1161 </thead>
1162
1163 <tbody>
1164 <row>
1165 <entry>Name</entry>
1166
1167 <entry>The name of the VM which will be created on the uCPE device.</entry>
1168 </row>
1169
1170 <row>
1171 <entry>VNF Type</entry>
1172
1173 <entry>The name of the onboarded VNF bundle.</entry>
1174 </row>
1175
1176 <row>
1177 <entry>VIM</entry>
1178
1179 <entry>Name and IP address of the device where the VNF will be
1180 instantiated.</entry>
1181 </row>
1182
1183 <row>
1184 <entry>License file</entry>
1185
1186 <entry>The FortiGate license file provided by Fortinet.</entry>
1187 </row>
1188
1189 <row>
1190 <entry>Configuration file(s)</entry>
1191
1192 <entry>SD-WAN example configuration files provided by Enea:
1193 <literal>FGVM080000136187_20180215_0708_sdwan1.conf</literal>
1194 <literal>FGVM080000136188_20180215_0708_sdwan2.conf</literal></entry>
1195 </row>
1196
1197 <row>
1198 <entry>Port1 - VNFMgr</entry>
1199
1200 <entry>Set as Dpdk type and connect it to the <literal>vnfmgrbr</literal> bridge.</entry>
1201 </row>
1202
1203 <row>
1204 <entry>Port2 - WAN</entry>
1205
1206 <entry>Set as Dpdk type and connect it to the <literal>wanbr</literal> bridge.</entry>
1207 </row>
1208
1209 <row>
1210 <entry>Port3 - LAN</entry>
1211
1212 <entry>Set as Dpdk type and connect it to the <literal>lanbr</literal> bridge.</entry>
1213 </row>
1214 </tbody>
1215 </tgroup>
1216 </table>
1217
1218 <para>To complete the branch-to-branch setup, configure the peer uCPE
1219 device in the same way as <literal>uCPE device 1</literal>. Make sure to
1220 use the <filename>FGVM080000136188_20180215_0708_sdwan2.conf</filename>
1221 configuration file for the second VNF instantiation.</para>
1222
1223 <para><emphasis role="bold">Testing the FortiGate SD-WAN
1224 VPN</emphasis></para>
1225
1226 <para>Once the full SD-WAN setup is in place a VPN connection needs to be
1227 established between the two uCPE devices. The Test Machines can be
1228 connected to the LAN interface on each uCPE device.</para>
1229
1230 <para>The connected Test Machine can be a laptop or a uCPE device that has
1231 one interface configured to get a dynamic IP from a DHCP server. The
1232 <command>dhclient &lt;interface&gt;</command> command can be used to
1233 request an IP address.</para>
1234
1235 <note>
1236 <para>The received IP must be in the 172.16.1.2 - 172.16.1.255 range for
1237 Test Machine-1 and in the 172.16.2.2 - 172.16.2.255 range for Test
1238 Machine-2.</para>
1239 </note>
1240
1241 <figure>
1242 <title>Overview: Testing Machines Setup</title>
1243
1244 <mediaobject>
1245 <imageobject>
1246 <imagedata align="center" fileref="images/test_machines.png"
1247 scale="45" />
1248 </imageobject>
1249 </mediaobject>
1250 </figure>
1251
1252 <para>uCPE device 1 should be able to ping Test uCPE device 2 in this
1253 setup over the WAN connection.</para>
1254
1255 <para>In the figure above and this example, the FortiGate VNF management
1256 interface is accessible through a dedicated Mgmt interface. The Mgmt IP
1257 address can be used from a web browser on the Lab Machine to access the
1258 Fortigate VNF Management Web UI.</para>
1259
1260 <note>
1261 <para>In this SD-WAN VPN setup example, bridges were used as connection
1262 points for the Fortigate VNF. It is possible to replace OVS-DPDK bridges
1263 with SR-IOV connection points.</para>
1264 </note>
1265 </section>
1266</chapter>
diff --git a/doc/book-enea-nfv-access-example-usecases/doc/images/clav_VNF_demo_SR-IOV.png b/doc/book-enea-nfv-access-example-usecases/doc/images/clav_VNF_demo_SR-IOV.png
index 03a618f..f3cbea2 100755
--- a/doc/book-enea-nfv-access-example-usecases/doc/images/clav_VNF_demo_SR-IOV.png
+++ b/doc/book-enea-nfv-access-example-usecases/doc/images/clav_VNF_demo_SR-IOV.png
Binary files differ
diff --git a/doc/book-enea-nfv-access-example-usecases/doc/images/clav_VNF_demo_SR-IOV.svg b/doc/book-enea-nfv-access-example-usecases/doc/images/clav_VNF_demo_SR-IOV.svg
index ac4200d..d871a16 100755
--- a/doc/book-enea-nfv-access-example-usecases/doc/images/clav_VNF_demo_SR-IOV.svg
+++ b/doc/book-enea-nfv-access-example-usecases/doc/images/clav_VNF_demo_SR-IOV.svg
@@ -16,7 +16,7 @@
16 height="268" 16 height="268"
17 viewBox="0 0 759 268" 17 viewBox="0 0 759 268"
18 sodipodi:docname="clav_VNF_demo_SR-IOV.svg" 18 sodipodi:docname="clav_VNF_demo_SR-IOV.svg"
19 inkscape:version="0.92.3 (2405546, 2018-03-11)"> 19 inkscape:version="0.48.4 r9939">
20 <metadata 20 <metadata
21 id="metadata8"> 21 id="metadata8">
22 <rdf:RDF> 22 <rdf:RDF>
@@ -40,506 +40,797 @@
40 guidetolerance="10" 40 guidetolerance="10"
41 inkscape:pageopacity="0" 41 inkscape:pageopacity="0"
42 inkscape:pageshadow="2" 42 inkscape:pageshadow="2"
43 inkscape:window-width="640" 43 inkscape:window-width="1618"
44 inkscape:window-height="480" 44 inkscape:window-height="1027"
45 id="namedview4" 45 id="namedview4"
46 showgrid="false" 46 showgrid="false"
47 inkscape:zoom="0.37417655" 47 inkscape:zoom="0.7483531"
48 inkscape:cx="379.5" 48 inkscape:cx="271.38037"
49 inkscape:cy="134" 49 inkscape:cy="183.04965"
50 inkscape:window-x="0" 50 inkscape:window-x="1358"
51 inkscape:window-y="0" 51 inkscape:window-y="-8"
52 inkscape:window-maximized="0" 52 inkscape:window-maximized="1"
53 inkscape:current-layer="svg2" /> 53 inkscape:current-layer="layer4" />
54 <image 54 <image
55 width="759" 55 width="759"
56 height="268" 56 height="268"
57 preserveAspectRatio="none" 57 preserveAspectRatio="none"
58 xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAvcAAAEMCAYAAAE3xalqAAAAAXNSR0IArs4c6QAAAARnQU1BAACx 58 xlink:href="data:image/png;base64,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 5h5aeN//5M3HqFOzfgv5SXMfTyjmvnvjxuKs7t0pigqo+V27iv4HHaR+RYTQ3CfiqaeeEscee2zO 6MQTT1RrTpIx91qHz7051kObSJWq1hIjjlsWm8/LUC/+62+xnm83oScZN9Mi7WXuId3zDLXoPMS1 jpbXunToNym2DAg3z2pTDuHmUdwMa84DodfaOawIMp+WgysKuLHXWccpXKUwl50ucw9pA64148/P uNbT8jP3EIZBYd/rZdLcx1Nsc08IIaT40NyTfCQVc09RURbNPSGEkEDQ3JN8hOaeyjfR3BNCCAkE zT3JR2juqXwTzT0hhJBA0NyTfITmnso30dwTQggJBM09yUdo7ql8E809IYSQQNDck3yE5p7KN9Hc E0IICUSq5h5vzl2xYoUYO3asfNPpsGHD1BKTB0asoKBAdO/eXZx22mnybaSA5p6kCs09lW+iuSeE EBKIVMz9HXfcIfr16ydq1ix8AQ906KGHioceeiglXXnllaJcuXJyOfhs06aNmDFjhmjboSnNPUkJ mnsq30RzTwghJBBhDcvZsGGD2Lp1q5pKjvXr14vdu3erqSLYc09SheaeyjfR3BNCCAkEx9yTfITm nso30dwTQggJBM09yUdo7ql8U4kx9++++66Y3rmzEEccQVFUEuraqpX6FZGSDs09yUdo7ql8E809 RVEJRXNPNDT3JB+huafyTTT3FEUlFM090dDck3yE5p7KN9HcUxSVUDT3Qvz+++/i66+/zint2bNH rX140NyTfITmnso30dxTFJVQNPdCrFu3TgwZMkRNRZ+uXbuKjRs3qqnwoLlPDE6ockmkEJp7Kt9E c09RVELR3NPca7S5//tP7qbZqZJk7l9//XXRq1cvNRV9+vfvL1555RU1VbKhuafyTTT3FEUlFM19 yTb3v/zyi7jgggtEt27dROnSpUVBQYFYtGiRzAuiTPUQTztqojT4furctaV10lEg/5cRI0aIRx55 RC2heNDc5y4091S+ieY+T7V90iRxXvv24sCqVUX5MmVElXLlRGsrvWnUKNf6Yairer38ShzgXMqp 3BTNfck094iZs2fPFo0aNZK/a6hly5birLPOUjVyl127dokaNWrE/i+odevW4pJLLlE1kofmPneh uafyTTT3PoIpRuBfaBllZ9mRBxxgOzi4qV6FCuK1Qw+NmzedWt2nj/zuimXLivv79hX/mzBBmv13 Ro4UP0+c6DpPGPIy94m2YbbUp3ZtuU4rund3LU+k960TJMwLPWodIN3qONVbfd/cNm1s+c42NNYy Uma5qUUdOsg6mMdZFqQtal2c5O+A5r5kmvsvvvhCtLHa64IFC2QPfLNmzcRbb70lzjvvPFUjt5k6 dapob8UkDM+ZOXOm6G7Fgh9++EGVJg/Nfe5Cc0/lm2juiyFtqKY0bepavn7YMFGmdGlZZ2mXLq51 0qExqqdtuXWAdytPl3Kp57445h5adtBBcv7K1gkUTpzc6mhdarU71G1ZpUpcmW5DMO7TVHp4gwZx 9aAg5t6rLRZHNPcly9xv3rxZ9tAvXLhQ5RTxySef5I25x/Fk586dUmD//v1i3rx50vDjaUPJQnOf u9DcU/kmmnsfJTKsQQzVuMaNZZ1h9evb8jFkBvlQaUu1y5eXnzpvtnVwNetDnapXl2WLLZPXo1at WF2ty60TiBoFBaKcOqFAzz2mte7u3TtumV7ab+nMtm3jvsNU5xo1bPN4bSs/01+cbTGrRQvRsGLF WF1T1a3/+aPRo23zvXjIIXJblFXbqJJjGzWwlmXWT6Qh9erJZYy39rFbOYRhUHp93IZEmeYe039o 3lxOD6pbN64uzX32KAnm/v333xeNrba8fPlylRNPvpl7L/70pz+J5tZvEf9vUGjucxeaeyrfRHPv o+KYewzZQDm0pl8/mbd14kRRrVw5OQ7+dY/hOldbB2bMg6EcZr42tG2rVRMbR4ywlZka1bChrJfs 8Aut78aPlycGWMZVHr3/e6dOlcN/zLxkzX0Y22KwZbC/GDvWVgbhRAflNS3DjhMVZ3lxe+4hDHcq sNYdy7nd48QF9zygHD39buVOcw+dYJ3MIA/raNYNYu79tM46uXHO6yea+/SY+7Vr14pBgwaJOnXq iPLWCW2TJk3Ehx9+KJ9Ic+6554p+VsyoZZ3El7N+I/Xr1xfjxo0T//d//6fmTkwy5n7Dhg2irnUy ecMNN6gcb0qKuddcccUVoqEVTzdt2qRyvKG5z11o7ql8E829j4KY+0TqZR2cv7UOynoe9EIjv1nl yrLn103otdXzf2PMqw3tqoMPjuW5qbjmfnqzZnL+o1xMZCIla+7TuS0+Hj06Nt9Xhx8eVx6GuYce 6NtXLgdXAnBSZJadpa584P8w8025mXtoTuvWMr+7te30yUkQc3+Yte/xv3tp5+TJcfP6ieY+fHOP J89gfz3//PMqp4hW1va+9NJLxeeff65yCm8AxRNqMA/M/n//+19V4o6XuddDUMBLL70kalrt6+67 71Y5/pQ0c6+56aabRIMGDcTbb7+tcuJJh7lP5wkgzX0RNPdUvonm3kdBzD2GZeBGVWjXlClx9Uxp 432+w8wFUabMPcZ8Y/5z2rVzLfdSsuY+ndtii3WQQzn0ZRrNPTRDDaUZaAyleXnoUJmHqxI/TZhg q2/Ky9xDelgU/td9U6cGMveZHpbzzTffyLHZPXr0ELWtbQqzCOORK8Ag4ZGI6J3ta52oXX311fLR j07czD16c7HN8X/jDbZuYD7U6Y0hcRZPPPGEnHbTlVdeKesk4uijj5Z1Yf4T4Wbu//CHP4imVvu4 7bbb5JNiHn30UVUSnJJq7jWrV6+WRvvVV18Vo62T5fE4oVeEbe7TfQJIc18EzT2Vb6K591EQc5+M obpOBWyMK9/mcyOmU5ky93ooDMayY/iNWx03JWvu07kt/Mz9AHVFwGvYUTLaY20jPBUJy7vyoIPk Nquvph+0DKPbPFqJzD30R3U/AoZi6XS2zD3M7NixY6VBhCHG9zlVtWpVaUpySRXUvnKqjHVihpsr YaiffPJJ1557GGXUxXZxsm3bNlGlShWpX3/9VeUWgu8sW7asmgoGtj+2O+b99ttvVa47TnN/0kkn 2f43jCeHMd29e7eqEYySbu6fe+45+ZSdisZ9Pkfgd2LhZu6jfAKYrLn/8ssvxZlnnimWLFmicqLL e++9J4YNGya35b59+1SuNzT3VL6J5t5HYZt76BJrPXSwHm0ZcdzkCXO7Y/Jk8e7IkXK8ePPKlaXM +TJl7qF5Bx4ol4Gn/eARlp+MGSN+nzJFfG6ZmNusbYF1aWcZTnOeZM09lK5t4Wfu8fQilOGG2rUD B8on3nxt1Qv6aEun/mkdSPT34T4AfM60DJRbXVN+5h5a0rFjbNlQtsy9Bk8VeeGFF6Q5xKMS8VIj vW6dOnVStXIDmC8YL73+1a12dZB1gnbaaaeJzz77TNVKPCwHz4LHvMuWLVM5haA+8tevX69yikjW 3Ovv6Gz9Xnbs2KFyvTHN/cknnyznhaFH+scff5T5qVDSzb3m5ZdfFtOmTYu1HZzcefXcR/UE0Mvc www//fTTYowV8/Hsf6wD1h/SJyC5wJ///OfYekO44oL9g5ulv//+e1WrEJp7Kt9Ec++jdJh7rbdG jBAnWsYJvbJ4FjyGcDStVElMbtJE3NenjzS4Zv1Mmnutvw0YIIcdoRcfT+HBDap48s8d1jo4x2+n Yu61wt4WfuYe+vCww+S+w5UD3BjbxPq+CQmefOMnDC/S34me+yBXPYKYe0g/ThPKtrn3YsuWLXKI zpw5c1ROtNm7d680XBhzjiENifAbc4+TGmz/f/3rX3Iaz4XH9LXXXiunnQQxbjBZ2JZYzoHWybY5 BMOPZG6oTQaae3dgzF988UXPYTlRPAF0mnvs2xkzZsi2hqtWWJZTMMjoEc8F4b0FXlcYq1nHGdzL 8NBDD8n/neaeyjfR3FMUlVC8odbf3KM3HDc84ubGZ555RhqIo446SpXGk8i4/fTTT2Lw4MFyGYcc cojYunWrKgkOzb0/YZp74DfmPmongEGG5aAtXnbZZaJPnz7yhl2Yewx5yQVwHxCuiGC748TnP//5 jyqJh+aeyjfR3FMUlVA09/7mHjz77LPSZEEYzoDhS154Gbc1a9bI+VEGQ5VIMNpe0Nz7k2lzH7UT QN5QWwTNPZVvormnKCqhaO6DmfsoQXPvT6bNPYjSCSDNfRE091S+ieaeoqiEormnudfQ3HsTxNxH CZr7ImjuqXwTzT1FUQlFc09zr6G594bmPnehuafyTTT3FEUlFM09zb2G5t4bmvvcheaeyjfR3FMU lVA09zT3Gpp7b2juc5e//OUvoqB8BYrKG5W3tGrVKtXCownNPUVlUTT3NPcamntvaO4JISQ4NPcU lUXR3Bea+3r16lmb44icUM2aNWnufaC5p7knhGQPmnuKyqJo7omG5t4bmHu86AkvlcoFNWzYkOae EJI1QjP3zerUEVM7dqQoKgl1bt1a/YpISYfmnhBCSBiEYu4JIYQUD5p7QgghYUBzTwghEYDmnhBC SBjQ3BNCSASguSeEEBIGNPeEEBIBaO4JIYSEAc09IYREAJp7QgghYUBzTwghEYDmnhBCSBjQ3BNC SASguSeEEBIGNPeEEBIBaO4JIYSEAc09IYREAJp7QgghYUBzTwghEYDmnhBCSBjQ3BNCSASguSeE EBIGNPeEEBIBaO4JIYSEAc09IYREAJp7QgghYUBzTwghEYDmnhBCSBjQ3BNCSASguSeEEBIGNPeE EBIBaO4JIYSEAc09IYREAJp7QgghYUBzTwghEYDmnhBCSBjQ3BNCSASguSeEEBIGNPeEEBIBaO4J IYSEAc09IYREAJp7QgghYUBzTwghEYDmnhBCSBjQ3BNCSASguSeEEBIGNPeEEBIBaO4JIYSEQczc jxw58tvRo0f/SFEURWVH11xzzev79+9/MNe1adOmJ/79739TFEVRWdKmTZvm/T88Jt8HG6GiaAAA AABJRU5ErkJggg== "
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
267ZUA0Rx55pJgCM+IA9cC3334bS5sgb//+/WrKHwT7TZs2idq1a6ucQvSy8al15ZVXit9++0088cQT
268or51phn1YI9nIZWx9iWVft1+++1qq4dD2oI9Ruc4y3YbwxHd5vML9s5hnXoZqXwX9JDlphtWrBhX
269XqFMGXFCy5a2PFwHwGcywX5umzbyojCWD6dvljm/s3pBgWhRpUrKzh7BaLx10CiwljPO2h7poE+f
270PrLvHXeIapx99lhnrEsFDDE1SNXZ46DRvXt3sX37djnthjPYm5Sx9iUerAb8gj3obG3TMTgjVLRt
27121acdtppasobnOm0b99eDBkyJObszeVu27bNdt0i2e0RlWB/3XXXiQufEFQGtHLlSrXVwyFtwR7C
272BU+Um9JlbvMF6bOHEIzxqS/IQsl+lxbKhsD9GXm628VUu2rVZFkywR7S87vlm9NbrQMZ8sK4QKu7
273UsLGLeA6g/20adNE06ZNxQsvvKByCkk12F9zzTVyO0zEgd6DRMEeB75hGN5qESTYA0wjuH7xxRdx
274ZW5cdNFF8qCk6+pgj26sZcuWyTQOAjjz0TDYU37KerCnoiOvYJ9JnMF+3759rgHSDG7maBwtJ2af
275Pdx2P+sszCvgJQr2mEZ/OECwN7/TlMnll18uKleuLPPRHePHhg0bxG233SYOPfRQOW322etlO7+D
276wZ7yE4M9FVMUg31YuF2gHTFihNi5c6eaKiJRn30vnIUqEOwPO+ww8fHHH9vkDMQAeThD8eMf//iH
277uPfee9VUIWawL1++vHjmmWfEUUcdpXIKKWnBHtvTLZ/yFoM9FVNJC/YA3Tl6JJDGGex//vln1+AY
278tBsHDBgwQMyfP19NufPUU0+Jxx57TE0VYQb7Z599Vi7feYHXDPZY35NPPlmOZjrmmGNk2kkuBPsq
279NerJ/9XU0Ol/lmVIO+snq/IVq4iBUxe6lplq2q6PGHPyCteyVDT3xvc911/ndx5UeNbY9uCxruVm
280HafM+qYY7KmYSmKwBzNnzhQ//vijmkrcjWMSZrB/6KGH4q5LaMxgHxaJgv3WrVtVKjy++eYblbLj
281FezLlisQzTsPtuWdv2a7aNDiIJlOFNTCVtjBHsL64/8x8w79w6WiVoOWMo1APnjaorj/05xGnY79
282p9jKE4nBnoqppAZ7MHfuXPH111/LdKaDPbptzIutTjIR7F9//XX56IlE/29xwbIxwmjjxo0qxz3Y
283n3H7p7ag5iazvNuhs+S0Vtly5V3rQZPPuldUq91Iphu27CrGn74yVmYuQ8937NIXRZkyZUVB+Uqi
284YpUaomrNBjJ/0BHnyTqVqtWWnz1GzLYtp1HrHrblONWi8xDRrs94Wx7qzr1xk0zrYN916B9E806D
285bHV0msGeSlklOdiD888/X4wcOVLceeedKqfwx+VFcYM9hp7eeOON4p133lE57qQz2E9WN+tlQ2ec
286cYZrsO8/6WxRo+4BcfmmML9bPoSzghOuek2mK1apKSaesSpWhsB92k0fyLQZ7HuNPkV06DcpVs+U
28709n/8YGttgMKZK4P0qdct9FW7tTC+6xA6fgfzGkd7J35zjqYNnXsZeti5U4x2FMxlfRg36xZM/mD
288McevpxN8Fy64YuRNIjLh7M877zx50xbWKV1g2Y0aNRLXX3+9ynF39t0OPVY0btMzLt8UlmVOTzrz
289LtHkwINFlRr1ZdnUc+6X+Qj6pUuXidUz5zOD/dRzH7DNZ8oZ7OHia9RrJt25FuY9665vZLlz3byE
290eufc+51M9590llyOLjOD/cFj5ohGrbrH5jHrtOl5mJh368cxLfrrzli5Uwz2VExRCPYtWrQQFStW
291DF2LFy9W35AY9FfjLtladaqKeg2q21S/gf0O1qCccNKMONWuXUt2aeAH40cm++xxl/GHH36opsID
292w0ndcAv2h8+5yTdgmuVw2Y0P7CUW3PmVnK7bpJ0taOu6A6f+UXQZckws39mNc9zSf4haDVvJ+uby
293ncG+TY9RYtC082PTTvmtu9ZBQ2eIZh0HyjTmWXj/T7EyM9jr8gseLxyGbNZhNw6VkqIQ7KMA3s+6
294wWrGTpWvED+8MQir34pf1tBxNVSpP5m+QJtJvC7QIqhp12tq3q3/jZXrPDMNOYP9gT1Hi34TzowF
295TJ3vDPamajdqI0Yct0ymm3UYIEYef1WsbPRJ18m+ej3tlHN9vLTkb3tk3SWP7Y2bxxnscaCq06St
296rR6DPZWyGOwLiVqwHz16tLjjjjtC1a233qqWnl28gv0hx1woAxs+4dhnXvJ/omqthqJ+s06y3Ax6
297SA+YfI447eb/iE4Dp8lpM9gvfmSXzMNdyToPMoM9hjgOOepPMvCeffcWWX/+bZtl2fBZS+UFWoye
298OWrRozIP5TiInL9mm5hzw7uiZv3mseWiTKf9hLoYddR12ExbvjPYQ6hrLjvywR6Py6WiKQQ5Er1g
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
3794447bHEBgpHD45G7du0aG1PufGyv8/6oIHK+ryQT5h48//zztnul/IQnoTmfy//kk0+qpbmDY6r5
380SExTeB8AHjWNcgzldN6voOVm7kGq+6g4YNnO70xVnTp1UkslUYHmPoJgjLz5w8HjKtHjYIKXcdx5
381551qSohnn33WNg901FFHiXXr1smdjGe24+bVxx9/XPbKIBg560PpNvcA/wsef2kuCz0XeAzlvHnz
382xJIlS+QrrQcMGBD3aDVTiXpaMCTJeTIAjRgxQq638xn2eMwbzDCuLODRnrq+VzBOZR+FBU5ecJLk
383lPPNgc8995xrPfyvJHrQ3JN0sWfPHhlXncMvTKHH2Al6kPEyKK93juDxl3hj63/+8x9ZP5krwSCs
384Y4pmx44d8t4yjMWHIYbJxtN+cEPo8ccfb1u+89HK7777rirxB3Vnzpzp+yQhnHBYBkteocaLHhOR
3856j5KFZr7/IbmPoJgPJ/bJU6nnGfxuMs96IuWYO7x2MtvvvnGlp8Jc6/BiUeQm19h8t977724YTlB
386eqZxcDrxxBNtlz2DCoHba9hQqvsoDLCP3L4rqJI5iJHMQXNPSOYwb8ZFjzsh+QTNfcTBS6lww8t1
387110nx8hdddVV4v7775evgU50Uw+MPowp6uNFHxgz+Pe//z2uxzqXuOSSS2LBGD0yqYxLRK/1xo0b
3885dv2ML4Qy1y+fLnsYX/jjTdSuoko1X1EiAnNPSGp8dBDD8kruUGGo2L4TZ06dWLHEnR04fHRhOQT
389NPckJ0Avvdn7HuSNs4TkEjT3hKTG7NmzY8eGZIShOuyAIfkIzT3JCjoY46ahLl26yPsALrroItmb
390ftttt8nedDyb33yspZbXOHhCchmae0JS46effpLvcMGY9dGjR8ubUDE+HfcKVKhQQTRs2FDmYYjm
3916tWrfce/E5Lr0NyTrJBsTwuC880336zmJiT/oLknhBASBjT3hBASAWjuCSGEhAHNPSGERACae0II
392IWFAc08IIRGA5p4QQkgY0NwTQkgEoLknhBASBjT3hBASAWjuCSGEhAHNPSGERACae0IIIWFAc08I
393IRGA5p4QQkgY0NwTQkgEoLknhBASBjT3hBASAWjuCSGEhAHNPSGERACae0IIIWFAc08IIRGA5p4Q
394QkgY0NwTQkgEoLknhBASBjT3hBASAWjuCSGEhAHNPSGERACae0IIIWFAc08IIRGA5p4QQkgY0NwT
395QkgEoLknhBASBjT3hBASAWjuCSGEhAHNPSGERACae0IIIWFAc08IIRGA5p4QQkgYFNvcv/TSS+KE
396zp3FjxMmUBQVUF+MHSv6W78bQjQ094QQQsIgFHN/WrduQhxxBEVRAbV90iSae2KD5p4QQkgY0NxT
397VBZEc0+c0NwTQggJA5p7isqCaO6LaNCggTjttNPEwoULI68hQ4bIz3RAc08IISQMaO4pKguiuS8C
3985n7Lli1qKtosXbqU5j4ANPeEEJI9aO4pKguiuS+C5r4Qmntv7rjjDnHQQQfljHr16qXWnBBCMg/N
399PUVlQTT3RdDcF0Jz783ll18uzj33XDUVbXbt2iXKly+vpgghJPPQ3FNUFkRzXwTNfSE0997Q3BNC
400SHBo7n0EE3Ze+/biwKpVRfkyZUSVcuVEayu9adQo1/oUFUQ090XQ3BdCc+8NzT0hhAQnI+YehrhU
401qVJioWWSnWVHHnCALEukehUqiNcOPTRu3nRrdZ8+8vsrli0r7u/bV/xvwgRpyt4ZOVL8PHGi6zxU
402evS+dTKl28Oj/fu71nGqd+3asv7cNm1iec72NrZRI9s8phZ16CDrYB5nWZB2q3UxTLxjfpr7Imju
403C6G594bmnhBCgpP1nnttkqY0bepavn7YMFGmdGlZZ2mXLq510qUxlvHD9y7v2tW1nMqslh10kNwf
404la2TLZhjtzpal1rGGXVbVqliy9ftDcZ9mkoPt8ylWUcriLn3ard+orkvImxzv3btWjFo0CBRp04d
405abKaNGkiPvzwQ1VaxIIFC+Q+/PTTT1WOPzT3waC5p7knhGSPjJj7rjVryoPoSjxBwFEWxCSNa9xY
4061hlWv74tH8NlkA+VtlTbCqj41HmzW7a01Yc6Va8uyxZbxq1HrVqxulrood84YoSoUVAgyqmTCvTc
407Y1rr7t6945brpjMOPNC27ErWcsxpyG2+dP1fqDeqYUM5fXSzZnHL0LpXXbFoVLGi2Dt1qq0snesW
408REPq1ZPzjLfahFs5hCFTetnO4VOmucf0H5o3l9OD6ta11YNo7jNDmOa+mxWLsF+ef/55lVPE3r17
409xb///W+xZs0a0a9fP1kPorkPH5p7mntCSPaIvLnHEAx9EF5jHZCRt3XiRFGtXDk5Bv51j+E6V3ft
410KufB0AwzXxvNttWqSRNvljmljbDbsAo/ndK6tZx3UpMmruXQhuHDbdOZ+L9+mzxZ1LROUFB31cEH
411x5VvGTdOlFUnNR8cdlgsP1Pb3E8YGlVgrQOWd7tLe4JwfwTK0dPvLHOae+gE64QEeX0c6x3E3Ptp
4123SGHxM0L0dwX4TT3mzZtktuutrU/fv/9d5VrZ926dbJOb5xoWzzxxBO27W7qyiuvlHV+++03WU+r
413fv36spzmPnxo7mnuCSHZIzLmPpF61aolvrVMp54HvcPIb1a5suzJdRN6YvX83xjzaqPpZmydKo65
414f6Bv39j3Y9gHeqdhnN3qamXq/8L9C6iL4U5fHn64ray72le39Oxpy8/UugWR3rY4Cflu/Hhb2Vlt
41528oyrI+Zr+Vm7qE56mQM//9+lRfE3B9mtZGPR4/21E7rZMo5LxTU3GM4yQknnCA6W3XrWtv3xx9/
416VCXRBga9prUt8czvuXPnJjTQbj33t912m9y+Y8eOVTlFbNu2TVSpUkXq119/VbmFVKhQQZQtW1ZN
417Jaa5umpDcx8+UTX399xzj9znpa3Ygas8Q4cOFe3atRPvvvuuqlEI2lWrVq2Sbh+A5p4Qkm0iY+4x
418zAI3qUK7pkyJq2dKm+7zHQYtiDJl7rX+ccgh4njLGLeyjAiWZcq80RPK1P8FXaHGr2M+nfdHNeTm
419GJchO5lctyCaoYzZQGM4zcvWgRp5uLrw04QJtvpaXuYeOlOdGGB9902dGsjchzUsB0NGnnzySTlc
420BD3KZdTVCVOnnHKKuP/++3NGh6qTSFMwVRgLD2N19913i927d3sOy5k9e7acZ9myZSqnkCFDhsj8
4219evXq5wi8s3cIy7rbadVUFAgT/QGDBggLrvsMvHzzz+r2nb0vFaAVznezJo1S9adgN+NQuc1tdr4
4229u3bVa47n332mahsnfij/i233BJZc1+1alV5UujGl19+KdffKZp7QkiukRNj7p26zvo+zIPx3tss
423k+RWx0uZNvdugnFs4zJ0JFP/l9Zo9f/B1GL4CNLomcf6Oetmet38tMdaRzxFCcu90tqGuDegvpp+
424MMEY/kTmHtInOBhCpNOZMPfg888/lwa+rbU/YECwfFNLliwRH3/8cc5oonWi7vwf0Jvfwdr2p512
425mvjuu+/k/51ozH2nTp3kfP/617/k9AUXXCCnr732WjntJNPmvkuXLnId77zzTrFv3z6VmxqJzP24
426cePEDz/8IPXNN9+IDRs2yLrVrHaK8nr16onvv/9ezVVIcc09uOaaa2Q+zOpHH32kcu0888wzsg62
427+5tvvinzwjD3OPG74oorRNeuXcXZZ59tM/d91dU73D/hhv5/br31Vjm9ceNGMX36dHnSjBNMpLVw
428A7YbqbQPQHNv57rrrhP9x58mlvxtD0XlhXofdrxYuXKlauHRJCfNPXSJZYwwHwST+qJlTmE6d0ye
429LN4dOVJcbh10m1tGFTLny5S5xyMW61pG408dO4q3R4yI3ZiKoTnaNKKHefOYMbb5MvF/aeEKCcw6
4305iut9IljfUxlct2C6J/DhsXWZ7BlbvA50zogu9XV8jP30BJrn+nlQpky927s3LlTBhE8/aVWrVrS
431NOcCTz31lOyhH2O1J5i/RMY3kbnHMCQYJfzv2kQeddRRqjSeTJt7/F89evSItRWovfX7xlWHPXv2
432qFrBSGTuExl0fXPwJKtNmYRh7oG+vwF67LHHVG4huHKAfOzDrVu3qtzUzD2GoJ100kmitRoiB2F/
4334hjj7LnH0Cz0wmNfO9vOqlWr5LzYB07S3T4Azb0dae4nnC4ufEJQVF6oz+jZNPdQOsy91luWcT6x
434VSvZ04rn6cMwN61USUxu0kTc16ePNJ5m/UyZe9y4ek/v3vL/Qm94BWu9IAzPOa5FC/msfLf5tNL5
435f5l6Y/hwOV8y82Zq3YIIw4T0+qPn3vl0H6eCmHtIP0oTyqa5LwkkMvfg2Wefje0LGL/9+/erkngS
436mTcMXzn55JNjgjnEMo855phYHu4VSITbsByY+O7du8te4YZWzJg2bZrsdU6WVM39geqpXDNnzlQ5
437hYRl7sFXX30Vu5p00UUXybyp1m8N0xgm5STV48kbb7whKlasKHvX8X1PP/20zHcbloNhWfj+jtbJ
438uGbz5s1yXtyj4gbNfeahuafyTTT3FEW5iua+CD9zHyW8xtzD0Omn8mB8+rBhw+RVCzyhJyhBzf2O
439HTvkDaAYpgWzinIMU3FeHdHzJiMvcw/w5CIMGTPrn3POOarUTrLHk1deeUVenbnrrrvk9OLFi8VD
440Dz0k08BrzP3y5cvlepx66qnypK9ly5Zym+DA5gbNfeahuafyTTT3FEW5iua+iHww927A5I0fP172
441bGMYiR9Bb6iF0Ks9ePBgcdNNN3k+LtTtxMALv557Ez0Maf78+SonnqDHEwz5gal/5JFHVI47iW6o
442xZUSrA9u/MXnCy+8oEriobnPPKma+0UP7xBjT71RtOs9TtSoe4AoV76iKChfSdRq2Ep07D9FTJh/
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
4756MQTT1RrTpIx91qHz7051kObSJWq1hIjjlsWm8/LUC/+62+xnm83oScZN9Mi7WXuId3zDLXoPMS1
476jpbXunToNym2DAg3z2pTDuHmUdwMa84DodfaOawIMp+WgysKuLHXWccpXKUwl50ucw9pA64148/P
477uNbT8jP3EIZBYd/rZdLcx1Nsc08IIaT40NyTfCQVc09RURbNPSGEkEDQ3JN8hOaeyjfR3BNCCAkE
478zT3JR2juqXwTzT0hhJBA0NyTfITmnso30dwTQggJBM09yUdo7ql8E809IYSQQNDck3yE5p7KN9Hc
479E0IICUSq5h5vzl2xYoUYO3asfNPpsGHD1BKTB0asoKBAdO/eXZx22mnybaSA5p6kCs09lW+iuSeE
480EBKIVMz9HXfcIfr16ydq1ix8AQ906KGHioceeiglXXnllaJcuXJyOfhs06aNmDFjhmjboSnNPUkJ
481mnsq30RzTwghJBBhDcvZsGGD2Lp1q5pKjvXr14vdu3erqSLYc09SheaeyjfR3BNCCAkEx9yTfITm
482nso30dwTQggJBM09yUdo7ql8U4kx9++++66Y3rmzEEccQVFUEuraqpX6FZGSDs09yUdo7ql8E809
483RVEJRXNPNDT3JB+huafyTTT3FEUlFM090dDck3yE5p7KN9HcUxSVUDT3Qvz+++/i66+/zint2bNH
484rX140NyTfITmnso30dxTFJVQNPdCrFu3TgwZMkRNRZ+uXbuKjRs3qqnwoLlPDE6ockmkEJp7Kt9E
485c09RVELR3NPca7S5//tP7qbZqZJk7l9//XXRq1cvNRV9+vfvL1555RU1VbKhuafyTTT3FEUlFM19
486yTb3v/zyi7jgggtEt27dROnSpUVBQYFYtGiRzAuiTPUQTztqojT4furctaV10lEg/5cRI0aIRx55
487RC2heNDc5y4091S+ieY+T7V90iRxXvv24sCqVUX5MmVElXLlRGsrvWnUKNf6Yairer38ShzgXMqp
4883BTNfck094iZs2fPFo0aNZK/a6hly5birLPOUjVyl127dokaNWrE/i+odevW4pJLLlE1kofmPneh
489uafyTTT3PoIpRuBfaBllZ9mRBxxgOzi4qV6FCuK1Qw+NmzedWt2nj/zuimXLivv79hX/mzBBmv13
490Ro4UP0+c6DpPGPIy94m2YbbUp3ZtuU4rund3LU+k960TJMwLPWodIN3qONVbfd/cNm1s+c42NNYy
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
523Yu61wt4WfuYe+vCww+S+w5UD3BjbxPq+CQmefOMnDC/S34me+yBXPYKYe0g/ThPKtrn3YsuWLXKI
524zpw5c1ROtNm7d680XBhzjiENifAbc4+TGmz/f/3rX3Iaz4XH9LXXXiunnQQxbjBZ2JZYzoHWybY5
525BMOPZG6oTQaae3dgzF988UXPYTlRPAF0mnvs2xkzZsi2hqtWWJZTMMjoEc8F4b0FXlcYq1nHGdzL
5268NBDD8n/neaeyjfR3FMUlVC8odbf3KM3HDc84ubGZ555RhqIo446SpXGk8i4/fTTT2Lw4MFyGYcc
527cojYunWrKgkOzb0/YZp74DfmPmongEGG5aAtXnbZZaJPnz7yhl2Yewx5yQVwHxCuiGC748TnP//5
528jyqJh+aeyjfR3FMUlVA09/7mHjz77LPSZEEYzoDhS154Gbc1a9bI+VEGQ5VIMNpe0Nz7k2lzH7UT
529QN5QWwTNPZVvormnKCqhaO6DmfsoQXPvT6bNPYjSCSDNfRE091S+ieaeoqiEormnudfQ3HsTxNxH
530CZr7ImjuqXwTzT1FUQlFc09zr6G594bmPnehuafyTTT3FEUlFM09zb2G5t4bmvvcheaeyjfR3FMU
531lVA09zT3Gpp7b2juc5e//OUvoqB8BYrKG5W3tGrVKtXCownNPUVlUTT3NPcamntvaO4JISQ4NPcU
532lUXR3Bea+3r16lmb44icUM2aNWnufaC5p7knhGQPmnuKyqJo7omG5t4bmHu86AkvlcoFNWzYkOae
533EJI1QjP3zerUEVM7dqQoKgl1bt1a/YpISYfmnhBCSBiEYu4JIYQUD5p7QgghYUBzTwghEYDmnhBC
534SBjQ3BNCSASguSeEEBIGNPeEEBIBaO4JIYSEAc09IYREAJp7QgghYUBzTwghEYDmnhBCSBjQ3BNC
535SASguSeEEBIGNPeEEBIBaO4JIYSEAc09IYREAJp7QgghYUBzTwghEYDmnhBCSBjQ3BNCSASguSeE
536EBIGNPeEEBIBaO4JIYSEAc09IYREAJp7QgghYUBzTwghEYDmnhBCSBjQ3BNCSASguSeEEBIGNPeE
537EBIBaO4JIYSEAc09IYREAJp7QgghYUBzTwghEYDmnhBCSBjQ3BNCSASguSeEEBIGNPeEEBIBaO4J
538IYSEAc09IYREAJp7QgghYUBzTwghEYDmnhBCSBjQ3BNCSASguSeEEBIGNPeEEBIBaO4JIYSEQczc
539jxw58tvRo0f/SFEURWVH11xzzev79+9/MNe1adOmJ/79739TFEVRWdKmTZvm/T88Jt8HG6GiaAAA
540AABJRU5ErkJggg==
541"
542 id="image10" 59 id="image10"
543 x="0" 60 x="-1.3362657"
544 y="0" /> 61 y="-344.75705" />
62 <g
63 inkscape:groupmode="layer"
64 id="layer1"
65 inkscape:label="Background example"
66 style="display:inline" />
67 <g
68 inkscape:groupmode="layer"
69 id="layer2"
70 inkscape:label="Boxes" />
71 <g
72 inkscape:groupmode="layer"
73 id="layer3"
74 inkscape:label="Text">
75 <text
76 xml:space="preserve"
77 style="font-size:28px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
78 x="125.60915"
79 y="131.7007"
80 id="text4089"
81 sodipodi:linespacing="125%"><tspan
82 sodipodi:role="line"
83 id="tspan4091"
84 x="125.60915"
85 y="131.7007" /></text>
86 </g>
87 <g
88 inkscape:groupmode="layer"
89 id="layer4"
90 inkscape:label="Connectors">
91 <g
92 id="g3977"
93 inkscape:export-filename="L:\docu_work\el_releases-nfv-access\doc\book-enea-nfv-access-example-usecases\doc\images\clav_VNF_demo_SR-IOV.png"
94 inkscape:export-xdpi="90"
95 inkscape:export-ydpi="90">
96 <rect
97 ry="42.210846"
98 y="42.636166"
99 x="2.236867"
100 height="221.06747"
101 width="350.00015"
102 id="rect3769-1-7"
103 style="fill:#ffffff;stroke:#000000;stroke-width:1.38062918;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
104 <rect
105 ry="3.4252038"
106 y="130.25967"
107 x="352.15399"
108 height="44.409542"
109 width="14.173258"
110 id="rect3833"
111 style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-opacity:1" />
112 <g
113 style="stroke-width:1.5;stroke-miterlimit:4;stroke-dasharray:none"
114 transform="matrix(1.000158,0,0,0.84703817,434.28597,280.01293)"
115 id="g3823">
116 <g
117 style="stroke-width:1.5;stroke-miterlimit:4;stroke-dasharray:none"
118 id="g3820">
119 <rect
120 ry="49.833462"
121 y="-279.93384"
122 x="-26.178505"
123 height="260.9888"
124 width="349.94489"
125 id="rect3769-1"
126 style="fill:#ffffff;stroke:#000000;stroke-width:1.5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
127 </g>
128 </g>
129 <rect
130 ry="3.4252038"
131 y="130.25967"
132 x="393.89499"
133 height="44.409542"
134 width="14.173258"
135 id="rect3833-4"
136 style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-opacity:1" />
137 <rect
138 ry="11.358274"
139 y="86.635124"
140 x="41.039684"
141 height="56.692974"
142 width="205.9847"
143 id="rect3924"
144 style="fill:#9b00a0;fill-opacity:0.47843137;stroke:#000000;stroke-opacity:1" />
145 <rect
146 ry="11.358274"
147 y="165.24934"
148 x="40.567242"
149 height="56.692974"
150 width="205.9847"
151 id="rect3924-4"
152 style="fill:#009600;fill-opacity:0.47843137;stroke:#000000;stroke-opacity:1" />
153 <rect
154 ry="11.358274"
155 y="92.776878"
156 x="289.28433"
157 height="44.881969"
158 width="43.937084"
159 id="rect3944"
160 style="fill:#ffffff;stroke:#000000;stroke-opacity:1" />
161 <rect
162 ry="11.358274"
163 y="171.87932"
164 x="289.28433"
165 height="44.881969"
166 width="43.937084"
167 id="rect3944-8"
168 style="fill:#ffffff;stroke:#000000;stroke-opacity:1" />
169 <rect
170 ry="11.358274"
171 y="171.87932"
172 x="426.22141"
173 height="44.881969"
174 width="43.937084"
175 id="rect3944-8-8"
176 style="fill:#ffffff;stroke:#000000;stroke-opacity:1" />
177 <rect
178 ry="11.358274"
179 y="92.540672"
180 x="426.43524"
181 height="44.881969"
182 width="43.937084"
183 id="rect3944-8-8-2"
184 style="fill:#ffffff;stroke:#000000;stroke-opacity:1" />
185 <rect
186 ry="15.921416"
187 y="87.776505"
188 x="539.06091"
189 height="130.00502"
190 width="177.49666"
191 id="rect4000"
192 style="fill:#99ccff;fill-opacity:1;stroke:#000000;stroke-width:1.18334258;stroke-opacity:1" />
193 <text
194 sodipodi:linespacing="125%"
195 id="text4022"
196 y="123.22617"
197 x="298.46429"
198 style="font-size:22px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
199 xml:space="preserve"><tspan
200 y="123.22617"
201 x="298.46429"
202 id="tspan4024"
203 sodipodi:role="line">vf1</tspan></text>
204 <text
205 sodipodi:linespacing="125%"
206 id="text4022-4"
207 y="122.98996"
208 x="435.6152"
209 style="font-size:22px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
210 xml:space="preserve"><tspan
211 y="122.98996"
212 x="435.6152"
213 id="tspan4024-5"
214 sodipodi:role="line">vf1</tspan></text>
215 <text
216 sodipodi:linespacing="125%"
217 id="text4022-5"
218 y="202.3286"
219 x="297.02484"
220 style="font-size:22px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
221 xml:space="preserve"><tspan
222 y="202.3286"
223 x="297.02484"
224 id="tspan4024-1"
225 sodipodi:role="line">vf2</tspan></text>
226 <text
227 sodipodi:linespacing="125%"
228 id="text4022-5-7"
229 y="202.3286"
230 x="433.96191"
231 style="font-size:22px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
232 xml:space="preserve"><tspan
233 y="202.3286"
234 x="433.96191"
235 id="tspan4024-1-1"
236 sodipodi:role="line">vf2</tspan></text>
237 <text
238 sodipodi:linespacing="125%"
239 id="text4093"
240 y="145.47141"
241 x="626.93427"
242 style="font-size:28px;font-style:normal;font-weight:normal;text-align:center;line-height:125%;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
243 xml:space="preserve"><tspan
244 y="145.47141"
245 x="630.81708"
246 id="tspan4095"
247 sodipodi:role="line">Clavister </tspan><tspan
248 id="tspan4097"
249 y="180.47141"
250 x="626.93427"
251 sodipodi:role="line">VNF</tspan></text>
252 <text
253 sodipodi:linespacing="125%"
254 id="text4099"
255 y="126.32041"
256 x="355.42841"
257 style="font-size:24px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
258 xml:space="preserve"><tspan
259 y="126.32041"
260 x="355.42841"
261 id="tspan4101"
262 sodipodi:role="line">PHY</tspan></text>
263 <text
264 sodipodi:linespacing="125%"
265 id="text4103"
266 y="122.85564"
267 x="60.602833"
268 style="font-size:22px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
269 xml:space="preserve"><tspan
270 y="122.85564"
271 x="60.602833"
272 id="tspan4105"
273 sodipodi:role="line">iPerf Server VNF</tspan></text>
274 <text
275 sodipodi:linespacing="125%"
276 id="text4103-1"
277 y="201.46985"
278 x="64.427261"
279 style="font-size:22px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
280 xml:space="preserve"><tspan
281 y="201.46985"
282 x="64.427261"
283 id="tspan4105-5"
284 sodipodi:role="line">iPerf Client VNF</tspan></text>
285 <g
286 transform="translate(434.28697,17.371479)"
287 id="g4470">
288 <g
289 id="g4158">
290 <path
291 inkscape:connector-curvature="3"
292 inkscape:connector-type="polyline"
293 id="path4134"
294 d="m -183.20568,96.289613 33.74841,0"
295 style="fill:none;stroke:#000000;stroke-width:1.0101651px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
296 <path
297 transform="matrix(-0.00246431,0.39405653,-0.39405653,-0.00246431,-102.91459,164.58931)"
298 inkscape:transform-center-y="0.0087948697"
299 inkscape:transform-center-x="-0.86584925"
300 d="m -164.17357,123.7871 -8.56343,0.10157 -8.56343,0.10157 4.19376,-7.46693 4.19375,-7.46693 4.36967,7.36536 z"
301 inkscape:randomized="0"
302 inkscape:rounded="-3.469447e-018"
303 inkscape:flatsided="false"
304 sodipodi:arg2="1.5589364"
305 sodipodi:arg1="0.51173884"
306 sodipodi:r2="4.9444442"
307 sodipodi:r1="9.8888884"
308 sodipodi:cy="118.94457"
309 sodipodi:cx="-172.79564"
310 sodipodi:sides="3"
311 id="path4138"
312 style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1"
313 sodipodi:type="star" />
314 <path
315 transform="matrix(0.00246431,0.39405653,0.39405653,-0.00246431,-229.19624,164.57669)"
316 inkscape:transform-center-y="0.0087948697"
317 inkscape:transform-center-x="0.86585034"
318 d="m -164.17357,123.7871 -8.56343,0.10157 -8.56343,0.10157 4.19376,-7.46693 4.19375,-7.46693 4.36967,7.36536 z"
319 inkscape:randomized="0"
320 inkscape:rounded="-3.469447e-018"
321 inkscape:flatsided="false"
322 sodipodi:arg2="1.5589364"
323 sodipodi:arg1="0.51173884"
324 sodipodi:r2="4.9444442"
325 sodipodi:r1="9.8888884"
326 sodipodi:cy="118.94457"
327 sodipodi:cx="-172.79564"
328 sodipodi:sides="3"
329 id="path4138-2"
330 style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1"
331 sodipodi:type="star" />
332 </g>
333 </g>
334 <g
335 transform="matrix(1.0227249,0,0,1,438.56003,17.371479)"
336 id="g4992">
337 <g
338 id="g4860">
339 <g
340 id="g4470-9"
341 transform="translate(-1.1890358,84.861131)">
342 <g
343 id="g4158-1">
344 <path
345 inkscape:connector-curvature="3"
346 inkscape:connector-type="polyline"
347 id="path4134-3"
348 d="m -183.28655,96.289613 32.99852,0"
349 style="fill:none;stroke:#000000;stroke-width:1.0101651px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
350 <path
351 transform="matrix(-0.00246431,0.39405653,-0.39405653,-0.00246431,-102.91459,164.58931)"
352 inkscape:transform-center-y="0.0087948697"
353 inkscape:transform-center-x="-0.86584925"
354 d="m -164.17357,123.7871 -8.56343,0.10157 -8.56343,0.10157 4.19376,-7.46693 4.19375,-7.46693 4.36967,7.36536 z"
355 inkscape:randomized="0"
356 inkscape:rounded="-3.469447e-018"
357 inkscape:flatsided="false"
358 sodipodi:arg2="1.5589364"
359 sodipodi:arg1="0.51173884"
360 sodipodi:r2="4.9444442"
361 sodipodi:r1="9.8888884"
362 sodipodi:cy="118.94457"
363 sodipodi:cx="-172.79564"
364 sodipodi:sides="3"
365 id="path4138-5"
366 style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1"
367 sodipodi:type="star" />
368 <path
369 transform="matrix(0.00246431,0.39405653,0.39405653,-0.00246431,-229.19624,164.57669)"
370 inkscape:transform-center-y="0.0087948697"
371 inkscape:transform-center-x="0.86585034"
372 d="m -164.17357,123.7871 -8.56343,0.10157 -8.56343,0.10157 4.19376,-7.46693 4.19375,-7.46693 4.36967,7.36536 z"
373 inkscape:randomized="0"
374 inkscape:rounded="-3.469447e-018"
375 inkscape:flatsided="false"
376 sodipodi:arg2="1.5589364"
377 sodipodi:arg1="0.51173884"
378 sodipodi:r2="4.9444442"
379 sodipodi:r1="9.8888884"
380 sodipodi:cy="118.94457"
381 sodipodi:cx="-172.79564"
382 sodipodi:sides="3"
383 id="path4138-2-9"
384 style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1"
385 sodipodi:type="star" />
386 </g>
387 </g>
388 </g>
389 </g>
390 <g
391 transform="matrix(1.1500055,0,0,1,441.76696,17.371479)"
392 id="g5036">
393 <g
394 transform="matrix(0.56818594,0,0,0.56818594,41.224298,32.896174)"
395 id="g4992-6">
396 <g
397 id="g4860-0">
398 <g
399 transform="translate(-1.1890358,84.861131)"
400 id="g4470-9-7">
401 <g
402 id="g4158-1-1">
403 <path
404 style="fill:none;stroke:#000000;stroke-width:1.0101651px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
405 d="m -183.20568,96.289613 33.74841,0"
406 id="path4134-3-7"
407 inkscape:connector-type="polyline"
408 inkscape:connector-curvature="3" />
409 <path
410 sodipodi:type="star"
411 style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1"
412 id="path4138-5-7"
413 sodipodi:sides="3"
414 sodipodi:cx="-172.79564"
415 sodipodi:cy="118.94457"
416 sodipodi:r1="9.8888884"
417 sodipodi:r2="4.9444442"
418 sodipodi:arg1="0.51173884"
419 sodipodi:arg2="1.5589364"
420 inkscape:flatsided="false"
421 inkscape:rounded="-3.469447e-018"
422 inkscape:randomized="0"
423 d="m -164.17357,123.7871 -8.56343,0.10157 -8.56343,0.10157 4.19376,-7.46693 4.19375,-7.46693 4.36967,7.36536 z"
424 inkscape:transform-center-x="-0.86584925"
425 inkscape:transform-center-y="0.0087948697"
426 transform="matrix(-0.00246431,0.39405653,-0.39405653,-0.00246431,-102.91459,164.58931)" />
427 <path
428 sodipodi:type="star"
429 style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1"
430 id="path4138-2-9-7"
431 sodipodi:sides="3"
432 sodipodi:cx="-172.79564"
433 sodipodi:cy="118.94457"
434 sodipodi:r1="9.8888884"
435 sodipodi:r2="4.9444442"
436 sodipodi:arg1="0.51173884"
437 sodipodi:arg2="1.5589364"
438 inkscape:flatsided="false"
439 inkscape:rounded="-3.469447e-018"
440 inkscape:randomized="0"
441 d="m -164.17357,123.7871 -8.56343,0.10157 -8.56343,0.10157 4.19376,-7.46693 4.19375,-7.46693 4.36967,7.36536 z"
442 inkscape:transform-center-x="0.86585034"
443 inkscape:transform-center-y="0.0087948697"
444 transform="matrix(0.00246431,0.39405653,0.39405653,-0.00246431,-229.19624,164.57669)" />
445 </g>
446 </g>
447 </g>
448 </g>
449 </g>
450 <g
451 transform="translate(434.28697,17.371479)"
452 id="g5157">
453 <g
454 transform="matrix(-1,0,0,1,-108.61238,1.854964)"
455 id="g5105-5">
456 <g
457 id="g5036-7-0"
458 transform="matrix(0.74935909,-0.66216385,0.66216385,0.74935909,-65.891329,-33.307783)">
459 <g
460 transform="matrix(0.56818594,0,0,0.56818594,41.224298,32.896174)"
461 id="g4992-6-3-9">
462 <g
463 id="g4860-0-3-4">
464 <g
465 transform="translate(-1.1890358,84.861131)"
466 id="g4470-9-7-5-7">
467 <g
468 id="g4158-1-1-9-8">
469 <path
470 style="fill:none;stroke:#000000;stroke-width:1.0101651px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
471 d="m -183.20568,96.289613 33.74841,0"
472 id="path4134-3-7-9-3"
473 inkscape:connector-type="polyline"
474 inkscape:connector-curvature="3" />
475 <path
476 sodipodi:type="star"
477 style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1"
478 id="path4138-5-7-8-5"
479 sodipodi:sides="3"
480 sodipodi:cx="-172.79564"
481 sodipodi:cy="118.94457"
482 sodipodi:r1="9.8888884"
483 sodipodi:r2="4.9444442"
484 sodipodi:arg1="0.51173884"
485 sodipodi:arg2="1.5589364"
486 inkscape:flatsided="false"
487 inkscape:rounded="-3.469447e-018"
488 inkscape:randomized="0"
489 d="m -164.17357,123.7871 -8.56343,0.10157 -8.56343,0.10157 4.19376,-7.46693 4.19375,-7.46693 4.36967,7.36536 z"
490 inkscape:transform-center-x="-0.86584925"
491 inkscape:transform-center-y="0.0087948697"
492 transform="matrix(-0.00246431,0.39405653,-0.39405653,-0.00246431,-102.91459,164.58931)" />
493 <path
494 sodipodi:type="star"
495 style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1"
496 id="path4138-2-9-7-1-1"
497 sodipodi:sides="3"
498 sodipodi:cx="-172.79564"
499 sodipodi:cy="118.94457"
500 sodipodi:r1="9.8888884"
501 sodipodi:r2="4.9444442"
502 sodipodi:arg1="0.51173884"
503 sodipodi:arg2="1.5589364"
504 inkscape:flatsided="false"
505 inkscape:rounded="-3.469447e-018"
506 inkscape:randomized="0"
507 d="m -164.17357,123.7871 -8.56343,0.10157 -8.56343,0.10157 4.19376,-7.46693 4.19375,-7.46693 4.36967,7.36536 z"
508 inkscape:transform-center-x="0.86585034"
509 inkscape:transform-center-y="0.0087948697"
510 transform="matrix(0.00246431,0.39405653,0.39405653,-0.00246431,-229.19624,164.57669)" />
511 </g>
512 </g>
513 </g>
514 </g>
515 </g>
516 </g>
517 </g>
518 <g
519 transform="translate(434.28697,17.371479)"
520 id="g5417">
521 <g
522 id="g5294">
523 <g
524 id="g5213">
525 <g
526 transform="matrix(-1,0,0,1,-184.32212,56.976397)"
527 id="g5157-2">
528 <g
529 id="g5105-5-0"
530 transform="matrix(-1,0,0,1,-108.61238,1.854964)">
531 <g
532 transform="matrix(0.74935909,-0.66216385,0.66216385,0.74935909,-65.891329,-33.307783)"
533 id="g5036-7-0-1">
534 <g
535 id="g4992-6-3-9-6"
536 transform="matrix(0.56818594,0,0,0.56818594,41.224298,32.896174)">
537 <g
538 id="g4860-0-3-4-4">
539 <g
540 id="g4470-9-7-5-7-0"
541 transform="translate(-1.1890358,84.861131)">
542 <g
543 id="g4158-1-1-9-8-6">
544 <path
545 inkscape:connector-curvature="3"
546 inkscape:connector-type="polyline"
547 id="path4134-3-7-9-3-1"
548 d="m -183.20568,96.289613 33.74841,0"
549 style="fill:none;stroke:#000000;stroke-width:1.0101651px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
550 <path
551 transform="matrix(-0.00246431,0.39405653,-0.39405653,-0.00246431,-102.91459,164.58931)"
552 inkscape:transform-center-y="0.0087948697"
553 inkscape:transform-center-x="-0.86584925"
554 d="m -164.17357,123.7871 -8.56343,0.10157 -8.56343,0.10157 4.19376,-7.46693 4.19375,-7.46693 4.36967,7.36536 z"
555 inkscape:randomized="0"
556 inkscape:rounded="-3.469447e-018"
557 inkscape:flatsided="false"
558 sodipodi:arg2="1.5589364"
559 sodipodi:arg1="0.51173884"
560 sodipodi:r2="4.9444442"
561 sodipodi:r1="9.8888884"
562 sodipodi:cy="118.94457"
563 sodipodi:cx="-172.79564"
564 sodipodi:sides="3"
565 id="path4138-5-7-8-5-8"
566 style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1"
567 sodipodi:type="star" />
568 <path
569 transform="matrix(0.00246431,0.39405653,0.39405653,-0.00246431,-229.19624,164.57669)"
570 inkscape:transform-center-y="0.0087948697"
571 inkscape:transform-center-x="0.86585034"
572 d="m -164.17357,123.7871 -8.56343,0.10157 -8.56343,0.10157 4.19376,-7.46693 4.19375,-7.46693 4.36967,7.36536 z"
573 inkscape:randomized="0"
574 inkscape:rounded="-3.469447e-018"
575 inkscape:flatsided="false"
576 sodipodi:arg2="1.5589364"
577 sodipodi:arg1="0.51173884"
578 sodipodi:r2="4.9444442"
579 sodipodi:r1="9.8888884"
580 sodipodi:cy="118.94457"
581 sodipodi:cx="-172.79564"
582 sodipodi:sides="3"
583 id="path4138-2-9-7-1-1-9"
584 style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1"
585 sodipodi:type="star" />
586 </g>
587 </g>
588 </g>
589 </g>
590 </g>
591 </g>
592 </g>
593 </g>
594 </g>
595 </g>
596 <path
597 transform="matrix(0.85199046,0.37370927,-0.55406089,0.57466018,540.63235,68.998528)"
598 inkscape:transform-center-y="0.0072993862"
599 inkscape:transform-center-x="1.7053441"
600 d="m 40.984338,188.62975 2.666533,-5.20095 2.666534,-5.20095 3.170887,4.90976 3.170888,4.90976 -5.837422,0.29119 z"
601 inkscape:randomized="0"
602 inkscape:rounded="-3.469447e-018"
603 inkscape:flatsided="false"
604 sodipodi:arg2="3.6153497"
605 sodipodi:arg1="2.5681521"
606 sodipodi:r2="3.3744271"
607 sodipodi:r1="6.7488542"
608 sodipodi:cy="184.96832"
609 sodipodi:cx="46.653641"
610 sodipodi:sides="3"
611 id="path6622"
612 style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1"
613 sodipodi:type="star" />
614 <path
615 transform="matrix(0.85199046,0.37370927,-0.55406089,0.57466018,541.2244,-9.337894)"
616 inkscape:transform-center-y="0.0072993862"
617 inkscape:transform-center-x="1.7053441"
618 d="m 40.984338,188.62975 2.666533,-5.20095 2.666534,-5.20095 3.170887,4.90976 3.170888,4.90976 -5.837422,0.29119 z"
619 inkscape:randomized="0"
620 inkscape:rounded="-3.469447e-018"
621 inkscape:flatsided="false"
622 sodipodi:arg2="3.6153497"
623 sodipodi:arg1="2.5681521"
624 sodipodi:r2="3.3744271"
625 sodipodi:r1="6.7488542"
626 sodipodi:cy="184.96832"
627 sodipodi:cx="46.653641"
628 sodipodi:sides="3"
629 id="path6622-4"
630 style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1"
631 sodipodi:type="star" />
632 <path
633 transform="matrix(-0.85199046,0.37370927,0.55406089,0.57466018,468.15425,68.965588)"
634 inkscape:transform-center-y="0.0072993862"
635 inkscape:transform-center-x="-1.7053441"
636 d="m 40.984338,188.62975 2.666533,-5.20095 2.666534,-5.20095 3.170887,4.90976 3.170888,4.90976 -5.837422,0.29119 z"
637 inkscape:randomized="0"
638 inkscape:rounded="-3.469447e-018"
639 inkscape:flatsided="false"
640 sodipodi:arg2="3.6153497"
641 sodipodi:arg1="2.5681521"
642 sodipodi:r2="3.3744271"
643 sodipodi:r1="6.7488542"
644 sodipodi:cy="184.96832"
645 sodipodi:cx="46.653641"
646 sodipodi:sides="3"
647 id="path6622-44"
648 style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1"
649 sodipodi:type="star" />
650 <path
651 transform="matrix(-0.85199046,0.37370927,0.55406089,0.57466018,468.11721,-9.371469)"
652 inkscape:transform-center-y="0.0072993862"
653 inkscape:transform-center-x="-1.7053441"
654 d="m 40.984338,188.62975 2.666533,-5.20095 2.666534,-5.20095 3.170887,4.90976 3.170888,4.90976 -5.837422,0.29119 z"
655 inkscape:randomized="0"
656 inkscape:rounded="-3.469447e-018"
657 inkscape:flatsided="false"
658 sodipodi:arg2="3.6153497"
659 sodipodi:arg1="2.5681521"
660 sodipodi:r2="3.3744271"
661 sodipodi:r1="6.7488542"
662 sodipodi:cy="184.96832"
663 sodipodi:cx="46.653641"
664 sodipodi:sides="3"
665 id="path6622-2"
666 style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1"
667 sodipodi:type="star" />
668 <path
669 inkscape:connection-end-point="d4"
670 inkscape:connection-end="#path6622-44"
671 inkscape:connection-start-point="d4"
672 inkscape:connection-start="#path6622"
673 inkscape:connector-curvature="3"
674 inkscape:connector-type="polyline"
675 id="path6674"
676 d="m 481.32653,192.73165 46.13357,-0.0269"
677 style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
678 <path
679 inkscape:connection-end-point="d4"
680 inkscape:connection-end="#path6622-2"
681 inkscape:connection-start-point="d4"
682 inkscape:connection-start="#path6622-4"
683 inkscape:connector-curvature="3"
684 inkscape:connector-type="polyline"
685 id="path6676"
686 d="m 481.91858,114.39514 45.50448,-0.0274"
687 style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
688 <g
689 id="g5157-9"
690 transform="matrix(-1,0,0,1,325.17122,18.182298)">
691 <g
692 transform="matrix(-1,0,0,1,-108.61238,1.854964)"
693 id="g5105-5-3">
694 <g
695 id="g5036-7-0-0"
696 transform="matrix(0.74935909,-0.66216385,0.66216385,0.74935909,-65.891329,-33.307783)">
697 <g
698 transform="matrix(0.56818594,0,0,0.56818594,41.224298,32.896174)"
699 id="g4992-6-3-9-7">
700 <g
701 id="g4860-0-3-4-7">
702 <g
703 transform="translate(-1.1890358,84.861131)"
704 id="g4470-9-7-5-7-8">
705 <g
706 id="g4158-1-1-9-8-7">
707 <path
708 style="fill:none;stroke:#000000;stroke-width:1.0101651px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
709 d="m -183.20568,96.289613 33.74841,0"
710 id="path4134-3-7-9-3-3"
711 inkscape:connector-type="polyline"
712 inkscape:connector-curvature="3" />
713 <path
714 sodipodi:type="star"
715 style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1"
716 id="path4138-5-7-8-5-0"
717 sodipodi:sides="3"
718 sodipodi:cx="-172.79564"
719 sodipodi:cy="118.94457"
720 sodipodi:r1="9.8888884"
721 sodipodi:r2="4.9444442"
722 sodipodi:arg1="0.51173884"
723 sodipodi:arg2="1.5589364"
724 inkscape:flatsided="false"
725 inkscape:rounded="-3.469447e-018"
726 inkscape:randomized="0"
727 d="m -164.17357,123.7871 -8.56343,0.10157 -8.56343,0.10157 4.19376,-7.46693 4.19375,-7.46693 4.36967,7.36536 z"
728 inkscape:transform-center-x="-0.86584925"
729 inkscape:transform-center-y="0.0087948697"
730 transform="matrix(-0.00246431,0.39405653,-0.39405653,-0.00246431,-102.91459,164.58931)" />
731 <path
732 sodipodi:type="star"
733 style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1"
734 id="path4138-2-9-7-1-1-3"
735 sodipodi:sides="3"
736 sodipodi:cx="-172.79564"
737 sodipodi:cy="118.94457"
738 sodipodi:r1="9.8888884"
739 sodipodi:r2="4.9444442"
740 sodipodi:arg1="0.51173884"
741 sodipodi:arg2="1.5589364"
742 inkscape:flatsided="false"
743 inkscape:rounded="-3.469447e-018"
744 inkscape:randomized="0"
745 d="m -164.17357,123.7871 -8.56343,0.10157 -8.56343,0.10157 4.19376,-7.46693 4.19375,-7.46693 4.36967,7.36536 z"
746 inkscape:transform-center-x="0.86585034"
747 inkscape:transform-center-y="0.0087948697"
748 transform="matrix(0.00246431,0.39405653,0.39405653,-0.00246431,-229.19624,164.57669)" />
749 </g>
750 </g>
751 </g>
752 </g>
753 </g>
754 </g>
755 </g>
756 <g
757 id="g5417-8"
758 transform="matrix(-1,0,0,1,325.17122,18.182298)">
759 <g
760 id="g5294-2">
761 <g
762 id="g5213-5">
763 <g
764 transform="matrix(-1,0,0,1,-184.32212,56.976397)"
765 id="g5157-2-2">
766 <g
767 id="g5105-5-0-0"
768 transform="matrix(-1,0,0,1,-108.61238,1.854964)">
769 <g
770 transform="matrix(0.74935909,-0.66216385,0.66216385,0.74935909,-65.891329,-33.307783)"
771 id="g5036-7-0-1-3">
772 <g
773 id="g4992-6-3-9-6-7"
774 transform="matrix(0.56818594,0,0,0.56818594,41.224298,32.896174)">
775 <g
776 id="g4860-0-3-4-4-2">
777 <g
778 id="g4470-9-7-5-7-0-9"
779 transform="translate(-1.1890358,84.861131)">
780 <g
781 id="g4158-1-1-9-8-6-7">
782 <path
783 inkscape:connector-curvature="3"
784 inkscape:connector-type="polyline"
785 id="path4134-3-7-9-3-1-5"
786 d="m -183.20568,96.289613 33.74841,0"
787 style="fill:none;stroke:#000000;stroke-width:1.0101651px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
788 <path
789 transform="matrix(-0.00246431,0.39405653,-0.39405653,-0.00246431,-102.91459,164.58931)"
790 inkscape:transform-center-y="0.0087948697"
791 inkscape:transform-center-x="-0.86584925"
792 d="m -164.17357,123.7871 -8.56343,0.10157 -8.56343,0.10157 4.19376,-7.46693 4.19375,-7.46693 4.36967,7.36536 z"
793 inkscape:randomized="0"
794 inkscape:rounded="-3.469447e-018"
795 inkscape:flatsided="false"
796 sodipodi:arg2="1.5589364"
797 sodipodi:arg1="0.51173884"
798 sodipodi:r2="4.9444442"
799 sodipodi:r1="9.8888884"
800 sodipodi:cy="118.94457"
801 sodipodi:cx="-172.79564"
802 sodipodi:sides="3"
803 id="path4138-5-7-8-5-8-3"
804 style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1"
805 sodipodi:type="star" />
806 <path
807 transform="matrix(0.00246431,0.39405653,0.39405653,-0.00246431,-229.19624,164.57669)"
808 inkscape:transform-center-y="0.0087948697"
809 inkscape:transform-center-x="0.86585034"
810 d="m -164.17357,123.7871 -8.56343,0.10157 -8.56343,0.10157 4.19376,-7.46693 4.19375,-7.46693 4.36967,7.36536 z"
811 inkscape:randomized="0"
812 inkscape:rounded="-3.469447e-018"
813 inkscape:flatsided="false"
814 sodipodi:arg2="1.5589364"
815 sodipodi:arg1="0.51173884"
816 sodipodi:r2="4.9444442"
817 sodipodi:r1="9.8888884"
818 sodipodi:cy="118.94457"
819 sodipodi:cx="-172.79564"
820 sodipodi:sides="3"
821 id="path4138-2-9-7-1-1-9-4"
822 style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1"
823 sodipodi:type="star" />
824 </g>
825 </g>
826 </g>
827 </g>
828 </g>
829 </g>
830 </g>
831 </g>
832 </g>
833 </g>
834 </g>
835 </g>
545</svg> 836</svg>
diff --git a/doc/book-enea-nfv-access-example-usecases/doc/inband_management.xml b/doc/book-enea-nfv-access-example-usecases/doc/inband_management.xml
index a15b7d5..f557cbc 100644
--- a/doc/book-enea-nfv-access-example-usecases/doc/inband_management.xml
+++ b/doc/book-enea-nfv-access-example-usecases/doc/inband_management.xml
@@ -8,266 +8,243 @@
8 use-case will show how to enable the In-band management on the NFV Access 8 use-case will show how to enable the In-band management on the NFV Access
9 device and to access a VNF on the same physical interface.</para> 9 device and to access a VNF on the same physical interface.</para>
10 10
11 <figure> 11 <section id="inband_mg_uc_preq">
12 <title>NFV Access In-band management solution setup</title> 12 <title>Prerequisites</title>
13 13
14 <mediaobject> 14 <para>This use-case requires the following network configuration:</para>
15 <imageobject>
16 <imagedata align="center" fileref="images/uc_ibm_solution.png"
17 scale="55" />
18 </imageobject>
19 </mediaobject>
20 </figure>
21 15
22 <para>This Setup uses the following network configuration:</para> 16 <itemizedlist>
23 17 <listitem>
24 <itemizedlist> 18 <para>1 x Network Interface for WAN and management.</para>
25 <listitem> 19 </listitem>
26 <para>1 x Network Interface for WAN and management.</para>
27 </listitem>
28
29 <listitem>
30 <para>1 x Network Interface for LAN.</para>
31 </listitem>
32 </itemizedlist>
33
34 <para>For prerequisites and further details, please see <xref linkend="inband_management" />
35 and <xref linkend="vnf_fortigate" /><remark>Are these references still valid?</remark>.</para>
36 20
37 <section id="mg_activation"> 21 <listitem>
38 <title>In-band management activation for FortiGate VNF 22 <para>1 x Network Interface for LAN.</para>
39 Instantiation</title> 23 </listitem>
24 </itemizedlist>
40 25
41 <para>In-band management activation is done by creating a special bridge 26 <para>In-band management activation is done by creating a special bridge
42 which manages all traffic from the WAN interface. The active physical port 27 which manages all traffic from the WAN interface. The active physical port
43 of the device (used by the device manager to communicate with the uCPE 28 of the device (used by the device manager to communicate with the uCPE
44 Manager) will be connected to the In-band management bridge. Once the 29 Manager) will be connected to the In-band management bridge.</para>
45 In-band management bridge is activated, communication to the uCPE Manager 30
46 will be reactivated, passing through the bridge.</para> 31 <para>Once the In-band management bridge is activated, communication to
32 the uCPE Manager will be reactivated, passing through the bridge.</para>
47 33
48 <note> 34 <note>
49 <para>No other physical port for In-band management can be used.</para> 35 <para>No other physical port for In-band management can be used.</para>
50 </note> 36 </note>
51 37
52 <orderedlist> 38 <para>For further details, please see <xref
53 <listitem> 39 linkend="vnf_fortigate" /><remark>Are these references still
54 <para>Create an In-band management WAN Bridge:</para> 40 valid?</remark>.</para>
55
56 <itemizedlist>
57 <listitem>
58 <para>Select the <literal>Device</literal> menu.</para>
59 </listitem>
60
61 <listitem>
62 <para>In the Configuration tab select
63 <literal>OpenVSwitch.</literal></para>
64 </listitem>
65
66 <listitem>
67 <para>Select <literal>Bridges</literal> and click
68 <literal>Add</literal>.</para>
69 </listitem>
70
71 <listitem>
72 <para>Use <literal>dpdkWAN</literal> as the
73 <literal>ovs-bridge-type</literal>.</para>
74 </listitem>
75 </itemizedlist>
76
77 <figure>
78 <title>Create In-band management WAN bridge</title>
79
80 <mediaobject>
81 <imageobject>
82 <imagedata align="center" fileref="images/uc_ibm_br.png"
83 scale="75" />
84 </imageobject>
85 </mediaobject>
86 </figure>
87 </listitem>
88
89 <listitem>
90 <para>Bind the physical port which will be used for LAN access to
91 <literal>dpdk</literal>:</para>
92
93 <itemizedlist>
94 <listitem>
95 <para>Select the <literal>Device</literal> menu.</para>
96 </listitem>
97
98 <listitem>
99 <para>In the Configuration tab select
100 <literal>OpenVSwitch</literal>.</para>
101 </listitem>
102
103 <listitem>
104 <para>Select the <literal>Host Interfaces</literal> menu and click
105 <literal>Add</literal>.</para>
106 </listitem>
107
108 <listitem>
109 <para>Use <literal>dpdk</literal> as the
110 <literal>ovs-bridge-type</literal>.</para>
111 </listitem>
112 </itemizedlist>
113 </listitem>
114
115 <listitem>
116 <para>Create a LAN Bridge:</para>
117
118 <itemizedlist>
119 <listitem>
120 <para>Select the <literal>Device</literal>.</para>
121 </listitem>
122
123 <listitem>
124 <para>In the Configuration menu select
125 <literal>OpenVSwitch</literal>.</para>
126 </listitem>
127
128 <listitem>
129 <para>Open the <literal>Bridges</literal> menu and click
130 <literal>Add</literal>.</para>
131 </listitem>
132 </itemizedlist>
133
134 <figure>
135 <title>Create LAN bridge</title>
136
137 <mediaobject>
138 <imageobject>
139 <imagedata align="center" fileref="images/uc_ibm_lanbr.png"
140 scale="75" />
141 </imageobject>
142 </mediaobject>
143 </figure>
144
145 <para>At this step the following bridges should exist:</para>
146
147 <figure>
148 <title>Bridges</title>
149
150 <mediaobject>
151 <imageobject>
152 <imagedata align="center" fileref="images/uc_ibm_br2.png"
153 scale="65" />
154 </imageobject>
155 </mediaobject>
156 </figure>
157
158 <note>
159 <para>The WAN port of the very first VNF instantiated on the device
160 must be connected to the <literal>ibm-wan-br</literal>bridge. All
161 other VNFs must be connected in chain with the first VNF.</para>
162 </note>
163 </listitem>
164
165 <listitem>
166 <para>Onboard the first VNF and instantiate it on the device:</para>
167
168 <itemizedlist>
169 <listitem>
170 <para>Select the <literal>Device</literal>.</para>
171 </listitem>
172
173 <listitem>
174 <para>Select the <literal>VNF</literal> menu.</para>
175 </listitem>
176
177 <listitem>
178 <para>In the <literal>Descriptors</literal> menu, choose the
179 <literal>VNF Package</literal> option.</para>
180 </listitem>
181
182 <listitem>
183 <para>Browse and select the Fortigate bundle you require, before
184 pressing the <literal>Send</literal> button.</para>
185 </listitem>
186 </itemizedlist>
187 </listitem>
188
189 <listitem>
190 <para>Add the VNF instance:</para>
191
192 <itemizedlist>
193 <listitem>
194 <para>Select the <literal>Device</literal>.</para>
195 </listitem>
196
197 <listitem>
198 <para>Select the <literal>VNF</literal> menu.</para>
199 </listitem>
200
201 <listitem>
202 <para>Choose the <literal>Instances</literal> option, select the
203 VNF configuration you desire and press
204 <literal>Add</literal>.</para>
205 </listitem>
206
207 <listitem>
208 <para>Browse and select the Fortigate bundle you require, before
209 pressing the <literal>Send</literal> button.</para>
210 </listitem>
211 </itemizedlist>
212
213 <figure>
214 <title>Instantiate the FortiGate VNF</title>
215
216 <mediaobject>
217 <imageobject>
218 <imagedata align="center"
219 fileref="images/uc_ibm_fg_instantiation.png"
220 scale="65" />
221 </imageobject>
222 </mediaobject>
223 </figure>
224 </listitem>
225 </orderedlist>
226
227 <para>Once the VNF is instantiated, the setup is complete and ready for
228 testing. Connect the test machine to the LAN port. It will receive an IP
229 address from the FortiGate VNF and be able to access the internet.</para>
230 </section> 41 </section>
231 42
232 <section id="test_fortvnf_inband"> 43 <section id="inband_mg_fortivnf_uc">
233 <title>Testing the Fortigate VNF In-band management activation</title> 44 <title>In-band management activation for FortiGate VNF
45 Instantiation</title>
234 46
235 <figure> 47 <figure>
236 <title>Test setup</title> 48 <title>NFV Access In-band management solution setup</title>
237 49
238 <mediaobject> 50 <mediaobject>
239 <imageobject> 51 <imageobject>
240 <imagedata align="center" fileref="images/uc_ibm_solution_test.png" 52 <imagedata align="center" fileref="images/uc_ibm_solution_test.png"
241 scale="52" /> 53 scale="55" />
242 </imageobject> 54 </imageobject>
243 </mediaobject> 55 </mediaobject>
244 </figure> 56 </figure>
245 57
246 <para>At this stage, three types of traffic are passing through the WAN 58 <section id="inband_examuc_setup">
247 port on the same IP address:</para> 59 <title>Use-case Setup</title>
248 60
249 <itemizedlist> 61 <para><emphasis role="bold">Configuring Network Interfaces on uCPE
250 <listitem> 62 devices:</emphasis></para>
251 <para>Device management traffic from the uCPE Manager.</para> 63
252 </listitem> 64 <orderedlist>
253 65 <listitem>
254 <listitem> 66 <para>Create an In-band management WAN Bridge:</para>
255 <para>FortiGate management interface traffic from a web 67
256 browser.</para> 68 <itemizedlist spacing="compact">
257 </listitem> 69 <listitem>
258 70 <para>Select the <literal>Device</literal> menu.</para>
259 <listitem> 71 </listitem>
260 <para>Data traffic from the LAN to the internet.</para> 72
261 </listitem> 73 <listitem>
262 </itemizedlist> 74 <para>In the Configuration tab select
263 75 <literal>OpenVSwitch.</literal></para>
264 <para>If you have access from the uCPE Manager to the device as shown above, this 76 </listitem>
265 demonstrates that device management traffic passes through the In-band 77
266 management WAN bridge successfully.</para> 78 <listitem>
267 79 <para>Select <literal>Bridges</literal> and click
268 <para>To access the management interface of the VNF, connect from a web 80 <literal>Add</literal>.</para>
269 browser to the public IP address of the device e.g. 81 </listitem>
270 <literal>https://&lt;IP&gt;</literal>. From a Test machine connected on 82
271 the LAN port, try a test ping to the internet e.g. "ping 8.8.8.8".</para> 83 <listitem>
84 <para>Use <literal>dpdkWAN</literal> as the
85 <literal>ovs-bridge-type</literal>.</para>
86 </listitem>
87 </itemizedlist>
88 </listitem>
89
90 <listitem>
91 <para>Bind the physical port which will be used for LAN access to
92 <literal>dpdk</literal>:</para>
93
94 <itemizedlist spacing="compact">
95 <listitem>
96 <para>Select the <literal>Device</literal> menu.</para>
97 </listitem>
98
99 <listitem>
100 <para>In the Configuration tab select
101 <literal>OpenVSwitch</literal>.</para>
102 </listitem>
103
104 <listitem>
105 <para>Select the <literal>Host Interfaces</literal> menu and
106 click <literal>Add</literal>.</para>
107 </listitem>
108
109 <listitem>
110 <para>Use <literal>dpdk</literal> as the
111 <literal>ovs-bridge-type</literal>.</para>
112 </listitem>
113 </itemizedlist>
114 </listitem>
115
116 <listitem>
117 <para>Create a LAN Bridge:</para>
118
119 <itemizedlist spacing="compact">
120 <listitem>
121 <para>Select the <literal>Device</literal>.</para>
122 </listitem>
123
124 <listitem>
125 <para>In the Configuration menu select
126 <literal>OpenVSwitch</literal>.</para>
127 </listitem>
128
129 <listitem>
130 <para>Open the <literal>Bridges</literal> menu and click
131 <literal>Add</literal>.</para>
132 </listitem>
133 </itemizedlist>
134
135 <para>At this step the following bridges should exist:</para>
136
137 <figure>
138 <title>Bridges</title>
139
140 <mediaobject>
141 <imageobject>
142 <imagedata align="center" fileref="images/uc_ibm_br2.png"
143 scale="65" />
144 </imageobject>
145 </mediaobject>
146 </figure>
147
148 <note>
149 <para>The WAN port of the very first VNF instantiated on the
150 device must be connected to the
151 <literal>ibm-wan-br</literal>bridge. All other VNFs must be
152 connected in chain with the first VNF.</para>
153 </note>
154 </listitem>
155 </orderedlist>
156
157 <para><emphasis role="bold">Onboarding the VNFs:</emphasis></para>
158
159 <orderedlist>
160 <listitem>
161 <para>Select the <literal>Device</literal>.</para>
162 </listitem>
163
164 <listitem>
165 <para>Select the <literal>VNF</literal> menu.</para>
166 </listitem>
167
168 <listitem>
169 <para>In the <literal>Descriptors</literal> menu, choose the
170 <literal>VNF Package</literal> option.</para>
171 </listitem>
172
173 <listitem>
174 <para>Browse and select the Fortigate bundle you require, before
175 pressing the <literal>Send</literal> button.</para>
176 </listitem>
177 </orderedlist>
178
179 <para><emphasis role="bold">Instantiating the VNFs:</emphasis></para>
180
181 <orderedlist>
182 <listitem>
183 <para>Select the <literal>Device</literal>.</para>
184 </listitem>
185
186 <listitem>
187 <para>Select the <literal>VNF</literal> menu.</para>
188 </listitem>
189
190 <listitem>
191 <para>Choose the <literal>Instances</literal> option, select the VNF
192 configuration you desire and press <literal>Add</literal>.</para>
193 </listitem>
194
195 <listitem>
196 <para>Browse and select the Fortigate bundle you require, before
197 pressing the <literal>Send</literal> button.</para>
198 </listitem>
199 </orderedlist>
200
201 <figure>
202 <title>Instantiate the FortiGate VNF</title>
203
204 <mediaobject>
205 <imageobject>
206 <imagedata align="center"
207 fileref="images/uc_ibm_fg_instantiation.png" scale="65" />
208 </imageobject>
209 </mediaobject>
210 </figure>
211 </section>
212
213 <section id="test_fortvnf_inband">
214 <title>Testing the Use-case</title>
215
216 <para>Once the VNF is instantiated, the setup is complete and ready for
217 testing. Connect the test machine to the LAN port. It will receive an IP
218 address from the FortiGate VNF and be able to access the
219 internet.</para>
220
221 <para>At this stage, three types of traffic are passing through the WAN
222 port on the same IP address:</para>
223
224 <itemizedlist>
225 <listitem>
226 <para>Device management traffic from the uCPE Manager.</para>
227 </listitem>
228
229 <listitem>
230 <para>FortiGate management interface traffic from a web
231 browser.</para>
232 </listitem>
233
234 <listitem>
235 <para>Data traffic from the LAN to the internet.</para>
236 </listitem>
237 </itemizedlist>
238
239 <para>If you have access from the uCPE Manager to the device as shown
240 above, this demonstrates that device management traffic passes through
241 the In-band management WAN bridge successfully.</para>
242
243 <para>To access the management interface of the VNF, connect from a web
244 browser to the public IP address of the device e.g.
245 <literal>https://&lt;IP&gt;</literal>. From a Test machine connected on
246 the LAN port, try a test ping to the internet e.g. "ping
247 8.8.8.8".</para>
248 </section>
272 </section> 249 </section>
273</chapter> 250</chapter> \ No newline at end of file
diff --git a/doc/book-enea-nfv-access-example-usecases/doc/introduction.xml b/doc/book-enea-nfv-access-example-usecases/doc/introduction.xml
index 91e15aa..74c11f3 100644
--- a/doc/book-enea-nfv-access-example-usecases/doc/introduction.xml
+++ b/doc/book-enea-nfv-access-example-usecases/doc/introduction.xml
@@ -2,17 +2,20 @@
2<chapter id="intro"> 2<chapter id="intro">
3 <title>Introduction</title> 3 <title>Introduction</title>
4 4
5 <para>This document describes several example use-cases concerning uCPE device 5 <para>This document describes several example use-cases concerning uCPE
6 network interface configuration, onboarding and instantiation of certain VNFs, 6 configuration, onboarding and instantiation of certain VNFs, VNF chaining,
7 VNF chaining, and In-band management.</para> 7 and In-band management.</para>
8 8
9 <note><para>Before running any example make sure the uCPE device(s) have been 9 <note>
10 <para>Before running any example make sure the uCPE device(s) have been
10 added to the uCPE Manager and placed on the map.</para> 11 added to the uCPE Manager and placed on the map.</para>
11 </note>
12 12
13 <para>For detailed information on how to add a device to the uCPE Manager, how 13 <para>For detailed information on how to add a device to the uCPE Manager,
14 to configure the network interfaces to use DPDK, PCI-passthrough or SR-IOV drivers, 14 how to configure the network interfaces to use DPDK, PCI-passthrough or
15 or VNF configuration, please refer to the <xi:include href="../../s_docbuild/olinkdb/pardoc-common.xml" 15 SR-IOV drivers, or VNF configuration, please refer to the <xi:include
16 xmlns:xi="http://www.w3.org/2001/XInclude" 16 href="../../s_docbuild/olinkdb/pardoc-common.xml"
17 xpointer="element(book_enea_nfv_access_getting_started/1)" /> Manual.</para> 17 xmlns:xi="http://www.w3.org/2001/XInclude"
18</chapter> 18 xpointer="element(book_enea_nfv_access_getting_started/1)" />
19 Manual.</para>
20 </note>
21</chapter> \ No newline at end of file
diff --git a/doc/book-enea-nfv-access-example-usecases/doc/vnf_chaining.xml b/doc/book-enea-nfv-access-example-usecases/doc/vnf_chaining.xml
index 90bf566..27b83aa 100644
--- a/doc/book-enea-nfv-access-example-usecases/doc/vnf_chaining.xml
+++ b/doc/book-enea-nfv-access-example-usecases/doc/vnf_chaining.xml
@@ -2,53 +2,25 @@
2<chapter id="vnf_chaining"> 2<chapter id="vnf_chaining">
3 <title>VNF Chaining Example Use-case</title> 3 <title>VNF Chaining Example Use-case</title>
4 4
5 <section id="VNF_chain_intro"> 5 <para>The following is an example of how to setup and configure a
6 <title>Introduction</title> 6 branch-to-branch service comprised on two commercial VNFs (SD-WAN +
7 7 Firewall). This service will run in a service chain on top of the Enea NFV
8 <para>The following decribes an example of how to setup and configure a 8 Access virtualization platform, deployed through the Enea uCPE
9 branch-to-branch service comprised on two commercial VNFs (SD-WAN + 9 Manager.</para>
10 Firewall). This service will run in a service chain on top of the Enea NFV
11 Access virtualization platform, deployed through the Enea uCPE Manager. In
12 the example setup the following commercial VNFs are used: Juniper vSRX as
13 the SD-WAN VNF and Fortigate as the Router/Firewall.</para>
14 10
15 <para>The setup requires two physical appliances (uCPEs), each of them 11 <para>In the example setup the following commercial VNFs are used: Juniper
16 having three DPDK-compatible NICs and one interface available for uCPE 12 vSRX as the SD-WAN VNF and Fortigate as the Router/Firewall.</para>
17 management (i.e. connected to Enea uCPE Manager). On each uCPE, one of the
18 DPDK-compatible interfaces is connected back-to-back with one interface
19 from the other uCPE device. This link simulates a WAN/uplink
20 connection.</para>
21 13
22 <para>Optionally, one additional device (PC/laptop) can be connected on 14 <section id="preq_chaining">
23 the LAN port of each branch to run LAN-to-LAN connectivity tests.</para>
24
25 <figure>
26 <title>Example Setup</title>
27
28 <mediaobject>
29 <imageobject>
30 <imagedata align="center" fileref="images/example_setup.png"
31 scale="88" />
32 </imageobject>
33 </mediaobject>
34 </figure>
35
36 <note>
37 <para>For simplicity, the image above does not present the
38 management-plane, which will be described in the Setup steps.</para>
39 </note>
40 </section>
41
42 <section id="prere">
43 <title>Prerequisites</title> 15 <title>Prerequisites</title>
44 16
45 <para>The following files are needed for this example use case:</para> 17 <para>The following files are needed for this example use case:</para>
46 18
47 <itemizedlist> 19 <itemizedlist>
48 <listitem> 20 <listitem>
49 <para>Juniper vSRX VNF image, vSRX-Site&lt;x&gt;.iso as the Cloud-Init 21 <para><filename>vSRX-Site&lt;x&gt;.iso</filename>. The Juniper vSRX
50 files. This VNF/image is not provided by Enea. Please contact Juniper 22 VNF image, as the Cloud-Init files. This VNF image is not provided by
51 to get this image.</para> 23 Enea. Please contact Juniper to get this image.</para>
52 </listitem> 24 </listitem>
53 25
54 <listitem> 26 <listitem>
@@ -56,247 +28,290 @@
56 </listitem> 28 </listitem>
57 29
58 <listitem> 30 <listitem>
59 <para>vSRX-domain-update-script. This file is provided by Enea.</para> 31 <para><filename>vSRX-domain-update-script</filename>. This file is
32 provided by Enea.</para>
60 </listitem> 33 </listitem>
61 34
62 <listitem> 35 <listitem>
63 <para>FortiFW-Site&lt;x&gt;.conf as the Cloud-Init file(s). This file 36 <para><filename>FortiFW-Site&lt;x&gt;.conf</filename> as the
64 is provided by Enea.</para> 37 Cloud-Init file(s). This file is provided by Enea.</para>
65 </listitem> 38 </listitem>
66 39
67 <listitem> 40 <listitem>
68 <para>license as the Cloud-Init content in the Cloud-Init tab files. 41 <para>License file(s) as the Cloud-Init content in the Cloud-Init tab.
69 For license files for the VNFs, please contact the VNF 42 For license files for the VNFs, please contact the VNF
70 provider.</para> 43 provider.</para>
71 </listitem> 44 </listitem>
72 </itemizedlist> 45 </itemizedlist>
73 </section> 46 </section>
74 47
75 <section id="crateing_setup"> 48 <section id="VNF_chain_intro">
76 <title>Creating the setup</title> 49 <title>VNF Chaining with FortiGate</title>
77
78 <para>Both branches in the example have similar setups, therefore
79 necessary step details are presented for only one branch. The second
80 branch shall be configured in the same way, adapting as needed the
81 corresponding VNFs configuration files.</para>
82
83 <orderedlist>
84 <listitem>
85 <para>Assign three physical interfaces to the DPDK (one for
86 management, one WAN and one for LAN). In the example, one of these
87 interfaces gets an IP through DHCP and it will be used exclusively for
88 the management plane.</para>
89 </listitem>
90
91 <listitem>
92 <para>Create the following OVS-DPDK bridges:</para>
93
94 <itemizedlist>
95 <listitem>
96 <para><literal>vnf_mgmt_br</literal>. Used by VNF management
97 ports.</para>
98 </listitem>
99
100 <listitem>
101 <para><literal>wan_br</literal>. Used by the service uplink
102 connection. In our case, Juniper vSRX will have its WAN virtual
103 interface in this bridge.</para>
104 </listitem>
105
106 <listitem>
107 <para><literal>sfc_br</literal>. Used for creating the service
108 chain. Each VNF will have a virtual interface in this
109 bridge.</para>
110 </listitem>
111
112 <listitem>
113 <para><literal>lan_br</literal>. Used for the LAN interface of the
114 Fortigate FW.</para>
115 </listitem>
116 </itemizedlist>
117 </listitem>
118
119 <listitem>
120 <para>Add corresponding DPDK ports (see Step 1) to the management, WAN
121 and LAN bridges (<literal>sfc_br</literal> does not have a physical
122 port attached to it).</para>
123
124 <note>
125 <para>The networking setup (Steps 1-3) can be modeled using the
126 Offline Configuration entry, so that it is automatically provisioned
127 on the uCPE, once it gets enrolled into the management system (uCPE
128 Manager).</para>
129 </note>
130 </listitem>
131
132 <listitem>
133 <para>Onboard Juniper vSRX using the VNF Onboarding Wizard:</para>
134
135 <itemizedlist>
136 <listitem>
137 <para>The Flavor selected must have at least 2 vCPUs and 4 GB RAM
138 since vSRX is quite resource consuming.</para>
139 50
140 <para>Tested-inhouse with 4 vCPUs/ 6 GB RAM.</para> 51 <para>The setup requires two physical appliances (uCPEs), each of them
141 </listitem> 52 having three DPDK-compatible NICs and one interface available for uCPE
53 management (i.e. connected to Enea uCPE Manager). On each uCPE, one of the
54 DPDK-compatible interfaces is connected back-to-back with one interface
55 from the other uCPE device. This link simulates a WAN/uplink
56 connection.</para>
142 57
143 <listitem> 58 <para>Optionally, one additional device (PC/laptop) can be connected on
144 <para>Add three virtual interfaces: management, WAN and 59 the LAN port of each branch to run LAN-to-LAN connectivity tests.</para>
145 LAN.</para>
146 </listitem>
147 60
148 <listitem> 61 <figure>
149 <para>Select <literal>ISO</literal> on the Cloud-Init tab.</para> 62 <title>VNF Chaining with FortiGate Setup</title>
150 </listitem>
151 </itemizedlist>
152 </listitem>
153 63
154 <listitem> 64 <mediaobject>
155 <para>Onboard Fortigate FW using the VNF Onboarding Wizard:</para> 65 <imageobject>
156 66 <imagedata align="center" fileref="images/example_setup.png"
157 <itemizedlist> 67 scale="88" />
158 <listitem> 68 </imageobject>
159 <para>The Flavor selected can be quite light in resources, e.g. 1 69 </mediaobject>
160 vCPU and 2 GB RAM.</para> 70 </figure>
161 </listitem>
162
163 <listitem>
164 <para>Add three virtual interfaces: management, WAN and
165 LAN.</para>
166 </listitem>
167
168 <listitem>
169 <para>Select <literal>ConfigDrive</literal> on the Cloud-Init
170 tab.</para>
171 </listitem>
172
173 <listitem>
174 <para>Add <literal>license</literal> as the Cloud-Init content in
175 the Cloud-Init tab files.</para>
176 </listitem>
177 </itemizedlist>
178
179 <note>
180 <para>Steps 4-5 are done only once, i.e. they will not be repeated
181 for Site 2.</para>
182 </note>
183 </listitem>
184 71
185 <listitem> 72 <note>
186 <para>Create the vSRX instance:</para> 73 <para>For simplicity, the image above does not present the
187 74 management-plane, which will be described in the Setup steps.</para>
188 <itemizedlist> 75 </note>
189 <listitem>
190 <para>Use <filename>vSRX-Site1.iso</filename> as the Cloud-Init
191 file.</para>
192 </listitem>
193
194 <listitem>
195 <para>The <literal>Domain Update Script</literal> field can be
196 left empty for the Atom C3000 architecture, while for XeonD the
197 <filename>vSRX-domain-update-script</filename> file will be
198 used.</para>
199 </listitem>
200
201 <listitem>
202 <para>Add virtual interfaces:</para>
203
204 <itemizedlist>
205 <listitem>
206 <para>Management interface added to
207 <literal>vnf_mgmt_br</literal>.</para>
208 </listitem>
209 </itemizedlist>
210
211 <itemizedlist>
212 <listitem>
213 <para>WAN interface added to <literal>wan_br</literal>.</para>
214 </listitem>
215 </itemizedlist>
216
217 <itemizedlist>
218 <listitem>
219 <para>LAN interface added to <literal>sfc_br</literal>.</para>
220 </listitem>
221 </itemizedlist>
222 </listitem>
223 </itemizedlist>
224
225 <note>
226 <para>The login/password values for the vSRX VNF are
227 <literal>root/vsrx1234</literal>, respectively.</para>
228 </note>
229 </listitem>
230 76
231 <listitem> 77 <section id="exam_setup_chain">
232 <para>Create the Fortigate FW instance:</para> 78 <title>Use-case Setup</title>
233 79
234 <itemizedlist> 80 <para><emphasis role="bold">Configuring Network Interfaces on uCPE
235 <listitem> 81 devices:</emphasis></para>
236 <para>Use <filename>FortiFW-Site1.conf</filename> as Cloud-Init 82
237 file.</para> 83 <para>Both branches in the example have similar setups, therefore
238 </listitem> 84 necessary step details are presented for only one branch. The second
239 85 branch shall be configured in the same way, adapting as needed the
240 <listitem> 86 corresponding VNFs configuration files.</para>
241 <para>Add <filename>.lic</filename> (not part of the folder) as 87
242 the license file.</para> 88 <orderedlist>
243 </listitem> 89 <listitem>
244 90 <para>Assign three physical interfaces to the DPDK (one for
245 <listitem> 91 management, one WAN and one for LAN). In the example, one of these
246 <para>Add virtual interfaces:</para> 92 interfaces gets an IP through DHCP and it will be used exclusively
247 93 for the management plane.</para>
248 <itemizedlist> 94 </listitem>
249 <listitem> 95
250 <para>Management interface added to 96 <listitem>
251 <literal>vnf_mgmt_br</literal>.</para> 97 <para>Create the following OVS-DPDK bridges:</para>
252 </listitem> 98
253 </itemizedlist> 99 <itemizedlist>
254 100 <listitem>
255 <itemizedlist> 101 <para><literal>vnf_mgmt_br</literal>. Used by VNF management
256 <listitem> 102 ports.</para>
257 <para>WAN interface added to <literal>sfc_br</literal>.</para> 103 </listitem>
258 </listitem> 104
259 </itemizedlist> 105 <listitem>
260 106 <para><literal>wan_br</literal>. Used by the service uplink
261 <itemizedlist> 107 connection. In our case, Juniper vSRX will have its WAN virtual
262 <listitem> 108 interface in this bridge.</para>
263 <para>LAN interface added to <literal>lan_br</literal>.</para> 109 </listitem>
264 </listitem> 110
265 </itemizedlist> 111 <listitem>
266 </listitem> 112 <para><literal>sfc_br</literal>. Used for creating the service
267 </itemizedlist> 113 chain. Each VNF will have a virtual interface in this
268 114 bridge.</para>
269 <note> 115 </listitem>
270 <para>The login/password values for the Fortigate VNF are 116
271 <literal>admin/&lt;empty password&gt;</literal>, 117 <listitem>
272 respectively.</para> 118 <para><literal>lan_br</literal>. Used for the LAN interface of
273 </note> 119 the Fortigate FW.</para>
274 </listitem> 120 </listitem>
275 </orderedlist> 121 </itemizedlist>
276 122 </listitem>
277 <para>At this point the service will be up and running on Site1. Repeat 123
278 the necessary steps for Site2, by changing the configuration files 124 <listitem>
279 accordingly. After the service is deployed on both branches, the VPN 125 <para>Add corresponding DPDK ports (see Step 1) to the management,
280 tunnel is established and LAN to LAN visibility can be verified by 126 WAN and LAN bridges (<literal>sfc_br</literal> does not have a
281 connecting one device on each uCPE LAN port. See <link 127 physical port attached to it).</para>
282 linkend="test_setup">Testing the setup</link> for details on how to 128
283 proceed.</para> 129 <note>
130 <para>The networking setup (Steps 1-3) can be modeled using the
131 Offline Configuration entry, so that it is automatically
132 provisioned on the uCPE, once it gets enrolled into the management
133 system (uCPE Manager).</para>
134 </note>
135 </listitem>
136 </orderedlist>
137
138 <para><emphasis role="bold">Onboarding the VNFs:</emphasis></para>
139
140 <orderedlist>
141 <listitem>
142 <para>Onboard Juniper vSRX using the VNF Onboarding Wizard:</para>
143
144 <itemizedlist>
145 <listitem>
146 <para>The Flavor selected must have at least 2 vCPUs and 4 GB
147 RAM since vSRX is quite resource consuming.</para>
148
149 <para>Tested-inhouse with 4 vCPUs/ 6 GB RAM.</para>
150 </listitem>
151
152 <listitem>
153 <para>Add three virtual interfaces: management, WAN and
154 LAN.</para>
155 </listitem>
156
157 <listitem>
158 <para>Select <literal>ISO</literal> on the Cloud-Init
159 tab.</para>
160 </listitem>
161 </itemizedlist>
162 </listitem>
163
164 <listitem>
165 <para>Onboard Fortigate FW using the VNF Onboarding Wizard:</para>
166
167 <itemizedlist>
168 <listitem>
169 <para>The Flavor selected can be quite light in resources, e.g.
170 1 vCPU and 2 GB RAM.</para>
171 </listitem>
172
173 <listitem>
174 <para>Add three virtual interfaces: management, WAN and
175 LAN.</para>
176 </listitem>
177
178 <listitem>
179 <para>Select <literal>ConfigDrive</literal> on the Cloud-Init
180 tab.</para>
181 </listitem>
182
183 <listitem>
184 <para>Add <literal>license</literal> as the Cloud-Init content
185 in the Cloud-Init tab files.</para>
186 </listitem>
187 </itemizedlist>
188
189 <note>
190 <para>Steps 4-5 are done only once, i.e. they will not be repeated
191 for Site 2.</para>
192 </note>
193 </listitem>
194 </orderedlist>
195
196 <para><emphasis role="bold">Instantiating the VNFs:</emphasis></para>
197
198 <orderedlist>
199 <listitem>
200 <para>Create the vSRX instance:</para>
201
202 <itemizedlist>
203 <listitem>
204 <para>Use <filename>vSRX-Site1.iso</filename> as the Cloud-Init
205 file.</para>
206 </listitem>
207
208 <listitem>
209 <para>The <literal>Domain Update Script</literal> field can be
210 left empty for the Atom C3000 architecture, while for XeonD the
211 <filename>vSRX-domain-update-script</filename> file will be
212 used.</para>
213 </listitem>
214
215 <listitem>
216 <para>Add virtual interfaces:</para>
217
218 <itemizedlist>
219 <listitem>
220 <para>Management interface added to
221 <literal>vnf_mgmt_br</literal>.</para>
222 </listitem>
223 </itemizedlist>
224
225 <itemizedlist>
226 <listitem>
227 <para>WAN interface added to
228 <literal>wan_br</literal>.</para>
229 </listitem>
230 </itemizedlist>
231
232 <itemizedlist>
233 <listitem>
234 <para>LAN interface added to
235 <literal>sfc_br</literal>.</para>
236 </listitem>
237 </itemizedlist>
238 </listitem>
239 </itemizedlist>
240
241 <note>
242 <para>The login/password values for the vSRX VNF are
243 <literal>root/vsrx1234</literal>, respectively.</para>
244 </note>
245 </listitem>
246
247 <listitem>
248 <para>Create the Fortigate FW instance:</para>
249
250 <itemizedlist>
251 <listitem>
252 <para>Use <filename>FortiFW-Site1.conf</filename> as Cloud-Init
253 file.</para>
254 </listitem>
255
256 <listitem>
257 <para>Add <filename>.lic</filename> (not part of the folder) as
258 the license file.</para>
259 </listitem>
260
261 <listitem>
262 <para>Add virtual interfaces:</para>
263
264 <itemizedlist>
265 <listitem>
266 <para>Management interface added to
267 <literal>vnf_mgmt_br</literal>.</para>
268 </listitem>
269 </itemizedlist>
270
271 <itemizedlist>
272 <listitem>
273 <para>WAN interface added to
274 <literal>sfc_br</literal>.</para>
275 </listitem>
276 </itemizedlist>
277
278 <itemizedlist>
279 <listitem>
280 <para>LAN interface added to
281 <literal>lan_br</literal>.</para>
282 </listitem>
283 </itemizedlist>
284 </listitem>
285 </itemizedlist>
286
287 <note>
288 <para>The login/password values for the Fortigate VNF are
289 <literal>admin/&lt;empty password&gt;</literal>,
290 respectively.</para>
291 </note>
292 </listitem>
293 </orderedlist>
294
295 <para>At this point the service will be up and running on Site1. Repeat
296 the necessary steps for Site2, by changing the configuration files
297 accordingly.</para>
298
299 <para>After the service is deployed on both branches, the VPN tunnel is
300 established and LAN to LAN visibility can be verified by connecting one
301 device on each uCPE LAN port.</para>
302 </section>
284 </section> 303 </section>
285 304
286 <section id="test_setup"> 305 <section id="test_setup">
287 <title>Testing the setup</title> 306 <title>Testing the Use-case</title>
288 307
289 <para>Before testing LAN to LAN connectivity, preliminary tests of service 308 <para>Before testing LAN to LAN connectivity, preliminary tests of service
290 can be run to ensure everything was set up properly.</para> 309 can be run to ensure everything was set up properly. For instance, by
291 310 connecting to vSRX CLI (any site), one can test IKE security
292 <para>Before testing LAN to LAN connectivity, one can run preliminary
293 tests of service to ensure everything was set-up properly. For instance,
294 by connecting to vSRX CLI (any site), one can test IKE security
295 associations:</para> 311 associations:</para>
296 312
297 <programlisting>root@Atom-C3000:~ # cli</programlisting> 313 <programlisting>root@Atom-C3000:~ # cli
298 314root@Atom-C3000&gt; show security ike security-associations
299 <programlisting>root@Atom-C3000&gt; show security ike security-associations
300Index State Initiator cookie Responder cookie Mode Remote Address 315Index State Initiator cookie Responder cookie Mode Remote Address
3011588673 UP 2f2047b144ebfce4 0000000000000000 Aggressive 10.1.1.2 3161588673 UP 2f2047b144ebfce4 0000000000000000 Aggressive 10.1.1.2
302... 317...
@@ -350,12 +365,6 @@ disable type: physical netflow-sampler: disable sflow-sampler: disable
350 <para>When using provided configurations, the VNF management port for 365 <para>When using provided configurations, the VNF management port for
351 Fortigate is always <literal>port1</literal>.</para> 366 Fortigate is always <literal>port1</literal>.</para>
352 367
353 <note>
354 <para>Please note that VNF management ports will get dynamically
355 allocated IPs only if the physical NIC used for management is configured
356 to get its IP through DHCP (see Step 1 from above).</para>
357 </note>
358
359 <para>If functionality is as intended, LAN-to-LAN connectivity can be 368 <para>If functionality is as intended, LAN-to-LAN connectivity can be
360 checked (through the VPN tunnel) by using two devices (PC/laptop) 369 checked (through the VPN tunnel) by using two devices (PC/laptop)
361 connected to the LAN ports of each uCPE. Optionally, these devices can be 370 connected to the LAN ports of each uCPE. Optionally, these devices can be