Le routeur assure la connectivité des instances de machine virtuelle de projet avec des réseaux plus larges. Le routeur est partagé par tous les réseaux de projet. Etant donné qu'il n'y a qu'un routeur, les réseaux de projet ne peuvent pas utiliser le chevauchement des adresses IP.
Le routeur effectue une translation d'adresse réseau (NAT) bidirectionnelle sur l'interface qui connecte le routeur au réseau externe. Les projets peuvent avoir autant d'adresses IP flottantes (IP publiques) que nécessaires ou qu'autorisées par le quota d'IP flottantes. Ces IP flottantes sont associées aux instances de machine virtuelle qui requièrent une connectivité avec l'extérieur.
La création du routeur requiert la configuration de l'agent L3 Neutron. Cet agent crée automatiquement des mappages NAT biunivoques entre les adresses affectées aux instances Nova et les adresses IP flottantes. L'agent L3 permet aussi la communication entre réseaux privés.
Par défaut, le routage entre les réseaux privés qui font partie du même projet est désactivé. Pour modifier ce comportement, définissez allow_forwarding_between_networks sur True dans le fichier de configuration /etc/neutron/l3_agent.ini. Redémarrez le service SMF neutron-l3-agent après avoir défini le paramètre.
Cette procédure explique comment créer le routeur pour le réseau externe. Une partie des étapes nécessite la modification d'un fichier de configuration. Aussi, il est plus pratique d'utiliser la fenêtre de terminal pour cette procédure que le tableau de bord Horizon.
Vous effectuez les étapes suivantes sur le noeud où le service Neutron est installé. Ce document localise le service sur le noeud de contrôleur, en fonction de l'exemple d'architecture décrit dans les chapitres précédents.
Avant de commencer
Prenez soin de terminer la configuration Neutron telle que décrite dans la section Installation et configuration de 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
La commande affiche le nom du routeur avec le code correspondant. Utilisez ce code pour mettre à jour le fichier de configuration à l'étape suivante.
router_id=routerIDID obtenu à l'étape précédente.
controller# svcadm enable neutron-l3-agent
Une fois que vous avez ajouté le réseau externe au routeur, des informations supplémentaires sont ajoutées sur le routeur.
controller# neutron router-show router-name
Cet exemple explique comment créer le routeur pour le réseau externe.
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 | +-----------------------+--------------------------------------+
A ce stade, vous devez mettre à jour le paramètre router_ID dans le fichier /etc/neutron/l3_agent.ini.
router_id = f89b24ed-42dd-48b0-8f4b-fd41887a3370
Puis, vous devez activer le service de l'agent L3.
controller# svcadm enable neutron-l3-agent