2.8. OI network provision GDC connections

Tempo estimado até à conclusão: 6 a 8 horas

Proprietário do componente operacional: PNET

2.8.1. Vista geral

Este passo do processo aprovisiona ficheiros de configuração que permitem que as redes da infraestrutura da Operations Suite (OI) e do GDC estabeleçam conetividade.

Estes passos requerem acesso a alguns ficheiros GDC, bem como conectividade ao cluster de administrador principal da instância do GDC para obter informações de rede de tempo de execução.

2.8.2. Antes de começar

Nesta fase do processo de implementação, o seguinte tem de ser verdadeiro:

  1. Ambos os comutadores OIR estão ligados por cabo, ligados, atualizados para a versão adequada e têm as configurações de base e ACL aplicadas.

  2. Ambas as firewalls OIF estão ligadas por cabo, ligadas à fonte de alimentação, atualizadas para a versão adequada, ativadas para o modo FIPS-CC e têm a configuração base aplicada.

  3. Para concluir o aprovisionamento de conetividade do GDC, a instância do GDC tem de ter concluído o arranque da rede e ter sido movida do cluster do tipo para o cluster de administrador raiz.

2.8.3. Preparação

Prepare o ambiente para os passos seguintes reunindo as seguintes informações e definindo as variáveis de ambiente.

A OI pode ser ligada de duas formas: localmente ou remotamente. Uma ligação local associa a OI ao GDC diretamente através de ligações de fibra entre racks no mesmo centro de dados. Uma ligação remota liga-se a uma localização diferente através de transporte de longa distância. Esta especificação pode ser fornecida no ficheiro interconnect.yaml, que é necessário para aprovisionar configurações de interconexão do GDC. Este ficheiro contém todas as informações necessárias para configurar as interconexões do GDC.

2.8.3.1. Especificação YAML da interligação

Atributo
Descrição
Exemplo
zones
[ ] mapa
Informações sobre a célula do GDC à qual a implementação do OI tem de se ligar.

Para estabelecer ligação a uma lista de células do GDC,
especifique uma lista de zones com informações de cada célula do GDC em cada zona. Opções de zona
Exemplo:
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. Opções de zona

Contém informações sobre uma célula GDC no ficheiro interconnect.yaml:

Atributo
Descrição
Utilização
zoneName
string
Abreviatura da célula do GDC à qual a implementação do OI tem de se ligar.
zones:
- zoneName: kb
uplinkSpeed
uint32
(Opcional) Indica a velocidade de carregamento da ligação: (10 ou 100). Valores:10, 100
Predefinição: 10

uplinkSpeed: 100
localInstance
int
O InstanceID do site de implementação da OI a partir do ficheiro ocit.yaml.
Uma ligação local liga o site do rack principal da infraestrutura do Operations Suite (OIR) ao GDC diretamente através de ligações de fibra entre racks no mesmo centro de dados.
zones:
- zoneName: kb
localInstanceIDs: 1
remoteInstance
[ ] int
InstanceID(s) do site de implementação da OI a partir do ficheiro ocit.yaml.
Uma ligação remota liga-se a uma ou mais localizações diferentes através de transporte de longa distância. Pode fornecer uma lista de valores remoteInstance para que sejam geradas configurações para todos os sites de OIR de modo a estabelecer ligação às células de GDC fornecidas.
zones:
- zoneName: kb
remoteInstanceIDs:
- 1



zones:
- zoneName: kb
remoteInstanceIDs:
- 1

- 2

- 3



cellCfg
string
O caminho de configuração da célula do GDC, que contém todas as informações sobre interconexões. Esta opção vai ser usada para gerar todas as configurações de interligação para a OIR. Se o `cellCfg` não for fornecido no ficheiro interconnect.yaml, a ferramenta occonfig usa a API Kubernetes no bootstrapper da célula GDC para obter informações de interconexão se `zoneName` corresponder à abreviatura da célula GDC.
zones:
- cellCfg: /path/to/cellcfg

Se for uma ligação local, configure o ficheiro interconnect.yaml da seguinte forma:

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

Se for uma ligação remota, configure o ficheiro interconnect.yaml da seguinte forma:

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

Para implementações de OI em vários sites, especifique o ficheiro interconnect.yaml da seguinte forma:

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

2.8.3.3. Opções de WAN

A tabela seguinte inclui informações sobre a L3-WAN no ficheiro interconnect.yaml.

Se aprovisionar as configurações de L3-WAN, certifique-se de que o indicador de funcionalidade L3-WAN gerado tem a funcionalidade ativada e o ASN wan-transit declarado.

Atributo Tipo Descrição
wanName de string Nome da L3-WAN que se liga ao OIC. É usado para descrições em interfaces e relações de vizinhança BGP.
operationsCIDRs [ ] CIDR Conjunto de blocos CIDR esperados pela WAN de nível 3 e permitidos pela OIC. Isto ajuda a configurar a ligação entre o NOC do cliente e as estações de trabalho do OC.
instâncias Configuração de cada instância que precisa de se ligar à L3-WAN.
instanceID int ID da instância do OIC para a qual as configurações devem ser geradas para estabelecer ligação à L3-WAN fornecida.
bgp Configuração de BGP da L3-WAN.
asn int BGP ASN dos nós PE da L3-WAN para configurar ligações eBGP.
dispositivos Configuração específica para cada comutador OCCORE.
deviceName de string Nome do dispositivo, usado nas descrições. Deve ser igual ao nome do ficheiro de configuração gerado a partir do ficheiro ocit.yaml (ocit config generation).
uplinks Configuração específica para portas que se ligam a nós PE de WAN de Nível 3.
uplinkName de string Nome da interface usado para a descrição da interface.
bgpPassword de string Palavra-passe BGP para a interligação em texto não codificado.
ip de string Endereço IPv4 da porta local que se liga ao nó PE da L3-WAN.
gateway de string Endereço IPv4 da porta remota que se liga ao nó PE, também usado para o endereço do vizinho BGP.
sub-rede de string Definição da sub-rede da interface que estabelece ligação ao nó PE.
porta int Número da porta física no comutador OCCORE usado para estabelecer ligação ao nó PE.
subinterface int ID da subinterface (etiqueta dot1q) usado na parte superior da porta física (se existir).

