Cette procédure explique comment créer un réseau virtuel qui représente un réseau externe. Sur ce réseau virtuel, le DHCP n'est pas utilisé. A la place, des adresses IP flottantes sont créées. Ces adresses IP flottantes sont affectées à un locataire spécifique et peuvent être affectées aux instances des instances de machine virtuelle Nova pour que leurs utilisateurs sous ce locataire puissent les utiliser.
Comme le contrôleur inclut le service Neutron dans l'architecture multinoeud de démonstration de ce chapitre, vous effectuez les étapes suivantes dans le noeud de contrôleur.
Avant de commencer
Pour exécuter cette procédure, des réseaux internes doivent déjà exister pour le locataire. Pour consulter les procédures de création d'un réseau privé, reportez-vous à la rubrique Création d'un réseau externe.
En outre, vous devez avoir terminé la configuration du commutateur virtuel élastique, notamment les propriétés l2-type et vlan-range. L'exemple suivant décrit comment afficher ces paramètres de propriété une fois que vous les avez configurés à l'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 -- --
Vous devez également fournir les informations relatives au locataire dont vous connectez les réseaux privés au réseau externe. Vous pouvez afficher ces informations à tout moment à l'aide de la commande suivante :
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
La commande affiche le nom du routeur avec le code correspondant. Utilisez ce code pour mettre à jour le fichier de configuration à l'étape suivante.
Dans le fichier /etc/neutron/l3_agent.ini, configurez la valeur du paramètre router_id avec l'identificateur unique universel du routeur à l'étape précédente.
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
où la valeur de segmentation_id est le premier chiffre de la plage de VLAN.
Pour l'exemple de configuration de ce document, DHCP est désactivé. Le pool d'allocation correspond à une plage d'adresses IP flottantes affectée au sous-réseau.
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 \
Pour cette étape, vous devez vous munir du code du routeur et du code du sous-réseau du locataire. Vous pouvez obtenir ces informations comme suit :
# keystone tenant-list # neutron net-list --tenant-id tenant-ID
Répétez cette étape pour chaque réseau privé du locataire que vous voulez ajouter au réseau externe.
controller# neutron router-interface-add router-ID subnet-ID
L'exemple suivant utilise une partie de la Figure 3–3 comme référence. Dans la figure, le locataire Tenant A est associé à deux instances de machine virtuelle, chacune appartenant à un réseau privé. Les deux réseaux privés sont HR et ENG. Ces deux sous-réseaux seront ajoutés au réseau externe pour permettre aux deux instances de machine virtuelle de communiquer avec le réseau élargi. Dans cet exemple, le nom d'utilisateur et le mot de passe par défaut sont utilisés pour le service Neutron.
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 | +-----------------------+-----------------+
A ce stade, mettez à jour le fichier /etc/neutron/l3_agent.ini en définissant le paramètre router_ID avec la valeur 97ro5-ut3er.
Après avoir modifié le fichier, poursuivez avec les étapes 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.
Voir aussi