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 | nfv-access-documentation-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 |
