Installation et configuration d'OpenStack (Kilo) dans Oracle® Solaris

Quitter la vue de l'impression

Mis à jour : Juin 2016
 
 

Création du réseau externe

Après avoir créé le routeur, vous devez configurer le réseau externe. Au moyen de la passerelle du réseau externe, les utilisateurs des réseaux internes du cloud peuvent se connecter à Internet.

La figure suivante illustre comment un seul routeur prend en charge les communications réseau des projets du cloud.

Figure 3  Routeur de fournisseur avec modèle de réseaux privés

image:Deux projets, chacun avec deux réseaux internes et deux instances de machine virtuelle

La figure présente les éléments suivants :

  • Deux projets (Locataire A et Locataire B)

  • Quatre machines virtuelles (VM1, VM2, VM3 et VM4)

  • Quatre sous-réseaux (HR, ENG, IT et ACCT)

  • Routeur

  • Réseau externe

Quand vous fournissez un accès de réseau interne au réseau externe, l'adresse IP de la machine virtuelle est mappée à l'une des adresses flottantes que vous affectez au réseau externe.

Création d'un réseau externe

Cette procédure explique comment créer un réseau virtuel qui représente un réseau externe. Ce réseau virtuel n'utilise pas DHCP. A la place, les adresses IP flottantes sont créées et affectées aux projets et utilisées par les instances de machine virtuelle Nova sous ces projets. Ces étapes créent un type de réseau VLAN, mais la procédure s'applique à la création d'autres types de réseau, tels qu'un réseau plat.

Vous pouvez créer le réseau externe indépendamment de la création des réseaux internes.

Avant de commencer

Terminez la configuration du commutateur virtuel élastique. Pour plus d'informations, reportez-vous à la section Installation et configuration de Neutron, notamment aux étapes de la configuration EVS.

  1. Définissez les variables shell globales pour Neutron.
    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
  2. (Facultatif) Obtenez la plage de VLAN.
    controller# evsadm show-controlprop -p vlan-range
  3. Créez un réseau externe.
    controller# neutron net-create --provider:network_type=vlan \
    --provider:segmentation_id=VLAN-nbr \
    --router:external network-name
    

    Cette étape suppose qu'un réseau VLAN a été créé en suivant la procédure indiquée à la section Installation et configuration de Neutron. segmentation_id est l'ID de VLAN du réseau VLAN, dont la plage a été définie lors de la configuration d'EVS.


    Remarque -  Si vous créez un réseau plat, vous n'avez pas à spécifier un ID segmentation.
  4. Créez le sous-réseau du réseau externe.

    Le pool d'allocation se compose d'une plage d'adresses IP flottantes qui est affectée au sous-réseau.

    controller# neutron subnet-create --name subnet-name --disable-dhcp \
       --allocation-pool start=start-IP,end=end-IP \
       network-name subnet-IP
  5. Ajoutez le réseau externe au routeur.
    controller# neutron router-gateway-set router-name ext-network-ID

    Remarque -  Par défaut, la SNAT est activée quand vous exécutez cette commande. Lorsque le mode SNAT est activé, les machines virtuelles du réseau privé peuvent accéder au réseau externe. Toutefois, les instances elles-mêmes ne peuvent pas être accédées en dehors du cloud. Pour désactiver la SNAT, spécifiez l'option –--disable-snat pour la sous-commande neutron router-gateway-set.
  6. (Facultatif) Affichez les informations sur le routeur.
    controller# neutron router-show router-name
Exemple 2  Création du réseau externe

Cet exemple explique comment créer le réseau externe pour le préparer à l'utilisation par des réseaux internes dans le cloud.

Pour créer un réseau plat, reportez-vous à l'exemple fourni dans la section 2 de https://blogs.oracle.com/openstack/tags/juno.

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# evsadm show-controlprop -p vlan-range
PROPERTY          PERM VALUE       DEFAULT   HOST
vlan-range        rw   1,200-300   --        --

controller# neutron net-create --router:external \
--provider:network_type=vlan --provider:segmentation_id=1 ext_network
Created a new network:
+--------------------------+--------------------------------------+
| Field                    | Value                                |
+--------------------------+--------------------------------------+
| admin_state_up           | True                                 |
| id                       | 08cf49c8-f28f-49c1-933d-bdb1017e0294 |
| name                     | ext_network                          |
| provider:network_type    | vlan                                 |
| provider:segmentation_id | 1                                    |
| router:external          | True                                 |
| shared                   | False                                |
| status                   | ACTIVE                               |
| subnets                  |                                      |
| project_id               | 7d1caf0854b24becb28df5c5cabf72cc     |
+--------------------------+--------------------------------------+

controller# neutron subnet-create --name ext_subnet --disable-dhcp \
   --allocation-pool start=10.134.10.8,end=10.134.10.254 \
   ext_network 10.134.10.0/24
Created a new subnet:
+-------------------+---------------------------------------------------+
| Field             | Value                                             |
+-------------------+---------------------------------------------------+
| allocation_pools  | {"start": "10.134.10.8", "end": "10.134.10.254"}  |
| cidr              | 10.134.10.0/24                                    |
| dns_nameservers   |                                                   |
| enable_dhcp       | False                                             |
| gateway_ip        | 10.134.13.1                                       |
| host_routes       |                                                   |
| id                | fce503ff-f483-4024-b122-f2524e3edae1              |
| ip_version        | 4                                                 |
| ipv6_address_mode |                                                   |
| ipv6_ra_mode      |                                                   |
| name              | ext_subnet                                        |
| network_id        | 08cf49c8-f28f-49c1-933d-bdb1017e0294              |
| project_id        | 7d1caf0854b24becb28df5c5cabf72cc                  |
+-------------------+---------------------------------------------------+

