2.8. OI network provision GDC connections

Tiempo estimado para completarlo: de 6 a 8 horas

Propietario del componente operativo: PNET

2.8.1. Informació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.

Para completar estos pasos, se necesita acceso a algunos archivos de GDC, así como conectividad al clúster de administrador raíz de la instancia de GDC para obtener información de la red en tiempo de ejecución.

2.8.2. Antes de empezar

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

  1. Ambos conmutadores OIR están cableados, encendidos, actualizados a la versión adecuada y tienen aplicadas las configuraciones de base y de LCA.

  2. Ambos cortafuegos OIF están cableados, encendidos, actualizados a la versión adecuada, habilitados para el modo FIPS-CC y tienen aplicada la configuración base.

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

2.8.3. Preparación

Prepara el entorno para los pasos siguientes. Para ello, reúne la siguiente información y define las variables de entorno.

OI se puede conectar de dos formas: localmente o de forma remota. Una conexión local conecta OI con GDC directamente mediante conexiones de fibra entre racks del mismo centro de datos. Una conexión remota se conecta a una ubicación diferente mediante un 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 YAML de interconexión

Atributo
Descripción
Ejemplo
zones
[ ] mapa
Información sobre la celda de GDC a la que debe conectarse la implementación de OI.

Para conectarse a una lista de celdas de GDC,
especifique 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
Abreviatura de la celda de GDC a la que debe conectarse la implementación de OI.
zones:
- zoneName: kb
uplinkSpeed
uint32
(Opcional) Proporciona la velocidad de subida 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 de Operations Suite Infrastructure Core Rack (OIR) con GDC directamente mediante conexiones de fibra entre 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 mediante un transporte de larga distancia. Se puede proporcionar una lista de valores de remoteInstance para que se generen configuraciones de todos los sitios de OIR con el fin de conectarse a las celdas de GDC indicadas.
zones:
- zoneName: kb
remoteInstanceIDs:
- 1



zones:
- zoneName: kb
remoteInstanceIDs:
- 1

- 2

- 3



cellCfg
string
Ruta de 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 de OIR.\ Si no se proporciona `cellCfg` en el archivo interconnect.yaml, la herramienta occonfig usa la API de Kubernetes en el bootstrapper de la celda de GDC para obtener 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

En las implementaciones de OI multisitio, 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

La siguiente tabla incluye información sobre la red WAN de nivel 3 en el archivo interconnect.yaml.

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

Atributo Tipo Descripción
wanName cadena Nombre de la WAN de nivel 3 que se conecta a OIC. Se usa para las descripciones de las interfaces y las relaciones de vecinos de BGP.
operationsCIDRs [ ] CIDR Conjunto de bloques CIDR que espera la WAN de capa 3 y que permite OIC. Esto ayuda a configurar la conexión entre el NOC del cliente y OC-WORKSTATIONS.
instances Configuración de cada instancia que necesite conectarse a la WAN de capa 3.
instanceID int ID de instancia de la instancia de OIC para la que se van a generar configuraciones para conectarse a la WAN de nivel 3 proporcionada.
bgp Configuración de BGP de la WAN de capa 3.
asn int ASN de BGP de los nodos PE de la WAN de nivel 3 para configurar conexiones eBGP.
dispositivos Configuración específica de cada interruptor OCCORE.
deviceName cadena 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).
enlaces de subida Configuración específica de los puertos que se conectan a los nodos PE de la WAN de nivel 3.
uplinkName cadena Nombre de la interfaz que se usa en la descripción de la interfaz.
bgpPassword cadena Contraseña de BGP para el peering sin cifrar.
ip cadena Dirección IPv4 del puerto local que se conecta al nodo PE de la WAN de capa 3.
pasarela cadena Dirección IPv4 del puerto remoto que se conecta al nodo PE. También se usa para la dirección del vecino BGP.
subred cadena Definición de subred de la interfaz que se conecta al nodo PE.
puerto int Número de puerto físico del conmutador OCCORE usado para conectarse al nodo PE.
Subinterfaz int ID de subinterfaz (etiqueta dot1q) usada en la parte superior del puerto físico (si hay alguno).

2.8.3.3.1. Configuraciones de ejemplo

En el siguiente ejemplo se muestra un archivo interconnect.yaml en el que el rack principal de la infraestructura de Operations Suite (OIR) se empareja con una WAN de capa 3, con dos enlaces ascendentes en occoresw01 y un enlace 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. Generar configuraciones de interruptores

Estos pasos generan configuraciones de parches que se aplican a los dispositivos de red para proporcionar conectividad a GDC.

Genera las configuraciones de los interruptores:

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

De esta forma, se generan los siguientes archivos de configuración para cada sitio:

Archivo(s) de configuración Dispositivo Función
occoresw101.incremental occoresw101 Configuración para parchear el dispositivo para que se conecte a la instancia de GDC
occoresw101.acl occoresw101 Configuración para parchear las ACLs para la aplicación del tráfico con las redes de GDC.
occoresw102.incremental occoresw102 Configuración para parchear el dispositivo para que se conecte a la instancia de GDC
occoresw102.acl occoresw102 Configuración para parchear las ACLs para la aplicación del tráfico con las redes de GDC.
ocsw101.incremental ocs1w01 Configuración para parchear el dispositivo para que se conecte a la instancia de GDC
ocsw101.acl ocsw101 Configuración para parchear las ACLs para la aplicación del tráfico con las redes de GDC.
ocsw102.incremental ocsw102 Configuración para parchear el dispositivo para que se conecte a la instancia de GDC
ocsw102.acl ocsw102 Configuración para parchear las ACLs para la aplicación del tráfico con las redes de GDC.

2.8.5. Generar políticas de cortafuegos

Para generar las reglas de cortafuegos, el occonfigtool debe acceder a la API de Kubernetes del clúster de administrador raíz. Comprueba que la variable de entorno KUBECONFIG tenga asignado el valor 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 cortafuegos, ejecuta lo siguiente:

occonfigtool generate fwrules -c ${OCIT_INTERCONNECT_CONFIG_FILE:?} -o ${OCIT_CONFIG_FILE:?}
Archivo(s) de configuración Dispositivo Función
firewall-rules.base occorefw01 Configuración para parchear el dispositivo para que se conecte a la instancia de GDC

2.8.6. Aplicar configuraciones

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

2.8.7. Actualizar recursos de RoutePolicy de los centros de datos de Google

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

Cuando añadimos OI como red externa, tenemos que actualizar los RoutePolicyrecursos personalizados para que se adapten a las nuevas redes.

Para ello, debes acceder al clúster de administrador raíz mediante kubectl. Asegúrate de que se ha definido la variable KUBECONFIG adecuada:

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

Para confirmarlo, haz lo siguiente:

kubectl get routepolicy -n gpc-system

Debería ver un resultado como el siguiente:

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

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

2.8.7.1. Parchear políticas de ruta de red de datos

En 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 en el siguiente ejemplo se usa como $OC_WORKSTATIONS_NET

Usa estos valores para ajustar las políticas de ruta rellenando 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

Una vez definidas las variables de entorno, ejecuta los siguientes comandos 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
                }
            ]
        }
    }
]"

Ejemplo:

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

2.8.7.2. Políticas de ruta de red de gestión de parches

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

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

Usa estos valores para ajustar las políticas de ruta rellenando 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

Una vez definidas las variables de entorno, ejecuta los siguientes comandos kubectl para actualizar las políticas de ruta:

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

Ejemplo:

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