2.8. Provisionnement des connexions GDC au réseau OI

Durée estimée : 6 à 8 heures

Propriétaire du composant exploitable : PNET

2.8.1. Présentation

Cette étape du processus provisionne les fichiers de configuration qui permettent aux réseaux Operations Suite Infrastructure (OI) et GDC d'établir une connectivité.

Ces étapes nécessitent d'accéder à certains fichiers GDC et d'être connecté au cluster d'administration racine de l'instance GDC pour récupérer les informations sur le réseau d'exécution.

2.8.2. Avant de commencer

À cette étape du processus de déploiement, les conditions suivantes doivent être remplies :

  1. Les deux commutateurs OIR sont câblés, alimentés, mis à niveau vers la version appropriée et ont des configurations de base et ACL appliquées.

  2. Les deux pare-feu OIF sont câblés, mis sous tension, mis à niveau vers la version appropriée, activés pour le mode FIPS-CC et la configuration de base est appliquée.

  3. Pour que l'intégralité du provisionnement de la connectivité GDC soit effectuée, l'instance GDC doit avoir terminé l'amorçage réseau et avoir quitté le cluster kind pour passer au cluster d'administrateur racine.

2.8.3. Préparation

Préparez l'environnement pour les étapes suivantes en rassemblant les informations ci-dessous et en définissant les variables d'environnement.

Vous pouvez connecter l'OI de deux manières : localement ou à distance. Une connexion locale connecte OI à GDC directement à l'aide de connexions fibre entre les racks du même centre de données. Une connexion à distance se connecte à un autre emplacement à l'aide d'un transport longue distance. Cette spécification peut être fournie dans le fichier interconnect.yaml, qui est nécessaire pour provisionner les configurations d'interconnexion GDC. Ce fichier contient toutes les informations nécessaires pour configurer les interconnexions GDC.

2.8.3.1. Spécification YAML de l'interconnexion

Attribut
Description
Exemple
zones
[ ] map
Informations sur la cellule GDC à laquelle le déploiement OI doit se connecter.

Pour vous connecter à une liste de cellules GDC,
spécifiez une liste de zones avec des informations sur chaque cellule GDC dans chaque zone. Options de zone
Exemple :
zones:
- zoneName: kb
- uplinkSpeed: 10
localInstanceIDs: 2

remoteInstanceIDs:
- 1
- cellCfg: path/to/cellcfg

- zoneName: ah
- uplinkSpeed: 100
localInstanceIDs: 3

- cellCfg: path/to/cellcfg

2.8.3.2. Options de zone

Contient des informations sur une cellule GDC dans le fichier interconnect.yaml :

Attribut
Description
Utilisation
zoneName
string
Abréviation de la cellule GDC à laquelle le déploiement OI doit se connecter.
zones:
- zoneName: kb
uplinkSpeed
uint32
(Facultatif) Indique la vitesse de connexion en liaison montante (10 ou 100). Valeurs :10, 100
Valeur par défaut : 10

uplinkSpeed: 100
localInstance
int
Le InstanceID du site de déploiement OI à partir du fichier ocit.yaml.
Une connexion locale relie le site OIR (Operations Suite Infrastructure Core Rack) au GDC directement à l'aide de connexions fibre optique entre les racks d'un même centre de données.
zones:
- zoneName: kb
localInstanceIDs: 1
remoteInstance
[ ] int
InstanceID(s) du site de déploiement OI à partir du fichier ocit.yaml.
Une connexion à distance se connecte à un ou plusieurs autres lieux à l'aide d'un transport longue distance. Une liste de valeurs remoteInstance peut être fournie, de sorte que les configurations de tous les sites OIR sont générées pour se connecter aux cellules GDC données.
zones:
- zoneName: kb
remoteInstanceIDs:
- 1



zones:
- zoneName: kb
remoteInstanceIDs:
- 1

- 2

- 3



cellCfg
string
Chemin d'accès à la configuration de cellule GDC, qui contient toutes les informations sur les interconnexions. Cela servira à générer toutes les configurations d'interconnexion pour OIR.\ Si `cellCfg` n'est pas fourni dans le fichier interconnect.yaml, l'outil occonfig utilise l'API Kubernetes dans le programme d'amorçage de cellule GDC pour récupérer les informations d'interconnexion si `zoneName` correspond à l'abréviation de la cellule GDC.
zones:
- cellCfg: /path/to/cellcfg

