diff options
| author | Miruna Paun <Miruna.Paun@enea.com> | 2019-03-13 10:37:31 +0100 |
|---|---|---|
| committer | Miruna Paun <Miruna.Paun@enea.com> | 2019-03-13 12:09:03 +0100 |
| commit | 25f5a8f2e73a6985b46797bd159e8d4e08a2f981 (patch) | |
| tree | de515d39915523a6b0573939e1c73d38878005ed | |
| parent | cfbd3983c1b61cfd3d100dbd39f0ec4cf86203f1 (diff) | |
| download | nfv-access-documentation-25f5a8f2e73a6985b46797bd159e8d4e08a2f981.tar.gz | |
Updated book structure, proofed vnf chaining usecase.
Change-Id: I38237583d1eea8558d0ac960501aea046076411a
7 files changed, 2520 insertions, 2526 deletions
diff --git a/doc/book-enea-nfv-access-example-usecases/doc/book.xml b/doc/book-enea-nfv-access-example-usecases/doc/book.xml index c4c6397..22740d2 100644 --- a/doc/book-enea-nfv-access-example-usecases/doc/book.xml +++ b/doc/book-enea-nfv-access-example-usecases/doc/book.xml | |||
| @@ -15,6 +15,18 @@ | |||
| 15 | <xi:include href="../../s_docbuild/template/docsrc_common/bookinfo_userdoc.xml" | 15 | <xi:include href="../../s_docbuild/template/docsrc_common/bookinfo_userdoc.xml" |
| 16 | xmlns:xi="http://www.w3.org/2001/XInclude" /> | 16 | xmlns:xi="http://www.w3.org/2001/XInclude" /> |
| 17 | 17 | ||
| 18 | <xi:include href="example_usecases.xml" | 18 | <xi:include href="clav_vnf_examples.xml" |
| 19 | xmlns:xi="http://www.w3.org/2001/XInclude" /> | ||
| 20 | |||
| 21 | <xi:include href="enea_vnf_examples.xml" | ||
| 22 | xmlns:xi="http://www.w3.org/2001/XInclude" /> | ||
| 23 | |||
| 24 | <xi:include href="vnf_fortigate.xml" | ||
| 25 | xmlns:xi="http://www.w3.org/2001/XInclude" /> | ||
| 26 | |||
| 27 | <xi:include href="inband_management.xml" | ||
| 28 | xmlns:xi="http://www.w3.org/2001/XInclude" /> | ||
| 29 | |||
| 30 | <xi:include href="vnf_chaining.xml" | ||
| 19 | xmlns:xi="http://www.w3.org/2001/XInclude" /> | 31 | xmlns:xi="http://www.w3.org/2001/XInclude" /> |
| 20 | </book> | 32 | </book> |
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 new file mode 100644 index 0000000..eca3c99 --- /dev/null +++ b/doc/book-enea-nfv-access-example-usecases/doc/clav_vnf_examples.xml | |||
| @@ -0,0 +1,267 @@ | |||
| 1 | <?xml version="1.0" encoding="ISO-8859-1"?> | ||
| 2 | <chapter id="clav_vnf_example"> | ||
| 3 | <title>Clavister VNF Example Use-cases</title> | ||
| 4 | |||
| 5 | <section id="clav_vnf"> | ||
| 6 | <title>Clavister VNF</title> | ||
| 7 | |||
| 8 | <para>In this use case, <literal>target_1</literal> will run the Clavister | ||
| 9 | VNF and an Open vSwitch bridge, while <literal>target_2</literal> will run | ||
| 10 | two iPerf VNFs.</para> | ||
| 11 | |||
| 12 | <figure> | ||
| 13 | <title>Clavister VNF Example Overview</title> | ||
| 14 | |||
| 15 | <mediaobject> | ||
| 16 | <imageobject> | ||
| 17 | <imagedata align="center" fileref="images/clavister_vnf_diagram.png" | ||
| 18 | scale="50" /> | ||
| 19 | </imageobject> | ||
| 20 | </mediaobject> | ||
| 21 | </figure> | ||
| 22 | |||
| 23 | <para><emphasis role="bold">How to setup the target to run the Clavister | ||
| 24 | VNF and an Open vSwitch Bridge</emphasis></para> | ||
| 25 | |||
| 26 | <orderedlist> | ||
| 27 | <para><emphasis role="bold">Network Configuration for target_1 and | ||
| 28 | target_2</emphasis></para> | ||
| 29 | |||
| 30 | <listitem> | ||
| 31 | <para>From the uCPE Manager select the target_1: | ||
| 32 | <literal>Configuration</literal> -> <literal>OpenVSwitch</literal> | ||
| 33 | -> H<literal>ost Interfaces</literal> -> | ||
| 34 | <literal>Add</literal></para> | ||
| 35 | </listitem> | ||
| 36 | |||
| 37 | <listitem> | ||
| 38 | <para>Select the network interface that will be used to connect to the | ||
| 39 | second target, configure it for DPDK, and click | ||
| 40 | <literal>Create</literal> to send the configuration to the | ||
| 41 | target:</para> | ||
| 42 | |||
| 43 | <figure> | ||
| 44 | <title>Host Interface Creation</title> | ||
| 45 | |||
| 46 | <mediaobject> | ||
| 47 | <imageobject> | ||
| 48 | <imagedata align="center" | ||
| 49 | fileref="images/host_interface_creation.png" /> | ||
| 50 | </imageobject> | ||
| 51 | </mediaobject> | ||
| 52 | </figure> | ||
| 53 | </listitem> | ||
| 54 | |||
| 55 | <listitem> | ||
| 56 | <para>Create an Open vSwitch bridge (<literal>ovsbr0</literal>) with | ||
| 57 | one DPDK interface by selecting the <literal>Add</literal> button from | ||
| 58 | the <literal>Bridges</literal> tab.</para> | ||
| 59 | </listitem> | ||
| 60 | |||
| 61 | <listitem> | ||
| 62 | <para>Once the bridge creation popup appears, fill the fields and add | ||
| 63 | the physical interface:</para> | ||
| 64 | |||
| 65 | <figure> | ||
| 66 | <title>OVS bridge</title> | ||
| 67 | |||
| 68 | <mediaobject> | ||
| 69 | <imageobject> | ||
| 70 | <imagedata align="center" fileref="images/ovs_bridge_zero.png" | ||
| 71 | scale="80" /> | ||
| 72 | </imageobject> | ||
| 73 | </mediaobject> | ||
| 74 | </figure> | ||
| 75 | </listitem> | ||
| 76 | |||
| 77 | <listitem> | ||
| 78 | <para>Repeat the steps above on the target_2, by also using one DPDK | ||
| 79 | interface and creating an OVS bridge.</para> | ||
| 80 | </listitem> | ||
| 81 | </orderedlist> | ||
| 82 | |||
| 83 | <orderedlist> | ||
| 84 | <para><emphasis role="bold">Instantiate the VNFs:</emphasis></para> | ||
| 85 | |||
| 86 | <para>Once the network configuration has been completed on both targets | ||
| 87 | instantiate the VNFs:</para> | ||
| 88 | |||
| 89 | <para><emphasis role="bold">A) Instantiate Clavister VNF on | ||
| 90 | target_1:</emphasis></para> | ||
| 91 | |||
| 92 | <listitem> | ||
| 93 | <para>Select the target_1, then the VNF option from the top toolbar: | ||
| 94 | <literal>VNF</literal> -> <literal>Instances</literal> -> | ||
| 95 | <literal>Add</literal>.</para> | ||
| 96 | </listitem> | ||
| 97 | |||
| 98 | <listitem> | ||
| 99 | <para>Fill in the required information about the | ||
| 100 | <literal>Clavister</literal> VNF, (the default network configuration | ||
| 101 | can be used):</para> | ||
| 102 | |||
| 103 | <figure> | ||
| 104 | <title>VNF Instance</title> | ||
| 105 | |||
| 106 | <mediaobject> | ||
| 107 | <imageobject> | ||
| 108 | <imagedata align="center" fileref="images/vnf_instance.png" | ||
| 109 | scale="80" /> | ||
| 110 | </imageobject> | ||
| 111 | </mediaobject> | ||
| 112 | </figure> | ||
| 113 | </listitem> | ||
| 114 | </orderedlist> | ||
| 115 | |||
| 116 | <orderedlist> | ||
| 117 | <para><emphasis role="bold">B) Instantiate two iPerf VNFs (one as client | ||
| 118 | and one as server) on target_2: </emphasis></para> | ||
| 119 | |||
| 120 | <listitem> | ||
| 121 | <para>Instantiate two <literal>iPerf</literal> VNFs on target_2. One | ||
| 122 | will act as the server and the second as the client.</para> | ||
| 123 | </listitem> | ||
| 124 | |||
| 125 | <listitem> | ||
| 126 | <para>Select target_2, then the VNF option from the top toolbar: | ||
| 127 | <literal>VNF</literal> -> <literal>Instances</literal> -> | ||
| 128 | <literal>Add</literal>.</para> | ||
| 129 | </listitem> | ||
| 130 | |||
| 131 | <listitem> | ||
| 132 | <para>In the <literal>VNF Instance</literal> window, select the first | ||
| 133 | <literal>iPerf</literal> VNF from the dropdown menu, configure it to | ||
| 134 | act as a server by unchecking the <literal>Client mode IPerf</literal> | ||
| 135 | box, and click the <literal>Create</literal> button.</para> | ||
| 136 | </listitem> | ||
| 137 | |||
| 138 | <listitem> | ||
| 139 | <para>Select <literal>Add</literal>, enable the <literal>Client mode | ||
| 140 | IPerf</literal> checkbox and then click <literal>Create</literal> to | ||
| 141 | instantiate the second <literal>iPerf VNF</literal> as a client, and | ||
| 142 | to run it in client mode.</para> | ||
| 143 | </listitem> | ||
| 144 | |||
| 145 | <listitem> | ||
| 146 | <para>In order to check that traffic is forwarded between the VNFs, | ||
| 147 | connect to the iPerf VNF client console:</para> | ||
| 148 | |||
| 149 | <para>Connect to the target_2 by using: <literal>SSH</literal> -> | ||
| 150 | <literal>user</literal> (root) -><literal>Connect</literal> and run | ||
| 151 | the following:</para> | ||
| 152 | |||
| 153 | <programlisting>virsh list | ||
| 154 | virsh console | ||
| 155 | root@qemux86-64:~# iperf3 -c 192.168.10.10</programlisting> | ||
| 156 | </listitem> | ||
| 157 | </orderedlist> | ||
| 158 | </section> | ||
| 159 | |||
| 160 | <section id="clav_example_sriov"> | ||
| 161 | <title>Clavister VNF using SR-IOV</title> | ||
| 162 | |||
| 163 | <para>In this use case, target 1 will run the iPerf server and iPerf | ||
| 164 | client VNFs using SR-IOV and target 2 will run the Clavister VNF using | ||
| 165 | SR-IOV with two virtual functions (vf1 and vf2):</para> | ||
| 166 | |||
| 167 | <figure> | ||
| 168 | <title>Example Overview</title> | ||
| 169 | |||
| 170 | <mediaobject> | ||
| 171 | <imageobject> | ||
| 172 | <imagedata align="center" fileref="images/clav_VNF_demo_SR-IOV.png" | ||
| 173 | scale="60" /> | ||
| 174 | </imageobject> | ||
| 175 | </mediaobject> | ||
| 176 | </figure> | ||
| 177 | |||
| 178 | <orderedlist> | ||
| 179 | <listitem> | ||
| 180 | <para>On target 2, create an SR-IOV configuration with 2 virtual | ||
| 181 | functions: <literal>Configuration</literal> -> | ||
| 182 | <literal>OpenVSwitch</literal> -> <literal>Host | ||
| 183 | Interfaces</literal> -> <literal>Add</literal>:</para> | ||
| 184 | |||
| 185 | <figure> | ||
| 186 | <title>SR-IOV configuration with 2 virtual functions</title> | ||
| 187 | |||
| 188 | <mediaobject> | ||
| 189 | <imageobject> | ||
| 190 | <imagedata align="center" | ||
| 191 | fileref="images/sriov_configuration.png" scale="80" /> | ||
| 192 | </imageobject> | ||
| 193 | </mediaobject> | ||
| 194 | </figure> | ||
| 195 | </listitem> | ||
| 196 | |||
| 197 | <listitem> | ||
| 198 | <para>Instantiate the Clavister VNF on target 2, by clicking | ||
| 199 | <literal>VNF</literal> -> <literal>Instances</literal> -> | ||
| 200 | <literal>Add</literal>.</para> | ||
| 201 | |||
| 202 | <para>Select <literal>SrIovAdapterPool</literal> as an Interface type | ||
| 203 | for both Interface1 type and 2 type, before clicking | ||
| 204 | <literal>Create</literal>:</para> | ||
| 205 | |||
| 206 | <figure> | ||
| 207 | <title>Instantiating the Clavister VNF on target 2</title> | ||
| 208 | |||
| 209 | <mediaobject> | ||
| 210 | <imageobject> | ||
| 211 | <imagedata align="center" fileref="images/srlov_adap_pool.png" | ||
| 212 | scale="70" /> | ||
| 213 | </imageobject> | ||
| 214 | </mediaobject> | ||
| 215 | </figure> | ||
| 216 | </listitem> | ||
| 217 | |||
| 218 | <listitem> | ||
| 219 | <para>On target 1, create an SR-IOV interface as done in step | ||
| 220 | 1.</para> | ||
| 221 | </listitem> | ||
| 222 | |||
| 223 | <listitem> | ||
| 224 | <para>Create the iPerf server on target 1. Select | ||
| 225 | <literal>SrIovAdapterPool</literal> as an Interface type:</para> | ||
| 226 | |||
| 227 | <figure> | ||
| 228 | <title>IPerf Server Interface Type</title> | ||
| 229 | |||
| 230 | <mediaobject> | ||
| 231 | <imageobject> | ||
| 232 | <imagedata align="center" | ||
| 233 | fileref="images/iperf_server_inttype.png" scale="70" /> | ||
| 234 | </imageobject> | ||
| 235 | </mediaobject> | ||
| 236 | </figure> | ||
| 237 | </listitem> | ||
| 238 | |||
| 239 | <listitem> | ||
| 240 | <para>Create the iPerf client on target 1. Select | ||
| 241 | <literal>SrIovAdapterPool</literal> as an Interface type and tick the | ||
| 242 | <literal>Client mode IPer</literal> checkbox:</para> | ||
| 243 | |||
| 244 | <figure> | ||
| 245 | <title>IPerf Client Interface Type</title> | ||
| 246 | |||
| 247 | <mediaobject> | ||
| 248 | <imageobject> | ||
| 249 | <imagedata align="center" | ||
| 250 | fileref="images/iperf_client_inttype.png" scale="70" /> | ||
| 251 | </imageobject> | ||
| 252 | </mediaobject> | ||
| 253 | </figure> | ||
| 254 | </listitem> | ||
| 255 | |||
| 256 | <listitem> | ||
| 257 | <para>In order to check that traffic is forwarded between the VNFs, | ||
| 258 | connect to the iPerf VNF client console by using: | ||
| 259 | <literal>SSH</literal> -> <literal>user</literal> (root) | ||
| 260 | -><literal>Connect</literal> and run the following | ||
| 261 | commands:<programlisting>virsh list | ||
| 262 | virsh console | ||
| 263 | root@qemux86-64:~# iperf3 -c 192.168.10.10</programlisting></para> | ||
| 264 | </listitem> | ||
| 265 | </orderedlist> | ||
| 266 | </section> | ||
| 267 | </chapter> \ No newline at end of file | ||
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 new file mode 100644 index 0000000..9ec4861 --- /dev/null +++ b/doc/book-enea-nfv-access-example-usecases/doc/enea_vnf_examples.xml | |||
| @@ -0,0 +1,274 @@ | |||
| 1 | <?xml version="1.0" encoding="ISO-8859-1"?> | ||
| 2 | <chapter id="enea_vnf_examples"> | ||
| 3 | <title>Enea VNF Example Use-cases</title> | ||
| 4 | |||
| 5 | <section id="enea_vnf"> | ||
| 6 | <title>TestPMD VNF</title> | ||
| 7 | |||
| 8 | <para>Use case description: pktgen[DPDK] - PHY1 - PHY2 - [DPDK]OVS - | ||
| 9 | VM[DPDK]testpmd(forwarding) - OVS[DPDK] - VM[DPDK] | ||
| 10 | testpmd(termination).</para> | ||
| 11 | |||
| 12 | <figure> | ||
| 13 | <title>Enea VNF Example Overview</title> | ||
| 14 | |||
| 15 | <mediaobject> | ||
| 16 | <imageobject> | ||
| 17 | <imagedata align="center" | ||
| 18 | fileref="images/enea_vnf_demo_overview.png" scale="80" /> | ||
| 19 | </imageobject> | ||
| 20 | </mediaobject> | ||
| 21 | </figure> | ||
| 22 | |||
| 23 | <para><emphasis role="bold">How to setup the Enea VNF | ||
| 24 | Example</emphasis></para> | ||
| 25 | |||
| 26 | <orderedlist> | ||
| 27 | <listitem> | ||
| 28 | <para>Bind the host interfaces to the DPDK by selecting the target_1: | ||
| 29 | <literal>Configuration</literal> -> <literal>OpenVSwitch</literal> | ||
| 30 | -> <literal>Host Interfaces</literal> -> | ||
| 31 | <literal>Add</literal>:</para> | ||
| 32 | |||
| 33 | <figure> | ||
| 34 | <title>Adding OVS Host Interfaces</title> | ||
| 35 | |||
| 36 | <mediaobject> | ||
| 37 | <imageobject> | ||
| 38 | <imagedata align="center" | ||
| 39 | fileref="images/ovs_host_interface.png" scale="80" /> | ||
| 40 | </imageobject> | ||
| 41 | </mediaobject> | ||
| 42 | </figure> | ||
| 43 | </listitem> | ||
| 44 | |||
| 45 | <listitem> | ||
| 46 | <para>Select the network interface that will be used to connect to the | ||
| 47 | second target and configure it for the DPDK:</para> | ||
| 48 | |||
| 49 | <figure> | ||
| 50 | <title>Configuring the host interface</title> | ||
| 51 | |||
| 52 | <mediaobject> | ||
| 53 | <imageobject> | ||
| 54 | <imagedata align="center" | ||
| 55 | fileref="images/secondtar_hostinterface.png" | ||
| 56 | scale="90" /> | ||
| 57 | </imageobject> | ||
| 58 | </mediaobject> | ||
| 59 | </figure> | ||
| 60 | </listitem> | ||
| 61 | |||
| 62 | <listitem> | ||
| 63 | <para>Select the <literal>Create</literal> button to send the | ||
| 64 | configuration to the target. The same steps must also be performed on | ||
| 65 | the target_2.</para> | ||
| 66 | </listitem> | ||
| 67 | |||
| 68 | <listitem> | ||
| 69 | <para>Create an OpenVSwitch bridge (<literal>ovsbr0</literal>) on | ||
| 70 | target_1 that uses one DPDK interface, by selecting the | ||
| 71 | <literal>Add</literal> button from the Bridges tab and then selcting: | ||
| 72 | <literal>Configuration</literal> -> | ||
| 73 | <literal>OpenVSwitch</literal>-> <literal>Bridges</literal>:</para> | ||
| 74 | |||
| 75 | <figure> | ||
| 76 | <title>OVS Bridge Table</title> | ||
| 77 | |||
| 78 | <mediaobject> | ||
| 79 | <imageobject> | ||
| 80 | <imagedata align="center" fileref="images/ovs_bridge_tab.png" | ||
| 81 | scale="75" /> | ||
| 82 | </imageobject> | ||
| 83 | </mediaobject> | ||
| 84 | </figure> | ||
| 85 | |||
| 86 | <figure> | ||
| 87 | <title>Adding the interface to the OVS Bridge</title> | ||
| 88 | |||
| 89 | <mediaobject> | ||
| 90 | <imageobject> | ||
| 91 | <imagedata align="center" fileref="images/ovs_bridge_two.png" | ||
| 92 | scale="90" /> | ||
| 93 | </imageobject> | ||
| 94 | </mediaobject> | ||
| 95 | </figure> | ||
| 96 | </listitem> | ||
| 97 | |||
| 98 | <listitem> | ||
| 99 | <para>Instantiate the TestPMD VNFs on target_1 by selecting: | ||
| 100 | <literal>VNF</literal> -> <literal>Instances</literal> -> | ||
| 101 | <literal>Add</literal>.</para> | ||
| 102 | </listitem> | ||
| 103 | |||
| 104 | <listitem> | ||
| 105 | <para>Configure the VNF that forwards traffic:</para> | ||
| 106 | |||
| 107 | <figure> | ||
| 108 | <title>Configuring the fwdVNF</title> | ||
| 109 | |||
| 110 | <mediaobject> | ||
| 111 | <imageobject> | ||
| 112 | <imagedata align="center" fileref="images/traffic_forward.png" | ||
| 113 | scale="85" /> | ||
| 114 | </imageobject> | ||
| 115 | </mediaobject> | ||
| 116 | </figure> | ||
| 117 | </listitem> | ||
| 118 | |||
| 119 | <listitem> | ||
| 120 | <para>Configure the VNF that terminates traffic:</para> | ||
| 121 | |||
| 122 | <figure> | ||
| 123 | <title>Configuring the termVNF</title> | ||
| 124 | |||
| 125 | <mediaobject> | ||
| 126 | <imageobject> | ||
| 127 | <imagedata align="center" fileref="images/traffic_terminate.png" | ||
| 128 | scale="85" /> | ||
| 129 | </imageobject> | ||
| 130 | </mediaobject> | ||
| 131 | </figure> | ||
| 132 | </listitem> | ||
| 133 | |||
| 134 | <listitem> | ||
| 135 | <para>Add OpenVSwitch flows to control this traffic:</para> | ||
| 136 | |||
| 137 | <figure> | ||
| 138 | <title>Configuring the FWD flow</title> | ||
| 139 | |||
| 140 | <mediaobject> | ||
| 141 | <imageobject> | ||
| 142 | <imagedata align="center" fileref="images/flow_fwd.png" | ||
| 143 | scale="90" /> | ||
| 144 | </imageobject> | ||
| 145 | </mediaobject> | ||
| 146 | </figure> | ||
| 147 | |||
| 148 | <figure> | ||
| 149 | <title>Configuring the TERM flow</title> | ||
| 150 | |||
| 151 | <mediaobject> | ||
| 152 | <imageobject> | ||
| 153 | <imagedata align="center" fileref="images/flow_term.png" | ||
| 154 | scale="90" /> | ||
| 155 | </imageobject> | ||
| 156 | </mediaobject> | ||
| 157 | </figure> | ||
| 158 | </listitem> | ||
| 159 | |||
| 160 | <listitem> | ||
| 161 | <para>Start pktgen on target_2. Connect to the target by using: | ||
| 162 | <literal>SSH</literal> -> <literal>user</literal> (root) and | ||
| 163 | perform the following:</para> | ||
| 164 | |||
| 165 | <programlisting>killall ovsdb-server ovs-vswitchd | ||
| 166 | rm -rf /etc/openvswitch/* | ||
| 167 | mkdir -p /var/run/openvswitch | ||
| 168 | modprobe igb_uio | ||
| 169 | dpdk-devbind --bind=igb_uio 0000:05:00.3 | ||
| 170 | cd /usr/share/apps/pktgen/ | ||
| 171 | ./pktgen -c 0x7 -n 4 --proc-type auto --socket-mem 256 -w 0000:05:00.3 -- \ | ||
| 172 | -P -m "[1:2].0" | ||
| 173 | Pktgen:/> start 0</programlisting> | ||
| 174 | </listitem> | ||
| 175 | |||
| 176 | <listitem> | ||
| 177 | <para>Connect to the forwarder VNF in order to check the traffic | ||
| 178 | statistics by selecting target_1: <literal>SSH</literal> -> | ||
| 179 | <literal>user</literal> (root):</para> | ||
| 180 | |||
| 181 | <programlisting>Virsh list | ||
| 182 | Virsh console 1 | ||
| 183 | # Qemux86-64 login: root | ||
| 184 | tail -f /opt/testpmd-out</programlisting> | ||
| 185 | |||
| 186 | <figure> | ||
| 187 | <title>Traffic Statistics</title> | ||
| 188 | |||
| 189 | <mediaobject> | ||
| 190 | <imageobject> | ||
| 191 | <imagedata align="center" | ||
| 192 | fileref="images/connection_information.png" | ||
| 193 | scale="70" /> | ||
| 194 | </imageobject> | ||
| 195 | </mediaobject> | ||
| 196 | </figure> | ||
| 197 | </listitem> | ||
| 198 | </orderedlist> | ||
| 199 | </section> | ||
| 200 | |||
| 201 | <section id="vnf_pci"> | ||
| 202 | <title>TestPMD VNF using PCI passthrough</title> | ||
| 203 | |||
| 204 | <para>In this use case, target 1 will run the Pktgen and target 2 will run | ||
| 205 | the TestPMD VNF. Both will be using PCI passthrough:</para> | ||
| 206 | |||
| 207 | <figure> | ||
| 208 | <title>TestPMD VNF using PCI passthrough Overview</title> | ||
| 209 | |||
| 210 | <mediaobject> | ||
| 211 | <imageobject> | ||
| 212 | <imagedata align="center" fileref="images/testPMD_VNF_PCI.png" | ||
| 213 | scale="65" /> | ||
| 214 | </imageobject> | ||
| 215 | </mediaobject> | ||
| 216 | </figure> | ||
| 217 | |||
| 218 | <orderedlist> | ||
| 219 | <listitem> | ||
| 220 | <para>Make sure that neither target 1 nor target 2 have any configured | ||
| 221 | host interfaces by selcting target: <literal>Configuration</literal> | ||
| 222 | -> <literal>OpenVSwitch</literal> -> <literal>Host | ||
| 223 | Interfaces</literal>.</para> | ||
| 224 | </listitem> | ||
| 225 | |||
| 226 | <listitem> | ||
| 227 | <para>On target 1 start the Pktgen VNF. Select | ||
| 228 | <literal>PciPassthrough</literal> as the Interface type.</para> | ||
| 229 | |||
| 230 | <para>From the drop-down list, select the PCI interface corresponding | ||
| 231 | to the NIC which is connected to target 2:</para> | ||
| 232 | |||
| 233 | <figure> | ||
| 234 | <title>Selecting the Pktgen VNF Interface</title> | ||
| 235 | |||
| 236 | <mediaobject> | ||
| 237 | <imageobject> | ||
| 238 | <imagedata align="center" fileref="images/pciPass_interface.png" | ||
| 239 | scale="70" /> | ||
| 240 | </imageobject> | ||
| 241 | </mediaobject> | ||
| 242 | </figure> | ||
| 243 | </listitem> | ||
| 244 | |||
| 245 | <listitem> | ||
| 246 | <para>On target 2, start the TestPmdForwarder VNF. Select | ||
| 247 | "PciPassthrough" as the Interface type. From the drop-down list, | ||
| 248 | select the PCI interface corresponding to the NIC which is connected | ||
| 249 | to target 1:</para> | ||
| 250 | |||
| 251 | <figure> | ||
| 252 | <title>Selecting the TestPmdForwarder VNF Interface</title> | ||
| 253 | |||
| 254 | <mediaobject> | ||
| 255 | <imageobject> | ||
| 256 | <imagedata align="center" | ||
| 257 | fileref="images/testpmd_fwdvnf_int.png" scale="70" /> | ||
| 258 | </imageobject> | ||
| 259 | </mediaobject> | ||
| 260 | </figure> | ||
| 261 | </listitem> | ||
| 262 | |||
| 263 | <listitem> | ||
| 264 | <para>To check that traffic is being forwarded from target 2, SSH to | ||
| 265 | the target and connect to the VNFs console:</para> | ||
| 266 | |||
| 267 | <programlisting>Right click on target 2 and select SSH. | ||
| 268 | Run: virsh list | ||
| 269 | Run: virsh console [VM NAME] | ||
| 270 | Run: tail -f /opt/testpmd-out</programlisting> | ||
| 271 | </listitem> | ||
| 272 | </orderedlist> | ||
| 273 | </section> | ||
| 274 | </chapter> \ No newline at end of file | ||
diff --git a/doc/book-enea-nfv-access-example-usecases/doc/example_usecases.xml b/doc/book-enea-nfv-access-example-usecases/doc/example_usecases.xml deleted file mode 100644 index 7934d71..0000000 --- a/doc/book-enea-nfv-access-example-usecases/doc/example_usecases.xml +++ /dev/null | |||
| @@ -1,2525 +0,0 @@ | |||
| 1 | <?xml version="1.0" encoding="ISO-8859-1"?> | ||
| 2 | <chapter id="example_usecases"> | ||
| 3 | <title>Example Use Cases Manual</title> | ||
| 4 | |||
| 5 | <para>This book will detail various example use cases that a user can | ||
| 6 | experiment with.</para> | ||
| 7 | |||
| 8 | <section id="clav_vnf_example"> | ||
| 9 | <title>Clavister VNF Examples</title> | ||
| 10 | |||
| 11 | <section id="clav_vnf"> | ||
| 12 | <title>Clavister VNF</title> | ||
| 13 | |||
| 14 | <para>In this use case, <literal>target_1</literal> will run the | ||
| 15 | Clavister VNF and an Open vSwitch bridge and <literal>target_2</literal> | ||
| 16 | two iPerf VNFs.</para> | ||
| 17 | |||
| 18 | <figure> | ||
| 19 | <title>Clavister VNF Example Overview</title> | ||
| 20 | |||
| 21 | <mediaobject> | ||
| 22 | <imageobject> | ||
| 23 | <imagedata align="center" | ||
| 24 | fileref="images/clavister_vnf_diagram.png" scale="50" /> | ||
| 25 | </imageobject> | ||
| 26 | </mediaobject> | ||
| 27 | </figure> | ||
| 28 | |||
| 29 | <para><emphasis role="bold">How to setup the target to run the Clavister | ||
| 30 | VNF and an Open vSwitch Bridge</emphasis></para> | ||
| 31 | |||
| 32 | <orderedlist> | ||
| 33 | <para><emphasis role="bold">Network Configuration for target_1 and | ||
| 34 | target_2</emphasis></para> | ||
| 35 | |||
| 36 | <listitem> | ||
| 37 | <para>From uCPE Manager select the target_1: | ||
| 38 | <literal>Configuration</literal> -> | ||
| 39 | <literal>OpenVSwitch</literal> -> H<literal>ost | ||
| 40 | Interfaces</literal> -> <literal>Add</literal></para> | ||
| 41 | </listitem> | ||
| 42 | |||
| 43 | <listitem> | ||
| 44 | <para>Select the network interface that will be used to connect to | ||
| 45 | the second target, configure it for DPDK, and click | ||
| 46 | <literal>Create</literal> to send the configuration to the | ||
| 47 | target:</para> | ||
| 48 | |||
| 49 | <figure> | ||
| 50 | <title>Host Interface Creation</title> | ||
| 51 | |||
| 52 | <mediaobject> | ||
| 53 | <imageobject> | ||
| 54 | <imagedata align="center" | ||
| 55 | fileref="images/host_interface_creation.png" /> | ||
| 56 | </imageobject> | ||
| 57 | </mediaobject> | ||
| 58 | </figure> | ||
| 59 | </listitem> | ||
| 60 | |||
| 61 | <listitem> | ||
| 62 | <para>Create an Open vSwitch bridge (<literal>ovsbr0</literal>) with | ||
| 63 | one DPDK interface by selecting the <literal>Add</literal> button | ||
| 64 | from the <literal>Bridges</literal> tab.</para> | ||
| 65 | </listitem> | ||
| 66 | |||
| 67 | <listitem> | ||
| 68 | <para>Once the bridge creation popup appears, fill the fields and | ||
| 69 | add the physical interface:</para> | ||
| 70 | |||
| 71 | <figure> | ||
| 72 | <title>OVS bridge</title> | ||
| 73 | |||
| 74 | <mediaobject> | ||
| 75 | <imageobject> | ||
| 76 | <imagedata align="center" fileref="images/ovs_bridge_zero.png" | ||
| 77 | scale="80" /> | ||
| 78 | </imageobject> | ||
| 79 | </mediaobject> | ||
| 80 | </figure> | ||
| 81 | </listitem> | ||
| 82 | |||
| 83 | <listitem> | ||
| 84 | <para>Repeat the steps above on the target_2, by also using one DPDK | ||
| 85 | interface and creating an OVS bridge.</para> | ||
| 86 | </listitem> | ||
| 87 | </orderedlist> | ||
| 88 | |||
| 89 | <orderedlist> | ||
| 90 | <para><emphasis role="bold">Instantiate the VNFs:</emphasis></para> | ||
| 91 | |||
| 92 | <para>Once the network configuration has been completed on both | ||
| 93 | targets instantiate the VNFs:</para> | ||
| 94 | |||
| 95 | <para><emphasis role="bold">A) Instantiate Clavister VNF on | ||
| 96 | target_1:</emphasis></para> | ||
| 97 | |||
| 98 | <listitem> | ||
| 99 | <para>Select the target_1, then the VNF option from the top toolbar: | ||
| 100 | <literal>VNF</literal> -> <literal>Instances</literal> -> | ||
| 101 | <literal>Add</literal>.</para> | ||
| 102 | </listitem> | ||
| 103 | |||
| 104 | <listitem> | ||
| 105 | <para>Fill in the required information about the | ||
| 106 | <literal>Clavister</literal> VNF, (the default network configuration | ||
| 107 | can be used):</para> | ||
| 108 | |||
| 109 | <figure> | ||
| 110 | <title>VNF Instance</title> | ||
| 111 | |||
| 112 | <mediaobject> | ||
| 113 | <imageobject> | ||
| 114 | <imagedata align="center" fileref="images/vnf_instance.png" | ||
| 115 | scale="80" /> | ||
| 116 | </imageobject> | ||
| 117 | </mediaobject> | ||
| 118 | </figure> | ||
| 119 | </listitem> | ||
| 120 | </orderedlist> | ||
| 121 | |||
| 122 | <orderedlist> | ||
| 123 | <para><emphasis role="bold">B) Instantiate two iPerf VNFs (one as | ||
| 124 | client and one as server) on target_2: </emphasis></para> | ||
| 125 | |||
| 126 | <listitem> | ||
| 127 | <para>Instantiate two <literal>iPerf</literal> VNFs on target_2. One | ||
| 128 | will act as the server and the second as the client.</para> | ||
| 129 | </listitem> | ||
| 130 | |||
| 131 | <listitem> | ||
| 132 | <para>Select target_2, then the VNF option from the top toolbar: | ||
| 133 | <literal>VNF</literal> -> <literal>Instances</literal> -> | ||
| 134 | <literal>Add</literal>.</para> | ||
| 135 | </listitem> | ||
| 136 | |||
| 137 | <listitem> | ||
| 138 | <para>In the <literal>VNF Instance</literal> window, select the | ||
| 139 | first <literal>iPerf</literal> VNF from the dropdown menu, configure | ||
| 140 | it to act as a server by unchecking the <literal>Client mode | ||
| 141 | IPerf</literal> box, and click the <literal>Create</literal> | ||
| 142 | button.</para> | ||
| 143 | </listitem> | ||
| 144 | |||
| 145 | <listitem> | ||
| 146 | <para>Select <literal>Add</literal>, enable the <literal>Client mode | ||
| 147 | IPerf</literal> checkbox and then click <literal>Create</literal> to | ||
| 148 | instantiate the second <literal>iPerf VNF</literal> as a client, and | ||
| 149 | to run it in client mode.</para> | ||
| 150 | </listitem> | ||
| 151 | |||
| 152 | <listitem> | ||
| 153 | <para>In order to check that traffic is forwarded between the VNFs, | ||
| 154 | connect to the iPerf VNF client console:</para> | ||
| 155 | |||
| 156 | <para>Connect to the target_2 by using: <literal>SSH</literal> -> | ||
| 157 | <literal>user</literal> (root) -><literal>Connect</literal> and | ||
| 158 | run the following:</para> | ||
| 159 | |||
| 160 | <programlisting>virsh list | ||
| 161 | virsh console | ||
| 162 | root@qemux86-64:~# iperf3 -c 192.168.10.10</programlisting> | ||
| 163 | </listitem> | ||
| 164 | </orderedlist> | ||
| 165 | </section> | ||
| 166 | |||
| 167 | <section id="clav_example_sriov"> | ||
| 168 | <title>Clavister VNF using SR-IOV</title> | ||
| 169 | |||
| 170 | <para>In this use case, target 1 will run the iPerf server and iPerf | ||
| 171 | client VNFs using SR-IOV and target 2 will run the Clavister VNF using | ||
| 172 | SR-IOV with two virtual functions (vf1 and vf2):</para> | ||
| 173 | |||
| 174 | <figure> | ||
| 175 | <title>Example Overview</title> | ||
| 176 | |||
| 177 | <mediaobject> | ||
| 178 | <imageobject> | ||
| 179 | <imagedata align="center" | ||
| 180 | fileref="images/clav_VNF_demo_SR-IOV.png" scale="60" /> | ||
| 181 | </imageobject> | ||
| 182 | </mediaobject> | ||
| 183 | </figure> | ||
| 184 | |||
| 185 | <orderedlist> | ||
| 186 | <listitem> | ||
| 187 | <para>On target 2, create an SR-IOV configuration with 2 virtual | ||
| 188 | functions: <literal>Configuration</literal> -> | ||
| 189 | <literal>OpenVSwitch</literal> -> <literal>Host | ||
| 190 | Interfaces</literal> -> <literal>Add</literal>:</para> | ||
| 191 | |||
| 192 | <figure> | ||
| 193 | <title>SR-IOV configuration with 2 virtual functions</title> | ||
| 194 | |||
| 195 | <mediaobject> | ||
| 196 | <imageobject> | ||
| 197 | <imagedata align="center" | ||
| 198 | fileref="images/sriov_configuration.png" scale="80" /> | ||
| 199 | </imageobject> | ||
| 200 | </mediaobject> | ||
| 201 | </figure> | ||
| 202 | </listitem> | ||
| 203 | |||
| 204 | <listitem> | ||
| 205 | <para>Instantiate the Clavister VNF on target 2, by clicking | ||
| 206 | <literal>VNF</literal> -> <literal>Instances</literal> -> | ||
| 207 | <literal>Add</literal>.</para> | ||
| 208 | |||
| 209 | <para>Select <literal>SrIovAdapterPool</literal> as an Interface | ||
| 210 | type for both Interface1 type and 2 type, before clicking | ||
| 211 | <literal>Create</literal>:</para> | ||
| 212 | |||
| 213 | <figure> | ||
| 214 | <title>Instantiating the Clavister VNF on target 2</title> | ||
| 215 | |||
| 216 | <mediaobject> | ||
| 217 | <imageobject> | ||
| 218 | <imagedata align="center" fileref="images/srlov_adap_pool.png" | ||
| 219 | scale="70" /> | ||
| 220 | </imageobject> | ||
| 221 | </mediaobject> | ||
| 222 | </figure> | ||
| 223 | </listitem> | ||
| 224 | |||
| 225 | <listitem> | ||
| 226 | <para>On target 1, create an SR-IOV interface as done in step | ||
| 227 | 1.</para> | ||
| 228 | </listitem> | ||
| 229 | |||
| 230 | <listitem> | ||
| 231 | <para>Create the iPerf server on target 1. Select | ||
| 232 | <literal>SrIovAdapterPool</literal> as an Interface type:</para> | ||
| 233 | |||
| 234 | <figure> | ||
| 235 | <title>IPerf Server Interface Type</title> | ||
| 236 | |||
| 237 | <mediaobject> | ||
| 238 | <imageobject> | ||
| 239 | <imagedata align="center" | ||
| 240 | fileref="images/iperf_server_inttype.png" | ||
| 241 | scale="70" /> | ||
| 242 | </imageobject> | ||
| 243 | </mediaobject> | ||
| 244 | </figure> | ||
| 245 | </listitem> | ||
| 246 | |||
| 247 | <listitem> | ||
| 248 | <para>Create the iPerf client on target 1. Select | ||
| 249 | <literal>SrIovAdapterPool</literal> as an Interface type and tick | ||
| 250 | the <literal>Client mode IPer</literal> checkbox:</para> | ||
| 251 | |||
| 252 | <figure> | ||
| 253 | <title>IPerf Client Interface Type</title> | ||
| 254 | |||
| 255 | <mediaobject> | ||
| 256 | <imageobject> | ||
| 257 | <imagedata align="center" | ||
| 258 | fileref="images/iperf_client_inttype.png" | ||
| 259 | scale="70" /> | ||
| 260 | </imageobject> | ||
| 261 | </mediaobject> | ||
| 262 | </figure> | ||
| 263 | </listitem> | ||
| 264 | |||
| 265 | <listitem> | ||
| 266 | <para>In order to check that traffic is forwarded between the VNFs, | ||
| 267 | connect to the iPerf VNF client console by using: | ||
| 268 | <literal>SSH</literal> -> <literal>user</literal> (root) | ||
| 269 | -><literal>Connect</literal> and run the following | ||
| 270 | commands:<programlisting>virsh list | ||
| 271 | virsh console | ||
| 272 | root@qemux86-64:~# iperf3 -c 192.168.10.10</programlisting></para> | ||
| 273 | </listitem> | ||
| 274 | </orderedlist> | ||
| 275 | </section> | ||
| 276 | </section> | ||
| 277 | |||
| 278 | <section id="enea_vnf_examples"> | ||
| 279 | <title>Enea VNF Examples</title> | ||
| 280 | |||
| 281 | <section id="enea_vnf"> | ||
| 282 | <title>TestPMD VNF</title> | ||
| 283 | |||
| 284 | <para>Use case description: pktgen[DPDK] - PHY1 - PHY2 - [DPDK]OVS - | ||
| 285 | VM[DPDK]testpmd(forwarding) - OVS[DPDK] - VM[DPDK] | ||
| 286 | testpmd(termination).</para> | ||
| 287 | |||
| 288 | <figure> | ||
| 289 | <title>Enea VNF Example Overview</title> | ||
| 290 | |||
| 291 | <mediaobject> | ||
| 292 | <imageobject> | ||
| 293 | <imagedata align="center" | ||
| 294 | fileref="images/enea_vnf_demo_overview.png" scale="80" /> | ||
| 295 | </imageobject> | ||
| 296 | </mediaobject> | ||
| 297 | </figure> | ||
| 298 | |||
| 299 | <para><emphasis role="bold">How to setup the Enea VNF | ||
| 300 | Example</emphasis></para> | ||
| 301 | |||
| 302 | <orderedlist> | ||
| 303 | <listitem> | ||
| 304 | <para>Bind the host interfaces to the DPDK by selecting the | ||
| 305 | target_1: <literal>Configuration</literal> -> | ||
| 306 | <literal>OpenVSwitch</literal> -> <literal>Host | ||
| 307 | Interfaces</literal> -> <literal>Add</literal>:</para> | ||
| 308 | |||
| 309 | <figure> | ||
| 310 | <title>Adding OVS Host Interfaces</title> | ||
| 311 | |||
| 312 | <mediaobject> | ||
| 313 | <imageobject> | ||
| 314 | <imagedata align="center" | ||
| 315 | fileref="images/ovs_host_interface.png" scale="80" /> | ||
| 316 | </imageobject> | ||
| 317 | </mediaobject> | ||
| 318 | </figure> | ||
| 319 | </listitem> | ||
| 320 | |||
| 321 | <listitem> | ||
| 322 | <para>Select the network interface that will be used to connect to | ||
| 323 | the second target and configure it for the DPDK:</para> | ||
| 324 | |||
| 325 | <figure> | ||
| 326 | <title>Configuring the host interface</title> | ||
| 327 | |||
| 328 | <mediaobject> | ||
| 329 | <imageobject> | ||
| 330 | <imagedata align="center" | ||
| 331 | fileref="images/secondtar_hostinterface.png" | ||
| 332 | scale="90" /> | ||
| 333 | </imageobject> | ||
| 334 | </mediaobject> | ||
| 335 | </figure> | ||
| 336 | </listitem> | ||
| 337 | |||
| 338 | <listitem> | ||
| 339 | <para>Select the <literal>Create</literal> button to send the | ||
| 340 | configuration to the target. The same steps must also be performed | ||
| 341 | on the target_2.</para> | ||
| 342 | </listitem> | ||
| 343 | |||
| 344 | <listitem> | ||
| 345 | <para>Create an OpenVSwitch bridge (<literal>ovsbr0</literal>) on | ||
| 346 | target_1 that uses one DPDK interface, by selecting the | ||
| 347 | <literal>Add</literal> button from the Bridges tab and then | ||
| 348 | selcting: <literal>Configuration</literal> -> | ||
| 349 | <literal>OpenVSwitch</literal>-> | ||
| 350 | <literal>Bridges</literal>:</para> | ||
| 351 | |||
| 352 | <figure> | ||
| 353 | <title>OVS Bridge Table</title> | ||
| 354 | |||
| 355 | <mediaobject> | ||
| 356 | <imageobject> | ||
| 357 | <imagedata align="center" fileref="images/ovs_bridge_tab.png" | ||
| 358 | scale="75" /> | ||
| 359 | </imageobject> | ||
| 360 | </mediaobject> | ||
| 361 | </figure> | ||
| 362 | |||
| 363 | <figure> | ||
| 364 | <title>Adding the interface to the OVS Bridge</title> | ||
| 365 | |||
| 366 | <mediaobject> | ||
| 367 | <imageobject> | ||
| 368 | <imagedata align="center" fileref="images/ovs_bridge_two.png" | ||
| 369 | scale="90" /> | ||
| 370 | </imageobject> | ||
| 371 | </mediaobject> | ||
| 372 | </figure> | ||
| 373 | </listitem> | ||
| 374 | |||
| 375 | <listitem> | ||
| 376 | <para>Instantiate the TestPMD VNFs on target_1 by selecting: | ||
| 377 | <literal>VNF</literal> -> <literal>Instances</literal> -> | ||
| 378 | <literal>Add</literal>.</para> | ||
| 379 | </listitem> | ||
| 380 | |||
| 381 | <listitem> | ||
| 382 | <para>Configure the VNF that forwards traffic:</para> | ||
| 383 | |||
| 384 | <figure> | ||
| 385 | <title>Configuring the fwdVNF</title> | ||
| 386 | |||
| 387 | <mediaobject> | ||
| 388 | <imageobject> | ||
| 389 | <imagedata align="center" fileref="images/traffic_forward.png" | ||
| 390 | scale="85" /> | ||
| 391 | </imageobject> | ||
| 392 | </mediaobject> | ||
| 393 | </figure> | ||
| 394 | </listitem> | ||
| 395 | |||
| 396 | <listitem> | ||
| 397 | <para>Configure the VNF that terminates traffic:</para> | ||
| 398 | |||
| 399 | <figure> | ||
| 400 | <title>Configuring the termVNF</title> | ||
| 401 | |||
| 402 | <mediaobject> | ||
| 403 | <imageobject> | ||
| 404 | <imagedata align="center" | ||
| 405 | fileref="images/traffic_terminate.png" scale="85" /> | ||
| 406 | </imageobject> | ||
| 407 | </mediaobject> | ||
| 408 | </figure> | ||
| 409 | </listitem> | ||
| 410 | |||
| 411 | <listitem> | ||
| 412 | <para>Add OpenVSwitch flows to control this traffic:</para> | ||
| 413 | |||
| 414 | <figure> | ||
| 415 | <title>Configuring the FWD flow</title> | ||
| 416 | |||
| 417 | <mediaobject> | ||
| 418 | <imageobject> | ||
| 419 | <imagedata align="center" fileref="images/flow_fwd.png" | ||
| 420 | scale="90" /> | ||
| 421 | </imageobject> | ||
| 422 | </mediaobject> | ||
| 423 | </figure> | ||
| 424 | |||
| 425 | <figure> | ||
| 426 | <title>Configuring the TERM flow</title> | ||
| 427 | |||
| 428 | <mediaobject> | ||
| 429 | <imageobject> | ||
| 430 | <imagedata align="center" fileref="images/flow_term.png" | ||
| 431 | scale="90" /> | ||
| 432 | </imageobject> | ||
| 433 | </mediaobject> | ||
| 434 | </figure> | ||
| 435 | </listitem> | ||
| 436 | |||
| 437 | <listitem> | ||
| 438 | <para>Start pktgen on target_2. Connect to the target by using: | ||
| 439 | <literal>SSH</literal> -> <literal>user</literal> (root) and | ||
| 440 | perform the following:</para> | ||
| 441 | |||
| 442 | <programlisting>killall ovsdb-server ovs-vswitchd | ||
| 443 | rm -rf /etc/openvswitch/* | ||
| 444 | mkdir -p /var/run/openvswitch | ||
| 445 | modprobe igb_uio | ||
| 446 | dpdk-devbind --bind=igb_uio 0000:05:00.3 | ||
| 447 | cd /usr/share/apps/pktgen/ | ||
| 448 | ./pktgen -c 0x7 -n 4 --proc-type auto --socket-mem 256 -w 0000:05:00.3 -- \ | ||
| 449 | -P -m "[1:2].0" | ||
| 450 | Pktgen:/> start 0</programlisting> | ||
| 451 | </listitem> | ||
| 452 | |||
| 453 | <listitem> | ||
| 454 | <para>Connect to the forwarder VNF in order to check the traffic | ||
| 455 | statistics by selecting target_1: <literal>SSH</literal> -> | ||
| 456 | <literal>user</literal> (root):</para> | ||
| 457 | |||
| 458 | <programlisting>Virsh list | ||
| 459 | Virsh console 1 | ||
| 460 | # Qemux86-64 login: root | ||
| 461 | tail -f /opt/testpmd-out</programlisting> | ||
| 462 | |||
| 463 | <figure> | ||
| 464 | <title>Traffic Statistics</title> | ||
| 465 | |||
| 466 | <mediaobject> | ||
| 467 | <imageobject> | ||
| 468 | <imagedata align="center" | ||
| 469 | fileref="images/connection_information.png" | ||
| 470 | scale="70" /> | ||
| 471 | </imageobject> | ||
| 472 | </mediaobject> | ||
| 473 | </figure> | ||
| 474 | </listitem> | ||
| 475 | </orderedlist> | ||
| 476 | </section> | ||
| 477 | |||
| 478 | <section id="vnf_pci"> | ||
| 479 | <title>TestPMD VNF using PCI passthrough</title> | ||
| 480 | |||
| 481 | <para>In this use case, target 1 will run the Pktgen and target 2 will | ||
| 482 | run the TestPMD VNF. Both will be using PCI passthrough:</para> | ||
| 483 | |||
| 484 | <figure> | ||
| 485 | <title>TestPMD VNF using PCI passthrough Overview</title> | ||
| 486 | |||
| 487 | <mediaobject> | ||
| 488 | <imageobject> | ||
| 489 | <imagedata align="center" fileref="images/testPMD_VNF_PCI.png" | ||
| 490 | scale="65" /> | ||
| 491 | </imageobject> | ||
| 492 | </mediaobject> | ||
| 493 | </figure> | ||
| 494 | |||
| 495 | <orderedlist> | ||
| 496 | <listitem> | ||
| 497 | <para>Make sure that neither target 1 nor target 2 have any | ||
| 498 | configured host interfaces by selcting target: | ||
| 499 | <literal>Configuration</literal> -> | ||
| 500 | <literal>OpenVSwitch</literal> -> <literal>Host | ||
| 501 | Interfaces</literal>.</para> | ||
| 502 | </listitem> | ||
| 503 | |||
| 504 | <listitem> | ||
| 505 | <para>On target 1 start the Pktgen VNF. Select | ||
| 506 | <literal>PciPassthrough</literal> as the Interface type.</para> | ||
| 507 | |||
| 508 | <para>From the drop-down list, select the PCI interface | ||
| 509 | corresponding to the NIC which is connected to target 2:</para> | ||
| 510 | |||
| 511 | <figure> | ||
| 512 | <title>Selecting the Pktgen VNF Interface</title> | ||
| 513 | |||
| 514 | <mediaobject> | ||
| 515 | <imageobject> | ||
| 516 | <imagedata align="center" | ||
| 517 | fileref="images/pciPass_interface.png" scale="70" /> | ||
| 518 | </imageobject> | ||
| 519 | </mediaobject> | ||
| 520 | </figure> | ||
| 521 | </listitem> | ||
| 522 | |||
| 523 | <listitem> | ||
| 524 | <para>On target 2, start the TestPmdForwarder VNF. Select | ||
| 525 | "PciPassthrough" as the Interface type. From the drop-down list, | ||
| 526 | select the PCI interface corresponding to the NIC which is connected | ||
| 527 | to target 1:</para> | ||
| 528 | |||
| 529 | <figure> | ||
| 530 | <title>Selecting the TestPmdForwarder VNF Interface</title> | ||
| 531 | |||
| 532 | <mediaobject> | ||
| 533 | <imageobject> | ||
| 534 | <imagedata align="center" | ||
| 535 | fileref="images/testpmd_fwdvnf_int.png" scale="70" /> | ||
| 536 | </imageobject> | ||
| 537 | </mediaobject> | ||
| 538 | </figure> | ||
| 539 | </listitem> | ||
| 540 | |||
| 541 | <listitem> | ||
| 542 | <para>To check that traffic is being forwarded from target 2, SSH to | ||
| 543 | the target and connect to the VNFs console:</para> | ||
| 544 | |||
| 545 | <programlisting>Right click on target 2 and select SSH. | ||
| 546 | Run: virsh list | ||
| 547 | Run: virsh console [VM NAME] | ||
| 548 | Run: tail -f /opt/testpmd-out</programlisting> | ||
| 549 | </listitem> | ||
| 550 | </orderedlist> | ||
| 551 | </section> | ||
| 552 | </section> | ||
| 553 | |||
| 554 | <section id="vnf_fortigate"> | ||
| 555 | <title>FortiGate VNF Example</title> | ||
| 556 | |||
| 557 | <para>FortiGate virtual appliances <remark>is "appliances" the correct | ||
| 558 | word to use here?</remark> feature all of the security and networking | ||
| 559 | services common to traditional hardware-based FortiGate appliances. The | ||
| 560 | virtual appliances can be integrated in Firewall or SD-WAN solution | ||
| 561 | development.</para> | ||
| 562 | |||
| 563 | <para>Enea provides a prepared VNF bundle for download from the Enea | ||
| 564 | Portal, for usage with the Enea NFV Access product. The prepared VNF | ||
| 565 | bundle includes the FortiGate VNF image as well as a VNF Descriptor and | ||
| 566 | other onboarding related configuration files. The VNF Descriptor provided | ||
| 567 | configures a setup, which requires the following resources:</para> | ||
| 568 | |||
| 569 | <itemizedlist> | ||
| 570 | <listitem> | ||
| 571 | <para>3 x Network Interfaces</para> | ||
| 572 | </listitem> | ||
| 573 | |||
| 574 | <listitem> | ||
| 575 | <para>1 x vCPU</para> | ||
| 576 | </listitem> | ||
| 577 | |||
| 578 | <listitem> | ||
| 579 | <para>1 GB of RAM memory</para> | ||
| 580 | </listitem> | ||
| 581 | </itemizedlist> | ||
| 582 | |||
| 583 | <para>The VNF Descriptor represents one specific setup, suitable for usage | ||
| 584 | with the Firewall and SD-WAN VPN instructions in this guide. Alternative | ||
| 585 | VNF Descriptor configurations may be needed to support other | ||
| 586 | configurations required by the customer.</para> | ||
| 587 | |||
| 588 | <para>Enea can provide assistance to provide alternative VNF Descriptor | ||
| 589 | configurations.</para> | ||
| 590 | |||
| 591 | <note> | ||
| 592 | <para>While the prepared FortiGate bundle is provided from Enea Portal, | ||
| 593 | additional content needs to be received from Fortinet directly. The | ||
| 594 | FortiGate VNF license as well as any FortiGate specific documentation | ||
| 595 | shall be requested from the local Fortinet sales representatives in your | ||
| 596 | region, before FortiGate can be used.</para> | ||
| 597 | </note> | ||
| 598 | |||
| 599 | <section id="fortigate_firewall"> | ||
| 600 | <title>FortiGate VNF as a Firewall</title> | ||
| 601 | |||
| 602 | <para>FortiGate Next Generation Firewall utilizes purpose-built security | ||
| 603 | processors and threat intelligence security services to deliver | ||
| 604 | top-rated protection and high performance, including encrypted traffic. | ||
| 605 | FortiGate reduces complexity with automated visibility into | ||
| 606 | applications, users and networks, and provides security ratings to adopt | ||
| 607 | security best practices.</para> | ||
| 608 | |||
| 609 | <para>An example firewall configuration for the FortiGate VNF is | ||
| 610 | provided in the Enea Portal. It is a simple firewall base | ||
| 611 | configuration.</para> | ||
| 612 | |||
| 613 | <table> | ||
| 614 | <title>FortiGate VNF Example Configuration</title> | ||
| 615 | |||
| 616 | <tgroup cols="2"> | ||
| 617 | <colspec align="center" /> | ||
| 618 | |||
| 619 | <thead> | ||
| 620 | <row> | ||
| 621 | <entry align="center">Component</entry> | ||
| 622 | |||
| 623 | <entry align="center">Setting/Description</entry> | ||
| 624 | </row> | ||
| 625 | </thead> | ||
| 626 | |||
| 627 | <tbody> | ||
| 628 | <row> | ||
| 629 | <entry>Firewall</entry> | ||
| 630 | |||
| 631 | <entry>"All pass" mode</entry> | ||
| 632 | </row> | ||
| 633 | |||
| 634 | <row> | ||
| 635 | <entry>WAN (Virtual Port1)</entry> | ||
| 636 | |||
| 637 | <entry><para>DHCP Client, dynamically assigned IP | ||
| 638 | address.</para>FortiGate In-Band | ||
| 639 | Management<superscript>1</superscript></entry> | ||
| 640 | </row> | ||
| 641 | |||
| 642 | <row> | ||
| 643 | <entry>WAN (Virtual Port2)</entry> | ||
| 644 | |||
| 645 | <entry><para>IP address: 172.168.16.1</para>DHCP server (IP | ||
| 646 | range 172.168.16.1 - 172.168.16.255).</entry> | ||
| 647 | </row> | ||
| 648 | |||
| 649 | <row> | ||
| 650 | <entry>WAN (Virtual Port3)</entry> | ||
| 651 | |||
| 652 | <entry>Ignored</entry> | ||
| 653 | </row> | ||
| 654 | </tbody> | ||
| 655 | </tgroup> | ||
| 656 | </table> | ||
| 657 | |||
| 658 | <para><superscript>1</superscript>FortiGate In-Band Management is a | ||
| 659 | feature for running FortiGate Management traffic over WAN.</para> | ||
| 660 | |||
| 661 | <para>Instructions on how to alter the default configuration is provided | ||
| 662 | in the Fortigate VNF management chapter.</para> | ||
| 663 | |||
| 664 | <para><emphasis role="bold">Lab Setup</emphasis></para> | ||
| 665 | |||
| 666 | <para>Before starting the configuration of the FortiGate Firewall, a lab | ||
| 667 | setup of hardware and software configurations has to be built. The | ||
| 668 | following table illustrates the required lab setup:</para> | ||
| 669 | |||
| 670 | <table> | ||
| 671 | <title>Lab Setup Prerequisites</title> | ||
| 672 | |||
| 673 | <tgroup cols="2"> | ||
| 674 | <colspec align="center" /> | ||
| 675 | |||
| 676 | <thead> | ||
| 677 | <row> | ||
| 678 | <entry align="center">Component</entry> | ||
| 679 | |||
| 680 | <entry align="center">Description/Requirements</entry> | ||
| 681 | </row> | ||
| 682 | </thead> | ||
| 683 | |||
| 684 | <tbody> | ||
| 685 | <row> | ||
| 686 | <entry>Lab Network</entry> | ||
| 687 | |||
| 688 | <entrytbl cols="1"> | ||
| 689 | <tbody> | ||
| 690 | <row> | ||
| 691 | <entry>DHCP enabled Lab Network</entry> | ||
| 692 | </row> | ||
| 693 | |||
| 694 | <row> | ||
| 695 | <entry>Internet Connectivity</entry> | ||
| 696 | </row> | ||
| 697 | </tbody> | ||
| 698 | </entrytbl> | ||
| 699 | </row> | ||
| 700 | |||
| 701 | <row> | ||
| 702 | <entry>Setup of an Intel Whitebox target device</entry> | ||
| 703 | |||
| 704 | <entrytbl cols="1"> | ||
| 705 | <tbody> | ||
| 706 | <row> | ||
| 707 | <entry>Minimum 4 Physical Network Devices</entry> | ||
| 708 | </row> | ||
| 709 | |||
| 710 | <row> | ||
| 711 | <entry>4 GB RAM and 4 cores (C3000 or Xeon D)</entry> | ||
| 712 | </row> | ||
| 713 | |||
| 714 | <row> | ||
| 715 | <entry>Enea NFV Access Installed</entry> | ||
| 716 | </row> | ||
| 717 | |||
| 718 | <row> | ||
| 719 | <entry>WAN Connected to Lab Network</entry> | ||
| 720 | </row> | ||
| 721 | |||
| 722 | <row> | ||
| 723 | <entry>LAN1 Connected to Test Machine</entry> | ||
| 724 | </row> | ||
| 725 | |||
| 726 | <row> | ||
| 727 | <entry>LAN2 Unconnected</entry> | ||
| 728 | </row> | ||
| 729 | |||
| 730 | <row> | ||
| 731 | <entry>ETH0 connected to Lab Network (for Enea uCPE | ||
| 732 | Manager communications)</entry> | ||
| 733 | </row> | ||
| 734 | </tbody> | ||
| 735 | </entrytbl> | ||
| 736 | </row> | ||
| 737 | |||
| 738 | <row> | ||
| 739 | <entry>Setup of a Lab Machine</entry> | ||
| 740 | |||
| 741 | <entrytbl cols="1"> | ||
| 742 | <tbody> | ||
| 743 | <row> | ||
| 744 | <entry>Connected to Lab Network</entry> | ||
| 745 | </row> | ||
| 746 | |||
| 747 | <row> | ||
| 748 | <entry>Running either Windows or CentOS</entry> | ||
| 749 | </row> | ||
| 750 | |||
| 751 | <row> | ||
| 752 | <entry>Enea uCPE Manager installed</entry> | ||
| 753 | </row> | ||
| 754 | </tbody> | ||
| 755 | </entrytbl> | ||
| 756 | </row> | ||
| 757 | |||
| 758 | <row> | ||
| 759 | <entry>Setup of a Test Machine</entry> | ||
| 760 | |||
| 761 | <entrytbl cols="1"> | ||
| 762 | <tbody> | ||
| 763 | <row> | ||
| 764 | <entry>Connected to Whitebox LAN</entry> | ||
| 765 | </row> | ||
| 766 | |||
| 767 | <row> | ||
| 768 | <entry>Internet Connectivity via LAN</entry> | ||
| 769 | </row> | ||
| 770 | |||
| 771 | <row> | ||
| 772 | <entry>Configured as DHCP client on LAN</entry> | ||
| 773 | </row> | ||
| 774 | </tbody> | ||
| 775 | </entrytbl> | ||
| 776 | </row> | ||
| 777 | |||
| 778 | <row> | ||
| 779 | <entry>FortiGate VNF</entry> | ||
| 780 | |||
| 781 | <entrytbl cols="1"> | ||
| 782 | <tbody> | ||
| 783 | <row> | ||
| 784 | <entry>Downloaded the FortiGate VNF Bundle from Enea | ||
| 785 | Portal to the Lab Machine file system. Please see the | ||
| 786 | Download Chapter for more details.</entry> | ||
| 787 | </row> | ||
| 788 | |||
| 789 | <row> | ||
| 790 | <entry>Downloaded FortiGate configuration examples from | ||
| 791 | the Enea Portal to the Lab Machine file system. Please | ||
| 792 | check the Download Chapter for more details. Unpack the | ||
| 793 | configuration examples on the Lab Machine.</entry> | ||
| 794 | </row> | ||
| 795 | |||
| 796 | <row> | ||
| 797 | <entry>Retrieve FortiGate VNF license from Fortinet and | ||
| 798 | store it on the Lab Machine file system. See FortiGate VNF | ||
| 799 | for details.</entry> | ||
| 800 | </row> | ||
| 801 | |||
| 802 | <row> | ||
| 803 | <entry>Optionally retrieve FortiGate VNF documentation | ||
| 804 | from Fortinet. See FortiGate VNF for details.</entry> | ||
| 805 | </row> | ||
| 806 | </tbody> | ||
| 807 | </entrytbl> | ||
| 808 | </row> | ||
| 809 | </tbody> | ||
| 810 | </tgroup> | ||
| 811 | </table> | ||
| 812 | |||
| 813 | <figure> | ||
| 814 | <title>Lab Setup Overview</title> | ||
| 815 | |||
| 816 | <mediaobject> | ||
| 817 | <imageobject> | ||
| 818 | <imagedata align="center" fileref="images/intel_whitebox.png" | ||
| 819 | scale="35" /> | ||
| 820 | </imageobject> | ||
| 821 | </mediaobject> | ||
| 822 | </figure> | ||
| 823 | |||
| 824 | <para><emphasis role="bold">uCPE Networking Setup</emphasis></para> | ||
| 825 | |||
| 826 | <para>Before deploying the FortiGate Firewall, the Enea NFV Access | ||
| 827 | platform has to be configured to the specific networking setup.</para> | ||
| 828 | |||
| 829 | <para>Since the firewall is using three External Network Interfaces, | ||
| 830 | three bridges need to be configured. Each bridge provides the ability to | ||
| 831 | connect a physical network interface to the virtual machines' virtual | ||
| 832 | network interface. Each physical to virtual network interface connection | ||
| 833 | is setup in two steps:</para> | ||
| 834 | |||
| 835 | <itemizedlist> | ||
| 836 | <listitem> | ||
| 837 | <para>Bind the physical network interfaces with a DPDK | ||
| 838 | driver.</para> | ||
| 839 | </listitem> | ||
| 840 | |||
| 841 | <listitem> | ||
| 842 | <para>Create a named bridge for each physical network | ||
| 843 | interface.</para> | ||
| 844 | </listitem> | ||
| 845 | </itemizedlist> | ||
| 846 | |||
| 847 | <note> | ||
| 848 | <para>For more details about interface configuration, please see the | ||
| 849 | Network Configuration section in the chapter on Configuration | ||
| 850 | Options.</para> | ||
| 851 | </note> | ||
| 852 | |||
| 853 | <orderedlist> | ||
| 854 | <listitem> | ||
| 855 | <para>Start the setup by preparing each interface for attachment to | ||
| 856 | a bridge. Bind the physical network interfaces to the DPDK by | ||
| 857 | selecting the target: <literal>Configuration</literal> -> | ||
| 858 | <literal>OpenVSwitch</literal> -> <literal>Host Interfaces | ||
| 859 | </literal>-> <literal>Add</literal>:</para> | ||
| 860 | |||
| 861 | <figure> | ||
| 862 | <title>Binding the physical network interface</title> | ||
| 863 | |||
| 864 | <mediaobject> | ||
| 865 | <imageobject> | ||
| 866 | <imagedata align="center" | ||
| 867 | fileref="images/bind_phys_interface.png" scale="80" /> | ||
| 868 | </imageobject> | ||
| 869 | </mediaobject> | ||
| 870 | </figure> | ||
| 871 | |||
| 872 | <para>The result of binding these three physical network interfaces | ||
| 873 | should look like the following:</para> | ||
| 874 | |||
| 875 | <figure> | ||
| 876 | <title>Successful Binding</title> | ||
| 877 | |||
| 878 | <mediaobject> | ||
| 879 | <imageobject> | ||
| 880 | <imagedata align="center" | ||
| 881 | fileref="images/result_of_binding.png" scale="65" /> | ||
| 882 | </imageobject> | ||
| 883 | </mediaobject> | ||
| 884 | </figure> | ||
| 885 | </listitem> | ||
| 886 | |||
| 887 | <listitem> | ||
| 888 | <para>Create one OpenVSwitch bridge for each firewall network | ||
| 889 | connection (WAN, LAN1 and LAN2), by selecting the | ||
| 890 | <literal>Add</literal> button from Bridges tab: | ||
| 891 | <literal>Configuration</literal> -> | ||
| 892 | <literal>OpenvSwitch</literal>-> <literal>Bridges</literal>. A | ||
| 893 | popup like the following should appear:</para> | ||
| 894 | |||
| 895 | <figure> | ||
| 896 | <title>Creating a bridge each Firewall Net. Connection</title> | ||
| 897 | |||
| 898 | <mediaobject> | ||
| 899 | <imageobject> | ||
| 900 | <imagedata align="center" fileref="images/bridge_net_conn.png" | ||
| 901 | scale="80" /> | ||
| 902 | </imageobject> | ||
| 903 | </mediaobject> | ||
| 904 | </figure> | ||
| 905 | </listitem> | ||
| 906 | |||
| 907 | <listitem> | ||
| 908 | <para>Repeat this step for each type of connection until all are | ||
| 909 | bridges are configured.</para> | ||
| 910 | |||
| 911 | <figure> | ||
| 912 | <title>Configured Bridges per Connection Type</title> | ||
| 913 | |||
| 914 | <mediaobject> | ||
| 915 | <imageobject> | ||
| 916 | <imagedata align="center" | ||
| 917 | fileref="images/configured_bridges.png" scale="65" /> | ||
| 918 | </imageobject> | ||
| 919 | </mediaobject> | ||
| 920 | </figure> | ||
| 921 | </listitem> | ||
| 922 | </orderedlist> | ||
| 923 | |||
| 924 | <para><emphasis role="bold">Onboarding the FortiGate | ||
| 925 | VNF</emphasis></para> | ||
| 926 | |||
| 927 | <orderedlist> | ||
| 928 | <listitem> | ||
| 929 | <para>To on-board the Fortigate VNF click the <literal>VNF</literal> | ||
| 930 | tab in the top toolbar: <literal>VNF</literal> -> | ||
| 931 | <literal>Descriptors</literal> -> <literal>On-board | ||
| 932 | </literal>-> <literal>Browse</literal> options, and select the | ||
| 933 | <literal>Fortigate.zip</literal> file, before clicking | ||
| 934 | <literal>Send</literal>:</para> | ||
| 935 | |||
| 936 | <figure> | ||
| 937 | <title>Selecting Descriptors</title> | ||
| 938 | |||
| 939 | <mediaobject> | ||
| 940 | <imageobject> | ||
| 941 | <imagedata align="center" | ||
| 942 | fileref="images/descriptor_button.png" scale="45" /> | ||
| 943 | </imageobject> | ||
| 944 | </mediaobject> | ||
| 945 | </figure> | ||
| 946 | </listitem> | ||
| 947 | |||
| 948 | <listitem> | ||
| 949 | <para>Wait for the <literal>Onboarding Status</literal> popup to | ||
| 950 | display the confirmation message (listed in green) and select | ||
| 951 | <literal>OK</literal>:</para> | ||
| 952 | |||
| 953 | <figure> | ||
| 954 | <title>Onboarding the new VNF</title> | ||
| 955 | |||
| 956 | <mediaobject> | ||
| 957 | <imageobject> | ||
| 958 | <imagedata align="center" | ||
| 959 | fileref="images/onboarding_status.png" scale="80" /> | ||
| 960 | </imageobject> | ||
| 961 | </mediaobject> | ||
| 962 | </figure> | ||
| 963 | </listitem> | ||
| 964 | </orderedlist> | ||
| 965 | |||
| 966 | <para><emphasis role="bold">Instantiate the FortiGate | ||
| 967 | VNF</emphasis></para> | ||
| 968 | |||
| 969 | <orderedlist> | ||
| 970 | <listitem> | ||
| 971 | <para>Select the target, then from the top toolbar the select: | ||
| 972 | <literal>VNF</literal> -> <literal>Instances</literal> -> | ||
| 973 | <literal>Add</literal>:</para> | ||
| 974 | |||
| 975 | <figure> | ||
| 976 | <title>Adding Instances to Target</title> | ||
| 977 | |||
| 978 | <mediaobject> | ||
| 979 | <imageobject> | ||
| 980 | <imagedata align="center" fileref="images/vnf_instances.png" | ||
| 981 | scale="50" /> | ||
| 982 | </imageobject> | ||
| 983 | </mediaobject> | ||
| 984 | </figure> | ||
| 985 | |||
| 986 | <para>Make sure you have downloaded valid license files for the | ||
| 987 | Fortigate VNF from Fortinet, and the configuration file provided by | ||
| 988 | Enea as examples according to previous instructions.</para> | ||
| 989 | |||
| 990 | <figure> | ||
| 991 | <title>Example License and Configuration files</title> | ||
| 992 | |||
| 993 | <mediaobject> | ||
| 994 | <imageobject> | ||
| 995 | <imagedata align="center" | ||
| 996 | fileref="images/fortigate_licenses.png" scale="75" /> | ||
| 997 | </imageobject> | ||
| 998 | </mediaobject> | ||
| 999 | </figure> | ||
| 1000 | </listitem> | ||
| 1001 | |||
| 1002 | <listitem> | ||
| 1003 | <para>Fortigate VNF instantiation requires the following | ||
| 1004 | settings:</para> | ||
| 1005 | |||
| 1006 | <table> | ||
| 1007 | <title>Instantiation Requirements</title> | ||
| 1008 | |||
| 1009 | <tgroup cols="2"> | ||
| 1010 | <colspec align="center" colwidth="2*" /> | ||
| 1011 | |||
| 1012 | <colspec align="center" colwidth="4*" /> | ||
| 1013 | |||
| 1014 | <thead> | ||
| 1015 | <row> | ||
| 1016 | <entry align="center">Component</entry> | ||
| 1017 | |||
| 1018 | <entry align="center">Description</entry> | ||
| 1019 | </row> | ||
| 1020 | </thead> | ||
| 1021 | |||
| 1022 | <tbody> | ||
| 1023 | <row> | ||
| 1024 | <entry align="left">Name</entry> | ||
| 1025 | |||
| 1026 | <entry>The name of the VM which will be created on the | ||
| 1027 | target device.</entry> | ||
| 1028 | </row> | ||
| 1029 | |||
| 1030 | <row> | ||
| 1031 | <entry align="left">VNF Type</entry> | ||
| 1032 | |||
| 1033 | <entry>Name of the on-boarded VNF bundle.</entry> | ||
| 1034 | </row> | ||
| 1035 | |||
| 1036 | <row> | ||
| 1037 | <entry align="left">VIM</entry> | ||
| 1038 | |||
| 1039 | <entry>Name and IP address of the device where the VNF has | ||
| 1040 | to be instantiated.</entry> | ||
| 1041 | </row> | ||
| 1042 | |||
| 1043 | <row> | ||
| 1044 | <entry align="left">License file</entry> | ||
| 1045 | |||
| 1046 | <entry>FortiGate license file provided by Fortinet.</entry> | ||
| 1047 | </row> | ||
| 1048 | |||
| 1049 | <row> | ||
| 1050 | <entry align="left">Configuration file</entry> | ||
| 1051 | |||
| 1052 | <entry>Firewall example configuration file provided by Enea | ||
| 1053 | <filename>FGVM080000136187_20180828_0353_basic_fw.conf | ||
| 1054 | </filename></entry> | ||
| 1055 | </row> | ||
| 1056 | |||
| 1057 | <row> | ||
| 1058 | <entry align="left">Port1 - WAN</entry> | ||
| 1059 | |||
| 1060 | <entry>Set as dpdk type and connect it to wanmgrbr | ||
| 1061 | bridge.</entry> | ||
| 1062 | </row> | ||
| 1063 | |||
| 1064 | <row> | ||
| 1065 | <entry align="left">Port2 - LAN1</entry> | ||
| 1066 | |||
| 1067 | <entry>Set as dpdk type and connect it to lan1 | ||
| 1068 | bridge.</entry> | ||
| 1069 | </row> | ||
| 1070 | |||
| 1071 | <row> | ||
| 1072 | <entry align="left">Port3 - LAN2</entry> | ||
| 1073 | |||
| 1074 | <entry>Set as dpdk type and connect it to lan2 | ||
| 1075 | bridge.</entry> | ||
| 1076 | </row> | ||
| 1077 | </tbody> | ||
| 1078 | </tgroup> | ||
| 1079 | </table> | ||
| 1080 | |||
| 1081 | <para>When the instantiation process is completed, the setup is | ||
| 1082 | ready for testing.</para> | ||
| 1083 | </listitem> | ||
| 1084 | </orderedlist> | ||
| 1085 | |||
| 1086 | <para><emphasis role="bold">Test the FortiGate | ||
| 1087 | Firewall</emphasis></para> | ||
| 1088 | |||
| 1089 | <para>Connect the Test Machine on the LAN interface and access the | ||
| 1090 | internet from the Test Machine to use the firewall on the target | ||
| 1091 | device.</para> | ||
| 1092 | |||
| 1093 | <note> | ||
| 1094 | <para>The connected Test Machine can be a laptop or a target that has | ||
| 1095 | one interface configured to get an dynamic IP from a DHCP server. The | ||
| 1096 | <literal>dhclient <interface></literal> command can be used to | ||
| 1097 | request an IP address. The received IP must be in the 172.16.1.2 - | ||
| 1098 | 172.16.1.255 range.</para> | ||
| 1099 | </note> | ||
| 1100 | |||
| 1101 | <figure> | ||
| 1102 | <title>Testing Overview</title> | ||
| 1103 | |||
| 1104 | <mediaobject> | ||
| 1105 | <imageobject> | ||
| 1106 | <imagedata align="center" fileref="images/testing_fortigate.png" | ||
| 1107 | scale="50" /> | ||
| 1108 | </imageobject> | ||
| 1109 | </mediaobject> | ||
| 1110 | </figure> | ||
| 1111 | |||
| 1112 | <para>In the example above, the FortiGate VNF management interface is | ||
| 1113 | accessible through the WAN interface, the WAN IP address can be used | ||
| 1114 | from a web browser on the Lab Machine to access the Fortigate VNF | ||
| 1115 | Management Web UI. Please check the Fortigate VNF web management section | ||
| 1116 | for more information.</para> | ||
| 1117 | |||
| 1118 | <para>In another example, the firewall can be setup to use bridges as | ||
| 1119 | connection points for the Fortigate VNF. It is possible to replace | ||
| 1120 | OVS-DPDK bridges with SR-IOV connection points. <remark>The previous | ||
| 1121 | sentence in the original was very hard to understand, please confirm if | ||
| 1122 | this is what you intended to say</remark> Please check the network | ||
| 1123 | configuration chapter on how to configure an interface for | ||
| 1124 | SR-IOV.</para> | ||
| 1125 | |||
| 1126 | <para>It was previously assumed that three physical interfaces are | ||
| 1127 | available for VNF connection. In the case of a firewall setup it is | ||
| 1128 | possible to use only two physical interfaces for the data path (one for | ||
| 1129 | WAN and one for LAN). In the example below only two interfaces will be | ||
| 1130 | configured as DPDK and two bridges are created, one for each type of | ||
| 1131 | connection.</para> | ||
| 1132 | |||
| 1133 | <para>At VNF instantiation instead of assigning distinct bridges for | ||
| 1134 | each LAN interface, only one will be used for both LAN1 and LAN2, with | ||
| 1135 | no changes in WAN interface configuration. Please see the picture below | ||
| 1136 | for final setup:</para> | ||
| 1137 | |||
| 1138 | <figure> | ||
| 1139 | <title>Two Interface Configuration</title> | ||
| 1140 | |||
| 1141 | <mediaobject> | ||
| 1142 | <imageobject> | ||
| 1143 | <imagedata align="center" fileref="images/two_inst_firewall.png" | ||
| 1144 | scale="45" /> | ||
| 1145 | </imageobject> | ||
| 1146 | </mediaobject> | ||
| 1147 | </figure> | ||
| 1148 | </section> | ||
| 1149 | |||
| 1150 | <section id="fortigate_webmg"> | ||
| 1151 | <title>FortiGate VNF web management</title> | ||
| 1152 | |||
| 1153 | <para>In order to check the IP address assigned to Fortigate VNF you | ||
| 1154 | need to connect to the Fortigate CLI.</para> | ||
| 1155 | |||
| 1156 | <para><emphasis role="bold">Connecting to the Fortigate | ||
| 1157 | CLI</emphasis></para> | ||
| 1158 | |||
| 1159 | <orderedlist> | ||
| 1160 | <listitem> | ||
| 1161 | <para>Connect to the Fortigate VNF by using: <literal>SSH</literal> | ||
| 1162 | -> <literal>user</literal> (root) and attach to the VNF's console | ||
| 1163 | using the <literal>virsh console</literal> command shown | ||
| 1164 | below:</para> | ||
| 1165 | |||
| 1166 | <figure> | ||
| 1167 | <title>Attaching to the VNF Console</title> | ||
| 1168 | |||
| 1169 | <mediaobject> | ||
| 1170 | <imageobject> | ||
| 1171 | <imagedata align="center" fileref="images/virsh_console.png" | ||
| 1172 | scale="80" /> | ||
| 1173 | </imageobject> | ||
| 1174 | </mediaobject> | ||
| 1175 | </figure> | ||
| 1176 | </listitem> | ||
| 1177 | |||
| 1178 | <listitem> | ||
| 1179 | <para>To access Fortigate CLI, use the credential | ||
| 1180 | <literal>admin</literal> for the user, leaving the password blank, | ||
| 1181 | then press enter.</para> | ||
| 1182 | |||
| 1183 | <para>Use the CLI command <literal>get system interface</literal> to | ||
| 1184 | get the dynamic interfaces configuration.</para> | ||
| 1185 | |||
| 1186 | <figure> | ||
| 1187 | <title>Acessing and configuring Fortigate CLI</title> | ||
| 1188 | |||
| 1189 | <mediaobject> | ||
| 1190 | <imageobject> | ||
| 1191 | <imagedata align="center" | ||
| 1192 | fileref="images/access_fortigate_cli.png" | ||
| 1193 | scale="58" /> | ||
| 1194 | </imageobject> | ||
| 1195 | </mediaobject> | ||
| 1196 | </figure> | ||
| 1197 | </listitem> | ||
| 1198 | |||
| 1199 | <listitem> | ||
| 1200 | <para>Use the IP address assigned for the management interface in | ||
| 1201 | the web browser (<literal>https://<IP></literal>), to access | ||
| 1202 | the Fortinet VNF web management interface. Use the same credentials | ||
| 1203 | as before to login:</para> | ||
| 1204 | |||
| 1205 | <figure> | ||
| 1206 | <title>Accessing the web management interface</title> | ||
| 1207 | |||
| 1208 | <mediaobject> | ||
| 1209 | <imageobject> | ||
| 1210 | <imagedata align="center" | ||
| 1211 | fileref="images/fortinet_vnf_login.png" scale="50" /> | ||
| 1212 | </imageobject> | ||
| 1213 | </mediaobject> | ||
| 1214 | </figure> | ||
| 1215 | </listitem> | ||
| 1216 | |||
| 1217 | <listitem> | ||
| 1218 | <para>You can browse through the configuration and perform changes | ||
| 1219 | according to your setup:</para> | ||
| 1220 | |||
| 1221 | <figure> | ||
| 1222 | <title>The Fortinet Web Interface</title> | ||
| 1223 | |||
| 1224 | <mediaobject> | ||
| 1225 | <imageobject> | ||
| 1226 | <imagedata align="center" | ||
| 1227 | fileref="images/fortinet_interface.png" scale="30" /> | ||
| 1228 | </imageobject> | ||
| 1229 | </mediaobject> | ||
| 1230 | </figure> | ||
| 1231 | </listitem> | ||
| 1232 | |||
| 1233 | <listitem> | ||
| 1234 | <para>Optional, alter the default Fortinet example configuration | ||
| 1235 | provided by Enea, through the following steps:</para> | ||
| 1236 | |||
| 1237 | <orderedlist> | ||
| 1238 | <listitem> | ||
| 1239 | <para>Deploy the FortiGate Firewall in its default | ||
| 1240 | settings.</para> | ||
| 1241 | </listitem> | ||
| 1242 | |||
| 1243 | <listitem> | ||
| 1244 | <para>Connect to the FortiGate VNF Web Management with a web | ||
| 1245 | browser.</para> | ||
| 1246 | </listitem> | ||
| 1247 | |||
| 1248 | <listitem> | ||
| 1249 | <para>Modify the FortiGate configuration in the FortiGate VNF | ||
| 1250 | Web Management as needed.</para> | ||
| 1251 | </listitem> | ||
| 1252 | |||
| 1253 | <listitem> | ||
| 1254 | <para>Store the updated configuration in a file, by saving in | ||
| 1255 | the FortiGate VNF Web Management interface, so it may be used at | ||
| 1256 | the next FortiGate VNF instantiation.</para> | ||
| 1257 | </listitem> | ||
| 1258 | </orderedlist> | ||
| 1259 | |||
| 1260 | <note> | ||
| 1261 | <para>Editing the default configuration is only recommended for | ||
| 1262 | FortiGate configuration experts.</para> | ||
| 1263 | </note> | ||
| 1264 | </listitem> | ||
| 1265 | </orderedlist> | ||
| 1266 | </section> | ||
| 1267 | |||
| 1268 | <section id="fortigate_sdwan_vpn"> | ||
| 1269 | <title>FortiGate VNF as an SD-WAN VPN</title> | ||
| 1270 | |||
| 1271 | <para>The software-defined wide-area network (SD-WAN or SDWAN) is a | ||
| 1272 | specific application of software-defined networking (SDN) technology | ||
| 1273 | applied to WAN connections. It connects enterprise networks, including | ||
| 1274 | branch offices and data centers, over large geographic distances.</para> | ||
| 1275 | |||
| 1276 | <para>SD-WAN decouples the network from the management plane, detaching | ||
| 1277 | the traffic management and monitoring functions from hardware. Most | ||
| 1278 | forms of SD-WAN technology create a virtual overlay that is | ||
| 1279 | transport-agnostic, i.e. it abstracts underlying private or public WAN | ||
| 1280 | connections. With an overlay SD-WAN, a vendor provides an edge device to | ||
| 1281 | the customer that contains the software necessary to run the SD-WAN | ||
| 1282 | technology. For deployment, the customer plugs in WAN links into the | ||
| 1283 | device, which automatically configures itself with the network.</para> | ||
| 1284 | |||
| 1285 | <para>The following will detail an SD-WAN setup for a branch to branch | ||
| 1286 | connection using the FortiGate VNF. FortiGate provides native SD-WAN | ||
| 1287 | along with integrated advanced threat protection.</para> | ||
| 1288 | |||
| 1289 | <note> | ||
| 1290 | <para>Example SD-WAN configurations for the FortiGate VNF are provided | ||
| 1291 | in the Enea Portal.</para> | ||
| 1292 | </note> | ||
| 1293 | |||
| 1294 | <table> | ||
| 1295 | <title>FortiGate VNF Example Configuration - SD-WAN Target 1</title> | ||
| 1296 | |||
| 1297 | <tgroup cols="2"> | ||
| 1298 | <colspec align="center" /> | ||
| 1299 | |||
| 1300 | <thead> | ||
| 1301 | <row> | ||
| 1302 | <entry align="center">Component</entry> | ||
| 1303 | |||
| 1304 | <entry align="center">Description</entry> | ||
| 1305 | </row> | ||
| 1306 | </thead> | ||
| 1307 | |||
| 1308 | <tbody> | ||
| 1309 | <row> | ||
| 1310 | <entry>SD-WAN</entry> | ||
| 1311 | |||
| 1312 | <entry>VPN connection between two branches (Target 1 and Target | ||
| 1313 | 2).</entry> | ||
| 1314 | </row> | ||
| 1315 | |||
| 1316 | <row> | ||
| 1317 | <entry>VNFMgr (Virtual Port1)</entry> | ||
| 1318 | |||
| 1319 | <entry>DHCP Client, dynamically assigned IP address.</entry> | ||
| 1320 | </row> | ||
| 1321 | |||
| 1322 | <row> | ||
| 1323 | <entry>WAN (Virtual Port2)</entry> | ||
| 1324 | |||
| 1325 | <entry>IP address: 10.0.0.1</entry> | ||
| 1326 | </row> | ||
| 1327 | |||
| 1328 | <row> | ||
| 1329 | <entry>LAN (Virtual Port3)</entry> | ||
| 1330 | |||
| 1331 | <entrytbl cols="1"> | ||
| 1332 | <tbody> | ||
| 1333 | <row> | ||
| 1334 | <entry>IP address: 172.16.1.1</entry> | ||
| 1335 | </row> | ||
| 1336 | |||
| 1337 | <row> | ||
| 1338 | <entry>DHCP server (IP range 172.16.1.2 - | ||
| 1339 | 172.16.1.254)</entry> | ||
| 1340 | </row> | ||
| 1341 | </tbody> | ||
| 1342 | </entrytbl> | ||
| 1343 | </row> | ||
| 1344 | </tbody> | ||
| 1345 | </tgroup> | ||
| 1346 | </table> | ||
| 1347 | |||
| 1348 | <table> | ||
| 1349 | <title>FortiGate VNF Example Configuration - SD-WAN Target 2</title> | ||
| 1350 | |||
| 1351 | <tgroup cols="2"> | ||
| 1352 | <colspec align="center" /> | ||
| 1353 | |||
| 1354 | <thead> | ||
| 1355 | <row> | ||
| 1356 | <entry align="center">Component</entry> | ||
| 1357 | |||
| 1358 | <entry align="center">Description</entry> | ||
| 1359 | </row> | ||
| 1360 | </thead> | ||
| 1361 | |||
| 1362 | <tbody> | ||
| 1363 | <row> | ||
| 1364 | <entry>SD-WAN</entry> | ||
| 1365 | |||
| 1366 | <entry>VPN connection between two branches (Target 2 and Target | ||
| 1367 | 1).</entry> | ||
| 1368 | </row> | ||
| 1369 | |||
| 1370 | <row> | ||
| 1371 | <entry>VNFMgr (Virtual Port1)</entry> | ||
| 1372 | |||
| 1373 | <entry>DHCP Client, dynamically assigned IP address.</entry> | ||
| 1374 | </row> | ||
| 1375 | |||
| 1376 | <row> | ||
| 1377 | <entry>WAN (Virtual Port2)</entry> | ||
| 1378 | |||
| 1379 | <entry>IP address: 10.0.0.2</entry> | ||
| 1380 | </row> | ||
| 1381 | |||
| 1382 | <row> | ||
| 1383 | <entry>LAN (Virtual Port3)</entry> | ||
| 1384 | |||
| 1385 | <entrytbl cols="1"> | ||
| 1386 | <tbody> | ||
| 1387 | <row> | ||
| 1388 | <entry>IP address: 172.16.2.1</entry> | ||
| 1389 | </row> | ||
| 1390 | |||
| 1391 | <row> | ||
| 1392 | <entry>DHCP server (IP range 172.16.2.2 - | ||
| 1393 | 172.16.2.254)</entry> | ||
| 1394 | </row> | ||
| 1395 | </tbody> | ||
| 1396 | </entrytbl> | ||
| 1397 | </row> | ||
| 1398 | </tbody> | ||
| 1399 | </tgroup> | ||
| 1400 | </table> | ||
| 1401 | |||
| 1402 | <para><emphasis role="bold">Lab Setup</emphasis></para> | ||
| 1403 | |||
| 1404 | <para>The following table illustrates the use-case prerequisites of the | ||
| 1405 | setup:</para> | ||
| 1406 | |||
| 1407 | <table> | ||
| 1408 | <title>Lab Setup Prerequisites</title> | ||
| 1409 | |||
| 1410 | <tgroup cols="2"> | ||
| 1411 | <colspec align="center" /> | ||
| 1412 | |||
| 1413 | <thead> | ||
| 1414 | <row> | ||
| 1415 | <entry align="center">Component</entry> | ||
| 1416 | |||
| 1417 | <entry align="center">Description</entry> | ||
| 1418 | </row> | ||
| 1419 | </thead> | ||
| 1420 | |||
| 1421 | <tbody> | ||
| 1422 | <row> | ||
| 1423 | <entry>Lab Network</entry> | ||
| 1424 | |||
| 1425 | <entrytbl cols="1"> | ||
| 1426 | <tbody> | ||
| 1427 | <row> | ||
| 1428 | <entry>DHCP enabled Lab Network.</entry> | ||
| 1429 | </row> | ||
| 1430 | |||
| 1431 | <row> | ||
| 1432 | <entry>Internet Connectivity.</entry> | ||
| 1433 | </row> | ||
| 1434 | </tbody> | ||
| 1435 | </entrytbl> | ||
| 1436 | </row> | ||
| 1437 | |||
| 1438 | <row> | ||
| 1439 | <entry>Two Intel Whitebox target devices</entry> | ||
| 1440 | |||
| 1441 | <entrytbl cols="1"> | ||
| 1442 | <tbody> | ||
| 1443 | <row> | ||
| 1444 | <entry>Minimum 4 Physical Network Devices.</entry> | ||
| 1445 | </row> | ||
| 1446 | |||
| 1447 | <row> | ||
| 1448 | <entry>4 GB RAM and 4 cores (C3000 or Xeon D).</entry> | ||
| 1449 | </row> | ||
| 1450 | |||
| 1451 | <row> | ||
| 1452 | <entry>Enea NFV Access Installed.</entry> | ||
| 1453 | </row> | ||
| 1454 | |||
| 1455 | <row> | ||
| 1456 | <entry>VNFMgr Connected to Lab Network for VNF management | ||
| 1457 | access.</entry> | ||
| 1458 | </row> | ||
| 1459 | |||
| 1460 | <row> | ||
| 1461 | <entry>WAN interfaces directly connected through Ethernet | ||
| 1462 | cable.</entry> | ||
| 1463 | </row> | ||
| 1464 | |||
| 1465 | <row> | ||
| 1466 | <entry>LAN Connected to Test Machine.</entry> | ||
| 1467 | </row> | ||
| 1468 | |||
| 1469 | <row> | ||
| 1470 | <entry>ETH0 connected to Lab Network (for Enea uCPE | ||
| 1471 | Manager communications).</entry> | ||
| 1472 | </row> | ||
| 1473 | </tbody> | ||
| 1474 | </entrytbl> | ||
| 1475 | </row> | ||
| 1476 | |||
| 1477 | <row> | ||
| 1478 | <entry>One Lab Machine</entry> | ||
| 1479 | |||
| 1480 | <entrytbl cols="1"> | ||
| 1481 | <tbody> | ||
| 1482 | <row> | ||
| 1483 | <entry>Connected to Lab Network.</entry> | ||
| 1484 | </row> | ||
| 1485 | |||
| 1486 | <row> | ||
| 1487 | <entry>Running either Windows or CentOS.</entry> | ||
| 1488 | </row> | ||
| 1489 | |||
| 1490 | <row> | ||
| 1491 | <entry>Enea uCPE Manager installed.</entry> | ||
| 1492 | </row> | ||
| 1493 | </tbody> | ||
| 1494 | </entrytbl> | ||
| 1495 | </row> | ||
| 1496 | |||
| 1497 | <row> | ||
| 1498 | <entry>Two Test Machines</entry> | ||
| 1499 | |||
| 1500 | <entrytbl cols="1"> | ||
| 1501 | <tbody> | ||
| 1502 | <row> | ||
| 1503 | <entry>Connected to Whitebox LANs.</entry> | ||
| 1504 | </row> | ||
| 1505 | |||
| 1506 | <row> | ||
| 1507 | <entry>Internet Connectivity via LAN.</entry> | ||
| 1508 | </row> | ||
| 1509 | |||
| 1510 | <row> | ||
| 1511 | <entry>Configured as DHCP client on LAN.</entry> | ||
| 1512 | </row> | ||
| 1513 | </tbody> | ||
| 1514 | </entrytbl> | ||
| 1515 | </row> | ||
| 1516 | |||
| 1517 | <row> | ||
| 1518 | <entry>FortiGate VNF</entry> | ||
| 1519 | |||
| 1520 | <entrytbl cols="1"> | ||
| 1521 | <tbody> | ||
| 1522 | <row> | ||
| 1523 | <entry>Downloaded the FortiGate VNF Bundle from Enea | ||
| 1524 | Portal to the Lab Machine file system.</entry> | ||
| 1525 | </row> | ||
| 1526 | |||
| 1527 | <row> | ||
| 1528 | <entry>Downloaded FortiGate configuration examples from | ||
| 1529 | Enea Portal to Lab Machine file system. Unpack the | ||
| 1530 | configuration examples specific for SD-WAN on the Lab | ||
| 1531 | Machine.</entry> | ||
| 1532 | </row> | ||
| 1533 | |||
| 1534 | <row> | ||
| 1535 | <entry>Retrieve the FortiGate VNF license from Fortinet | ||
| 1536 | and store it on the Lab Machine file system.</entry> | ||
| 1537 | </row> | ||
| 1538 | |||
| 1539 | <row> | ||
| 1540 | <entry>Optionally, retrieve FortiGate VNF documentation | ||
| 1541 | from Fortinet.</entry> | ||
| 1542 | </row> | ||
| 1543 | </tbody> | ||
| 1544 | </entrytbl> | ||
| 1545 | </row> | ||
| 1546 | </tbody> | ||
| 1547 | </tgroup> | ||
| 1548 | </table> | ||
| 1549 | |||
| 1550 | <figure> | ||
| 1551 | <title>SD-WAN: VPN Configuration</title> | ||
| 1552 | |||
| 1553 | <mediaobject> | ||
| 1554 | <imageobject> | ||
| 1555 | <imagedata align="center" | ||
| 1556 | fileref="images/sdwan_vpn_overview_1.png" scale="50" /> | ||
| 1557 | </imageobject> | ||
| 1558 | </mediaobject> | ||
| 1559 | </figure> | ||
| 1560 | |||
| 1561 | <para><emphasis role="bold">uCPE Networking Setup</emphasis></para> | ||
| 1562 | |||
| 1563 | <para>Before deploying the FortiGate SD-WAN, the Enea NFV Access | ||
| 1564 | platform has to be configured to the specific networking setup.</para> | ||
| 1565 | |||
| 1566 | <para>Since the SD-WAN VNF uses three External Network Interfaces, three | ||
| 1567 | bridges need to be configured. Each bridge provides the ability to | ||
| 1568 | connect a physical network interface to the virtual machine's virtual | ||
| 1569 | network interface. Each physical to virtual network interface connection | ||
| 1570 | is setup in two steps:</para> | ||
| 1571 | |||
| 1572 | <itemizedlist> | ||
| 1573 | <listitem> | ||
| 1574 | <para>Bind the physical network interfaces with a DPDK | ||
| 1575 | driver.</para> | ||
| 1576 | </listitem> | ||
| 1577 | |||
| 1578 | <listitem> | ||
| 1579 | <para>Create a named bridge for each physical network | ||
| 1580 | interface.</para> | ||
| 1581 | </listitem> | ||
| 1582 | </itemizedlist> | ||
| 1583 | |||
| 1584 | <para>Start the setup by preparing each physical interface for | ||
| 1585 | attachment to a bridge. Each VNF instance will have a virtual interface | ||
| 1586 | for VNF management, for the WAN network and for LAN | ||
| 1587 | communication.</para> | ||
| 1588 | |||
| 1589 | <orderedlist> | ||
| 1590 | <listitem> | ||
| 1591 | <para>Bind physical interface to DPDK by selecting the target_1: | ||
| 1592 | <literal>Configuration</literal> -> | ||
| 1593 | <literal>OpenVSwitch</literal> -> <literal>Host | ||
| 1594 | Interfaces</literal> -> <literal>Add</literal>:</para> | ||
| 1595 | |||
| 1596 | <figure> | ||
| 1597 | <title>Binding the Physical Interface</title> | ||
| 1598 | |||
| 1599 | <mediaobject> | ||
| 1600 | <imageobject> | ||
| 1601 | <imagedata align="center" | ||
| 1602 | fileref="images/bind_phys_interface.png" scale="90" /> | ||
| 1603 | </imageobject> | ||
| 1604 | </mediaobject> | ||
| 1605 | </figure> | ||
| 1606 | |||
| 1607 | <para>The result of binding these three interfaces should look like | ||
| 1608 | the following:</para> | ||
| 1609 | |||
| 1610 | <figure> | ||
| 1611 | <title>Results of Binding</title> | ||
| 1612 | |||
| 1613 | <mediaobject> | ||
| 1614 | <imageobject> | ||
| 1615 | <imagedata align="center" fileref="images/binding_results.png" | ||
| 1616 | scale="70" /> | ||
| 1617 | </imageobject> | ||
| 1618 | </mediaobject> | ||
| 1619 | </figure> | ||
| 1620 | </listitem> | ||
| 1621 | |||
| 1622 | <listitem> | ||
| 1623 | <para>Create one OpenVSwitch bridge for each SD-WAN network | ||
| 1624 | connection (VNF management, WAN and LAN) by selecting the | ||
| 1625 | <literal>Add</literal> button from the Bridges tab by selecting the | ||
| 1626 | target: <literal>Configuration</literal> -> | ||
| 1627 | <literal>OpenvSwitch</literal>-> <literal>Bridges</literal>. A | ||
| 1628 | popup like this should appear:</para> | ||
| 1629 | |||
| 1630 | <figure> | ||
| 1631 | <title>Creating an OpenVSwitch bridge for an SD-WAN network | ||
| 1632 | connection</title> | ||
| 1633 | |||
| 1634 | <mediaobject> | ||
| 1635 | <imageobject> | ||
| 1636 | <imagedata align="center" fileref="images/ovs_bridge_four.png" | ||
| 1637 | scale="70" /> | ||
| 1638 | </imageobject> | ||
| 1639 | </mediaobject> | ||
| 1640 | </figure> | ||
| 1641 | </listitem> | ||
| 1642 | |||
| 1643 | <listitem> | ||
| 1644 | <para>Repeat this step for all network connections. Three bridges | ||
| 1645 | will be created:</para> | ||
| 1646 | |||
| 1647 | <figure> | ||
| 1648 | <title>The three newly created Bridges</title> | ||
| 1649 | |||
| 1650 | <mediaobject> | ||
| 1651 | <imageobject> | ||
| 1652 | <imagedata align="center" fileref="images/created_bridges.png" | ||
| 1653 | scale="70" /> | ||
| 1654 | </imageobject> | ||
| 1655 | </mediaobject> | ||
| 1656 | </figure> | ||
| 1657 | </listitem> | ||
| 1658 | </orderedlist> | ||
| 1659 | |||
| 1660 | <para>Once the interfaces and bridges are ready, only the on-boarding | ||
| 1661 | and instantiation of the VNF remains to be done.</para> | ||
| 1662 | |||
| 1663 | <para><emphasis role="bold">Onboarding the FortiGate | ||
| 1664 | VNF</emphasis></para> | ||
| 1665 | |||
| 1666 | <orderedlist> | ||
| 1667 | <listitem> | ||
| 1668 | <para>To on-board a VNF, select target on the map and click the | ||
| 1669 | <literal>VNF</literal> button in the top toolbar. Then, click the | ||
| 1670 | <literal>Descriptors</literal> -> <literal>On-board</literal> | ||
| 1671 | -> <literal>Browse</literal> options, and select the | ||
| 1672 | <filename>Fortigate.zip</filename> file, before clicking | ||
| 1673 | <literal>Send</literal>:</para> | ||
| 1674 | |||
| 1675 | <figure> | ||
| 1676 | <title>On-boarding FortiGate VNF</title> | ||
| 1677 | |||
| 1678 | <mediaobject> | ||
| 1679 | <imageobject> | ||
| 1680 | <imagedata align="center" fileref="images/onboard.png" | ||
| 1681 | scale="45" /> | ||
| 1682 | </imageobject> | ||
| 1683 | </mediaobject> | ||
| 1684 | </figure> | ||
| 1685 | </listitem> | ||
| 1686 | |||
| 1687 | <listitem> | ||
| 1688 | <para>Wait for the <literal>Onboarding Status</literal> popup to | ||
| 1689 | display the confirmation message and select | ||
| 1690 | <literal>OK</literal>:</para> | ||
| 1691 | |||
| 1692 | <figure> | ||
| 1693 | <title>Successful Confirmation</title> | ||
| 1694 | |||
| 1695 | <mediaobject> | ||
| 1696 | <imageobject> | ||
| 1697 | <imagedata align="center" | ||
| 1698 | fileref="images/onboarded_successfully.png" | ||
| 1699 | scale="42" /> | ||
| 1700 | </imageobject> | ||
| 1701 | </mediaobject> | ||
| 1702 | </figure> | ||
| 1703 | </listitem> | ||
| 1704 | </orderedlist> | ||
| 1705 | |||
| 1706 | <para><emphasis role="bold">Instantiating the FortiGate | ||
| 1707 | VNF</emphasis></para> | ||
| 1708 | |||
| 1709 | <para>The following steps describe how to instantiate the Fortigate | ||
| 1710 | VNF.</para> | ||
| 1711 | |||
| 1712 | <orderedlist> | ||
| 1713 | <listitem> | ||
| 1714 | <para>Select the target, then from the top toolbar click on | ||
| 1715 | <literal>VNF</literal>-> <literal>Instances</literal> -> | ||
| 1716 | <literal>Add</literal> options:</para> | ||
| 1717 | |||
| 1718 | <figure> | ||
| 1719 | <title>Adding an Instance</title> | ||
| 1720 | |||
| 1721 | <mediaobject> | ||
| 1722 | <imageobject> | ||
| 1723 | <imagedata align="center" fileref="images/adding_instance.png" | ||
| 1724 | scale="50" /> | ||
| 1725 | </imageobject> | ||
| 1726 | </mediaobject> | ||
| 1727 | </figure> | ||
| 1728 | |||
| 1729 | <note> | ||
| 1730 | <para>Download locally the valid license files for the Fortigate | ||
| 1731 | VNF from Fortinet and the configuration file provided by Enea as | ||
| 1732 | examples.</para> | ||
| 1733 | </note> | ||
| 1734 | </listitem> | ||
| 1735 | |||
| 1736 | <listitem> | ||
| 1737 | <para>Use the <literal>sdwan1</literal> example configuration file | ||
| 1738 | for the first target:</para> | ||
| 1739 | |||
| 1740 | <figure> | ||
| 1741 | <title>Configuring target_1</title> | ||
| 1742 | |||
| 1743 | <mediaobject> | ||
| 1744 | <imageobject> | ||
| 1745 | <imagedata align="center" | ||
| 1746 | fileref="images/sdwan1_eg_config.png" scale="70" /> | ||
| 1747 | </imageobject> | ||
| 1748 | </mediaobject> | ||
| 1749 | </figure> | ||
| 1750 | </listitem> | ||
| 1751 | </orderedlist> | ||
| 1752 | |||
| 1753 | <para>Fortigate VNF instantiation requires the following | ||
| 1754 | settings:</para> | ||
| 1755 | |||
| 1756 | <table> | ||
| 1757 | <title>Fortigate VNF Instantiation Requirements</title> | ||
| 1758 | |||
| 1759 | <tgroup cols="2"> | ||
| 1760 | <colspec align="left" colwidth="2*" /> | ||
| 1761 | |||
| 1762 | <colspec align="left" colwidth="4*" /> | ||
| 1763 | |||
| 1764 | <thead> | ||
| 1765 | <row> | ||
| 1766 | <entry align="center">Component</entry> | ||
| 1767 | |||
| 1768 | <entry align="center">Description</entry> | ||
| 1769 | </row> | ||
| 1770 | </thead> | ||
| 1771 | |||
| 1772 | <tbody> | ||
| 1773 | <row> | ||
| 1774 | <entry>Name</entry> | ||
| 1775 | |||
| 1776 | <entry>The name of the VM which will be created on target | ||
| 1777 | device.</entry> | ||
| 1778 | </row> | ||
| 1779 | |||
| 1780 | <row> | ||
| 1781 | <entry>VNF Type</entry> | ||
| 1782 | |||
| 1783 | <entry>The name of the on-boarded VNF bundle.</entry> | ||
| 1784 | </row> | ||
| 1785 | |||
| 1786 | <row> | ||
| 1787 | <entry>VIM</entry> | ||
| 1788 | |||
| 1789 | <entry>Name and IP address of the device where the VNF has to be | ||
| 1790 | instantiated.</entry> | ||
| 1791 | </row> | ||
| 1792 | |||
| 1793 | <row> | ||
| 1794 | <entry>License file</entry> | ||
| 1795 | |||
| 1796 | <entry>FortiGate license file provided by Fortinet.</entry> | ||
| 1797 | </row> | ||
| 1798 | |||
| 1799 | <row> | ||
| 1800 | <entry>Configuration file</entry> | ||
| 1801 | |||
| 1802 | <entry>SD-WAN example configuration files provided by Enea: - | ||
| 1803 | FGVM080000136187_20180215_0708_sdwan1.conf - | ||
| 1804 | FGVM080000136188_20180215_0708_sdwan2.conf</entry> | ||
| 1805 | </row> | ||
| 1806 | |||
| 1807 | <row> | ||
| 1808 | <entry>Port1 - VNFMgr</entry> | ||
| 1809 | |||
| 1810 | <entry>Set as dpdk type and connect it to vnfmgrbr | ||
| 1811 | bridge.</entry> | ||
| 1812 | </row> | ||
| 1813 | |||
| 1814 | <row> | ||
| 1815 | <entry>Port2 - WAN</entry> | ||
| 1816 | |||
| 1817 | <entry>Set as dpdk type and connect it to wanbr bridge.</entry> | ||
| 1818 | </row> | ||
| 1819 | |||
| 1820 | <row> | ||
| 1821 | <entry>Port3 - LAN</entry> | ||
| 1822 | |||
| 1823 | <entry>Set as dpdk type and connect it to lanbr bridge.</entry> | ||
| 1824 | </row> | ||
| 1825 | </tbody> | ||
| 1826 | </tgroup> | ||
| 1827 | </table> | ||
| 1828 | |||
| 1829 | <para>To complete the branch-to-branch setup, configure the peer target | ||
| 1830 | in the same way as <literal>target_1</literal>. Make sure to use the | ||
| 1831 | <filename>FGVM080000136188_20180215_0708_sdwan2.conf</filename> | ||
| 1832 | configuration file for the second VNF instantiation.</para> | ||
| 1833 | |||
| 1834 | <para><emphasis role="bold">Testing the FortiGate SD-WAN | ||
| 1835 | VPN</emphasis></para> | ||
| 1836 | |||
| 1837 | <para>Once the full SD-WAN setup is in place a VPN connection needs to | ||
| 1838 | established between the two targets. The Test Machines can be connected | ||
| 1839 | to the LAN interface on each target.</para> | ||
| 1840 | |||
| 1841 | <para>The connected Test Machine can be a laptop or a target that has | ||
| 1842 | one interface configured to get dynamic IP from a DHCP server. The | ||
| 1843 | <command>dhclient <interface></command> command can be used to | ||
| 1844 | request an IP address.</para> | ||
| 1845 | |||
| 1846 | <note> | ||
| 1847 | <para>The received IP must be in the 172.16.1.2 - 172.16.1.255 range | ||
| 1848 | for Test Machine-1 and in the 172.16.2.2 - 172.16.2.255 range for Test | ||
| 1849 | Machine-2.</para> | ||
| 1850 | </note> | ||
| 1851 | |||
| 1852 | <figure> | ||
| 1853 | <title>Overview: Testing Machines Setup</title> | ||
| 1854 | |||
| 1855 | <mediaobject> | ||
| 1856 | <imageobject> | ||
| 1857 | <imagedata align="center" fileref="images/test_machines.png" | ||
| 1858 | scale="40" /> | ||
| 1859 | </imageobject> | ||
| 1860 | </mediaobject> | ||
| 1861 | </figure> | ||
| 1862 | |||
| 1863 | <para>Target 1 should be able to ping Test target 2 in this setup over | ||
| 1864 | the WAN connection.</para> | ||
| 1865 | |||
| 1866 | <para>In the figure above and this example, the FortiGate VNF management | ||
| 1867 | interface is accessible through a dedicated Mgmt interface. The Mgmt IP | ||
| 1868 | address can be used from a web browser on the Lab Machine to access the | ||
| 1869 | Fortigate VNF Management Web UI.</para> | ||
| 1870 | |||
| 1871 | <note> | ||
| 1872 | <para>In this SD-WAN VPN setup example, bridges were used as | ||
| 1873 | connection points for Fortigate VNF. It is possible to replace | ||
| 1874 | OVS-DPDK bridges with SR-IOV connection points.</para> | ||
| 1875 | </note> | ||
| 1876 | </section> | ||
| 1877 | </section> | ||
| 1878 | |||
| 1879 | <section id="inband_management"> | ||
| 1880 | <title>In-band Management</title> | ||
| 1881 | |||
| 1882 | <para>In the case of an NFV Access device installed on a network with | ||
| 1883 | limited access, In-band management can be a solution to manage the device | ||
| 1884 | and to pass data traffic (through only one physical interface). This | ||
| 1885 | example use-case will show how to enable the In-band management on the NFV | ||
| 1886 | Access device and to access a VNF on the same physical interface.</para> | ||
| 1887 | |||
| 1888 | <figure> | ||
| 1889 | <title>NFV Access In-band management solution setup</title> | ||
| 1890 | |||
| 1891 | <mediaobject> | ||
| 1892 | <imageobject> | ||
| 1893 | <imagedata align="center" fileref="images/uc_ibm_solution.png" | ||
| 1894 | scale="50" /> | ||
| 1895 | </imageobject> | ||
| 1896 | </mediaobject> | ||
| 1897 | </figure> | ||
| 1898 | |||
| 1899 | <para>Setup uses the following network configuration:</para> | ||
| 1900 | |||
| 1901 | <itemizedlist> | ||
| 1902 | <listitem> | ||
| 1903 | <para>1 x Network Interface for WAN and management.</para> | ||
| 1904 | </listitem> | ||
| 1905 | |||
| 1906 | <listitem> | ||
| 1907 | <para>1 x Network Interface for LAN.</para> | ||
| 1908 | </listitem> | ||
| 1909 | </itemizedlist> | ||
| 1910 | |||
| 1911 | <para>For prerequisites and further details, please see <xref | ||
| 1912 | linkend="inband_management" /> and <xref | ||
| 1913 | linkend="vnf_fortigate" />.</para> | ||
| 1914 | |||
| 1915 | <section id="mg_activation"> | ||
| 1916 | <title>In-band management activation for FortiGate VNF | ||
| 1917 | Instantiation</title> | ||
| 1918 | |||
| 1919 | <para>In-band management activation is done by creating a special bridge | ||
| 1920 | which manages all traffic from the WAN interface. The active physical | ||
| 1921 | port of the device (used by the device manager to communicate with the | ||
| 1922 | uCPE Manager) will be connected to the In-band management bridge. Once | ||
| 1923 | the In-band management bridge is activated, communication to the uCPE | ||
| 1924 | Manager will be reactivated, passing through the bridge.</para> | ||
| 1925 | |||
| 1926 | <note> | ||
| 1927 | <para>No other physical port for In-band management can be | ||
| 1928 | used.</para> | ||
| 1929 | </note> | ||
| 1930 | |||
| 1931 | <orderedlist> | ||
| 1932 | <listitem> | ||
| 1933 | <para>Create an In-band management WAN Bridge:</para> | ||
| 1934 | |||
| 1935 | <itemizedlist> | ||
| 1936 | <listitem> | ||
| 1937 | <para>Select the <literal>Device</literal> menu.</para> | ||
| 1938 | </listitem> | ||
| 1939 | |||
| 1940 | <listitem> | ||
| 1941 | <para>In the Configuration tab select | ||
| 1942 | <literal>OpenVSwitch.</literal></para> | ||
| 1943 | </listitem> | ||
| 1944 | |||
| 1945 | <listitem> | ||
| 1946 | <para>Select <literal>Bridges</literal> and click | ||
| 1947 | <literal>Add</literal>.</para> | ||
| 1948 | </listitem> | ||
| 1949 | |||
| 1950 | <listitem> | ||
| 1951 | <para>Use <literal>dpdkWAN</literal> as the | ||
| 1952 | <literal>ovs-bridge-type</literal>.</para> | ||
| 1953 | </listitem> | ||
| 1954 | </itemizedlist> | ||
| 1955 | |||
| 1956 | <figure> | ||
| 1957 | <title>Create In-band management WAN bridge</title> | ||
| 1958 | |||
| 1959 | <mediaobject> | ||
| 1960 | <imageobject> | ||
| 1961 | <imagedata align="center" fileref="images/uc_ibm_br.png" | ||
| 1962 | scale="75" /> | ||
| 1963 | </imageobject> | ||
| 1964 | </mediaobject> | ||
| 1965 | </figure> | ||
| 1966 | </listitem> | ||
| 1967 | |||
| 1968 | <listitem> | ||
| 1969 | <para>Bind the physical port which will be used for LAN access to | ||
| 1970 | <literal>dpdk</literal>:</para> | ||
| 1971 | |||
| 1972 | <itemizedlist> | ||
| 1973 | <listitem> | ||
| 1974 | <para>Select the <literal>Device</literal> menu.</para> | ||
| 1975 | </listitem> | ||
| 1976 | |||
| 1977 | <listitem> | ||
| 1978 | <para>In the Configuration tab select | ||
| 1979 | <literal>OpenVSwitch</literal>.</para> | ||
| 1980 | </listitem> | ||
| 1981 | |||
| 1982 | <listitem> | ||
| 1983 | <para>Select the <literal>Host Interfaces</literal> menu and | ||
| 1984 | click <literal>Add</literal>.</para> | ||
| 1985 | </listitem> | ||
| 1986 | |||
| 1987 | <listitem> | ||
| 1988 | <para>Use <literal>dpdk</literal> as the | ||
| 1989 | <literal>ovs-bridge-type</literal>.</para> | ||
| 1990 | </listitem> | ||
| 1991 | </itemizedlist> | ||
| 1992 | |||
| 1993 | <figure> | ||
| 1994 | <title>Bind LAN physical port to dpdk</title> | ||
| 1995 | |||
| 1996 | <mediaobject> | ||
| 1997 | <imageobject> | ||
| 1998 | <imagedata align="center" | ||
| 1999 | fileref="images/uc_ibm_dpdk_int_bind.png" | ||
| 2000 | scale="75" /> | ||
| 2001 | </imageobject> | ||
| 2002 | </mediaobject> | ||
| 2003 | </figure> | ||
| 2004 | </listitem> | ||
| 2005 | |||
| 2006 | <listitem> | ||
| 2007 | <para>Create a LAN Bridge:</para> | ||
| 2008 | |||
| 2009 | <itemizedlist> | ||
| 2010 | <listitem> | ||
| 2011 | <para>Select the <literal>Device.</literal></para> | ||
| 2012 | </listitem> | ||
| 2013 | |||
| 2014 | <listitem> | ||
| 2015 | <para>In the Configuration menu select | ||
| 2016 | <literal>OpenVSwitch.</literal></para> | ||
| 2017 | </listitem> | ||
| 2018 | |||
| 2019 | <listitem> | ||
| 2020 | <para>Open the <literal>Bridges</literal> menu and click | ||
| 2021 | <literal>Add.</literal></para> | ||
| 2022 | </listitem> | ||
| 2023 | </itemizedlist> | ||
| 2024 | |||
| 2025 | <figure> | ||
| 2026 | <title>Create LAN bridge</title> | ||
| 2027 | |||
| 2028 | <mediaobject> | ||
| 2029 | <imageobject> | ||
| 2030 | <imagedata align="center" fileref="images/uc_ibm_lanbr.png" | ||
| 2031 | scale="75" /> | ||
| 2032 | </imageobject> | ||
| 2033 | </mediaobject> | ||
| 2034 | </figure> | ||
| 2035 | |||
| 2036 | <para>At this step the following bridges should exist:</para> | ||
| 2037 | |||
| 2038 | <figure> | ||
| 2039 | <title>Bridges</title> | ||
| 2040 | |||
| 2041 | <mediaobject> | ||
| 2042 | <imageobject> | ||
| 2043 | <imagedata align="center" fileref="images/uc_ibm_br2.png" | ||
| 2044 | scale="65" /> | ||
| 2045 | </imageobject> | ||
| 2046 | </mediaobject> | ||
| 2047 | </figure> | ||
| 2048 | |||
| 2049 | <note> | ||
| 2050 | <para>The WAN port of the very first VNF instantiated on the | ||
| 2051 | device must be connected to the <literal>ibm-wan-br | ||
| 2052 | bridge</literal>. All other VNFs must be connected in chain with | ||
| 2053 | the first VNF.</para> | ||
| 2054 | </note> | ||
| 2055 | </listitem> | ||
| 2056 | |||
| 2057 | <listitem> | ||
| 2058 | <para>Onboard the first VNF and instantiate it on the device:</para> | ||
| 2059 | |||
| 2060 | <itemizedlist> | ||
| 2061 | <listitem> | ||
| 2062 | <para>Select the <literal>Device.</literal></para> | ||
| 2063 | </listitem> | ||
| 2064 | |||
| 2065 | <listitem> | ||
| 2066 | <para>Select the <literal>VNF</literal> menu.</para> | ||
| 2067 | </listitem> | ||
| 2068 | |||
| 2069 | <listitem> | ||
| 2070 | <para>In the <literal>Descriptors</literal> menu, choose the | ||
| 2071 | <literal>VNF Package</literal> option.</para> | ||
| 2072 | </listitem> | ||
| 2073 | |||
| 2074 | <listitem> | ||
| 2075 | <para>Browse and select the Fortigate bundle you require, before | ||
| 2076 | pressing the <literal>Send</literal> button.</para> | ||
| 2077 | </listitem> | ||
| 2078 | </itemizedlist> | ||
| 2079 | |||
| 2080 | <figure> | ||
| 2081 | <title>Onboard Fortigate VNF</title> | ||
| 2082 | |||
| 2083 | <mediaobject> | ||
| 2084 | <imageobject> | ||
| 2085 | <imagedata align="center" | ||
| 2086 | fileref="images/uc_ibm_fortigate_onboard.png" | ||
| 2087 | scale="50" /> | ||
| 2088 | </imageobject> | ||
| 2089 | </mediaobject> | ||
| 2090 | </figure> | ||
| 2091 | </listitem> | ||
| 2092 | |||
| 2093 | <listitem> | ||
| 2094 | <para>Add the VNF instance:</para> | ||
| 2095 | |||
| 2096 | <itemizedlist> | ||
| 2097 | <listitem> | ||
| 2098 | <para>Select the <literal>Device.</literal></para> | ||
| 2099 | </listitem> | ||
| 2100 | |||
| 2101 | <listitem> | ||
| 2102 | <para>Select the <literal>VNF</literal> menu.</para> | ||
| 2103 | </listitem> | ||
| 2104 | |||
| 2105 | <listitem> | ||
| 2106 | <para>Choose the <literal>Instances</literal> option, select the | ||
| 2107 | VNF configuration you desire and press | ||
| 2108 | <literal>Add.</literal></para> | ||
| 2109 | </listitem> | ||
| 2110 | |||
| 2111 | <listitem> | ||
| 2112 | <para>Browse and select the Fortigate bundle you require, before | ||
| 2113 | pressing the <literal>Send</literal> button.</para> | ||
| 2114 | </listitem> | ||
| 2115 | </itemizedlist> | ||
| 2116 | |||
| 2117 | <figure> | ||
| 2118 | <title>Instantiate Fortigate VNF</title> | ||
| 2119 | |||
| 2120 | <mediaobject> | ||
| 2121 | <imageobject> | ||
| 2122 | <imagedata align="center" | ||
| 2123 | fileref="images/uc_ibm_fg_instantiation.png" | ||
| 2124 | scale="65" /> | ||
| 2125 | </imageobject> | ||
| 2126 | </mediaobject> | ||
| 2127 | </figure> | ||
| 2128 | </listitem> | ||
| 2129 | </orderedlist> | ||
| 2130 | |||
| 2131 | <para>Once the VNF is instantiated, the setup is complete and ready for | ||
| 2132 | testing. Connect the test machine to the LAN port. It will receive an IP | ||
| 2133 | address from the Fortigate VNF and be able to access the | ||
| 2134 | internet.</para> | ||
| 2135 | </section> | ||
| 2136 | |||
| 2137 | <section id="test_fortvnf_inband"> | ||
| 2138 | <title>Testing the Fortigate VNF In-band management activation</title> | ||
| 2139 | |||
| 2140 | <figure> | ||
| 2141 | <title>Test setup</title> | ||
| 2142 | |||
| 2143 | <mediaobject> | ||
| 2144 | <imageobject> | ||
| 2145 | <imagedata align="center" | ||
| 2146 | fileref="images/uc_ibm_solution_test.png" scale="50" /> | ||
| 2147 | </imageobject> | ||
| 2148 | </mediaobject> | ||
| 2149 | </figure> | ||
| 2150 | |||
| 2151 | <para>At this stage, three types of traffic are passing through the WAN | ||
| 2152 | port on the same IP address:</para> | ||
| 2153 | |||
| 2154 | <itemizedlist> | ||
| 2155 | <listitem> | ||
| 2156 | <para>Device management traffic from uCPE Manager.</para> | ||
| 2157 | </listitem> | ||
| 2158 | |||
| 2159 | <listitem> | ||
| 2160 | <para>Fortigate management interface traffic from a web | ||
| 2161 | browser.</para> | ||
| 2162 | </listitem> | ||
| 2163 | |||
| 2164 | <listitem> | ||
| 2165 | <para>Data traffic from the LAN to the internet.</para> | ||
| 2166 | </listitem> | ||
| 2167 | </itemizedlist> | ||
| 2168 | |||
| 2169 | <para>Having access from the uCPE Manager to the device as shown above, | ||
| 2170 | demonstrates that device management traffic passes through the in-band | ||
| 2171 | management WAN bridge successfully.</para> | ||
| 2172 | |||
| 2173 | <para>To access the management interface of the VNF, connect from a web | ||
| 2174 | browser to the public IP address of the device e.g. | ||
| 2175 | <literal>https://<IP></literal>. From a Test machine connected on | ||
| 2176 | LAN port, try a test ping to the internet e.g. "ping 8.8.8.8".</para> | ||
| 2177 | </section> | ||
| 2178 | </section> | ||
| 2179 | |||
| 2180 | <section id="vnf_chaining"> | ||
| 2181 | <title>VNF Chaining Example</title> | ||
| 2182 | |||
| 2183 | <section id="VNF_chain_intro"> | ||
| 2184 | <title>Introduction</title> | ||
| 2185 | |||
| 2186 | <para>The purpose of this chapter is to describe an example of how to | ||
| 2187 | setup and configure a branch-to-branch service comprised on two | ||
| 2188 | commercial VNFs (SD-WAN + Firewall), running in a service chain on top | ||
| 2189 | of Enea NFV Access virtualization platform and deployed through Enea | ||
| 2190 | uCPE Manager. In the example setup the following commercial VNFs are | ||
| 2191 | used: Juniper vSRX as SD-WAN VNF and Fortigate as | ||
| 2192 | Router/Firewall.</para> | ||
| 2193 | |||
| 2194 | <para>The setup requires two physical appliances (uCPEs), each of them | ||
| 2195 | having three DPDK-compatible NICs and one interface available for uCPE | ||
| 2196 | management (i.e. connected to Enea uCPE Manager). On each uCPE, one of | ||
| 2197 | the DPDK-compatible interfaces shall be connected back-to-back with one | ||
| 2198 | interface from the other uCPE device - this link is simulating | ||
| 2199 | WAN/uplink connection.</para> | ||
| 2200 | |||
| 2201 | <para>Optionally, one additional device (PC/laptop) can be connected on | ||
| 2202 | the LAN port of each branch for running LAN-to-LAN connectivity | ||
| 2203 | tests.</para> | ||
| 2204 | |||
| 2205 | <figure> | ||
| 2206 | <title>Example Setup</title> | ||
| 2207 | |||
| 2208 | <mediaobject> | ||
| 2209 | <imageobject> | ||
| 2210 | <imagedata align="center" fileref="images/example_setup.png" | ||
| 2211 | scale="90" /> | ||
| 2212 | </imageobject> | ||
| 2213 | </mediaobject> | ||
| 2214 | </figure> | ||
| 2215 | |||
| 2216 | <note><para>For simplicity, image does not present management-plane, which will be | ||
| 2217 | described in the Setup steps.</para></note> | ||
| 2218 | </section> | ||
| 2219 | |||
| 2220 | <section id="crateing_setup"> | ||
| 2221 | <title>Creating the setup</title> | ||
| 2222 | |||
| 2223 | <para>Both branches in the example have similar setups, therefore | ||
| 2224 | necessary step details are presented on only one branch. The second | ||
| 2225 | branch shall be configured in the same way, by changing corresponding | ||
| 2226 | VNFs configurations files.</para> | ||
| 2227 | |||
| 2228 | <orderedlist> | ||
| 2229 | <listitem> | ||
| 2230 | <para>Assign three physical interfaces to DPDK (for management, wan | ||
| 2231 | and lan). In the example, one of them gets IP through DHCP and it | ||
| 2232 | will be used exclusively for management plane.</para> | ||
| 2233 | </listitem> | ||
| 2234 | |||
| 2235 | <listitem> | ||
| 2236 | <para>Create the following OVS-DPDK bridges:</para> | ||
| 2237 | |||
| 2238 | <itemizedlist> | ||
| 2239 | <listitem> | ||
| 2240 | <para>vnf_mgmt_br : used by VNFs management ports.</para> | ||
| 2241 | </listitem> | ||
| 2242 | |||
| 2243 | <listitem> | ||
| 2244 | <para>wan_br : used by service uplink connection. In our case, | ||
| 2245 | Juniper vSRX will have its WAN virtual interface in this | ||
| 2246 | bridge.</para> | ||
| 2247 | </listitem> | ||
| 2248 | |||
| 2249 | <listitem> | ||
| 2250 | <para>sfc_br : used for creating the service chain. Each VNF | ||
| 2251 | will have a virtual interface in this bridge.</para> | ||
| 2252 | </listitem> | ||
| 2253 | |||
| 2254 | <listitem> | ||
| 2255 | <para>lan_br : used for LAN interface of the Fortigate | ||
| 2256 | FW.</para> | ||
| 2257 | </listitem> | ||
| 2258 | </itemizedlist> | ||
| 2259 | </listitem> | ||
| 2260 | |||
| 2261 | <listitem> | ||
| 2262 | <para>Add corresponding DPDK ports (see Step 1) to the management, | ||
| 2263 | wan and lan bridges (sfc_br does not have a physical port attached | ||
| 2264 | to it).</para> | ||
| 2265 | |||
| 2266 | <note> | ||
| 2267 | <para>This networking setup (Steps 1-3) can be modeled using | ||
| 2268 | Offline Configuration entry, so it is automatically provisioned on | ||
| 2269 | the uCPE, once it gets enrolled into the management system (uCPE | ||
| 2270 | Manager).</para> | ||
| 2271 | </note> | ||
| 2272 | </listitem> | ||
| 2273 | |||
| 2274 | <listitem> | ||
| 2275 | <para>Onboard Juniper vSRX using Onboarding Wizard:</para> | ||
| 2276 | |||
| 2277 | <itemizedlist> | ||
| 2278 | <listitem> | ||
| 2279 | <para>Flavor shall have at least 2 vCPUs and 4 GB RAM since vSRX | ||
| 2280 | is quite resource consuming. (We actually tested with 4 vCPUs/ 6 | ||
| 2281 | GB RAM).</para> | ||
| 2282 | </listitem> | ||
| 2283 | |||
| 2284 | <listitem> | ||
| 2285 | <para>Add three virtual interfaces: management, wan and | ||
| 2286 | lan.</para> | ||
| 2287 | </listitem> | ||
| 2288 | |||
| 2289 | <listitem> | ||
| 2290 | <para>Select ISO/cdrom on the Cloud-Init tab.</para> | ||
| 2291 | </listitem> | ||
| 2292 | </itemizedlist> | ||
| 2293 | </listitem> | ||
| 2294 | |||
| 2295 | <listitem> | ||
| 2296 | <para>Onboard Fortigate FW using Onboarding Wizard:</para> | ||
| 2297 | |||
| 2298 | <itemizedlist> | ||
| 2299 | <listitem> | ||
| 2300 | <para>Flavor can be quite light in resources, e.g. 1 vCPU and 2 | ||
| 2301 | GB RAM.</para> | ||
| 2302 | </listitem> | ||
| 2303 | |||
| 2304 | <listitem> | ||
| 2305 | <para>Add three virtual interfaces: management, wan and | ||
| 2306 | lan.</para> | ||
| 2307 | </listitem> | ||
| 2308 | |||
| 2309 | <listitem> | ||
| 2310 | <para>Select ConfigDrive/cdrom on the Cloud-Init tab.</para> | ||
| 2311 | </listitem> | ||
| 2312 | |||
| 2313 | <listitem> | ||
| 2314 | <para>Add <literal>license</literal> as Cloud-Init content on the Cloud-Init tab | ||
| 2315 | files.</para> | ||
| 2316 | </listitem> | ||
| 2317 | </itemizedlist> | ||
| 2318 | |||
| 2319 | <note> | ||
| 2320 | <para>Steps 4-5 shall be done only once, i.e. they will not be | ||
| 2321 | repeated for Site 2.</para> | ||
| 2322 | </note> | ||
| 2323 | </listitem> | ||
| 2324 | |||
| 2325 | <listitem> | ||
| 2326 | <para>Create vSRX instance:</para> | ||
| 2327 | |||
| 2328 | <itemizedlist> | ||
| 2329 | <listitem> | ||
| 2330 | <para>Use vSRX-Site1.iso as Cloud Init file.</para> | ||
| 2331 | </listitem> | ||
| 2332 | |||
| 2333 | <listitem> | ||
| 2334 | <para>Domain Update Script can be left empty for Atom C3000 | ||
| 2335 | architecture, while for XeonD please use | ||
| 2336 | vSRX-domain-update-script file.</para> | ||
| 2337 | </listitem> | ||
| 2338 | |||
| 2339 | <listitem> | ||
| 2340 | <para>Add virtual interfaces:</para> | ||
| 2341 | |||
| 2342 | <itemizedlist> | ||
| 2343 | <listitem> | ||
| 2344 | <para>Management interface added to vnf_mgmt_br.</para> | ||
| 2345 | </listitem> | ||
| 2346 | </itemizedlist> | ||
| 2347 | |||
| 2348 | <itemizedlist> | ||
| 2349 | <listitem> | ||
| 2350 | <para>Wan interface added to wan_br.</para> | ||
| 2351 | </listitem> | ||
| 2352 | </itemizedlist> | ||
| 2353 | |||
| 2354 | <itemizedlist> | ||
| 2355 | <listitem> | ||
| 2356 | <para>Lan interface added to sfc_br.</para> | ||
| 2357 | </listitem> | ||
| 2358 | </itemizedlist> | ||
| 2359 | </listitem> | ||
| 2360 | </itemizedlist> | ||
| 2361 | |||
| 2362 | <note> | ||
| 2363 | <para>login/password for vSRX VNF are root/vsrx1234.</para> | ||
| 2364 | </note> | ||
| 2365 | </listitem> | ||
| 2366 | |||
| 2367 | <listitem> | ||
| 2368 | <para>Create Fortigate FW instance</para> | ||
| 2369 | |||
| 2370 | <itemizedlist> | ||
| 2371 | <listitem> | ||
| 2372 | <para>Use FortiFW-Site1.conf as Cloud Init file.</para> | ||
| 2373 | </listitem> | ||
| 2374 | |||
| 2375 | <listitem> | ||
| 2376 | <para>Add .lic file (not part of the folder) as license | ||
| 2377 | file.</para> | ||
| 2378 | </listitem> | ||
| 2379 | |||
| 2380 | <listitem> | ||
| 2381 | <para>Add virtual interfaces:</para> | ||
| 2382 | |||
| 2383 | <itemizedlist> | ||
| 2384 | <listitem> | ||
| 2385 | <para>Management interface added to vnf_mgmt_br.</para> | ||
| 2386 | </listitem> | ||
| 2387 | </itemizedlist> | ||
| 2388 | |||
| 2389 | <itemizedlist> | ||
| 2390 | <listitem> | ||
| 2391 | <para>Wan interface added to sfc_br.</para> | ||
| 2392 | </listitem> | ||
| 2393 | </itemizedlist> | ||
| 2394 | |||
| 2395 | <itemizedlist> | ||
| 2396 | <listitem> | ||
| 2397 | <para>Lan interface added to lan_br.</para> | ||
| 2398 | </listitem> | ||
| 2399 | </itemizedlist> | ||
| 2400 | </listitem> | ||
| 2401 | </itemizedlist> | ||
| 2402 | |||
| 2403 | <note> | ||
| 2404 | <para>login/password for Juniper VNF are admin/<empty | ||
| 2405 | password>.</para> | ||
| 2406 | </note> | ||
| 2407 | </listitem> | ||
| 2408 | </orderedlist> | ||
| 2409 | |||
| 2410 | <para>At this stage service shall be up and running on Site1. Repeat | ||
| 2411 | necessary steps of Site2, by changing configuration files. After service | ||
| 2412 | is deployed on both branches, VPN tunnel is established and we can | ||
| 2413 | verify LAN to LAN visibility by connecting one device on each uCPE LAN | ||
| 2414 | port (see below).</para> | ||
| 2415 | </section> | ||
| 2416 | |||
| 2417 | <section id="test_setup"> | ||
| 2418 | <title>Testing the setup</title> | ||
| 2419 | |||
| 2420 | <para>Before testing LAN to LAN connectivity, one can run preliminary | ||
| 2421 | tests of service to ensure everything was set-up properly. For instance, | ||
| 2422 | by connecting to vSRX CLI (any site), one can test IKE security | ||
| 2423 | associations:</para> | ||
| 2424 | |||
| 2425 | <programlisting>root@Atom-C3000> show security ike security-associations | ||
| 2426 | Index State Initiator cookie Responder cookie Mode Remote Address | ||
| 2427 | 1588673 UP 2f2047b144ebfce4 0000000000000000 Aggressive 10.1.1.2 | ||
| 2428 | ... | ||
| 2429 | root@Atom-C3000> show security ike security-associations index 1588673 detail | ||
| 2430 | ...</programlisting> | ||
| 2431 | |||
| 2432 | <para>Also, from vSRX CLI, one can check that VPN tunnel was established | ||
| 2433 | and get statistics of the packets passing the tunnel:</para> | ||
| 2434 | |||
| 2435 | <programlisting>root@Atom-C3000> show security ipsec security-associations | ||
| 2436 | ... | ||
| 2437 | root@Atom-C3000> show security ipsec statistics index <xxxxx> | ||
| 2438 | ...</programlisting> | ||
| 2439 | |||
| 2440 | <para>From Fortigate Firewall CLI on Site 1, one can check connectivity | ||
| 2441 | to remote Fortigate FW (from Site 2):</para> | ||
| 2442 | |||
| 2443 | <programlisting>FGVM080000136187 # execute ping 192.168.168.2 | ||
| 2444 | PING 192.168.168.2 (192.168.168.2): 56 data bytes | ||
| 2445 | 64 bytes from 192.168.168.2: icmp_seq=0 ttl=255 time=0.0 ms | ||
| 2446 | 64 bytes from 192.168.168.2: icmp_seq=1 ttl=255 time=0.0 ms | ||
| 2447 | 64 bytes from 192.168.168.2: icmp_seq=2 ttl=255 time=0.0 ms | ||
| 2448 | ...</programlisting> | ||
| 2449 | |||
| 2450 | <para>As VNFs management ports were configured to get IPs through DHCP, | ||
| 2451 | one can use Web-based management UI to check and modify the | ||
| 2452 | configurations of both vSRX and Fortigate.</para> | ||
| 2453 | |||
| 2454 | <para>For example, in case of vSRX, from VNF CLI you can list the | ||
| 2455 | virtual interfaces as below:</para> | ||
| 2456 | |||
| 2457 | <programlisting>root@Atom-C3000> show interfaces terse | ||
| 2458 | ... | ||
| 2459 | fxp0.0 up up inet 172.24.15.92/22 | ||
| 2460 | gre up up | ||
| 2461 | ipip up up | ||
| 2462 | ... | ||
| 2463 | </programlisting> | ||
| 2464 | |||
| 2465 | <para>When using provided configurations, VNF management port of Juniper | ||
| 2466 | vSRX is always "fxp0.0".</para> | ||
| 2467 | |||
| 2468 | <para>In case of Fortigate, from VNF CLI you can list the virtual | ||
| 2469 | interfaces like :</para> | ||
| 2470 | |||
| 2471 | <programlisting>FGVM080000136187 # get system interface | ||
| 2472 | == [ port1 ] | ||
| 2473 | name: port1 mode: dhcp ip: 172.24.15.94 255.255.252.0 status: up netbios-forward: | ||
| 2474 | disable type: physical netflow-sampler: disable sflow-sampler: disable... | ||
| 2475 | ...</programlisting> | ||
| 2476 | |||
| 2477 | <para>When using provided configurations, VNF management port of | ||
| 2478 | Fortigate is always "port1".</para> | ||
| 2479 | |||
| 2480 | <note> | ||
| 2481 | <para>Please note that VNFs' management ports will get dynamically | ||
| 2482 | allocated IPs only if physical NIC used for management is configured | ||
| 2483 | to get its IP through DHCP (see Step 1 from above).</para> | ||
| 2484 | </note> | ||
| 2485 | |||
| 2486 | <para>If everything is working, we can check LAN-to-LAN connectivity | ||
| 2487 | (through VPN tunnel) by using two devices (PC/laptop) connected to the | ||
| 2488 | LAN ports of each uCPE. Optionally, these devices can be simulated by | ||
| 2489 | using Enea's sample VNF running on both uCPEs and connected to the | ||
| 2490 | lan_br on each side. However, instructions for onboarding and | ||
| 2491 | instantiating this VNF is not in the scope of this document.</para> | ||
| 2492 | |||
| 2493 | <para>Since Fortigate VNF, which is acting as router and firewall, is | ||
| 2494 | configured to be DHCP server for LAN network, device interface connected | ||
| 2495 | to uCPE LAN port has to be configured to get dinamically assigned IP. | ||
| 2496 | These IPs are in 172.0.0.0/24 network for Site1 and 172.10.10.0/24 | ||
| 2497 | network for Site2. Therefore, site-to-site connectivity can be checked | ||
| 2498 | like (from Site1):</para> | ||
| 2499 | |||
| 2500 | <programlisting>root@atom-c3000:~# ping 172.10.10.2 | ||
| 2501 | PING 172.10.10.1 (172.10.10.2): 56 data bytes | ||
| 2502 | ... | ||
| 2503 | </programlisting> | ||
| 2504 | </section> | ||
| 2505 | |||
| 2506 | <section id="limitation"> | ||
| 2507 | <title>Out-of-Scope/Limitations</title> | ||
| 2508 | <para>Below is a list of known limitations:</para> | ||
| 2509 | <itemizedlist> | ||
| 2510 | <listitem> | ||
| 2511 | <para>vSRX VNF has no trust-to-untrust and untrust-to-trust policies | ||
| 2512 | (only trust-to-vpn and vpn-to-trust were configured). Therefore, | ||
| 2513 | uCPEs were not configured for "direct Internet access" | ||
| 2514 | use-case.</para> | ||
| 2515 | </listitem> | ||
| 2516 | |||
| 2517 | <listitem> | ||
| 2518 | <para>Fortigate VNF has no "real" firewall policies set, i.e. all | ||
| 2519 | traffic from LAN is allowed to pass through WAN interface and | ||
| 2520 | vice-versa.</para> | ||
| 2521 | </listitem> | ||
| 2522 | </itemizedlist> | ||
| 2523 | </section> | ||
| 2524 | </section> | ||
| 2525 | </chapter> | ||
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 new file mode 100644 index 0000000..f28fc4e --- /dev/null +++ b/doc/book-enea-nfv-access-example-usecases/doc/inband_management.xml | |||
| @@ -0,0 +1,296 @@ | |||
| 1 | <?xml version="1.0" encoding="ISO-8859-1"?> | ||
| 2 | <chapter id="inband_management"> | ||
| 3 | <title>In-band Management Example Use-case</title> | ||
| 4 | |||
| 5 | <para>In the case of an NFV Access device installed on a network with | ||
| 6 | limited access, In-band management can be a solution to manage the device | ||
| 7 | and to pass data traffic (through only one physical interface). This example | ||
| 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> | ||
| 10 | |||
| 11 | <figure> | ||
| 12 | <title>NFV Access In-band management solution setup</title> | ||
| 13 | |||
| 14 | <mediaobject> | ||
| 15 | <imageobject> | ||
| 16 | <imagedata align="center" fileref="images/uc_ibm_solution.png" | ||
| 17 | scale="50" /> | ||
| 18 | </imageobject> | ||
| 19 | </mediaobject> | ||
| 20 | </figure> | ||
| 21 | |||
| 22 | <para>Setup uses the following network configuration:</para> | ||
| 23 | |||
| 24 | <itemizedlist> | ||
| 25 | <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 | ||
| 35 | linkend="inband_management" /> and <xref linkend="vnf_fortigate" />.</para> | ||
| 36 | |||
| 37 | <section id="mg_activation"> | ||
| 38 | <title>In-band management activation for FortiGate VNF | ||
| 39 | Instantiation</title> | ||
| 40 | |||
| 41 | <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 | ||
| 43 | 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 | ||
| 45 | In-band management bridge is activated, communication to the uCPE Manager | ||
| 46 | will be reactivated, passing through the bridge.</para> | ||
| 47 | |||
| 48 | <note> | ||
| 49 | <para>No other physical port for In-band management can be used.</para> | ||
| 50 | </note> | ||
| 51 | |||
| 52 | <orderedlist> | ||
| 53 | <listitem> | ||
| 54 | <para>Create an In-band management WAN Bridge:</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 | |||
| 114 | <figure> | ||
| 115 | <title>Bind LAN physical port to dpdk</title> | ||
| 116 | |||
| 117 | <mediaobject> | ||
| 118 | <imageobject> | ||
| 119 | <imagedata align="center" | ||
| 120 | fileref="images/uc_ibm_dpdk_int_bind.png" scale="75" /> | ||
| 121 | </imageobject> | ||
| 122 | </mediaobject> | ||
| 123 | </figure> | ||
| 124 | </listitem> | ||
| 125 | |||
| 126 | <listitem> | ||
| 127 | <para>Create a LAN Bridge:</para> | ||
| 128 | |||
| 129 | <itemizedlist> | ||
| 130 | <listitem> | ||
| 131 | <para>Select the <literal>Device.</literal></para> | ||
| 132 | </listitem> | ||
| 133 | |||
| 134 | <listitem> | ||
| 135 | <para>In the Configuration menu select | ||
| 136 | <literal>OpenVSwitch.</literal></para> | ||
| 137 | </listitem> | ||
| 138 | |||
| 139 | <listitem> | ||
| 140 | <para>Open the <literal>Bridges</literal> menu and click | ||
| 141 | <literal>Add.</literal></para> | ||
| 142 | </listitem> | ||
| 143 | </itemizedlist> | ||
| 144 | |||
| 145 | <figure> | ||
| 146 | <title>Create LAN bridge</title> | ||
| 147 | |||
| 148 | <mediaobject> | ||
| 149 | <imageobject> | ||
| 150 | <imagedata align="center" fileref="images/uc_ibm_lanbr.png" | ||
| 151 | scale="75" /> | ||
| 152 | </imageobject> | ||
| 153 | </mediaobject> | ||
| 154 | </figure> | ||
| 155 | |||
| 156 | <para>At this step the following bridges should exist:</para> | ||
| 157 | |||
| 158 | <figure> | ||
| 159 | <title>Bridges</title> | ||
| 160 | |||
| 161 | <mediaobject> | ||
| 162 | <imageobject> | ||
| 163 | <imagedata align="center" fileref="images/uc_ibm_br2.png" | ||
| 164 | scale="65" /> | ||
| 165 | </imageobject> | ||
| 166 | </mediaobject> | ||
| 167 | </figure> | ||
| 168 | |||
| 169 | <note> | ||
| 170 | <para>The WAN port of the very first VNF instantiated on the device | ||
| 171 | must be connected to the <literal>ibm-wan-br bridge</literal>. All | ||
| 172 | other VNFs must be connected in chain with the first VNF.</para> | ||
| 173 | </note> | ||
| 174 | </listitem> | ||
| 175 | |||
| 176 | <listitem> | ||
| 177 | <para>Onboard the first VNF and instantiate it on the device:</para> | ||
| 178 | |||
| 179 | <itemizedlist> | ||
| 180 | <listitem> | ||
| 181 | <para>Select the <literal>Device.</literal></para> | ||
| 182 | </listitem> | ||
| 183 | |||
| 184 | <listitem> | ||
| 185 | <para>Select the <literal>VNF</literal> menu.</para> | ||
| 186 | </listitem> | ||
| 187 | |||
| 188 | <listitem> | ||
| 189 | <para>In the <literal>Descriptors</literal> menu, choose the | ||
| 190 | <literal>VNF Package</literal> option.</para> | ||
| 191 | </listitem> | ||
| 192 | |||
| 193 | <listitem> | ||
| 194 | <para>Browse and select the Fortigate bundle you require, before | ||
| 195 | pressing the <literal>Send</literal> button.</para> | ||
| 196 | </listitem> | ||
| 197 | </itemizedlist> | ||
| 198 | |||
| 199 | <figure> | ||
| 200 | <title>Onboard Fortigate VNF</title> | ||
| 201 | |||
| 202 | <mediaobject> | ||
| 203 | <imageobject> | ||
| 204 | <imagedata align="center" | ||
| 205 | fileref="images/uc_ibm_fortigate_onboard.png" | ||
| 206 | scale="50" /> | ||
| 207 | </imageobject> | ||
| 208 | </mediaobject> | ||
| 209 | </figure> | ||
| 210 | </listitem> | ||
| 211 | |||
| 212 | <listitem> | ||
| 213 | <para>Add the VNF instance:</para> | ||
| 214 | |||
| 215 | <itemizedlist> | ||
| 216 | <listitem> | ||
| 217 | <para>Select the <literal>Device.</literal></para> | ||
| 218 | </listitem> | ||
| 219 | |||
| 220 | <listitem> | ||
| 221 | <para>Select the <literal>VNF</literal> menu.</para> | ||
| 222 | </listitem> | ||
| 223 | |||
| 224 | <listitem> | ||
| 225 | <para>Choose the <literal>Instances</literal> option, select the | ||
| 226 | VNF configuration you desire and press | ||
| 227 | <literal>Add.</literal></para> | ||
| 228 | </listitem> | ||
| 229 | |||
| 230 | <listitem> | ||
| 231 | <para>Browse and select the Fortigate bundle you require, before | ||
| 232 | pressing the <literal>Send</literal> button.</para> | ||
| 233 | </listitem> | ||
| 234 | </itemizedlist> | ||
| 235 | |||
| 236 | <figure> | ||
| 237 | <title>Instantiate Fortigate VNF</title> | ||
| 238 | |||
| 239 | <mediaobject> | ||
| 240 | <imageobject> | ||
| 241 | <imagedata align="center" | ||
| 242 | fileref="images/uc_ibm_fg_instantiation.png" | ||
| 243 | scale="65" /> | ||
| 244 | </imageobject> | ||
| 245 | </mediaobject> | ||
| 246 | </figure> | ||
| 247 | </listitem> | ||
| 248 | </orderedlist> | ||
| 249 | |||
| 250 | <para>Once the VNF is instantiated, the setup is complete and ready for | ||
| 251 | testing. Connect the test machine to the LAN port. It will receive an IP | ||
| 252 | address from the Fortigate VNF and be able to access the internet.</para> | ||
| 253 | </section> | ||
| 254 | |||
| 255 | <section id="test_fortvnf_inband"> | ||
| 256 | <title>Testing the Fortigate VNF In-band management activation</title> | ||
| 257 | |||
| 258 | <figure> | ||
| 259 | <title>Test setup</title> | ||
| 260 | |||
| 261 | <mediaobject> | ||
| 262 | <imageobject> | ||
| 263 | <imagedata align="center" fileref="images/uc_ibm_solution_test.png" | ||
| 264 | scale="50" /> | ||
| 265 | </imageobject> | ||
| 266 | </mediaobject> | ||
| 267 | </figure> | ||
| 268 | |||
| 269 | <para>At this stage, three types of traffic are passing through the WAN | ||
| 270 | port on the same IP address:</para> | ||
| 271 | |||
| 272 | <itemizedlist> | ||
| 273 | <listitem> | ||
| 274 | <para>Device management traffic from uCPE Manager.</para> | ||
| 275 | </listitem> | ||
| 276 | |||
| 277 | <listitem> | ||
| 278 | <para>Fortigate management interface traffic from a web | ||
| 279 | browser.</para> | ||
| 280 | </listitem> | ||
| 281 | |||
| 282 | <listitem> | ||
| 283 | <para>Data traffic from the LAN to the internet.</para> | ||
| 284 | </listitem> | ||
| 285 | </itemizedlist> | ||
| 286 | |||
| 287 | <para>Having access from the uCPE Manager to the device as shown above, | ||
| 288 | demonstrates that device management traffic passes through the in-band | ||
| 289 | management WAN bridge successfully.</para> | ||
| 290 | |||
| 291 | <para>To access the management interface of the VNF, connect from a web | ||
| 292 | browser to the public IP address of the device e.g. | ||
| 293 | <literal>https://<IP></literal>. From a Test machine connected on | ||
| 294 | LAN port, try a test ping to the internet e.g. "ping 8.8.8.8".</para> | ||
| 295 | </section> | ||
| 296 | </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 new file mode 100644 index 0000000..70d7add --- /dev/null +++ b/doc/book-enea-nfv-access-example-usecases/doc/vnf_chaining.xml | |||
| @@ -0,0 +1,361 @@ | |||
| 1 | <?xml version="1.0" encoding="ISO-8859-1"?> | ||
| 2 | <chapter id="vnf_chaining"> | ||
| 3 | <title>VNF Chaining Example Use-case</title> | ||
| 4 | |||
| 5 | <section id="VNF_chain_intro"> | ||
| 6 | <title>Introduction</title> | ||
| 7 | |||
| 8 | <para>The following decribes an example of how to setup and configure a | ||
| 9 | branch-to-branch service comprised on two commercial VNFs (SD-WAN + | ||
| 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 | |||
| 15 | <para>The setup requires two physical appliances (uCPEs), each of them | ||
| 16 | having three DPDK-compatible NICs and one interface available for uCPE | ||
| 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 | |||
| 22 | <para>Optionally, one additional device (PC/laptop) can be connected on | ||
| 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="90" /> | ||
| 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="crateing_setup"> | ||
| 43 | <title>Creating the setup</title> | ||
| 44 | |||
| 45 | <para>Both branches in the example have similar setups, therefore | ||
| 46 | necessary step details are presented for only one branch. The second | ||
| 47 | branch shall be configured in the same way, adapting as needed the | ||
| 48 | corresponding VNFs configuration files.</para> | ||
| 49 | |||
| 50 | <orderedlist> | ||
| 51 | <listitem> | ||
| 52 | <para>Assign three physical interfaces to the DPDK (one for | ||
| 53 | management, one WAN and one for LAN). In the example, one of these | ||
| 54 | interfaces gets an IP through DHCP and it will be used exclusively for | ||
| 55 | the management plane.</para> | ||
| 56 | </listitem> | ||
| 57 | |||
| 58 | <listitem> | ||
| 59 | <para>Create the following OVS-DPDK bridges:</para> | ||
| 60 | |||
| 61 | <itemizedlist> | ||
| 62 | <listitem> | ||
| 63 | <para><literal>vnf_mgmt_br</literal>. Used by VNF management | ||
| 64 | ports.</para> | ||
| 65 | </listitem> | ||
| 66 | |||
| 67 | <listitem> | ||
| 68 | <para><literal>wan_br</literal>. Used by the service uplink connection. In our case, | ||
| 69 | Juniper vSRX will have its WAN virtual interface in this | ||
| 70 | bridge.</para> | ||
| 71 | </listitem> | ||
| 72 | |||
| 73 | <listitem> | ||
| 74 | <para><literal>sfc_br</literal>. Used for creating the service | ||
| 75 | chain. Each VNF will have a virtual interface in this | ||
| 76 | bridge.</para> | ||
| 77 | </listitem> | ||
| 78 | |||
| 79 | <listitem> | ||
| 80 | <para><literal>lan_br</literal>. Used for the LAN interface of the | ||
| 81 | Fortigate FW.</para> | ||
| 82 | </listitem> | ||
| 83 | </itemizedlist> | ||
| 84 | </listitem> | ||
| 85 | |||
| 86 | <listitem> | ||
| 87 | <para>Add corresponding DPDK ports (see Step 1) to the management, WAN | ||
| 88 | and LAN bridges (<literal>sfc_br</literal> does not have a physical | ||
| 89 | port attached to it).</para> | ||
| 90 | |||
| 91 | <note> | ||
| 92 | <para>The networking setup (Steps 1-3) can be modeled using the | ||
| 93 | Offline Configuration entry, so that it is automatically provisioned | ||
| 94 | on the uCPE, once it gets enrolled into the management system (uCPE | ||
| 95 | Manager).</para> | ||
| 96 | </note> | ||
| 97 | </listitem> | ||
| 98 | |||
| 99 | <listitem> | ||
| 100 | <para>Onboard Juniper vSRX using the VNF Onboarding Wizard:</para> | ||
| 101 | |||
| 102 | <itemizedlist> | ||
| 103 | <listitem> | ||
| 104 | <para>The Flavor selected must have at least 2 vCPUs and 4 GB RAM | ||
| 105 | since vSRX is quite resource consuming. </para> | ||
| 106 | |||
| 107 | <para>Tested-inhouse with 4 vCPUs/ 6 GB RAM.</para> | ||
| 108 | </listitem> | ||
| 109 | |||
| 110 | <listitem> | ||
| 111 | <para>Add three virtual interfaces: management, WAN and | ||
| 112 | LAN.</para> | ||
| 113 | </listitem> | ||
| 114 | |||
| 115 | <listitem> | ||
| 116 | <para>Select <literal>ISO</literal> on the Cloud-Init tab.</para> | ||
| 117 | </listitem> | ||
| 118 | </itemizedlist> | ||
| 119 | </listitem> | ||
| 120 | |||
| 121 | <listitem> | ||
| 122 | <para>Onboard Fortigate FW using the VNF Onboarding Wizard:</para> | ||
| 123 | |||
| 124 | <itemizedlist> | ||
| 125 | <listitem> | ||
| 126 | <para>The Flavor selected can be quite light in resources, e.g. 1 | ||
| 127 | vCPU and 2 GB RAM.</para> | ||
| 128 | </listitem> | ||
| 129 | |||
| 130 | <listitem> | ||
| 131 | <para>Add three virtual interfaces: management, WAN and | ||
| 132 | LAN.</para> | ||
| 133 | </listitem> | ||
| 134 | |||
| 135 | <listitem> | ||
| 136 | <para>Select <literal>ConfigDrive</literal> on the Cloud-Init | ||
| 137 | tab.</para> | ||
| 138 | </listitem> | ||
| 139 | |||
| 140 | <listitem> | ||
| 141 | <para>Add <literal>license</literal> as the Cloud-Init content in | ||
| 142 | the Cloud-Init tab files.</para> | ||
| 143 | </listitem> | ||
| 144 | </itemizedlist> | ||
| 145 | |||
| 146 | <note> | ||
| 147 | <para>Steps 4-5 are done only once, i.e. they will not be repeated | ||
| 148 | for Site 2.</para> | ||
| 149 | </note> | ||
| 150 | </listitem> | ||
| 151 | |||
| 152 | <listitem> | ||
| 153 | <para>Create the vSRX instance:</para> | ||
| 154 | |||
| 155 | <itemizedlist> | ||
| 156 | <listitem> | ||
| 157 | <para>Use <filename>vSRX-Site1.iso</filename> as the Cloud-Init | ||
| 158 | file.</para> | ||
| 159 | </listitem> | ||
| 160 | |||
| 161 | <listitem> | ||
| 162 | <para>The <literal>Domain Update Script</literal> field can be | ||
| 163 | left empty for the Atom C3000 architecture, while for XeonD the | ||
| 164 | <filename>vSRX-domain-update-script</filename> file will be | ||
| 165 | used.</para> | ||
| 166 | </listitem> | ||
| 167 | |||
| 168 | <listitem> | ||
| 169 | <para>Add virtual interfaces:</para> | ||
| 170 | |||
| 171 | <itemizedlist> | ||
| 172 | <listitem> | ||
| 173 | <para>Management interface added to | ||
| 174 | <literal>vnf_mgmt_br</literal>.</para> | ||
| 175 | </listitem> | ||
| 176 | </itemizedlist> | ||
| 177 | |||
| 178 | <itemizedlist> | ||
| 179 | <listitem> | ||
| 180 | <para>WAN interface added to <literal>wan_br</literal>.</para> | ||
| 181 | </listitem> | ||
| 182 | </itemizedlist> | ||
| 183 | |||
| 184 | <itemizedlist> | ||
| 185 | <listitem> | ||
| 186 | <para>LAN interface added to <literal>sfc_br</literal>.</para> | ||
| 187 | </listitem> | ||
| 188 | </itemizedlist> | ||
| 189 | </listitem> | ||
| 190 | </itemizedlist> | ||
| 191 | |||
| 192 | <note> | ||
| 193 | <para>The login/password values for the vSRX VNF are | ||
| 194 | <literal>root/vsrx1234</literal>, respectively.</para> | ||
| 195 | </note> | ||
| 196 | </listitem> | ||
| 197 | |||
| 198 | <listitem> | ||
| 199 | <para>Create the Fortigate FW instance:</para> | ||
| 200 | |||
| 201 | <itemizedlist> | ||
| 202 | <listitem> | ||
| 203 | <para>Use <filename>FortiFW-Site1.conf</filename> as Cloud-Init | ||
| 204 | file.</para> | ||
| 205 | </listitem> | ||
| 206 | |||
| 207 | <listitem> | ||
| 208 | <para>Add <filename>.lic</filename> (not part of the folder) as | ||
| 209 | the license file.</para> | ||
| 210 | </listitem> | ||
| 211 | |||
| 212 | <listitem> | ||
| 213 | <para>Add virtual interfaces:</para> | ||
| 214 | |||
| 215 | <itemizedlist> | ||
| 216 | <listitem> | ||
| 217 | <para>Management interface added to | ||
| 218 | <literal>vnf_mgmt_br</literal>.</para> | ||
| 219 | </listitem> | ||
| 220 | </itemizedlist> | ||
| 221 | |||
| 222 | <itemizedlist> | ||
| 223 | <listitem> | ||
| 224 | <para>WAN interface added to <literal>sfc_br</literal>.</para> | ||
| 225 | </listitem> | ||
| 226 | </itemizedlist> | ||
| 227 | |||
| 228 | <itemizedlist> | ||
| 229 | <listitem> | ||
| 230 | <para>LAN interface added to <literal>lan_br</literal>.</para> | ||
| 231 | </listitem> | ||
| 232 | </itemizedlist> | ||
| 233 | </listitem> | ||
| 234 | </itemizedlist> | ||
| 235 | |||
| 236 | <note> | ||
| 237 | <para>the login/password values for the Juniper VNF are | ||
| 238 | <literal>admin/<empty password></literal>, | ||
| 239 | respectively.</para> | ||
| 240 | </note> | ||
| 241 | </listitem> | ||
| 242 | </orderedlist> | ||
| 243 | |||
| 244 | <para>At this point the service will be up and running on Site1. Repeat | ||
| 245 | the necessary steps for Site2, by changing the configuration files | ||
| 246 | accordingly. After the service is deployed on both branches, the VPN | ||
| 247 | tunnel is established and LAN to LAN visibility can be verified by | ||
| 248 | connecting one device on each uCPE LAN port. See <link | ||
| 249 | linkend="test_setup">Testing the setup</link> for details on how to proceed.</para> | ||
| 250 | </section> | ||
| 251 | |||
| 252 | <section id="test_setup"> | ||
| 253 | <title>Testing the setup</title> | ||
| 254 | |||
| 255 | <para>Before testing LAN to LAN connectivity, preliminary tests of service | ||
| 256 | can be run to ensure everything was set up properly.</para> | ||
| 257 | |||
| 258 | <para>For instance, by connecting to the vSRX CLI (any site), the user can | ||
| 259 | test IKE security associations:</para> | ||
| 260 | |||
| 261 | <programlisting>root@Atom-C3000> show security ike security-associations | ||
| 262 | Index State Initiator cookie Responder cookie Mode Remote Address | ||
| 263 | 1588673 UP 2f2047b144ebfce4 0000000000000000 Aggressive 10.1.1.2 | ||
| 264 | ... | ||
| 265 | root@Atom-C3000> show security ike security-associations index 1588673 detail | ||
| 266 | ...</programlisting> | ||
| 267 | |||
| 268 | <para>Also, from the vSRX CLI, a user can check that the VPN tunnel was | ||
| 269 | established and get statistics of the packets passing the tunnel:</para> | ||
| 270 | |||
| 271 | <programlisting>root@Atom-C3000> show security ipsec security-associations | ||
| 272 | ... | ||
| 273 | root@Atom-C3000> show security ipsec statistics index <xxxxx> | ||
| 274 | ...</programlisting> | ||
| 275 | |||
| 276 | <para>From the Fortigate Firewall CLI on Site 1, one can check | ||
| 277 | connectivity to the remote Fortigate FW (from Site 2):</para> | ||
| 278 | |||
| 279 | <programlisting>FGVM080000136187 # execute ping 192.168.168.2 | ||
| 280 | PING 192.168.168.2 (192.168.168.2): 56 data bytes | ||
| 281 | 64 bytes from 192.168.168.2: icmp_seq=0 ttl=255 time=0.0 ms | ||
| 282 | 64 bytes from 192.168.168.2: icmp_seq=1 ttl=255 time=0.0 ms | ||
| 283 | 64 bytes from 192.168.168.2: icmp_seq=2 ttl=255 time=0.0 ms | ||
| 284 | ...</programlisting> | ||
| 285 | |||
| 286 | <para>Since VNF management ports were configured to get IPs through DHCP, | ||
| 287 | the user can use a Web-based management UI to check and modify the | ||
| 288 | configuration settings of both vSRX and Fortigate.</para> | ||
| 289 | |||
| 290 | <para>For example, in the case of vSRX, from the VNF CLI you can list the | ||
| 291 | virtual interfaces as below:</para> | ||
| 292 | |||
| 293 | <programlisting>root@Atom-C3000> show interfaces terse | ||
| 294 | ... | ||
| 295 | fxp0.0 up up inet 172.24.15.92/22 | ||
| 296 | gre up up | ||
| 297 | ipip up up | ||
| 298 | ...</programlisting> | ||
| 299 | |||
| 300 | <para>When using provided configurations, the VNF management port for | ||
| 301 | Juniper vSRX is always <literal>fxp0.0</literal>.</para> | ||
| 302 | |||
| 303 | <para>In the case of Fortigate, from the VNF CLI you can list the virtual | ||
| 304 | interfaces as such:</para> | ||
| 305 | |||
| 306 | <programlisting>FGVM080000136187 # get system interface | ||
| 307 | == [ port1 ] | ||
| 308 | name: port1 mode: dhcp ip: 172.24.15.94 255.255.252.0 status: up netbios-forward: | ||
| 309 | disable type: physical netflow-sampler: disable sflow-sampler: disable... | ||
| 310 | ...</programlisting> | ||
| 311 | |||
| 312 | <para>When using provided configurations, the VNF management port for | ||
| 313 | Fortigate is always <literal>port1</literal>.</para> | ||
| 314 | |||
| 315 | <note> | ||
| 316 | <para>Please note that VNF management ports will get dynamically | ||
| 317 | allocated IPs only if the physical NIC used for management is configured | ||
| 318 | to get its IP through DHCP (see Step 1 from above).</para> | ||
| 319 | </note> | ||
| 320 | |||
| 321 | <para>If functionality is as intended, LAN-to-LAN connectivity can be | ||
| 322 | checked (through the VPN tunnel) by using two devices (PC/laptop) | ||
| 323 | connected to the LAN ports of each uCPE. Optionally, these devices can be | ||
| 324 | simulated by using Enea's sample VNF running on both uCPEs and connected | ||
| 325 | to the <literal>lan_br</literal> on each side. Please note that | ||
| 326 | instructions for onboarding and instantiating this VNF is not in the scope | ||
| 327 | of this document.</para> | ||
| 328 | |||
| 329 | <para>Since Fortigate VNF, which is acting as router and firewall, is | ||
| 330 | configured to be the DHCP server for the LAN network, the device interface | ||
| 331 | connected to the uCPE LAN port has to be configured to get dinamically | ||
| 332 | assigned IPs. These IPs are in the 172.0.0.0/24 network for Site1 and the | ||
| 333 | 172.10.10.0/24 network for Site2. Therefore, site-to-site connectivity can | ||
| 334 | be checked (from Site1) as such:</para> | ||
| 335 | |||
| 336 | <programlisting>root@atom-c3000:~# ping 172.10.10.2 | ||
| 337 | PING 172.10.10.1 (172.10.10.2): 56 data bytes | ||
| 338 | ...</programlisting> | ||
| 339 | </section> | ||
| 340 | |||
| 341 | <section id="limitations"> | ||
| 342 | <title>Limitations</title> | ||
| 343 | |||
| 344 | <para>Below is a list of known limitations:</para> | ||
| 345 | |||
| 346 | <itemizedlist> | ||
| 347 | <listitem> | ||
| 348 | <para>The vSRX VNF has no trust-to-untrust and untrust-to-trust | ||
| 349 | policies (only trust-to-vpn and vpn-to-trust were configured). | ||
| 350 | Therefore, uCPEs were not configured for a "direct Internet access" | ||
| 351 | use-case.</para> | ||
| 352 | </listitem> | ||
| 353 | |||
| 354 | <listitem> | ||
| 355 | <para>The Fortigate VNF has no "real" firewall policies set, i.e. all | ||
| 356 | traffic from LAN is allowed to pass through the WAN interface and | ||
| 357 | vice-versa.</para> | ||
| 358 | </listitem> | ||
| 359 | </itemizedlist> | ||
| 360 | </section> | ||
| 361 | </chapter> \ No newline at end of file | ||
diff --git a/doc/book-enea-nfv-access-example-usecases/doc/vnf_fortigate.xml b/doc/book-enea-nfv-access-example-usecases/doc/vnf_fortigate.xml new file mode 100644 index 0000000..2bd0dc3 --- /dev/null +++ b/doc/book-enea-nfv-access-example-usecases/doc/vnf_fortigate.xml | |||
| @@ -0,0 +1,1309 @@ | |||
| 1 | <?xml version="1.0" encoding="ISO-8859-1"?> | ||
| 2 | <chapter id="vnf_fortigate"> | ||
| 3 | <title>FortiGate VNF Example Use-cases</title> | ||
| 4 | |||
| 5 | <para>FortiGate virtual appliances feature all of the security and | ||
| 6 | networking services common to traditional hardware-based FortiGate | ||
| 7 | appliances. The virtual appliances can be integrated in Firewall or SD-WAN | ||
| 8 | solution development.</para> | ||
| 9 | |||
| 10 | <para>Enea provides a prepared VNF bundle for download from the Enea Portal, | ||
| 11 | for usage with the Enea NFV Access product. The prepared VNF bundle includes | ||
| 12 | the FortiGate VNF image as well as a VNF Descriptor and other onboarding | ||
| 13 | related configuration files. The VNF Descriptor provided configures a setup, | ||
| 14 | which requires the following resources:</para> | ||
| 15 | |||
| 16 | <itemizedlist> | ||
| 17 | <listitem> | ||
| 18 | <para>3 x Network Interfaces</para> | ||
| 19 | </listitem> | ||
| 20 | |||
| 21 | <listitem> | ||
| 22 | <para>1 x vCPU</para> | ||
| 23 | </listitem> | ||
| 24 | |||
| 25 | <listitem> | ||
| 26 | <para>1 GB of RAM memory</para> | ||
| 27 | </listitem> | ||
| 28 | </itemizedlist> | ||
| 29 | |||
| 30 | <para>The VNF Descriptor represents one specific setup, suitable for usage | ||
| 31 | with the Firewall and SD-WAN VPN instructions in this guide. Alternative VNF | ||
| 32 | Descriptor configurations may be needed to support other configurations | ||
| 33 | required by the customer.</para> | ||
| 34 | |||
| 35 | <para>Enea can provide assistance to provide alternative VNF Descriptor | ||
| 36 | configurations.</para> | ||
| 37 | |||
| 38 | <note> | ||
| 39 | <para>While the prepared FortiGate bundle is provided from Enea Portal, | ||
| 40 | additional content needs to be received from Fortinet directly. The | ||
| 41 | FortiGate VNF license as well as any FortiGate specific documentation | ||
| 42 | shall be requested from the local Fortinet sales representatives in your | ||
| 43 | region, before FortiGate can be used.</para> | ||
| 44 | </note> | ||
| 45 | |||
| 46 | <section id="fortigate_firewall"> | ||
| 47 | <title>FortiGate VNF as a Firewall</title> | ||
| 48 | |||
| 49 | <para>FortiGate Next Generation Firewall utilizes purpose-built security | ||
| 50 | processors and threat intelligence security services to deliver top-rated | ||
| 51 | protection and high performance, including encrypted traffic. FortiGate | ||
| 52 | reduces complexity with automated visibility into applications, users and | ||
| 53 | networks, and provides security ratings to adopt security best | ||
| 54 | practices.</para> | ||
| 55 | |||
| 56 | <para>An example firewall configuration for the FortiGate VNF is provided | ||
| 57 | in the Enea Portal. It is a simple firewall base configuration.</para> | ||
| 58 | |||
| 59 | <table> | ||
| 60 | <title>FortiGate VNF Example Configuration</title> | ||
| 61 | |||
| 62 | <tgroup cols="2"> | ||
| 63 | <colspec align="center" /> | ||
| 64 | |||
| 65 | <thead> | ||
| 66 | <row> | ||
| 67 | <entry align="center">Component</entry> | ||
| 68 | |||
| 69 | <entry align="center">Setting/Description</entry> | ||
| 70 | </row> | ||
| 71 | </thead> | ||
| 72 | |||
| 73 | <tbody> | ||
| 74 | <row> | ||
| 75 | <entry>Firewall</entry> | ||
| 76 | |||
| 77 | <entry>"All pass" mode</entry> | ||
| 78 | </row> | ||
| 79 | |||
| 80 | <row> | ||
| 81 | <entry>WAN (Virtual Port1)</entry> | ||
| 82 | |||
| 83 | <entry><para>DHCP Client, dynamically assigned IP | ||
| 84 | address.</para>FortiGate In-Band | ||
| 85 | Management<superscript>1</superscript></entry> | ||
| 86 | </row> | ||
| 87 | |||
| 88 | <row> | ||
| 89 | <entry>WAN (Virtual Port2)</entry> | ||
| 90 | |||
| 91 | <entry><para>IP address: 172.168.16.1</para>DHCP server (IP range | ||
| 92 | 172.168.16.1 - 172.168.16.255).</entry> | ||
| 93 | </row> | ||
| 94 | |||
| 95 | <row> | ||
| 96 | <entry>WAN (Virtual Port3)</entry> | ||
| 97 | |||
| 98 | <entry>Ignored</entry> | ||
| 99 | </row> | ||
| 100 | </tbody> | ||
| 101 | </tgroup> | ||
| 102 | </table> | ||
| 103 | |||
| 104 | <para><superscript>1</superscript>FortiGate In-Band Management is a | ||
| 105 | feature for running FortiGate Management traffic over WAN.</para> | ||
| 106 | |||
| 107 | <para>Instructions on how to alter the default configuration is provided | ||
| 108 | in the Fortigate VNF management chapter.</para> | ||
| 109 | |||
| 110 | <para><emphasis role="bold">Lab Setup</emphasis></para> | ||
| 111 | |||
| 112 | <para>Before starting the configuration of the FortiGate Firewall, a lab | ||
| 113 | setup of hardware and software configurations has to be built. The | ||
| 114 | following table illustrates the required lab setup:</para> | ||
| 115 | |||
| 116 | <table> | ||
| 117 | <title>Lab Setup Prerequisites</title> | ||
| 118 | |||
| 119 | <tgroup cols="2"> | ||
| 120 | <colspec align="center" /> | ||
| 121 | |||
| 122 | <thead> | ||
| 123 | <row> | ||
| 124 | <entry align="center">Component</entry> | ||
| 125 | |||
| 126 | <entry align="center">Description/Requirements</entry> | ||
| 127 | </row> | ||
| 128 | </thead> | ||
| 129 | |||
| 130 | <tbody> | ||
| 131 | <row> | ||
| 132 | <entry>Lab Network</entry> | ||
| 133 | |||
| 134 | <entrytbl cols="1"> | ||
| 135 | <tbody> | ||
| 136 | <row> | ||
| 137 | <entry>DHCP enabled Lab Network</entry> | ||
| 138 | </row> | ||
| 139 | |||
| 140 | <row> | ||
| 141 | <entry>Internet Connectivity</entry> | ||
| 142 | </row> | ||
| 143 | </tbody> | ||
| 144 | </entrytbl> | ||
| 145 | </row> | ||
| 146 | |||
| 147 | <row> | ||
| 148 | <entry>Setup of an Intel Whitebox target device</entry> | ||
| 149 | |||
| 150 | <entrytbl cols="1"> | ||
| 151 | <tbody> | ||
| 152 | <row> | ||
| 153 | <entry>Minimum 4 Physical Network Devices</entry> | ||
| 154 | </row> | ||
| 155 | |||
| 156 | <row> | ||
| 157 | <entry>4 GB RAM and 4 cores (C3000 or Xeon D)</entry> | ||
| 158 | </row> | ||
| 159 | |||
| 160 | <row> | ||
| 161 | <entry>Enea NFV Access Installed</entry> | ||
| 162 | </row> | ||
| 163 | |||
| 164 | <row> | ||
| 165 | <entry>WAN Connected to Lab Network</entry> | ||
| 166 | </row> | ||
| 167 | |||
| 168 | <row> | ||
| 169 | <entry>LAN1 Connected to Test Machine</entry> | ||
| 170 | </row> | ||
| 171 | |||
| 172 | <row> | ||
| 173 | <entry>LAN2 Unconnected</entry> | ||
| 174 | </row> | ||
| 175 | |||
| 176 | <row> | ||
| 177 | <entry>ETH0 connected to Lab Network (for Enea uCPE Manager | ||
| 178 | communications)</entry> | ||
| 179 | </row> | ||
| 180 | </tbody> | ||
| 181 | </entrytbl> | ||
| 182 | </row> | ||
| 183 | |||
| 184 | <row> | ||
| 185 | <entry>Setup of a Lab Machine</entry> | ||
| 186 | |||
| 187 | <entrytbl cols="1"> | ||
| 188 | <tbody> | ||
| 189 | <row> | ||
| 190 | <entry>Connected to Lab Network</entry> | ||
| 191 | </row> | ||
| 192 | |||
| 193 | <row> | ||
| 194 | <entry>Running either Windows or CentOS</entry> | ||
| 195 | </row> | ||
| 196 | |||
| 197 | <row> | ||
| 198 | <entry>Enea uCPE Manager installed</entry> | ||
| 199 | </row> | ||
| 200 | </tbody> | ||
| 201 | </entrytbl> | ||
| 202 | </row> | ||
| 203 | |||
| 204 | <row> | ||
| 205 | <entry>Setup of a Test Machine</entry> | ||
| 206 | |||
| 207 | <entrytbl cols="1"> | ||
| 208 | <tbody> | ||
| 209 | <row> | ||
| 210 | <entry>Connected to Whitebox LAN</entry> | ||
| 211 | </row> | ||
| 212 | |||
| 213 | <row> | ||
| 214 | <entry>Internet Connectivity via LAN</entry> | ||
| 215 | </row> | ||
| 216 | |||
| 217 | <row> | ||
| 218 | <entry>Configured as DHCP client on LAN</entry> | ||
| 219 | </row> | ||
| 220 | </tbody> | ||
| 221 | </entrytbl> | ||
| 222 | </row> | ||
| 223 | |||
| 224 | <row> | ||
| 225 | <entry>FortiGate VNF</entry> | ||
| 226 | |||
| 227 | <entrytbl cols="1"> | ||
| 228 | <tbody> | ||
| 229 | <row> | ||
| 230 | <entry>Downloaded the FortiGate VNF Bundle from Enea Portal | ||
| 231 | to the Lab Machine file system. Please see the Download | ||
| 232 | Chapter for more details.</entry> | ||
| 233 | </row> | ||
| 234 | |||
| 235 | <row> | ||
| 236 | <entry>Downloaded FortiGate configuration examples from the | ||
| 237 | Enea Portal to the Lab Machine file system. Please check the | ||
| 238 | Download Chapter for more details. Unpack the configuration | ||
| 239 | examples on the Lab Machine.</entry> | ||
| 240 | </row> | ||
| 241 | |||
| 242 | <row> | ||
| 243 | <entry>Retrieve FortiGate VNF license from Fortinet and | ||
| 244 | store it on the Lab Machine file system. See FortiGate VNF | ||
| 245 | for details.</entry> | ||
| 246 | </row> | ||
| 247 | |||
| 248 | <row> | ||
| 249 | <entry>Optionally retrieve FortiGate VNF documentation from | ||
| 250 | Fortinet. See FortiGate VNF for details.</entry> | ||
| 251 | </row> | ||
| 252 | </tbody> | ||
| 253 | </entrytbl> | ||
| 254 | </row> | ||
| 255 | </tbody> | ||
| 256 | </tgroup> | ||
| 257 | </table> | ||
| 258 | |||
| 259 | <figure> | ||
| 260 | <title>Lab Setup Overview</title> | ||
| 261 | |||
| 262 | <mediaobject> | ||
| 263 | <imageobject> | ||
| 264 | <imagedata align="center" fileref="images/intel_whitebox.png" | ||
| 265 | scale="35" /> | ||
| 266 | </imageobject> | ||
| 267 | </mediaobject> | ||
| 268 | </figure> | ||
| 269 | |||
| 270 | <para><emphasis role="bold">uCPE Networking Setup</emphasis></para> | ||
| 271 | |||
| 272 | <para>Before deploying the FortiGate Firewall, the Enea NFV Access | ||
| 273 | platform has to be configured to the specific networking setup.</para> | ||
| 274 | |||
| 275 | <para>Since the firewall is using three External Network Interfaces, three | ||
| 276 | bridges need to be configured. Each bridge provides the ability to connect | ||
| 277 | a physical network interface to the virtual machines' virtual network | ||
| 278 | interface. Each physical to virtual network interface connection is setup | ||
| 279 | in two steps:</para> | ||
| 280 | |||
| 281 | <itemizedlist> | ||
| 282 | <listitem> | ||
| 283 | <para>Bind the physical network interfaces with a DPDK driver.</para> | ||
| 284 | </listitem> | ||
| 285 | |||
| 286 | <listitem> | ||
| 287 | <para>Create a named bridge for each physical network | ||
| 288 | interface.</para> | ||
| 289 | </listitem> | ||
| 290 | </itemizedlist> | ||
| 291 | |||
| 292 | <note> | ||
| 293 | <para>For more details about interface configuration, please see the | ||
| 294 | Network Configuration section in the chapter on Configuration | ||
| 295 | Options.</para> | ||
| 296 | </note> | ||
| 297 | |||
| 298 | <orderedlist> | ||
| 299 | <listitem> | ||
| 300 | <para>Start the setup by preparing each interface for attachment to a | ||
| 301 | bridge. Bind the physical network interfaces to the DPDK by selecting | ||
| 302 | the target: <literal>Configuration</literal> -> | ||
| 303 | <literal>OpenVSwitch</literal> -> <literal>Host Interfaces | ||
| 304 | </literal>-> <literal>Add</literal>:</para> | ||
| 305 | |||
| 306 | <figure> | ||
| 307 | <title>Binding the physical network interface</title> | ||
| 308 | |||
| 309 | <mediaobject> | ||
| 310 | <imageobject> | ||
| 311 | <imagedata align="center" | ||
| 312 | fileref="images/bind_phys_interface.png" scale="80" /> | ||
| 313 | </imageobject> | ||
| 314 | </mediaobject> | ||
| 315 | </figure> | ||
| 316 | |||
| 317 | <para>The result of binding these three physical network interfaces | ||
| 318 | should look like the following:</para> | ||
| 319 | |||
| 320 | <figure> | ||
| 321 | <title>Successful Binding</title> | ||
| 322 | |||
| 323 | <mediaobject> | ||
| 324 | <imageobject> | ||
| 325 | <imagedata align="center" fileref="images/result_of_binding.png" | ||
| 326 | scale="65" /> | ||
| 327 | </imageobject> | ||
| 328 | </mediaobject> | ||
| 329 | </figure> | ||
| 330 | </listitem> | ||
| 331 | |||
| 332 | <listitem> | ||
| 333 | <para>Create one OpenVSwitch bridge for each firewall network | ||
| 334 | connection (WAN, LAN1 and LAN2), by selecting the | ||
| 335 | <literal>Add</literal> button from Bridges tab: | ||
| 336 | <literal>Configuration</literal> -> | ||
| 337 | <literal>OpenvSwitch</literal>-> <literal>Bridges</literal>. A | ||
| 338 | popup like the following should appear:</para> | ||
| 339 | |||
| 340 | <figure> | ||
| 341 | <title>Creating a bridge each Firewall Net. Connection</title> | ||
| 342 | |||
| 343 | <mediaobject> | ||
| 344 | <imageobject> | ||
| 345 | <imagedata align="center" fileref="images/bridge_net_conn.png" | ||
| 346 | scale="80" /> | ||
| 347 | </imageobject> | ||
| 348 | </mediaobject> | ||
| 349 | </figure> | ||
| 350 | </listitem> | ||
| 351 | |||
| 352 | <listitem> | ||
| 353 | <para>Repeat this step for each type of connection until all are | ||
| 354 | bridges are configured.</para> | ||
| 355 | |||
| 356 | <figure> | ||
| 357 | <title>Configured Bridges per Connection Type</title> | ||
| 358 | |||
| 359 | <mediaobject> | ||
| 360 | <imageobject> | ||
| 361 | <imagedata align="center" | ||
| 362 | fileref="images/configured_bridges.png" scale="65" /> | ||
| 363 | </imageobject> | ||
| 364 | </mediaobject> | ||
| 365 | </figure> | ||
| 366 | </listitem> | ||
| 367 | </orderedlist> | ||
| 368 | |||
| 369 | <para><emphasis role="bold">Onboarding the FortiGate VNF</emphasis></para> | ||
| 370 | |||
| 371 | <orderedlist> | ||
| 372 | <listitem> | ||
| 373 | <para>To on-board the Fortigate VNF click the <literal>VNF</literal> | ||
| 374 | tab in the top toolbar: <literal>VNF</literal> -> | ||
| 375 | <literal>Descriptors</literal> -> <literal>On-board </literal>-> | ||
| 376 | <literal>Browse</literal> options, and select the | ||
| 377 | <literal>Fortigate.zip</literal> file, before clicking | ||
| 378 | <literal>Send</literal>:</para> | ||
| 379 | |||
| 380 | <figure> | ||
| 381 | <title>Selecting Descriptors</title> | ||
| 382 | |||
| 383 | <mediaobject> | ||
| 384 | <imageobject> | ||
| 385 | <imagedata align="center" fileref="images/descriptor_button.png" | ||
| 386 | scale="45" /> | ||
| 387 | </imageobject> | ||
| 388 | </mediaobject> | ||
| 389 | </figure> | ||
| 390 | </listitem> | ||
| 391 | |||
| 392 | <listitem> | ||
| 393 | <para>Wait for the <literal>Onboarding Status</literal> popup to | ||
| 394 | display the confirmation message (listed in green) and select | ||
| 395 | <literal>OK</literal>:</para> | ||
| 396 | |||
| 397 | <figure> | ||
| 398 | <title>Onboarding the new VNF</title> | ||
| 399 | |||
| 400 | <mediaobject> | ||
| 401 | <imageobject> | ||
| 402 | <imagedata align="center" fileref="images/onboarding_status.png" | ||
| 403 | scale="80" /> | ||
| 404 | </imageobject> | ||
| 405 | </mediaobject> | ||
| 406 | </figure> | ||
| 407 | </listitem> | ||
| 408 | </orderedlist> | ||
| 409 | |||
| 410 | <para><emphasis role="bold">Instantiate the FortiGate | ||
| 411 | VNF</emphasis></para> | ||
| 412 | |||
| 413 | <orderedlist> | ||
| 414 | <listitem> | ||
| 415 | <para>Select the target, then from the top toolbar the select: | ||
| 416 | <literal>VNF</literal> -> <literal>Instances</literal> -> | ||
| 417 | <literal>Add</literal>:</para> | ||
| 418 | |||
| 419 | <figure> | ||
| 420 | <title>Adding Instances to Target</title> | ||
| 421 | |||
| 422 | <mediaobject> | ||
| 423 | <imageobject> | ||
| 424 | <imagedata align="center" fileref="images/vnf_instances.png" | ||
| 425 | scale="50" /> | ||
| 426 | </imageobject> | ||
| 427 | </mediaobject> | ||
| 428 | </figure> | ||
| 429 | |||
| 430 | <para>Make sure you have downloaded valid license files for the | ||
| 431 | Fortigate VNF from Fortinet, and the configuration file provided by | ||
| 432 | Enea as examples according to previous instructions.</para> | ||
| 433 | |||
| 434 | <figure> | ||
| 435 | <title>Example License and Configuration files</title> | ||
| 436 | |||
| 437 | <mediaobject> | ||
| 438 | <imageobject> | ||
| 439 | <imagedata align="center" | ||
| 440 | fileref="images/fortigate_licenses.png" scale="75" /> | ||
| 441 | </imageobject> | ||
| 442 | </mediaobject> | ||
| 443 | </figure> | ||
| 444 | </listitem> | ||
| 445 | |||
| 446 | <listitem> | ||
| 447 | <para>Fortigate VNF instantiation requires the following | ||
| 448 | settings:</para> | ||
| 449 | |||
| 450 | <table> | ||
| 451 | <title>Instantiation Requirements</title> | ||
| 452 | |||
| 453 | <tgroup cols="2"> | ||
| 454 | <colspec align="center" colwidth="2*" /> | ||
| 455 | |||
| 456 | <colspec align="center" colwidth="4*" /> | ||
| 457 | |||
| 458 | <thead> | ||
| 459 | <row> | ||
| 460 | <entry align="center">Component</entry> | ||
| 461 | |||
| 462 | <entry align="center">Description</entry> | ||
| 463 | </row> | ||
| 464 | </thead> | ||
| 465 | |||
| 466 | <tbody> | ||
| 467 | <row> | ||
| 468 | <entry align="left">Name</entry> | ||
| 469 | |||
| 470 | <entry>The name of the VM which will be created on the target | ||
| 471 | device.</entry> | ||
| 472 | </row> | ||
| 473 | |||
| 474 | <row> | ||
| 475 | <entry align="left">VNF Type</entry> | ||
| 476 | |||
| 477 | <entry>Name of the on-boarded VNF bundle.</entry> | ||
| 478 | </row> | ||
| 479 | |||
| 480 | <row> | ||
| 481 | <entry align="left">VIM</entry> | ||
| 482 | |||
| 483 | <entry>Name and IP address of the device where the VNF has to | ||
| 484 | be instantiated.</entry> | ||
| 485 | </row> | ||
| 486 | |||
| 487 | <row> | ||
| 488 | <entry align="left">License file</entry> | ||
| 489 | |||
| 490 | <entry>FortiGate license file provided by Fortinet.</entry> | ||
| 491 | </row> | ||
| 492 | |||
| 493 | <row> | ||
| 494 | <entry align="left">Configuration file</entry> | ||
| 495 | |||
| 496 | <entry>Firewall example configuration file provided by Enea | ||
| 497 | <filename>FGVM080000136187_20180828_0353_basic_fw.conf | ||
| 498 | </filename></entry> | ||
| 499 | </row> | ||
| 500 | |||
| 501 | <row> | ||
| 502 | <entry align="left">Port1 - WAN</entry> | ||
| 503 | |||
| 504 | <entry>Set as dpdk type and connect it to wanmgrbr | ||
| 505 | bridge.</entry> | ||
| 506 | </row> | ||
| 507 | |||
| 508 | <row> | ||
| 509 | <entry align="left">Port2 - LAN1</entry> | ||
| 510 | |||
| 511 | <entry>Set as dpdk type and connect it to lan1 bridge.</entry> | ||
| 512 | </row> | ||
| 513 | |||
| 514 | <row> | ||
| 515 | <entry align="left">Port3 - LAN2</entry> | ||
| 516 | |||
| 517 | <entry>Set as dpdk type and connect it to lan2 bridge.</entry> | ||
| 518 | </row> | ||
| 519 | </tbody> | ||
| 520 | </tgroup> | ||
| 521 | </table> | ||
| 522 | |||
| 523 | <para>When the instantiation process is completed, the setup is ready | ||
| 524 | for testing.</para> | ||
| 525 | </listitem> | ||
| 526 | </orderedlist> | ||
| 527 | |||
| 528 | <para><emphasis role="bold">Test the FortiGate Firewall</emphasis></para> | ||
| 529 | |||
| 530 | <para>Connect the Test Machine on the LAN interface and access the | ||
| 531 | internet from the Test Machine to use the firewall on the target | ||
| 532 | device.</para> | ||
| 533 | |||
| 534 | <note> | ||
| 535 | <para>The connected Test Machine can be a laptop or a target that has | ||
| 536 | one interface configured to get an dynamic IP from a DHCP server. The | ||
| 537 | <literal>dhclient <interface></literal> command can be used to | ||
| 538 | request an IP address. The received IP must be in the 172.16.1.2 - | ||
| 539 | 172.16.1.255 range.</para> | ||
| 540 | </note> | ||
| 541 | |||
| 542 | <figure> | ||
| 543 | <title>Testing Overview</title> | ||
| 544 | |||
| 545 | <mediaobject> | ||
| 546 | <imageobject> | ||
| 547 | <imagedata align="center" fileref="images/testing_fortigate.png" | ||
| 548 | scale="50" /> | ||
| 549 | </imageobject> | ||
| 550 | </mediaobject> | ||
| 551 | </figure> | ||
| 552 | |||
| 553 | <para>In the example above, the FortiGate VNF management interface is | ||
| 554 | accessible through the WAN interface, the WAN IP address can be used from | ||
| 555 | a web browser on the Lab Machine to access the Fortigate VNF Management | ||
| 556 | Web UI. Please check the Fortigate VNF web management section for more | ||
| 557 | information.</para> | ||
| 558 | |||
| 559 | <para>In another example, the firewall can be setup to use bridges as | ||
| 560 | connection points for the Fortigate VNF. It is possible to replace | ||
| 561 | OVS-DPDK bridges with SR-IOV connection points. <remark>The previous | ||
| 562 | sentence in the original was very hard to understand, please confirm if | ||
| 563 | this is what you intended to say</remark> Please check the network | ||
| 564 | configuration chapter on how to configure an interface for SR-IOV.</para> | ||
| 565 | |||
| 566 | <para>It was previously assumed that three physical interfaces are | ||
| 567 | available for VNF connection. In the case of a firewall setup it is | ||
| 568 | possible to use only two physical interfaces for the data path (one for | ||
| 569 | WAN and one for LAN). In the example below only two interfaces will be | ||
| 570 | configured as DPDK and two bridges are created, one for each type of | ||
| 571 | connection.</para> | ||
| 572 | |||
| 573 | <para>At VNF instantiation instead of assigning distinct bridges for each | ||
| 574 | LAN interface, only one will be used for both LAN1 and LAN2, with no | ||
| 575 | changes in WAN interface configuration. Please see the picture below for | ||
| 576 | final setup:</para> | ||
| 577 | |||
| 578 | <figure> | ||
| 579 | <title>Two Interface Configuration</title> | ||
| 580 | |||
| 581 | <mediaobject> | ||
| 582 | <imageobject> | ||
| 583 | <imagedata align="center" fileref="images/two_inst_firewall.png" | ||
| 584 | scale="45" /> | ||
| 585 | </imageobject> | ||
| 586 | </mediaobject> | ||
| 587 | </figure> | ||
| 588 | </section> | ||
| 589 | |||
| 590 | <section id="fortigate_webmg"> | ||
| 591 | <title>FortiGate VNF web management</title> | ||
| 592 | |||
| 593 | <para>In order to check the IP address assigned to Fortigate VNF you need | ||
| 594 | to connect to the Fortigate CLI.</para> | ||
| 595 | |||
| 596 | <para><emphasis role="bold">Connecting to the Fortigate | ||
| 597 | CLI</emphasis></para> | ||
| 598 | |||
| 599 | <orderedlist> | ||
| 600 | <listitem> | ||
| 601 | <para>Connect to the Fortigate VNF by using: <literal>SSH</literal> | ||
| 602 | -> <literal>user</literal> (root) and attach to the VNF's console | ||
| 603 | using the <literal>virsh console</literal> command shown below:</para> | ||
| 604 | |||
| 605 | <figure> | ||
| 606 | <title>Attaching to the VNF Console</title> | ||
| 607 | |||
| 608 | <mediaobject> | ||
| 609 | <imageobject> | ||
| 610 | <imagedata align="center" fileref="images/virsh_console.png" | ||
| 611 | scale="80" /> | ||
| 612 | </imageobject> | ||
| 613 | </mediaobject> | ||
| 614 | </figure> | ||
| 615 | </listitem> | ||
| 616 | |||
| 617 | <listitem> | ||
| 618 | <para>To access Fortigate CLI, use the credential | ||
| 619 | <literal>admin</literal> for the user, leaving the password blank, | ||
| 620 | then press enter.</para> | ||
| 621 | |||
| 622 | <para>Use the CLI command <literal>get system interface</literal> to | ||
| 623 | get the dynamic interfaces configuration.</para> | ||
| 624 | |||
| 625 | <figure> | ||
| 626 | <title>Acessing and configuring Fortigate CLI</title> | ||
| 627 | |||
| 628 | <mediaobject> | ||
| 629 | <imageobject> | ||
| 630 | <imagedata align="center" | ||
| 631 | fileref="images/access_fortigate_cli.png" scale="58" /> | ||
| 632 | </imageobject> | ||
| 633 | </mediaobject> | ||
| 634 | </figure> | ||
| 635 | </listitem> | ||
| 636 | |||
| 637 | <listitem> | ||
| 638 | <para>Use the IP address assigned for the management interface in the | ||
| 639 | web browser (<literal>https://<IP></literal>), to access the | ||
| 640 | Fortinet VNF web management interface. Use the same credentials as | ||
| 641 | before to login:</para> | ||
| 642 | |||
| 643 | <figure> | ||
| 644 | <title>Accessing the web management interface</title> | ||
| 645 | |||
| 646 | <mediaobject> | ||
| 647 | <imageobject> | ||
| 648 | <imagedata align="center" | ||
| 649 | fileref="images/fortinet_vnf_login.png" scale="50" /> | ||
| 650 | </imageobject> | ||
| 651 | </mediaobject> | ||
| 652 | </figure> | ||
| 653 | </listitem> | ||
| 654 | |||
| 655 | <listitem> | ||
| 656 | <para>You can browse through the configuration and perform changes | ||
| 657 | according to your setup:</para> | ||
| 658 | |||
| 659 | <figure> | ||
| 660 | <title>The Fortinet Web Interface</title> | ||
| 661 | |||
| 662 | <mediaobject> | ||
| 663 | <imageobject> | ||
| 664 | <imagedata align="center" | ||
| 665 | fileref="images/fortinet_interface.png" scale="30" /> | ||
| 666 | </imageobject> | ||
| 667 | </mediaobject> | ||
| 668 | </figure> | ||
| 669 | </listitem> | ||
| 670 | |||
| 671 | <listitem> | ||
| 672 | <para>Optional, alter the default Fortinet example configuration | ||
| 673 | provided by Enea, through the following steps:</para> | ||
| 674 | |||
| 675 | <orderedlist> | ||
| 676 | <listitem> | ||
| 677 | <para>Deploy the FortiGate Firewall in its default | ||
| 678 | settings.</para> | ||
| 679 | </listitem> | ||
| 680 | |||
| 681 | <listitem> | ||
| 682 | <para>Connect to the FortiGate VNF Web Management with a web | ||
| 683 | browser.</para> | ||
| 684 | </listitem> | ||
| 685 | |||
| 686 | <listitem> | ||
| 687 | <para>Modify the FortiGate configuration in the FortiGate VNF Web | ||
| 688 | Management as needed.</para> | ||
| 689 | </listitem> | ||
| 690 | |||
| 691 | <listitem> | ||
| 692 | <para>Store the updated configuration in a file, by saving in the | ||
| 693 | FortiGate VNF Web Management interface, so it may be used at the | ||
| 694 | next FortiGate VNF instantiation.</para> | ||
| 695 | </listitem> | ||
| 696 | </orderedlist> | ||
| 697 | |||
| 698 | <note> | ||
| 699 | <para>Editing the default configuration is only recommended for | ||
| 700 | FortiGate configuration experts.</para> | ||
| 701 | </note> | ||
| 702 | </listitem> | ||
| 703 | </orderedlist> | ||
| 704 | </section> | ||
| 705 | |||
| 706 | <section id="fortigate_sdwan_vpn"> | ||
| 707 | <title>FortiGate VNF as an SD-WAN VPN</title> | ||
| 708 | |||
| 709 | <para>The software-defined wide-area network (SD-WAN or SDWAN) is a | ||
| 710 | specific application of software-defined networking (SDN) technology | ||
| 711 | applied to WAN connections. It connects enterprise networks, including | ||
| 712 | branch offices and data centers, over large geographic distances.</para> | ||
| 713 | |||
| 714 | <para>SD-WAN decouples the network from the management plane, detaching | ||
| 715 | the traffic management and monitoring functions from hardware. Most forms | ||
| 716 | of SD-WAN technology create a virtual overlay that is transport-agnostic, | ||
| 717 | i.e. it abstracts underlying private or public WAN connections. With an | ||
| 718 | overlay SD-WAN, a vendor provides an edge device to the customer that | ||
| 719 | contains the software necessary to run the SD-WAN technology. For | ||
| 720 | deployment, the customer plugs in WAN links into the device, which | ||
| 721 | automatically configures itself with the network.</para> | ||
| 722 | |||
| 723 | <para>The following will detail an SD-WAN setup for a branch to branch | ||
| 724 | connection using the FortiGate VNF. FortiGate provides native SD-WAN along | ||
| 725 | with integrated advanced threat protection.</para> | ||
| 726 | |||
| 727 | <note> | ||
| 728 | <para>Example SD-WAN configurations for the FortiGate VNF are provided | ||
| 729 | in the Enea Portal.</para> | ||
| 730 | </note> | ||
| 731 | |||
| 732 | <table> | ||
| 733 | <title>FortiGate VNF Example Configuration - SD-WAN Target 1</title> | ||
| 734 | |||
| 735 | <tgroup cols="2"> | ||
| 736 | <colspec align="center" /> | ||
| 737 | |||
| 738 | <thead> | ||
| 739 | <row> | ||
| 740 | <entry align="center">Component</entry> | ||
| 741 | |||
| 742 | <entry align="center">Description</entry> | ||
| 743 | </row> | ||
| 744 | </thead> | ||
| 745 | |||
| 746 | <tbody> | ||
| 747 | <row> | ||
| 748 | <entry>SD-WAN</entry> | ||
| 749 | |||
| 750 | <entry>VPN connection between two branches (Target 1 and Target | ||
| 751 | 2).</entry> | ||
| 752 | </row> | ||
| 753 | |||
| 754 | <row> | ||
| 755 | <entry>VNFMgr (Virtual Port1)</entry> | ||
| 756 | |||
| 757 | <entry>DHCP Client, dynamically assigned IP address.</entry> | ||
| 758 | </row> | ||
| 759 | |||
| 760 | <row> | ||
| 761 | <entry>WAN (Virtual Port2)</entry> | ||
| 762 | |||
| 763 | <entry>IP address: 10.0.0.1</entry> | ||
| 764 | </row> | ||
| 765 | |||
| 766 | <row> | ||
| 767 | <entry>LAN (Virtual Port3)</entry> | ||
| 768 | |||
| 769 | <entrytbl cols="1"> | ||
| 770 | <tbody> | ||
| 771 | <row> | ||
| 772 | <entry>IP address: 172.16.1.1</entry> | ||
| 773 | </row> | ||
| 774 | |||
| 775 | <row> | ||
| 776 | <entry>DHCP server (IP range 172.16.1.2 - | ||
| 777 | 172.16.1.254)</entry> | ||
| 778 | </row> | ||
| 779 | </tbody> | ||
| 780 | </entrytbl> | ||
| 781 | </row> | ||
| 782 | </tbody> | ||
| 783 | </tgroup> | ||
| 784 | </table> | ||
| 785 | |||
| 786 | <table> | ||
| 787 | <title>FortiGate VNF Example Configuration - SD-WAN Target 2</title> | ||
| 788 | |||
| 789 | <tgroup cols="2"> | ||
| 790 | <colspec align="center" /> | ||
| 791 | |||
| 792 | <thead> | ||
| 793 | <row> | ||
| 794 | <entry align="center">Component</entry> | ||
| 795 | |||
| 796 | <entry align="center">Description</entry> | ||
| 797 | </row> | ||
| 798 | </thead> | ||
| 799 | |||
| 800 | <tbody> | ||
| 801 | <row> | ||
| 802 | <entry>SD-WAN</entry> | ||
| 803 | |||
| 804 | <entry>VPN connection between two branches (Target 2 and Target | ||
| 805 | 1).</entry> | ||
| 806 | </row> | ||
| 807 | |||
| 808 | <row> | ||
| 809 | <entry>VNFMgr (Virtual Port1)</entry> | ||
| 810 | |||
| 811 | <entry>DHCP Client, dynamically assigned IP address.</entry> | ||
| 812 | </row> | ||
| 813 | |||
| 814 | <row> | ||
| 815 | <entry>WAN (Virtual Port2)</entry> | ||
| 816 | |||
| 817 | <entry>IP address: 10.0.0.2</entry> | ||
| 818 | </row> | ||
| 819 | |||
| 820 | <row> | ||
| 821 | <entry>LAN (Virtual Port3)</entry> | ||
| 822 | |||
| 823 | <entrytbl cols="1"> | ||
| 824 | <tbody> | ||
| 825 | <row> | ||
| 826 | <entry>IP address: 172.16.2.1</entry> | ||
| 827 | </row> | ||
| 828 | |||
| 829 | <row> | ||
| 830 | <entry>DHCP server (IP range 172.16.2.2 - | ||
| 831 | 172.16.2.254)</entry> | ||
| 832 | </row> | ||
| 833 | </tbody> | ||
| 834 | </entrytbl> | ||
| 835 | </row> | ||
| 836 | </tbody> | ||
| 837 | </tgroup> | ||
| 838 | </table> | ||
| 839 | |||
| 840 | <para><emphasis role="bold">Lab Setup</emphasis></para> | ||
| 841 | |||
| 842 | <para>The following table illustrates the use-case prerequisites of the | ||
| 843 | setup:</para> | ||
| 844 | |||
| 845 | <table> | ||
| 846 | <title>Lab Setup Prerequisites</title> | ||
| 847 | |||
| 848 | <tgroup cols="2"> | ||
| 849 | <colspec align="center" /> | ||
| 850 | |||
| 851 | <thead> | ||
| 852 | <row> | ||
| 853 | <entry align="center">Component</entry> | ||
| 854 | |||
| 855 | <entry align="center">Description</entry> | ||
| 856 | </row> | ||
| 857 | </thead> | ||
| 858 | |||
| 859 | <tbody> | ||
| 860 | <row> | ||
| 861 | <entry>Lab Network</entry> | ||
| 862 | |||
| 863 | <entrytbl cols="1"> | ||
| 864 | <tbody> | ||
| 865 | <row> | ||
| 866 | <entry>DHCP enabled Lab Network.</entry> | ||
| 867 | </row> | ||
| 868 | |||
| 869 | <row> | ||
| 870 | <entry>Internet Connectivity.</entry> | ||
| 871 | </row> | ||
| 872 | </tbody> | ||
| 873 | </entrytbl> | ||
| 874 | </row> | ||
| 875 | |||
| 876 | <row> | ||
| 877 | <entry>Two Intel Whitebox target devices</entry> | ||
| 878 | |||
| 879 | <entrytbl cols="1"> | ||
| 880 | <tbody> | ||
| 881 | <row> | ||
| 882 | <entry>Minimum 4 Physical Network Devices.</entry> | ||
| 883 | </row> | ||
| 884 | |||
| 885 | <row> | ||
| 886 | <entry>4 GB RAM and 4 cores (C3000 or Xeon D).</entry> | ||
| 887 | </row> | ||
| 888 | |||
| 889 | <row> | ||
| 890 | <entry>Enea NFV Access Installed.</entry> | ||
| 891 | </row> | ||
| 892 | |||
| 893 | <row> | ||
| 894 | <entry>VNFMgr Connected to Lab Network for VNF management | ||
| 895 | access.</entry> | ||
| 896 | </row> | ||
| 897 | |||
| 898 | <row> | ||
| 899 | <entry>WAN interfaces directly connected through Ethernet | ||
| 900 | cable.</entry> | ||
| 901 | </row> | ||
| 902 | |||
| 903 | <row> | ||
| 904 | <entry>LAN Connected to Test Machine.</entry> | ||
| 905 | </row> | ||
| 906 | |||
| 907 | <row> | ||
| 908 | <entry>ETH0 connected to Lab Network (for Enea uCPE Manager | ||
| 909 | communications).</entry> | ||
| 910 | </row> | ||
| 911 | </tbody> | ||
| 912 | </entrytbl> | ||
| 913 | </row> | ||
| 914 | |||
| 915 | <row> | ||
| 916 | <entry>One Lab Machine</entry> | ||
| 917 | |||
| 918 | <entrytbl cols="1"> | ||
| 919 | <tbody> | ||
| 920 | <row> | ||
| 921 | <entry>Connected to Lab Network.</entry> | ||
| 922 | </row> | ||
| 923 | |||
| 924 | <row> | ||
| 925 | <entry>Running either Windows or CentOS.</entry> | ||
| 926 | </row> | ||
| 927 | |||
| 928 | <row> | ||
| 929 | <entry>Enea uCPE Manager installed.</entry> | ||
| 930 | </row> | ||
| 931 | </tbody> | ||
| 932 | </entrytbl> | ||
| 933 | </row> | ||
| 934 | |||
| 935 | <row> | ||
| 936 | <entry>Two Test Machines</entry> | ||
| 937 | |||
| 938 | <entrytbl cols="1"> | ||
| 939 | <tbody> | ||
| 940 | <row> | ||
| 941 | <entry>Connected to Whitebox LANs.</entry> | ||
| 942 | </row> | ||
| 943 | |||
| 944 | <row> | ||
| 945 | <entry>Internet Connectivity via LAN.</entry> | ||
| 946 | </row> | ||
| 947 | |||
| 948 | <row> | ||
| 949 | <entry>Configured as DHCP client on LAN.</entry> | ||
| 950 | </row> | ||
| 951 | </tbody> | ||
| 952 | </entrytbl> | ||
| 953 | </row> | ||
| 954 | |||
| 955 | <row> | ||
| 956 | <entry>FortiGate VNF</entry> | ||
| 957 | |||
| 958 | <entrytbl cols="1"> | ||
| 959 | <tbody> | ||
| 960 | <row> | ||
| 961 | <entry>Downloaded the FortiGate VNF Bundle from Enea Portal | ||
| 962 | to the Lab Machine file system.</entry> | ||
| 963 | </row> | ||
| 964 | |||
| 965 | <row> | ||
| 966 | <entry>Downloaded FortiGate configuration examples from Enea | ||
| 967 | Portal to Lab Machine file system. Unpack the configuration | ||
| 968 | examples specific for SD-WAN on the Lab Machine.</entry> | ||
| 969 | </row> | ||
| 970 | |||
| 971 | <row> | ||
| 972 | <entry>Retrieve the FortiGate VNF license from Fortinet and | ||
| 973 | store it on the Lab Machine file system.</entry> | ||
| 974 | </row> | ||
| 975 | |||
| 976 | <row> | ||
| 977 | <entry>Optionally, retrieve FortiGate VNF documentation from | ||
| 978 | Fortinet.</entry> | ||
| 979 | </row> | ||
| 980 | </tbody> | ||
| 981 | </entrytbl> | ||
| 982 | </row> | ||
| 983 | </tbody> | ||
| 984 | </tgroup> | ||
| 985 | </table> | ||
| 986 | |||
| 987 | <figure> | ||
| 988 | <title>SD-WAN: VPN Configuration</title> | ||
| 989 | |||
| 990 | <mediaobject> | ||
| 991 | <imageobject> | ||
| 992 | <imagedata align="center" fileref="images/sdwan_vpn_overview_1.png" | ||
| 993 | scale="50" /> | ||
| 994 | </imageobject> | ||
| 995 | </mediaobject> | ||
| 996 | </figure> | ||
| 997 | |||
| 998 | <para><emphasis role="bold">uCPE Networking Setup</emphasis></para> | ||
| 999 | |||
| 1000 | <para>Before deploying the FortiGate SD-WAN, the Enea NFV Access platform | ||
| 1001 | has to be configured to the specific networking setup.</para> | ||
| 1002 | |||
| 1003 | <para>Since the SD-WAN VNF uses three External Network Interfaces, three | ||
| 1004 | bridges need to be configured. Each bridge provides the ability to connect | ||
| 1005 | a physical network interface to the virtual machine's virtual network | ||
| 1006 | interface. Each physical to virtual network interface connection is setup | ||
| 1007 | in two steps:</para> | ||
| 1008 | |||
| 1009 | <itemizedlist> | ||
| 1010 | <listitem> | ||
| 1011 | <para>Bind the physical network interfaces with a DPDK driver.</para> | ||
| 1012 | </listitem> | ||
| 1013 | |||
| 1014 | <listitem> | ||
| 1015 | <para>Create a named bridge for each physical network | ||
| 1016 | interface.</para> | ||
| 1017 | </listitem> | ||
| 1018 | </itemizedlist> | ||
| 1019 | |||
| 1020 | <para>Start the setup by preparing each physical interface for attachment | ||
| 1021 | to a bridge. Each VNF instance will have a virtual interface for VNF | ||
| 1022 | management, for the WAN network and for LAN communication.</para> | ||
| 1023 | |||
| 1024 | <orderedlist> | ||
| 1025 | <listitem> | ||
| 1026 | <para>Bind physical interface to DPDK by selecting the target_1: | ||
| 1027 | <literal>Configuration</literal> -> <literal>OpenVSwitch</literal> | ||
| 1028 | -> <literal>Host Interfaces</literal> -> | ||
| 1029 | <literal>Add</literal>:</para> | ||
| 1030 | |||
| 1031 | <figure> | ||
| 1032 | <title>Binding the Physical Interface</title> | ||
| 1033 | |||
| 1034 | <mediaobject> | ||
| 1035 | <imageobject> | ||
| 1036 | <imagedata align="center" | ||
| 1037 | fileref="images/bind_phys_interface.png" scale="90" /> | ||
| 1038 | </imageobject> | ||
| 1039 | </mediaobject> | ||
| 1040 | </figure> | ||
| 1041 | |||
| 1042 | <para>The result of binding these three interfaces should look like | ||
| 1043 | the following:</para> | ||
| 1044 | |||
| 1045 | <figure> | ||
| 1046 | <title>Results of Binding</title> | ||
| 1047 | |||
| 1048 | <mediaobject> | ||
| 1049 | <imageobject> | ||
| 1050 | <imagedata align="center" fileref="images/binding_results.png" | ||
| 1051 | scale="70" /> | ||
| 1052 | </imageobject> | ||
| 1053 | </mediaobject> | ||
| 1054 | </figure> | ||
| 1055 | </listitem> | ||
| 1056 | |||
| 1057 | <listitem> | ||
| 1058 | <para>Create one OpenVSwitch bridge for each SD-WAN network connection | ||
| 1059 | (VNF management, WAN and LAN) by selecting the <literal>Add</literal> | ||
| 1060 | button from the Bridges tab by selecting the target: | ||
| 1061 | <literal>Configuration</literal> -> | ||
| 1062 | <literal>OpenvSwitch</literal>-> <literal>Bridges</literal>. A | ||
| 1063 | popup like this should appear:</para> | ||
| 1064 | |||
| 1065 | <figure> | ||
| 1066 | <title>Creating an OpenVSwitch bridge for an SD-WAN network | ||
| 1067 | connection</title> | ||
| 1068 | |||
| 1069 | <mediaobject> | ||
| 1070 | <imageobject> | ||
| 1071 | <imagedata align="center" fileref="images/ovs_bridge_four.png" | ||
| 1072 | scale="70" /> | ||
| 1073 | </imageobject> | ||
| 1074 | </mediaobject> | ||
| 1075 | </figure> | ||
| 1076 | </listitem> | ||
| 1077 | |||
| 1078 | <listitem> | ||
| 1079 | <para>Repeat this step for all network connections. Three bridges will | ||
| 1080 | be created:</para> | ||
| 1081 | |||
| 1082 | <figure> | ||
| 1083 | <title>The three newly created Bridges</title> | ||
| 1084 | |||
| 1085 | <mediaobject> | ||
| 1086 | <imageobject> | ||
| 1087 | <imagedata align="center" fileref="images/created_bridges.png" | ||
| 1088 | scale="70" /> | ||
| 1089 | </imageobject> | ||
| 1090 | </mediaobject> | ||
| 1091 | </figure> | ||
| 1092 | </listitem> | ||
| 1093 | </orderedlist> | ||
| 1094 | |||
| 1095 | <para>Once the interfaces and bridges are ready, only the on-boarding and | ||
| 1096 | instantiation of the VNF remains to be done.</para> | ||
| 1097 | |||
| 1098 | <para><emphasis role="bold">Onboarding the FortiGate VNF</emphasis></para> | ||
| 1099 | |||
| 1100 | <orderedlist> | ||
| 1101 | <listitem> | ||
| 1102 | <para>To on-board a VNF, select target on the map and click the | ||
| 1103 | <literal>VNF</literal> button in the top toolbar. Then, click the | ||
| 1104 | <literal>Descriptors</literal> -> <literal>On-board</literal> -> | ||
| 1105 | <literal>Browse</literal> options, and select the | ||
| 1106 | <filename>Fortigate.zip</filename> file, before clicking | ||
| 1107 | <literal>Send</literal>:</para> | ||
| 1108 | |||
| 1109 | <figure> | ||
| 1110 | <title>On-boarding FortiGate VNF</title> | ||
| 1111 | |||
| 1112 | <mediaobject> | ||
| 1113 | <imageobject> | ||
| 1114 | <imagedata align="center" fileref="images/onboard.png" | ||
| 1115 | scale="45" /> | ||
| 1116 | </imageobject> | ||
| 1117 | </mediaobject> | ||
| 1118 | </figure> | ||
| 1119 | </listitem> | ||
| 1120 | |||
| 1121 | <listitem> | ||
| 1122 | <para>Wait for the <literal>Onboarding Status</literal> popup to | ||
| 1123 | display the confirmation message and select | ||
| 1124 | <literal>OK</literal>:</para> | ||
| 1125 | |||
| 1126 | <figure> | ||
| 1127 | <title>Successful Confirmation</title> | ||
| 1128 | |||
| 1129 | <mediaobject> | ||
| 1130 | <imageobject> | ||
| 1131 | <imagedata align="center" | ||
| 1132 | fileref="images/onboarded_successfully.png" | ||
| 1133 | scale="42" /> | ||
| 1134 | </imageobject> | ||
| 1135 | </mediaobject> | ||
| 1136 | </figure> | ||
| 1137 | </listitem> | ||
| 1138 | </orderedlist> | ||
| 1139 | |||
| 1140 | <para><emphasis role="bold">Instantiating the FortiGate | ||
| 1141 | VNF</emphasis></para> | ||
| 1142 | |||
| 1143 | <para>The following steps describe how to instantiate the Fortigate | ||
| 1144 | VNF.</para> | ||
| 1145 | |||
| 1146 | <orderedlist> | ||
| 1147 | <listitem> | ||
| 1148 | <para>Select the target, then from the top toolbar click on | ||
| 1149 | <literal>VNF</literal>-> <literal>Instances</literal> -> | ||
| 1150 | <literal>Add</literal> options:</para> | ||
| 1151 | |||
| 1152 | <figure> | ||
| 1153 | <title>Adding an Instance</title> | ||
| 1154 | |||
| 1155 | <mediaobject> | ||
| 1156 | <imageobject> | ||
| 1157 | <imagedata align="center" fileref="images/adding_instance.png" | ||
| 1158 | scale="50" /> | ||
| 1159 | </imageobject> | ||
| 1160 | </mediaobject> | ||
| 1161 | </figure> | ||
| 1162 | |||
| 1163 | <note> | ||
| 1164 | <para>Download locally the valid license files for the Fortigate VNF | ||
| 1165 | from Fortinet and the configuration file provided by Enea as | ||
| 1166 | examples.</para> | ||
| 1167 | </note> | ||
| 1168 | </listitem> | ||
| 1169 | |||
| 1170 | <listitem> | ||
| 1171 | <para>Use the <literal>sdwan1</literal> example configuration file for | ||
| 1172 | the first target:</para> | ||
| 1173 | |||
| 1174 | <figure> | ||
| 1175 | <title>Configuring target_1</title> | ||
| 1176 | |||
| 1177 | <mediaobject> | ||
| 1178 | <imageobject> | ||
| 1179 | <imagedata align="center" fileref="images/sdwan1_eg_config.png" | ||
| 1180 | scale="70" /> | ||
| 1181 | </imageobject> | ||
| 1182 | </mediaobject> | ||
| 1183 | </figure> | ||
| 1184 | </listitem> | ||
| 1185 | </orderedlist> | ||
| 1186 | |||
| 1187 | <para>Fortigate VNF instantiation requires the following settings:</para> | ||
| 1188 | |||
| 1189 | <table> | ||
| 1190 | <title>Fortigate VNF Instantiation Requirements</title> | ||
| 1191 | |||
| 1192 | <tgroup cols="2"> | ||
| 1193 | <colspec align="left" colwidth="2*" /> | ||
| 1194 | |||
| 1195 | <colspec align="left" colwidth="4*" /> | ||
| 1196 | |||
| 1197 | <thead> | ||
| 1198 | <row> | ||
| 1199 | <entry align="center">Component</entry> | ||
| 1200 | |||
| 1201 | <entry align="center">Description</entry> | ||
| 1202 | </row> | ||
| 1203 | </thead> | ||
| 1204 | |||
| 1205 | <tbody> | ||
| 1206 | <row> | ||
| 1207 | <entry>Name</entry> | ||
| 1208 | |||
| 1209 | <entry>The name of the VM which will be created on target | ||
| 1210 | device.</entry> | ||
| 1211 | </row> | ||
| 1212 | |||
| 1213 | <row> | ||
| 1214 | <entry>VNF Type</entry> | ||
| 1215 | |||
| 1216 | <entry>The name of the on-boarded VNF bundle.</entry> | ||
| 1217 | </row> | ||
| 1218 | |||
| 1219 | <row> | ||
| 1220 | <entry>VIM</entry> | ||
| 1221 | |||
| 1222 | <entry>Name and IP address of the device where the VNF has to be | ||
| 1223 | instantiated.</entry> | ||
| 1224 | </row> | ||
| 1225 | |||
| 1226 | <row> | ||
| 1227 | <entry>License file</entry> | ||
| 1228 | |||
| 1229 | <entry>FortiGate license file provided by Fortinet.</entry> | ||
| 1230 | </row> | ||
| 1231 | |||
| 1232 | <row> | ||
| 1233 | <entry>Configuration file</entry> | ||
| 1234 | |||
| 1235 | <entry>SD-WAN example configuration files provided by Enea: - | ||
| 1236 | FGVM080000136187_20180215_0708_sdwan1.conf - | ||
| 1237 | FGVM080000136188_20180215_0708_sdwan2.conf</entry> | ||
| 1238 | </row> | ||
| 1239 | |||
| 1240 | <row> | ||
| 1241 | <entry>Port1 - VNFMgr</entry> | ||
| 1242 | |||
| 1243 | <entry>Set as dpdk type and connect it to vnfmgrbr bridge.</entry> | ||
| 1244 | </row> | ||
| 1245 | |||
| 1246 | <row> | ||
| 1247 | <entry>Port2 - WAN</entry> | ||
| 1248 | |||
| 1249 | <entry>Set as dpdk type and connect it to wanbr bridge.</entry> | ||
| 1250 | </row> | ||
| 1251 | |||
| 1252 | <row> | ||
| 1253 | <entry>Port3 - LAN</entry> | ||
| 1254 | |||
| 1255 | <entry>Set as dpdk type and connect it to lanbr bridge.</entry> | ||
| 1256 | </row> | ||
| 1257 | </tbody> | ||
| 1258 | </tgroup> | ||
| 1259 | </table> | ||
| 1260 | |||
| 1261 | <para>To complete the branch-to-branch setup, configure the peer target in | ||
| 1262 | the same way as <literal>target_1</literal>. Make sure to use the | ||
| 1263 | <filename>FGVM080000136188_20180215_0708_sdwan2.conf</filename> | ||
| 1264 | configuration file for the second VNF instantiation.</para> | ||
| 1265 | |||
| 1266 | <para><emphasis role="bold">Testing the FortiGate SD-WAN | ||
| 1267 | VPN</emphasis></para> | ||
| 1268 | |||
| 1269 | <para>Once the full SD-WAN setup is in place a VPN connection needs to | ||
| 1270 | established between the two targets. The Test Machines can be connected to | ||
| 1271 | the LAN interface on each target.</para> | ||
| 1272 | |||
| 1273 | <para>The connected Test Machine can be a laptop or a target that has one | ||
| 1274 | interface configured to get dynamic IP from a DHCP server. The | ||
| 1275 | <command>dhclient <interface></command> command can be used to | ||
| 1276 | request an IP address.</para> | ||
| 1277 | |||
| 1278 | <note> | ||
| 1279 | <para>The received IP must be in the 172.16.1.2 - 172.16.1.255 range for | ||
| 1280 | Test Machine-1 and in the 172.16.2.2 - 172.16.2.255 range for Test | ||
| 1281 | Machine-2.</para> | ||
| 1282 | </note> | ||
| 1283 | |||
| 1284 | <figure> | ||
| 1285 | <title>Overview: Testing Machines Setup</title> | ||
| 1286 | |||
| 1287 | <mediaobject> | ||
| 1288 | <imageobject> | ||
| 1289 | <imagedata align="center" fileref="images/test_machines.png" | ||
| 1290 | scale="40" /> | ||
| 1291 | </imageobject> | ||
| 1292 | </mediaobject> | ||
| 1293 | </figure> | ||
| 1294 | |||
| 1295 | <para>Target 1 should be able to ping Test target 2 in this setup over the | ||
| 1296 | WAN connection.</para> | ||
| 1297 | |||
| 1298 | <para>In the figure above and this example, the FortiGate VNF management | ||
| 1299 | interface is accessible through a dedicated Mgmt interface. The Mgmt IP | ||
| 1300 | address can be used from a web browser on the Lab Machine to access the | ||
| 1301 | Fortigate VNF Management Web UI.</para> | ||
| 1302 | |||
| 1303 | <note> | ||
| 1304 | <para>In this SD-WAN VPN setup example, bridges were used as connection | ||
| 1305 | points for Fortigate VNF. It is possible to replace OVS-DPDK bridges | ||
| 1306 | with SR-IOV connection points.</para> | ||
| 1307 | </note> | ||
| 1308 | </section> | ||
| 1309 | </chapter> \ No newline at end of file | ||
