Creación de la administración de la lista de control de acceso (ACL) para redes externas de dominio de aislamiento de NNI y de capa 3
Las listas de control de acceso (ACL) son un conjunto de reglas que regulan el flujo de paquetes entrantes y salientes dentro de una red. El servicio Nexus Network Fabric de Azure ofrece un mecanismo basado en API para configurar las ACL para las interconexiones de red a red y redes externas de dominio de aislamiento de capa 3. En esta guía se describen los pasos para crear ACL.
Crear listas de control de acceso (ACL)
Para crear una ACL y definir sus propiedades, puede usar el az networkfabric acl create
comando. A continuación se muestran los pasos necesarios:
Requisitos previos
Use el entorno de Bash en Azure Cloud Shell. Para más información, consulte Inicio rápido para Bash en Azure Cloud Shell.
Si prefiere ejecutar comandos de referencia de la CLI localmente, instale la CLI de Azure. Si utiliza Windows o macOS, considere la posibilidad de ejecutar la CLI de Azure en un contenedor Docker. Para más información, vea Ejecución de la CLI de Azure en un contenedor de Docker.
Si usa una instalación local, inicie sesión en la CLI de Azure mediante el comando az login. Siga los pasos que se muestran en el terminal para completar el proceso de autenticación. Para ver otras opciones de inicio de sesión, consulte Inicio de sesión con la CLI de Azure.
En caso de que se le solicite, instale las extensiones de la CLI de Azure la primera vez que la use. Para más información sobre las extensiones, consulte Uso de extensiones con la CLI de Azure.
Ejecute az version para buscar cuál es la versión y las bibliotecas dependientes que están instaladas. Para realizar la actualización a la versión más reciente, ejecute az upgrade.
- Establecer suscripción (si es necesario):
Si tiene varias suscripciones y necesita establecer una como valor predeterminado, puede hacerlo con:
az account set --subscription <subscription-id>
- Crear ACL:
az networkfabric acl create --resource-group "<resource-group>" --location "<location>" --resource-name "<acl-name>" --annotation "<annotation>" --configuration-type "<configuration-type>" --default-action "<default-action>" --match-configurations "[{matchConfigurationName:<match-config-name>,sequenceNumber:<sequence-number>,ipAddressType:<IPv4/IPv6>,matchConditions:[{ipCondition:{type:<SourceIP/DestinationIP>,prefixType:<Prefix/Exact>,ipPrefixValues:['<ip-prefix1>', '<ip-prefix2>', ...]}}],actions:[{type:<Action>}]}]"
Parámetro | Descripción |
---|---|
Grupo de recursos | Especifique el grupo de recursos del tejido de red. |
Location | Defina la ubicación donde se crea la ACL. |
Nombre de recurso | Proporcione un nombre para la ACL. |
Anotación | Opcionalmente, agregue una descripción o anotación para la ACL. |
Tipo de configuración | Especifique si la configuración está insertada o mediante un archivo. |
Acción predeterminada | Defina la acción predeterminada que se va a realizar si no se encuentra ninguna coincidencia. |
Configuraciones de coincidencia | Defina las condiciones y acciones para la coincidencia de tráfico. |
Acciones | Especifique la acción que se va a realizar en función de las condiciones de coincidencia. |
Guía de uso de parámetros
En la tabla siguiente se proporcionan instrucciones sobre el uso de parámetros al crear ACL:
Parámetro | Descripción | Ejemplo o rango |
---|---|---|
defaultAction | Define la acción predeterminada que se va a realizar | "defaultAction": "Permitir" |
resource-group | Grupo de recursos del tejido de red | nfresourcegroup |
resource-name | Nombre de la ACL | example-ingressACL |
vlanGroups | Lista de grupos de VLAN | |
vlans | Lista de VLAN que deben coincidir | |
match-configurations | Nombre de la configuración de coincidencia | example_acl |
matchConditions | Condiciones necesarias para que coincidan | |
ttlValues | TTL [Período de vida] | 0-255 |
dscpMarking | Marcas de DSCP que deben coincidir | 0-63 |
fragments | Especificación de los paquetes de fragmentos IP | Intervalo: 1-8191 Ejemplo: [1, 5, 1250-1300, 8000-8191] |
portCondition | Condición de puerto que debe coincidir | |
portType | Tipo de puerto que debe coincidir | Ejemplo: SourcePort |
ports | Número de puerto que debe coincidir | Intervalo: 0-65535 Ejemplo: [1, 10, 500, 1025-1050, 64000-65535] |
protocolTypes | Protocolos que deben coincidir | [tcp, udp, rango[1-2, 1, 2]] |
vlanMatchCondition | Condición de coincidencia de VLAN que debe coincidir | |
layer4Protocol | Protocolo de capa 4 | debe ser TCP o UDP |
ipCondition | Condición de IP que debe coincidir | |
actions | Acción que se va a realizar en función de la condición de coincidencia | Ejemplo: permitir |
tipo de configuración | Tipo de configuración (en línea o archivo) | Ejemplo: en línea |
Nota:
- Los puertos insertados y las VLAN insertadas se definen estáticamente mediante azcli.
- PortGroupNames y VlanGroupNames se definen dinámicamente.
- No se permite combinar puertos insertados con portGroupNames, de forma similar para VLAN insertados y VLANGroupNames.
- No se pueden combinar IPGroupNames y IpPrefixValues.
- Las ACL de salida no admiten determinadas opciones, como las opciones IP, la longitud IP, el fragmento, el tipo ether, el marcado DSCP y los valores TTL.
- Las ACL de entrada no admiten las siguientes opciones: etherType.
- Las entradas de puertos pueden ser
port-number
orange-of-ports
. - Las entradas de fragmentos pueden ser
port-number
orange-of-ports
. - No se admite la ACL con configuración de coincidencia dinámica en redes eternas.
Carga de ejemplo para la creación de ACL
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:example-match,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 del ejemplo
{
"administrativeState": "Disabled",
"annotation": "annotation",
"configurationState": "Succeeded",
"configurationType": "Inline",
"defaultAction": "Deny",
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/Fab3LabNF-4-0/providers/Microsoft.ManagedNetworkFabric/accessControlLists/L3domain091123-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": "example-Ipv4ingressACL ",
"sequenceNumber": 1110
}
],
"name": "example-Ipv4ingressACL",
"provisioningState": "Succeeded",
"resourceGroup": "Fab3LabNF-4-0",
"systemData": {
"createdAt": "2023-09-11T10:20:20.2617941Z",
"createdBy": "user@email.com",
"createdByType": "User",
"lastModifiedAt": "2023-09-11T10:20:20.2617941Z",
"lastModifiedBy": "user@email.com",
"lastModifiedByType": "User"
},
"type": "microsoft.managednetworkfabric/accesscontrollists"
}
Nota:
Después de crear la ACL, asegúrese de anotar el id. de referencia de la ACL para obtener más referencia.
Pasos siguientes
Aplicación de listas de control de acceso (ACL) a NNI en Azure Fabric