NNI とレイヤー 3 分離ドメイン外部ネットワークのアクセス制御リスト (ACL) 管理の作成

アクセス制御リスト (ACL) は、ネットワーク内の受信および送信パケット フローを規制する一連の規則です。 Azure の Nexus Network Fabric サービスでは、ネットワーク間相互接続とレイヤー 3 分離ドメイン外部ネットワークの ACL を構成する API ベースのメカニズムが提供されます。 このガイドでは、ACL を作成する手順の概要を示します。

アクセス制御リスト (ACL) の作成

ACL を作成し、そのプロパティを定義するには、az networkfabric acl create コマンドを使用できます。 関連する手順を以下に示します。

前提条件

  • Azure Cloud Shell で Bash 環境を使用します。 詳細については、「Azure Cloud Shell の Bash のクイックスタート」を参照してください。

  • CLI リファレンス コマンドをローカルで実行する場合、Azure CLI をインストールします。 Windows または macOS で実行している場合は、Docker コンテナーで Azure CLI を実行することを検討してください。 詳細については、「Docker コンテナーで Azure CLI を実行する方法」を参照してください。

    • ローカル インストールを使用する場合は、az login コマンドを使用して Azure CLI にサインインします。 認証プロセスを完了するには、ターミナルに表示される手順に従います。 その他のサインイン オプションについては、Azure CLI でのサインインに関するページを参照してください。

    • 初回使用時にインストールを求められたら、Azure CLI 拡張機能をインストールします。 拡張機能の詳細については、Azure CLI で拡張機能を使用する方法に関するページを参照してください。

    • az version を実行し、インストールされているバージョンおよび依存ライブラリを検索します。 最新バージョンにアップグレードするには、az upgrade を実行します。

  1. サブスクリプションを設定する (必要な場合):

複数のサブスクリプションがあり、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>}]}]"
パラメーター 説明
リソース グループ ネットワーク ファブリックのリソース グループを指定します。
場所 ACL が作成される場所を定義します。
リソース名 ACL の名前を指定します。
Annotation 必要に応じて、ACL の説明または注釈を追加します。
[構成の種類] 構成をインラインにするか、ファイルを使用するかを指定します。
既定の動作 一致するものが見つからない場合に実行する既定のアクションを定義します。
一致構成 一致するトラフィックの条件とアクションを定義します。
アクション 一致条件に基づいて実行されるアクションを指定します。

パラメーターの使用に関するガイダンス

以下の表には、ACL を作成するときのパラメーターの使用方法に関するガイダンスが示されています。

パラメーター 説明 例または範囲
defaultAction 実行される既定のアクションを定義します "defaultAction": "Permit"
resource-group ネットワーク ファブリックのリソース グループ nfresourcegroup
resource-name ACL の名前 example-ingressACL
vlanGroups VLAN グループの一覧
vlans 一致する必要がある VLAN の一覧
match-configurations 一致構成の名前 example_acl
matchConditions 一致する必要がある条件
ttlValues TTL [Time To Live] 0 - 255
dscpMarking 一致する必要がある DSCP マーキング 0-63
fargments IP フラグメント パケットを指定する 範囲: 1 から 8191
例: [1, 5, 1250-1300, 8000-8191]
portCondition 一致する必要があるポート条件
portType 一致する必要があるポートの種類 例: SourcePort
ports 一致する必要があるポート番号 範囲: 0 から 65535
例: [1, 10, 500, 1025-1050, 64000-65535]
protocolTypes 一致する必要があるプロトコル [tcp, udp, range[1-2, 1, 2]]
vlanMatchCondition 一致する必要がある VLAN 一致条件
layer4Protocol レイヤー 4 プロトコル TCP または UDP のいずれかにする必要があります
ipCondition 一致する必要がある IP 条件
アクション 一致条件に基づいて実行されるアクション 例: permit
configuration-type 構成の種類 (インラインまたはファイル) 例: inline

Note

  • インライン ポートとインライン VLAN は、azcli を使用して静的に定義されます。
  • PortGroupNames と VlanGroupNames は動的に定義されます。
  • インライン ポートと portGroupNames の組み合わせは許可されません。インライン VLAN と VLANGroupName の場合も同様です。
  • IPGroupNames と IpPrefixValues を組み合わせることはできません。
  • エグレス ACL では、IP オプション、IP の長さ、フラグメント、Ether の種類、DSCP マーキング、TTL 値などの特定のオプションはサポートされていません。
  • イングレス ACL では、etherType オプションはサポートされていません。
  • ポート入力は、port-number または range-of-ports にすることができます。
  • フラグメント入力は、port-number または range-of-ports にすることができます。

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

Note

ACL を作成した後、さらに参照するために ACL 参照 ID を必ずメモしておいてください。

次のステップ

Azure Fabric での NNI へのアクセス制御リスト (ACL) の適用