NNI 및 계층 3 격리 도메인 외부 네트워크에 대한 ACL(액세스 제어 목록) 관리 만들기
ACL(액세스 제어 목록)은 네트워크 내 인바운드 및 아웃바운드 패킷 흐름을 규제하는 규칙 집합입니다. Azure의 Nexus 네트워크 패브릭 서비스는 네트워크 간 상호 연결 및 계층 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를 실행합니다.
- 구독 설정(필요한 경우):
여러 개의 구독이 있고 하나를 기본값으로 설정해야 하는 경우 다음을 수행할 수 있습니다.
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에 대한 설명이나 주석을 추가합니다. |
구성 형식 | 인라인 구성인지 아니면 파일을 사용한 구성인지 지정합니다. |
기본 작업 | 일치하는 항목이 없을 경우 수행할 기본 작업을 정의합니다. |
구성 일치 | 트래픽 일치에 대한 조건과 작업을 정의합니다. |
actions | 일치 조건에 따라 수행할 작업을 지정합니다. |
매개 변수 사용 지침
아래 표에서는 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 |
조각 | IP 조각 패킷 지정 | 범위: 1-8191 예: [1, 5, 1250-1300, 8000-8191] |
portCondition | 일치해야 하는 포트 조건 | |
portType | 일치해야 하는 포트 형식 | 예: SourcePort |
고서 | 일치해야 하는 포트 번호 | 범위: 0-65535 예: [1, 10, 500, 1025-1050, 64000-65535] |
protocolTypes | 일치해야 하는 프로토콜 | [tcp, udp, 범위[1-2, 1, 2]] |
vlanMatchCondition | 일치해야 하는 VLAN 일치 조건 | |
layer4Protocol | 계층 4 프로토콜 | TCP 또는 UDP 중 하나여야 합니다. |
ipCondition | 일치해야 하는 IP 조건 | |
actions | 일치 조건에 따라 수행할 작업 | 예: permit |
configuration-type | 구성 형식(인라인 또는 파일) | 예: inline |
참고 항목
- 인라인 포트와 인라인 VLAN은 azcli를 사용하여 정적으로 정의됩니다.
- PortGroupNames 및 VlanGroupNames는 동적으로 정의됩니다.
- 인라인 VLAN 및 VLANGroupNames와 마찬가지로 인라인 포트를 portGroupNames와 결합하는 것은 허용되지 않습니다.
- IPGroupNames와 IpPrefixValues는 결합할 수 없습니다.
- 송신 ACL은 IP 옵션, IP 길이, 조각, 이더넷 형식, DSCP 표시 및 TTL 값과 같은 특정 옵션을 지원하지 않습니다.
- 수신 ACL은 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 참조 ID를 기록해 두세요.