Réseau self-service

Si vous choisissez le réseau option 2, vous pouvez aussi créer un réseau self-service (privé) qui se connecte à l’infrastructure réseau physique via NAT. Ce réseau inclut un serveur DHCP qui fournit des adresses IP aux instances. Une instance sur ce réseau peut accèder automatiquement aux réseaux externes comme internet. Néanmoins, l’accès à une instance de ce réseau à partir d’un réseau externe comme internet nécessite une adresse IP flottante.

L’utilisateur demo ou tout autre utilisateur sans privilèges peut créer ce réseau parce qu’il fournit la connectivité uniquement aux instances du projet demo.

Avertissement

Vous devez créer le réseau fournisseur avant le réseau self-service.

Note

Les instructions et diagrammes suivants utilisent des exemples de plages d’adresses IP. Vous devez ajuster ces plages à votre environnement.

Networking Option 2: Self-service networks - Overview

Réseau Option 2 : Réseaux libre-service - Vue d’ensemble

Networking Option 2: Self-service networks - Connectivity

Réseau Option 2 : Réseaux libre-service - Connectivité

Créer le réseau self-service

  1. Sur le nœud contrôleur, sourcer les credentials demo pour obtenir l’accès aux commandes en ligne simple-utilisateur :

    $ . demo-openrc
    
  2. Créer le réseau :

    $ openstack network create selfservice
    
    Created a new network:
    +-------------------------+--------------------------------------+
    | Field                   | Value                                |
    +-------------------------+--------------------------------------+
    | admin_state_up          | UP                                   |
    | availability_zone_hints |                                      |
    | availability_zones      |                                      |
    | created_at              | 2016-11-04T18:20:59Z                 |
    | description             |                                      |
    | headers                 |                                      |
    | id                      | 7c6f9b37-76b4-463e-98d8-27e5686ed083 |
    | ipv4_address_scope      | None                                 |
    | ipv6_address_scope      | None                                 |
    | mtu                     | 1450                                 |
    | name                    | selfservice                          |
    | port_security_enabled   | True                                 |
    | project_id              | 3828e7c22c5546e585f27b9eb5453788     |
    | project_id              | 3828e7c22c5546e585f27b9eb5453788     |
    | revision_number         | 3                                    |
    | router:external         | Internal                             |
    | shared                  | False                                |
    | status                  | ACTIVE                               |
    | subnets                 |                                      |
    | tags                    | []                                   |
    | updated_at              | 2016-11-04T18:20:59Z                 |
    +-------------------------+--------------------------------------+
    

    Les utilisateurs sans privilège ne peuvent en général pas fournir de paramètres supplémentaires à cette commande. Le service choisit automatiquement les paramètres en utilisant les informations des fichiers suivants :

    ml2_conf.ini :

    [ml2]
    tenant_network_types = vxlan
    
    [ml2_type_vxlan]
    vni_ranges = 1:1000
    
  3. Créer un sous-réseau sur le réseau :

    $ openstack subnet create --network selfservice \
      --dns-nameserver DNS_RESOLVER --gateway SELFSERVICE_NETWORK_GATEWAY \
      --subnet-range SELFSERVICE_NETWORK_CIDR selfservice
    

    Remplacer DNS_RESOLVER par l’adresse IP d’un DNS. Dans la plupart des cas, vous pouvez utiliser un des serveurs DNS du fichier /etc/resolv.conf du host.

    Remplacer SELFSERVICE_NETWORK_GATEWAY par la passerelle que vous voulez utiliser sur le réseau self-service, généralement l’adresse IP en « .1 ».

    Remplacer SELFSERVICE_NETWORK_CIDR par le sous-réseau que vous voulez utiliser sur le réseau self-service. Vous pouvez utiliser n’importe quelle valeur arbitraire, bien que nous recommandions un réseau de la RFC 1918.

    Exemple

    Le réseau self-service utilise 172.16.1.0/24 avec la passerelle sur 172.16.1.1. Un serveur DHCP attribue à chaque instance une adresse IP entre 172.16.1.2 et 172.16.1.254. Toutes les instances utilisent 8.8.4.4 pour la résolution DNS.

    $ openstack subnet create --network selfservice \
      --dns-nameserver 8.8.4.4 --gateway 172.16.1.1 \
      --subnet-range 172.16.1.0/24 selfservice
    
    Created a new subnet:
    +-------------------+--------------------------------------+
    | Field             | Value                                |
    +-------------------+--------------------------------------+
    | allocation_pools  | 172.16.1.2-172.16.1.254              |
    | cidr              | 172.16.1.0/24                        |
    | created_at        | 2016-11-04T18:30:54Z                 |
    | description       |                                      |
    | dns_nameservers   | 8.8.4.4                              |
    | enable_dhcp       | True                                 |
    | gateway_ip        | 172.16.1.1                           |
    | headers           |                                      |
    | host_routes       |                                      |
    | id                | 5c37348e-e7da-439b-8c23-2af47d93aee5 |
    | ip_version        | 4                                    |
    | ipv6_address_mode | None                                 |
    | ipv6_ra_mode      | None                                 |
    | name              | selfservice                          |
    | network_id        | b9273876-5946-4f02-a4da-838224a144e7 |
    | project_id        | 3828e7c22c5546e585f27b9eb5453788     |
    | project_id        | 3828e7c22c5546e585f27b9eb5453788     |
    | revision_number   | 2                                    |
    | service_types     | []                                   |
    | subnetpool_id     | None                                 |
    | updated_at        | 2016-11-04T18:30:54Z                 |
    +-------------------+--------------------------------------+
    

