Создание управления списком контроль доступа (ACL) для внешних сетей сети изоляции NNI и уровня 3
контроль доступа Списки (ACL) — это набор правил, которые регулируют поток входящих и исходящих пакетов в сети. Служба Azure Nexus Network Fabric предлагает механизм на основе API для настройки списков управления доступом для сетевых межсоединений и внешних сетей домена изоляции уровня 3. В этом руководстве описаны шаги по созданию списков управления доступом.
Создание списков контроль доступа (СПИСКИ ACL)
Чтобы создать ACL и определить его свойства, можно использовать az networkfabric acl create
команду. Ниже приведены действия, связанные с выполнением следующих действий.
Необходимые компоненты
Используйте среду Bash в Azure Cloud Shell. Дополнительные сведения см . в кратком руководстве по Bash в Azure Cloud Shell.
Если вы предпочитаете выполнять справочные команды CLI локально, установите Azure CLI. Если вы работаете в Windows или macOS, Azure CLI можно запустить в контейнере Docker. Дополнительные сведения см. в статье Как запустить Azure CLI в контейнере Docker.
Если вы используете локальную установку, выполните вход в Azure CLI с помощью команды az login. Чтобы выполнить аутентификацию, следуйте инструкциям в окне терминала. Сведения о других возможностях, доступных при входе, см. в статье Вход с помощью Azure CLI.
Установите расширение Azure CLI при первом использовании, когда появится соответствующий запрос. Дополнительные сведения о расширениях см. в статье Использование расширений с Azure CLI.
Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade.
- Установите подписку (при необходимости):
Если у вас несколько подписок и необходимо задать один по умолчанию, это можно сделать с помощью:
az account set --subscription <subscription-id>
- Создание 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. |
Номер | При необходимости добавьте описание или заметку для ACL. |
Тип конфигурации | Укажите, является ли конфигурация встроенной или с помощью файла. |
Действие по умолчанию | Определите действие по умолчанию, выполняемое, если совпадение не найдено. |
Сопоставления конфигураций | Определите условия и действия для сопоставления трафика. |
Действия | Укажите действие, выполняемое на основе условий соответствия. |
Руководство по использованию параметров
В таблице ниже приведены рекомендации по использованию параметров при создании списков управления доступом:
Параметр | Описание | Пример или диапазон |
---|---|---|
defaultAction | Определяет действие по умолчанию, выполняемое | "defaultAction": "Permit" |
resource-group | Группа ресурсов сетевой структуры | nfresourcegroup |
имя ресурса | Имя ACL | example-ingressACL |
vlanGroups | Список групп VLAN | |
vlans | Список виртуальных ЛС, которые необходимо сопоставить | |
конфигурации сопоставления | Имя конфигурации соответствия | example_acl |
matchConditions | Условия, необходимые для сопоставления | |
ttlValues | TTL [время жизни] | 0–255 |
dscpMarking | Маркировка DSCP, которая должна быть сопоставлена | 0-63 |
fragments | Указание пакетов фрагментов IP-адресов | Диапазон: 1-8191 Пример: [1, 5, 1250-1300, 8000-8191] |
portCondition | Условие порта, которое должно соответствовать | |
portType | Тип порта, который необходимо сопоставить | Пример: SourcePort |
порты | Номер порта, который необходимо сопоставить | Диапазон: 0-65535 Пример: [1, 10, 500, 1025-1050, 64000-65535] |
protocolTypes | Протоколы, которые необходимо сопоставить | [tcp, udp, range[1-2, 1, 2]] |
vlanMatchCondition | Условие соответствия виртуальной локальной сети, которое должно соответствовать | |
layer4Protocol | Протокол уровня 4 | должен быть TCP или UDP |
ipCondition | Условие IP, которое необходимо сопоставить | |
actions | Действие, которое необходимо предпринять на основе условия соответствия | Пример: разрешение |
тип конфигурации | Тип конфигурации (встроенный или файл) | Пример: встроенный |
Примечание.
- Встроенные порты и встроенные виртуальные локальные локальные сети статически определяются с помощью azcli.
- PortGroupNames и VlanGroupNames динамически определяются.
- Объединение встроенных портов с portGroupNames не допускается, аналогичным образом для встроенных виртуальных ЛС и VLANGroupNames.
- Не удается объединить IPGroupNames и IpPrefixValues.
- Исходящие списки управления доступом не поддерживают определенные параметры, такие как параметры IP, длина IP, фрагмент, эфир, маркировка DSCP и значения TTL.
- Списки управления доступом входящего трафика не поддерживают следующие параметры: etherType.
- Входные данные портов могут быть
port-number
илиrange-of-ports
. - Входные данные фрагментов могут быть
port-number
илиrange-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 для дальнейшего использования.
Next Steps
Применение списков контроль доступа (ACL) к NNI в Azure Fabric