Compartir a través de


Creación de ACL en un NNI en Azure Operator Nexus

En Azure Operator Nexus, las listas de control de acceso (ACL) para las acciones Permit y Deny en un nivel de interconexión de red a red (NNI) ayudan a proteger el acceso de Secure Shell (SSH) en la red privada virtual (VPN) de administración. Las ACL de entrada y salida se crean antes de la creación de recursos de NNI y, a continuación, se hace referencia a esas ACL en la carga de NNI. Debe crear las ACL de entrada y salida a las que se hace referencia antes de aprovisionar el tejido de red.

Estos son los pasos generales para crear una ACL en una NNI:

  1. Cree ACL de entrada y salida de NNI.
  2. Actualice la referencia de recursos de Azure Resource Manager en una NNI de administración.
  3. Cree una NNI y aprovisione el tejido de red.

Guía de uso de parámetros

Parámetro Descripción Ejemplo o intervalo
defaultAction Acción predeterminada que se va a realizar. Si no lo define, se permite el tráfico. "defaultAction": "Permit"
resource-group Grupo de recursos del Network Fabric. nfresourcegroup
resource-name Nombre del ACL. example-ingressACL
vlanGroups Lista de grupos de red de área local virtual (VLAN).
vlans Lista de VLAN que deben coincidir.
match-configurations Nombre de la configuración de coincidencia. example_acl. No se admiten los espacios ni la y comercial (&).
matchConditions Condiciones necesarias para que coincidan.
ttlValues Período de vida (TTL). 0-255
dscpMarking Distintivos de punto de código de servicios (DSCP) que deben coincidir. 0-63
portCondition Condición del puerto con el que debe coincidir.
portType Tipo de puerto con el que debe coincidir. Ejemplo: SourcePort. Valores permitidos: DestinationPort, SourcePort.
protocolTypes Protocolos con los que debe coincidir. [tcp, udp, range[1-2, 1, 2]]. Si es un número de protocolo, debe estar en el intervalo de 1-255.
vlanMatchCondition Condición de VLAN con la que debe coincidir.
layer4Protocol Protocolo de nivel 4. Debe ser TCP o UDP.
ipCondition Condición IP con la que debe coincidir.
actions Acción que se realizará en función de una condición de coincidencia. Ejemplo: permit.
configuration-type Tipo de configuración, que puede ser en línea o en archivo. En este momento, Azure Operator Nexus solo admite en línea. Ejemplo: inline.

También debe tener en cuenta estas restricciones:

  • Los puertos insertados y las VLAN insertadas son una manera estática de definir los puertos o VLAN mediante azcli.
  • portGroupNames y vlanGroupNames son formas dinámicas de definir puertos y VLAN.
  • No se permiten puertos en línea ni los portGroupNames juntos.
  • No se permiten las VLAN en línea ni los vlanGroupNames juntos.
  • No se permiten ipGroupNames y ipPrefixValues juntos.
  • Las ACL de salida no admiten opciones IP, longitud IP, fragmento, EtherType, marcado DSCP ni valores TTL.
  • Las ACL de entrada no admiten las opciones EtherType.

Creación de una ACL de entrada

Para crear una ACL de entrada, puede usar el siguiente comando de la CLI de Azure. Este comando crea una ACL de entrada con las configuraciones especificadas y proporciona el resultado esperado como salida. Ajuste los parámetros según sea necesario para su caso de uso.

az networkfabric acl create
--resource-group "example-rg"
--location "eastus2euap"
--resource-name "example-Ipv4ingressACL"
--configuration-type "Inline"
--default-action "Permit"
--dynamic-match-configurations "[{ipGroups:[{name:'example-ipGroup',ipAddressType:IPv4,ipPrefixes:['10.20.3.1/20']}],vlanGroups:[{name:'example-vlanGroup',vlans:['20-30']}],portGroups:[{name:'example-portGroup',ports:['100-200']}]}]"
--match-configurations "[{matchConfigurationName:'example-match',sequenceNumber:123,ipAddressType:IPv4,matchConditions:[{etherTypes:['0x1'],fragments:['0xff00-0xffff'],ipLengths:['4094-9214'],ttlValues:[23],dscpMarkings:[32],portCondition:{flags:[established],portType:SourcePort,layer4Protocol:TCP,ports:['1-20']},protocolTypes:[TCP],vlanMatchCondition:{vlans:['20-30'],innerVlans:[30]},ipCondition:{type:SourceIP,prefixType:Prefix,ipPrefixValues:['10.20.20.20/12']}}],actions:[{type:Count,counterName:'example-counter'}]}]"