controller# neutron router-gateway-set ext-router 08cf49c8-f28f-49c1-933d-bdb1017e0294
Set gateway for router ext-router

controller# neutron router-show ext-router
+-----------------------+-------------------------------------------------------+
| Field                 | Value                                                 |
+-----------------------+-------------------------------------------------------+
| admin_state_up        | True                                                  |
| external_gateway_info | {"network_id": "08cf49c8-f28f-49c1-933d-bdb1017e0294",|
|                       | "enable_snat": true,                                  |
|                       | "external_fixed_ips":                                 |
|                       |[{"subnet_id": "fce503ff-f483-4024-b122-f2524e3edae1", |
|                       |"ip_address": "10.134.10.8"}]} |                       |
| id                    | f89b24ed-42dd-48b0-8f4b-fd41887a3370                  |
| name                  | ext-router                                            |
| status                | ACTIVE                                                |
| project_id            | 7d1caf0854b24becb28df5c5cabf72cc                      |
+-----------------------+-------------------------------------------------------+

Voir aussi

Connectivité externe aux réseaux internes

Utilisez cette procédure pour activer un réseau interne pour accéder au réseau public étendu. Cette procédure suppose que des réseaux internes existent déjà pour des projets spécifiques. Pour créer un réseau interne de projet à l'aide du tableau de nord, reportez-vous à la section Création de réseaux internes pour les projets.

Avant de commencer

Avant de poursuivre, obtenez le nom du sous-réseau qui nécessite l'accès public.

  1. Définissez les variables shell globales pour Neutron.
    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
  2. Identifiez l'ID du sous-réseau qui requiert l'accès externe.
    controller# neutron subnet-list | grep subnet-name
  3. (Facultatif) Obtenez le nom du routeur.
    controller# neutron router-list
  4. Ajoutez l'ID du sous-réseau comme interface pour le routeur.
    controller# neutron router-interface-add router-name subnetID
Exemple 3  Connexion d'un réseau interne au réseau externe

Cet exemple utilise le réseau interne HR qui a été créé dans la section Configuration d'un réseau pour un projet. Le réseau HR, dont le sous-réseau est HR_Subnet, requiert un accès au réseau public.

controller# neutron subnet-list | grep HR_Subnet
| b6feff42-36aa-4235- | HR_Subnet  | 10.132.30.0/24 | {"start": "10.132.30.2", |
|   9fe0-ac5de6b43af3 |            |                |  "end": "10.132.30.254"} |

controller# neutron router-list
+---------------------  +------------+--------------------------------+
| id                    | name       | external_gateway_info          |
+---------------------  +------------+--------------------------------+
| f89b24ed-42dd-48b0-   | ext-router | {"network_id": "6c4c1823-a203- |
|    8f4b-fd41887a3370  |            |    43b1-9674-ddb5ff4185fc",    |
|                       |            | "enable_snat": true,           |
|                       |            | "external_fixed_ips":          |
|                       |            | [{"subnet_id": "83d9b40f-cc61- |
|                       |            |    4696-b22e-b4cbc2aa3872",    |
|                       |            | "ip_address": "10.132.10.8"}]} |
+----------  -----------+------------+--------------------------------+

controller# neutron router-interface-add ext-router b6feff42-36aa-4235-9fe0-ac5de6b43af3
Added interface b6feff42-36aa-4235-9fe0-ac5de6b43af3 to router ext-router.

Respect de la configuration de l'agent L3

Vous pouvez utiliser des commandes de filtre IP, telles que ipf, ippool, et ipnat et des commandes de mise en réseau , telles que dladm et ipadm pour respecter et résoudre les problèmes de la configuration effectuée par neutron-l3-agent.

  1. Affichez les VNIC créées par neutron-l3-agent.
    network# dladm show-vnic
    LINK                OVER         SPEED  MACADDRESS        MACADDRTYPE VIDS
    l3i7843841e_0_0     net1         1000   2:8:20:42:ed:22   fixed       200
    l3i89289b8e_0_0     net1         1000   2:8:20:7d:87:12   fixed       201
    l3ed527f842_0_0     net0         100    2:8:20:9:98:3e    fixed       0
    
  2. Affichez les adresses IP créée par neutron-l3-agent.
    network# ipadm
    NAME                  CLASS/TYPE STATE   UNDER      ADDR
    l3ed527f842_0_0       ip         ok      --         --
      l3ed527f842_0_0/v4  static     ok      --         10.134.10.8/24
      l3ed527f842_0_0/v4a static     ok      --         10.134.10.9/32
    l3i7843841e_0_0       ip         ok      --         --
      l3i7843841e_0_0/v4  static     ok      --         192.168.100.1/24
    l3i89289b8e_0_0       ip         ok      --         --
      l3i89289b8e_0_0/v4  static     ok      --         192.168.101.1/24
  3. Affichez les règles de filtrage IP.
    network# ipfstat -io
    empty list for ipfilter(out)
    block in quick on l3i7843841e_0_0 from 192.168.100.0/24 to pool/4386082
    block in quick on l3i89289b8e_0_0 from 192.168.101.0/24 to pool/8226578
    network# ippool -l
    table role = ipf type = tree number = 8226578
    { 192.168.100.0/24; };
    table role = ipf type = tree number = 4386082
    { 192.168.101.0/24; };
  4. Affichez les règles de filtrage NAT.
    network# ipnat -l
    List of active MAP/Redirect filters:
    bimap l3ed527f842_0_0 192.168.101.3/32 -> 10.134.13.9/32
    List of active sessions:
    BIMAP 192.168.101.3  22  <- -> 10.134.13.9  22 [10.132.146.13 36405]