JIRA:IPVSIX-29 23/5323/1
authorBin Hu <bh526r@att.com>
Mon, 28 Dec 2015 22:08:44 +0000 (14:08 -0800)
committerBin Hu <bh526r@att.com>
Mon, 28 Dec 2015 22:08:44 +0000 (14:08 -0800)
Change-Id: Ie9d1b6d1f4dc71af75b4e0d7859133f7e38846ed
Signed-off-by: Bin Hu <bh526r@att.com>
images/ipv6-poc-1.png [deleted file]
requirements/Requirement-Analysis-Kilo.txt [deleted file]
requirements/Requirement-Analysis.txt [deleted file]
vrouter/Service_VM_as_vRouter.rst [deleted file]
vrouter/Service_VM_as_vRouter.txt [deleted file]
vrouter/setup_ipv6_vrouter.rst [deleted file]
vrouter/setup_ipv6_vrouter.txt [deleted file]
vrouter/setup_service_vm.rst [deleted file]
vrouter/setup_service_vm.txt [deleted file]

diff --git a/images/ipv6-poc-1.png b/images/ipv6-poc-1.png
deleted file mode 100644 (file)
index f4fdcf4..0000000
Binary files a/images/ipv6-poc-1.png and /dev/null differ
diff --git a/requirements/Requirement-Analysis-Kilo.txt b/requirements/Requirement-Analysis-Kilo.txt
deleted file mode 100644 (file)
index d6e5f45..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-===== Top Down Use Case and Gap Analysis =====\r
-\r
-Here are some top down use cases of VIM-agnostic IPv6 functionality, including\r
-infrastructure layer and VNF (VM) layer, and its gap analysis with Neutron\r
-in Juno release:\r
-\r
-(1) Use Case / Requirement 1: All topologies work in a multi-tenant environment\r
-Supported in Neutron, Kilo Release: Yes\r
-Notes: The IPv6 design is following the Neutron tenant networks model; dnsmasq\r
-is being used inside DHCP network namespaces, while radvd is being used inside\r
-Neutron routers namespaces to provide full isolation between tenants.\r
-Tenant isolation can be based on VLANs, GRE, or VXLAN encapsulation. In case of\r
-overlays, the transport network (and VTEPs) must be IPv4 based as of today.\r
-\r
-(2) Use Case / Requirement 2: IPv6 VM to VM only\r
-Supported in Neutron, Kilo Release: Yes\r
-Notes: It is possible to assign IPv6-only addresses to VMs. Both switching\r
-(within VMs on the same tenant network) as well as east/west routing (between\r
-different networks of the same tenant) are supported. \r
-\r
-(3) Use Case / Requirement 3: IPv6 external L2 VLAN directly attached to a VM\r
-Supported in Neutron, Kilo Release: Yes\r
-Notes: IPv6 provider network model; RA messages from upstream (external) router\r
-are forwarded into the VMs.\r
-\r
-(4) Use Case / Requirement 4: IPv6 subnet routed via L3 agent to an external\r
-IPv6 network\r
-(a) Both VLAN and overlay (e.g. GRE, VXLAN) subnet attached to VMs;\r
-(b) Must be able to support multiple L3 agents for a given external network to\r
-support scaling (neutron scheduler to assign vRouters to the L3 agents)\r
-Supported in Neutron, Kilo Release: (a) Yes (b) Yes\r
-Notes: Configuration is enhanced in Kilo to allow easier setup of the upstream\r
-gateway, without the user forced to create an IPv6 subnet for the external network.\r
-\r
-(5) Use Case / Requirement 5: Ability for a NIC to support both IPv4 and IPv6\r
-(dual stack) address;\r
-(a) VM with a single interface associated with a network, which is then\r
-associated with two subnets.\r
-(b) VM with two different interfaces associated with two different networks\r
-and two different subnets.\r
-Supported in Neutron, Kilo Release: (a) Yes (b) Yes\r
-Notes: Dual-stack is supported in Neutron with the addition of "Multiple IPv6\r
-Prefixes" Blueprint\r
-(https://blueprints.launchpad.net/neutron/+spec/multiple-ipv6-prefixes)\r
-\r
-(6) Use Case / Requirement 6: Support IPv6 Address assignment modes.\r
-(a) SLAAC\r
-(b) DHCPv6 Stateless\r
-(c) DHCPv6 Stateful \r
-Supported in Neutron, Kilo Release: (a) Yes (b) Yes (c) Yes\r
-\r
-(7) Use Case / Requirement 7: Ability to create a port on an IPv6 DHCPv6\r
-Stateful subnet and assign a specific IPv6 address to the port and have it\r
-taken out of the DHCP address pool. \r
-Supported in Neutron, Kilo Release: Yes\r
-\r
-(8) Use Case / Requirement 8: Ability to create a port with fixed_ip for a\r
-SLAAC/DHCPv6-Stateless Subnet. \r
-Supported in Neutron, Kilo Release: No\r
-Notes: The following patch disables this operation:\r
-https://review.openstack.org/#/c/129144/\r
-\r
-(9) Use Case / Requirement 9: Support for private IPv6 to external IPv6\r
-floating IP; Ability to specify floating IPs via Neutron API (REST and CLI)\r
-as well as via Horizon, including combination of IPv6/IPv4 and IPv4/IPv6\r
-floating IPs if implemented. \r
-Supported in Neutron, Kilo Release: Rejected\r
-Notes: Blueprint proposed in upstream and got rejected. General expectation is\r
-to avoid NAT with IPv6 by assigning GUA to tenant VMs. See\r
-https://review.openstack.org/#/c/139731/ for discussion\r
-\r
-(10) Use Case / Requirement 10: Provide IPv6/IPv4 feature parity in support for\r
-pass-through capabilities (e.g., SR-IOV). \r
-Supported in Neutron, Kilo Release: Roadmap\r
-Notes: The L3 configuration should be transparent for the SR-IOV implementation.\r
-SR-IOV networking support introduced in Juno based on the sriovnicswitch ML2\r
-driver is expected to work with IPv4 and IPv6 enabled VMs.\r
-\r
-(11) Use Case / Requirement 11: Additional IPv6 extensions, for example: IPSEC,\r
-IPv6 Anycast, Multicast\r
-Supported in Neutron, Kilo Release: No\r
-Notes: It doesn't appear to be considered yet (lack of clear requirements)\r
-\r
-(12) Use Case / Requirement 12: VM access to the meta-data server to obtain\r
-user data, SSH keys, etc. using cloud-init with IPv6 only interfaces. \r
-Supported in Neutron, Kilo Release: No\r
-Notes: This is currently not supported. Config-drive or dual-stack IPv4/IPv6\r
-can be used as a workaround (so that the IPv4 network is used to obtain\r
-connectivity with the metadata service). See email discussion thread\r
-(http://openstack.10931.n7.nabble.com/Neutron-cloud-init-IPv6-support-td45386.html)\r
-\r
-(13) Use Case / Requirement 13: Full support for IPv6 matching (i.e. IPv6,\r
-ICMPv6, TCP, UDP) in security groups. Ability to control and manage all IPv6\r
-security group capabilities via Neutron/Nova API (REST and CLI) as well as via\r
-Horizon.\r
-Supported in Neutron, Kilo Release: Yes\r
-\r
-(14) Use Case / Requirement 14: During network/subnet/router create, there\r
-should be an option to allow user to specify the type of address management\r
-they would like. This includes all options including those low priority if\r
-implemented (e.g., toggle on/off router and address prefix advertisements);\r
-It must be supported via Neutron API (REST and CLI) as well as via Horizon.\r
-Supported in Neutron, Kilo Release: Yes\r
-Notes: Two new Subnet attributes were introduced to control IPv6 address\r
-assignment options:\r
-(a) "ipv6-ra-mode" - to determine who sends Router Advertisements, and\r
-(b) "ipv6-address-mode" - to determine how VM obtains IPv6 address, default\r
-gateway, and/or optional information.\r
-\r
-(15) Use Case / Requirement 15: Security groups anti-spoofing: Prevent VM from\r
-using a source IPv6/MAC address which is not assigned to the VM.\r
-Supported in Neutron, Kilo Release: Yes\r
-\r
-(16) Use Case / Requirement 16: Protect tenant and provider network from rough RAs\r
-Supported in Neutron, Kilo Release: Yes\r
-Notes: When using a tenant network, Neutron is going to automatically handle the\r
-filter rules to allow connectivity of RAs to the VMs only from the Neutron\r
-router port; with provider networks, users are required to specify the LLA of\r
-the upstream router during the subnet creation, or otherwise manually edit the\r
-security-groups rules to allow incoming traffic from this specific address.\r
-\r
-(17) Use Case / Requirement 17: Support the ability to assign multiple IPv6\r
-addresses to an interface; both for Neutron router interfaces and VM interfaces.\r
-Supported in Neutron, Kilo Release: Yes\r
-\r
-(18) Use Case / Requirement 18: Ability for a VM to support a mix of multiple\r
-IPv4 and IPv6 networks, including multiples of the same type.\r
-Supported in Neutron, Kilo Release: Yes\r
-\r
-(19) Use Case / Requirement 19: Support for IPv6 Prefix Delegation.\r
-Supported in Neutron, Kilo Release: Roadmap\r
-Notes: Planned for Liberty\r
-\r
-(20) Use Case / Requirement 20: Distributed Virtual Routing (DVR) support for IPv6\r
-Supported in Neutron, Kilo Release: No\r
-Notes: Blueprint proposed upstream, pending discussion. \r
-\r
-(21) Use Case / Requirement 21: IPv6 First-Hop Security, IPv6 ND spoofing.\r
-Supported in Neutron, Kilo Release: Roadmap\r
-Notes: Blueprint proposed upstream. Some patches are under review.\r
-\r
diff --git a/requirements/Requirement-Analysis.txt b/requirements/Requirement-Analysis.txt
deleted file mode 100644 (file)
index 8350eb8..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-===== Top Down Use Case and Gap Analysis =====\r
-\r
-Here are some top down use cases of VIM-agnostic IPv6 functionality, including\r
-infrastructure layer and VNF (VM) layer, and its gap analysis with Neutron\r
-in Juno release:\r
-\r
-(1) Use Case / Requirement 1: All topologies work in a multi-tenant environment\r
-Supported in Neutron, Juno Release: Yes\r
-Notes: The tenant's subnets are based on Neutron, with ML2 plugin and Single\r
-Flat Network topology, dual-stacked. See "DHCPv6" BP\r
-(https://review.openstack.org/#/c/102411) and "IPv6 SLAAC" BP\r
-(http://specs.openstack.org/openstack/neutron-specs/specs/juno/ipv6-radvd-ra.html)\r
-\r
-(2) Use Case / Requirement 2: IPv6 VM to VM only\r
-Supported in Neutron, Juno Release: Yes\r
-Notes: Configuration and IPv6 address assignment\r
-\r
-(3) Use Case / Requirement 3: IPv6 external L2 VLAN directly attached to a VM\r
-Supported in Neutron, Juno Release: Yes\r
-Notes: Via Neutron and external router / border gateway. See "UPStream Provider\r
-Network" BP\r
-(http://specs.openstack.org/openstack/neutron-specs/specs/juno/ipv6-provider-nets-slaac.html)\r
-To-Do: Verify\r
-\r
-(4) Use Case / Requirement 4: IPv6 subnet routed via L3 agent to an external\r
-IPv6 network\r
-(a) Both VLAN and overlay (e.g. GRE, VXLAN) subnet attached to VMs;\r
-(b) Must be able to support multiple L3 agents for a given external network to\r
-support scaling (neutron scheduler to assign vRouters to the L3 agents)\r
-Supported in Neutron, Juno Release: (a) Roadmap (b) Yes\r
-Notes: The IPv6 support in Neutron L3 router isn't ready yet. Watch Kilo BPs\r
-"IPv6 Router BP" (https://review.openstack.org/#/c/142224/) and\r
-"Multiple Ipv6 Prefixes BP" (https://review.openstack.org/#/c/98217).\r
-(b) is supported for scalability. Patches for HA are under review.\r
-\r
-(5) Use Case / Requirement 5: Ability for a VM to support a mix of multiple\r
-IPv4 and IPv6 networks, i.e. across the mix of all the above topologies\r
-including multiples of the same type.\r
-Supported in Neutron, Juno Release: Yes for dual-stack and Roadmap for multiple\r
-IPv4 and IPv6 subnets\r
-Notes: Dual-stack is supported via Single Flat Network topology. Refer to Kilo\r
-Blueprint "Multiple IPv6 Prefixes"\r
-(https://blueprints.launchpad.net/neutron/+spec/multiple-ipv6-prefixes)\r
-for support of multiple IPv4 and IPv6 networks\r
-To-Do: Verify\r
-\r
-(6) Use Case / Requirement 6: Support DHCPv6 stateful\r
-(a) Including the ability for a user to create a port on an IPv6 subnet and\r
-assign a specific IPv6 address to the port and have it taken out of the DHCP\r
-address pool;\r
-(b) Support the ability to assign multiple IPv6 address to an interface\r
-Supported in Neutron, Juno Release: (a) Yes and (b) Work-in-Progress\r
-Notes: Work-in-progress and expected in Juno release. All the IPv6\r
-configuration modes such as SLAAC, DHCPv6 Stateless and DHCPv6 Stateful are\r
-expected in Juno release. For (a), see\r
-Patch 1 (https://bugs.launchpad.net/neutron/+bug/1367500) and\r
-Patch 2 (https://bugs.launchpad.net/neutron/juno/+bug/1377843).\r
-This is verified by Sridhar. For (b), see BP in Kilo\r
-(https://review.openstack.org/#/c/98217/14).\r
-\r
-(7) Use Case / Requirement 7: Should not prevent the ability to support\r
-non-DHCP statically assigned IPv6 addresses in the same fashion as is supported\r
-for IPv4\r
-Supported in Neutron, Juno Release: No\r
-Notes: The following patch disables this operation: (https://review.openstack.org/#/c/129144/)\r
-\r
-(8) Use Case / Requirement 8: Support for private IPv6 to external IPv6\r
-Floating IP\r
-Supported in Neutron, Juno Release: Rejected (No)\r
-Notes: See https://review.openstack.org/#/c/139731/ for discussion\r
-\r
-(9) Use Case / Requirement 9: Provide IPv6/IPv4 feature parity in support for\r
-pass-through capabilities (e.g. SR-IOV support in OpenStack) as these features\r
-are provided in OpenStack\r
-Supported in Neutron, Juno Release: Roadmap\r
-Notes:\r
-(a) Blueprint "Managing InfiniBand SR-IOV"\r
-(https://blueprints.launchpad.net/neutron/+spec/manage-sriov-ib-net-config) is\r
-pending approval,\r
-(b) Blueprint "Traffic Rate Support for SR-IOV NIC"\r
-(https://blueprints.launchpad.net/neutron/+spec/ml2-sriov-rate-limit-extension)\r
-is being drafted,\r
-(c) Blueprint "HA SR-IOV Ports"\r
-(https://blueprints.launchpad.net/neutron/+spec/high-availability-sriov-ports)\r
-has not started yet.\r
-\r
-(10) Use Case / Requirement 10: Additional IPv6 extensions, for example: IPSEC,\r
-IPv6 Anycast, Multicast\r
-Supported in Neutron, Juno Release: No\r
-Notes: It doesn't appear to be considered yet\r
-\r
-(11) Use Case / Requirement 11: Access to the meta-data server to obtain user\r
-data and ssh keys etc\r
-Supported in Neutron, Juno Release: No\r
-Notes: Metadata (and GRE / VXLAN subnet) still requires IPv4. An alternate\r
-mechanism is to use config-drive. See email thread\r
-(http://openstack.10931.n7.nabble.com/Neutron-cloud-init-IPv6-support-td45386.html)\r
-\r
-(12) Use Case / Requirement 12: Full support for IPv6 tcp/udp/icmp IPv6\r
-security groups (same as we see for IPv4)\r
-Supported in Neutron, Juno Release: Yes\r
-Notes:\r
-(a) Blueprint "Support ICMP type filter by security group"\r
-(https://blueprints.launchpad.net/neutron/+spec/security-group-icmp-type-filter)\r
-has not started yet.\r
-(b) Blueprint "Security group rule for IPv6 RA guard and IPv6 Snooping"\r
-(https://blueprints.launchpad.net/neutron/+spec/security-group-ipv6-ra-guard)\r
-has not started. Whiteboard responses to BP (a) indicates that it is already\r
-supported.\r
-To-Do: for BP(b), the author was looking at the "IPv6 First-Hop Security"\r
-feature\r
-\r
-(13) Use Case / Requirement 13: During network/subnet/router create, there\r
-should be an option to allow user to specify the type of address management\r
-they would like. (a) this includes all options including those low priority if\r
-implemented (e.g. toggle on/off router and address prefix advertisements);\r
-(b) It must be supported via Neutron API (restful and CLI) as well as via\r
-Horizon\r
-Supported in Neutron, Juno Release: Yes for various types of IPv6 subnet and\r
-Roadmap for multiple subnets\r
-Notes: The ability to create various types of IPv6 subnets (i.e., SLAAC / DHCPv6\r
-Stateless / Stateful) is supported both using Neutron router and external\r
-router. Refer to "various combinations and how to configure Neutron subnets"\r
-(http://specs.openstack.org/openstack/neutron-specs/specs/juno/ipv6-radvd-ra.html#rest-api-impact).\r
-Refer to Blueprints "IPv6 Prefix Delegation"\r
-(https://blueprints.launchpad.net/neutron/+spec/ipv6-prefix-delegation) and\r
-"Multiple IPv6 Prefixes"\r
-(https://blueprints.launchpad.net/neutron/+spec/multiple-ipv6-prefixes) for\r
-support of multiple IPv4 and IPv6 networks\r
-\r
-(14) Use Case / Requirement 14: Ability to specify Floating IPs via Neutron API\r
-(restful and CLI) as well as via Horizon, including combination of IPv6/IPv4\r
-and IPv4/IPv6 Floating IPs if implemented\r
-Supported in Neutron, Juno Release: No\r
-Notes: IPv6 Floating IPs will not be supported in Kilo. See BP\r
-(https://review.openstack.org/#/c/139731/). Refer to previous item of floating\r
-IPv6 functionality being rejected.\r
-\r
-(15) Use Case / Requirement 15: Ability to control and manage all IPv6 security\r
-group capabilities via Neutron/Nova API (restful and CLI) as well as via Horizon\r
-Supported in Neutron, Juno Release: Yes\r
-Notes: Refer to previous item of IPv6 security group\r
-\r
diff --git a/vrouter/Service_VM_as_vRouter.rst b/vrouter/Service_VM_as_vRouter.rst
deleted file mode 100644 (file)
index 8592323..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-==================================\r
-Exercising Service VM as a vRouter\r
-==================================\r
-\r
-There are 3 steps to set up a service VM as a vRouter:\r
-\r
-- Step 1: `Get a service VM running`_\r
-\r
-- Step 2: `Handling Neutron Security Group Feature`_\r
-\r
-- Step 3: `Set up an IPv6 vRouter on the Service VM`_\r
-\r
-***************************\r
-_`Get a Service VM Running`\r
-***************************\r
-\r
-Please click `Set up Service VM`_ page for instructions to get a service VM running.\r
-\r
-.. _`Set up Service VM`: ./setup_service_vm.html\r
-\r
-******************************************\r
-_`Handling Neutron Security Group Feature` \r
-******************************************\r
-\r
-------------------------------\r
-Disable Security Group Feature\r
-------------------------------\r
-\r
-If Open Stack is integrated and running with Open Daylight, we need to completely disable Security Group feature in Open Stack because Open Daylight doesn\92t support it.\r
-\r
-----------------------------------------------------------\r
-Use Neutron ML2 Port Security Extension (Kilo and Liberty)\r
-----------------------------------------------------------\r
-\r
-For Open Stack Kilo or Liberty with ML2 OVS only (without Open Daylight), we need to use Port Security Extension of Neutron and disable Anti-spoofing Rule on the service VM. \r
-\r
-*******************************************\r
-_`Set up an IPv6 vRouter on the Service VM`\r
-*******************************************\r
-\r
-Please click `Set up IPv6 vRouter`_ page for instructions to set up an IPv6 vRouter on a Service VM.\r
-\r
-.. _`Set up IPv6 vRouter`: ./setup_ipv6_vrouter.html\r
-\r
diff --git a/vrouter/Service_VM_as_vRouter.txt b/vrouter/Service_VM_as_vRouter.txt
deleted file mode 100644 (file)
index 8592323..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-==================================\r
-Exercising Service VM as a vRouter\r
-==================================\r
-\r
-There are 3 steps to set up a service VM as a vRouter:\r
-\r
-- Step 1: `Get a service VM running`_\r
-\r
-- Step 2: `Handling Neutron Security Group Feature`_\r
-\r
-- Step 3: `Set up an IPv6 vRouter on the Service VM`_\r
-\r
-***************************\r
-_`Get a Service VM Running`\r
-***************************\r
-\r
-Please click `Set up Service VM`_ page for instructions to get a service VM running.\r
-\r
-.. _`Set up Service VM`: ./setup_service_vm.html\r
-\r
-******************************************\r
-_`Handling Neutron Security Group Feature` \r
-******************************************\r
-\r
-------------------------------\r
-Disable Security Group Feature\r
-------------------------------\r
-\r
-If Open Stack is integrated and running with Open Daylight, we need to completely disable Security Group feature in Open Stack because Open Daylight doesn\92t support it.\r
-\r
-----------------------------------------------------------\r
-Use Neutron ML2 Port Security Extension (Kilo and Liberty)\r
-----------------------------------------------------------\r
-\r
-For Open Stack Kilo or Liberty with ML2 OVS only (without Open Daylight), we need to use Port Security Extension of Neutron and disable Anti-spoofing Rule on the service VM. \r
-\r
-*******************************************\r
-_`Set up an IPv6 vRouter on the Service VM`\r
-*******************************************\r
-\r
-Please click `Set up IPv6 vRouter`_ page for instructions to set up an IPv6 vRouter on a Service VM.\r
-\r
-.. _`Set up IPv6 vRouter`: ./setup_ipv6_vrouter.html\r
-\r
diff --git a/vrouter/setup_ipv6_vrouter.rst b/vrouter/setup_ipv6_vrouter.rst
deleted file mode 100644 (file)
index 06d2de8..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-======================================\r
-Set up an IPv6 vRouter on a Service VM\r
-======================================\r
-\r
-| Here you will find the steps involved in creating a ServiceVM that acts as an IPv6 vRouter. In this example, we will be using a CentOS7 image as vRouter (we should be able to use other OS as well) and devstack for OpenStack installation. We need to enable Port Security Extension as the extension_drivers in ML2 configuration file.\r
-\r
-| Following is a sample configuration of devstack local.conf file.\r
-\r
-| **# [[local|localrc]]**\r
-|   `DATA_DIR=$DEST/data`\r
-|   `SCREEN_LOGDIR=$DATA_DIR/logs`\r
-|   `LOGFILE=$SCREEN_LOGDIR/stack.sh.log`\r
-|   `ADMIN_PASSWORD=password`\r
-|   `MYSQL_PASSWORD=password`\r
-|   `RABBIT_PASSWORD=password`\r
-|   `SERVICE_PASSWORD=password`\r
-|   `SERVICE_TOKEN=token`\r
-|   `disable_service n-net tempest h-eng h-api h-api-cfn h-api-cw`\r
-|   `enable_service q-svc q-dhcp q-meta q-agt q-l3 n-novnc`\r
-| **# [[post-config|/$Q_PLUGIN_CONF_FILE]]**\r
-| **# [ml2]**\r
-|   `extension_drivers=port_security`\r
-\r
-| After successful installation of OpenStack with the above configuration, we shall create the necessary neutron networks/subnets/ports etc.\r
-|   `cd devstack`\r
-|   `./stack.sh`\r
-\r
-| # Source the tenant credentials.\r
-|   `source openrc admin demo`\r
-| # Create a Neutron router which provides external connectivity.\r
-|   `neutron router-create router1`\r
-| # Create an external network using the appropriate values based on the data-center physical network setup.\r
-|   `neutron net-create --provider:network_type <flat/vlan> --provider:physical_network <physical-network> --provider:segmentation_id <segmentation-id-if-vlan> --router:external ext-net`\r
-| # Configure ipv6_gateway=<LLA-of-upstream-router> in the Neutron L3 agent configuration file.\r
-| # Associate the ext-net to the neutron router.\r
-|   `neutron router-gateway-set router1 ext-net`\r
-| # Create an IPv6 internal network.\r
-|   `neutron net-create ipv6-internal-network`\r
-| # Create an IPv6 subnet in the internal network.\r
-|   `neutron subnet-create --name ipv6-int-subnet --ip-version 6 --ipv6-ra-mode slaac --ipv6-address-mode slaac ipv6-internal-network 2001:db8:0:1::/64`\r
-| # Associate the internal subnet to a neutron router. \r
-|   `neutron router-interface-add router1 ipv6-int-subnet`\r
-   \r
-| Now we shall create an isolated network which is the internal network of vRouter.\r
-| # Create an isolated router for the tenant internal network.\r
-|   `neutron router-create router2`\r
-| # Create a Neutron Internal Network.\r
-|   `neutron net-create tenant-internal-network`\r
-| # Create an IPv4 subnet in the internal network.\r
-|   `neutron subnet-create --name ipv4-int-subnet tenant-internal-network 10.0.0.1/24`\r
-| # Associate the router2 to IPv4 subnet created above.\r
-|   `neutron router-interface-add <router2-id> <ipv4-int-subnet-id>`\r
-\r
-| Mapping this configuration to `PoC-1`_.\r
-\r
-.. _`PoC-1`: /ipv6/images/ipv6-poc-1.png\r
-\r
-- `ipv6-internal-network and ext-net is the Red colored network.`\r
-- `tenant-internal-network is the Green colored network.`\r
-\r
-| Lets create two neutron ports one from ext-net and the other from tenant-internal-network for the vRouter VM\r
-|   `neutron port-create ipv6-internal-network --port-security-enabled=False --name enp0s3-port`\r
-|   `neutron port-create tenant-internal-network --port-security-enabled=False --name enp0s8-port`\r
-\r
-| Download the Centos7 image which is used as vRouter.\r
-|   `glance image-create --name 'Centos7' --disk-format qcow2 --container-format bare --is-public true --copy-from http://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud.qcow2`\r
-\r
-| Create a keypair.\r
-|   `nova keypair-add vRouterKey > ~/vRouterKey`\r
-\r
-| Spawn the Centos7 image with two nics (i.e., enp0s3-port and enp0s8-port)\r
-|   `nova boot --image <Centos7-image-id> \96flavor m1.small --nic port-id=$(neutron port-show -f value -F id enp0s3-port) \96nic --nic port-id=$(neutron port-show -f value -F id enp0s8-port) --key-name vRouterKey CentOSvRouter`\r
-  \r
-| Verify that CentOSvRouter boots up successfully and keypair is injected.\r
-|   `nova list`\r
-|   `nova console-log CentOSvRouter`\r
-\r
-| After the image boots up successfully, from the router1 namespace, ssh to vRouter using the keypair.\r
-|   `sudo ip netns`\r
-|   `sudo ip netns exec <router1-namespace> bash`\r
-|   `ssh -i ~/vRouterKey centos@<ip-address-of-the-image>`\r
-  \r
-| As a one time job, before we can create the snapshot, execute the steps (i.e., SLAAC setup) mentioned at the following link.\r
-|   `https://wiki.opnfv.org/ipv6_opnfv_project/vm_as_router`\r
-\r
-| In order to verify that the setup is working, lets create some cirros VMs on the "tenant-internal-network" (i.e., vRouter internal network).\r
-|   `nova boot --image <Cirros-image-id> --flavor m1.tiny --nic net-id=<tenant-internal-network-id> VM1`\r
-|   `nova boot --image <Cirros-image-id> --flavor m1.tiny --nic net-id=<tenant-internal-network-id> VM2`\r
-\r
-| Confirm that both the VMs have successfully booted up.\r
-|   `nova list`\r
-|   `nova console-log VM1`\r
-|   `nova console-log VM2`\r
-\r
-| Add the necessary security group ingress rules.\r
-|   `source openrc demo demo`\r
-| # SSH access to the VMs\r
-|   `neutron security-group-rule-create --direction ingress --protocol tcp --port-range-min 22 --port-range-max 22 --remote-ip-prefix 10.0.0.0/24 default`\r
-| # Permit IPv6 Router Advts from the vRouter internal interface to the VMs.\r
-|   `neutron security-group-rule-create --direction ingress --ethertype IPv6 --protocol icmpv6 --port-range-min 134 --remote-ip-prefix fe80::/64 default`\r
-  \r
-| SSH to the cirros VMs to check the IPv6 forwarding use-case.\r
-|   `sudo ip netns`\r
-|   `sudo ip netns exec <router2-namespace> bash`\r
-|   `ssh cirros@<ip-address-of-the-image>`\r
-\r
-|   Note: default password of cirros image would be "cubswin:)"\r
-  \r
-| Verify that Cirros image has an IPv6 address assigned via SLAAC with a prefix of "2001:db8:0:2::/64"\r
-|   `ip address`\r
-| # verify that default route points to the LLA of enp0s8 interface of vRouter.\r
-|   `ip -6 route`\r
-\r
-| Try pinging to the internal router interface of router1 (i.e., 2001:db8:0:1::1/64)\r
-|   `ping6 2001:db8:0:1::1/64`\r
-\r
-| If all goes well, ping6 should succeed which shows that vRouter is forwarding the IPv6 traffic of instances on the tenant-internal-network.\r
-\r
-| At this state, we can create a snapshot of the CentOSvRouter and use it in any other similar OpenStack setup.\r
-|   `nova image-create <CentOSvRouter-id> <Snapshot-name>`\r
-|   `nova image-list #You will find the snapshot you just created above.`\r
-\r
diff --git a/vrouter/setup_ipv6_vrouter.txt b/vrouter/setup_ipv6_vrouter.txt
deleted file mode 100644 (file)
index 06d2de8..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-======================================\r
-Set up an IPv6 vRouter on a Service VM\r
-======================================\r
-\r
-| Here you will find the steps involved in creating a ServiceVM that acts as an IPv6 vRouter. In this example, we will be using a CentOS7 image as vRouter (we should be able to use other OS as well) and devstack for OpenStack installation. We need to enable Port Security Extension as the extension_drivers in ML2 configuration file.\r
-\r
-| Following is a sample configuration of devstack local.conf file.\r
-\r
-| **# [[local|localrc]]**\r
-|   `DATA_DIR=$DEST/data`\r
-|   `SCREEN_LOGDIR=$DATA_DIR/logs`\r
-|   `LOGFILE=$SCREEN_LOGDIR/stack.sh.log`\r
-|   `ADMIN_PASSWORD=password`\r
-|   `MYSQL_PASSWORD=password`\r
-|   `RABBIT_PASSWORD=password`\r
-|   `SERVICE_PASSWORD=password`\r
-|   `SERVICE_TOKEN=token`\r
-|   `disable_service n-net tempest h-eng h-api h-api-cfn h-api-cw`\r
-|   `enable_service q-svc q-dhcp q-meta q-agt q-l3 n-novnc`\r
-| **# [[post-config|/$Q_PLUGIN_CONF_FILE]]**\r
-| **# [ml2]**\r
-|   `extension_drivers=port_security`\r
-\r
-| After successful installation of OpenStack with the above configuration, we shall create the necessary neutron networks/subnets/ports etc.\r
-|   `cd devstack`\r
-|   `./stack.sh`\r
-\r
-| # Source the tenant credentials.\r
-|   `source openrc admin demo`\r
-| # Create a Neutron router which provides external connectivity.\r
-|   `neutron router-create router1`\r
-| # Create an external network using the appropriate values based on the data-center physical network setup.\r
-|   `neutron net-create --provider:network_type <flat/vlan> --provider:physical_network <physical-network> --provider:segmentation_id <segmentation-id-if-vlan> --router:external ext-net`\r
-| # Configure ipv6_gateway=<LLA-of-upstream-router> in the Neutron L3 agent configuration file.\r
-| # Associate the ext-net to the neutron router.\r
-|   `neutron router-gateway-set router1 ext-net`\r
-| # Create an IPv6 internal network.\r
-|   `neutron net-create ipv6-internal-network`\r
-| # Create an IPv6 subnet in the internal network.\r
-|   `neutron subnet-create --name ipv6-int-subnet --ip-version 6 --ipv6-ra-mode slaac --ipv6-address-mode slaac ipv6-internal-network 2001:db8:0:1::/64`\r
-| # Associate the internal subnet to a neutron router. \r
-|   `neutron router-interface-add router1 ipv6-int-subnet`\r
-   \r
-| Now we shall create an isolated network which is the internal network of vRouter.\r
-| # Create an isolated router for the tenant internal network.\r
-|   `neutron router-create router2`\r
-| # Create a Neutron Internal Network.\r
-|   `neutron net-create tenant-internal-network`\r
-| # Create an IPv4 subnet in the internal network.\r
-|   `neutron subnet-create --name ipv4-int-subnet tenant-internal-network 10.0.0.1/24`\r
-| # Associate the router2 to IPv4 subnet created above.\r
-|   `neutron router-interface-add <router2-id> <ipv4-int-subnet-id>`\r
-\r
-| Mapping this configuration to `PoC-1`_.\r
-\r
-.. _`PoC-1`: /ipv6/images/ipv6-poc-1.png\r
-\r
-- `ipv6-internal-network and ext-net is the Red colored network.`\r
-- `tenant-internal-network is the Green colored network.`\r
-\r
-| Lets create two neutron ports one from ext-net and the other from tenant-internal-network for the vRouter VM\r
-|   `neutron port-create ipv6-internal-network --port-security-enabled=False --name enp0s3-port`\r
-|   `neutron port-create tenant-internal-network --port-security-enabled=False --name enp0s8-port`\r
-\r
-| Download the Centos7 image which is used as vRouter.\r
-|   `glance image-create --name 'Centos7' --disk-format qcow2 --container-format bare --is-public true --copy-from http://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud.qcow2`\r
-\r
-| Create a keypair.\r
-|   `nova keypair-add vRouterKey > ~/vRouterKey`\r
-\r
-| Spawn the Centos7 image with two nics (i.e., enp0s3-port and enp0s8-port)\r
-|   `nova boot --image <Centos7-image-id> \96flavor m1.small --nic port-id=$(neutron port-show -f value -F id enp0s3-port) \96nic --nic port-id=$(neutron port-show -f value -F id enp0s8-port) --key-name vRouterKey CentOSvRouter`\r
-  \r
-| Verify that CentOSvRouter boots up successfully and keypair is injected.\r
-|   `nova list`\r
-|   `nova console-log CentOSvRouter`\r
-\r
-| After the image boots up successfully, from the router1 namespace, ssh to vRouter using the keypair.\r
-|   `sudo ip netns`\r
-|   `sudo ip netns exec <router1-namespace> bash`\r
-|   `ssh -i ~/vRouterKey centos@<ip-address-of-the-image>`\r
-  \r
-| As a one time job, before we can create the snapshot, execute the steps (i.e., SLAAC setup) mentioned at the following link.\r
-|   `https://wiki.opnfv.org/ipv6_opnfv_project/vm_as_router`\r
-\r
-| In order to verify that the setup is working, lets create some cirros VMs on the "tenant-internal-network" (i.e., vRouter internal network).\r
-|   `nova boot --image <Cirros-image-id> --flavor m1.tiny --nic net-id=<tenant-internal-network-id> VM1`\r
-|   `nova boot --image <Cirros-image-id> --flavor m1.tiny --nic net-id=<tenant-internal-network-id> VM2`\r
-\r
-| Confirm that both the VMs have successfully booted up.\r
-|   `nova list`\r
-|   `nova console-log VM1`\r
-|   `nova console-log VM2`\r
-\r
-| Add the necessary security group ingress rules.\r
-|   `source openrc demo demo`\r
-| # SSH access to the VMs\r
-|   `neutron security-group-rule-create --direction ingress --protocol tcp --port-range-min 22 --port-range-max 22 --remote-ip-prefix 10.0.0.0/24 default`\r
-| # Permit IPv6 Router Advts from the vRouter internal interface to the VMs.\r
-|   `neutron security-group-rule-create --direction ingress --ethertype IPv6 --protocol icmpv6 --port-range-min 134 --remote-ip-prefix fe80::/64 default`\r
-  \r
-| SSH to the cirros VMs to check the IPv6 forwarding use-case.\r
-|   `sudo ip netns`\r
-|   `sudo ip netns exec <router2-namespace> bash`\r
-|   `ssh cirros@<ip-address-of-the-image>`\r
-\r
-|   Note: default password of cirros image would be "cubswin:)"\r
-  \r
-| Verify that Cirros image has an IPv6 address assigned via SLAAC with a prefix of "2001:db8:0:2::/64"\r
-|   `ip address`\r
-| # verify that default route points to the LLA of enp0s8 interface of vRouter.\r
-|   `ip -6 route`\r
-\r
-| Try pinging to the internal router interface of router1 (i.e., 2001:db8:0:1::1/64)\r
-|   `ping6 2001:db8:0:1::1/64`\r
-\r
-| If all goes well, ping6 should succeed which shows that vRouter is forwarding the IPv6 traffic of instances on the tenant-internal-network.\r
-\r
-| At this state, we can create a snapshot of the CentOSvRouter and use it in any other similar OpenStack setup.\r
-|   `nova image-create <CentOSvRouter-id> <Snapshot-name>`\r
-|   `nova image-list #You will find the snapshot you just created above.`\r
-\r
diff --git a/vrouter/setup_service_vm.rst b/vrouter/setup_service_vm.rst
deleted file mode 100644 (file)
index a9c0a87..0000000
+++ /dev/null
@@ -1,198 +0,0 @@
-================================================\r
-Set up a Service VM Running as a vRouter (SLAAC)\r
-================================================\r
-\r
-| # Current network setup for IPv6 router VM on local virtualbox setup\r
-| # /etc/sysconfig/network-scripts/ifcfg-enp0s3\r
-| # Network interface enp0s3 is IPv4 for public internet access\r
-| TYPE="Ethernet"\r
-| BOOTPROTO="dhcp"\r
-| DEFROUTE="yes"\r
-| PEERDNS="yes"\r
-| PEERROUTES="yes"\r
-| IPV4_FAILURE_FATAL="no"\r
-| IPV6INIT="yes"\r
-| IPV6_AUTOCONF="yes"\r
-| IPV6_DEFROUTE="yes"\r
-| IPV6_PEERDNS="yes"\r
-| IPV6_PEERROUTES="yes"\r
-| IPV6_FAILURE_FATAL="no"\r
-| NAME="enp0s3"\r
-| UUID="32bad876-680a-4f78-a364-726eae21bfcf"\r
-| DEVICE="enp0s3"\r
-| ONBOOT="yes"\r
-\r
-| # /etc/sysconfig/network-scripts/ifcfg-enp0s8\r
-| # Network interface enp0s8 is IPv6 internal interface to provide IPv6 to internal hosts\r
-| BOOTPROTO=static\r
-| IPV6INIT=yes\r
-| IPV6ADDR="2001:db8:0:2::1/64"\r
-| NAME=enp0s8\r
-| UUID=e931a806-2f76-425d-b035-d37813b81df5\r
-| DEVICE=enp0s8\r
-| ONBOOT=yes\r
-| NM_CONTROLLED=no\r
-\r
-| # Disable NetworkManager\r
-| systemctl disable NetworkManager\r
-\r
-| # Install dhcp.x86_64, dhcp-common.x86_64, radvd.x86_64 if not already installed\r
-| yum install dhcp-common\r
-| yum install dhcp\r
-| yum install radvd\r
-\r
-| # /etc/sysctl.conf Set sysctl to enable IPv6 forwarding\r
-| net.ipv6.conf.all.forwarding=1\r
-| net.ipv6.conf.enp0s3.accept_ra=2\r
-| net.ipv6.conf.enp0s3.accept_ra_defrtr=1\r
-| net.ipv6.conf.enp0s3.router_solicitations=1\r
-\r
-| # /etc/radvd.conf\r
-| interface enp0s8\r
-| {\r
-| # This is the primary "on switch" for RADVD\r
-|     AdvSendAdvert on;     \r
-| #\r
-| # These settings determine how often advertisements will be sent every X-Y.\r
-| # X and Y are in seconds.\r
-| # With these settings you will be sending a advert every 60 seconds\r
-| #\r
-|     MinRtrAdvInterval 60;\r
-|     MaxRtrAdvInterval 180;\r
-| #\r
-| # Disable Mobile IPv6 support\r
-| #\r
-|     AdvHomeAgentFlag off;\r
-| #\r
-| # Here we set our managed flags\r
-| #\r
-|     AdvManagedFlag on;\r
-|     AdvOtherConfigFlag on;\r
-| #\r
-| # Enter our IPv6 prefix and CIDR\r
-| #\r
-|     prefix 2001:db8:0:2::/64\r
-|     {\r
-|         AdvOnLink on;\r
-| # On link tells the host that the default router is on the same "link" as it is\r
-|         AdvAutonomous on;\r
-|         AdvRouterAddr off;\r
-|     };\r
-| };\r
-\r
-# Enable radvd service\r
-systemctl enable radvd\r
-\r
-# In /etc/sysconfig/network add\r
-IPV6FORWARDING=yes\r
-\r
-=================================================================\r
-Set up a Service VM Running as a vRouter (DHCPv6 Stateful Server)\r
-=================================================================\r
-\r
-| # Current network setup for IPv6 router VM on local virtualbox setup\r
-| # /etc/sysconfig/network-scripts/ifcfg-enp0s3\r
-| # Network interface enp0s3 is IPv4 for public internet access\r
-| TYPE="Ethernet"\r
-| BOOTPROTO="dhcp"\r
-| DEFROUTE="yes"\r
-| PEERDNS="yes"\r
-| PEERROUTES="yes"\r
-| IPV4_FAILURE_FATAL="no"\r
-| IPV6INIT="yes"\r
-| IPV6_AUTOCONF="yes"\r
-| IPV6_DEFROUTE="yes"\r
-| IPV6_PEERDNS="yes"\r
-| IPV6_PEERROUTES="yes"\r
-| IPV6_FAILURE_FATAL="no"\r
-| NAME="enp0s3"\r
-| UUID="32bad876-680a-4f78-a364-726eae21bfcf"\r
-| DEVICE="enp0s3"\r
-| ONBOOT="yes"\r
-\r
-| # /etc/sysconfig/network-scripts/ifcfg-enp0s8\r
-| # Network interface enp0s8 is IPv6 internal interface to provide IPv6 to internal hosts\r
-| BOOTPROTO=static\r
-| IPV6INIT=yes\r
-| IPV6ADDR="2001:db8:0:2::1/64"\r
-| NAME=enp0s8\r
-| UUID=e931a806-2f76-425d-b035-d37813b81df5\r
-| DEVICE=enp0s8\r
-| ONBOOT=yes\r
-| NM_CONTROLLED=no\r
-\r
-| # Disable NetworkManager\r
-| systemctl disable NetworkManager\r
-\r
-| # Install dhcp.x86_64, dhcp-common.x86_64, radvd.x86_64 if not already installed\r
-| yum install dhcp-common\r
-| yum install dhcp\r
-| yum install radvd\r
-\r
-| # /etc/sysctl.conf Set sysctl to enable IPv6 forwarding\r
-| net.ipv6.conf.all.forwarding=1\r
-| net.ipv6.conf.enp0s3.accept_ra=2\r
-| net.ipv6.conf.enp0s3.accept_ra_defrtr=1\r
-| net.ipv6.conf.enp0s3.router_solicitations=1\r
-\r
-| # /etc/dhcp/dhcpd6.conf\r
-| # DHCP for IPv6 Server Configuration file.\r
-\r
-| # Enable RFC 5007 support (same than for DHCPv4)\r
-    allow leasequery;\r
-\r
-| # IPv6 address valid lifetime\r
-| #  (at the end the address is no longer usable by the client)\r
-| #  (set to 30 days, the usual IPv6 default)\r
-|     default-lease-time 2592000;\r
-\r
-| # IPv6 address preferred lifetime\r
-| #  (at the end the address is deprecated, i.e., the client should use\r
-| #   other addresses for new connections)\r
-| #  (set to 7 days, the  usual IPv6 default)\r
-|     preferred-lifetime 604800;\r
-\r
-| # T1, the delay before Renew\r
-| #  (default is 1/2 preferred lifetime)\r
-| #  (set to 1 hour)\r
-|     option dhcp-renewal-time 3600;\r
-\r
-| # T2, the delay before Rebind (if Renews failed)\r
-| #  (default is 3/4 preferred lifetime)\r
-| #  (set to 2 hours)\r
-|     option dhcp-rebinding-time 7200;\r
-\r
-| # The path of the lease file\r
-|     dhcpv6-lease-file-name "/var/lib/dhcpd/dhcpd6.leases";\r
-\r
-| # Set preference to 255 (maximum) in order to avoid waiting for\r
-| # additional servers when there is only one\r
-|     option dhcp6.preference 255;\r
-\r
-| # Server side command to enable rapid-commit (2 packet exchange)\r
-|     option dhcp6.rapid-commit;\r
-\r
-| # The delay before information-request refresh\r
-| #  (minimum is 10 minutes, maximum one day, default is to not refresh)\r
-| #  (set to 6 hours)\r
-    option dhcp6.info-refresh-time 21600;\r
-\r
-| # Set this to `interim` when doing ddns updates\r
-|     ddns-update-style interim;\r
-| \r
-|     subnet6 2001:db8:0:2::/64 {\r
-|         option dhcp6.name-servers 2001:db8:0:2::1;\r
-|         option dhcp6.domain-search "opnfv.local";\r
-|         ddns-hostname = concat(binary-to-ascii(10, 8, "-", leased-address), ".wired");\r
-|         ddns-domainname = "opnfv.local";\r
-| # Our address range 1000 through 1fff\r
-|         range6 2001:db8:0:2::1000 2001:db8:0:2::1fff;\r
-|     }\r
-| \r
-| # In /etc/sysconfig/network add\r
-| IPV6FORWARDING=yes\r
-\r
-For reference, refer to `How to set up RADVd DHCPv6 and DNS on CentOS 6`_.\r
-\r
-.. _`How to set up RADVd DHCPv6 and DNS on CentOS 6`: http://www.percula.info/archives/196\r
-\r
diff --git a/vrouter/setup_service_vm.txt b/vrouter/setup_service_vm.txt
deleted file mode 100644 (file)
index a9c0a87..0000000
+++ /dev/null
@@ -1,198 +0,0 @@
-================================================\r
-Set up a Service VM Running as a vRouter (SLAAC)\r
-================================================\r
-\r
-| # Current network setup for IPv6 router VM on local virtualbox setup\r
-| # /etc/sysconfig/network-scripts/ifcfg-enp0s3\r
-| # Network interface enp0s3 is IPv4 for public internet access\r
-| TYPE="Ethernet"\r
-| BOOTPROTO="dhcp"\r
-| DEFROUTE="yes"\r
-| PEERDNS="yes"\r
-| PEERROUTES="yes"\r
-| IPV4_FAILURE_FATAL="no"\r
-| IPV6INIT="yes"\r
-| IPV6_AUTOCONF="yes"\r
-| IPV6_DEFROUTE="yes"\r
-| IPV6_PEERDNS="yes"\r
-| IPV6_PEERROUTES="yes"\r
-| IPV6_FAILURE_FATAL="no"\r
-| NAME="enp0s3"\r
-| UUID="32bad876-680a-4f78-a364-726eae21bfcf"\r
-| DEVICE="enp0s3"\r
-| ONBOOT="yes"\r
-\r
-| # /etc/sysconfig/network-scripts/ifcfg-enp0s8\r
-| # Network interface enp0s8 is IPv6 internal interface to provide IPv6 to internal hosts\r
-| BOOTPROTO=static\r
-| IPV6INIT=yes\r
-| IPV6ADDR="2001:db8:0:2::1/64"\r
-| NAME=enp0s8\r
-| UUID=e931a806-2f76-425d-b035-d37813b81df5\r
-| DEVICE=enp0s8\r
-| ONBOOT=yes\r
-| NM_CONTROLLED=no\r
-\r
-| # Disable NetworkManager\r
-| systemctl disable NetworkManager\r
-\r
-| # Install dhcp.x86_64, dhcp-common.x86_64, radvd.x86_64 if not already installed\r
-| yum install dhcp-common\r
-| yum install dhcp\r
-| yum install radvd\r
-\r
-| # /etc/sysctl.conf Set sysctl to enable IPv6 forwarding\r
-| net.ipv6.conf.all.forwarding=1\r
-| net.ipv6.conf.enp0s3.accept_ra=2\r
-| net.ipv6.conf.enp0s3.accept_ra_defrtr=1\r
-| net.ipv6.conf.enp0s3.router_solicitations=1\r
-\r
-| # /etc/radvd.conf\r
-| interface enp0s8\r
-| {\r
-| # This is the primary "on switch" for RADVD\r
-|     AdvSendAdvert on;     \r
-| #\r
-| # These settings determine how often advertisements will be sent every X-Y.\r
-| # X and Y are in seconds.\r
-| # With these settings you will be sending a advert every 60 seconds\r
-| #\r
-|     MinRtrAdvInterval 60;\r
-|     MaxRtrAdvInterval 180;\r
-| #\r
-| # Disable Mobile IPv6 support\r
-| #\r
-|     AdvHomeAgentFlag off;\r
-| #\r
-| # Here we set our managed flags\r
-| #\r
-|     AdvManagedFlag on;\r
-|     AdvOtherConfigFlag on;\r
-| #\r
-| # Enter our IPv6 prefix and CIDR\r
-| #\r
-|     prefix 2001:db8:0:2::/64\r
-|     {\r
-|         AdvOnLink on;\r
-| # On link tells the host that the default router is on the same "link" as it is\r
-|         AdvAutonomous on;\r
-|         AdvRouterAddr off;\r
-|     };\r
-| };\r
-\r
-# Enable radvd service\r
-systemctl enable radvd\r
-\r
-# In /etc/sysconfig/network add\r
-IPV6FORWARDING=yes\r
-\r
-=================================================================\r
-Set up a Service VM Running as a vRouter (DHCPv6 Stateful Server)\r
-=================================================================\r
-\r
-| # Current network setup for IPv6 router VM on local virtualbox setup\r
-| # /etc/sysconfig/network-scripts/ifcfg-enp0s3\r
-| # Network interface enp0s3 is IPv4 for public internet access\r
-| TYPE="Ethernet"\r
-| BOOTPROTO="dhcp"\r
-| DEFROUTE="yes"\r
-| PEERDNS="yes"\r
-| PEERROUTES="yes"\r
-| IPV4_FAILURE_FATAL="no"\r
-| IPV6INIT="yes"\r
-| IPV6_AUTOCONF="yes"\r
-| IPV6_DEFROUTE="yes"\r
-| IPV6_PEERDNS="yes"\r
-| IPV6_PEERROUTES="yes"\r
-| IPV6_FAILURE_FATAL="no"\r
-| NAME="enp0s3"\r
-| UUID="32bad876-680a-4f78-a364-726eae21bfcf"\r
-| DEVICE="enp0s3"\r
-| ONBOOT="yes"\r
-\r
-| # /etc/sysconfig/network-scripts/ifcfg-enp0s8\r
-| # Network interface enp0s8 is IPv6 internal interface to provide IPv6 to internal hosts\r
-| BOOTPROTO=static\r
-| IPV6INIT=yes\r
-| IPV6ADDR="2001:db8:0:2::1/64"\r
-| NAME=enp0s8\r
-| UUID=e931a806-2f76-425d-b035-d37813b81df5\r
-| DEVICE=enp0s8\r
-| ONBOOT=yes\r
-| NM_CONTROLLED=no\r
-\r
-| # Disable NetworkManager\r
-| systemctl disable NetworkManager\r
-\r
-| # Install dhcp.x86_64, dhcp-common.x86_64, radvd.x86_64 if not already installed\r
-| yum install dhcp-common\r
-| yum install dhcp\r
-| yum install radvd\r
-\r
-| # /etc/sysctl.conf Set sysctl to enable IPv6 forwarding\r
-| net.ipv6.conf.all.forwarding=1\r
-| net.ipv6.conf.enp0s3.accept_ra=2\r
-| net.ipv6.conf.enp0s3.accept_ra_defrtr=1\r
-| net.ipv6.conf.enp0s3.router_solicitations=1\r
-\r
-| # /etc/dhcp/dhcpd6.conf\r
-| # DHCP for IPv6 Server Configuration file.\r
-\r
-| # Enable RFC 5007 support (same than for DHCPv4)\r
-    allow leasequery;\r
-\r
-| # IPv6 address valid lifetime\r
-| #  (at the end the address is no longer usable by the client)\r
-| #  (set to 30 days, the usual IPv6 default)\r
-|     default-lease-time 2592000;\r
-\r
-| # IPv6 address preferred lifetime\r
-| #  (at the end the address is deprecated, i.e., the client should use\r
-| #   other addresses for new connections)\r
-| #  (set to 7 days, the  usual IPv6 default)\r
-|     preferred-lifetime 604800;\r
-\r
-| # T1, the delay before Renew\r
-| #  (default is 1/2 preferred lifetime)\r
-| #  (set to 1 hour)\r
-|     option dhcp-renewal-time 3600;\r
-\r
-| # T2, the delay before Rebind (if Renews failed)\r
-| #  (default is 3/4 preferred lifetime)\r
-| #  (set to 2 hours)\r
-|     option dhcp-rebinding-time 7200;\r
-\r
-| # The path of the lease file\r
-|     dhcpv6-lease-file-name "/var/lib/dhcpd/dhcpd6.leases";\r
-\r
-| # Set preference to 255 (maximum) in order to avoid waiting for\r
-| # additional servers when there is only one\r
-|     option dhcp6.preference 255;\r
-\r
-| # Server side command to enable rapid-commit (2 packet exchange)\r
-|     option dhcp6.rapid-commit;\r
-\r
-| # The delay before information-request refresh\r
-| #  (minimum is 10 minutes, maximum one day, default is to not refresh)\r
-| #  (set to 6 hours)\r
-    option dhcp6.info-refresh-time 21600;\r
-\r
-| # Set this to `interim` when doing ddns updates\r
-|     ddns-update-style interim;\r
-| \r
-|     subnet6 2001:db8:0:2::/64 {\r
-|         option dhcp6.name-servers 2001:db8:0:2::1;\r
-|         option dhcp6.domain-search "opnfv.local";\r
-|         ddns-hostname = concat(binary-to-ascii(10, 8, "-", leased-address), ".wired");\r
-|         ddns-domainname = "opnfv.local";\r
-| # Our address range 1000 through 1fff\r
-|         range6 2001:db8:0:2::1000 2001:db8:0:2::1fff;\r
-|     }\r
-| \r
-| # In /etc/sysconfig/network add\r
-| IPV6FORWARDING=yes\r
-\r
-For reference, refer to `How to set up RADVd DHCPv6 and DNS on CentOS 6`_.\r
-\r
-.. _`How to set up RADVd DHCPv6 and DNS on CentOS 6`: http://www.percula.info/archives/196\r
-\r