Geschätzte Dauer: 6–8 Stunden
Eigentümer der betriebsbereiten Komponente: PNET
2.8.1. Übersicht
In diesem Schritt werden Konfigurationsdateien bereitgestellt, die es den Netzwerken der Operations Suite Infrastructure (OI) und GDC ermöglichen, eine Verbindung herzustellen.
Für diese Schritte ist der Zugriff auf einige GDC-Dateien sowie die Verbindung zum Root-Administratorcluster der GDC-Instanz erforderlich, damit Laufzeitnetzwerkinformationen abgerufen werden können.
2.8.2. Hinweise
In dieser Phase des Bereitstellungsprozesses muss Folgendes zutreffen:
Beide OIR-Switches sind verkabelt, eingeschaltet, auf die entsprechende Version aktualisiert und haben Basis- und ACL-Konfigurationen.
Beide OIF-Firewalls sind verkabelt, eingeschaltet, auf die entsprechende Version aktualisiert, für den FIPS-CC-Modus aktiviert und haben die Basiskonfiguration angewendet.
Damit die gesamte GDC-Verbindungsbereitstellung abgeschlossen werden kann, muss die GDC-Instanz das Netzwerk-Bootstraping abgeschlossen und den Kind-Cluster verlassen haben und sich im Administrator-Root-Cluster befinden.
2.8.3. Vorbereitung
Bereiten Sie die Umgebung für die folgenden Schritte vor, indem Sie die folgenden Informationen zusammentragen und die Umgebungsvariablen festlegen.
OI kann auf zwei Arten verbunden werden: lokal oder per Fernzugriff.
Bei einer lokalen Verbindung wird OI direkt über Glasfaserverbindungen zwischen Racks im selben Rechenzentrum mit GDC verbunden.
Bei einer Remote-Verbindung wird über einen Long-Haul-Transport eine Verbindung zu einem anderen Standort hergestellt.
Diese Spezifikation kann in der interconnect.yaml-Datei angegeben werden, die zum Bereitstellen von GDC-Verbindungen erforderlich ist.
Diese Datei enthält alle Informationen, die zum Konfigurieren der GDC-Verbindungen erforderlich sind.
2.8.3.1. YAML-Spezifikation für Interconnect-Verbindungen
| Attribut |
Beschreibung |
Beispiel |
|---|---|---|
zones[ ] map |
Informationen zur GDC-Zelle, mit der die OI-Bereitstellung verbunden werden muss. Wenn Sie eine Verbindung zu einer Liste von GDC-Zellen herstellen möchten, geben Sie eine Liste von zones mit Informationen zu jeder GDC-Zelle in jeder Zone an.
Zonenoptionen |
Beispiel:zones: |
2.8.3.2. Zonenoptionen
Enthält Informationen zu einer GDC-Zelle in der Datei interconnect.yaml:
| Attribut |
Beschreibung |
Nutzung |
|---|---|---|
zoneNameString |
Abkürzung der GDC-Zelle, mit der die OI-Bereitstellung verbunden werden muss. | zones: |
uplinkSpeeduint32 |
Optional: Gibt die Uplink-Geschwindigkeit der Verbindung an (10 oder 100).
|
Werte:10, 100Standard: 10uplinkSpeed: 100 |
localInstanceint |
Die InstanceID der OI-Bereitstellungswebsite aus der ocit.yaml-Datei.Über eine lokale Verbindung wird der Standort des Operations Suite Infrastructure Core Rack (OIR) direkt mit dem GDC verbunden. Dazu werden Glasfaserverbindungen zwischen Racks im selben Rechenzentrum verwendet. |
zones: |
remoteInstance[ ] int |
InstanceID(s) des OI-Bereitstellungsorts aus der ocit.yaml-Datei.Bei einer Remote-Verbindung wird über Langstreckentransporte eine Verbindung zu einem oder mehreren anderen Standorten hergestellt. Es kann eine Liste von remoteInstance-Werten angegeben werden, sodass Konfigurationen für alle OIR-Websites generiert werden, um eine Verbindung zu den angegebenen GDC-Zellen herzustellen.
|
zones: zones: |
cellCfgString |
GDC-Zellenkonfigurationspfad, der alle Informationen zu Interconnects enthält. Damit werden alle Interconnect-Konfigurationen für OIR generiert.\ Wenn `cellCfg` nicht in der Datei „interconnect.yaml“ angegeben ist, verwendet das Tool „occonfig“ die Kubernetes API im GDC-Zellen-Bootstrapper, um Interconnect-Informationen abzurufen, wenn `zoneName` mit der GDC-Zellenabkürzung übereinstimmt. | zones: |
Wenn es sich um eine lokale Verbindung handelt, konfigurieren Sie die Datei interconnect.yaml so:
zones:
- zoneName: ah
uplinkSpeed: 100
localInstanceID: 1
cellCfg: /path/to/cellcfg
Wenn es sich um eine Remote-Verbindung handelt, konfigurieren Sie die Datei interconnect.yaml so:
zones:
- zoneName: ah
uplinkSpeed: 100
remoteInstanceIDs:
- 2
cellCfg: /path/to/cellcfg
Geben Sie für OI-Bereitstellungen an mehreren Standorten die interconnect.yaml-Datei so an:
zones:
- zoneName: ah
uplinkSpeed: 100
localInstanceID: 1
remoteInstanceIDs:
- 2
cellCfg: /path/to/cellcfg
2.8.3.3. WAN-Optionen
Die folgende Tabelle enthält Informationen zum L3-WAN in der Datei interconnect.yaml.
Wenn Sie die L3-WAN-Konfigurationen bereitstellen, achten Sie darauf, dass für die generierten Basiskonfigurationen das Feature-Flag L3-WAN aktiviert und die ASN wan-transit deklariert ist.
| Attribut | Typ | Beschreibung |
|---|---|---|
| wanName | String | Name des L3-WAN, das eine Verbindung zu OIC herstellt. Dieser Wert wird für Beschreibungen in Schnittstellen und BGP-Nachbarschaften verwendet. |
| operationsCIDRs | [ ] CIDR | Eine Reihe von CIDR-Blöcken, die vom L3-WAN erwartet werden und vom OIC zugelassen werden. So wird die Verbindung zwischen dem NOC des Kunden und OC-WORKSTATIONS eingerichtet. |
| Instanzen | Konfiguration jeder Instanz, die eine Verbindung zum L3-WAN herstellen muss. | |
| instanceID | int | Instanz-ID der OIC-Instanz, für die Konfigurationen zum Herstellen einer Verbindung zum bereitgestellten L3-WAN generiert werden sollen. |
| bgp | BGP-Konfiguration des L3-WAN. | |
| asn | int | BGP-ASN der L3-WAN-PE-Knoten zum Einrichten von eBGP-Verbindungen. |
| Geräte | Spezifische Konfiguration für jeden OCCORE-Switch. | |
| deviceName | String | Gerätename, der in Beschreibungen verwendet wird. Sollte mit dem Namen der Konfigurationsdatei übereinstimmen, die aus der Datei ocit.yaml generiert wurde (ocit config generation). |
| Uplinks | Spezifische Konfiguration für Ports, die mit L3-WAN-PE-Knoten verbunden sind. | |
| uplinkName | String | Schnittstellenname, der für die Schnittstellenbeschreibung verwendet wird. |
| bgpPassword | String | BGP-Passwort für das Peering im Klartext. |
| ip | String | IPv4-Adresse des lokalen Ports, der mit dem PE-Knoten des L3-WAN verbunden ist. |
| Gateway | String | Die IPv4-Adresse des Remote-Ports, der mit dem PE-Knoten verbunden ist. Sie wird auch für die BGP-Nachbaradresse verwendet. |
| Subnetz | String | Subnetzdefinition der Schnittstelle, die mit dem PE-Knoten verbunden ist. |
| Port | int | Physische Portnummer auf dem OCCORE-Switch, die für die Verbindung mit dem PE-Knoten verwendet wird. |
| Unterschnittstelle | int | Subinterface-ID (dot1q-Tag), die zusätzlich zum physischen Port verwendet wird (falls vorhanden). |
2.8.3.3.1. Beispielkonfigurationen
Das folgende Beispiel zeigt eine interconnect.yaml-Datei, in der das Operations Suite Infrastructure Core Rack (OIR) mit einem L3-WAN verbunden ist. Es gibt zwei Uplinks auf occoresw01 und einen Uplink auf occoresw02:
zones:
- zoneName: kb
uplinkSpeed: 10
localInstanceID: 1
cellCfg: /path/to/cellcfg
wan:
- wanName:L3WANName
operationsCIDRs:
- ipFamily: IPv4
ipv4: 172.22.48.0/24
- ipFamily: IPv4
ipv4: 172.22.49.0/24
- ipFamily: IPv4
ipv4: 172.22.50.0/24
- ipFamily: IPv4
ipv4: 172.22.51.0/24
instances:
- instanceID: 1
bgp:
asn: 65515
devices:
- deviceName: occoresw101
uplinks:
- uplinkName: AA
bgpPassword: admin!123
numberedIpGroup:
ipFamily: IPv4
ipv4:
ip: 10.1.0.1
subnet:
gateway: 10.1.0.0
subnet: 10.1.0.0/31
port:
port: 33
- uplinkName: AB
bgpPassword: admin!123
numberedIpGroup:
ipFamily: IPv4
ipv4:
ip: 10.1.0.3
subnet:
gateway: 10.1.0.2
subnet: 10.1.0.2/31
port:
port: 34
subinterface: 100
- deviceName: occoresw102
uplinks:
- uplinkName: AC
bgpPassword: admin!123
numberedIpGroup:
ipFamily: IPv4
ipv4:
ip: 10.2.0.3
subnet:
gateway: 10.2.0.2
subnet: 10.2.0.2/31
port:
port: 35
2.8.4. Switch-Konfigurationen generieren
Bei diesen Schritten werden Patchkonfigurationen generiert, die auf die Netzwerkgeräte angewendet werden, um die Verbindung zu GDC bereitzustellen.
Schalterkonfigurationen generieren:
occonfigtool generate cell config -c /path/to/interconnect.yaml -o path/to/ocit.yaml
Dadurch werden die folgenden Konfigurationsdateien für jede Website generiert:
| Konfigurationsdatei(en) | Gerät | Funktion |
|---|---|---|
| occoresw101.incremental | occoresw101 | Konfiguration zum Patchen des Geräts für die Verbindung zur GDC-Instanz |
| occoresw101.acl | occoresw101 | Konfiguration zum Patchen der ACLs für die Traffic-Durchsetzung mit den GDC-Netzwerken. |
| occoresw102.incremental | occoresw102 | Konfiguration zum Patchen des Geräts für die Verbindung zur GDC-Instanz |
| occoresw102.acl | occoresw102 | Konfiguration zum Patchen der ACLs für die Traffic-Durchsetzung mit den GDC-Netzwerken. |
| ocsw101.incremental | ocs1w01 | Konfiguration zum Patchen des Geräts für die Verbindung zur GDC-Instanz |
| ocsw101.acl | ocsw101 | Konfiguration zum Patchen der ACLs für die Traffic-Durchsetzung mit den GDC-Netzwerken. |
| ocsw102.incremental | ocsw102 | Konfiguration zum Patchen des Geräts für die Verbindung zur GDC-Instanz |
| ocsw102.acl | ocsw102 | Konfiguration zum Patchen der ACLs für die Traffic-Durchsetzung mit den GDC-Netzwerken. |
2.8.5. Firewallrichtlinien generieren
Damit die Firewallregeln generiert werden können, muss occonfigtool auf die Kubernetes API für den Root-Administratorcluster zugreifen. Prüfen Sie, ob die Umgebungsvariable KUBECONFIG auf root-admin-kubeconfig festgelegt ist:
export KUBECONFIG=/root/release/root-admin/root-admin-kubeconfig
export OCIT_CONFIG_FILE=/path/to/ocit.yaml
export OCIT_INTERCONNECT_CONFIG_FILE=/path/to/interconnect.yaml
Generieren Sie die Firewallregeln mit diesem Befehl:
occonfigtool generate fwrules -c ${OCIT_INTERCONNECT_CONFIG_FILE:?} -o ${OCIT_CONFIG_FILE:?}
| Konfigurationsdatei(en) | Gerät | Funktion |
|---|---|---|
| firewall-rules.base | occorefw01 | Konfiguration zum Patchen des Geräts für die Verbindung zur GDC-Instanz |
2.8.6. Konfigurationen anwenden
Wenden Sie die Konfiguration mit den Ausgabedateien auf die entsprechenden Netzwerkgeräte an. Gehen Sie dabei genauso vor wie im vorherigen Schritt für Switches und Firewalls.
2.8.7. GDC-Ressourcen für RoutePolicy aktualisieren
GDC verwendet Routenrichtlinien, um zu erzwingen, welche Netzwerke in der Routingtabelle beworben werden dürfen.
Wenn Sie OI als externes Netzwerk hinzufügen, müssen wir die benutzerdefinierten RoutePolicy-Ressourcen aktualisieren, damit sie die neuen Netzwerke berücksichtigen.
Dazu müssen Sie mit kubectl auf den Root-Administratorcluster zugreifen. Prüfen Sie, ob die entsprechende KUBECONFIG-Variable festgelegt ist:
export KUBECONFIG=/root/deploy/root-admin/root-admin-kubeconfig
So bestätigen Sie das Problem:
kubectl get routepolicy -n gpc-system
Die folgende oder eine ähnliche Ausgabe sollte angezeigt werden:
NAME AGE
customerpeering-routepolicy 19d
datacenter-routepolicy 19d
mgmtnetworkoperationcenter-routepolicy 19d
networkoperationcenter-routepolicy 19d
In diesen Schritten werden die networkoperationcenter-routepolicy und mgmtnetworkoperationcenter-routepolicy untersucht.
2.8.7.1. Patch-Datennetzwerk-Routenrichtlinien
Rufen Sie aus ocinfo.opscenter.local.txt die folgenden Subnetze ab (einschließlich Netzwerk und Präfixlänge).
- OCCORE-SERVERS, im folgenden Beispiel als
$OCCORE_SERVERS_NETverwendet - OC-WORKSTATIONS, im folgenden Beispiel als
$OC_WORKSTATIONS_NETverwendet
Verwenden Sie diese Werte, um die Routenrichtlinien anzupassen, indem Sie die folgenden Variablen ausfüllen:
export OCCORE_SERVERS_NET=$OCCORE_SERVERS_NET
export OC_WORKSTATIONS_NET=$OC_WORKSTATIONS_NET
Beispiel:
export OCCORE_SERVERS_NET=172.21.0.0/24
export OC_WORKSTATIONS_NET=172.21.32.0/24
Nachdem die Umgebungsvariablen festgelegt wurden, führen Sie die folgenden kubectl-Befehle aus, um die Routenrichtlinien zu aktualisieren:
kubectl patch routepolicy/networkoperationcenter-routepolicy -n gpc-system \
--type=json -p="[
{
'op': 'add',
'path': '/spec/in/ipPrefixList/0',
'value': {
'action': 'Permit',
'ipPrefix': '${OCCORE_SERVERS_NET:?}',
'prefixLengthMatchers': [
{
'operator': 'LE',
'prefixLength': 32
}
]
}
}
]"
kubectl patch routepolicy/networkoperationcenter-routepolicy -n gpc-system \
--type=json -p="[
{
'op': 'add',
'path': '/spec/in/ipPrefixList/0',
'value': {
'action': 'Permit',
'ipPrefix': '${OC_WORKSTATIONS_NET:?}',
'prefixLengthMatchers': [
{
'operator': 'LE',
'prefixLength': 32
}
]
}
}
]"
Beispielausgabe:
routepolicy.system.private.gdc.goog/networkoperationcenter-routepolicy patched
2.8.7.2. Netzwerkroutenrichtlinien für die Patchverwaltung
Rufen Sie aus ocinfo.opscenter.local.txt die folgenden Subnetze ab (einschließlich Netzwerk und Präfixlänge).
- OCCORE-JUMPHOSTS, im folgenden Beispiel als
$OCCORE_JUMPHOSTS_NETverwendet - OCCORE-ILOS, im folgenden Beispiel als
$OCCORE_ILOS_NETverwendet
Verwenden Sie diese Werte, um die Routenrichtlinien anzupassen, indem Sie die folgenden Variablen ausfüllen:
export OCCORE_JUMPHOSTS_NET=$OCCORE_JUMPHOSTS_NET
export OCCORE_ILOS_NET=$OCCORE_ILOS_NET
Beispiel:
export OCCORE_JUMPHOSTS_NET=172.21.2.0/27
export OCCORE_ILOS_NET=172.21.2.32/27
Nachdem die Umgebungsvariablen festgelegt wurden, führen Sie die folgenden kubectl-Befehle aus, um die Routenrichtlinien zu aktualisieren:
kubectl patch routepolicy/mgmtnetworkoperationcenter-routepolicy -n gpc-system \
--type=json -p="[
{
'op': 'add',
'path': '/spec/in/ipPrefixList/0',
'value': {
'action': 'Permit',
'ipPrefix': '${OCCORE_JUMPHOSTS_NET:?}',
'prefixLengthMatchers': [
{
'operator': 'LE',
'prefixLength': 32
}
]
}
}
]"
kubectl patch routepolicy/mgmtnetworkoperationcenter-routepolicy -n gpc-system \
--type=json -p="[
{
'op': 'add',
'path': '/spec/in/ipPrefixList/0',
'value': {
'action': 'Permit',
'ipPrefix': '${OCCORE_ILOS_NET:?}',
'prefixLengthMatchers': [
{
'operator': 'LE',
'prefixLength': 32
}
]
}
}
]"
Beispielausgabe:
routepolicy.system.private.gdc.goog/mgmtnetworkoperationcenter-routepolicy patched