共用方式為


建立 NNI 和第 3 層隔離網域外部網路的存取控制清單 (ACL) 管理

存取控制清單 (ACL) 是一組規則,用於規範網路內的入站和出站封包流。 Azure 的 Nexus Network Fabric 服務提供以 API 為基礎的機制,可設定網路對網路互連和第 3 層隔離網域外部網路的 ACL。 本指南概述建立 ACL 的步驟。

建立存取控制清單 (ACL)

若要建立 ACL 並定義其內容,您可以使用命令 az networkfabric acl create 。 以下是涉及的步驟:

先決條件

  1. 設定訂閱(如有必要):

如果您有多個訂用帳戶,而且需要將其中一個訂用帳戶設定為預設訂用帳戶,您可以使用下列專案執行此動作:

az account set --subscription <subscription-id>
  1. 建立 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>}]}]"
參數 Description
資源群組 指定網路網狀架構的資源群組。
地點 定義建立 ACL 的位置。
資源名稱 提供 ACL 的名稱。
Annotation 或者,新增 ACL 的說明或註解。
組態類型 指定組態是內嵌還是使用檔案。
默認動作 定義找不到相符項目時要採取的預設動作。
匹配設定 定義流量比對的條件和動作。
行動 依照匹配條件指定要採取的行動。

參數使用指引

下表提供建立ACL時使用引數的指引:

參數 Description 範例或範圍
defaultAction 定義要採取的預設動作 “defaultAction”: “允許”
資源群組 網路網狀架構的資源群組 nfresourcegroup
資源名稱 ACL 名稱 範例入口ACL
vlan組 VLAN組列表
VLAN 需要匹配的VLAN清單
匹配設定 比對組態的名稱 example_acl
matchConditions 需要匹配的條件
ttl值 TTL [生存時間] 0-255
dscp標記 需要比對的DSCP標記 0-63
碎片 指定 IP 片段封包 範圍:1-8191
範例:[1, 5, 1250-1300, 8000-8191]
portCondition 埠 需要比對的連接埠條件
埠類型 需要比對的埠類型 範例:SourcePort
ports 需要比對的連接埠號碼 範圍:0-65535
範例:[1, 10, 500, 1025-1050, 64000-65535]
protocol類型 需要匹配的協議 [tcp,udp,範圍[1-2,1,2]]
vlanMatchCondition 需要匹配的VLAN匹配條件
layer4協定 第 4 層協議 應該是 TCP 或 UDP
ip條件 需要比對的IP條件
行為 根據匹配條件應採取的行動 預設動作:允許
其他可能行動:PoliceRate、Drop、Count
PoliceRate 動作在本頁稍後會有詳細說明。
組態類型 配置類型(內嵌或檔案) 範例:內嵌

備註

  • 內嵌埠和內嵌 VLAN 是使用 azcli 靜態定義。
  • PortGroupNames和VlanGroupNames是動態定義的。
  • 不允許將內聯埠與 portGroupNames 合併,內聯 VLAN 和 VLANGroupNames 亦然。
  • IPGroupNames 和 IpPrefixValues 無法合併。
  • 出口 ACL 不支援某些選項,如 IP 選項、IP 長度、片段、以太類型、DSCP 標記和 TTL 值。
  • Ingress ACL 不支援以下選項:etherType。
  • 連接埠輸入可以是 port-numberrange-of-ports
  • 片段輸入可以是 port-numberrange-of-ports
  • 在永恆網路上不支援帶有動態匹配配置的 ACL。

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

範例輸出

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

備註

建立ACL後,請務必記下ACL參考ID以供進一步參考。

透過流量政策進行頻寬限制

從支援的 NF 版本開始,ACL 支援透過流量政策框架進行速率限制。 根據匹配的條件,此操作將 ACL 行為從簡單的允許/拒絕模式轉換為更細緻的流量控制機制。 這使得 IPv4 和 IPv6 流量的頻寬規範成為可能。

主要功能

  • 可選配置:預設不設速率限制;必須明確設定。
  • 範圍:適用於——
    • 網路對網路互連(NNI)
    • 外部網路選項A與選項B子介面
  • 支援的 ACL 類型:ControlPlaneTrafficPolicy、租戶與管理

參數

速率:持續流量吞吐量
單位:bps、kbps、mbps、gbps、pps
突發大小:超出定義速率
的臨時允許額度 單位:位元組、kbytes、mbytes、封包

API 範例:

"actions": [
{ 
"type": "PoliceRate", 
"policeRateConfiguration":
{ 
"bitRate":
{ 
 "rate": 1000, 
"unit": "Kbps" 
}, 
"burstSize":
{ 
"size": 10, 
 "unit": "KBytes" 
} } } ]

Configuration:

traffic-policies 
   cpu traffic-policy <NF-Name>-cptp-police-rate-acl vrf all 
   traffic-policy <NF-Name>-cptp-police-rate-acl 
      match <NF-Name>-cptp-police-rate-match ipv4 
         protocol neighbors bgp 
         ! 
         actions 
police rate 1000 kbps burst-size 10 kbytes 
      ! 
      match ipv4-all-default ipv4 
      ! 
      match ipv6-all-default ipv6

備註

當 NNI ACL 定義警察速率時,突發大小是必須的。

後續步驟

將存取控制清單 (ACL) 套用至 Azure Fabric 中的 NNI