2.8.3.3.1. Exemplos de configurações

O exemplo seguinte mostra um ficheiro interconnect.yaml onde o Operations Suite Infrastructure Core Rack (OIR) estabelece uma relação de intercâmbio com uma L3-WAN, com dois elos de ligação ascendente em occoresw01 e um elo de ligação ascendente em 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. Gere configurações de comutadores

Estes passos geram configurações de patch a aplicar aos dispositivos de rede para aprovisionar a conetividade ao GDC.

Gere as configurações do comutador:

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

Isto gera os seguintes ficheiros de configuração para cada site:

Ficheiros de configuração Dispositivo Função
occoresw101.incremental occoresw101 Configuração para aplicar patches ao dispositivo para a conetividade à instância do GDC
occoresw101.acl occoresw101 Configuração para aplicar patches às ACLs para a aplicação do tráfego com as redes GDC.
occoresw102.incremental occoresw102 Configuração para aplicar patches ao dispositivo para a conetividade à instância do GDC
occoresw102.acl occoresw102 Configuração para aplicar patches às ACLs para a aplicação do tráfego com as redes GDC.
ocsw101.incremental ocs1w01 Configuração para aplicar patches ao dispositivo para a conetividade à instância do GDC
ocsw101.acl ocsw101 Configuração para aplicar patches às ACLs para a aplicação do tráfego com as redes GDC.
ocsw102.incremental ocsw102 Configuração para aplicar patches ao dispositivo para a conetividade à instância do GDC
ocsw102.acl ocsw102 Configuração para aplicar patches às ACLs para a aplicação do tráfego com as redes GDC.

2.8.5. Gere políticas de firewall

Para gerar as regras da firewall, o occonfigtool tem de aceder à API Kubernetes para o cluster de administrador principal. Certifique-se de que a variável de ambiente KUBECONFIG está definida como 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

Gere as regras de firewall executando o seguinte:

occonfigtool generate fwrules -c ${OCIT_INTERCONNECT_CONFIG_FILE:?} -o ${OCIT_CONFIG_FILE:?}
Ficheiros de configuração Dispositivo Função
firewall-rules.base occorefw01 Configuração para aplicar patches ao dispositivo para a conetividade à instância do GDC

2.8.6. Aplique configurações

Usando os ficheiros de saída, aplique a configuração aos dispositivos de rede respetivos através do mesmo procedimento que no passo anterior para comutadores e firewalls.

2.8.7. Atualize os recursos do GDC RoutePolicy

O GDC usa a política de encaminhamento para aplicar as redes que podem ser anunciadas na tabela de encaminhamento.

Quando adicionamos o OI como uma rede externa, temos de atualizar os RoutePolicyrecursos personalizados para que esperem as novas redes.

Isto requer o acesso ao cluster de administrador principal através do kubectl. Certifique-se de que a variável KUBECONFIGadequada está definida:

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

Para confirmar, faça o seguinte:

kubectl get routepolicy -n gpc-system

Deve ver o seguinte resultado ou semelhante:

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

Para estes passos, vamos analisar o networkoperationcenter-routepolicy e o mgmtnetworkoperationcenter-routepolicy.

2.8.7.1. Aplique patches às políticas de encaminhamento da rede de dados

A partir de ocinfo.opscenter.local.txt, obtenha as seguintes sub-redes (incluindo o prefixo de rede e o comprimento).

  • OCCORE-SERVERS, usado no exemplo seguinte como $OCCORE_SERVERS_NET
  • OC-WORKSTATIONS, usado no exemplo seguinte como $OC_WORKSTATIONS_NET

Use estes valores para ajustar as políticas de rotas preenchendo as seguintes variáveis:

export OCCORE_SERVERS_NET=$OCCORE_SERVERS_NET
export OC_WORKSTATIONS_NET=$OC_WORKSTATIONS_NET

Por exemplo:

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

Depois de definir as variáveis de ambiente, execute os seguintes kubectlcomandos para atualizar as políticas de encaminhamento:

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

Exemplo de saída:

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

2.8.7.2. Políticas de encaminhamento de rede de gestão de patches

A partir de ocinfo.opscenter.local.txt, obtenha as seguintes sub-redes (incluindo o prefixo de rede e o comprimento).

  • OCCORE-JUMPHOSTS, usado no exemplo seguinte como $OCCORE_JUMPHOSTS_NET
  • OCCORE-ILOS, usado no exemplo seguinte como $OCCORE_ILOS_NET

Use estes valores para ajustar as políticas de rotas preenchendo as seguintes variáveis:

export OCCORE_JUMPHOSTS_NET=$OCCORE_JUMPHOSTS_NET
export OCCORE_ILOS_NET=$OCCORE_ILOS_NET

Por exemplo:

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

Depois de definir as variáveis de ambiente, execute os seguintes comandos kubectl para atualizar as políticas de encaminhamento:

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

Exemplo de saída:

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