Puede configurar el enrutamiento dinámico de BGP para las redes de proveedor y de tenant en el entorno.

Después de habilitar BGP, las subredes lógicas creadas por los tenants se anuncian fuera del entorno sin que sea necesario indicar el NAT de origen o las direcciones IP flotantes. Primero debe crear una red externa de VXLAN que más adelante utilizará como interfaz interna para las instancias de Edge de puerta de enlace.

Procedimiento

  1. Inicie sesión en Servidor de administración de OpenStack como viouser.
  2. Inicie sesión en el nodo del controlador como viouser.
  3. Cambie al usuario root y cargue el archivo de credenciales del administrador de nube.
    sudo su -
    source ~/cloudadmin.rc
  4. Cree un ámbito de dirección IPv4 para futuras subredes de tenants y la subred de la red VXLAN externa.
    neutron address-scope-create name 4
  5. Cree un grupo de subredes para la red externa.
    neutron subnetpool-create external-pool --pool-prefix network-address --default-prefixlen prefix-bits --address-scope scope-name --shared

    Opción

    Descripción

    external-pool

    Introduzca un nombre para el grupo de subredes.

    --pool-prefix

    Introduzca la dirección de red del grupo de subredes en formato CIDR (por ejemplo, 192.0.2.0/24). Las subredes se asignarán desde esta red.

    --default-prefixlen

    Introduzca la longitud del prefijo de red (en bits) para utilizarlo con nuevas subredes que se crean sin especificar una longitud de prefijo.

    --address-scope

    Introduzca el nombre del ámbito de dirección IPv4 que creó en el paso 4.

  6. Cree un grupo de subredes para redes de tenants.
    neutron subnetpool-create tenant-pool --pool-prefix network-address --default-prefixlen prefix-bits --address-scope scope-name --shared
    Nota:

    OpenStack anunciará este grupo de subredes al tejido físico. Especifique un prefijo que no se esté utilizando actualmente.

    Opción

    Descripción

    tenant-pool

    Introduzca un nombre para el grupo de subredes.

    --pool-prefix

    Introduzca la dirección de red del grupo de subredes en formato CIDR (por ejemplo, 192.51.100.0/24). Las subredes se asignarán desde esta red.

    --default-prefixlen

    Introduzca la longitud del prefijo de red (en bits) para utilizarlo con nuevas subredes que se crean sin especificar una longitud de prefijo.

    --address-scope

    Introduzca el nombre del ámbito de dirección IPv4 que creó en el paso 4.

  7. Cree una red externa basada en VXLAN.
    neutron net-create network-name --provider:network_type vxlan --router:external

    Este comando crea un nuevo conmutador lógico en NSX Data Center for vSphere.

  8. Crear una subred en la red externa.

    La subred debe tener deshabilitado DHCP y ninguna puerta de enlace.

    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

    Opción

    Descripción

    external-network

    Introduzca el nombre de la red externa basada en VXLAN que creó en el paso 7.

    external-subnet-address

    Introduzca la dirección de red de la subred en formato CIDR (por ejemplo, 192.51.100.0/28).

    --name

    Introduzca un nombre para la subred.

    --allocation-pool

    Introduzca la primera y la última dirección IP del rango que desea asignar de esta subred.

    --subnetpool

    Introduzca el grupo de subredes que creó en el paso 5 para la red externa.

  9. Cree nodos perimetrales de 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

    Opción

    Descripción

    name

    Introduzca un nombre para el nodo perimetral de BGP.

    local-as

    Introduzca el número de AS local para el nodo perimetral. Los enrutadores físicos y perimetrales no pueden estar en el mismo AS.

    external-iface

    Introduzca el identificador de objeto administrado (Managed Object Identifier, MOID) del grupo de puertos asociado con la VLAN que conecta los nodos perimetrales con los enrutadores físicos. Después de los dos puntos, introduzca la dirección IP del nodo perimetral en la red de administración.

    internal-iface

    Introduzca el identificador de cableado virtual de la red externa basada en VXLAN. Después de los dos puntos, introduzca la dirección IP del nodo perimetral en la red física.

    Para buscar el identificador de cableado virtual, ejecute el comando openstack network show external-network-name y busque el valor del parámetro provider:physical_network.

  10. Habilite el anuncio de BGP en los nodos perimetrales.
    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

    Para el parámetro gw-edge-ids, utilice el identificador perimetral (por ejemplo, edge-4) en lugar del nombre. Puede ejecutar el comando sudo -u neutron nsxadmin -r bgp-gw-edge -o view para mostrar el identificador de cada nodo perimetral de BGP.

  11. Establezca una relación de vecino de BGP entre los nodos perimetrales.
    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

    Opción

    Descripción

    gw-edge-ids

    Introduzca el identificador perimetral de cada nodo, separado por comas.

    ip-address

    Introduzca la dirección IP en el enrutador físico.

    remote-as

    Introduzca el número de AS de los enrutadores físicos conectados a los nodos perimetrales.

    password

    Introduzca la contraseña de BGP.

  12. Configure los enrutadores físicos.
    1. Asegúrese de que el AS de los enrutadores físicos es el AS remoto de los nodos perimetrales.
    2. Configure los nodos perimetrales como vecinos de BGP.
    3. Configure cada enrutador de modo que se anuncie como una puerta de enlace dinámica.
  13. Cree y configure el orador de BGP.
    1. Cree BGP Speaker.
      neutron bgp-speaker-create --local-as local_as_value name_bgp_speaker
      
    2. Cree los emparejamientos de 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. Agregue el emparejamiento de BGP a BGP Speaker.
      neutron bgp-speaker-peer-add name_bgp_speaker name_GW-EDGE1 
      
      neutron bgp-speaker-peer-add name_bgp_speaker name_GW-EDGE2
      
    4. Asocie Speaker con la red VXLAN.
      neutron bgp-speaker-network-add name_bgp_speaker external_VXLAN_network_name
  14. (opcional) Cree enrutadores de BGP para los arrendatarios.

    Los usuarios de arrendatario pueden crear sus propios enrutadores de BGP. El usuario de arrendatario debe ser admin para configurar un enrutador sin SNAT.

    1. Cree dos conmutadores lógicos para un arrendatario y grupos de subredes para ellos.
      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. Cree un enrutador con la configuración de BGP.

      BGP funciona con todos los formatos de enrutadores lógicos de OpenStack: shared, distributed y 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
      

Resultados

El enrutamiento dinámico de BGP ahora está configurado en el lado del proveedor y los arrendatarios también pueden utilizarlo.