<?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % BOOK_ENTITIES SYSTEM "cloudstack.ent">
%BOOK_ENTITIES;
]>
<!-- Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at
    http://www.apache.org/licenses/LICENSE-2.0
    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.
-->
<section id="add-vpc">
  <title>Adding a Virtual Private Cloud</title>
  <para>When creating the VPC, you simply provide the zone and a set of IP addresses for the VPC
    network address space. You specify this set of addresses in the form of a Classless Inter-Domain
    Routing (CIDR) block.</para>
  <orderedlist>
    <listitem>
      <para>Log in to the &PRODUCT; UI as an administrator or end user. </para>
    </listitem>
    <listitem>
      <para>In the left navigation, choose Network.</para>
    </listitem>
    <listitem>
      <para>In the Select view, select VPC.</para>
    </listitem>
    <listitem>
      <para>Click Add VPC. The Add VPC page is displayed as follows:</para>
      <mediaobject>
        <imageobject>
          <imagedata fileref="./images/add-vpc.png"/>
        </imageobject>
        <textobject>
          <phrase>add-vpc.png: adding a vpc.</phrase>
        </textobject>
      </mediaobject>
      <para>Provide the following information:</para>
      <itemizedlist>
        <listitem>
          <para><emphasis role="bold">Name</emphasis>: A short name for the VPC that you are
            creating.</para>
        </listitem>
        <listitem>
          <para><emphasis role="bold">Description</emphasis>: A brief description of the VPC.</para>
        </listitem>
        <listitem>
          <para><emphasis role="bold">Zone</emphasis>: Choose the zone where you want the VPC to be
            available.</para>
        </listitem>
        <listitem>
          <para><emphasis role="bold">Super CIDR for Guest Networks</emphasis>: Defines the CIDR
            range for all the tiers (guest networks) within a VPC. When you create a tier, ensure
            that its CIDR is within the Super CIDR value you enter. The CIDR must be RFC1918
            compliant.</para>
        </listitem>
        <listitem>
          <para><emphasis role="bold">DNS domain for Guest Networks</emphasis>: If you want to
            assign a special domain name, specify the DNS suffix. This parameter is applied to all
            the tiers within the VPC. That implies, all the tiers you create in the VPC belong to
            the same DNS domain. If the parameter is not specified, a DNS domain name is generated
            automatically. </para>
        </listitem>
      </itemizedlist>
    </listitem>
  </orderedlist>
</section>
