Il s'agit de la troisième partie de la configuration de neutron (Réseau) sur Ubuntu 14.04, vous pouvez consulter l'article précédent sur Configurer Neutron #1 et Configurer Neutron #2, dans lequel nous avons installé et configuré des composants réseau sur le contrôleur et le nœud de calcul.
Ici, nous allons créer le réseau initial, celui-ci doit être créé avant de lancer une ou plusieurs instances de VM.
Le diagramme ci-dessus utilise des exemples de plages d'adresses IP. Vous devez les ajuster à votre environnement particulier.
Étant donné que nous utilisons des réseaux en libre-service , nous devons créer des réseaux virtuels publics et privés.
Création d'un réseau de fournisseurs publics :
L'instance utilise un réseau virtuel de fournisseur public qui se connecte à l'infrastructure réseau physique via un pontage/commutation. Ce réseau comprend un serveur DHCP qui fournit des ressources réseau (adresse IP, sous-réseau, passerelle et autres) aux instances.
Charger les informations d'identification sur le nœud du contrôleur.
# source admin-openrc.sh
créer le réseau.
# 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 | +---------------------------+--------------------------------------+
Créez un sous-réseau sur le réseau public.
Par exemple, en utilisant 192.168.0.0/24 avec la plage d'adresses IP flottantes 192.168.0.200 à 192.168.0.250 avec la passerelle physique 192.168.0.1 avec 8.8.4.4 comme serveur DNS principal. Cette passerelle doit être associée au réseau physique
# 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 | +-------------------+----------------------------------------------------+
Création d'un réseau de projets privés :
Créez un réseau virtuel de projet privé pour connecter l'infrastructure réseau physique via la couche 3 (routage) et NAT. Ce réseau de projet privé comprend un serveur DHCP qui fournit des adresses IP aux instances. Une instance sur ce réseau peut avoir un accès à Internet. Cependant, l'accès à une instance sur ce réseau depuis Internet nécessite une adresse IP flottante.
Créez le réseau privé (privé).
# 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 | +---------------------------+--------------------------------------+
Créez un sous-réseau sur le réseau interne. Par exemple, en utilisant le réseau 192.168.100.0/24 avec la passerelle virtuelle 192.168.0.1 avec 8.84.4. en tant que serveur DNS principal. Un serveur DHCP attribue à chaque instance une adresse IP de 192.168.100.2 à 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 | +-------------------+------------------------------------------------------+
Créez le routeur virtuel.
Les réseaux de projets privés se connectent aux réseaux de fournisseurs publics à l'aide d'un routeur virtuel, il transmet le trafic réseau entre deux ou plusieurs réseaux virtuels (vers ou depuis privé/public). Dans notre cas, nous devons créer un routeur et y attacher des réseaux privés et publics.
# 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 | +-----------------------+--------------------------------------+
Ajoutez l'option router:external au réseau public du fournisseur.
# neutron net-update public --router:external Updated network: public
Connectez le routeur au sous-réseau privé.
# neutron router-interface-add router private Added interface 74748304-cbfb-4c53-bc6e-d12271bbcdd1 to router router.
Connectez le routeur au réseau public en le définissant comme passerelle.
# neutron router-gateway-set router public Set gateway for router router
Vérifier :
Répertoriez les espaces de noms de réseau, la sortie doit avoir un qrouter et deux qdhcp espaces de noms.
# ip netns qrouter-e217d03c-ad34-4d64-bce8-0190e0eef6ca qdhcp-1b03eacd-e737-473b-8c0d-a16052f6505b qdhcp-25109c9a-0d9c-498f-8a8a-9004219ee85a
Vous pouvez vérifier la connectivité en envoyant un ping à 192.168.0.200 à partir du réseau physique externe. En effet, nous avons utilisé le sous-réseau 192.168.0.0/24, les plages d'adresses IP flottantes de 192.168.0.200 à 250, la passerelle du routeur locataire doit occuper l'adresse IP la plus basse de la plage d'adresses IP flottantes, c'est-à-dire 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
C'est tout !!!, vous avez créé avec succès les réseaux initiaux pour le lancement d'une instance.
Référence :Guide OpenStack.