diff options
author | Miruna Paun <Miruna.Paun@enea.com> | 2019-07-29 12:30:27 +0200 |
---|---|---|
committer | Miruna Paun <Miruna.Paun@enea.com> | 2019-07-30 12:23:08 +0200 |
commit | d6be45dbae3cc0e2df7f92f6b855126e21051952 (patch) | |
tree | c8a11542e4527b980662e22e94017fb176add25e | |
parent | 631609b2f424264a74542f2e1ea99e1bb8a43e9c (diff) | |
download | el_releases-nfv-access-d6be45dbae3cc0e2df7f92f6b855126e21051952.tar.gz |
Updating the structuring and pictures of ENA example-usecases.
Change-Id: If2026f111c8004e31f329df56c63d9d7e0ad5eab
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> -> <literal>Instances</literal> -> | 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> -> <literal>Instances</literal> -> | ||
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> -> <literal>Instances</literal> -> | ||
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> -> <literal>Instances</literal> -> | 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> -> |
172 | VNFs, connect to the iPerf VNF client console: | 183 | <literal>user</literal> (root) -> <literal>Connect</literal> and run |
173 | <literal>SSH</literal> -> <literal>user</literal> (root) -> | 184 | the following:</para> |
174 | <literal>Connect</literal> and run the following:</para> | ||
175 | 185 | ||
176 | <programlisting>virsh list | 186 | <programlisting>virsh list |
177 | virsh console | 187 | virsh console |
178 | root@qemux86-64:~# iperf3 -c 192.168.10.10</programlisting> | 188 | root@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 | -> <literal>OpenVSwitch</literal> -> <literal>Host | 220 | -> <literal>OpenVSwitch</literal> -> <literal>Host |
210 | Interfaces</literal> -> <literal>Add</literal>:</para> | 221 | Interfaces</literal> -> <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> -> <literal>Instances</literal> -> | 261 | <literal>VNF</literal> -> <literal>Instances</literal> -> |
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 | -> <literal>user</literal> (root) -><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> -> <literal>user</literal> (root) | ||
267 | -><literal>Connect</literal> and run the following commands: | ||
268 | <programlisting>virsh list | ||
269 | virsh console | 293 | virsh console |
270 | root@qemux86-64:~# iperf3 -c 192.168.10.10</programlisting></para> | 294 | root@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> -> | 47 | <literal>uCPE device 1</literal> first, then accessing |
48 | <literal>Configuration</literal> -> | ||
43 | <literal>OpenVSwitch</literal> -> <literal>Host | 49 | <literal>OpenVSwitch</literal> -> <literal>Host |
44 | Interfaces</literal> -> <literal>Add</literal>.</para> | 50 | Interfaces</literal> -> <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> -><literal>OpenVSwitch</literal> | 77 | <literal>Configuration</literal> -><literal>OpenVSwitch</literal> |
77 | -><literal>Bridges</literal>.</para> | 78 | -><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:/> 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> -> <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> -> <literal>user</literal> (root):</para> | ||
190 | 195 | ||
191 | <programlisting>Virsh list | 196 | <programlisting>Virsh list |
192 | Virsh console 1 | 197 | Virsh console 1 |
193 | # Qemux86-64 login: root | 198 | # Qemux86-64 login: root |
194 | tail -f /var/log/testpmd-out</programlisting> | 199 | tail -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> -> | ||
316 | <literal>OpenVSwitch</literal> -> <literal>Host Interfaces | ||
317 | </literal>-> <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> -> | ||
338 | <literal>OpenVSwitch</literal> -> <literal>Bridges</literal> | ||
339 | -> <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> -> <literal>Descriptors</literal> -> | ||
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> -> <literal>Instances</literal> -> |
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 <interface></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> -> | ||
306 | <literal>OpenVSwitch</literal> -> <literal>Host Interfaces | ||
307 | </literal>-> <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> -> | ||
339 | <literal>OpenVSwitch</literal> -> <literal>Bridges</literal> -> <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> -> <literal>Descriptors</literal> -> | ||
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> -> <literal>Instances</literal> -> | ||
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 <interface></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> -> | ||
865 | <literal>OpenVSwitch</literal> -> <literal>Host | ||
866 | Interfaces</literal> -> <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> -> | ||
887 | <literal>OpenvSwitch</literal> -> <literal>Bridges</literal> | ||
888 | -> <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> -> <literal>On-board</literal> | ||
916 | -> <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> -> <literal>Instances</literal> | ||
1024 | -> <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 <interface></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://<IP></literal>), to access the | 1137 | web browser (<literal>https://<IP></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> -> <literal>OpenVSwitch</literal> | ||
995 | -> <literal>Host Interfaces</literal> -> | ||
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> -> <literal>OpenvSwitch</literal> -> | ||
1028 | <literal>Bridges</literal> -> <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> -> <literal>On-board</literal> -> | ||
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> -> <literal>Instances</literal> -> <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 <interface></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 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 AABJRU5ErkJggg== " |
59 | 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 | ||
479 | E0IICUSq5h5vzl2xYoUYO3asfNPpsGHD1BKTB0asoKBAdO/eXZx22mnybaSA5p6kCs09lW+iuSeE | ||
480 | EBKIVMz9HXfcIfr16ydq1ix8AQ906KGHioceeiglXXnllaJcuXJyOfhs06aNmDFjhmjboSnNPUkJ | ||
481 | mnsq30RzTwghJBBhDcvZsGGD2Lp1q5pKjvXr14vdu3erqSLYc09SheaeyjfR3BNCCAkEx9yTfITm | ||
482 | nso30dwTQggJBM09yUdo7ql8U4kx9++++66Y3rmzEEccQVFUEuraqpX6FZGSDs09yUdo7ql8E809 | ||
483 | RVEJRXNPNDT3JB+huafyTTT3FEUlFM090dDck3yE5p7KN9HcUxSVUDT3Qvz+++/i66+/zint2bNH | ||
484 | rX140NyTfITmnso30dxTFJVQNPdCrFu3TgwZMkRNRZ+uXbuKjRs3qqnwoLlPDE6ockmkEJp7Kt9E | ||
485 | c09RVELR3NPca7S5//tP7qbZqZJk7l9//XXRq1cvNRV9+vfvL1555RU1VbKhuafyTTT3FEUlFM19 | ||
486 | yTb3v/zyi7jgggtEt27dROnSpUVBQYFYtGiRzAuiTPUQTztqojT4furctaV10lEg/5cRI0aIRx55 | ||
487 | RC2heNDc5y4091S+ieY+T7V90iRxXvv24sCqVUX5MmVElXLlRGsrvWnUKNf6Yairer38ShzgXMqp | ||
488 | 3BTNfck094iZs2fPFo0aNZK/a6hly5birLPOUjVyl127dokaNWrE/i+odevW4pJLLlE1kofmPneh | ||
489 | uafyTTT3PoIpRuBfaBllZ9mRBxxgOzi4qV6FCuK1Qw+NmzedWt2nj/zuimXLivv79hX/mzBBmv13 | ||
490 | Ro4UP0+c6DpPGPIy94m2YbbUp3ZtuU4rund3LU+k960TJMwLPWodIN3qONVbfd/cNm1s+c42NNYy | ||
491 | Uma5qUUdOsg6mMdZFqQtal2c5O+A5r5kmvsvvvhCtLHa64IFC2QPfLNmzcRbb70lzjvvPFUjt5k6 | ||
492 | dapob8UkDM+ZOXOm6G7Fgh9++EGVJg/Nfe5Cc0/lm2juiyFtqKY0bepavn7YMFGmdGlZZ2mXLq51 | ||
493 | 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 | ||
540 | AABJRU5ErkJggg== | ||
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://<IP></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://<IP></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<x>.iso as the Cloud-Init | 21 | <para><filename>vSRX-Site<x>.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<x>.conf as the Cloud-Init file(s). This file | 36 | <para><filename>FortiFW-Site<x>.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/<empty password></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/<empty password></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 | 314 | root@Atom-C3000> show security ike security-associations | |
299 | <programlisting>root@Atom-C3000> show security ike security-associations | ||
300 | Index State Initiator cookie Responder cookie Mode Remote Address | 315 | Index State Initiator cookie Responder cookie Mode Remote Address |
301 | 1588673 UP 2f2047b144ebfce4 0000000000000000 Aggressive 10.1.1.2 | 316 | 1588673 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 |