Installing and Configuring OpenStack (Juno) in Oracle® Solaris

Exit Print View

Updated: June 2016
 
 

About the Provider Router

The router provides connectivity to project VM instances with wider networks. The router is shared by all the project networks. Because there is only a single router, project networks cannot use overlapping IP addresses.

The router performs bidirectional network address translation (NAT) on the interface that connects the router to the external network. Projects can have as many floating IPs (public IPs) as they need or as are allowed by the floating IP quota. These floating IPs are associated with the VM instances that require outside connectivity.

Creating the router requires configuring the Neutron L3 agent. This agent automatically creates one-to-one NAT mappings between addresses assigned to Nova instances and the floating IP addresses. The L3 agent also enables communication between private networks.

By default, routing between private networks of the same project is disabled. To change this behavior, set allow_forwarding_between_networks to True in the /etc/neutron/l3_agent.ini configuration file. Restart the neutron-l3-agent SMF service after setting the parameter.

How to Configure the Router for the External Network

This procedure shows how to create the router for the external network. Part of the steps requires editing a configuration file. Thus, using the terminal window for this procedure is more convenient than the Horizon dashboard.

You perform the following steps on the node where the Neutron service is installed. This document locates the service on the Controller node, based on the sample architecture described in previous chapters.

Before You Begin

Make sure that you have completed the configuration of Neutron as described in How to Install and Configure Neutron.

  1. Enable Solaris IP filter if it is disabled.
    controller# svcadm enable -rs ipfilter
  2. Enable IP forwarding if it is disabled on the host.
    controller# ipadm set-prop -p forwarding=on ipv4
  3. Set the global shell variables for Neutron.
    controller# export OS_USERNAME=neutron
    controller# export OS_PASSWORD=service-password
    controller# export OS_TENANT_NAME=service
    controller# export OS_AUTH_URL=http://$CONTROLLER_ADMIN_NODE:5000/v2.0
  4. Create the provider router.
    controller# neutron router-create router-name

    The command displays the router name with a corresponding ID. Use this ID to update the configuration file in the next step.

  5. In the /etc/neutron/l3_agent.ini file, set the value of router_id to the router ID from the previous step.
  6. Enable the neutron-l3-agent SMF service.
    controller# svcadm enable neutron-l3-agent
  7. (Optional) Display information about the router.

    After you add the external network to the router, more information is added about the router.

    controller# neutron router-show router-name
Example 1  Creating the Router

This example shows how to create the router for the external network.

controller# svcadm enable -rs ipfilter

controller# ipadm set-prop -p forwarding=on ipv4

controller# export OS_USERNAME=neutron
controller# export OS_PASSWORD=service-password
controller# export OS_TENANT_NAME=service
controller# export OS_AUTH_URL=http://$CONTROLLER_ADMIN_NODE:5000/v2.0

controller# neutron router-create ext-router
Created a new router:
+-----------------------+--------------------------------------+
| Field                 | Value                                |
+-----------------------+--------------------------------------+
| admin_state_up        | True                                 |
| external_gateway_info |                                      |
| id                    | f89b24ed-42dd-48b0-8f4b-fd41887a3370 |
| name                  | ext-router                           |
| status                | ACTIVE                               |
| tenant_id             | 7d1caf0854b24becb28df5c5cabf72cc     |
+-----------------------+--------------------------------------+

At this point, you update router_id in the /etc/neutron/l3_agent.ini file.

router_id = f89b24ed-42dd-48b0-8f4b-fd41887a3370

Then, you enable the L3 agent service.

controller# svcadm enable neutron-l3-agent