Tworzenie list ACL w sieci NNI na platformie Azure Operator Nexus

Na platformie Azure Operator Nexus listy kontroli dostępu (ACL) dla Permit akcji i Deny na poziomie połączenia między sieciami (NNI) pomagają chronić dostęp protokołu Secure Shell (SSH) do zarządzania wirtualną siecią prywatną (VPN). Listy ACL ruchu przychodzącego i wychodzącego są tworzone przed utworzeniem zasobów NNI, a następnie odwołujesz się do tych list ACL w ładunku NNI. Należy utworzyć odwołania do list ACL ruchu przychodzącego i wychodzącego przed aprowizację sieci szkieletowej sieci szkieletowej.

Są to ogólne kroki tworzenia listy ACL w sieci NNI:

  1. Utwórz listy ACL ruchu przychodzącego i wychodzącego NNI.
  2. Zaktualizuj odwołanie do zasobów usługi Azure Resource Manager w sieci NNI zarządzania.
  3. Utwórz sieć NNI i zaaprowizuj sieć szkieletową sieci szkieletowej.

Wskazówki dotyczące użycia parametrów

Parametr Opis Przykład lub zakres
defaultAction Domyślnie należy wykonać akcję. Jeśli go nie zdefiniujesz, dozwolony jest ruch. "defaultAction": "Permit"
resource-group Grupa zasobów sieci szkieletowej sieci szkieletowej. nfresourcegroup
resource-name Nazwa listy ACL. example-ingressACL
vlanGroups Lista grup wirtualnej sieci lokalnej (VLAN).
vlans Lista sieci VLAN, które muszą być zgodne.
match-configurations Nazwa konfiguracji dopasowania. example_acl. Spacje i znak &ersand (&) nie są obsługiwane.
matchConditions Warunki wymagane do dopasowania.
ttlValues Czas wygaśnięcia (TTL). 0-255
dscpMarking Wyróżniające się oznaczenia punktu kodowego usług (DSCP), które muszą być dopasowane. 0-63
portCondition Warunek portu, który należy dopasować.
portType Typ portu, który musi być dopasowany. Przykład: SourcePort. Dozwolone wartości: DestinationPort, SourcePort.
protocolTypes Protokoły, które muszą być zgodne. [tcp, udp, range[1-2, 1, 2]]. Jeśli jest to numer protokołu, powinien on znajdować się w zakresie .1-255
vlanMatchCondition Warunek dopasowania sieci VLAN, który musi być zgodny.
layer4Protocol Protokół warstwy 4. Powinien mieć wartość TCP lub UDP.
ipCondition Warunek adresu IP, który musi być zgodny.
actions Akcja do wykonania na podstawie warunku dopasowania. Przykład: permit.
configuration-type Typ konfiguracji, który może być wbudowany lub plik. Obecnie operator platformy Azure Nexus obsługuje tylko wbudowane. Przykład: inline.

Należy również pamiętać o następujących ograniczeniach:

  • Wbudowane porty i wbudowane sieci VLAN to statyczny sposób definiowania portów lub sieci VLAN przy użyciu programu azcli.
  • portGroupNames i vlanGroupNames to dynamiczne sposoby definiowania portów i sieci VLAN.
  • Porty wbudowane i portGroupNames razem nie są dozwolone.
  • Wbudowane sieci VLAN i vlanGroupNames razem nie są dozwolone.
  • ipGroupNames i ipPrefixValues razem nie są dozwolone.
  • Listy ACL ruchu wychodzącego nie obsługują opcji adresów IP, długości adresu IP, fragmentu, właściwości EtherType, oznaczania DSCP ani wartości czasu wygaśnięcia.
  • Listy ACL ruchu przychodzącego nie obsługują opcji EtherType.

Tworzenie listy ACL ruchu przychodzącego

Aby utworzyć listę ACL ruchu przychodzącego, możesz użyć następującego polecenia interfejsu wiersza polecenia platformy Azure. To polecenie tworzy listę ACL ruchu przychodzącego z określonymi konfiguracjami i dostarcza oczekiwany wynik jako dane wyjściowe. Dostosuj parametry zgodnie z potrzebami dla przypadku użycia.

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'}]}]"

Oczekiwane dane wyjściowe

{
    "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"
    }
}

Tworzenie listy ACL ruchu wychodzącego

Aby utworzyć listę ACL ruchu wychodzącego, możesz użyć następującego polecenia interfejsu wiersza polecenia platformy Azure. To polecenie tworzy listę ACL ruchu wychodzącego z określonymi konfiguracjami i dostarcza oczekiwany wynik jako dane wyjściowe. Dostosuj parametry zgodnie z potrzebami dla przypadku użycia.

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']}]}]"

Oczekiwane dane wyjściowe

{
    "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"
    }
}

Aktualizowanie dokumentacji usługi Resource Manager

Ten krok umożliwia tworzenie list ACL (przychodzących i wychodzących, jeśli podano odwołanie) podczas tworzenia zasobu NNI. Po utworzeniu sieci NNI i przed aprowizację sieci szkieletowej można ponownie umieścić w sieci NNI.

  • ingressAclId: identyfikator odwołania dla listy ACL ruchu przychodzącego.
  • egressAclId: identyfikator odwołania dla listy ACL ruchu wychodzącego.

Aby uzyskać identyfikator zasobu usługi Resource Manager, przejdź do grupy zasobów używanej subskrypcji.

Następujące polecenie aktualizuje odwołanie usługi Resource Manager dla zasobu NNI przez skojarzenie go z podanymi listami ACL ruchu przychodzącego i wychodzącego. Dostosuj parametry zgodnie z potrzebami dla przypadku użycia.

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"

Pokaż szczegóły listy ACL

Aby wyświetlić szczegóły określonej listy ACL, użyj następującego polecenia:

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

Lista list ACL

Aby wyświetlić listę wszystkich list ACL w określonej grupie zasobów, użyj następującego polecenia:

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

Tworzenie list ACL w sieci zewnętrznej ISD

Skorzystaj z poniższych informacji, aby utworzyć listy ACL ruchu przychodzącego i wychodzącego dla sieci zewnętrznej domeny izolacji (ISD). Następnie zaktualizuj odwołanie do zasobów usługi Resource Manager dla sieci zewnętrznej.

Tworzenie listy ACL ruchu wychodzącego dla sieci zewnętrznej ISD

Aby utworzyć listę ACL ruchu wychodzącego dla określonej sieci zewnętrznej ISD z podaną konfiguracją, użyj następującego polecenia. Dostosuj parametry zgodnie z potrzebami dla przypadku użycia.

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}]}]"

Oczekiwane dane wyjściowe

Po pomyślnym wykonaniu polecenie zwraca informacje o utworzonej liście ACL w następującym formacie. Te dane wyjściowe zawierają szczegółowe informacje o konfiguracji i stanie.

{
    "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"
}

Tworzenie listy ACL ruchu przychodzącego dla sieci zewnętrznej ISD

Aby utworzyć listę ACL ruchu przychodzącego dla określonej sieci zewnętrznej ISD z podaną konfiguracją, użyj następującego polecenia. Dostosuj parametry zgodnie z potrzebami dla przypadku użycia.

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}]}]"

Oczekiwane dane wyjściowe

Po pomyślnym wykonaniu polecenie zwraca informacje o utworzonej liście ACL w następującym formacie. Te dane wyjściowe zawierają szczegółowe informacje o konfiguracji i stanie.

{
    "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"
}