Compartilhar via


Agente de Pacotes de Rede

O Agente de Pacotes de Rede do Nexus do Operador do Azure é uma oferta especializada do Microsoft Azure personalizada para provedores de serviços de telecomunicações. Com o Agente de Pacotes de Rede do Nexus do Operador do Azure, as operadoras de telecomunicações podem capturar, agregar, filtrar e monitorar o tráfego com eficiência em sua infraestrutura (AON), permitindo uma inspeção profunda de pacotes, análise de tráfego e monitoramento de rede aprimorado. Isso é crucial no setor de telecomunicações, em que a manutenção de serviços de alta qualidade, a garantia de segurança e o cumprimento dos requisitos regulatórios são primordiais. Ao aplicar essa solução, os operadores podem obter melhor visibilidade do tráfego de rede, solucionar problemas com mais eficiência e, por fim, fornecer serviços aprimorados para seus clientes, mantendo os mais altos padrões de segurança e desempenho de rede.

O NPB (Agente de Pacotes de Rede) foi projetado e modelado como um recurso separado do ARM (Azure Resource Manager) em Microsoft.managednetworkfabric. Os operadores podem Criar, Ler, Atualizar e Excluir funções de TAP de Rede, regra TAP de Rede e de Grupo Vizinho. Cada agente de pacotes de rede tem vários recursos, como TAP de Rede, Grupo vizinho e Regras TAP de rede para gerenciar, filtrar e encaminhar o tráfego designado.

Etapas para habilitar o Agente de Pacotes de Rede

Pré-requisitos

  • Os dispositivos NPB são armazenados, empilhados e provisionados corretamente. Para o Procedimento sobre como provisionar a malha de rede, consulte Provisionamento do Network Fabric.
  • Os respectivos vProbes devem ser configurados com IPs dedicados
  • Para vProbes internos, domínios de isolamento de camada 3 com redes internas devem ser criados. As sub-redes conectadas necessárias devem ser configuradas, além disso, o sinalizador de extensão deve ser definido como NPB (em redes internas). Para Procedimento sobre como criar redes internas e externas em um Domínio de Isolamento e definir o sinalizador de extensão para NPB, consulte Domínios de Isolamento.
  • Para o caso de uso NNI (Interconexão de rede a rede), o NNI deve ser criado como tipo NPB. As propriedades apropriadas da camada 2 e da camada 3 devem ser definidas durante a criação da NNI. Para o Procedimento sobre como criar a rede para a NNI (interconexão de rede), consulte Provisionamento do Network Fabric.

Etapas

  1. Criar uma regra TAP de Rede fornecendo a configuração de correspondência (somente o método de entrada embutida tem suporte)
  2. Crie um recurso de grupo vizinho definindo destinos.
  3. Crie um recurso TAP de Rede referenciando as regras de TAP e grupos vizinhos.
  4. Habilite o recurso TAP de Rede.

NPB

O NNF criaria automaticamente esse recurso durante o bootstrap..

Mostrar NPB

Este comando mostra os detalhes do recurso lógico NPB.

 az networkfabric npb show --resource-group "example-rg" --resource-name "NPB1"

Saída Esperada

{
  "properties": {
    "networkFabricId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/example-rg/providers/Microsoft.ManagedNetworkFabric/networkFabrics/example-networkFabric",
    "networkDeviceIds": [
      "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/example-rg/providers/Microsoft.ManagedNetworkFabric/networkDevices/example-networkDevice"
    ],
    "sourceInterfaceIds": [
      "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/example-rg/providers/Microsoft.ManagedNetworkFabric/networkDevices/example-networkDevice/networkInterfaces/example-networkInterface"
    ],
    "networkTapIds": [
      "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/example-rg/providers/Microsoft.ManagedNetworkFabric/networkTaps/example-networkTap"
    ],
    "neighborGroupIds": [
      "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/example-rg/providers/Microsoft.ManagedNetworkFabric/neighborGroups/example-neighborGroup"
    ],
    "provisioningState": "Succeeded"
  },
  "tags": {
    "key2806": "key"
  },
  "location": "eastuseuap",
  "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/example-rg/providers/Microsoft.ManagedNetworkFabric/networkPacketBrokers/example-networkPacketBroker",
  "name": "example-networkPacketBroker",
  "type": "microsoft.managednetworkfabric/networkPacketBrokers",
  "systemData": {
    "createdBy": "email@address.com",
    "createdByType": "User",
    "createdAt": "2023-05-17T11:56:12.100Z",
    "lastModifiedBy": "email@address.com",
    "lastModifiedByType": "User",
    "lastModifiedAt": "2023-05-17T11:56:12.100Z"
  }
}

