Tempo estimado para a conclusão: 6 a 8 horas
Proprietário do componente operacional: PNET
2.8.1. Visão geral
Esta etapa do processo provisiona arquivos de configuração que permitem que as redes da infraestrutura do Operations Suite (OI) e do GDC estabeleçam conectividade.
Essas etapas exigem acesso a alguns arquivos do GDC e conectividade com o cluster de administrador raiz da instância do GDC para que as informações de rede de tempo de execução sejam recuperadas.
2.8.2. Antes de começar
Nesta etapa do processo de implantação, as seguintes condições precisam ser verdadeiras:
Os dois switches OIR estão conectados por cabo, ligados, atualizados para a versão adequada e têm configurações de base e ACL aplicadas.
Os dois firewalls OIF estão conectados por cabo, ligados, atualizados para a versão adequada, ativados para o modo FIPS-CC e têm a configuração básica aplicada.
Para concluir todo o provisionamento de conectividade do GDC, a instância do GDC precisa ter concluído a inicialização da rede e saído do cluster kind para o cluster de administrador raiz.
2.8.3. Preparação
Prepare o ambiente para as próximas etapas coletando as seguintes informações e definindo as variáveis de ambiente.
O OI pode ser conectado de duas maneiras: local ou remota.
Uma conexão local conecta o OI ao GDC diretamente usando conexões de fibra entre racks no mesmo data center.
Uma conexão remota se conecta a um local diferente usando transporte de longa distância.
Essa especificação pode ser fornecida no arquivo interconnect.yaml, que é necessário para provisionar configurações de interconexão do GDC.
Esse arquivo contém todas as informações necessárias para configurar as interconexões do GDC.
2.8.3.1. Especificação YAML da interconexão
| Attribute |
Descrição |
Exemplo |
|---|---|---|
zones[ ] map |
Informações sobre a célula do GDC a que a implantação do OI precisa se conectar. Para se conectar 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: |
2.8.3.2. Opções de zona
Contém informações sobre uma célula do GDC no arquivo interconnect.yaml:
| Attribute |
Descrição |
Uso |
|---|---|---|
zoneNamestring |
A abreviação da célula do GDC a que a implantação da OI precisa se conectar. | zones: |
uplinkSpeeduint32 |
(Opcional) Fornece a velocidade de uplink da conexão: (10 ou 100).
|
Valores:10, 100Padrão: 10uplinkSpeed: 100 |
localInstanceint |
O InstanceID do site de implantação do OI no arquivo ocit.yaml.Uma conexão local conecta o site do rack principal da infraestrutura da Suite de operações (OIR) ao GDC diretamente usando conexões de fibra entre racks no mesmo data center. |
zones: |
remoteInstance[ ] int |
InstanceID(s) do site de implantação da OI no arquivo ocit.yaml.Uma conexão remota se conecta a um ou mais locais diferentes usando transporte de longa distância. É possível fornecer uma lista de valores remoteInstance para que as configurações de todos os sites do OIR sejam geradas para se conectar a determinadas células do GDC.
|
zones: zones: |
cellCfgstring |
Caminho da configuração da célula do GDC, que contém todas as informações sobre interconexões. Isso será usado para gerar todas as configurações de interconexão para o OIR.\ Se o `cellCfg` não for fornecido no arquivo interconnect.yaml, a ferramenta occonfig usará a API Kubernetes no bootstrap da célula do GDC para buscar informações de interconexão se `zoneName` corresponder à abreviação da célula do GDC. | zones: |
Se for uma conexão local, configure o arquivo interconnect.yaml da seguinte maneira:
zones:
- zoneName: ah
uplinkSpeed: 100
localInstanceID: 1
cellCfg: /path/to/cellcfg
Se for uma conexão remota, configure o arquivo interconnect.yaml da seguinte maneira:
zones:
- zoneName: ah
uplinkSpeed: 100
remoteInstanceIDs:
- 2
cellCfg: /path/to/cellcfg
Para implantações de OI em vários sites, especifique o arquivo interconnect.yaml como:
zones:
- zoneName: ah
uplinkSpeed: 100
localInstanceID: 1
remoteInstanceIDs:
- 2
cellCfg: /path/to/cellcfg
2.8.3.3. Opções de WAN
A tabela a seguir inclui informações sobre a L3-WAN no arquivo interconnect.yaml.
Se você provisionar as configurações de L3-WAN, verifique se as configurações de base geradas têm a flag de recurso L3-WAN ativada e o ASN wan-transit declarado.
| Atributo | Tipo | Descrição |
|---|---|---|
| wanName | string | Nome da WAN da camada 3 que se conecta ao OIC. Isso é usado para descrições em interfaces e vizinhanças do BGP. |
| operationsCIDRs | [ ] CIDR | Conjunto de blocos CIDR esperados pela WAN da camada 3 e permitidos pelo OIC. Isso ajuda a configurar a conexão entre o NOC do cliente e o OC-WORKSTATIONS. |
| instâncias | Configuração de cada instância que precisa se conectar à L3-WAN. | |
| instanceID | int | ID da instância do OIC para a qual as configurações serão geradas para se conectar à L3-WAN fornecida. |
| bgp | Configuração do BGP da WAN da camada 3. | |
| asn | int | ASN do BGP dos nós PE da WAN da camada 3 para configurar conexões eBGP. |
| dispositivos | Configuração específica para cada switch OCCORE. | |
| deviceName | string | Nome do dispositivo, usado em descrições. Precisa ser igual ao nome do arquivo de configuração gerado pelo arquivo ocit.yaml (ocit config generation). |
| uplinks | Configuração específica para portas que se conectam a nós PE da WAN L3. | |
| uplinkName | string | Nome da interface usado para a descrição dela. |
| bgpPassword | string | Senha do BGP para o peering em texto não criptografado. |
| ip | string | Endereço IPv4 da porta local que se conecta ao nó PE da L3-WAN. |
| gateway | string | Endereço IPv4 da porta remota que se conecta ao nó PE, também usado para o endereço do vizinho BGP. |
| sub-rede | string | Definição de sub-rede da interface que se conecta ao nó PE. |
| porta | int | Número da porta física no switch OCCORE usado para se conectar ao nó PE. |
| subinterface | int | ID da subinterface (tag dot1q) usada na porta física (se houver). |
2.8.3.3.1. Exemplos de configurações
O exemplo a seguir mostra um arquivo interconnect.yaml em que o rack principal da infraestrutura da Operations Suite (OIR) faz peering com uma WAN da camada 3, com dois uplinks em occoresw01 e um uplink 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. Gerar configurações de switch
Essas etapas geram configurações de patch para aplicar aos dispositivos de rede e provisionar a conectividade com o GDC.
Gere as configurações do switch:
occonfigtool generate cell config -c /path/to/interconnect.yaml -o path/to/ocit.yaml
Isso gera os seguintes arquivos de configuração para cada site:
| Arquivos de configuração | Dispositivo | Função |
|---|---|---|
| occoresw101.incremental | occoresw101 | Configuração para corrigir o dispositivo e permitir a conectividade com a instância do GDC |
| occoresw101.acl | occoresw101 | Configuração para corrigir as ACLs para aplicação de tráfego com as redes do GDC. |
| occoresw102.incremental | occoresw102 | Configuração para corrigir o dispositivo e permitir a conectividade com a instância do GDC |
| occoresw102.acl | occoresw102 | Configuração para corrigir as ACLs para aplicação de tráfego com as redes do GDC. |
| ocsw101.incremental | ocs1w01 | Configuração para corrigir o dispositivo e permitir a conectividade com a instância do GDC |
| ocsw101.acl | ocsw101 | Configuração para corrigir as ACLs para aplicação de tráfego com as redes do GDC. |
| ocsw102.incremental | ocsw102 | Configuração para corrigir o dispositivo e permitir a conectividade com a instância do GDC |
| ocsw102.acl | ocsw102 | Configuração para corrigir as ACLs para aplicação de tráfego com as redes do GDC. |
2.8.5. Gerar políticas de firewall
Para gerar as regras de firewall, o occonfigtool precisa acessar a
API Kubernetes do cluster de administrador raiz. Verifique se 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 comando:
occonfigtool generate fwrules -c ${OCIT_INTERCONNECT_CONFIG_FILE:?} -o ${OCIT_CONFIG_FILE:?}
| Arquivos de configuração | Dispositivo | Função |
|---|---|---|
| firewall-rules.base | occorefw01 | Configuração para corrigir o dispositivo e permitir a conectividade com a instância do GDC |
2.8.6. Aplicar configurações
Usando os arquivos de saída, aplique a configuração aos respectivos dispositivos de rede usando o mesmo procedimento da etapa anterior para switches e firewalls.
2.8.7. Atualizar recursos do GDC RoutePolicy
O GDC usa a política de roteamento para aplicar quais redes podem ser divulgadas na tabela de roteamento.
Ao adicionar o OI como uma rede externa, é necessário atualizar os recursos personalizados RoutePolicy para esperar as novas redes.
Isso requer o acesso ao cluster de administrador raiz usando kubectl. Verifique se a variável KUBECONFIG apropriada está definida:
export KUBECONFIG=/root/deploy/root-admin/root-admin-kubeconfig
Para confirmar, faça o seguinte:
kubectl get routepolicy -n gpc-system
A seguinte saída, ou algo parecido, vai aparecer:
NAME AGE
customerpeering-routepolicy 19d
datacenter-routepolicy 19d
mgmtnetworkoperationcenter-routepolicy 19d
networkoperationcenter-routepolicy 19d
Para essas etapas, vamos examinar os elementos networkoperationcenter-routepolicy e mgmtnetworkoperationcenter-routepolicy.
2.8.7.1. Adicionar patch às políticas de rotas de rede de dados
Na ocinfo.opscenter.local.txt, recupere as seguintes sub-redes (incluindo a rede e o tamanho do prefixo).
- OCCORE-SERVERS, usado no exemplo a seguir como
$OCCORE_SERVERS_NET - OC-WORKSTATIONS, usado no exemplo a seguir como
$OC_WORKSTATIONS_NET
Use esses valores para ajustar as políticas de roteamento preenchendo as seguintes variáveis:
export OCCORE_SERVERS_NET=$OCCORE_SERVERS_NET
export OC_WORKSTATIONS_NET=$OC_WORKSTATIONS_NET
Exemplo:
export OCCORE_SERVERS_NET=172.21.0.0/24
export OC_WORKSTATIONS_NET=172.21.32.0/24
Depois que as variáveis de ambiente forem definidas, execute os seguintes comandos kubectl
para atualizar as políticas de rotas:
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 rota de rede de gerenciamento de patches
Na ocinfo.opscenter.local.txt, recupere as seguintes sub-redes (incluindo a rede e o tamanho do prefixo).
- OCCORE-JUMPHOSTS, usado no exemplo a seguir como
$OCCORE_JUMPHOSTS_NET - OCCORE-ILOS, usado no exemplo a seguir como
$OCCORE_ILOS_NET
Use esses valores para ajustar as políticas de roteamento preenchendo as seguintes variáveis:
export OCCORE_JUMPHOSTS_NET=$OCCORE_JUMPHOSTS_NET
export OCCORE_ILOS_NET=$OCCORE_ILOS_NET
Exemplo:
export OCCORE_JUMPHOSTS_NET=172.21.2.0/27
export OCCORE_ILOS_NET=172.21.2.32/27
Depois que as variáveis de ambiente forem definidas, execute os seguintes comandos kubectl para atualizar as políticas de roteamento:
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