Réseau libre-service

Réseau libre-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 le 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. En revanche, 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ège 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 libre-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 libre-service

  1. Sur le contrôleur, sourcer les crédentiels demo pour obtenir l’accès aux commandes en ligne non privilégiées :

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

    $ neutron net-create selfservice
    Created a new network:
    +-----------------------+--------------------------------------+
    | Field                 | Value                                |
    +-----------------------+--------------------------------------+
    | admin_state_up        | True                                 |
    | id                    | 7c6f9b37-76b4-463e-98d8-27e5686ed083 |
    | mtu                   | 0                                    |
    | name                  | selfservice                          |
    | port_security_enabled | True                                 |
    | router:external       | False                                |
    | shared                | False                                |
    | status                | ACTIVE                               |
    | subnets               |                                      |
    | tenant_id             | f5b2ccaa75ac413591f12fcaa096aa5c     |
    +-----------------------+--------------------------------------+
    

    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 :

    $ neutron subnet-create --name selfservice \
      --dns-nameserver DNS_RESOLVER --gateway SELFSERVICE_NETWORK_GATEWAY \
      selfservice SELFSERVICE_NETWORK_CIDR
    

    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 de l’hôte.

    Remplacer SELFSERVICE_NETWORK_GATEWAY par la passerelle que vous voulez utiliser sur le réseau libre-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 libre-service. Vous pouvez utiliser n’importe quelle valeur arbitraire, bien que nous recommandions un réseau de la RFC 1918.

    Exemple

    Le réseau libre-service utilise 172.16.1.0/24 avec une passerelle en 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 comme serveur DNS.

    $ neutron subnet-create --name selfservice \
      --dns-nameserver 8.8.4.4 --gateway 172.16.1.1 \
      selfservice 172.16.1.0/24
    Created a new subnet:
    +-------------------+------------------------------------------------+
    | Field             | Value                                          |
    +-------------------+------------------------------------------------+
    | allocation_pools  | {"start": "172.16.1.2", "end": "172.16.1.254"} |
    | cidr              | 172.16.1.0/24                                  |
    | dns_nameservers   | 8.8.4.4                                        |
    | enable_dhcp       | True                                           |
    | gateway_ip        | 172.16.1.1                                     |
    | host_routes       |                                                |
    | id                | 3482f524-8bff-4871-80d4-5774c2730728           |
    | ip_version        | 4                                              |
    | ipv6_address_mode |                                                |
    | ipv6_ra_mode      |                                                |
    | name              | selfservice                                    |
    | network_id        | 7c6f9b37-76b4-463e-98d8-27e5686ed083           |
    | subnetpool_id     |                                                |
    | tenant_id         | f5b2ccaa75ac413591f12fcaa096aa5c               |
    +-------------------+------------------------------------------------+
    

Créer un routeur

Les réseaux libre-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 sur au moins un des réseaux libre-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, on peut l’ajouter au réseau fournisseur fournisseur existant.

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

    $ . admin-openrc
    
  2. Ajouter l’option router: external au réseau fournisseur :

    $ neutron net-update provider --router:external
    Updated network: provider
    
  3. Sourcer les crédentiels demo pour obtenir l’accès aux commandes en ligne non privilégiées :

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

    $ neutron router-create router
    Created a new router:
    +-----------------------+--------------------------------------+
    | Field                 | Value                                |
    +-----------------------+--------------------------------------+
    | admin_state_up        | True                                 |
    | external_gateway_info |                                      |
    | id                    | 89dd2083-a160-4d75-ab3a-14239f01ea0b |
    | name                  | router                               |
    | routes                |                                      |
    | status                | ACTIVE                               |
    | tenant_id             | f5b2ccaa75ac413591f12fcaa096aa5c     |
    +-----------------------+--------------------------------------+
    
  5. Ajouter le sous-réseau du réseau libre-service comme interface du routeur :

    $ neutron router-interface-add router selfservice
    Added interface bff6605d-824c-41f9-b744-21d128fc86e1 to router router.
    
  6. Définir sur le routeur une passerelle sur le réseau fournisseur :

    $ neutron router-gateway-set router provider
    Set gateway for router router
    

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 contrôleur, sourcer les crédentiels 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 devez 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 :

    $ neutron router-port-list router
    +--------------------------------------+------+-------------------+------------------------------------------+
    | id                                   | name | mac_address       | fixed_ips                                |
    +--------------------------------------+------+-------------------+------------------------------------------+
    | bff6605d-824c-41f9-b744-21d128fc86e1 |      | fa:16:3e:2f:34:9b | {"subnet_id":                            |
    |                                      |      |                   | "3482f524-8bff-4871-80d4-5774c2730728",  |
    |                                      |      |                   | "ip_address": "172.16.1.1"}              |
    | d6fe98db-ae01-42b0-a860-37b1661f5950 |      | fa:16:3e:e8:c1:41 | {"subnet_id":                            |
    |                                      |      |                   | "5cc70da8-4ee7-4565-be53-b9c011fca011",  |
    |                                      |      |                   | "ip_address": "203.0.113.102"}           |
    +--------------------------------------+------+-------------------+------------------------------------------+
    
  4. Pinguer cette adresse IP depuis le contrôleur ou depuis tout autre hôte 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.

Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.