2.8. Aprovisionamiento de conexiones de GDC de la red de OI

Tiempo estimado para completar la actividad: de 6 a 8 horas

Propietario del componente operable: PNET

2.8.1. Descripción general

En este paso del proceso, se aprovisionan archivos de configuración que permiten que las redes de la infraestructura de Operations Suite (OI) y de GDC establezcan conectividad.

Estos pasos requieren acceso a algunos archivos de GDC, así como conectividad al clúster de administrador raíz de la instancia de GDC para recuperar la información de red del tiempo de ejecución.

2.8.2. Antes de comenzar

En esta etapa del proceso de implementación, se deben cumplir los siguientes requisitos:

  1. Ambos conmutadores OIR están conectados con cables, encendidos, actualizados a la versión adecuada y tienen aplicada la configuración base y de ACL.

  2. Ambos firewalls de OIF están conectados con cables, encendidos, actualizados a la versión adecuada, habilitados para el modo FIPS-CC y tienen aplicada la configuración básica.

  3. Para completar el aprovisionamiento de conectividad de GDC, la instancia de GDC debe haber completado el arranque de red y haber salido del clúster de tipo y pasado al clúster de administrador raíz.

2.8.3. Preparación

Prepara el entorno para los siguientes pasos. Para ello, recopila la siguiente información y configura las variables de entorno.

La OI se puede conectar de dos maneras: de forma local o remota. Una conexión local conecta OI a GDC directamente a través de conexiones de fibra entre los racks del mismo centro de datos. Una conexión remota se conecta a una ubicación diferente a través de transporte de larga distancia. Esta especificación se puede proporcionar en el archivo interconnect.yaml, que es necesario para aprovisionar las configuraciones de interconexión de GDC. Este archivo contiene toda la información necesaria para configurar las interconexiones de GDC.

2.8.3.1. Especificación de YAML de interconexión

Atributo
Descripción
Ejemplo
Mapa de zones
[ ]
Es la información sobre la celda de GDC a la que se debe conectar la implementación de OI.

Para conectarse a una lista de celdas de GDC,
especifica una lista de zones con información de cada celda de GDC en cada zona. Opciones de zona
Ejemplo:
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. Opciones de zona

Contiene información sobre una celda de GDC en el archivo interconnect.yaml:

Atributo
Descripción
Uso
zoneName
string
Es la abreviatura de la celda del GDC a la que se debe conectar la implementación del OI.
zones:
- zoneName: kb
uplinkSpeed
uint32
(Opcional) Proporciona la velocidad de carga de la conexión: (10 o 100). Valores:10, 100
Valor predeterminado: 10

uplinkSpeed: 100
localInstance
int
El InstanceID del sitio de implementación de OI del archivo ocit.yaml.
Una conexión local conecta el sitio del rack principal de la infraestructura de Operations Suite (OIR) al GDC directamente a través de conexiones de fibra entre los racks del mismo centro de datos.
zones:
- zoneName: kb
localInstanceIDs: 1
remoteInstance
[ ] int
InstanceID(s) del sitio de implementación de OI del archivo ocit.yaml.
Una conexión remota se conecta a una o varias ubicaciones diferentes a través de transporte de larga distancia. Se puede proporcionar una lista de valores de remoteInstance, de modo que se generen configuraciones para todos los sitios de la OIR para conectarse a las celdas de GDC determinadas.
zones:
- zoneName: kb
remoteInstanceIDs:
- 1



zones:
- zoneName: kb
remoteInstanceIDs:
- 1

- 2

- 3



cellCfg
string
Es la ruta de acceso de la configuración de la celda de GDC, que contiene toda la información sobre las interconexiones. Se usará para generar todas las configuraciones de interconexión para OIR.\ Si no se proporciona `cellCfg` en el archivo interconnect.yaml, la herramienta occonfig usa la API de Kubernetes en el programa de arranque de la celda de GDC para recuperar la información de interconexión si `zoneName` coincide con la abreviatura de la celda de GDC.
zones:
- cellCfg: /path/to/cellcfg

Si se trata de una conexión local, configura el archivo interconnect.yaml de la siguiente manera:

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

Si se trata de una conexión remota, configura el archivo interconnect.yaml de la siguiente manera:

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

Para las implementaciones de OI en varios sitios, especifica el archivo interconnect.yaml de la siguiente manera:

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

2.8.3.3. Opciones de WAN

En la siguiente tabla, se incluye información sobre la WAN de L3 en el archivo interconnect.yaml.

Si aprovisionas las configuraciones de L3-WAN, asegúrate de que las configuraciones básicas generadas tengan habilitada la marca de función L3-WAN y declarado el ASN wan-transit.

Atributo Tipo Descripción
wanName string Nombre de la WAN de L3 que se conecta a la OIC. Se usa para las descripciones en las interfaces y las relaciones de adyacencia de BGP.
operationsCIDRs [ ] CIDR Es el conjunto de bloques CIDR que espera la WAN de L3 y que permite la OIC. Esto ayuda a configurar la conexión entre el NOC del cliente y las OC-WORKSTATIONS.
instancias Configuración de cada instancia que necesita conectarse a la WAN de L3
instanceID int Es el ID de la instancia de OIC para la que se generarán las configuraciones para conectarse a la WAN de capa 3 proporcionada.
bgp Configuración de BGP de la WAN de L3.
asn int Es el ASN de BGP de los nodos PE de L3-WAN para configurar conexiones de eBGP.
dispositivos Es la configuración específica para cada conmutador de OCCORE.
deviceName string Nombre del dispositivo, que se usa en las descripciones. Debe ser igual al nombre del archivo de configuración generado a partir del archivo ocit.yaml (ocit config generation).
vínculos de carga Es la configuración específica para los puertos que se conectan a los nodos PE de la WAN de L3.
uplinkName string Nombre de la interfaz que se usa para la descripción de la interfaz.
bgpPassword string Contraseña de BGP para el intercambio de tráfico en texto no encriptado.
ip string Es la dirección IPv4 del puerto local que se conecta al nodo PE de la WAN de capa 3.
puerta de enlace string Dirección IPv4 del puerto remoto que se conecta al nodo PE. También se usa para la dirección del vecino de BGP.
subred string Es la definición de subred de la interfaz que se conecta al nodo PE.
puerto int Número de puerto físico del conmutador OCCORE que se usa para conectarse al nodo PE.
subinterfaz int ID de subinterfaz (etiqueta dot1q) que se usa sobre el puerto físico (si corresponde).

