Instalación y configuración de OpenStack en Oracle® Solaris 11.2

Salir de la Vista de impresión

Actualización: Abril de 2015
 
 

Cómo configurar la red externa en OpenStack

En este procedimiento, se muestra cómo crear una red virtual que representa una red externa. En esta red virtual, DHCP no se usa. En su lugar, se crean direcciones IP flotantes. Estas direcciones IP flotantes se asignan a un cliente particular y se pueden asignar a instancias de VM de Nova para uso por usuarios con ese cliente.

Debido a que el controlador tiene el servicio Neutron en el ejemplo de arquitectura de varios nodos en este capítulo, puede realizar los siguientes pasos en el nodo de controlador.

Antes de empezar

Para realizar este procedimiento, ya deben existir redes internas para el inquilino. Para conocer los procedimientos para crear una red privada, consulte Cómo crear una red interna.

Además, debe haber completado la configuración del conmutador virtual elástico, es decir, la configuración de sus propiedades l2-type y vlan-range. En el siguiente ejemplo, se muestra cómo visualizar estos valores de propiedades al configurarlos en el Step 9:

controller# evsadm show-controlprop -p l2-type -p vlan-range
PROPERTY   PERM  VALUE      DEFAULT  HOST
l2-type    rw    vlan       vlan     --
vlan-range rw    1,200-300  --       --

También debe tener la información sobre el inquilino cuyas redes privadas se conectarán a la red externa. Puede mostrar información del inquilino en cualquier momento mediante el siguiente comando:

keystone tenant-list

  1. Active el filtro IP de Solaris.
    controller# svcadm enable ipfilter
  2. Active el reenvío de IP en todo el host.
    controller# ipadm set-prop -p forwarding=on ipv4
  3. Establezca las variables de entorno necesarias.
    controller# export OS_USERNAME=neutron
    controller# export OS_PASSWORD=service-password
    controller# export OS_TENANT_NAME=service-name
    controller# export OS_AUTH_URL=http://controller-name:5000/v2.0
  4. Cree el enrutador de proveedor.
    controller# neutron router-create router-name

    El comando muestra el nombre de enrutador con un ID correspondiente. Utilícelo para actualizar el archivo de configuración en el siguiente paso.

  5. Actualice el archivo de configuración del agente L3.

    En el archivo /etc/neutron/l3_agent.ini, establezca el valor del parámetro router_id en el UUID de enrutador en el paso anterior.

    router_id = router-ID
  6. Active el servicio SMF de neutron-l3-agent.
    controller# svcadm enable neutron-l3-agent
  7. Cree una red externa.
    controller# neutron net-create --provider:network_type=vlan \
    --provider:segmentation_id=VLAN-nbr \
    --router:external=true network-name

    donde el valor de segmentation_id es el primer número del rango de VLAN.

  8. Cree una subred y asóciela a la red externa.

    Para la configuración de ejemplo de este documento, el DHCP está desactivado. La agrupación de asignaciones consta de un rango de direcciones IP flotantes que está asignado a la subred.

    controller# neutron subnet-create --enable-dhcp=false --name subnet-name \
    --allocation-pool start=start-IP, end=end-IP network-name subnet-IP
    
  9. Agregue la red externa al enrutador.
    controller# neutron router-gateway-set router-ID network-ID \
    

    Notas -  Puede obtener router-ID del archivo /etc/neutron/l3_agent.ini. Si es necesario, puede utilizar el comando neutron net-list para obtener network-ID.
  10. Agregue la red privada del inquilino al enrutador.

    Para este paso, necesita el ID de enrutador y el ID de subred del inquilino. Puede obtener la información de la siguiente manera:

    1. Para obtener el ID de subred del inquilino, visualice primero los inquilinos y sus ID y, luego, las subredes del ID del inquilino específico.
      # keystone tenant-list
      # neutron net-list --tenant-id tenant-ID
    2. Agregue la red privada al enrutador.

      Puede repetir este paso en función de cuántas de las redes privadas del inquilino desea agregar a la red externa.

      controller# neutron router-interface-add router-ID subnet-ID
