2.8. OI network provision GDC connections

Tempo stimato per il completamento: 6-8 ore

Proprietario del componente operativo: PNET

2.8.1. Panoramica

Questo passaggio del processo esegue il provisioning dei file di configurazione che consentono alle reti Operations Suite Infrastructure (OI) e GDC di stabilire la connettività.

Questi passaggi richiedono l'accesso ad alcuni file GDC e la connettività al cluster di amministrazione principale dell'istanza GDC per recuperare le informazioni di rete di runtime.

2.8.2. Prima di iniziare

In questa fase del processo di implementazione, devono verificarsi le seguenti condizioni:

  1. Entrambi gli switch OIR sono collegati via cavo, accesi, aggiornati alla versione appropriata e hanno configurazioni di base e ACL applicate.

  2. Entrambi i firewall OIF sono collegati con cavi, accesi, aggiornati alla versione appropriata, abilitati per la modalità FIPS-CC e hanno la configurazione di base applicata.

  3. Per completare il provisioning dell'intera connettività GDC, l'istanza GDC deve aver completato il bootstrap di rete ed essere stata spostata dal cluster kind al cluster di amministrazione principale.

2.8.3. preparazione

Prepara l'ambiente per i passaggi successivi raccogliendo le seguenti informazioni e impostando le variabili di ambiente.

L'OI può essere connesso in due modi: localmente o da remoto. Una connessione locale collega OI a GDC direttamente utilizzando connessioni in fibra ottica tra i rack nello stesso data center. Una connessione remota si connette a una posizione diversa utilizzando il trasporto a lungo raggio. Questa specifica può essere fornita nel file interconnect.yaml, necessario per il provisioning delle configurazioni di interconnessione GDC. Questo file contiene tutte le informazioni necessarie per configurare le interconnessioni GDC.

2.8.3.1. Specifica YAML dell'interconnessione

Attributo
Descrizione
Esempio
zones
[ ] map
Informazioni sulla cella GDC a cui deve connettersi il deployment di OI.

Per connettersi a un elenco di celle GDC,
specifica un elenco di zones con le informazioni di ogni cella GDC in ogni zona. Opzioni relative alla zona
Esempio:
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. Opzioni relative alla zona

Contiene informazioni su una cella GDC nel file interconnect.yaml:

Attributo
Descrizione
Utilizzo
zoneName
stringa
Abbreviazione della cella GDC a cui deve connettersi il deployment OI.
zones:
- zoneName: kb
uplinkSpeed
uint32
(Facoltativo) Fornisce la velocità di caricamento della connessione: (10 o 100). Valori:10, 100
Predefinito: 10

uplinkSpeed: 100
localInstance
int
Il InstanceID del sito di deployment di OI dal file ocit.yaml.
Una connessione locale collega il sito Operations Suite Infrastructure Core Rack (OIR) a GDC direttamente utilizzando connessioni in fibra tra i rack nello stesso data center.
zones:
- zoneName: kb
localInstanceIDs: 1
remoteInstance
[ ] int
InstanceID(s) del sito di deployment di OI dal file ocit.yaml.
Una connessione remota si connette a una o più località diverse utilizzando il trasporto a lungo raggio. Può essere fornito un elenco di valori remoteInstance, in modo che vengano generate configurazioni per tutti i siti OIR per connettersi alle celle GDC specificate.
zones:
- zoneName: kb
remoteInstanceIDs:
- 1



zones:
- zoneName: kb
remoteInstanceIDs:
- 1

- 2

- 3



cellCfg
stringa
Il percorso di configurazione della cella GDC, che contiene tutte le informazioni sugli interconnessioni. Verrà utilizzato per generare tutte le configurazioni di interconnessione per OIR. Se `cellCfg` non è fornito nel file interconnect.yaml, lo strumento occonfig utilizza l'API Kubernetes nel bootstrapper della cella GDC per recuperare le informazioni di interconnessione se `zoneName` corrisponde all'abbreviazione della cella GDC.
zones:
- cellCfg: /path/to/cellcfg

Se si tratta di una connessione locale, configura il file interconnect.yaml come segue:

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

Se si tratta di una connessione remota, configura il file interconnect.yaml come segue:

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

Per le implementazioni OI multiazienda, specifica il file interconnect.yaml come segue:

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

2.8.3.3. Opzioni WAN

La seguente tabella include informazioni sulla L3-WAN nel file interconnect.yaml.

Se esegui il provisioning delle configurazioni L3-WAN, assicurati che le configurazioni di base generate abbiano il flag funzionalità L3-WAN abilitato e l'ASN wan-transit dichiarato.

Attributo Tipo Descrizione
wanName string Nome della L3-WAN che si connette a OIC. Viene utilizzato per le descrizioni nelle interfacce e nelle relazioni di vicinato BGP.
operationsCIDRs [ ] CIDR Set di blocchi CIDR previsti dalla WAN L3 e consentiti da OIC. Ciò consente di configurare la connessione tra il NOC del cliente e OC-WORKSTATIONS.
istanze Configurazione di ogni istanza che deve connettersi alla WAN di livello 3.
instanceID int L'ID istanza dell'istanza OIC per cui devono essere generate le configurazioni per la connessione alla L3-WAN fornita.
bgp Configurazione BGP della WAN L3.
asn int ASN BGP dei nodi PE L3-WAN per configurare le connessioni eBGP.
dispositivi Configurazione specifica per ogni interruttore OCCORE.
deviceName string Nome del dispositivo, utilizzato nelle descrizioni. Deve essere uguale al nome del file di configurazione generato dal file ocit.yaml (ocit config generation).
uplinks Configurazione specifica per le porte che si connettono ai nodi PE L3-WAN.
uplinkName string Nome dell'interfaccia utilizzato per la descrizione dell'interfaccia.
bgpPassword string Password BGP per il peering in testo non crittografato.
ip string Indirizzo IPv4 della porta locale che si connette al nodo PE della rete WAN L3.
gateway string Indirizzo IPv4 della porta remota che si connette al nodo PE, utilizzato anche per l'indirizzo del vicino BGP.
subnet string Definizione della subnet dell'interfaccia che si connette al nodo PE.
porta int Numero di porta fisica sullo switch OCCORE utilizzato per connettersi al nodo PE.
interfaccia secondaria int ID della sottointerfaccia (tag dot1q) utilizzato sopra la porta fisica (se presente).

