Esta es la tercera parte de la configuración de neutron (Redes) en Ubuntu 14.04, puede leer el artículo anterior sobre Configurar Neutron #1 y Configurar Neutron #2, en el que hemos instalado y configurado los componentes de red en el controlador y el nodo Compute.
Aquí, crearemos la red inicial, debe crearse antes de lanzar una instancia de VM.
El diagrama anterior utiliza rangos de direcciones IP de ejemplo. Debe ajustarlos para su entorno particular.
Dado que estamos utilizando redes de autoservicio , debemos crear redes virtuales públicas y privadas.
Creación de una red pública de proveedores:
La instancia utiliza una red virtual de proveedor público que se conecta a la infraestructura de la red física a través de puentes/conmutaciones. Esta red incluye un servidor DHCP que proporciona recursos de red (dirección IP, subred, puerta de enlace y otros) a las instancias.
Cargue las credenciales en el nodo del controlador.
# source admin-openrc.sh
crear la red.
# neutron net-create public --shared --provider:physical_network public --provider:network_type flat Created a new network: +---------------------------+--------------------------------------+ | Field | Value | +---------------------------+--------------------------------------+ | admin_state_up | True | | id | 25109c9a-0d9c-498f-8a8a-9004219ee85a | | mtu | 0 | | name | public | | port_security_enabled | True | | provider:network_type | flat | | provider:physical_network | public | | provider:segmentation_id | | | router:external | False | | shared | True | | status | ACTIVE | | subnets | | | tenant_id | fe858f6a43f84c26b994f0be74c928e6 | +---------------------------+--------------------------------------+
Cree una subred en la red pública.
Por ejemplo, usar 192.168.0.0/24 con un rango de direcciones IP flotantes de 192.168.0.200 a 192.168.0.250 con la puerta de enlace física 192.168.0.1 con 8.8.4.4 como servidor DNS principal. Esta puerta de enlace debe estar asociada a la red física
# neutron subnet-create public 192.168.0.0/24 --name public --allocation-pool start=192.168.0.200,end=192.168.0.250 --dns-nameserver 8.8.4.4 --gateway 192.168.0.1 Created a new subnet: +-------------------+----------------------------------------------------+ | Field | Value | +-------------------+----------------------------------------------------+ | allocation_pools | {"start": "192.168.0.200", "end": "192.168.0.250"} | | cidr | 192.168.0.0/24 | | dns_nameservers | 8.8.4.4 | | enable_dhcp | True | | gateway_ip | 192.168.0.1 | | host_routes | | | id | 3cee40a7-e241-4f9e-8033-cdc03fc58d76 | | ip_version | 4 | | ipv6_address_mode | | | ipv6_ra_mode | | | name | public | | network_id | 25109c9a-0d9c-498f-8a8a-9004219ee85a | | subnetpool_id | | | tenant_id | fe858f6a43f84c26b994f0be74c928e6 | +-------------------+----------------------------------------------------+
Creación de una red de Proyecto Privado:
Cree una red virtual de proyecto privado para conectar la infraestructura de red física a través de la capa 3 (enrutamiento) y NAT. Esta red de proyecto privado incluye un servidor DHCP que proporciona direcciones IP a las instancias. Una instancia en esta red puede tener acceso a Internet. Sin embargo, el acceso a una instancia en esta red desde Internet requiere una dirección IP flotante.
Crea la red privada (privada).
# neutron net-create private Created a new network: +---------------------------+--------------------------------------+ | Field | Value | +---------------------------+--------------------------------------+ | admin_state_up | True | | id | 1b03eacd-e737-473b-8c0d-a16052f6505b | | mtu | 0 | | name | private | | port_security_enabled | True | | provider:network_type | vxlan | | provider:physical_network | | | provider:segmentation_id | 65 | | router:external | False | | shared | False | | status | ACTIVE | | subnets | | | tenant_id | fe858f6a43f84c26b994f0be74c928e6 | +---------------------------+--------------------------------------+
Cree una subred en la red interna. Por ejemplo, usando la red 192.168.100.0/24 con la puerta de enlace virtual 192.168.0.1 con 8.84.4. como servidor DNS primario. Un servidor DHCP asigna a cada instancia una dirección IP de 192.168.100.2 a 192.168.100.254
# neutron subnet-create private 192.168.100.0/24 --name private --dns-nameserver 8.8.4.4 --gateway 192.168.100.1 Created a new subnet: +-------------------+------------------------------------------------------+ | Field | Value | +-------------------+------------------------------------------------------+ | allocation_pools | {"start": "192.168.100.2", "end": "192.168.100.254"} | | cidr | 192.168.100.0/24 | | dns_nameservers | 8.8.4.4 | | enable_dhcp | True | | gateway_ip | 192.168.100.1 | | host_routes | | | id | 5b986d39-7f60-4c14-ad68-9aa797fc2487 | | ip_version | 4 | | ipv6_address_mode | | | ipv6_ra_mode | | | name | private | | network_id | 1b03eacd-e737-473b-8c0d-a16052f6505b | | subnetpool_id | | | tenant_id | fe858f6a43f84c26b994f0be74c928e6 | +-------------------+------------------------------------------------------+
Cree el enrutador virtual.
Las redes de proyectos privados se conectan a redes de proveedores públicos mediante un enrutador virtual, pasa el tráfico de red entre dos o más redes virtuales (hacia o desde privadas/públicas). En nuestro caso, necesitamos crear un enrutador y conectarle redes privadas y públicas.
# neutron router-create router Created a new router: +-----------------------+--------------------------------------+ | Field | Value | +-----------------------+--------------------------------------+ | admin_state_up | True | | external_gateway_info | | | id | e217d03c-ad34-4d64-bce8-0190e0eef6ca | | name | router | | routes | | | status | ACTIVE | | tenant_id | b558b39292b247b7a346678b80ed71e0 | +-----------------------+--------------------------------------+
Agregue la opción enrutador:externo a la red del proveedor público.
# neutron net-update public --router:external Updated network: public
Conecte el enrutador a la subred privada.
# neutron router-interface-add router private Added interface 74748304-cbfb-4c53-bc6e-d12271bbcdd1 to router router.
Conecte el enrutador a la red pública configurándolo como puerta de enlace.
# neutron router-gateway-set router public Set gateway for router router
Verificar:
Enumere los espacios de nombres de red, la salida debe tener un qrouter y dos qdhcp espacios de nombres.
# ip netns qrouter-e217d03c-ad34-4d64-bce8-0190e0eef6ca qdhcp-1b03eacd-e737-473b-8c0d-a16052f6505b qdhcp-25109c9a-0d9c-498f-8a8a-9004219ee85a
Puede verificar la conectividad haciendo ping a 192.168.0.200 desde la red física externa. Esto se debe a que usamos la subred 192.168.0.0/24, rangos de IP flotantes de 192.168.0.200 a 250, la puerta de enlace del enrutador del arrendatario debe ocupar la dirección IP más baja en el rango de direcciones IP flotantes, es decir, 192.168.0.200
C:\>ping 192.168.0.200 Pinging 192.168.0.200 with 32 bytes of data: Reply from 192.168.0.200: bytes=32 time=1ms TTL=64 Reply from 192.168.0.200: bytes=32 time=2ms TTL=64 Reply from 192.168.0.200: bytes=32 time=1ms TTL=64 Reply from 192.168.0.200: bytes=32 time=1ms TTL=64 Ping statistics for 192.168.0.200: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 1ms, Maximum = 2ms, Average = 1ms
¡Eso es todo! Ha creado con éxito redes iniciales para lanzar una instancia.
Referencia:Guía de OpenStack.