Salida prevista

{
    "properties": {
        "lastSyncedTime": "2023-06-17T08:56:23.203Z",
        "configurationState": "Succeeded",
        "provisioningState": "Accepted",
        "administrativeState": "Enabled",
        "annotation": "annotation",
        "configurationType": "File",
        "aclsUrl": "https://ACL-Storage-URL",
        "matchConfigurations": [{
            "matchConfigurationName": "example-match",
            "sequenceNumber": 123,
            "ipAddressType": "IPv4",
            "matchConditions": [{
                "etherTypes": ["0x1"],
                "fragments": ["0xff00-0xffff"],
                "ipLengths": ["4094-9214"],
                "ttlValues": [23],
                "dscpMarkings": [32],
                "portCondition": {
                    "flags": ["established"],
                    "portType": "SourcePort",
                    "l4Protocol": "TCP",
                    "ports": ["1-20"],
                    "portGroupNames": ["example-portGroup"]
                },
                "protocolTypes": ["TCP"],
                "vlanMatchCondition": {
                    "vlans": ["20-30"],
                    "innerVlans": [30],
                    "vlanGroupNames": ["example-vlanGroup"]
                },
                "ipCondition": {
                    "type": "SourceIP",
                    "prefixType": "Prefix",
                    "ipPrefixValues": ["10.20.20.20/12"],
                    "ipGroupNames": ["example-ipGroup"]
                }
            }]
        }],
        "actions": [{
            "type": "Count",
            "counterName": "example-counter"
        }]
    },
    "tags": {
        "keyID": "KeyValue"
    },
    "location": "eastUs",
    "id": "/subscriptions/xxxxxx/resourceGroups/resourcegroupname/providers/Microsoft.ManagedNetworkFabric/accessControlLists/acl",
    "name": "example-Ipv4ingressACL",
    "type": "microsoft.managednetworkfabric/accessControlLists",
    "systemData": {
        "createdBy": "email@address.com",
        "createdByType": "User",
        "createdAt": "2023-06-09T04:51:41.251Z",
        "lastModifiedBy": "UserId",
        "lastModifiedByType": "User",
        "lastModifiedAt": "2023-06-09T04:51:41.251Z"
    }
}

Creación de una ACL de salida

Para crear una ACL de salida, puede usar el siguiente comando de la CLI de Azure. Este comando crea una ACL de salida con las configuraciones especificadas y proporciona el resultado esperado como salida. Ajuste los parámetros según sea necesario para su caso de uso.

az networkfabric acl create
--resource-group "example-rg"
--location "eastus2euap"
--resource-name "example-Ipv4egressACL"
--configuration-type "File"
--acls-url "https://ACL-Storage-URL"
--default-action "Permit"
--dynamic-match-configurations "[{ipGroups:[{name:'example-ipGroup',ipAddressType:IPv4,ipPrefixes:['10.20.3.1/20']}],vlanGroups:[{name:'example-vlanGroup',vlans:['20-30']}],portGroups:[{name:'example-portGroup',ports:['100-200']}]}]"

Salida prevista

{
    "properties": {
        "lastSyncedTime": "2023-06-17T08:56:23.203Z",
        "configurationState": "Succeeded",
        "provisioningState": "Accepted",
        "administrativeState": "Enabled",
        "annotation": "annotation",
        "configurationType": "File",
        "aclsUrl": "https://ACL-Storage-URL",
        "dynamicMatchConfigurations": [{
            "ipGroups": [{
                "name": "example-ipGroup",
                "ipAddressType": "IPv4",
                "ipPrefixes": ["10.20.3.1/20"]
            }],
            "vlanGroups": [{
                "name": "example-vlanGroup",
                "vlans": ["20-30"]
            }],
            "portGroups": [{
                "name": "example-portGroup",
                "ports": ["100-200"]
            }]
        }]
    },
    "tags": {
        "keyID": "KeyValue"
    },
    "location": "eastUs",
    "id": "/subscriptions/xxxxxx/resourceGroups/resourcegroupname/providers/Microsoft.ManagedNetworkFabric/accessControlLists/acl",
    "name": "example-Ipv4egressACL",
    "type": "microsoft.managednetworkfabric/accessControlLists",
    "systemData": {
        "createdBy": "email@address.com",
        "createdByType": "User",
        "createdAt": "2023-06-09T04:51:41.251Z",
        "lastModifiedBy": "UserId",
        "lastModifiedByType": "User",
        "lastModifiedAt": "2023-06-09T04:51:41.251Z"
    }
}