S'il s'agit d'une connexion locale, configurez le fichier interconnect.yaml comme suit :

zones:
  - zoneName: ah
    uplinkSpeed: 100
    localInstanceID: 1
    cellCfg: /path/to/cellcfg

S'il s'agit d'une connexion à distance, configurez le fichier interconnect.yaml comme suit :

zones:
  - zoneName: ah
    uplinkSpeed: 100
      remoteInstanceIDs:
      - 2
    cellCfg: /path/to/cellcfg

Pour les déploiements OI multisites, spécifiez le fichier interconnect.yaml comme suit :

zones:
  - zoneName: ah
    uplinkSpeed: 100
    localInstanceID: 1
    remoteInstanceIDs:
      - 2
    cellCfg: /path/to/cellcfg

2.8.3.3. Options WAN

Le tableau suivant contient des informations sur le réseau étendu de niveau 3 dans le fichier interconnect.yaml.

Si vous provisionnez les configurations L3-WAN, assurez-vous que l'option L3-WAN est activée dans les configurations de base générées et que l'ASN wan-transit est déclaré.

Attribut Type Description
wanName chaîne Nom du réseau L3-WAN qui se connecte à OIC. Il est utilisé pour les descriptions dans les interfaces et les relations de voisinage BGP.
operationsCIDRs [ ] CIDR Ensemble de blocs CIDR attendus par le réseau WAN de niveau 3 et autorisés par OIC. Cela permet d'établir la connexion entre le NOC du client et les OC-WORKSTATIONS.
instances Configuration de chaque instance devant se connecter au L3-WAN.
instanceID int ID d'instance de l'instance OIC pour laquelle les configurations doivent être générées afin de se connecter au réseau L3-WAN fourni.
bgp Configuration BGP du L3-WAN.
asn int ASN BGP des nœuds PE L3-WAN pour configurer les connexions eBGP.
appareils Configuration spécifique pour chaque commutateur OCCORE.
deviceName chaîne Nom de l'appareil, utilisé dans les descriptions. Doit être égal au nom du fichier de configuration généré à partir du fichier ocit.yaml (ocit config generation).
uplinks Configuration spécifique pour les ports qui se connectent aux nœuds PE L3-WAN.
uplinkName chaîne Nom de l'interface utilisé pour la description de l'interface.
bgpPassword chaîne Mot de passe BGP pour l'appairage en texte clair.
ip chaîne Adresse IPv4 du port local se connectant au nœud PE du réseau L3-WAN.
passerelle chaîne Adresse IPv4 du port distant se connectant au nœud PE, également utilisée pour l'adresse du voisin BGP.
sous-réseau chaîne Définition du sous-réseau de l'interface se connectant au nœud PE.
port int Numéro de port physique sur le commutateur OCCORE utilisé pour se connecter au nœud PE.
sous-interface int ID de sous-interface (balise dot1q) utilisé en plus du port physique (le cas échéant).

2.8.3.3.1. Exemples de configurations

L'exemple suivant montre un fichier interconnect.yaml où le rack OIR (Operations Suite Infrastructure Core) est associé à un réseau L3-WAN, avec deux liaisons ascendantes sur occoresw01 et une liaison ascendante sur 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. Générer des configurations de commutateur

Ces étapes génèrent des configurations de correctifs à appliquer aux périphériques réseau afin de provisionner la connectivité à GDC.

Générez les configurations de commutateur :

occonfigtool generate cell config -c /path/to/interconnect.yaml -o path/to/ocit.yaml

Cela génère les fichiers de configuration suivants pour chaque site :

Fichier(s) de configuration Appareil Fonction
occoresw101.incremental occoresw101 Configuration permettant de corriger l'appareil pour la connectivité à l'instance GDC
occoresw101.acl occoresw101 Configuration permettant de corriger les LCA pour l'application du trafic avec les réseaux GDC.
occoresw102.incremental occoresw102 Configuration permettant de corriger l'appareil pour la connectivité à l'instance GDC
occoresw102.acl occoresw102 Configuration permettant de corriger les LCA pour l'application du trafic avec les réseaux GDC.
ocsw101.incremental ocs1w01 Configuration permettant de corriger l'appareil pour la connectivité à l'instance GDC
ocsw101.acl ocsw101 Configuration permettant de corriger les LCA pour l'application du trafic avec les réseaux GDC.
ocsw102.incremental ocsw102 Configuration permettant de corriger l'appareil pour la connectivité à l'instance GDC
ocsw102.acl ocsw102 Configuration permettant de corriger les LCA pour l'application du trafic avec les réseaux GDC.

