Después de crear el enrutador, debe configurar la red externa. Mediante el gateway de la red externa, los usuarios en las redes internas de la nube pueden conectarse a Internet.
En la siguiente figura, se muestra cómo se usa un único enrutador para las comunicaciones de red de los proyectos de la nube.
Figura 3 Enrutador de proveedor con modelo de redes privadas
La figura muestra lo siguiente:
Dos proyectos (Tenant A y Tenant B)
Cuatro VM (VM1, VM2, VM3 y VM4)
Cuatro subredes (HR, ENG, IT y ACCT)
Enrutador
Red externa
Cuando permite que una red interna tenga acceso a la red externa, la dirección IP de la VM se asigna a una de las direcciones flotantes que se asignan a la red externa.
En este procedimiento, se muestra cómo crear una red virtual que representa una red externa. Esta red virtual no usa DHCP. En cambio, se crean y asignan direcciones IP flotantes a los proyectos, y las usan las instancias de VM de Nova de esos proyectos. Estos pasos crean un tipo de red VLAN, pero el procedimiento se aplica para crear otros tipos de red, como una red plana.
Puede crear la red externa de forma independiente a la creación de redes internas.
Antes de empezar
Complete la configuración del conmutador virtual elástico. Para obtener más información, consulte Cómo instalar y configurar Neutron, particularmente los pasos para configurar EVS.
controller# export OS_USERNAME=neutron controller# export OS_PASSWORD=service-password controller# export OS_PROJECT_NAME=service controller# export OS_AUTH_URL=http://$CONTROLLER_ADMIN_NODE:5000/v2.0
controller# evsadm show-controlprop -p vlan-range
controller# neutron net-create --provider:network_type=vlan \ --provider:segmentation_id=VLAN-nbr \ --router:external network-name
En este paso, se supone que ya se creó una red VLAN como se describe en Cómo instalar y configurar Neutron. El valor de segmentation_id es el ID de la red VLAN, cuyo rango definió cuando configuró el EVS.
La agrupación de asignaciones consta de un rango de direcciones IP flotantes que está asignado a la subred.
controller# neutron subnet-create --name subnet-name --disable-dhcp \ --allocation-pool start=start-IP,end=end-IP \ network-name subnet-IP
controller# neutron router-gateway-set router-name ext-network-ID
controller# neutron router-show router-name
En este ejemplo, se muestra cómo crear la red externa para prepararla para que las redes internas de la nube la usen.
Para crear una red plana, consulte también el ejemplo proporcionado en la sección 2 de https://blogs.oracle.com/openstack/tags/juno.
controller# export OS_USERNAME=neutron controller# export OS_PASSWORD=service-password controller# export OS_PROJECT_NAME=service controller# export OS_AUTH_URL=http://$CONTROLLER_ADMIN_NODE:5000/v2.0 controller# evsadm show-controlprop -p vlan-range PROPERTY PERM VALUE DEFAULT HOST vlan-range rw 1,200-300 -- -- controller# neutron net-create --router:external \ --provider:network_type=vlan --provider:segmentation_id=1 ext_network Created a new network: +--------------------------+--------------------------------------+ | Field | Value | +--------------------------+--------------------------------------+ | admin_state_up | True | | id | 08cf49c8-f28f-49c1-933d-bdb1017e0294 | | name | ext_network | | provider:network_type | vlan | | provider:segmentation_id | 1 | | router:external | True | | shared | False | | status | ACTIVE | | subnets | | | project_id | 7d1caf0854b24becb28df5c5cabf72cc | +--------------------------+--------------------------------------+ controller# neutron subnet-create --name ext_subnet --disable-dhcp \ --allocation-pool start=10.134.10.8,end=10.134.10.254 \ ext_network 10.134.10.0/24 Created a new subnet: +-------------------+---------------------------------------------------+ | Field | Value | +-------------------+---------------------------------------------------+ | allocation_pools | {"start": "10.134.10.8", "end": "10.134.10.254"} | | cidr | 10.134.10.0/24 | | dns_nameservers | | | enable_dhcp | False | | gateway_ip | 10.134.13.1 | | host_routes | | | id | fce503ff-f483-4024-b122-f2524e3edae1 | | ip_version | 4 | | ipv6_address_mode | | | ipv6_ra_mode | | | name | ext_subnet | | network_id | 08cf49c8-f28f-49c1-933d-bdb1017e0294 | | project_id | 7d1caf0854b24becb28df5c5cabf72cc | +-------------------+---------------------------------------------------+ controller# neutron router-gateway-set ext-router 08cf49c8-f28f-49c1-933d-bdb1017e0294 Set gateway for router ext-router controller# neutron router-show ext-router +-----------------------+-------------------------------------------------------+ | Field | Value | +-----------------------+-------------------------------------------------------+ | admin_state_up | True | | external_gateway_info | {"network_id": "08cf49c8-f28f-49c1-933d-bdb1017e0294",| | | "enable_snat": true, | | | "external_fixed_ips": | | |[{"subnet_id": "fce503ff-f483-4024-b122-f2524e3edae1", | | |"ip_address": "10.134.10.8"}]} | | | id | f89b24ed-42dd-48b0-8f4b-fd41887a3370 | | name | ext-router | | status | ACTIVE | | project_id | 7d1caf0854b24becb28df5c5cabf72cc | +-----------------------+-------------------------------------------------------+
Véase también
Use este procedimiento para activar una red interna para acceder a la red pública más amplia. Este procedimiento supone que ya existen redes internas para proyectos específicos. Para crear una red interna de proyecto utilizando el panel de control, consulte Creación de redes internas para proyectos.
Antes de empezar
Antes de continuar, debe obtener el nombre de subred que necesita acceso público.
controller# export OS_USERNAME=neutron controller# export OS_PASSWORD=service-password controller# export OS_PROJECT_NAME=service controller# export OS_AUTH_URL=http://$CONTROLLER_ADMIN_NODE:5000/v2.0
controller# neutron subnet-list | grep subnet-name
controller# neutron router-list
controller# neutron router-interface-add router-name subnetID
Este ejemplo usa la red interna HR creada en Cómo configurar una red para un proyecto. La red HR, cuya subred es HR_Subnet, requiere acceso a la red pública.
controller# neutron subnet-list | grep HR_Subnet | b6feff42-36aa-4235- | HR_Subnet | 10.132.30.0/24 | {"start": "10.132.30.2", | | 9fe0-ac5de6b43af3 | | | "end": "10.132.30.254"} | controller# neutron router-list +--------------------- +------------+--------------------------------+ | id | name | external_gateway_info | +--------------------- +------------+--------------------------------+ | f89b24ed-42dd-48b0- | ext-router | {"network_id": "6c4c1823-a203- | | 8f4b-fd41887a3370 | | 43b1-9674-ddb5ff4185fc", | | | | "enable_snat": true, | | | | "external_fixed_ips": | | | | [{"subnet_id": "83d9b40f-cc61- | | | | 4696-b22e-b4cbc2aa3872", | | | | "ip_address": "10.132.10.8"}]} | +---------- -----------+------------+--------------------------------+ controller# neutron router-interface-add ext-router b6feff42-36aa-4235-9fe0-ac5de6b43af3 Added interface b6feff42-36aa-4235-9fe0-ac5de6b43af3 to router ext-router.
Puede usar comandos de filtro IP, como ipf, ippool y ipnat, y comandos de redes, como dladm y ipadm, para observar y resolver el problema de la configuración realizada por neturon-l3-agent.
network# dladm show-vnic LINK OVER SPEED MACADDRESS MACADDRTYPE VIDS l3i7843841e_0_0 net1 1000 2:8:20:42:ed:22 fixed 200 l3i89289b8e_0_0 net1 1000 2:8:20:7d:87:12 fixed 201 l3ed527f842_0_0 net0 100 2:8:20:9:98:3e fixed 0
network# ipadm NAME CLASS/TYPE STATE UNDER ADDR l3ed527f842_0_0 ip ok -- -- l3ed527f842_0_0/v4 static ok -- 10.134.10.8/24 l3ed527f842_0_0/v4a static ok -- 10.134.10.9/32 l3i7843841e_0_0 ip ok -- -- l3i7843841e_0_0/v4 static ok -- 192.168.100.1/24 l3i89289b8e_0_0 ip ok -- -- l3i89289b8e_0_0/v4 static ok -- 192.168.101.1/24
network# ipfstat -io empty list for ipfilter(out) block in quick on l3i7843841e_0_0 from 192.168.100.0/24 to pool/4386082 block in quick on l3i89289b8e_0_0 from 192.168.101.0/24 to pool/8226578 network# ippool -l table role = ipf type = tree number = 8226578 { 192.168.100.0/24; }; table role = ipf type = tree number = 4386082 { 192.168.101.0/24; };
network# ipnat -l List of active MAP/Redirect filters: bimap l3ed527f842_0_0 192.168.101.3/32 -> 10.134.13.9/32 List of active sessions: BIMAP 192.168.101.3 22 <- -> 10.134.13.9 22 [10.132.146.13 36405]