Actualización de la referencia de Resource Manager

Este paso permite la creación de ACL (entrada y salida si se proporciona la referencia) durante la creación del recurso NNI. Después de crear el NNI y antes de aprovisionar el tejido de red, puede volver a colocar el NNI.

  • ingressAclId: id. de referencia de la ACL de entrada.
  • egressAclId: id. de referencia de la ACL de salida.

Para obtener el identificador de recurso de Resource Manager, vaya al grupo de recursos de la suscripción que usa.

El siguiente comando actualiza la referencia de Resource Manager para el recurso NNI asociándola a las ACL de entrada y salida proporcionadas. Ajuste los parámetros según sea necesario para su caso de uso.

az networkfabric nni create
--resource-group "example-rg"
--fabric "example-fabric"
--resource-name "example-nniwithACL"
--nni-type "CE"
--is-management-type "True"
--use-option-b "True"
--layer2-configuration "{interfaces:['/subscriptions/xxxxx-xxxx-xxxx-xxxx-xxxxx/resourceGroups/example-rg/providers/Microsoft.ManagedNetworkFabric/networkDevices/example-networkDevice/networkInterfaces/example-interface'],mtu:1500}"
--option-b-layer3-configuration "{peerASN:28,vlanId:501,primaryIpv4Prefix:'10.18.0.124/30',secondaryIpv4Prefix:'10.18.0.128/30',primaryIpv6Prefix:'10:2:0:124::400/127',secondaryIpv6Prefix:'10:2:0:124::402/127'}"
--ingress-acl-id "/subscriptions/xxxxx-xxxx-xxxx-xxxx-xxxxx/resourceGroups/example-rg/providers/Microsoft.ManagedNetworkFabric/accesscontrollists/example-Ipv4ingressACL"
--egress-acl-id "/subscriptions/xxxxx-xxxx-xxxx-xxxx-xxxxx/resourceGroups/example-rg/providers/Microsoft.ManagedNetworkFabric/accesscontrollists/example-Ipv4egressACL"

Mostrar detalles de la ACL

Para mostrar los detalles de una ACL especificada, use el siguiente comando:

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

Lista de ACL

Para enumerar todas las ACL dentro de un grupo de recursos especificado, use el siguiente comando:

az networkfabric acl list --resource-group "ResourceGroupName"

Creación de ACL en la red externa de ISD

Use la siguiente información para crear ACL de entrada y salida para la red externa del dominio de aislamiento (ISD). A continuación, actualice la referencia de recursos de Resource Manager para la red externa.

Creación de una ACL de salida para la red externa ISD

Para crear una ACL de salida para la red externa ISD especificada con la configuración proporcionada, use el siguiente comando. Ajuste los parámetros según sea necesario para su caso de uso.

az networkfabric acl create
--resource-group "example-rg"
--location "eastus2euap"
--resource-name "example-Ipv4egressACL"
--annotation "annotation"
--configuration-type "Inline"
--default-action "Deny"
--match-configurations "[{matchConfigurationName:'L3ISD_EXT_OPTA_EGRESS_ACL_IPV4_CE_PE',sequenceNumber:1110,ipAddressType:IPv4,matchConditions:[{ipCondition:{type:SourceIP,prefixType:Prefix,ipPrefixValues:['10.18.0.124/30','10.18.0.128/30','10.18.30.16/30','10.18.30.20/30']}},{ipCondition:{type:DestinationIP,prefixType:Prefix,ipPrefixValues:['10.18.0.124/30','10.18.0.128/30','10.18.30.16/30','10.18.30.20/30']}}],actions:[{type:Count}]}]"

Salida prevista

Si se ejecuta correctamente, el comando devuelve información sobre la ACL creada en el siguiente formato. Esta salida incluye detalles sobre la configuración y el estado.

