From f3e17d0a45c8f060561c241bd4e042006d44335d Mon Sep 17 00:00:00 2001 From: Bin Hu Date: Mon, 21 Dec 2015 19:19:10 -0800 Subject: JIRA: IPVSIX-29 Change-Id: I147d4ac610b74a0d8f15cfe0cf7b5113e7cdfc28 Signed-off-by: Bin Hu --- .../0-ipv6-configguide-prep-infra.rst | 43 ++++++++++ .../1-ipv6-configguide-odl-setup.rst | 94 ++++++++++++++++++++++ .../2-ipv6-configguide-os-controller.rst | 73 +++++++++++++++++ .../3-ipv6-configguide-os-compute.rst | 65 +++++++++++++++ docs/setupservicevm/index.rst | 22 ++++- 5 files changed, 293 insertions(+), 4 deletions(-) create mode 100644 docs/setupservicevm/0-ipv6-configguide-prep-infra.rst create mode 100644 docs/setupservicevm/1-ipv6-configguide-odl-setup.rst create mode 100644 docs/setupservicevm/2-ipv6-configguide-os-controller.rst create mode 100644 docs/setupservicevm/3-ipv6-configguide-os-compute.rst diff --git a/docs/setupservicevm/0-ipv6-configguide-prep-infra.rst b/docs/setupservicevm/0-ipv6-configguide-prep-infra.rst new file mode 100644 index 0000000..695dbca --- /dev/null +++ b/docs/setupservicevm/0-ipv6-configguide-prep-infra.rst @@ -0,0 +1,43 @@ +======================== +Preparing Infrastructure +======================== + +******************** +Architectural Design +******************** + +The architectural design of using a service VM as an IPv6 vRouter is +shown as follows :numref:`figure1`: + +.. figure:: images/ipv6-architecture.png + :name: figure1 + :width: 100% + + Architectural Design of Using a VM as an IPv6 vRouter + +******************** +Infrastructure Setup +******************** + +In order to set up the service VM as an IPv6 vRouter, we need to +prepare 3 hosts, each of which has minimum 8GB RAM and 40GB storage. One host is used as OpenStack Controller +Node. The second host is used as Open Daylight Controller Node. And the third one is used as +OpenStack Compute Node. + +For exemplary purpose, we give them hostnames ``opnfv-odl- +controller``, ``opnfv-os-controller``, and ``opnfv-os-compute`` +respectively. + +The underlay network topology of those 3 hosts are shown as follows :numref:`figure2`: + +.. figure:: images/ipv6-topology.png + :name: figure2 + :width: 100% + + Underlay Network Topology + +**Please note that the IP address shown in ``:numref:`figure2``` +are for exemplary purpose. You need to configure your public IP +address connecting to Internet according to your actual network +infrastructure. And you need to make sure the private IP address are +not conflicting with other subnets. diff --git a/docs/setupservicevm/1-ipv6-configguide-odl-setup.rst b/docs/setupservicevm/1-ipv6-configguide-odl-setup.rst new file mode 100644 index 0000000..27101bb --- /dev/null +++ b/docs/setupservicevm/1-ipv6-configguide-odl-setup.rst @@ -0,0 +1,94 @@ +=================================== +Setting Up Open Daylight Controller +=================================== + +For exemplary purpose, we assume: +* The hostname of Open Daylight Controller Node is ``opnfv-odl- +controller`` +* CentOS 7 is installed +* We use ``opnfv`` as username to login. +* Java 7 is installed in directory ``=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.85-2.6.1.2.el7_1.x86_64/`` + +**ODL-1**: Login to Open Daylight Controller Node with username ``opnfv``. + +**ODL-2**: Download the ODL Lithium distribution from +``http://www.opendaylight.org/software/downloads`` + + ``wget https://nexus.opendaylight.org/content/groups/public/org/opendaylight/integration/distribution-karaf/0.3.3-Lithium-SR3/distribution-karaf-0.3.3-Lithium-SR3.tar.gz`` + +**ODL-3**: Extract the tar file + + ``tar -zxvf distribution-karaf-0.3.3-Lithium-SR3.tar.gz`` + +**ODL-4**: Install Java7 + + ``sudo yum install -y java-1.7.0-openjdk.x86_64`` + +**ODL-5 (OPTIONAL)**: We are using ``iptables`` instead of +``firewalld`` but this is optional for the OpenDaylight Controller +Node. The objective is to allow all connections on the internal +private network (ens160). The same objective can be achieved using +firewalld as well. **If you intend to use firewalld, please skip this step and directly go to next step**: + +| ``sudo systemctl stop firewalld.service`` +| ``sudo yum remove -y firewalld`` +| ``sudo yum install -y iptables-services`` +| ``sudo touch /etc/sysconfig/iptables`` +| ``sudo systemctl enable iptables.service`` +| ``sudo systemctl start iptables.service `` +| ``sudo iptables -I INPUT 1 -i ens160 -j ACCEPT`` +| ``sudo iptables -I INPUT -m state --state NEW -p tcp --dport 8181 -j ACCEPT # For ODL DLUX UI`` +| ``sudo iptables-save > /etc/sysconfig/iptables`` + +**ODL-6**: Open a screen session. + + ``screen -S ODL_Controller`` + +**ODL-7**: In the new screen session, change directory to where Open +Daylight is installed. Here we use ``odl`` directory name and +``Lithium SR3`` installation as an example. + + ``cd ~/odl/distribution-karaf-0.3.3-Lithium-SR3/bin`` + +**ODL-8**: Set the JAVA environment variables. + +| ``export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.85-2.6.1.2.el7_1.x86_64/jre`` +| ``export PATH=$PATH:/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.85-2.6.1.2.el7_1.x86_64/jre/bin`` + +**ODL-9**: Run the ``karaf`` shell. + + ``./karaf`` + +**ODL-10**: You are now in the Karaf shell of Open Daylight. To explore the list of available features you can execute +``feature:list``. In order to enable Open Daylight with OpenStack, you have to load the ``odl-ovsdb-openstack`` +feature. + + ``opendaylight-user@opnfv>feature:install odl-ovsdb-openstack`` + +**ODL-11**: Verify that OVSDB feature is installed successfully. + +| ``opendaylight-user@opnfv>feature:list -i | grep ovsdb`` +| odl-ovsdb-openstack | 1.1.1-Lithium-SR1 | x | ovsdb-1.1.1-Lithium-SR1 | OpenDaylight :: OVSDB :: OpenStack Network Virtual +| odl-ovsdb-southbound-api | 1.1.1-Lithium-SR1 | x | odl-ovsdb-southbound-1.1.1-Lithium-SR1 | OpenDaylight :: southbound :: api +| odl-ovsdb-southbound-impl | 1.1.1-Lithium-SR1 | x | odl-ovsdb-southbound-1.1.1-Lithium-SR1 | OpenDaylight :: southbound :: impl +| odl-ovsdb-southbound-impl-rest|1.1.1-Lithium-SR1 | x | odl-ovsdb-southbound-1.1.1-Lithium-SR1| OpenDaylight :: southbound :: impl :: REST +| odl-ovsdb-southbound-impl-ui | 1.1.1-Lithium-SR1| x | odl-ovsdb-southbound-1.1.1-Lithium-SR1| OpenDaylight :: southbound :: impl :: UI +| ``opendaylight-user@opnfv>`` + +**ODL-12**: To view the logs, you can use the following commands (or alternately the file data/log/karaf.log). + +| ``opendaylight-user@opnfv>log:display`` +| ``opendaylight-user@opnfv>log:tail`` + +**ODL-13**: To enable ODL DLUX UI, install the following features. +Then you can navigate to +``http://:8181/index.html`` for DLUX +UI. The default user-name and password is admin/admin. + + ``opendaylight-user@opnfv>feature:install odl-restconf odl-l2switch-switch odl-mdsal-apidocs odl-dlux-core`` + +**ODL-14**: To exit out of screen session, please use the command ``CTRL+a`` followed by ``d`` + +**Note: Do not kill the screen session, it will terminate the ODL controller.** + +At this moment, Open Daylight has been started successfully. diff --git a/docs/setupservicevm/2-ipv6-configguide-os-controller.rst b/docs/setupservicevm/2-ipv6-configguide-os-controller.rst new file mode 100644 index 0000000..debe65d --- /dev/null +++ b/docs/setupservicevm/2-ipv6-configguide-os-controller.rst @@ -0,0 +1,73 @@ +=============================== +Setting Up OpenStack Controller +=============================== + +For exemplary purpose, we assume: +* The hostname of OpenStack Controller Node is ``opnfv-os- +controller`` +* Ubuntu 14.04 is installed +* We use ``opnfv`` as username to login. +* We use ``devstack`` to install OpenStack Kilo + +**OS-N-1**: Login to OpenStack Controller Node with username ``opnfv`` + +**OS-N-2**: Update the packages and install git + +| ``sudo apt-get update -y`` +| ``sudo apt-get install -y git`` + +**OS-N-3**: Download devstack and switch to stable/kilo branch + + ``git clone https://github.com/openstack-dev/devstack.git -b stable/kilo`` + +**OS-N-4**: Start a new terminal, and change directory to where OpenStack is installed. + + ``cd ~/devstack`` + +**OS-N-5**: Create a ``local.conf`` file with the contents from the following URL. + + ``http://fpaste.org/276949/39476214/`` + +**Note 1**: you need to change the IP address of ``ODL_MGR_IP`` to +point to your actual IP address of Open Daylight Controller. + +**Note 2**: You may have to change the value of +``ODL_PROVIDER_MAPPINGS`` and ``PUBLIC_INTERFACE`` to match your +actual network interfaces. + +**OS-N-6**: Initiate Openstack setup by invoking ``stack.sh`` + + ``./stack.sh`` + +**OS-N-7**: If the setup is successful you would see the following logs on the console. Please note +that the IP addresses are all for the purpose of example. Your IP addresses will match the ones +assigned during the installation of OPNFV B Release base platform in prior chapters. + +| ``This is your host ip: `` +| ``Horizon is now available at http:///`` +| ``Keystone is serving at http://:5000/`` +| ``The default users are: admin and demo`` +| ``The password: password`` + +**OS-N-8**: Assuming that all goes well, you can set ``OFFLINE=True`` and ``RECLONE=no`` in ``local.conf`` to lock the +codebase. Devstack uses these configuration parameters to determine if it has to run with the existing codebase or +update to the latest copy. + +**OS-N-9**: Source the credentials. + + ``opnfv@opnfv-os-controller:~/devstack$ source openrc admin demo`` + +**OS-N-10**: Verify some commands to check if setup is working fine. + +| ``opnfv@opnfv-os-controller:~/devstack$ nova flavor-list`` +| +----+-----------+-----------+------+-----------+------+-------+-------------+-----------+ +| | ID | Name | Memory_MB | Disk | Ephemeral | Swap | VCPUs | RXTX_Factor | Is_Public | +| +----+-----------+-----------+------+-----------+------+-------+-------------+-----------+ +| | 1 | m1.tiny | 512 | 1 | 0 | | 1 | 1.0 | True | +| | 2 | m1.small | 2048 | 20 | 0 | | 1 | 1.0 | True | +| | 3 | m1.medium | 4096 | 40 | 0 | | 2 | 1.0 | True | +| | 4 | m1.large | 8192 | 80 | 0 | | 4 | 1.0 | True | +| | 5 | m1.xlarge | 16384 | 160 | 0 | | 8 | 1.0 | True | +| +----+-----------+-----------+------+-----------+------+-------+-------------+-----------+ + +Now you can start the Compute node setup. diff --git a/docs/setupservicevm/3-ipv6-configguide-os-compute.rst b/docs/setupservicevm/3-ipv6-configguide-os-compute.rst new file mode 100644 index 0000000..dd081ae --- /dev/null +++ b/docs/setupservicevm/3-ipv6-configguide-os-compute.rst @@ -0,0 +1,65 @@ +================================= +Setting Up OpenStack Compute Node +================================= + +For exemplary purpose, we assume: +* The hostname of OpenStack Compute Node is ``opnfv-os-compute`` +* Ubuntu 14.04 is installed +* We use ``opnfv`` as username to login. +* We use ``devstack`` to install OpenStack Kilo + +**OS-M-1**: Login to OpenStack Compute Node with username ``opnfv`` + +**OS-M-2**: Update the packages and install git + +| ``sudo apt-get update -y`` +| ``sudo apt-get install -y git`` + +**OS-M-3**: Download devstack and switch to stable/kilo branch + + ``git clone https://github.com/openstack-dev/devstack.git -b stable/kilo`` + +**OS-M-4**: Start a new terminal, and change directory to where OpenStack is installed. + + ``cd ~/devstack`` + +**OS-M-5**: Create a ``local.conf`` file with the contents from the following URL. + + ``http://fpaste.org/276958/44395955/`` + +**Note 1**: you need to change the IP address of ``SERVICE_HOST`` to +point to your actual IP address of OpenStack Controller. + +**Note 2**: you need to change the IP address of ``ODL_MGR_IP`` to +point to your actual IP address of Open Daylight Controller. + +**Note 3**: You may have to change the value of +``ODL_PROVIDER_MAPPINGS`` and ``PUBLIC_INTERFACE`` to match your +actual network interface. + +**OS-M-6**: Initiate Openstack setup by invoking ``stack.sh`` + + ``./stack.sh`` + +**OS-M-7**: Assuming that all goes well, you can set ``OFFLINE=True`` and ``RECLONE=no`` in ``local.conf`` to lock the +codebase. Devstack uses these configuration parameters to determine if it has to run with the existing codebase or +update to the latest copy. + +**OS-M-8**: Source the credentials. + + ``opnfv@opnfv-os-controller:~/devstack$ source openrc admin demo`` + +**OS-M-9**: Verify some commands to check if setup is working fine. + +| ``opnfv@opnfv-os-controller:~/devstack$ nova flavor-list`` +| +----+-----------+-----------+------+-----------+------+-------+-------------+-----------+ +| | ID | Name | Memory_MB | Disk | Ephemeral | Swap | VCPUs | RXTX_Factor | Is_Public | +| +----+-----------+-----------+------+-----------+------+-------+-------------+-----------+ +| | 1 | m1.tiny | 512 | 1 | 0 | | 1 | 1.0 | True | +| | 2 | m1.small | 2048 | 20 | 0 | | 1 | 1.0 | True | +| | 3 | m1.medium | 4096 | 40 | 0 | | 2 | 1.0 | True | +| | 4 | m1.large | 8192 | 80 | 0 | | 4 | 1.0 | True | +| | 5 | m1.xlarge | 16384 | 160 | 0 | | 8 | 1.0 | True | +| +----+-----------+-----------+------+-----------+------+-------+-------------+-----------+ + +Now you can start to set up the service VM as an IPv6 vRouter in the environment of OpenStack and Open Daylight. diff --git a/docs/setupservicevm/index.rst b/docs/setupservicevm/index.rst index 90d733c..ea6392e 100644 --- a/docs/setupservicevm/index.rst +++ b/docs/setupservicevm/index.rst @@ -1,9 +1,23 @@ -================= -Table of Contents -================= +========================================== +Setting Up a Service VM as an IPv6 vRouter +========================================== + +:Project: IPv6, http://wiki.opnfv.org/ipv6_opnfv_project +:Editors: Bin Hu (AT&T) +:Authors: Bin Hu (AT&T), Sridhar Gaddam (RedHat) + +:Abstract: This document provides the users with installation guidelines to create a Service VM as + an IPv6 vRouter in OPNFV environment, i.e. integrated OpenStack with Open Daylight environment. + The complete set of instructions walk you through every step of preparing the infrastructure, + setting up Open Daylight and OpenStack, creating service VM and IPv6 subnet, and testing and + validating the setup. .. toctree:: :numbered: :maxdepth: 4 - ipv6-configguide.rst + 0-ipv6-configguide-prep-infra.rst + 1-ipv6-configguide-odl-setup.rst + 2-ipv6-configguide-os-controller.rst + 3-ipv6-configguide-os-compute.rst + -- cgit 1.2.3-korg