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
- Connectez-vous à Serveur de gestion OpenStack en tant que
viouser
. - Connectez-vous au nœud de contrôleur en tant que
viouser
. - Basculez vers l'utilisateur
root
et chargez le fichier d'informations d'identification d'administrateur cloud.sudo su - source ~/cloudadmin.rc
- 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
- 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.
- 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.
- 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.
- 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.
- 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. - 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. - É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.
- Configurez vos routeurs physiques.
- Assurez-vous que l'AS des routeurs physiques est l'AS distant des nœuds Edge.
- Configurez les nœuds Edge en tant que voisins BGP.
- Définissez chaque routeur qu'il s'annonce lui-même en tant que passerelle dynamique.
- Créez et configurez le locuteur BGP.
- Créer le locuteur BGP.
neutron bgp-speaker-create --local-as local_as_value name_bgp_speaker
- 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
- 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
- Associez le locuteur au réseau VXLAN.
neutron bgp-speaker-network-add name_bgp_speaker external_VXLAN_network_name
- Créer le locuteur BGP.
- (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.- 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
- Créez un routeur avec une configuration BGP.
BGP fonctionne avec tous les facteurs de forme des routeurs logiques OpenStack :
shared
,distributed
etexclusive
.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
- Créez deux commutateurs logiques par locataire et des pools de sous-réseaux pour chacun d'entre eux.
Résultats
Le routage dynamique BGP est maintenant configuré du côté du fournisseur et les locataires peuvent également l'utiliser.