Vous pouvez configurer le routage dynamique BGP pour les réseaux de fournisseur et le locataire dans votre environnement.

Après avoir activé BGP, les sous-réseaux logiques créés par vos locataires sont annoncés en dehors de votre environnement sans nécessiter une NAT source ou des adresses IP flottantes. Vous devez d'abord créer un réseau VXLAN externe que vous utilisez ensuite comme interface interne pour vos dispositifs Edge de passerelle.

Procédure

  1. Connectez-vous à Serveur de gestion OpenStack en tant que viouser.
  2. Connectez-vous au nœud de contrôleur en tant que viouser.
  3. Basculez vers l'utilisateur root et chargez le fichier d'informations d'identification d'administrateur cloud.
    sudo su -
    source ~/cloudadmin.rc
  4. Créez une étendue d'adresses IPv4 pour les futurs sous-réseaux de locataires et le sous-réseau de votre réseau VXLAN externe.
    neutron address-scope-create nom 4
  5. Créez un pool de sous-réseaux pour le réseau externe.
    neutron subnetpool-create external-pool --pool-prefix network-address --default-prefixlen prefix-bits --address-scope scope-name --shared

    Option

    Description

    externe-pool

    Entrez le nom du pool de sous-réseaux.

    --pool-prefix

    Entrez l'adresse réseau du pool de sous-réseaux au format CIDR (192.0.2.0/24, par exemple). Les sous-réseaux seront alloués à partir de ce réseau.

    --default-prefixlen

    Entrez la longueur du préfixe réseau (en octets) à utiliser pour les nouveaux sous-réseaux qui sont créés sans spécifier une longueur de préfixe.

    --address-scope

    Entrez le nom de l'étendue d'adresses IPv4 que vous avez créée à l'étape 4.

  6. Créez un pool de sous-réseaux pour les réseaux de locataires.
    neutron subnetpool-create tenant-pool --pool-prefix network-address --default-prefixlen prefix-bits --address-scope scope-name --shared
    Note:

    OpenStack annoncera ce pool de sous-réseaux à l'infrastructure physique. Spécifiez un préfixe qui n'est pas actuellement en cours d'utilisation.

    Option

    Description

    tenant-pool

    Entrez le nom du pool de sous-réseaux.

    --pool-prefix

    Entrez l'adresse réseau du pool de sous-réseaux au format CIDR (192.51.100.0/24, par exemple). Les sous-réseaux seront alloués à partir de ce réseau.

    --default-prefixlen

    Entrez la longueur du préfixe réseau (en octets) à utiliser pour les nouveaux sous-réseaux qui sont créés sans spécifier une longueur de préfixe.

    --address-scope

    Entrez le nom de l'étendue d'adresses IPv4 que vous avez créée à l'étape 4.

  7. Créez un réseau externe basée sur VXLAN.
    neutron net-create network-name --provider:network_type vxlan --router:external

    Cette commande crée un commutateur logique dans NSX Data Center for vSphere.

  8. Créez un sous-réseau sur le réseau externe.

    DHCP doit être désactivé sur ce sous-réseau, et aucune passerelle ne doit s'y trouver.

    neutron subnet-create external-network external-subnet-address --name external-subnet --allocation-pool start=subnet-ip1,end=subnet-ip2 --subnetpool provider-subnet-pool --no-gateway --disable-dhcp

    Option

    Description

    external-network

    Entrez le nom du réseau externe basé sur VXLAN que vous avez créé à l'étape 7.

    external-subnet-address

    Entrez l'adresse réseau du sous-réseau au format CIDR (192.51.100.0/28, par exemple).

    --nom

    Entrez le nom que vous souhaitez attribuer au sous-réseau.

    --allocation-pool

    Entrez les première et dernière adresses IP de la plage que vous souhaitez allouer à partir de ce sous-réseau.

    --subnetpool

    Entrez le pool de sous-réseaux que vous avez créé à l'étape 5 pour le réseau externe.

  9. Créez des nœuds Edge BGP.
    sudo -u neutron nsxadmin -r bgp-gw-edge -o create --property name=edge-name --property local-as=local-as-number --property external-iface=portgroup-moid:mgmt-network-ip --property internal-iface=physical-net-id:external-network-ip

    Option

    Description

    nom

    Entrez le nom du nœud Edge BGP.

    local-as

    Entrez le numéro AS local pour le nœud Edge. Les routeurs Edge et physiques ne peuvent pas se trouver dans le même AS.

    external-iface

    Entrez l'identifiant d'objet géré (MOID) du groupe de ports associé au VLAN qui connecte les nœuds Edge aux routeurs physiques. Après les deux-points, entrez l'adresse IP du nœud Edge sur le réseau de gestion.

    internal-iface

    Entrez l'identifiant de câble virtuel du réseau externe basé sur VXLAN. Après les deux-points, entrez l'adresse IP du nœud Edge sur le réseau physique.

    Pour trouver l'identifiant de câble virtuel, exécutez la commande openstack network show external-network-name et recherchez la valeur du paramètre provider:physical_network.

  10. Activer l'annonce de BGP sur les nœuds Edge.
    sudo -u neutron nsxadmin -r routing-redistribution-rule -o create --property gw-edge-ids=edge1-id,edge2-id --property learner-protocol=bgp --property learn-from=connected,bgp --property action=permit

    Pour le paramètre gw-edge-ids, utilisez l'identifiant edge (par exemple, edge-4) au lieu du nom. Vous pouvez exécuter la commande sudo -u neutron nsxadmin -r bgp-gw-edge -o view pour afficher l'identifiant de chaque nœud Edge BGP.

  11. Établissez une relation de voisin BGP entre les nœuds Edge.
    sudo -u neutron nsxadmin -r bgp-neighbour -o create --property gw-edge-ids=edge1-id,edge2-id --property ip-address=physical-router1-ip --property remote-as=remote-as-number --property password=bgp-password

    Option

    Description

    gw-edge-ids

    Entrez l'identifiant Edge de chaque nœud, séparée par une virgule.

    ip-address

    Entrez l'adresse IP sur le routeur physique.

    remote-as

    Entrez le numéro AS des routeurs physiques connectés aux nœuds Edge.

    mot de passe

    Entrez le mot de passe BGP.

  12. Configurez vos routeurs physiques.
    1. Assurez-vous que l'AS des routeurs physiques est l'AS distant des nœuds Edge.
    2. Configurez les nœuds Edge en tant que voisins BGP.
    3. Définissez chaque routeur qu'il s'annonce lui-même en tant que passerelle dynamique.
  13. Créez et configurez le locuteur BGP.
    1. Créer le locuteur BGP.
      neutron bgp-speaker-create --local-as local_as_value name_bgp_speaker
      
    2. Créez les homologues BGP.
      neutron bgp-peer-create --peer-ip internal_interface_network_GW-EDGE1 --remote-as 65001 --password BGP_password --auth-type md5 name_GW-EDGE1 --esg-id edge-ID_GW-EDGE1
      
      neutron bgp-peer-create --peer-ip internal_interface_network_GW-EDGE2 --remote-as 65001 --password BGP_password --auth-type md5 name_GW-EDGE2 --esg-id edge-ID_GW-EDGE2
    3. Ajoutez l'homologue BGP au locuteur BGP.
      neutron bgp-speaker-peer-add name_bgp_speaker name_GW-EDGE1 
      
      neutron bgp-speaker-peer-add name_bgp_speaker name_GW-EDGE2
      
    4. Associez le locuteur au réseau VXLAN.
      neutron bgp-speaker-network-add name_bgp_speaker external_VXLAN_network_name
  14. (Facultatif) Créez des routeurs BGP pour les locataires.

    Les utilisateurs de locataire peuvent créer leurs routeurs BGP. L'utilisateur de locataire doit être un admin pour configurer un routeur sans SNAT.

    1. Créez deux commutateurs logiques par locataire et des pools de sous-réseaux pour chacun d'entre eux.
      neutron net-create name_Tenant1_LS1
      
      neutron subnet-create --name name_network_Tenant1-LS1 name_Tenant1_LS1 --subnetpool selfservice
      
      neutron net-create name_Tenant1_LS2
      
      neutron subnet-create --name name_network_Tenant1-LS2 name_Tenant1_LS2 --subnetpool selfservice
      
    2. Créez un routeur avec une configuration BGP.

      BGP fonctionne avec tous les facteurs de forme des routeurs logiques OpenStack : shared, distributed et exclusive.

      neutron router-create name_Tenant1-LR --router_type=exclusive
      
      neutron router-interface-add name_Tenant1-LR name_network_Tenant1-LS1
      
      neutron router-interface-add name_Tenant1-LR name_network_Tenant1-LS2
      
      neutron router-gateway-set name_Tenant1-LR --disable-snat external_VXLAN_network_name
      

Résultats

Le routage dynamique BGP est maintenant configuré du côté du fournisseur et les locataires peuvent également l'utiliser.