Bagikan melalui


Membuat ACL pada NNI di Azure Operator Nexus

Di Azure Operator Nexus, daftar kontrol akses (ACL) untuk Permit dan Deny tindakan pada tingkat interkoneksi jaringan-ke-jaringan (NNI) membantu melindungi akses Secure Shell (SSH) pada jaringan privat virtual (VPN) manajemen. Anda membuat ACL masuk dan keluar sebelum pembuatan sumber daya NNI lalu mereferensikan ACL tersebut dalam payload NNI. Anda perlu membuat ACL masuk dan keluar yang direferensikan sebelum Anda menyediakan fabric jaringan.

Ini adalah langkah-langkah tingkat tinggi untuk membuat ACL pada NNI:

  1. Buat ACL masuk dan keluar NNI.
  2. Perbarui referensi sumber daya Azure Resource Manager dalam NNI manajemen.
  3. Buat NNI dan provisikan kain jaringan.

Panduan penggunaan parameter

Parameter Deskripsi Contoh atau rentang
defaultAction Tindakan default yang akan diambil. Jika Anda tidak menentukannya, lalu lintas diizinkan. "defaultAction": "Permit"
resource-group Grup sumber daya dari fabric jaringan. nfresourcegroup
resource-name Nama ACL. example-ingressACL
vlanGroups Daftar grup jaringan area lokal virtual (VLAN).
vlans Daftar VLAN yang perlu dicocokkan.
match-configurations Nama konfigurasi kecocokan. example_acl. Spasi dan karakter ampersand (&) tidak didukung.
matchConditions Kondisi yang diperlukan untuk dicocokkan.
ttlValues Time to live (TTL). 0-255
dscpMarking Penandaan Titik Kode Layanan Diferensiasi (DSCP) yang perlu dicocokkan. 0-63
portCondition Kondisi port yang perlu dicocokkan.
portType Jenis port yang perlu dicocokkan. Contoh: SourcePort. Nilai yang diizinkan: DestinationPort, SourcePort.
protocolTypes Protokol yang perlu dicocokkan. [tcp, udp, range[1-2, 1, 2]]. Jika itu adalah nomor protokol, itu harus dalam rentang 1-255.
vlanMatchCondition Kondisi kecocokan VLAN yang perlu dicocokkan.
layer4Protocol Protokol Lapisan 4. Harus berupa TCP atau UDP.
ipCondition Kondisi IP yang perlu dicocokkan.
actions Tindakan yang akan diambil berdasarkan kondisi kecocokan. Contoh: permit.
configuration-type Jenis konfigurasi, yang dapat sebaris atau file. Saat ini, Azure Operator Nexus hanya mendukung sebaris. Contoh: inline.

Anda juga harus mengetahui pembatasan ini:

  • Port sebaris dan VLAN sebaris adalah cara statis untuk menentukan port atau VLAN dengan menggunakan azcli.
  • portGroupNames dan vlanGroupNames merupakan cara dinamis untuk menentukan port dan VLAN.
  • Port sebaris dan portGroupNames bersama-sama tidak diizinkan.
  • VLAN sebaris dan vlanGroupNames bersama-sama tidak diizinkan.
  • ipGroupNames dan ipPrefixValues bersama-sama tidak diizinkan.
  • ACL Keluar tidak mendukung opsi IP, panjang IP, fragmen, EtherType, penandaan DSCP, atau nilai TTL.
  • ACL Ingress tidak mendukung opsi EtherType.

Membuat ACL ingress

Untuk membuat ACL ingress, Anda bisa menggunakan perintah Azure CLI berikut. Perintah ini membuat ACL ingress dengan konfigurasi yang ditentukan dan memberikan hasil yang diharapkan sebagai output. Sesuaikan parameter sesuai kebutuhan untuk kasus penggunaan Anda.

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

Output yang diharapkan

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

Membuat ACL keluar

Untuk membuat ACL keluar, Anda bisa menggunakan perintah Azure CLI berikut. Perintah ini membuat ACL keluar dengan konfigurasi yang ditentukan dan memberikan hasil yang diharapkan sebagai output. Sesuaikan parameter sesuai kebutuhan untuk kasus penggunaan Anda.

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

Output yang diharapkan

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

Memperbarui referensi Resource Manager

Langkah ini memungkinkan pembuatan ACL (masuk dan keluar jika referensi disediakan) selama pembuatan sumber daya NNI. Setelah Membuat NNI dan sebelum memprovisikan fabric jaringan, Anda dapat melakukan re-put pada NNI.

  • ingressAclId: ID referensi untuk ACL ingress.
  • egressAclId: ID referensi untuk ACL keluar.

Untuk mendapatkan ID sumber daya Resource Manager, buka grup sumber daya langganan yang Anda gunakan.

Perintah berikut memperbarui referensi Resource Manager untuk sumber daya NNI dengan mengaitkannya dengan ACL masuk dan keluar yang disediakan. Sesuaikan parameter sesuai kebutuhan untuk kasus penggunaan Anda.

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"

Tampilkan detail ACL

Untuk menampilkan detail ACL tertentu, gunakan perintah berikut:

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

Daftar ACL

Untuk mencantumkan semua ACL dalam grup sumber daya tertentu, gunakan perintah berikut:

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

Membuat ACL di jaringan eksternal ISD

Gunakan informasi berikut untuk membuat ACL masuk dan keluar untuk jaringan eksternal domain isolasi (ISD). Kemudian, perbarui referensi sumber daya Resource Manager untuk jaringan eksternal.

Membuat ACL keluar untuk jaringan eksternal ISD

Untuk membuat ACL keluar untuk jaringan eksternal ISD yang ditentukan dengan konfigurasi yang disediakan, gunakan perintah berikut. Sesuaikan parameter sesuai kebutuhan untuk kasus penggunaan Anda.

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

Output yang diharapkan

Setelah eksekusi berhasil, perintah mengembalikan informasi tentang ACL yang dibuat dalam format berikut. Output ini mencakup detail tentang konfigurasi dan status.

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

Membuat ACL ingress untuk jaringan eksternal ISD

Untuk membuat ACL ingress untuk jaringan eksternal ISD yang ditentukan dengan konfigurasi yang disediakan, gunakan perintah berikut. Sesuaikan parameter sesuai kebutuhan untuk kasus penggunaan Anda.

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

Output yang diharapkan

Setelah eksekusi berhasil, perintah mengembalikan informasi tentang ACL yang dibuat dalam format berikut. Output ini mencakup detail tentang konfigurasi dan status.

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