Ejemplo 4-2  Creación de la red externa para el inquilino service

El siguiente ejemplo utiliza parte de la Figure 3–3 como referencia. En la figura, el inquilino A tiene dos instancias de VM y cada una pertenece a una red privada. Las dos redes privadas son HR y ENG. Estas dos subredes se agregarán a la red externa para activar las dos instancias de VM con el fin de comunicarse con la red más amplia. El ejemplo asume que se utilizan el nombre de usuario y la contraseña predeterminados para el servicio Neutron se utiliza.

controller# svcadm enable ipfilter
controller# ipadm set-prop -p forwarding=on ipv4

controller# export OS_USERNAME=neutron
controller# export OS_PASSWORD=neutron
controller# export OS_TENANT_NAME=TenantA
controller# export OS_AUTH_URL=http://controller-name:5000/v2.0
controller# neutron router-create ext-router
Created a new router:
+-----------------------+-----------------+
| Field                 | Value           |
+-----------------------+-----------------+
| admin_state_up        | True            |
| external_gateway_info |                 |
| id                    | 97ro5-ut3er     |
| name                  | ext-router      |
| status                | ACTIVE          |
| tenant_id             | abcde12345      |
+-----------------------+-----------------+

En este punto, puede actualizar el archivo /etc/neutron/l3_agent.ini estableciendo el parámetro router_ID en 97ro5-ut3er.

Después de actualizar el archivo, continúe con los pasos restantes.

controller# svcadm enable neutron-l3-agent

controller# neutron net-create --provider:network_type=vlan \
--provider:segmentation_id=1 --router:external=true ext_network
Created a new network:
+--------------------------+-------------------+
| Field                    | Value             |
+--------------------------+-------------------+
| admin_state_up           | True              |
| id                       | 555ext-net555     |
| name                     | ext_network       |
| provider:network_type    | vlan              |
| provider:segmentation_id | 1                 |
| router:external          | True              |
| shared                   | False             |
| status                   | ACTIVE            |
| subnets                  |                   |
| tenant_id                | abcde12345        |
+--------------------------+-------------------+

controller# neutron subnet-create  --enable-dhcp=False \
--name ext_subnet --allocation-pool start=10.134.13.8,end=10.134.13.254 \
ext_network 10.134.13.0/24
Created a new subnet:

+------------------+--------------------------------------------------+
| Field            | Value                                            |
+------------------+--------------------------------------------------+
| allocation_pools | {"start": "10.134.13.8", "end": "10.134.13.254"} |
| cidr             | 10.134.13.0/24                                   |
| dns_nameservers  |                                                  |
| enable_dhcp      | False                                            |
| gateway_ip       | 10.134.13.1                                      |
| host_routes      |                                                  |
| id               | 444sub-net444                                    |
| ip_version       | 4                                                |
| name             | ext_subnet                                       |
| network_id       | 555ext-net555                                    |
| tenant_id        | abcde12345                                       |
+------------------+--------------------------------------------------+

controller# neutron router-gateway-set 97ro5-ut3er 555ext-net555
Set gateway for router 97ro5-ut3er

controller# keystone tenant-list
+------------+---------+---------+
|     id     |   name  | enabled |
+------------+---------+---------+
| 12345abcde | TenantA |  True   |
| 67890fghij | TenantB |  True   |
+------------+---------+---------+

controller# neutron net-list --tenant-id 12345abcde
+------------+------+-------------+
|     id     | name |   subnets   |
+------------+------+-------------+
| 1a3b5c7d9e | HR   | xyz-123-uvw |
| 2f4g6h8i0j | ENG  | 098-r2d2-56 |
+------------+------+-------------+

controller# neutron router-interface-add 97ro5-ut3er xyz-123-uvwHR added to the router.
Added interface xyz-123-uvw to router 97ro5-ut3er.

controller# neutron router-interface-add 97ro5-ut3er 098-r2d2-56ENG added to the router.
Added interface 098-r2d2-56 to router 97ro5-ut3er.

Véase también