{
    "administrativeState": "Disabled",
    "annotation": "annotation",
    "configurationState": "Succeeded",
    "configurationType": "Inline",
    "defaultAction": "Deny",
    "id": "/subscriptions/xxxxx-xxxx-xxxx-xxxx-xxxxx/resourceGroups/example-rg/providers/Microsoft.ManagedNetworkFabric/accessControlLists/example-Ipv4egressACL",
    "location": "eastus2euap",
    "matchConfigurations": [
        {
            "actions": [
                {
                    "type": "Count"
                }
            ],
            "ipAddressType": "IPv4",
            "matchConditions": [
                {
                    "ipCondition": {
                        "ipPrefixValues": [
                            "10.18.0.124/30",
                            "10.18.0.128/30",
                            "10.18.30.16/30",
                            "10.18.30.20/30"
                        ],
                        "prefixType": "Prefix",
                        "type": "SourceIP"
                    }
                },
                {
                    "ipCondition": {
                        "ipPrefixValues": [
                            "10.18.0.124/30",
                            "10.18.0.128/30",
                            "10.18.30.16/30",
                            "10.18.30.20/30"
                        ],
                        "prefixType": "Prefix",
                        "type": "DestinationIP"
                    }
                }
            ],
            "matchConfigurationName": "L3ISD_EXT_OPTA_EGRESS_ACL_IPV4_CE_PE",
            "sequenceNumber": 1110
        }
    ],
    "name": "example-Ipv4egressACL",
    "provisioningState": "Succeeded",
    "resourceGroup": "example-rg",
    "systemData": {
        "createdAt": "2023-09-11T10:20:20.2617941Z",
        "createdBy": "email@address.com",
        "createdByType": "User",
        "lastModifiedAt": "2023-09-11T10:20:20.2617941Z",
        "lastModifiedBy": "email@address.com",
        "lastModifiedByType": "User"
    },
    "type": "microsoft.managednetworkfabric/accesscontrollists"
}

Creación de una ACL de entrada para la red externa ISD

Para crear una ACL de entrada para la red externa ISD especificada con la configuración proporcionada, use el siguiente comando. Ajuste los parámetros según sea necesario para su caso de uso.

az networkfabric acl create
--resource-group "example-rg"
--location "eastus2euap"
--resource-name "example-Ipv4ingressACL"
--annotation "annotation"
--configuration-type "Inline"
--default-action "Deny"
--match-configurations "[{matchConfigurationName:'L3ISD_EXT_OPTA_INGRESS_ACL_IPV4_CE_PE',sequenceNumber:1110,ipAddressType:IPv4,matchConditions:[{ipCondition:{type:SourceIP,prefixType:Prefix,ipPrefixValues:['10.18.0.124/30','10.18.0.128/30','10.18.30.16/30','10.18.30.20/30']}},{ipCondition:{type:DestinationIP,prefixType:Prefix,ipPrefixValues:['10.18.0.124/30','10.18.0.128/30','10.18.30.16/30','10.18.30.20/30']}}],actions:[{type:Count}]}]"

Salida prevista

Si se ejecuta correctamente, el comando devuelve información sobre la ACL creada en el siguiente formato. Esta salida incluye detalles sobre la configuración y el estado.

{
    "administrativeState": "Disabled",
    "annotation": "annotation",
    "configurationState": "Succeeded",
    "configurationType": "Inline",
    "defaultAction": "Deny",
    "id": "/subscriptions/xxxxx-xxxx-xxxx-xxxx-xxxxx/resourceGroups/example-rg/providers/Microsoft.ManagedNetworkFabric/accessControlLists/example-Ipv4ingressACL",
    "location": "eastus2euap",
    "matchConfigurations": [
        {
            "actions": [
                {
                    "type": "Count"
                }
            ],
            "ipAddressType": "IPv4",
            "matchConditions": [
                {
                    "ipCondition": {
                        "ipPrefixValues": [
                            "10.18.0.124/30",
                            "10.18.0.128/30",
                            "10.18.30.16/30",
                            "10.18.30.20/30"
                        ],
                        "prefixType": "Prefix",
                        "type": "SourceIP"
                    }
                },
                {
                    "ipCondition": {
                        "ipPrefixValues": [
                            "10.18.0.124/30",
                            "10.18.0.128/30",
                            "10.18.30.16/30",
                            "10.18.30.20/30"
                        ],
                        "prefixType": "Prefix",
                        "type": "DestinationIP"
                    }
                }
            ],
            "matchConfigurationName": "L3ISD_EXT_OPTA_INGRESS_ACL_IPV4_CE_PE",
            "sequenceNumber": 1110
        }
    ],
    "name": "example-Ipv4ingressACL",
    "provisioningState": "Succeeded",
    "resourceGroup": "example-rg",
    "systemData": {
        "createdAt": "2023-09-11T10:20:20.2617941Z",
        "createdBy": "email@address.com",
        "createdByType": "User",
        "lastModifiedAt": "2023-09-11T10:27:27.2317467Z",
        "lastModifiedBy": "email@address.com",
        "lastModifiedByType": "User"
    },
    "type": "microsoft.managednetworkfabric/accesscontrollists"
}