2.8.3.3.1. Configurazioni di esempio

L'esempio seguente mostra un file interconnect.yaml in cui l'Operations Suite Infrastructure Core Rack (OIR) esegue il peering con una WAN L3, con due uplink su occoresw01 e un uplink su 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. Genera configurazioni dello switch

Questi passaggi generano configurazioni di patch da applicare ai dispositivi di rete per eseguire il provisioning della connettività a GDC.

Genera le configurazioni dello switch:

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

Vengono generati i seguenti file di configurazione per ogni sito:

File di configurazione Dispositivo Funzione
occoresw101.incremental occoresw101 Configurazione per applicare patch al dispositivo per la connettività all'istanza GDC
occoresw101.acl occoresw101 Configurazione per applicare patch agli elenchi di controllo dell'accesso per l'applicazione del traffico con le reti GDC.
occoresw102.incremental occoresw102 Configurazione per applicare patch al dispositivo per la connettività all'istanza GDC
occoresw102.acl occoresw102 Configurazione per applicare patch agli elenchi di controllo dell'accesso per l'applicazione del traffico con le reti GDC.
ocsw101.incremental ocs1w01 Configurazione per applicare patch al dispositivo per la connettività all'istanza GDC
ocsw101.acl ocsw101 Configurazione per applicare patch agli elenchi di controllo dell'accesso per l'applicazione del traffico con le reti GDC.
ocsw102.incremental ocsw102 Configurazione per applicare patch al dispositivo per la connettività all'istanza GDC
ocsw102.acl ocsw102 Configurazione per applicare patch agli elenchi di controllo dell'accesso per l'applicazione del traffico con le reti GDC.

2.8.5. Genera policy firewall

Per generare le regole firewall, occonfigtool deve accedere all'API Kubernetes per il cluster di amministrazione principale. Assicurati che la variabile di ambiente KUBECONFIG sia impostata su 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

Genera le regole firewall eseguendo questo comando:

occonfigtool generate fwrules -c ${OCIT_INTERCONNECT_CONFIG_FILE:?} -o ${OCIT_CONFIG_FILE:?}
File di configurazione Dispositivo Funzione
firewall-rules.base occorefw01 Configurazione per applicare patch al dispositivo per la connettività all'istanza GDC

2.8.6. Applica configurazioni

Utilizzando i file di output, applica la configurazione ai rispettivi dispositivi di rete utilizzando la stessa procedura del passaggio precedente per switch e firewall.

2.8.7. Aggiorna le risorse GDC RoutePolicy

GDC utilizza i criteri di route per imporre le reti autorizzate a essere pubblicizzate nella tabella di routing.

Quando aggiungiamo OI come rete esterna, dobbiamo aggiornare le risorse personalizzate RoutePolicy in modo che prevedano le nuove reti.

Per farlo è necessario accedere al cluster di amministrazione principale utilizzando kubectl. Assicurati che sia impostata la variabile KUBECONFIG appropriata:

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

Per confermare, procedi nel seguente modo:

kubectl get routepolicy -n gpc-system

Dovresti visualizzare l'output seguente o uno simile:

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

Per questi passaggi, esamineremo networkoperationcenter-routepolicy e mgmtnetworkoperationcenter-routepolicy.

2.8.7.1. Applicare patch alle policy di route della rete di dati

Da ocinfo.opscenter.local.txt, recupera le seguenti subnet (inclusi la rete e la lunghezza del prefisso).

  • OCCORE-SERVERS, utilizzato nel seguente esempio come $OCCORE_SERVERS_NET
  • OC-WORKSTATIONS, utilizzato nel seguente esempio come $OC_WORKSTATIONS_NET

Utilizza questi valori per modificare i criteri di routing compilando le seguenti variabili:

export OCCORE_SERVERS_NET=$OCCORE_SERVERS_NET
export OC_WORKSTATIONS_NET=$OC_WORKSTATIONS_NET

Ad esempio:

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

Dopo aver impostato le variabili di ambiente, esegui i seguenti comandi kubectl per aggiornare i criteri di routing:

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

Output di esempio:

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

2.8.7.2. Policy di routing di rete per la gestione delle patch

Da ocinfo.opscenter.local.txt, recupera le seguenti subnet (inclusi la rete e la lunghezza del prefisso).

  • OCCORE-JUMPHOSTS, utilizzato nel seguente esempio come $OCCORE_JUMPHOSTS_NET
  • OCCORE-ILOS, utilizzato nel seguente esempio come $OCCORE_ILOS_NET

Utilizza questi valori per modificare i criteri di routing compilando le seguenti variabili:

export OCCORE_JUMPHOSTS_NET=$OCCORE_JUMPHOSTS_NET
export OCCORE_ILOS_NET=$OCCORE_ILOS_NET

Ad esempio:

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

Dopo aver impostato le variabili di ambiente, esegui i seguenti comandi kubectl per aggiornare le norme di routing:

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

Output di esempio:

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