Créer un routeur

Les réseaux self-service se connecte aux réseaux fournisseur via un routeur virtuel qui en général effectue du NAT bidirectionnel. Chaque routeur possède une interface dans au moins un réseau self-service et une passerelle sur un réseau fournisseur.

Le réseau fournisseur doit inclure l’option router: external pour permettre aux routeurs libre-service de l’utiliser pour se connecter aux réseaux externes comme Internet. L’utilisateur admin ou un autre utilisateur à privilèges doit inclure cette option lors de la création du réseau ou l’ajouter plus tard. Dans ce cas, l’option router:external a été définie en utilisant le paramètre --external lors de la création du réseau fournisseur.

  1. Sur le nœud contrôleur, sourcer les credentials demo pour obtenir l’accès aux commandes en ligne simple-utilisateur :

    $ . demo-openrc
    
  2. Créer le routeur :

    $ openstack router create router
    
    Created a new router:
    +-------------------------+--------------------------------------+
    | Field                   | Value                                |
    +-------------------------+--------------------------------------+
    | admin_state_up          | UP                                   |
    | availability_zone_hints |                                      |
    | availability_zones      |                                      |
    | created_at              | 2016-11-04T18:32:56Z                 |
    | description             |                                      |
    | external_gateway_info   | null                                 |
    | flavor_id               | None                                 |
    | headers                 |                                      |
    | id                      | 67324374-396a-4db6-9443-c70be167a42b |
    | name                    | router                               |
    | project_id              | 3828e7c22c5546e585f27b9eb5453788     |
    | project_id              | 3828e7c22c5546e585f27b9eb5453788     |
    | revision_number         | 2                                    |
    | routes                  |                                      |
    | status                  | ACTIVE                               |
    | updated_at              | 2016-11-04T18:32:56Z                 |
    +-------------------------+--------------------------------------+
    
  3. Ajouter le sous-réseau du réseau self-service comme interface du routeur :

    $ openstack router add subnet router selfservice
    
  4. Définir une passerelle sur le réseau fournisseur sur le routeur :

    $ openstack router set router --external-gateway provider
    

Vérifier le fonctionnement

Il est recommandé de vérifier le fonctionnement et régler les problèmes avant de poursuivre. Les étapes suivantes utilisent les plages d’adresses IP des exemples de création de réseau et sous-réseau.

  1. Sur le nœud contrôleur, sourcer les credentials admin pour obtenir l’accès aux commandes en ligne réservées à l’administrateur :

    $ . admin-openrc
    
  2. Lister les espaces de nommage réseau. Vous devriez voir un espace de nommage qrouter et deux espaces de nommage qdhcp.

    $ ip netns
    
    qrouter-89dd2083-a160-4d75-ab3a-14239f01ea0b
    qdhcp-7c6f9b37-76b4-463e-98d8-27e5686ed083
    qdhcp-0e62efcd-8cee-46c7-b163-d8df05c3c5ad
    
  3. Lister les ports sur le routeur pour déterminer l’adresse IP de la passerelle sur le réseau fournisseur :

    $ openstack port list --router router
    
    +--------------------------------------+------+-------------------+-------------------------------------------------------------------------------+--------+
    | ID                                   | Name | MAC Address       | Fixed IP Addresses                                                            | Status |
    +--------------------------------------+------+-------------------+-------------------------------------------------------------------------------+--------+
    | bff6605d-824c-41f9-b744-21d128fc86e1 |      | fa:16:3e:2f:34:9b | ip_address='172.16.1.1', subnet_id='3482f524-8bff-4871-80d4-5774c2730728'     | ACTIVE |
    | d6fe98db-ae01-42b0-a860-37b1661f5950 |      | fa:16:3e:e8:c1:41 | ip_address='203.0.113.102', subnet_id='5cc70da8-4ee7-4565-be53-b9c011fca011'  | ACTIVE |
    +--------------------------------------+------+-------------------+-------------------------------------------------------------------------------+--------+
    
  4. Pinguer cette adresse IP à partir du nœud contrôleur ou de tout autre host sur le réseau fournisseur physique.

    $ ping -c 4 203.0.113.102
    
    PING 203.0.113.102 (203.0.113.102) 56(84) bytes of data.
    64 bytes from 203.0.113.102: icmp_req=1 ttl=64 time=0.619 ms
    64 bytes from 203.0.113.102: icmp_req=2 ttl=64 time=0.189 ms
    64 bytes from 203.0.113.102: icmp_req=3 ttl=64 time=0.165 ms
    64 bytes from 203.0.113.102: icmp_req=4 ttl=64 time=0.216 ms
    
    --- 203.0.113.102 ping statistics ---
    rtt min/avg/max/mdev = 0.165/0.297/0.619/0.187 ms
    

Retourner à Lancer une instance - Créer des réseaux virtuels.