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
controller# svcadm enable 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-name controller# export OS_AUTH_URL=http://controller-name:5000/v2.0
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.
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
controller# svcadm enable neutron-l3-agent
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.
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
controller# neutron router-gateway-set router-ID network-ID \
Para este paso, necesita el ID de enrutador y el ID de subred del inquilino. Puede obtener la información de la siguiente manera:
# keystone tenant-list # neutron net-list --tenant-id tenant-ID
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
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