Sie können dynamisches BGP-Routing für die Anbieter- und Mandantennetzwerke in Ihrer Umgebung konfigurieren.
Nachdem Sie BGP aktivieren, werden die von Ihren Mandanten erstellten logischen Subnetze außerhalb Ihrer Umgebung angekündigt. Dafür sind weder Quell-NAT- noch dynamische IP-Adressen erforderlich. Sie müssen zuerst ein externes VXLAN-Netzwerk erstellen, das Sie später als interne Schnittstelle für die Gateway-Edges verwenden.
Prozedur
- Melden Sie sich beim OpenStack Management Server als
viouser
an. - Melden Sie sich beim Controller-Knoten als
viouser
an. - Wechseln Sie zum
root
-Benutzer und laden Sie die Datei mit den Anmeldedaten des Cloud-Administrators.sudo su - source ~/cloudadmin.rc
- Erstellen Sie einen IPv4-Adressbereich für künftige Mandanten-Subnetze und das Subnetz Ihres externen VXLAN-Netzwerks.
neutron address-scope-create name 4
- Erstellen Sie einen Subnetzpool für das externe Netzwerk.
neutron subnetpool-create external-pool --pool-prefix network-address --default-prefixlen prefix-bits --address-scope scope-name --shared
Option
Beschreibung
external-pool
Geben Sie einen Namen für den Subnetzpool ein.
--pool-prefix
Geben Sie die Netzwerkadresse des Subnetzpools im CIDR-Format ein (z. B. 192.0.2.0/24). Subnetze werden aus diesem Netzwerk zugeteilt.
--default-prefixlen
Geben Sie die Netzwerkpräfixlänge (in Bit) ein, die für neue Subnetze verwendet werden soll, welche ohne Angabe einer Präfixlänge erstellt werden.
--address-scope
Geben Sie den Namen des IPv4-Adressbereichs ein, den Sie in Schritt 4 erstellt haben.
- Erstellen Sie Subnetzpool für Mandantennetzwerke.
neutron subnetpool-create tenant-pool --pool-prefix network-address --default-prefixlen prefix-bits --address-scope scope-name --shared
Hinweis:OpenStack kündigt diesen Subnetzpool für das physische Fabric an. Geben Sie ein Präfix an, das derzeit nicht verwendet wird.
Option
Beschreibung
tenant-pool
Geben Sie einen Namen für den Subnetzpool ein.
--pool-prefix
Geben Sie die Netzwerkadresse des Subnetzpools im CIDR-Format ein (z. B. 192.51.100.0/24). Subnetze werden aus diesem Netzwerk zugeteilt.
--default-prefixlen
Geben Sie die Netzwerkpräfixlänge (in Bit) ein, die für neue Subnetze verwendet werden soll, welche ohne Angabe einer Präfixlänge erstellt werden.
--address-scope
Geben Sie den Namen des IPv4-Adressbereichs ein, den Sie in Schritt 4 erstellt haben.
- Erstellen Sie ein VXLAN-basiertes externes Netzwerk.
neutron net-create network-name --provider:network_type vxlan --router:external
Dieser Befehl erstellt einen neuen logischen Switch in NSX Data Center for vSphere.
- Erstellen Sie ein Subnetz im externen Netzwerk.
DHCP muss für das Subnetz deaktiviert sein und das Subnetz darf kein Gateway aufweisen.
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
Beschreibung
external-network
Geben Sie den Namen des VXLAN-basierten externen Netzwerks ein, das Sie in Schritt 7 erstellt haben.
external-subnet-address
Geben Sie die Netzwerkadresse für das Subnetz im CIDR-Format ein (z. B. 192.51.100.0/28).
--name
Geben Sie einen Namen für das Subnetz ein.
--allocation-pool
Geben Sie die erste und letzte IP-Adresse des Bereichs ein, den Sie aus diesem Subnetz zuweisen möchten.
--subnetpool
Geben Sie den Subnetzpool ein, den Sie in Schritt 5 für das externe Netzwerk erstellt haben.
- Erstellen Sie BGP-Edge-Knoten.
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
Beschreibung
name
Geben Sie einen Namen für den BGP-Edge-Knoten ein.
local-as
Geben Sie die lokale AS-Nummer für den Edge-Knoten ein. Die Edges und physischen Router dürfen sich nicht im selben AS befinden.
external-iface
Geben Sie den MOID (Managed Object Identifier) der Portgruppe ein, die dem VLAN zugeordnet ist, welches die Edge-Knoten mit den physischen Routern verbindet. Geben Sie nach dem Doppelpunkt die IP-Adresse des Edge-Knotens im Verwaltungsnetzwerk ein.
internal-iface
Geben Sie den Bezeichner der virtuellen Leitung des VXLAN-basierten externen Netzwerks ein. Geben Sie nach dem Doppelpunkt die IP-Adresse des Edge-Knotens im physischen Netzwerk ein.
Führen Sie für die Suche des Bezeichners der virtuellen Leitung den Befehl
openstack network show external-network-name
aus und suchen Sie den Wert des Parameters provider:physical_network. - Aktivieren Sie die BGP-Ankündigung auf den Edge-Knoten.
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
Verwenden Sie für den Parameter gw-edge-ids den Edge-Bezeichner (z. B.
edge-4
) anstelle des Namens. Sie können den Befehl sudo -u neutron nsxadmin -r bgp-gw-edge -o view ausführen, um die Bezeichner der einzelnen BGP-Edge-Knoten anzuzeigen. - Stellen Sie eine BGP-Nachbarbeziehung zwischen den Edge-Knoten her.
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
Beschreibung
gw-edge-ids
Geben Sie die Edge-Bezeichner der einzelnen Knoten ein, getrennt durch ein Komma.
ip-address
Geben Sie die IP-Adresse des physischen Routers ein.
remote-as
Geben Sie die AS-Nummer der physischen Router ein, die mit den Edge-Knoten verbunden sind.
password
Geben Sie das BGP-Kennwort ein.
- Konfigurieren Sie Ihre physischen Router.
- Stellen Sie sicher, dass das AS der physischen Router das Remote-AS der Edge-Knoten ist.
- Konfigurieren Sie die Edge-Knoten als BGP-Nachbarn.
- Legen Sie jeden Router so fest, dass er sich selbst als dynamisches Gateway ankündigt.
- Erstellen und konfigurieren Sie den BGP-Speaker.
- Erstellen Sie den BGP-Speaker.
neutron bgp-speaker-create --local-as local_as_value name_bgp_speaker
- Erstellen Sie BGP-Peers.
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
- Fügen Sie dem BGP-Speaker den BGP-Peer hinzu.
neutron bgp-speaker-peer-add name_bgp_speaker name_GW-EDGE1 neutron bgp-speaker-peer-add name_bgp_speaker name_GW-EDGE2
- Ordnen Sie dem VXLAN-Netzwerk den Speaker zu.
neutron bgp-speaker-network-add name_bgp_speaker external_VXLAN_network_name
- Erstellen Sie den BGP-Speaker.
- (Optional) Erstellen Sie BGP-Router für Mandanten.
Mandantenbenutzer können ihre BGP-Router erstellen. Der Mandantenbenutzer muss
admin
sein, um einen Router ohne SNAT zu konfigurieren.- Erstellen Sie zwei logische Switches für einen Mandanten sowie die zugehörigen Subnetzpools.
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
- Erstellen Sie einen Router mit BGP-Konfiguration.
BGP funktioniert mit allen Formfaktoren logischer OpenStack-Router:
shared
,distributed
undexclusive
.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
- Erstellen Sie zwei logische Switches für einen Mandanten sowie die zugehörigen Subnetzpools.
Ergebnisse
Dynamisches BGP-Routing ist nun auf der Anbieterseite konfiguriert und kann auch von Mandanten verwendet werden.