ACL(액세스 제어 목록)은 네트워크 내에서 인바운드 및 아웃바운드 패킷 흐름을 규제하는 규칙 집합입니다. Azure의 Nexus Network Fabric 서비스는 네트워크 간 상호 연결 및 계층 3 격리 도메인 외부 네트워크에 대한 ACL을 구성하는 API 기반 메커니즘을 제공합니다. 이 가이드에서는 ACL을 만드는 단계를 간략하게 설명합니다.
ACL(액세스 제어 목록) 만들기
ACL을 만들고 해당 속성을 정의하려면 이 명령을 사용할 az networkfabric acl create 수 있습니다. 관련된 단계는 다음과 같습니다.
필수 조건
Bash 환경을 Azure Cloud Shell에서 사용합니다. 자세한 내용은 Azure Cloud Shell 시작을 참조하세요.
CLI 참조 명령을 로컬에서 실행하려면 Azure CLI를 설치하십시오. Windows 또는 macOS에서 실행 중인 경우 Docker 컨테이너에서 Azure CLI를 실행하는 것이 좋습니다. 자세한 내용은 Docker 컨테이너에서 Azure CLI를 실행하는 방법을 참조하세요.
로컬 설치를 사용하는 경우 az login 명령을 사용하여 Azure CLI에 로그인합니다. 인증 프로세스를 완료하려면 터미널에 표시되는 단계를 수행합니다. 다른 로그인 옵션은 Azure CLI를 사용하여 Azure에 인증을 참조하세요.
메시지가 표시되면 처음 사용할 때 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>}]}]"
| 매개 변수 | Description |
|---|---|
| 리소스 그룹 | 네트워크 패브릭의 리소스 그룹을 지정합니다. |
| 위치 | ACL이 만들어지는 위치를 정의합니다. |
| 리소스 이름 | ACL의 이름을 제공합니다. |
| Annotation | 필요에 따라 ACL에 대한 설명 또는 주석을 추가합니다. |
| 구성 유형 | 구성이 인라인인지 아니면 파일을 사용하는지를 지정합니다. |
| 기본 작업 | 일치하는 항목이 없는 경우 수행할 기본 작업을 정의합니다. |
| 매칭 설정 | 트래픽 일치에 대한 조건 및 작업을 정의합니다. |
| 활동 | 일치 조건에 따라 수행해야 할 작업을 지정합니다. |
매개 변수 사용 지침
아래 표에서는 ACL을 만들 때 매개 변수 사용에 대한 지침을 제공합니다.
| 매개 변수 | Description | 예제 또는 범위 |
|---|---|---|
| defaultAction | 수행할 기본 작업을 정의합니다. | "defaultAction": "허용" |
| resource-group | 네트워크 패브릭의 리소스 그룹 | nfresourcegroup |
| resource-name | ACL의 이름 | example-ingressACL |
| vlan그룹 | VLAN 그룹 목록 | |
| VLAN | 일치해야 하는 VLAN 목록 | |
| match-configurations | 일치 구성의 이름 | example_acl |
| 일치 조건 | 일치해야 하는 조건 | |
| ttl값 | TTL [Time To Live] | 0-255 |
| DSCP 마킹 | 일치해야 하는 DSCP 표시 | 0-63 |
| 조각 | IP 조각 패킷 지정 | 범위: 1-8191 예: [1, 5, 1250-1300, 8000-8191] |
| 포트컨디션 | 일치해야 하는 포트 조건 | |
| 포트 유형 | 일치해야 하는 포트 형식 | 예: SourcePort |
| ports | 일치해야 하는 포트 번호 | 범위: 0-65535 예: [1, 10, 500, 1025-1050, 64000-65535] |
| 프로토콜 유형 | 일치해야 하는 프로토콜 | [tcp, udp, range[1-2, 1, 2]] |
| vlanMatch조건 | 일치해야 하는 VLAN 일치 조건 | |
| layer4프로토콜 | 계층 4 프로토콜 | 는 TCP 또는 UDP여야 합니다. |
| ip컨디션 | 일치해야 하는 IP 조건 | |
| 행동 | 일치 조건에 따라 수행할 작업 | 기본 작업: 허용 기타 가능한 작업: PoliceRate, 삭제, 계산 PoliceRate 작업은 이 페이지의 뒷부분에 자세히 설명되어 있습니다. |
| 구성 유형 | 구성 유형(인라인 또는 파일) | 예: 인라인 |
비고
- 인라인 포트 및 인라인 VLAN은 azcli를 사용하여 정적으로 정의됩니다.
- PortGroupNames 및 VlanGroupNames는 동적으로 정의됩니다.
- 인라인 VLAN 및 VLANGroupNames와 마찬가지로 인라인 포트와 portGroupNames를 결합하는 것은 허용되지 않습니다.
- IPGroupNames 및 IpPrefixValues를 결합할 수 없습니다.
- 송신 ACL은 IP 옵션, IP 길이, 조각, 이더 형식, DSCP 표시 및 TTL 값과 같은 특정 옵션을 지원하지 않습니다.
- 수신 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에 경찰 속도가 정의된 경우 필수입니다.