Regras de TAP de Rede

O recurso NetworkTapRule fornece capacidade para fornecer combinações de filtragem e encaminhamento de condições e ações.

Parâmetros para regras de TAP de Rede

Parâmetro Descrição Exemplo Necessário
resource-group Usar um nome de grupo de recursos apropriado especificamente para o NetworkTapRule ResourceGroupName Verdadeiro
resource-name Nomes de recursos do toque de rede InternetTAPrule1 Verdadeiro
local Região do Azure do AzON usada durante a criação do NFC (Controlador de Malha de Rede) eastus Verdadeiro
configuration-type Métodos de entrada para configurar a Regra de Toque de Rede. Embutido ou arquivo Verdadeiro
configurações de correspondência Lista de configurações de correspondência.
match-configurations/matchconfigurationName Nome do bloco de configuração De correspondência
match-configurations/sequenceNumber Número de sequência de configuração de correspondência
match-configurations/ipAddressType Família de endereços IP
match-configurations/matchconditions Lista de condições de correspondência dinâmica com base nas condições de porta, protocolo, VLAN e IP.
match-configurations/action Forneça detalhes da ação. As ações podem ser Drop, Count, Log, Goto, Redirect, Mirror
dynamic-match-configurations Lista de configurações de correspondência dinâmica baseadas em Porta, VLAN &IP

Observação

Regras de TAP de Rede e Grupos Vizinhos devem ser criados antes de referenciá-los no TAP de Rede

Criar Regra de TAP de Rede

Esse comando cria uma regra de TAP de Rede:

az networkfabric taprule create --resource-group "example-rg" --location "westus3"--resource-name "example-networktaprule"\
 --configuration-type "Inline" \
 --match-configurations "[{matchConfigurationName:config1,sequenceNumber:10,ipAddressType:IPv4,matchConditions:[{encapsulationType:None,portCondition:{portType:SourcePort,layer4Protocol:TCP,ports:[100],portGroupNames:['example-portGroup1']},protocolTypes:[TCP],vlanMatchCondition:{vlans:['10'],innerVlans:['11-20']},ipCondition:{type:SourceIP,prefixType:Prefix,ipPrefixValues:['10.10.10.10/20']}}],\
 actions:[{type:Drop,truncate:100,isTimestampEnabled:True,destinationId:'/subscriptions/xxxxx-xxxx-xxxx-xxxx-xxxxx/resourcegroups/example-rg/providers/Microsoft.ManagedNetworkFabric/neighborGroups/example-neighborGroup',matchConfigurationName:match1}]}]"\
 --dynamic-match-configurations"[{ipGroups:[{name:'example-ipGroup1',ipAddressType:IPv4,ipPrefixes:['10.10.10.10/30']}],vlanGroups:[{name:'example-vlanGroup',vlans:['10']}],portGroups:[{name:'example-portGroup1',ports:['100-200']}]}]"

Saída esperada:

{
  "properties": {
    "networkTapId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/example-rg/providers/Microsoft.ManagedNetworkFabric/networkTaps/example-taprule",
    "pollingIntervalInSeconds": 30,
    "lastSyncedTime": "2023-06-12T07:11:22.485Z",
    "configurationState": "Succeeded",
    "provisioningState": "Accepted",
    "administrativeState": "Enabled",
    "annotation": "annotation",
    "configurationType": "Inline",
    "tapRulesUrl": "",
    "matchConfigurations": [
      {
        "matchConfigurationName": "config1",
        "sequenceNumber": 10,
        "ipAddressType": "IPv4",
        "matchConditions": [
          {
            "encapsulationType": "None",
            "portCondition": {
              "portType": "SourcePort",
              "l4Protocol": "TCP",
              "ports": [
                "100"
              ],
              "portGroupNames": [
                "example-portGroup1"
              ]
            },
            "protocolTypes": [
              "TCP"
            ],
            "vlanMatchCondition": {
              "vlans": [
                "10"
              ],
              "innerVlans": [
                "11-20"
              ],
              "vlanGroupNames": [
                "example-vlanGroup"
              ]
            },
            "ipCondition": {
              "type": "SourceIP",
              "prefixType": "Prefix",
              "ipPrefixValues": [
                "10.10.10.10/20"
              ],
              "ipGroupNames": [
                "example-ipGroup"
              ]
            }
          }
        ],
        "actions": [
          {
            "type": "Drop",
            "truncate": "100",
            "isTimestampEnabled": "True",
            "destinationId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/example-rg/providers/Microsoft.ManagedNetworkFabric/neighborGroups/example-neighborGroup",
            "matchConfigurationName": "match1"
          }
        ]
      }
    ],
    "dynamicMatchConfigurations": [
      {
        "ipGroups": [
          {
            "name": "example-ipGroup1",
            "ipPrefixes": [
              "10.10.10.10/30"
            ]
          }
        ],
        "vlanGroups": [
          {
            "name": "example-vlanGroup",
            "vlans": [
              "10",
              "100-200"
            ]
          }
        ],
        "portGroups": [
          {
            "name": "example-portGroup1",
            "ports": [
              "100-200"
            ]
          },
          {
            "name": "example-portGroup2",
            "ports": [
              "900",
              "1000-2000"
            ]
          }
        ]
      }
    ]
  },
  "tags": {
    "keyID": "keyValue"
  },
  "location": "eastuseuap",
  "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/example-rg/providers/Microsoft.ManagedNetworkFabric/networkTapRules/example-tapRule",
  "name": "example-tapRule",
  "type": "microsoft.managednetworkfabric/networkTapRules",
  "systemData": {
    "createdBy": "email@address.com",
    "createdByType": "User",
    "createdAt": "2023-06-12T07:11:22.488Z",
    "lastModifiedBy": "user@mail.com",
    "lastModifiedByType": "User",
    "lastModifiedAt": "2023-06-12T07:11:22.488Z"
  }
}

Mostrar Regra de TAP de Rede

Este comando exibe um recurso da comunidade de IP:

az networkfabric taprule show --resource-group "example-rg" --resource-name "example-networktaprule"

Saída esperada:

{
  "properties": {
    "networkTapId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/example-rg/providers/Microsoft.ManagedNetworkFabric/networkTaps/example-taprule",
    "pollingIntervalInSeconds": 30,
    "lastSyncedTime": "2023-06-12T07:11:22.485Z",
    "configurationState": "Succeeded",
    "provisioningState": "Accepted",
    "administrativeState": "Enabled",
    "annotation": "annotation",
    "configurationType": "Inline",
    "tapRulesUrl": "",
    "matchConfigurations": [
      {
        "matchConfigurationName": "config1",
        "sequenceNumber": 10,
        "ipAddressType": "IPv4",
        "matchConditions": [
          {
            "encapsulationType": "None",
            "portCondition": {
              "portType": "SourcePort",
              "l4Protocol": "TCP",
              "ports": [
                "100"
              ],
              "portGroupNames": [
                "example-portGroup1"
              ]
            },
            "protocolTypes": [
              "TCP"
            ],
            "vlanMatchCondition": {
              "vlans": [
                "10"
              ],
              "innerVlans": [
                "11-20"
              ],
              "vlanGroupNames": [
                "example-vlanGroup"
              ]
            },
            "ipCondition": {
              "type": "SourceIP",
              "prefixType": "Prefix",
              "ipPrefixValues": [
                "10.10.10.10/20"
              ],
              "ipGroupNames": [
                "example-ipGroup"
              ]
            }
          }
        ],
        "actions": [
          {
            "type": "Drop",
            "truncate": "100",
            "isTimestampEnabled": "True",
            "destinationId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/example-rg/providers/Microsoft.ManagedNetworkFabric/neighborGroups/example-neighborGroup",
            "matchConfigurationName": "match1"
          }
        ]
      }
    ],
    "dynamicMatchConfigurations": [
      {
        "ipGroups": [
          {
            "name": "example-ipGroup1",
            "ipPrefixes": [
              "10.10.10.10/30"
            ]
          }
        ],
        "vlanGroups": [
          {
            "name": "example-vlanGroup",
            "vlans": [
              "10",
              "100-200"
            ]
          }
        ],
        "portGroups": [
          {
            "name": "example-portGroup1",
            "ports": [
              "100-200"
            ]
          },
          {
            "name": "example-portGroup2",
            "ports": [
              "900",
              "1000-2000"
            ]
          }
        ]
      }
    ]
  },
  "tags": {
    "keyID": "keyValue"
  },
  "location": "eastuseuap",
  "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/example-rg/providers/Microsoft.ManagedNetworkFabric/networkTapRules/example-tapRule",
  "name": "example-tapRule",
  "type": "microsoft.managednetworkfabric/networkTapRules",
  "systemData": {
    "createdBy": "email@address.com",
    "createdByType": "User",
    "createdAt": "2023-06-12T07:11:22.488Z",
    "lastModifiedBy": "user@mail.com",
    "lastModifiedByType": "User",
    "lastModifiedAt": "2023-06-12T07:11:22.488Z"
  }
}

Grupo vizinho

O recurso grupo vizinho tem a capacidade de agrupar destinos para encaminhar o tráfego filtrado

Parâmetros para o Grupo Vizinho

Parâmetro Descrição Exemplo Necessário
resource-group Usar um nome de grupo de recursos apropriado especificamente para o NeighborGroup ResourceGroupName Verdadeiro
resource-name Nomes de recursos do NeighborGroup example-Neighbor Verdadeiro
local Região do Azure AzON usada durante a criação da NFC eastus Verdadeiro
destino Lista de destinos Ipv4 ou Ipv6 para encaminhar o tráfego 10.10.10.10 Verdadeiro

Criar grupo vizinho

Este comando cria um recurso de Grupo de Vizinhos:

 az networkfabric neighborgroup create --resource-group "example-rg" --location "westus3"
--resource-name "example-neighborgroup" --destination "{ipv4Addresses:['10.10.10.10']}"

Saída esperada:

{
  "properties": {
    "networkTapIds": [
    ],
    "networkTapRuleIds": [
    ],
    "destination": {
      "ipv4Addresses": [
        "10.10.10.10",
      ]
    },
    "provisioningState": "Succeeded",
    "annotation": "annotation"
  },
  "tags": {
    "keyID": "KeyValue"
  },
  "location": "eastus",
  "id": "/subscriptions/subscriptionId/resourceGroups/example-rg/providers/Microsoft.ManagedNetworkFabric/neighborGroups/example-neighborGroup",
  "name": "example-neighborGroup",
  "type": "microsoft.managednetworkfabric/neighborGroups",
  "systemData": {
    "createdBy": "user@mail.com",
    "createdByType": "User",
    "createdAt": "2023-05-23T05:49:59.193Z",
    "lastModifiedBy": "email@address.com",
    "lastModifiedByType": "User",
    "lastModifiedAt": "2023-05-23T05:49:59.194Z"
  }
}

Mostrar recurso de grupo vizinho

Este comando exibe um recurso de comunidade estendida de IP:

 az networkfabric neighborgroup show --resource-group "example-rg" --resource-name "example-neighborgroup"

Saída esperada:

{
  "properties": {
    "networkTapIds": [
    ],
    "networkTapRuleIds": [
    ],
    "destination": {
      "ipv4Addresses": [
        "10.10.10.10",
      ]
    },
    "provisioningState": "Succeeded",
    "annotation": "annotation"
  },
  "tags": {
    "keyID": "KeyValue"
  },
  "location": "eastus",
  "id": "/subscriptions/subscriptionId/resourceGroups/example-rg/providers/Microsoft.ManagedNetworkFabric/neighborGroups/example-neighborGroup",
  "name": "example-neighborGroup",
  "type": "microsoft.managednetworkfabric/neighborGroups",
  "systemData": {
    "createdBy": "user@mail.com",
    "createdByType": "User",
    "createdAt": "2023-05-23T05:49:59.193Z",
    "lastModifiedBy": "email@address.com",
    "lastModifiedByType": "User",
    "lastModifiedAt": "2023-05-23T05:49:59.194Z"
  }
}

Rede de TAP

O TAP de Rede permite que os operadores definam destinos e mecanismo de encapsulamento para encaminhar o tráfego filtrado com base nas regras de TAP de Rede

Parâmetros para TAP de Rede

Parâmetro Descrição Exemplo Necessário
resource-group Usar um nome de grupo de recursos apropriado especificamente para seu TAP de Rede ResourceGroupName Verdadeiro
resource-name Nome do Recurso do TAP de Rede NetworkTAP-Austin Verdadeiro
local Região do Azure AzON usada durante a criação da NFC eastus Verdadeiro
network-packet-broker-id ARMID do recurso do Agente de Pacotes de Rede Verdadeiro
polling-type Método de sondagem para regras de TAP de Rede (Push ou Pull) Pull Verdadeiro
destino Definições de destino Verdadeiro
destino/nome nome do destino
destino/tipo tipo de destination.IsolationDomain ou NNI
destination/IsolationDomainProperties Detalhes do domínio Isolamento. Encapsulamento, IDs do grupo Vizinho ID do ARM (Azure Resource Manager) de rede interna ou NNI Falso
destinationTapRuleId ARMID da regra TAP, que precisa ser aplicada Verdadeiro

Observação

Regras de TAP de Rede e Grupos Vizinhos devem ser criados antes de referenciá-los no TAP de Rede

Convenções de nomenclatura de programação de dispositivo NetworkTAP/práticas recomendadas:

É essencial garantir que as configurações e os valores dentro desses nomes de conjunto de campos (vlanGroupNames, ipGroupNames, PortGroupNames) sejam exclusivos e não entrem em conflito entre si.

  • Recomendações:

    • Nomes exclusivos de conjunto de campos: os nomes do conjunto de campos em NetworkTAPRules devem ser exclusivos se o conteúdo do conjunto de campos for distinto.

    • Nomes de recursos exclusivos: os nomes de recursos NetworkTAP e NetworkTAPRule devem ser exclusivos entre grupos de recursos no Fabric.

    • Criação de recursos regionais: os recursos NetworkTAP e NetworkTAPRule devem ser criados na Região e associados ao respectivo Fabric na Região.

    • Modificação de Nome de Destino: o nome de destino é exclusivo para uma configuração de destino de regra de toque de rede definida. O nome de destino não pode ser modificado depois que a configuração de toque de rede é enviada por push para o dispositivo.

Criar TAP de Rede

Este comando cria um recurso de TAP de Rede:

az networkfabric tap create --resource-group "example-rg" --location "westus3" \
--resource-name "example-networktap" \
--network-packet-broker-id "/subscriptions/xxxxx-xxxx-xxxx-xxxx-xxxxx/resourcegroups/example-rg/providers/Microsoft.ManagedNetworkFabric/networkPacketBrokers/example-networkPacketBroker" \
--polling-type "Pull"\
--destinations "[{name:'example-destinationName',destinationType:IsolationDomain,destinationId:'/subscriptions/xxxxx/resourcegroups/example-rg/providers/Microsoft.ManagedNetworkFabric/l3IsolationDomains/example-l3Domain/internalNetworks/example-internalNetwork',\
isolationDomainProperties:{encapsulation:None,neighborGroupIds:['/subscriptions/xxxxx-xxxx-xxxx-xxxx-xxxxx/resourcegroups/example-rg/providers/Microsoft.ManagedNetworkFabric/neighborGroups/example-neighborGroup']},\