Erstellen von Zugriffskontrolllisten (ACL) für die Verwaltung von externen NNI- und Layer-3-Isolationsdomänen-Netzwerken
Zugriffssteuerungslisten (Access Control Lists, ACLs) sind eine Reihe von Regeln, die den eingehenden und ausgehenden Paketfluss innerhalb eines Netzwerks regeln. Der Azure Nexus Network Fabric-Dienst bietet einen API-basierten Mechanismus zum Konfigurieren von ACLs für Netzwerk-zu-Netzwerk-Verbindungen und externe Netzwerke mit Layer-3-Isolationsdomänen. In diesem Handbuch werden die Schritte zum Erstellen von ACLs beschrieben.
Erstellen von UPF-Zugriffssteuerungslisten (ACLs)
Um eine ACL zu erstellen und seine Eigenschaften zu definieren, können Sie den Befehl az networkfabric acl create
verwenden. Im Folgenden finden Sie eine Aufstellung der Schritte:
Voraussetzungen
Verwenden Sie die Bash-Umgebung in Azure Cloud Shell. Weitere Informationen finden Sie unter Schnellstart für Bash in Azure Cloud Shell.
Wenn Sie CLI-Referenzbefehle lieber lokal ausführen, installieren Sie die Azure CLI. Wenn Sie Windows oder macOS ausführen, sollten Sie die Azure CLI in einem Docker-Container ausführen. Weitere Informationen finden Sie unter Ausführen der Azure CLI in einem Docker-Container.
Wenn Sie eine lokale Installation verwenden, melden Sie sich mithilfe des Befehls az login bei der Azure CLI an. Führen Sie die in Ihrem Terminal angezeigten Schritte aus, um den Authentifizierungsprozess abzuschließen. Informationen zu anderen Anmeldeoptionen finden Sie unter Anmelden mit der Azure CLI.
Installieren Sie die Azure CLI-Erweiterung beim ersten Einsatz, wenn Sie dazu aufgefordert werden. Weitere Informationen zu Erweiterungen finden Sie unter Verwenden von Erweiterungen mit der Azure CLI.
Führen Sie az version aus, um die installierte Version und die abhängigen Bibliotheken zu ermitteln. Führen Sie az upgrade aus, um das Upgrade auf die aktuelle Version durchzuführen.
- Abonnement festlegen (falls erforderlich):
Wenn Sie über mehrere Abonnements verfügen und ein Abonnement als Standard festlegen müssen, können Sie dies wie folgt tun:
az account set --subscription <subscription-id>
- Erstellen einer 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>}]}]"
Parameter | Beschreibung |
---|---|
Ressourcengruppe | Bestimmen Sie die Ressourcengruppe Ihres Network Fabric. |
Location | Definieren Sie den Speicherort, an dem die ACL erstellt wird. |
Ressourcenname | Geben Sie einen Namen für die ACL an. |
Anmerkung | Fügen Sie optional eine Beschreibung oder Anmerkung für die ACL hinzu. |
Konfigurationstyp | Geben Sie an, ob die Konfiguration inline oder mithilfe einer Datei erfolgt. |
Standardaktion | Definieren Sie die auszuführende Standardaktion, wenn keine Übereinstimmung gefunden wird. |
Konfiguration der Übereinstimmung | Definieren Sie die Bedingungen und Aktionen für den Datenverkehrsabgleich. |
Aktionen | Legen Sie die Aktion fest, die basierend auf der Vergleichsbedingung ausgeführt werden soll. |
Leitfaden zur Parameterverwendung
Die folgende Tabelle enthält Anleitungen zur Verwendung von Parametern beim Erstellen von ACLs:
Parameter | Beschreibung | Beispiel oder Bereich |
---|---|---|
defaultAction | Definiert die auszuführende Standardaktion. | "defaultAction": "Permit" |
resource-group | Ressourcengruppe des Netzwerk-Fabric | nfresourcegroup |
resource-name | Name der ACL | example-ingressACL |
vlanGroups | Liste der VLAN-Gruppen | |
vlans | Liste der VLANs, die abgeglichen werden müssen | |
match-configurations | Name der Abgleichskonfiguration | example_acl |
matchConditions | Bedingungen, die abgeglichen werden müssen | |
ttlValues | TTL [Time to Live, Gültigkeitsdauer] | 0 - 255 |
dscpMarking | DSCP-Kennzeichnungen, die abgeglichen werden müssen | 0-63 |
fragments | Angeben der IP-Fragmentpakete | Bereich: 1–8191 Beispiel: 1, 5, 1250–1300, 8000–8191. |
portCondition | Portbedingung, die abgeglichen werden muss | |
portType | Porttyp, der abgeglichen werden muss | Beispiel: SourcePort |
ports | Portnummer, die abgeglichen werden muss | Range: 0–65535 Beispiel: 1, 10, 500, 1025–1050, 64000–65535. |
protocolTypes | Protokolle, die abgeglichen werden müssen | [tcp, udp, range[1-2, 1, 2]] |
vlanMatchCondition | VLAN-Vergleichsbedingung, die abgeglichen werden muss | |
layer4Protocol | Layer-4-Protokoll | Muss entweder TCP oder UDP sein. |
ipCondition | IP-Bedingung, die abgeglichen werden muss | |
Aktionen | Aktion, die basierend auf der Vergleichsbedingung ausgeführt werden soll | Beispiel: permit (zulassen) |
configuration-type | Konfigurationstyp (Inline oder Datei) | Beispiel: inline |
Hinweis
- Inlineports und Inline-VLANs werden mithilfe von azcli statisch definiert.
- PortGroupNames und VlanGroupNames werden dynamisch definiert.
- Das Kombinieren von Inlineports mit portGroupNames ist für Inline-VLANs und VLANGroupNames nicht zulässig.
- IPGroupNames und IpPrefixValues können nicht kombiniert werden.
- Ausgangs-ACLs unterstützen bestimmte Optionen wie IP-Optionen, IP-Länge, Fragment, „ether-type“, DSCP-Kennzeichnung und TTL-Werte nicht.
- Eingangs-ACLs unterstützen die folgenden Optionen nicht: etherType.
- Ports-Eingaben können
port-number
oderrange-of-ports
sein. - Fragmenteingaben können
port-number
oderrange-of-ports
sein. - ACL mit dynamischer Übereinstimmungskonfiguration in ewigen Netzwerken wird nicht unterstützt.
Beispielnutzlast für die ACL-Erstellung
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}]}]"
Beispielausgabe
{
"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"
}
Hinweis
Achten Sie nach dem Erstellen der ACL auf die ACL-Referenz-ID, um weitere Informationen zu erhalten.
Nächste Schritte
Anwenden von Zugriffssteuerungslisten (Access Control Lists, ACLs) auf NNI in Azure Fabric