Creazione della gestione dell'elenco di controllo di accesso (ACL) per reti esterne del dominio di isolamento NNI e di livello 3
Gli elenchi di controllo di accesso (ACL) sono un set di regole che regolano il flusso di pacchetti in ingresso e in uscita all'interno di una rete. Il servizio Nexus Network Fabric di Azure offre un meccanismo basato su API per configurare gli ACL per le interconnessioni da rete a rete e reti esterne di dominio di isolamento di livello 3. Questa guida illustra i passaggi per creare elenchi di controllo di accesso.
Per creare un elenco di controllo di accesso e definirne le proprietà, è possibile utilizzare il comando az networkfabric acl create
. Di seguito sono riportati i passaggi necessari:
Usare l'ambiente Bash in Azure Cloud Shell. Per altre informazioni, vedere Avvio rapido su Bash in Azure Cloud Shell.
Se si preferisce eseguire i comandi di riferimento dell'interfaccia della riga di comando in locale, installare l'interfaccia della riga di comando di Azure. Per l'esecuzione in Windows o macOS, è consigliabile eseguire l'interfaccia della riga di comando di Azure in un contenitore Docker. Per altre informazioni, vedere Come eseguire l'interfaccia della riga di comando di Azure in un contenitore Docker.
Se si usa un'installazione locale, accedere all'interfaccia della riga di comando di Azure con il comando az login. Per completare il processo di autenticazione, seguire la procedura visualizzata nel terminale. Per altre opzioni di accesso, vedere Accedere tramite l'interfaccia della riga di comando di Azure.
Quando richiesto, al primo utilizzo installare l'estensione dell'interfaccia della riga di comando di Azure. Per altre informazioni sulle estensioni, vedere Usare le estensioni con l'interfaccia della riga di comando di Azure.
Eseguire az version per trovare la versione e le librerie dipendenti installate. Per eseguire l'aggiornamento alla versione più recente, eseguire az upgrade.
- Impostare la sottoscrizione (se necessario):
Se si dispone di più sottoscrizioni ed è necessario impostarne una come predefinita, è possibile farlo con:
az account set --subscription <subscription-id>
- Creare un elenco di controllo di accesso:
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>}]}]"
Parametro | Descrizione |
---|---|
Gruppo di risorse | Specificare il gruppo di risorse dell'infrastruttura di rete. |
Ufficio | Definire il percorso in cui viene creato l'ACL. |
Nome della risorsa | Specificare un nome per l'elenco di controllo di accesso. |
Annotazione | Facoltativamente, aggiungere una descrizione o un'annotazione per l'ACL. |
Tipo configurazione | Specificare se la configurazione è inline o tramite un file. |
Azione predefinita | Definire l'azione predefinita da eseguire se non viene trovata alcuna corrispondenza. |
Configurazioni delle corrispondenze | Definire le condizioni e le azioni per la corrispondenza del traffico. |
Azioni | Specificare l'azione da eseguire in base alle condizioni di corrispondenza. |
La tabella seguente fornisce indicazioni sull'utilizzo dei parametri durante la creazione di elenchi di controllo di accesso:
Parametro | Descrizione | Esempio o intervallo |
---|---|---|
defaultAction | Definisce l'azione predefinita da eseguire | "defaultAction": "Permit" |
resource-group | Gruppo di risorse dell'infrastruttura di rete | nfresourcegroup |
resource-name | Nome dell'elenco di controllo di accesso | example-ingressACL |
vlanGroups | Elenco di gruppi VLAN | |
vlans | Elenco di VLAN che devono essere confrontate | |
match-configurations | Nome della configurazione della corrispondenza | example_acl |
matchConditions | Condizioni che devono essere confrontate | |
ttlValues | TTL [Durata] | 0-255 |
dscpMarking | Contrassegni DSCP che devono essere confrontati | 0-63 |
fragments | Specificare i pacchetti di frammenti IP | Intervallo: 1-8191 Esempio: [1, 5, 1250-1300, 8000-8191] |
portCondition | Condizione della porta che deve essere confrontata | |
portType | Tipo di porta che deve essere confrontato | Esempio: SourcePort |
ports | Numero di porta che deve essere confrontato | Intervallo: 0-65535 Esempio: [1, 10, 500, 1025-1050, 64000-65535] |
protocolTypes | Protocolli che devono essere confrontati | [tcp, udp, range[1-2, 1, 2]] |
vlanMatchCondition | Condizione di corrispondenza VLAN che deve essere confrontata | |
layer4Protocol | Protocollo di livello 4 | deve essere TCP o UDP |
ipCondition | Condizione IP che deve essere confrontata | |
actions | Azione da eseguire in base alla condizione di corrispondenza | Esempio: permit |
configuration-type | Tipo di configurazione (inline o file) | Esempio: inline |
Nota
- Le porte inline e le VLAN inline vengono definite in modo statico usando azcli.
- PortGroupNames e VlanGroupNames vengono definiti dinamicamente.
- La combinazione di porte inline con portGroupNames non è consentita, analogamente per le VLAN inline e VLANGroupNames.
- Impossibile combinare IPGroupNames e IpPrefixValues.
- Gli ACL in uscita non supportano determinate opzioni, ad esempio opzioni IP, lunghezza IP, frammento, ether-type, contrassegno DSCP e valori TTL.
- Gli elenchi di controllo di accesso in ingresso non supportano le opzioni seguenti: etherType.
- Gli input delle porte possono essere
port-number
orange-of-ports
. - Gli input di frammenti possono essere
port-number
orange-of-ports
. - L'ACL con configurazione dinamica delle corrispondenze nelle reti eterne non è supportato.
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}]}]"
{
"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
Dopo aver creato l'ACL, assicurarsi di annotare l'ID riferimento ACL per ulteriori informazioni di riferimento.
Applicazione di elenchi di controllo di accesso (ACL) a NNI in Azure Fabric