2.8.3.3.1. Configuración de ejemplo

En el siguiente ejemplo, se muestra un archivo interconnect.yaml en el que el bastidor principal de la infraestructura de Operations Suite (OIR) se conecta con una WAN de L3, con dos vínculos ascendentes en occoresw01 y un vínculo ascendente en 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 configuraciones de conmutador

Estos pasos generan configuraciones de parches para aplicar a los dispositivos de red y, así, aprovisionar la conectividad al GDC.

Genera las configuraciones del conmutador:

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

Esto genera los siguientes archivos de configuración para cada sitio:

Archivos de configuración Dispositivo Función
occoresw101.incremental occoresw101 Configuración para aplicar parches al dispositivo para la conectividad a la instancia de GDC
occoresw101.acl occoresw101 Es la configuración para aplicar parches a las ACL para la aplicación del tráfico con las redes de GDC.
occoresw102.incremental occoresw102 Configuración para aplicar parches al dispositivo para la conectividad a la instancia de GDC
occoresw102.acl occoresw102 Es la configuración para aplicar parches a las ACL para la aplicación del tráfico con las redes de GDC.
ocsw101.incremental ocs1w01 Configuración para aplicar parches al dispositivo para la conectividad a la instancia de GDC
ocsw101.acl ocsw101 Es la configuración para aplicar parches a las ACL para la aplicación del tráfico con las redes de GDC.
ocsw102.incremental ocsw102 Configuración para aplicar parches al dispositivo para la conectividad a la instancia de GDC
ocsw102.acl ocsw102 Es la configuración para aplicar parches a las ACL para la aplicación del tráfico con las redes de GDC.

2.8.5. Genera políticas de firewall

Para generar las reglas de firewall, occonfigtool debe acceder a la API de Kubernetes del clúster de administrador raíz. Asegúrate de que la variable de entorno KUBECONFIG esté configurada en 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

Para generar las reglas de firewall, ejecuta el siguiente comando:

occonfigtool generate fwrules -c ${OCIT_INTERCONNECT_CONFIG_FILE:?} -o ${OCIT_CONFIG_FILE:?}
Archivos de configuración Dispositivo Función
firewall-rules.base occorefw01 Configuración para aplicar parches al dispositivo para la conectividad a la instancia de GDC

2.8.6. Aplica configuraciones

Con los archivos de salida, aplica la configuración a los dispositivos de red respectivos con el mismo procedimiento que en el paso anterior para los conmutadores y los firewalls.

2.8.7. Actualiza los recursos de RoutePolicy de los GDC

GDC usa la política de rutas para aplicar qué redes pueden anunciarse en la tabla de enrutamiento.

Cuando agregamos OI como una red externa, debemos actualizar los recursos personalizados de RoutePolicy para que esperen las nuevas redes.

Esto requiere acceder al clúster de administrador raíz con kubectl. Asegúrate de que la variable KUBECONFIG adecuada esté configurada:

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

Para confirmar, haz lo siguiente:

kubectl get routepolicy -n gpc-system

Deberías ver el siguiente resultado o uno similar:

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

En estos pasos, analizaremos los elementos networkoperationcenter-routepolicy y mgmtnetworkoperationcenter-routepolicy.

2.8.7.1. Aplica parches a las políticas de rutas de la red de datos

Desde ocinfo.opscenter.local.txt, recupera las siguientes subredes (incluida la red y la longitud del prefijo).

  • OCCORE-SERVERS, que se usa en el siguiente ejemplo como $OCCORE_SERVERS_NET
  • OC-WORKSTATIONS, que se usa en el siguiente ejemplo como $OC_WORKSTATIONS_NET

Usa estos valores para ajustar las políticas de rutas completando las siguientes variables:

export OCCORE_SERVERS_NET=$OCCORE_SERVERS_NET
export OC_WORKSTATIONS_NET=$OC_WORKSTATIONS_NET

Por ejemplo:

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

Después de configurar las variables de entorno, ejecuta los siguientes comandos de kubectl para actualizar las políticas de ruta:

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

Resultado de ejemplo:

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

2.8.7.2. Políticas de rutas de red de administración de parches

Desde ocinfo.opscenter.local.txt, recupera las siguientes subredes (incluida la red y la longitud del prefijo).

  • OCCORE-JUMPHOSTS, que se usa en el siguiente ejemplo como $OCCORE_JUMPHOSTS_NET
  • OCCORE-ILOS, que se usa en el siguiente ejemplo como $OCCORE_ILOS_NET

Usa estos valores para ajustar las políticas de rutas completando las siguientes variables:

export OCCORE_JUMPHOSTS_NET=$OCCORE_JUMPHOSTS_NET
export OCCORE_ILOS_NET=$OCCORE_ILOS_NET

Por ejemplo:

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

Después de configurar las variables de entorno, ejecuta los siguientes comandos de kubectl para actualizar las políticas de rutas:

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

Resultado de ejemplo:

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