diff options
| author | Sona Sarmadi <sona.sarmadi@enea.com> | 2019-10-01 07:44:43 +0200 |
|---|---|---|
| committer | Miruna Paun <Miruna.Paun@enea.com> | 2019-10-01 18:23:11 +0200 |
| commit | 6a7862077b08ae360635cdc962253a3e321fd0cf (patch) | |
| tree | 4f21df9e3a8f25936406a0ce8023b747196084e1 | |
| parent | 1b9b859ee60570de0064781de3cca45f7b8ddfbc (diff) | |
| download | nfv-access-documentation-6a7862077b08ae360635cdc962253a3e321fd0cf.tar.gz | |
GettingStarted: add "Advanced Configurations" ch
- Move "Hugepage Reservation Service", "UEFI Secure Boot and "Bare
Metal Provisioning" to "Advanced Configurations" chapter
- Fix review comments on "Bare Metal Provisioning" chapter
Change-Id: I2dbaf2d419d4a19e900b31472fc8690ec7f88169
Signed-off-by: Sona Sarmadi <sona.sarmadi@enea.com>
5 files changed, 520 insertions, 529 deletions
diff --git a/doc/book-enea-nfv-access-getting-started/doc/advanced_configurations.xml b/doc/book-enea-nfv-access-getting-started/doc/advanced_configurations.xml new file mode 100644 index 0000000..0dbdd84 --- /dev/null +++ b/doc/book-enea-nfv-access-getting-started/doc/advanced_configurations.xml | |||
| @@ -0,0 +1,519 @@ | |||
| 1 | <?xml version="1.0" encoding="ISO-8859-1"?> | ||
| 2 | <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" | ||
| 3 | "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"> | ||
| 4 | <chapter id="advanced_conf"> | ||
| 5 | <title>Advanced Configurations</title> | ||
| 6 | |||
| 7 | <para>This chapter describes possible configurations for select advanced features | ||
| 8 | such as the Hugepage Reservation Service, UEFI Secure Boot and Bare Metal | ||
| 9 | Provisioning. These features are optional in the Enea NFV Access platform. | ||
| 10 | If you do not intend to use these features, skip this chapter.</para> | ||
| 11 | |||
| 12 | <section id="hugepage_reservation"> | ||
| 13 | <title>Hugepage Reservation Service</title> | ||
| 14 | |||
| 15 | <para>NFV Access implements an automatic hugepage allocation service that | ||
| 16 | is triggered at each startup. The service is skipped if hugepages have | ||
| 17 | been allocated in the kernel boot command line.</para> | ||
| 18 | |||
| 19 | <para>There are two strategies outlined for hugepage allocation:</para> | ||
| 20 | |||
| 21 | <itemizedlist> | ||
| 22 | <listitem> | ||
| 23 | <para>If a system has an amount of memory up to 8GB, the allocation | ||
| 24 | algorithm will reserve up to 30% (no more than 2GB), for the OS and | ||
| 25 | the rest as 2MB hugepages.</para> | ||
| 26 | </listitem> | ||
| 27 | |||
| 28 | <listitem> | ||
| 29 | <para>If a system has an amount of memory that's higher than 8GB, the | ||
| 30 | allocation algorithm will reserve all but 2GB of memory as 1GB | ||
| 31 | hugepages, leaving the rest (2GB) to be used by the OS.</para> | ||
| 32 | </listitem> | ||
| 33 | </itemizedlist> | ||
| 34 | |||
| 35 | <note> | ||
| 36 | <para>This is a best effort reservation after kernel boot, so the | ||
| 37 | results may vary accordingly.</para> | ||
| 38 | </note> | ||
| 39 | |||
| 40 | <section id="hugepage_customizing_auto"> | ||
| 41 | <title>Customizing Automatic Hugepage Reservation</title> | ||
| 42 | |||
| 43 | <para>Configuration of Hugepage reservation is done in | ||
| 44 | <literal>/etc/enea-nfv-access/hugepages.cfg</literal>.</para> | ||
| 45 | |||
| 46 | <para><emphasis role="bold">Parameters used by the automatic algorithm: | ||
| 47 | </emphasis></para> | ||
| 48 | |||
| 49 | <itemizedlist spacing="compact"> | ||
| 50 | <listitem> | ||
| 51 | <para><literal>hugepage_setup</literal>: Enables the automatic | ||
| 52 | configuraiton algorithm. It has only one value, | ||
| 53 | <literal>auto</literal>. For manual configuration comment or remove | ||
| 54 | this parameter. Use the other parameter descriptions as a | ||
| 55 | template/example.</para> | ||
| 56 | </listitem> | ||
| 57 | |||
| 58 | <listitem> | ||
| 59 | <para><literal>threshold_to_use_1g</literal>: Decides the threshold | ||
| 60 | which instructs the algorithm to use 1GB hugepages. If a system's | ||
| 61 | memory is higher than <literal>threshold_to_use_1g</literal>, then | ||
| 62 | the algorithm will use 1GB hugepages, otherwise it will use 2MB | ||
| 63 | hugepages.</para> | ||
| 64 | </listitem> | ||
| 65 | |||
| 66 | <listitem> | ||
| 67 | <para><literal>percent_os_alloc</literal>: Decides how much memory | ||
| 68 | to try to reserve for userspace applications. The algorithm will try | ||
| 69 | to reserve at least the value of <literal>percent_os_alloc</literal> of the total | ||
| 70 | system memory for userspace applications.</para> | ||
| 71 | </listitem> | ||
| 72 | |||
| 73 | <listitem> | ||
| 74 | <para><literal>maximum_os_alloc_mb</literal>: Maximum amount of | ||
| 75 | memory to allocate for userspace applications. If | ||
| 76 | <literal>percent_os_alloc</literal> of the total system memory | ||
| 77 | exceeds <literal>maximum_os_alloc_mb</literal> then the maximum | ||
| 78 | allocated memory for userspace applications is | ||
| 79 | <literal>maximum_os_alloc_mb</literal>.</para> | ||
| 80 | </listitem> | ||
| 81 | </itemizedlist> | ||
| 82 | |||
| 83 | <para><emphasis role="bold">Example of automatic Hugepage | ||
| 84 | Configuration:</emphasis></para> | ||
| 85 | |||
| 86 | <programlisting> hugepage_setup = auto | ||
| 87 | threshold_to_use_1g = 8192 | ||
| 88 | percent_os_alloc = 30 | ||
| 89 | maximum_os_alloc_mb = 2048</programlisting> | ||
| 90 | |||
| 91 | <para>The following possible allocations can result (based on total | ||
| 92 | system memory available):</para> | ||
| 93 | |||
| 94 | <itemizedlist> | ||
| 95 | <listitem> | ||
| 96 | <para>2GB of memory: approximately 30% will be allocated for the OS | ||
| 97 | and the rest will be allocated as 2MB hugepages.</para> | ||
| 98 | </listitem> | ||
| 99 | |||
| 100 | <listitem> | ||
| 101 | <para>4GB of memory: approximately 30% will be allocated for the OS | ||
| 102 | and the rest will be allocated as 2MB hugepages.</para> | ||
| 103 | </listitem> | ||
| 104 | |||
| 105 | <listitem> | ||
| 106 | <para>16GB of memory: approximately 2GB will be allocated for the OS | ||
| 107 | and the rest as 1GB hugepages.</para> | ||
| 108 | </listitem> | ||
| 109 | </itemizedlist> | ||
| 110 | |||
| 111 | <note> | ||
| 112 | <para>The memory allocated for the kernel and hugepages might vary | ||
| 113 | slightly depending on how much memory is available.</para> | ||
| 114 | </note> | ||
| 115 | </section> | ||
| 116 | |||
| 117 | <section id="hugepage_customizing_man"> | ||
| 118 | <title>Customizing Manual Hugepage Reservation</title> | ||
| 119 | |||
| 120 | <para>The automatic algorithm can be disabled and hugepages in turn, configured | ||
| 121 | manually. To do this, comment the line which defines | ||
| 122 | <literal>hugepage_setup</literal> as <literal>auto</literal> and | ||
| 123 | configure memory for each CPU socket in the following manner:</para> | ||
| 124 | |||
| 125 | <programlisting><NUMA node>.<hugepage size> = <number of pages></programlisting> | ||
| 126 | |||
| 127 | <para>Where <literal><NUMA node></literal> refers to a node which | ||
| 128 | is part of the system's NUMA topology, <literal><hugepage | ||
| 129 | size></literal> decides what type of hugepages should be set and | ||
| 130 | <literal><number of hugepages></literal> is how many hugepages of | ||
| 131 | <literal><hugepage size></literal> should be allocated.</para> | ||
| 132 | |||
| 133 | <para>To list the available system nodes, run:</para> | ||
| 134 | |||
| 135 | <programlisting>ls -d /sys/devices/system/node/node* </programlisting> | ||
| 136 | |||
| 137 | <para>To list available hugepage sizes, per node, run:</para> | ||
| 138 | |||
| 139 | <programlisting>ls -d /sys/devices/system/node/node*/hugepages/hugepages-*</programlisting> | ||
| 140 | |||
| 141 | <para>Example of Manual Hugepage Configuration, configuring the system | ||
| 142 | to allocate three 1GB hugepages and 512 of 2MB hugepages on node:</para> | ||
| 143 | |||
| 144 | <programlisting>node0.2048kB = 512 | ||
| 145 | node0.1048576kB = 3 </programlisting> | ||
| 146 | </section> | ||
| 147 | </section> | ||
| 148 | |||
| 149 | <section id="uefi_secure_boot"> | ||
| 150 | <title>UEFI Secure Boot</title> | ||
| 151 | |||
| 152 | <para>Secure Boot was designed to enhance security in the pre-boot | ||
| 153 | environment. It prevents malicious software and applications from being | ||
| 154 | loaded during the system start-up process.</para> | ||
| 155 | |||
| 156 | <para>The basic principle of UEFI Secure Boot is that it requires all | ||
| 157 | artifacts involved in the boot process (bootloaders, kernel, initramfs) | ||
| 158 | to be signed using a set of private keys. On a Secure Boot enabled uCPE | ||
| 159 | device these artifacts are checked against a set of public certificates | ||
| 160 | which correspond to these keys. If there are any mismatches the boot | ||
| 161 | process will fail at the stage(s) they are detected.</para> | ||
| 162 | |||
| 163 | <para>For more information about Secure Boot please refer to <ulink | ||
| 164 | url="https://www.uefi.org/sites/default/files/resources/UEFI_Secure_Boot_in_Modern_Computer_Security_Solutions_2013.pdf">Secure | ||
| 165 | Boot in Modern Computer Security Solutions</ulink>.</para> | ||
| 166 | |||
| 167 | <section id="secure_boot_keys"> | ||
| 168 | <title>Enabling UEFI Secure Boot</title> | ||
| 169 | |||
| 170 | <para>All Enea NFV Access image artifacts delivered with the release are | ||
| 171 | signed using the Enea UEFI Secure boot private keys. These artifacts can | ||
| 172 | be used on a uCPE device that doesn't have Secure Boot enabled. To use | ||
| 173 | the Secure Boot feature, however, the user must make the Enea UEFI | ||
| 174 | Secure Boot public certificates available on the uCPE device before | ||
| 175 | enabling the feature in BIOS. This process is called | ||
| 176 | "Provisioning".</para> | ||
| 177 | |||
| 178 | <section id="manual_key_provisioning"> | ||
| 179 | <title>Provisioning the Enea UEFI Secure Boot Certificates</title> | ||
| 180 | |||
| 181 | <para>The UEFI firmware is normally shipped with factory preloaded | ||
| 182 | certificates. If these do not already include Certificates from Enea, | ||
| 183 | they will need to be appended or replaced with the Enea | ||
| 184 | Certificates.</para> | ||
| 185 | |||
| 186 | <para><emphasis role="bold">UEFI Secure Boot certificates provided | ||
| 187 | with your release:</emphasis></para> | ||
| 188 | |||
| 189 | <itemizedlist> | ||
| 190 | <listitem> | ||
| 191 | <para><literal>Platform Key (PK)</literal>: this key protects the | ||
| 192 | next key from uncontrolled modification. Once this key is | ||
| 193 | enrolled, Secure Boot enters into <literal>User Mode</literal>. | ||
| 194 | The drivers and loaders signed with the <literal>Platform | ||
| 195 | Key</literal> can then be loaded by the firmware.</para> | ||
| 196 | </listitem> | ||
| 197 | |||
| 198 | <listitem> | ||
| 199 | <para><literal>Key Exchange key (KEK)</literal>: this key allows | ||
| 200 | other certificates which have a connection to the private portion | ||
| 201 | of the <literal>Platform Key</literal> to be used.</para> | ||
| 202 | </listitem> | ||
| 203 | |||
| 204 | <listitem> | ||
| 205 | <para><literal>Authorized Signature (DB)</literal>: contains the | ||
| 206 | <literal>trusted keys</literal> used for authenticating any | ||
| 207 | drivers or applications executed in the UEFI environment.</para> | ||
| 208 | </listitem> | ||
| 209 | </itemizedlist> | ||
| 210 | |||
| 211 | <para>The Enea UEFI Secure Boot certificates are installed together | ||
| 212 | with the Enea NFV Access Run Time Platform onto the hard drive. They | ||
| 213 | can be found on the EFI partition (usually the first partition of the | ||
| 214 | drive) under <literal>/uefi_sb_keys</literal>.</para> | ||
| 215 | |||
| 216 | <para><emphasis role="bold">How to manually enroll Enea | ||
| 217 | Certificates</emphasis></para> | ||
| 218 | |||
| 219 | <orderedlist> | ||
| 220 | <listitem> | ||
| 221 | <para>Reboot the uCPE device and press <literal>DEL</literal> to | ||
| 222 | enter into BIOS.</para> | ||
| 223 | </listitem> | ||
| 224 | |||
| 225 | <listitem> | ||
| 226 | <para>Select <literal>Secure Boot Mode</literal> -> | ||
| 227 | <literal>Custom</literal>.</para> | ||
| 228 | </listitem> | ||
| 229 | |||
| 230 | <listitem> | ||
| 231 | <para>Select <literal>Key Management</literal> from the | ||
| 232 | <literal>Security</literal> menu.</para> | ||
| 233 | </listitem> | ||
| 234 | |||
| 235 | <listitem> | ||
| 236 | <para>Enroll the <literal>Platform Key (PK)</literal>: | ||
| 237 | <itemizedlist> | ||
| 238 | <listitem> | ||
| 239 | Select <literal>Set New Key</literal> -> | ||
| 240 | <literal>File from a file system</literal>. . | ||
| 241 | </listitem> | ||
| 242 | |||
| 243 | <listitem> | ||
| 244 | Specify the folder: <literal><user-keys>/<uefi_sb_keys>/PK.esl</literal> | ||
| 245 | </listitem> | ||
| 246 | |||
| 247 | <listitem> | ||
| 248 | Select <literal>Public Key Certificate</literal> and then <literal>Ok</literal>. | ||
| 249 | </listitem> | ||
| 250 | </itemizedlist></para> | ||
| 251 | </listitem> | ||
| 252 | |||
| 253 | <listitem> | ||
| 254 | <para>Enroll the <literal>Key Exchange key (KEK)</literal>: | ||
| 255 | <itemizedlist> | ||
| 256 | <listitem> | ||
| 257 | Select <literal>Set New Key</literal> -> <literal>File from a file system</literal>. | ||
| 258 | </listitem> | ||
| 259 | |||
| 260 | <listitem> | ||
| 261 | Specify the folder: <literal><user-keys>/<uefi_sb_keys>/KEK.esl</literal> | ||
| 262 | </listitem> | ||
| 263 | |||
| 264 | <listitem> | ||
| 265 | Select <literal>Public Key Certificate</literal> and then <literal>Ok</literal>. | ||
| 266 | </listitem> | ||
| 267 | </itemizedlist></para> | ||
| 268 | </listitem> | ||
| 269 | |||
| 270 | <listitem> | ||
| 271 | <para>Enroll the <literal>Authorized Signature (DB)</literal>: | ||
| 272 | <itemizedlist> | ||
| 273 | <listitem> | ||
| 274 | Select <literal>Set New Key</literal> -> <literal>File from a file system</literal>. | ||
| 275 | </listitem> | ||
| 276 | |||
| 277 | <listitem> | ||
| 278 | Specify the folder: <literal><user-keys>/<uefi_sb_keys>/DB.esl</literal> | ||
| 279 | </listitem> | ||
| 280 | |||
| 281 | <listitem> | ||
| 282 | Select <literal>Public Key Certificate</literal> and then <literal>Ok</literal>. | ||
| 283 | </listitem> | ||
| 284 | </itemizedlist></para> | ||
| 285 | </listitem> | ||
| 286 | </orderedlist> | ||
| 287 | |||
| 288 | <note> | ||
| 289 | <para>Details on how to provision the certificates may vary with | ||
| 290 | different versions of UEFI firmware.</para> | ||
| 291 | </note> | ||
| 292 | </section> | ||
| 293 | |||
| 294 | <section id="enable_secure_boot"> | ||
| 295 | <title>Enabling Secure Boot in BIOS</title> | ||
| 296 | |||
| 297 | <para>Once the certificates are provisioned we can enable the Secure | ||
| 298 | Boot feature:</para> | ||
| 299 | |||
| 300 | <orderedlist> | ||
| 301 | <listitem> | ||
| 302 | <para>Within BIOS, select the <literal>Security option</literal> from the top | ||
| 303 | menu.</para> | ||
| 304 | </listitem> | ||
| 305 | |||
| 306 | <listitem> | ||
| 307 | <para>Set the <literal>Boot Menu</literal> -> | ||
| 308 | <literal>Enabled.</literal></para> | ||
| 309 | </listitem> | ||
| 310 | </orderedlist> | ||
| 311 | </section> | ||
| 312 | </section> | ||
| 313 | </section> | ||
| 314 | |||
| 315 | <section id="bare_meta_prov"> | ||
| 316 | <title>Bare Metal Provisioning</title> | ||
| 317 | |||
| 318 | <para>Bare Metal Provisioning can be used for automated deployment of | ||
| 319 | the Enea NFV Access Run Time Platform on a large number of uCPE devices. | ||
| 320 | The uCPE devices may have no previous operating system installed, or are | ||
| 321 | reinstalled without preserving any existing data. Enea NFV Access Bare | ||
| 322 | Metal Provisioning is based on standardized Pre-Boot Execution | ||
| 323 | environment (PXE) booting.</para> | ||
| 324 | |||
| 325 | <para>The Bare Metal Provisioning process begins by PXE booting an Enea | ||
| 326 | NFV Access installer <literal>initramfs</literal> image. The installer | ||
| 327 | downloads a configuration file, as well as the Enea NFV Access Run Time | ||
| 328 | Platform image and then proceeds to install the system by dividing the | ||
| 329 | disk into 2 partitions. A GPT partition containing the GRUB boot loader | ||
| 330 | and a second partition containing the Enea NFV Access Run Time Platform | ||
| 331 | root filesystem. When the installation is complete, the uCPE device is | ||
| 332 | automatically rebooted into Enea NFV Access Run Time Platform.</para> | ||
| 333 | |||
| 334 | <section id="bare_meta_prov_prereq"> | ||
| 335 | <title>Prerequisites</title> | ||
| 336 | |||
| 337 | <itemizedlist> | ||
| 338 | <listitem> | ||
| 339 | <para>The uCPE devices to be installed are connected in a working | ||
| 340 | PXE network boot environment. The PXE server can be set up using any | ||
| 341 | Linux distribution that includes TFTP and DHCP software packages. | ||
| 342 | Refer to the documentation for your distribution for setup | ||
| 343 | instructions.</para> | ||
| 344 | </listitem> | ||
| 345 | |||
| 346 | <listitem> | ||
| 347 | <para>An HTTP server must be available and accessible from the uCPE | ||
| 348 | devices in the provisioning network. Note that the installer will | ||
| 349 | use the same interface that the uCPE device is PXE-booted from, to | ||
| 350 | obtain an IP address using DHCP and access the HTTP server.</para> | ||
| 351 | </listitem> | ||
| 352 | |||
| 353 | <listitem> | ||
| 354 | <para>The uCPE devices are preconfigured in BIOS to boot from the | ||
| 355 | hard drive where the Enea NFV Access Run Time Platform will be | ||
| 356 | installed.</para> | ||
| 357 | </listitem> | ||
| 358 | |||
| 359 | <listitem> | ||
| 360 | <para>A remote management tool is available that can be used to set | ||
| 361 | the next boot option to PXE and reboot the uCPE devices in order to | ||
| 362 | begin the installation.</para> | ||
| 363 | </listitem> | ||
| 364 | </itemizedlist> | ||
| 365 | </section> | ||
| 366 | |||
| 367 | <section id="bare_meta_prov_server"> | ||
| 368 | <title>Server Configuration</title> | ||
| 369 | |||
| 370 | <para>The following images provided with your Enea NFV Access release | ||
| 371 | need to be made available on the PXE and HTTP servers:</para> | ||
| 372 | |||
| 373 | <orderedlist> | ||
| 374 | <listitem> | ||
| 375 | <para>Copy the Enea NFV Access installer | ||
| 376 | <literal>initramfs</literal> image and kernel | ||
| 377 | <literal>bzImage</literal> for your uCPE device architecture to the | ||
| 378 | TFTP directory on the PXE server (e.g | ||
| 379 | <literal>/var/lib/tftpboot</literal>).</para> | ||
| 380 | </listitem> | ||
| 381 | |||
| 382 | <listitem> | ||
| 383 | <para>Compress the Enea NFV Access Run Time Platform | ||
| 384 | <literal>hddimg</literal> image for the uCPE device architecture | ||
| 385 | using <literal>gzip</literal> and copy the resulting | ||
| 386 | <literal>hddimg.gz</literal> file to the HTTP server.</para> | ||
| 387 | </listitem> | ||
| 388 | </orderedlist> | ||
| 389 | |||
| 390 | <section id="bare_meta_prov_install_config"> | ||
| 391 | <title>Installation Configuration File</title> | ||
| 392 | |||
| 393 | <para>An installation configuration file needs to be prepared on the | ||
| 394 | HTTP server. The format of the configuration file is a list of | ||
| 395 | "<literal>name = value</literal>" pairs and the available parameters | ||
| 396 | are described below.</para> | ||
| 397 | |||
| 398 | <para>Mandatory parameters:</para> | ||
| 399 | |||
| 400 | <itemizedlist> | ||
| 401 | <listitem> | ||
| 402 | <para><literal>image_url</literal>. The HTTP server URL used for | ||
| 403 | downloading the Enea NFV Access Run Time Platform image. This | ||
| 404 | image will be installed on the uCPE device(s) in the | ||
| 405 | <literal>hddimg.gz</literal> format.</para> | ||
| 406 | </listitem> | ||
| 407 | </itemizedlist> | ||
| 408 | |||
| 409 | <para>Optional parameters:</para> | ||
| 410 | |||
| 411 | <itemizedlist> | ||
| 412 | <listitem> | ||
| 413 | <para><literal>install_drive</literal>. The name of the drive | ||
| 414 | where the Enea NFV Access Run Time Platform will be installed (e.g | ||
| 415 | <literal>/dev/sda</literal>). If not set, the installer will use | ||
| 416 | the largest detected (non-USB) drive on the uCPE device.</para> | ||
| 417 | </listitem> | ||
| 418 | |||
| 419 | <listitem> | ||
| 420 | <para><literal>prompt_user</literal>. If the parameter is set to | ||
| 421 | "yes", the installer will ask for confirmation before formatting | ||
| 422 | and partitioning the drive. The default behaviour is to proceed | ||
| 423 | automatically without any user interaction.</para> | ||
| 424 | </listitem> | ||
| 425 | </itemizedlist> | ||
| 426 | |||
| 427 | <para>Optional parameters for sending status notifications to a | ||
| 428 | server. All three must be provided if used:</para> | ||
| 429 | |||
| 430 | <itemizedlist> | ||
| 431 | <listitem> | ||
| 432 | <para><literal>notify_user</literal>. Server SSH username.</para> | ||
| 433 | </listitem> | ||
| 434 | |||
| 435 | <listitem> | ||
| 436 | <para><literal>notify_pass</literal>. Server SSH password.</para> | ||
| 437 | </listitem> | ||
| 438 | |||
| 439 | <listitem> | ||
| 440 | <para><literal>notify_path</literal>. Location where notification | ||
| 441 | files will be placed, specified in <literal>Server IP:directory</literal> | ||
| 442 | format.</para> | ||
| 443 | </listitem> | ||
| 444 | </itemizedlist> | ||
| 445 | |||
| 446 | <para>Installation Configuration File Example:</para> | ||
| 447 | |||
| 448 | <programlisting> | ||
| 449 | image_url = http://192.168.1.100/enea-nfv-access-xeon-d.hddimg.gz | ||
| 450 | install_drive = /dev/sda | ||
| 451 | notify_user = username | ||
| 452 | notify_pass = password | ||
| 453 | notify_path = 192.168.1.100:/home/user/status_notifications | ||
| 454 | |||
| 455 | </programlisting> | ||
| 456 | </section> | ||
| 457 | |||
| 458 | <section id="bare_meta_prov_pxe"> | ||
| 459 | <title>PXE Configuration</title> | ||
| 460 | |||
| 461 | <para>A PXE entry for the Enea NFV Access installation needs to be | ||
| 462 | added as the default boot selection in the pxelinux configuration file | ||
| 463 | (e.g <literal>/var/lib/tftpboot/pxelinux.cfg/default</literal>). The | ||
| 464 | PXE entry should have the following settings:</para> | ||
| 465 | |||
| 466 | <programlisting> | ||
| 467 | default nfv_access | ||
| 468 | label nfv_access | ||
| 469 | menu label ^NFV_ACCESS_INSTALLER | ||
| 470 | kernel <Path to kernel> | ||
| 471 | append root=/dev/ram0 initrd=<Path to initramfs> LABEL=pxe-installer \ | ||
| 472 | INSTALL_CFG=http://<Server IP>/<Path to install config file> | ||
| 473 | ipappend 2 | ||
| 474 | </programlisting> | ||
| 475 | </section> | ||
| 476 | </section> | ||
| 477 | |||
| 478 | <section id="bare_meta_prov_inst"> | ||
| 479 | <title>Starting the Installation</title> | ||
| 480 | |||
| 481 | <para>To initiate the installation, set the boot device (for next boot | ||
| 482 | only) to PXE and reboot the uCPE devices. How to do this depends on the | ||
| 483 | remote management capabilities of the uCPE devices and may require | ||
| 484 | vendor-specific tools.</para> | ||
| 485 | |||
| 486 | <para>Example initiation using <literal>ipmitool</literal>:</para> | ||
| 487 | |||
| 488 | <programlisting> | ||
| 489 | ipmitool -U <user> -P <password> -H <uCPE device IPMI IP address> chassis bootdev pxe | ||
| 490 | ipmitool -U <user> -P <password> -H <uCPE device IPMI IP address> power reset | ||
| 491 | </programlisting> | ||
| 492 | |||
| 493 | <para>The uCPE devices should be configured in BIOS to boot from the | ||
| 494 | installation drive first in order to automatically start the Enea NFV | ||
| 495 | Access Run Time Platform when the installation is finished.</para> | ||
| 496 | |||
| 497 | <section> | ||
| 498 | <title>Server Notifications</title> | ||
| 499 | |||
| 500 | <para>Optionally, the uCPE devices can send a notification file to a | ||
| 501 | server once the installation is complete and Enea NFV Access Run Time | ||
| 502 | Platform has successfully booted. Notifications are enabled by | ||
| 503 | providing the <literal>notify_*</literal> parameters in the | ||
| 504 | installation configuration file.</para> | ||
| 505 | |||
| 506 | <para>Each uCPE device will push a file to the server location | ||
| 507 | specified in the installation configuration file. The file name will | ||
| 508 | be the MAC address of the PXE boot network interface in order to | ||
| 509 | uniquely identify the device.</para> | ||
| 510 | |||
| 511 | <note> | ||
| 512 | <para>Note that the status notification will only be sent on the | ||
| 513 | first boot after installation is done, subsequent reboots of the | ||
| 514 | uCPE device will not cause any new notifications to be sent.</para> | ||
| 515 | </note> | ||
| 516 | </section> | ||
| 517 | </section> | ||
| 518 | </section> | ||
| 519 | </chapter> | ||
diff --git a/doc/book-enea-nfv-access-getting-started/doc/bare_metal_provisioning.xml b/doc/book-enea-nfv-access-getting-started/doc/bare_metal_provisioning.xml deleted file mode 100644 index 8ff70ee..0000000 --- a/doc/book-enea-nfv-access-getting-started/doc/bare_metal_provisioning.xml +++ /dev/null | |||
| @@ -1,210 +0,0 @@ | |||
| 1 | <?xml version="1.0" encoding="ISO-8859-1"?> | ||
| 2 | <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" | ||
| 3 | "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"> | ||
| 4 | <chapter id="bare_meta_prov"> | ||
| 5 | <title>Bare Metal Provisioning</title> | ||
| 6 | |||
| 7 | <para>This chapter contains information needed in order to use Bare Metal | ||
| 8 | Provisioning. Bare Metal Provisioning is an optional feature in the Enea NFV | ||
| 9 | Access Run Time Platform. If you do not intend to use this feature, skip to | ||
| 10 | the next chapter.</para> | ||
| 11 | |||
| 12 | <section id="bare_meta_prov_intro"> | ||
| 13 | <title>Introduction</title> | ||
| 14 | |||
| 15 | <para>Bare Metal Provisioning can be used for automated deployment of the | ||
| 16 | Enea NFV Access Run Time Platform on a large number of uCPE devices. The | ||
| 17 | uCPE devices may have no previous operating system installed, or are | ||
| 18 | reinstalled without preserving any existing data. Enea NFV Access Bare | ||
| 19 | Metal Provisioning is based on standardized Pre-Boot Execution environment | ||
| 20 | (PXE) booting.</para> | ||
| 21 | |||
| 22 | <para>The Bare Metal Provisioning process begins by PXE booting an Enea | ||
| 23 | NFV Access installer <literal>initramfs</literal> image. The installer | ||
| 24 | downloads a configuration file, as well as the Enea NFV Access Run Time | ||
| 25 | Platform image and then proceeds to install the system by dividing the | ||
| 26 | disk into 2 partitions. A GPT partition containing the GRUB boot loader | ||
| 27 | and a second partition containing the Enea NFV Access Run Time Platform | ||
| 28 | root filesystem. When the installation is complete, the uCPE device is | ||
| 29 | automatically rebooted into Enea NFV Access Run Time Platform.</para> | ||
| 30 | </section> | ||
| 31 | |||
| 32 | <section id="bare_meta_prov_prereq"> | ||
| 33 | <title>Prerequisites</title> | ||
| 34 | |||
| 35 | <itemizedlist> | ||
| 36 | <listitem> | ||
| 37 | <para>The uCPE devices to be installed are connected in a working PXE | ||
| 38 | network boot environment. The PXE server can be set up using any Linux | ||
| 39 | distribution that includes TFTP and DHCP software packages. Refer to | ||
| 40 | the documentation for your distribution for setup instructions.</para> | ||
| 41 | </listitem> | ||
| 42 | |||
| 43 | <listitem> | ||
| 44 | <para>An HTTP server must be available and accessible from the uCPE | ||
| 45 | devices in the provisioning network. Note that the installer will use | ||
| 46 | the same interface that the uCPE device is PXE-booted from, to obtain | ||
| 47 | an IP address using DHCP and access the HTTP server.</para> | ||
| 48 | </listitem> | ||
| 49 | |||
| 50 | <listitem> | ||
| 51 | <para>The uCPE devices are preconfigured in BIOS to boot from the hard | ||
| 52 | drive where the Enea NFV Access Run Time Platform will be | ||
| 53 | installed.</para> | ||
| 54 | </listitem> | ||
| 55 | |||
| 56 | <listitem> | ||
| 57 | <para>A remote management tool is available that can be used to set | ||
| 58 | the next boot option to PXE and reboot the uCPE devices in order to | ||
| 59 | begin the installation.</para> | ||
| 60 | </listitem> | ||
| 61 | </itemizedlist> | ||
| 62 | </section> | ||
| 63 | |||
| 64 | <section id="bare_meta_prov_server"> | ||
| 65 | <title>Server Configuration</title> | ||
| 66 | |||
| 67 | <para>The following images provided with your Enea NFV Access release | ||
| 68 | needs to be made available on the PXE and HTTP servers:</para> | ||
| 69 | |||
| 70 | <orderedlist> | ||
| 71 | <listitem> | ||
| 72 | <para>Copy the Enea NFV Access installer <literal>initramfs</literal> | ||
| 73 | image and kernel <literal>bzImage</literal> for the uCPE device | ||
| 74 | architecture to the TFTP directory on the PXE server (e.g | ||
| 75 | <literal>/var/lib/tftpboot</literal>).</para> | ||
| 76 | </listitem> | ||
| 77 | |||
| 78 | <listitem> | ||
| 79 | <para>Compress the Enea NFV Access Run Time Platform | ||
| 80 | <literal>hddimg</literal> image for the uCPE device architecture using | ||
| 81 | <literal>gzip</literal> and copy the resulting | ||
| 82 | <literal>hddimg.gz</literal> file to the HTTP server.</para> | ||
| 83 | </listitem> | ||
| 84 | </orderedlist> | ||
| 85 | |||
| 86 | <section id="bare_meta_prov_install_config"> | ||
| 87 | <title>Installation Configuration File</title> | ||
| 88 | |||
| 89 | <para>An installation configuration file needs to be prepared on the | ||
| 90 | HTTP server. The format of the configuration file is a list of | ||
| 91 | "<literal>name = value</literal>" pairs and the available parameters are | ||
| 92 | described below.</para> | ||
| 93 | |||
| 94 | <para>Mandatory parameters:</para> | ||
| 95 | |||
| 96 | <itemizedlist> | ||
| 97 | <listitem> | ||
| 98 | <para><literal>image_url</literal>. The HTTP server URL used for | ||
| 99 | downloading the Enea NFV Access Run Time Platform image to be | ||
| 100 | installed on the uCPE devices in <literal>hddimg.gz</literal> | ||
| 101 | format.</para> | ||
| 102 | </listitem> | ||
| 103 | </itemizedlist> | ||
| 104 | |||
| 105 | <para>Optional parameters:</para> | ||
| 106 | |||
| 107 | <itemizedlist> | ||
| 108 | <listitem> | ||
| 109 | <para><literal>install_drive</literal>. The name of the drive where | ||
| 110 | the Enea NFV Access Run Time Platform will be installed (e.g | ||
| 111 | <literal>/dev/sda</literal>). If not set, the installer will use the | ||
| 112 | largest detected (non-USB) drive on the uCPE device.</para> | ||
| 113 | </listitem> | ||
| 114 | |||
| 115 | <listitem> | ||
| 116 | <para><literal>prompt_user</literal>. If the parameter is set to | ||
| 117 | "yes", the installer will ask for confirmation before formatting and | ||
| 118 | partitioning the drive. The default behaviour is to proceed | ||
| 119 | automatically without any user interaction.</para> | ||
| 120 | </listitem> | ||
| 121 | </itemizedlist> | ||
| 122 | |||
| 123 | <para>Optional parameters for sending status notifications to a server. | ||
| 124 | All three must be provided if used:</para> | ||
| 125 | |||
| 126 | <itemizedlist> | ||
| 127 | <listitem> | ||
| 128 | <para><literal>notify_user</literal>. Server SSH username</para> | ||
| 129 | </listitem> | ||
| 130 | |||
| 131 | <listitem> | ||
| 132 | <para><literal>notify_pass</literal>. Server SSH password</para> | ||
| 133 | </listitem> | ||
| 134 | |||
| 135 | <listitem> | ||
| 136 | <para><literal>notify_path</literal>. Location where notification | ||
| 137 | files will be placed, specified in "Server IP:directory" | ||
| 138 | format.</para> | ||
| 139 | </listitem> | ||
| 140 | </itemizedlist> | ||
| 141 | |||
| 142 | <para>Installation Configuration File Example:</para> | ||
| 143 | |||
| 144 | <programlisting> | ||
| 145 | image_url = http://192.168.1.100/enea-nfv-access-xeon-d.hddimg.gz | ||
| 146 | install_drive = /dev/sda | ||
| 147 | notify_user = username | ||
| 148 | notify_pass = password | ||
| 149 | notify_path = 192.168.1.100:/home/user/status_notifications | ||
| 150 | |||
| 151 | </programlisting> | ||
| 152 | </section> | ||
| 153 | |||
| 154 | <section id="bare_meta_prov_pxe"> | ||
| 155 | <title>PXE Configuration</title> | ||
| 156 | |||
| 157 | <para>A PXE entry for the Enea NFV Access installation needs to be added | ||
| 158 | as the default boot selection in the pxelinux configuration file (e.g | ||
| 159 | <literal>/var/lib/tftpboot/pxelinux.cfg/default</literal>). The PXE | ||
| 160 | entry should have the following settings:</para> | ||
| 161 | |||
| 162 | <programlisting> | ||
| 163 | default nfv_access | ||
| 164 | label nfv_access | ||
| 165 | menu label ^NFV_ACCESS_INSTALLER | ||
| 166 | kernel <Path to kernel> | ||
| 167 | append root=/dev/ram0 initrd=<Path to initramfs> LABEL=pxe-installer \ | ||
| 168 | INSTALL_CFG=http://<Server IP>/<Path to install config file> | ||
| 169 | ipappend 2 | ||
| 170 | </programlisting> | ||
| 171 | </section> | ||
| 172 | </section> | ||
| 173 | |||
| 174 | <section id="bare_meta_prov_inst"> | ||
| 175 | <title>Starting the Installation</title> | ||
| 176 | |||
| 177 | <para>To initiate the installation, set the boot device (for next boot | ||
| 178 | only) to PXE and reboot the uCPE devices. How to do this depends on the | ||
| 179 | remote management capabilities of the uCPE devices and may require | ||
| 180 | vendor-specific tools.</para> | ||
| 181 | |||
| 182 | <para>Example initiation using <literal>ipmitool</literal>:</para> | ||
| 183 | |||
| 184 | <programlisting> | ||
| 185 | ipmitool -U <user> -P <password> -H <uCPE device IPMI IP address> chassis bootdev pxe | ||
| 186 | ipmitool -U <user> -P <password> -H <uCPE device IPMI IP address> power reset | ||
| 187 | </programlisting> | ||
| 188 | |||
| 189 | <para>The uCPE devices should be configured in BIOS to boot from the | ||
| 190 | installation drive first in order to automatically start the Enea NFV | ||
| 191 | Access Run Time Platform when the installation is finished.</para> | ||
| 192 | |||
| 193 | <section> | ||
| 194 | <title>Server Notifications</title> | ||
| 195 | |||
| 196 | <para>Optionally, the uCPE devices can send a notification file to a | ||
| 197 | server once the installation is complete and Enea NFV Access Runtime | ||
| 198 | Platform has successfully booted. Notifications are enabled by providing | ||
| 199 | the <literal>notify_*</literal> parameters in the installation | ||
| 200 | configuration file.</para> | ||
| 201 | |||
| 202 | <para>Each uCPE device will push a file to the server location specified | ||
| 203 | in the installation configuration file. The file name will be the MAC | ||
| 204 | address of the PXE boot network interface in order to uniquely identify | ||
| 205 | the device. Note that the status notification will only be sent on the | ||
| 206 | first boot after installation is done, subsequent reboots of the uCPE | ||
| 207 | device will not cause any new notifications to be sent.</para> | ||
| 208 | </section> | ||
| 209 | </section> | ||
| 210 | </chapter> \ No newline at end of file | ||
diff --git a/doc/book-enea-nfv-access-getting-started/doc/book.xml b/doc/book-enea-nfv-access-getting-started/doc/book.xml index 9289fe8..4ddc693 100644 --- a/doc/book-enea-nfv-access-getting-started/doc/book.xml +++ b/doc/book-enea-nfv-access-getting-started/doc/book.xml | |||
| @@ -27,12 +27,6 @@ | |||
| 27 | <xi:include href="getting_started_ucpe_manager.xml" | 27 | <xi:include href="getting_started_ucpe_manager.xml" |
| 28 | xmlns:xi="http://www.w3.org/2001/XInclude" /> | 28 | xmlns:xi="http://www.w3.org/2001/XInclude" /> |
| 29 | 29 | ||
| 30 | <xi:include href="secure_boot.xml" | 30 | <xi:include href="advanced_configurations.xml" |
| 31 | xmlns:xi="http://www.w3.org/2001/XInclude" /> | ||
| 32 | |||
| 33 | <xi:include href="bare_metal_provisioning.xml" | ||
| 34 | xmlns:xi="http://www.w3.org/2001/XInclude" /> | ||
| 35 | |||
| 36 | <xi:include href="in_band_management.xml" | ||
| 37 | xmlns:xi="http://www.w3.org/2001/XInclude" /> | 31 | xmlns:xi="http://www.w3.org/2001/XInclude" /> |
| 38 | </book> | 32 | </book> |
diff --git a/doc/book-enea-nfv-access-getting-started/doc/getting_started_nfv_access.xml b/doc/book-enea-nfv-access-getting-started/doc/getting_started_nfv_access.xml index 7a30f28..6d9e8c4 100644 --- a/doc/book-enea-nfv-access-getting-started/doc/getting_started_nfv_access.xml +++ b/doc/book-enea-nfv-access-getting-started/doc/getting_started_nfv_access.xml | |||
| @@ -238,7 +238,6 @@ of=/dev/sdb bs=4M conv=fsync</programlisting></para> | |||
| 238 | Platform using a bootable USB stick image</emphasis></para> | 238 | Platform using a bootable USB stick image</emphasis></para> |
| 239 | 239 | ||
| 240 | <orderedlist> | 240 | <orderedlist> |
| 241 | |||
| 242 | <listitem> | 241 | <listitem> |
| 243 | <para>Plug the USB stick into the reference uCPE device. Make sure | 242 | <para>Plug the USB stick into the reference uCPE device. Make sure |
| 244 | you are connected to the serial port.</para> | 243 | you are connected to the serial port.</para> |
| @@ -480,143 +479,6 @@ run</programlisting> | |||
| 480 | </section> | 479 | </section> |
| 481 | </section> | 480 | </section> |
| 482 | 481 | ||
| 483 | <section id="hugepage_reservation"> | ||
| 484 | <title>Hugepage Reservation Service</title> | ||
| 485 | |||
| 486 | <para>NFV Access implements an automatic hugepage allocation service that | ||
| 487 | is triggered at each startup. The service is skipped if hugepages have | ||
| 488 | been allocated in the kernel boot command line.</para> | ||
| 489 | |||
| 490 | <para>There are two strategies outlined for hugepage allocation:</para> | ||
| 491 | |||
| 492 | <itemizedlist> | ||
| 493 | <listitem> | ||
| 494 | <para>If a system has an amount of memory up to 8GB, the allocation | ||
| 495 | algorithm will reserve up to 30%, but no more than 2GB, for the OS and | ||
| 496 | the rest as 2MB hugepages.</para> | ||
| 497 | </listitem> | ||
| 498 | |||
| 499 | <listitem> | ||
| 500 | <para>If a system has an amount of memory that's higher than 8GB, the | ||
| 501 | allocation algorithm will reserve all but 2GB of memory as 1GB | ||
| 502 | hugepages, leaving the rest (2GB) to be used by the OS.</para> | ||
| 503 | </listitem> | ||
| 504 | </itemizedlist> | ||
| 505 | |||
| 506 | <note> | ||
| 507 | <para>This is a best effort reservation, after the kernel boot, so the | ||
| 508 | results may not be as described.</para> | ||
| 509 | </note> | ||
| 510 | |||
| 511 | <section id="hugepage_customizing_auto"> | ||
| 512 | <title>Customizing Automatic Hugepage Reservation</title> | ||
| 513 | |||
| 514 | <para>Configuration of Hugepage reservation is done in | ||
| 515 | <literal>/etc/enea-nfv-access/hugepages.cfg.</literal></para> | ||
| 516 | |||
| 517 | <para><emphasis role="bold">Parameters used by the automatic algorithm: | ||
| 518 | </emphasis></para> | ||
| 519 | |||
| 520 | <itemizedlist spacing="compact"> | ||
| 521 | <listitem> | ||
| 522 | <para><literal>hugepage_setup</literal>: Enables the automatic | ||
| 523 | configuraiton algorithm. It has only one value, | ||
| 524 | <literal>auto</literal>. For manual configuration comment or remove | ||
| 525 | the parameter. Use the other parameter descriptions as a | ||
| 526 | template/example.</para> | ||
| 527 | </listitem> | ||
| 528 | |||
| 529 | <listitem> | ||
| 530 | <para><literal>threshold_to_use_1g</literal>: Decides the threshold | ||
| 531 | which instructs the algorithm to use 1GB hugepages. If a system's | ||
| 532 | memory is higher than <literal>threshold_to_use_1g</literal>, then | ||
| 533 | the algorithm will use 1GB hugepages, otherwise it will use 2MB | ||
| 534 | hugepages.</para> | ||
| 535 | </listitem> | ||
| 536 | |||
| 537 | <listitem> | ||
| 538 | <para><literal>percent_os_alloc</literal>: Decides how much memory | ||
| 539 | to try to reserve for userspace applications. The algorithm will try | ||
| 540 | to reserve at least <literal>percent_os_alloc</literal> of the total | ||
| 541 | system memory to user space applications.</para> | ||
| 542 | </listitem> | ||
| 543 | |||
| 544 | <listitem> | ||
| 545 | <para><literal>maximum_os_alloc_mb</literal>: Maximum amount of | ||
| 546 | memory to allocate for userspace applications. If | ||
| 547 | <literal>percent_os_alloc</literal> of the total system memory | ||
| 548 | exceeds <literal>maximum_os_alloc_mb</literal> then the maximum | ||
| 549 | allocated memory for userspace applications is | ||
| 550 | <literal>maximum_os_alloc_mb</literal>.</para> | ||
| 551 | </listitem> | ||
| 552 | </itemizedlist> | ||
| 553 | |||
| 554 | <para><emphasis role="bold">Example of automatic Hugepage | ||
| 555 | Configuration:</emphasis></para> | ||
| 556 | |||
| 557 | <programlisting> hugepage_setup = auto | ||
| 558 | threshold_to_use_1g = 8192 | ||
| 559 | percent_os_alloc = 30 | ||
| 560 | maximum_os_alloc_mb = 2048</programlisting> | ||
| 561 | |||
| 562 | <para>The following possible allocations could result (based on total | ||
| 563 | system memory available):</para> | ||
| 564 | |||
| 565 | <itemizedlist> | ||
| 566 | <listitem> | ||
| 567 | <para>2GB of memory: approximately 30% will be allocated for the OS | ||
| 568 | and the rest will be allocated as 2MB hugepages.</para> | ||
| 569 | </listitem> | ||
| 570 | |||
| 571 | <listitem> | ||
| 572 | <para>4GB of memory: approximately 30% will be allocated for the OS | ||
| 573 | and the rest will be allocated as 2MB hugepages.</para> | ||
| 574 | </listitem> | ||
| 575 | |||
| 576 | <listitem> | ||
| 577 | <para>16GB of memory: approximately 2GB will be allocated for the OS | ||
| 578 | and the rest as 1GB hugepages.</para> | ||
| 579 | </listitem> | ||
| 580 | </itemizedlist> | ||
| 581 | |||
| 582 | <note> | ||
| 583 | <para>The memory allocated for the kernel and hugepages might vary | ||
| 584 | slightly depending on how much memory is available.</para> | ||
| 585 | </note> | ||
| 586 | </section> | ||
| 587 | |||
| 588 | <section id="hugepage_customizing_man"> | ||
| 589 | <title>Customizing Manual Hugepage Reservation</title> | ||
| 590 | |||
| 591 | <para>The automatic algorithm can be disabled and hugepages configured | ||
| 592 | manually. To do this, comment the line which defines | ||
| 593 | <literal>hugepage_setup</literal> as <literal>auto</literal> and | ||
| 594 | configure memory for each CPU socket in the following manner:</para> | ||
| 595 | |||
| 596 | <programlisting><NUMA node>.<hugepage size> = <number of pages> </programlisting> | ||
| 597 | |||
| 598 | <para>Where <literal><NUMA node></literal> refers to a node which | ||
| 599 | is part of the system's NUMA topology, <literal><hugepage | ||
| 600 | size></literal> decides what type of hugepages should be set and | ||
| 601 | <literal><number of hugepages></literal> is how many hugepages of | ||
| 602 | <literal><hugepage size></literal> should be allocated.</para> | ||
| 603 | |||
| 604 | <para>To list the available system nodes, run:</para> | ||
| 605 | |||
| 606 | <programlisting>ls -d /sys/devices/system/node/node* </programlisting> | ||
| 607 | |||
| 608 | <para>To list available hugepage sizes, per node, run:</para> | ||
| 609 | |||
| 610 | <programlisting>ls -d /sys/devices/system/node/node*/hugepages/hugepages-*</programlisting> | ||
| 611 | |||
| 612 | <para>Example of Manual Hugepage Configuration, to configure the sytem | ||
| 613 | to allocate e.g. 3 1GB hugepages and 512 2MB hugepages on node:</para> | ||
| 614 | |||
| 615 | <programlisting>node0.2048kB = 512 | ||
| 616 | node0.1048576kB = 3 </programlisting> | ||
| 617 | </section> | ||
| 618 | </section> | ||
| 619 | |||
| 620 | <section condition="hidden" id="release-content"> | 482 | <section condition="hidden" id="release-content"> |
| 621 | <title>NFV Access Release content</title> | 483 | <title>NFV Access Release content</title> |
| 622 | 484 | ||
diff --git a/doc/book-enea-nfv-access-getting-started/doc/secure_boot.xml b/doc/book-enea-nfv-access-getting-started/doc/secure_boot.xml deleted file mode 100644 index 7b07086..0000000 --- a/doc/book-enea-nfv-access-getting-started/doc/secure_boot.xml +++ /dev/null | |||
| @@ -1,174 +0,0 @@ | |||
| 1 | <?xml version="1.0" encoding="ISO-8859-1"?> | ||
| 2 | <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" | ||
| 3 | "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"> | ||
| 4 | <chapter id="secure_boot"> | ||
| 5 | <title>UEFI Secure Boot</title> | ||
| 6 | |||
| 7 | <para>This chapter contains information needed in order to enable the Secure | ||
| 8 | Boot. Secure Boot is an optional feature in the Enea NFV Access Run Time | ||
| 9 | Platform. If you do not intend to use this feature, skip to the next | ||
| 10 | chapter.</para> | ||
| 11 | |||
| 12 | <section id="intro"> | ||
| 13 | <title>Introduction</title> | ||
| 14 | |||
| 15 | <para>Secure Boot was designed to enhance security in the pre-boot | ||
| 16 | environment. It prevents malicious software and applications from being | ||
| 17 | loaded during the system start-up process.</para> | ||
| 18 | |||
| 19 | <para>The basic principle of UEFI Secure Boot is that it requires all | ||
| 20 | artifacts involved in the boot process (bootloaders, kernel, initramfs) to | ||
| 21 | be signed using a set of private keys. On a Secure Boot enabled uCPE | ||
| 22 | device these artifacts are checked against a set of public certificates | ||
| 23 | which correspond to these keys. If there are any mismatches the boot | ||
| 24 | process will fail at various stages.</para> | ||
| 25 | |||
| 26 | <para>For more information about Secure Boot please refer to <ulink | ||
| 27 | url="https://www.uefi.org/sites/default/files/resources/UEFI_Secure_Boot_in_Modern_Computer_Security_Solutions_2013.pdf">Secure | ||
| 28 | Boot in Modern Computer Security Solutions</ulink>.</para> | ||
| 29 | </section> | ||
| 30 | |||
| 31 | <section id="secure_boot_keys"> | ||
| 32 | <title>Enabling UEFI Secure Boot</title> | ||
| 33 | |||
| 34 | <para>All Enea NFV Access image artifacts delivered with the release are | ||
| 35 | signed using the Enea UEFI Secure boot private keys. These artifacts can | ||
| 36 | be used on a uCPE device that doesn't have Secure Boot enabled. To use the | ||
| 37 | Secure Boot feature, however, the user must make the Enea UEFI Secure Boot | ||
| 38 | public certificates available on the uCPE device before enabling the | ||
| 39 | feature in BIOS. This process is called "Provisioning".</para> | ||
| 40 | |||
| 41 | <section id="manual_key_provisioning"> | ||
| 42 | <title>Provisioning the Enea UEFI Secure Boot Certificates</title> | ||
| 43 | |||
| 44 | <para>The UEFI firmware is normally shipped with factory preloaded | ||
| 45 | certificates. If these do not already include Certificates from Enea, | ||
| 46 | they will need to be appended or replaced with the Enea | ||
| 47 | Certificates.</para> | ||
| 48 | |||
| 49 | <para><emphasis role="bold">UEFI Secure Boot certificates provided with | ||
| 50 | your release:</emphasis></para> | ||
| 51 | |||
| 52 | <itemizedlist> | ||
| 53 | <listitem> | ||
| 54 | <para><literal>Platform Key (PK)</literal>: this key protects the | ||
| 55 | next key from uncontrolled modification. Once this key is enrolled, | ||
| 56 | Secure Boot enters into <literal>User Mode</literal>. The drivers | ||
| 57 | and loaders signed with the <literal>Platform Key</literal> can then | ||
| 58 | be loaded by the firmware.</para> | ||
| 59 | </listitem> | ||
| 60 | |||
| 61 | <listitem> | ||
| 62 | <para><literal>Key Exchange key (KEK)</literal>: this key allows | ||
| 63 | other certificates which have a connection to the private portion of | ||
| 64 | the <literal>Platform Key</literal> to be used.</para> | ||
| 65 | </listitem> | ||
| 66 | |||
| 67 | <listitem> | ||
| 68 | <para><literal>Authorized Signature (DB)</literal>: contains the | ||
| 69 | <literal>trusted keys</literal> used for authenticating any drivers | ||
| 70 | or applications executed in the UEFI environment.</para> | ||
| 71 | </listitem> | ||
| 72 | </itemizedlist> | ||
| 73 | |||
| 74 | <para>The Enea UEFI Secure Boot certificates are installed together with | ||
| 75 | the Enea NFV Access Run Time Platform onto the hard drive. They can be | ||
| 76 | found on the EFI partition (usually the first partition of the drive) | ||
| 77 | under <literal>/uefi_sb_keys</literal>.</para> | ||
| 78 | |||
| 79 | <para><emphasis role="bold">How to manually enroll Enea | ||
| 80 | Certificates</emphasis></para> | ||
| 81 | |||
| 82 | <orderedlist> | ||
| 83 | <listitem> | ||
| 84 | <para>Reboot the uCPE device and press <literal>DEL</literal> to | ||
| 85 | enter into BIOS.</para> | ||
| 86 | </listitem> | ||
| 87 | |||
| 88 | <listitem> | ||
| 89 | <para>Select <literal>Secure Boot Mode</literal> -> | ||
| 90 | <literal>Custom</literal>.</para> | ||
| 91 | </listitem> | ||
| 92 | |||
| 93 | <listitem> | ||
| 94 | <para>Select <literal>Key Management</literal> from the | ||
| 95 | <literal>Security</literal> menu.</para> | ||
| 96 | </listitem> | ||
| 97 | |||
| 98 | <listitem> | ||
| 99 | <para>Enroll the <literal>Platform Key (PK)</literal>: <itemizedlist> | ||
| 100 | <listitem> | ||
| 101 | Select <literal>Set New Key</literal> -> <literal>File from a file system</literal>. | ||
| 102 | </listitem> | ||
| 103 | |||
| 104 | <listitem> | ||
| 105 | Specify the folder: | ||
| 106 | <literal><user-keys>/<uefi_sb_keys>/PK.esl</literal>.</listitem> | ||
| 107 | |||
| 108 | <listitem> | ||
| 109 | Select <literal>Public Key Certificate</literal> and then <literal>Ok</literal>. | ||
| 110 | </listitem> | ||
| 111 | </itemizedlist></para> | ||
| 112 | </listitem> | ||
| 113 | |||
| 114 | <listitem> | ||
| 115 | <para>Enroll the <literal>Key Exchange key (KEK)</literal>: | ||
| 116 | <itemizedlist> | ||
| 117 | <listitem> | ||
| 118 | Select <literal>Set New Key</literal> -> <literal>File from a file system</literal>. | ||
| 119 | </listitem> | ||
| 120 | |||
| 121 | <listitem> | ||
| 122 | Specify the folder: | ||
| 123 | <literal><user-keys>/<uefi_sb_keys>/KEK.esl</literal>. | ||
| 124 | </listitem> | ||
| 125 | |||
| 126 | <listitem> | ||
| 127 | Select <literal>Public Key Certificate</literal> and then <literal>Ok</literal>. | ||
| 128 | </listitem> | ||
| 129 | </itemizedlist> | ||
| 130 | </para> | ||
| 131 | </listitem> | ||
| 132 | |||
| 133 | <listitem> | ||
| 134 | <para>Enroll the <literal>Authorized Signature (DB)</literal>: | ||
| 135 | <itemizedlist> | ||
| 136 | <listitem> | ||
| 137 | Select <literal>Set New Key</literal> -> <literal>File from a file system</literal>. | ||
| 138 | </listitem> | ||
| 139 | |||
| 140 | <listitem> | ||
| 141 | Specify the folder: | ||
| 142 | <literal><user-keys>/<uefi_sb_keys>/DB.esl</literal>. . | ||
| 143 | </listitem> | ||
| 144 | |||
| 145 | <listitem> | ||
| 146 | Select <literal>Public Key Certificate</literal> and then <literal>Ok</literal>. | ||
| 147 | </listitem> | ||
| 148 | </itemizedlist></para> | ||
| 149 | </listitem> | ||
| 150 | </orderedlist> | ||
| 151 | |||
| 152 | <note> | ||
| 153 | <para>Details on how to provision the certificates may vary with | ||
| 154 | different versions of UEFI firmware.</para> | ||
| 155 | </note> | ||
| 156 | </section> | ||
| 157 | |||
| 158 | <section id="enable_secure_boot"> | ||
| 159 | <title>Turning on Secure Boot in BIOS</title> | ||
| 160 | |||
| 161 | <para>Once the certificates are provisioned we can enable the Secure Boot feature:</para> | ||
| 162 | |||
| 163 | <orderedlist> | ||
| 164 | <listitem> | ||
| 165 | <para>Select <literal>Security option</literal> from the top menu.</para> | ||
| 166 | </listitem> | ||
| 167 | |||
| 168 | <listitem> | ||
| 169 | <para>Set the <literal>Boot Menu</literal> -> <literal>Enabled.</literal></para> | ||
| 170 | </listitem> | ||
| 171 | </orderedlist> | ||
| 172 | </section> | ||
| 173 | </section> | ||
| 174 | </chapter> \ No newline at end of file | ||
