El enrutador proporciona conectividad para proyectar instancias de VM con redes más amplias. El enrutador es compartido por todas las redes de proyecto. Dado que hay solamente un único enrutador, las redes de proyecto no pueden usar direcciones IP superpuestas.
El enrutador realiza traducción de direcciones de red (NAT) bidireccional en la interfaz que conecta el enrutador a la red externa. Los proyectos pueden tener tantas IP flotantes (IP públicas) como necesitan o como permite la cuota de IP flotante. Estas IP flotantes se asocian con las instancias de VM que requieren conectividad externa.
La creación del enrutador requiere la configuración del agente Neutron L3. Este agente crea automáticamente asignaciones NAT de uno a uno entre las direcciones asignadas a instancias de Nova y las direcciones IP flotantes. El agente L3 también permite la comunicación entre redes privadas.
Por defecto, el enrutamiento entre redes privadas del mismo proyecto está desactivado. Para cambiar este comportamiento, defina allow_forwarding_between_networks en Trueen el archivo de configuración /etc/neutron/l3_agent.ini. Reinicie el servicio SMF neutron-l3-agent después de definir el parámetro.
En este procedimiento, se muestra cómo crear un enrutador para la red externa. Parte de los pasos requieren editar un archivo de configuración. Por lo tanto, para este procedimiento es más conveniente usar la ventana de terminal que el panel de control de Horizon.
Debe realizar los siguientes pasos en el nodo donde está instalado el servicio Neutron. Este documento localiza el servicio en el nodo de controlador basado en la arquitectura de ejemplo descrita en los capítulos anteriores.
Antes de empezar
Asegúrese de que se haya completado la configuración de Neutron como se describe en Cómo instalar y configurar Neutron.
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_PROJECT_NAME=service controller# export OS_AUTH_URL=http://$CONTROLLER_ADMIN_NODE: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.
router_id=routerIDID obtenido en el paso anterior.
controller# svcadm enable neutron-l3-agent
Después de agregar la red externa al enrutador, se agrega más información sobre el enrutador.
controller# neutron router-show router-name
En este ejemplo, se muestra cómo crear un enrutador para la red externa.
controller# svcadm enable -rs ipfilter controller# ipadm set-prop -p forwarding=on ipv4 controller# ipadm set-prop -p forwarding=on ipv6 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 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 | | project_id | 7d1caf0854b24becb28df5c5cabf72cc | +-----------------------+--------------------------------------+
En este punto, debe actualizar router_id en el archivo /etc/neutron/l3_agent.ini.
router_id = f89b24ed-42dd-48b0-8f4b-fd41887a3370
Luego, debe activar el servicio de agente L3.
controller# svcadm enable neutron-l3-agent