2.8.5. Générer des stratégies de pare-feu

Pour générer les règles de pare-feu, occonfigtool doit accéder à l'API Kubernetes pour le cluster d'administrateur racine. Assurez-vous que la variable d'environnement KUBECONFIG est définie sur root-admin-kubeconfig :

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

Générez les règles de pare-feu en exécutant la commande suivante :

occonfigtool generate fwrules -c ${OCIT_INTERCONNECT_CONFIG_FILE:?} -o ${OCIT_CONFIG_FILE:?}
Fichier(s) de configuration Appareil Fonction
firewall-rules.base occorefw01 Configuration permettant de corriger l'appareil pour la connectivité à l'instance GDC

2.8.6. Appliquer des configurations

À l'aide des fichiers de sortie, appliquez la configuration aux périphériques réseau respectifs en suivant la même procédure que celle de l'étape précédente pour les commutateurs et les pare-feu.

2.8.7. Mettre à jour les ressources RoutePolicy des centres de données Google

GDC utilise une règle de route pour déterminer les réseaux qui peuvent être annoncés dans la table de routage.

Lorsque nous ajoutons OI en tant que réseau externe, nous devons mettre à jour les ressources personnalisées RoutePolicy pour qu'elles s'attendent aux nouveaux réseaux.

Pour ce faire, vous devez accéder au cluster d'administrateur racine à l'aide de kubectl. Assurez-vous que la variable KUBECONFIG appropriée est définie :

export KUBECONFIG=/root/deploy/root-admin/root-admin-kubeconfig

Pour confirmer, procédez comme suit :

kubectl get routepolicy -n gpc-system

Vous devriez obtenir un résultat semblable à celui-ci :

NAME                                     AGE
customerpeering-routepolicy              19d
datacenter-routepolicy                   19d
mgmtnetworkoperationcenter-routepolicy   19d
networkoperationcenter-routepolicy       19d

Pour ces étapes, nous allons examiner networkoperationcenter-routepolicy et mgmtnetworkoperationcenter-routepolicy.

2.8.7.1. Corriger les règles de routage du réseau de données

À partir de ocinfo.opscenter.local.txt, récupérez les sous-réseaux suivants (y compris le réseau et la longueur du préfixe).

  • OCCORE-SERVERS, utilisé dans l'exemple suivant comme $OCCORE_SERVERS_NET
  • OC-WORKSTATIONS, utilisé dans l'exemple suivant comme $OC_WORKSTATIONS_NET

Utilisez ces valeurs pour ajuster les règles de routage en renseignant les variables suivantes :

export OCCORE_SERVERS_NET=$OCCORE_SERVERS_NET
export OC_WORKSTATIONS_NET=$OC_WORKSTATIONS_NET

Exemple :

export OCCORE_SERVERS_NET=172.21.0.0/24
export OC_WORKSTATIONS_NET=172.21.32.0/24

Une fois les variables d'environnement définies, exécutez les commandes kubectl suivantes pour mettre à jour les règles de routage :

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
                }
            ]
        }
    }
]"

Exemple de résultat :

routepolicy.system.private.gdc.goog/networkoperationcenter-routepolicy patched

2.8.7.2. Règles de routage réseau pour la gestion des correctifs

À partir de ocinfo.opscenter.local.txt, récupérez les sous-réseaux suivants (y compris le réseau et la longueur du préfixe).

  • OCCORE-JUMPHOSTS, utilisé dans l'exemple suivant comme $OCCORE_JUMPHOSTS_NET
  • OCCORE-ILOS, utilisé dans l'exemple suivant comme $OCCORE_ILOS_NET

Utilisez ces valeurs pour ajuster les règles de routage en renseignant les variables suivantes :

export OCCORE_JUMPHOSTS_NET=$OCCORE_JUMPHOSTS_NET
export OCCORE_ILOS_NET=$OCCORE_ILOS_NET

Exemple :

export OCCORE_JUMPHOSTS_NET=172.21.2.0/27
export OCCORE_ILOS_NET=172.21.2.32/27

Une fois les variables d'environnement définies, exécutez les commandes kubectl suivantes pour mettre à jour les règles de routage :

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
                }
            ]
        }
    }
]"

Exemple de résultat :

routepolicy.system.private.gdc.goog/mgmtnetworkoperationcenter-routepolicy patched