Создание списков управления доступом в NNI в Операторе Azure Nexus
В Операторе Azure Nexus списки управления доступом (ACL) и Deny
действия на уровне сетевого взаимодействия (NNI) Permit
помогают защитить доступ Secure Shell (SSH) в виртуальной частной сети управления (VPN). Перед созданием ресурсов NNI вы создаете списки управления доступом и исходящего трафика, а затем ссылаетесь на эти списки управления доступом в полезных данных NNI. Перед подготовкой сетевой структуры необходимо создать ссылки на ingress и исходящие списки управления доступом.
Ниже приведены общие шаги по созданию ACL в NNI:
- Создайте входящий трафик NNI и исходящие списки управления доступом.
- Обновите ссылку на ресурсы Azure Resource Manager в NNI управления.
- Создайте NNI и подготовьте сетевую структуру.
Руководство по использованию параметров
Параметр | Описание | Пример или диапазон |
---|---|---|
defaultAction |
Действие по умолчанию, выполняемое. Если он не определен, трафик разрешен. | "defaultAction": "Permit" |
resource-group |
Группа ресурсов сетевой структуры. | nfresourcegroup |
resource-name |
Имя ACL. | example-ingressACL |
vlanGroups |
Список групп виртуальной локальной сети (VLAN). | |
vlans |
Список виртуальных ЛС, которые необходимо сопоставить. | |
match-configurations |
Имя конфигурации соответствия. | example_acl . Пробелы и амперсанд (&) не поддерживаются. |
matchConditions |
Условия, необходимые для сопоставления. | |
ttlValues |
Время жизни (TTL). | 0 -255 |
dscpMarking |
Маркированные маркировки точки кода служб (DSCP), которые необходимо сопоставить. | 0 -63 |
portCondition |
Условие порта, которое необходимо сопоставить. | |
portType |
Тип порта, который необходимо сопоставить. | Пример: SourcePort . Допустимые значения: DestinationPort , SourcePort . |
protocolTypes |
Протоколы, которые необходимо сопоставить. | [tcp, udp, range[1-2, 1, 2]] . Если это номер протокола, он должен находиться в диапазоне 1 -255 . |
vlanMatchCondition |
Условие соответствия виртуальной локальной сети, которое необходимо сопоставить. | |
layer4Protocol |
Протокол уровня 4. | Должен быть TCP или UDP . |
ipCondition |
Условие IP, которое необходимо сопоставить. | |
actions |
Действие, выполняемое на основе условия соответствия. | Пример: permit . |
configuration-type |
Тип конфигурации, который может быть встроенным или файлом. В настоящее время Оператор Azure Nexus поддерживает только встроенные функции. | Пример: inline . |
Кроме того, следует учитывать следующие ограничения:
- Встроенные порты и встроенные виртуальные ЛС — это статический способ определения портов или виртуальных ЛС с помощью
azcli
. portGroupNames
иvlanGroupNames
являются динамическими способами определения портов и виртуальных ЛС.- Встроенные порты и
portGroupNames
вместе не допускаются. - Встроенные виртуальные локальные сети и
vlanGroupNames
вместе не допускаются. ipGroupNames
иipPrefixValues
вместе не допускаются.- Исходящие списки управления доступом не поддерживают параметры IP, длину IP, фрагмент, эфир, маркировку DSCP или значения TTL.
- Списки управления доступом входящего трафика не поддерживают параметры EtherType.
Создание ACL для входящего трафика
Чтобы создать ACL для входящего трафика, можно использовать следующую команду Azure CLI. Эта команда создает ACL входящего трафика с указанными конфигурациями и предоставляет ожидаемый результат в виде выходных данных. Настройте параметры по мере необходимости для вашего варианта использования.
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'}]}]"
Ожидаемые выходные данные
{
"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"
}
}
Создание ACL исходящего трафика
Чтобы создать ACL исходящего трафика, можно использовать следующую команду Azure CLI. Эта команда создает agress ACL с указанными конфигурациями и предоставляет ожидаемый результат в виде выходных данных. Настройте параметры по мере необходимости для вашего варианта использования.
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']}]}]"
Ожидаемые выходные данные
{
"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"
}
}
Обновление ссылки на Resource Manager
Этот шаг позволяет создавать списки управления доступом (входящий трафик и исходящий трафик, если указана ссылка) во время создания ресурса NNI. После создания NNI и перед подготовкой сетевой структуры можно выполнить повторное размещение в NNI.
ingressAclId
: идентификатор ссылки для списка ACL для входящего трафика.egressAclId
: идентификатор ссылки для ACL исходящего трафика.
Чтобы получить идентификатор ресурса Resource Manager, перейдите в группу ресурсов подписки, которую вы используете.
Следующая команда обновляет ссылку Resource Manager для ресурса NNI, связав ее с предоставленными входящего трафика и исходящими списками управления доступом. Настройте параметры по мере необходимости для вашего варианта использования.
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"
Отображение сведений об ACL
Чтобы отобразить сведения о указанном ACL, используйте следующую команду:
az networkfabric acl show --resource-group "example-rg" --resource-name "example-acl"
Вывод списков ACL
Чтобы перечислить все списки управления доступом в указанной группе ресурсов, используйте следующую команду:
az networkfabric acl list --resource-group "ResourceGroupName"
Создание списков управления доступом в внешней сети ISD
Используйте следующие сведения для создания входящих и исходящих списков управления доступом для внешней сети (ISD). Затем обновите ссылку на ресурсы Resource Manager для внешней сети.
Создание ACL исходящего трафика для внешней сети ISD
Чтобы создать ACL исходящего трафика для указанной внешней сети ISD с предоставленной конфигурацией, используйте следующую команду. Настройте параметры по мере необходимости для вашего варианта использования.
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}]}]"
Ожидаемые выходные данные
После успешного выполнения команда возвращает сведения о созданном ACL в следующем формате. Эти выходные данные содержат сведения о конфигурации и состоянии.
{
"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"
}
Создание ACL входящего трафика для внешней сети ISD
Чтобы создать ACL для указанной внешней сети ISD с предоставленной конфигурацией, используйте следующую команду. Настройте параметры по мере необходимости для вашего варианта использования.
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}]}]"
Ожидаемые выходные данные
После успешного выполнения команда возвращает сведения о созданном ACL в следующем формате. Эти выходные данные содержат сведения о конфигурации и состоянии.
{
"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"
}