다음을 통해 공유


ARM 템플릿의 CIDR 함수

이 문서에서는 Azure Resource Manager 템플릿(ARM 템플릿)의 CIDR 작업을 위한 함수에 대해 설명합니다.

ARM 템플릿과 동일한 기능을 제공하고 구문이 사용하기 더 쉽기 때문에 Bicep를 권장합니다. 자세한 내용은 cidr 함수를 참조하세요.

parseCidr

parseCidr(network)

CIDR 표기법으로 IP 주소 범위를 구문 분석하여 주소 범위의 다양한 속성을 가져옵니다.

Bicep에서 parseCidr 함수를 사용합니다.

매개 변수

매개 변수 필수 Type 설명
network string 변환할 IP 주소 범위를 포함하는 CIDR 표기법의 문자열입니다.

반환 값

주소 범위의 다양한 속성을 포함하는 개체입니다.

예제

다음 예제에서는 IPv4 CIDR 문자열을 구문 분석합니다.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [],
  "outputs": {
    "v4info": {
      "type": "object",
      "value": "[parseCidr('10.144.0.0/20')]"
    }
  }
}

앞의 예제에서는 다음 개체를 반환합니다.

{
  "network":"10.144.0.0",
  "netmask":"255.255.240.0",
  "broadcast":"10.144.15.255",
  "firstUsable":"10.144.0.1",
  "lastUsable":"10.144.15.254",
  "cidr":20
}

다음 예제에서는 IPv6 CIDR 문자열을 구문 분석합니다.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [],
  "outputs": {
    "v6info": {
      "type": "object",
      "value": "[parseCidr('fdad:3236:5555::/48')]"
    }
  }
}

앞의 예제에서는 다음 개체를 반환합니다.

{
  "network":"fdad:3236:5555::",
  "netmask":"ffff:ffff:ffff::",
  "firstUsable":"fdad:3236:5555::",
  "lastUsable":"fdad:3236:5555:ffff:ffff:ffff:ffff:ffff",
  "cidr":48
}

cidrSubnet

cidrSubnet(network, newCIDR, subnetIndex)

CIDR 표기법의 지정된 IP 주소 범위를 새 CIDR 값이 있는 서브넷으로 분할하고 지정된 인덱스를 사용하여 서브넷의 IP 주소 범위를 반환합니다.

Bicep에서 cidrSubnet 함수를 사용합니다.

매개 변수

매개 변수 필수 Type 설명
network string CIDR 표시법으로 변환할 IP 주소 범위를 포함하는 문자열입니다.
newCIDR int 서브넷에 사용할 CIDR을 나타내는 정수입니다. 이 값은 network 매개 변수의 CIDR 값보다 크거나 같아야 합니다.
subnetIndex int 반환할 원하는 서브넷 IP 주소 범위의 인덱스입니다.

반환 값

지정된 인덱스가 있는 서브넷의 IP 주소 범위 문자열입니다.

예제

다음 예제에서는 지정된 /20에서 처음 5개의 /24 서브넷 범위를 계산합니다.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [],
  "outputs": {
    "v4subnets": {
      "type": "array",
      "copy": {
        "count": "[length(range(0, 5))]",
        "input": "[cidrSubnet('10.144.0.0/20', 24, range(0, 5)[copyIndex()])]"
      }
    }
  }
}

앞의 예제에서는 다음 배열을 반환합니다.

[
  "10.144.0.0/24",
  "10.144.1.0/24",
  "10.144.2.0/24",
  "10.144.3.0/24",
  "10.144.4.0/24"
]

다음 예제에서는 지정된 /48에서 처음 5개의 /52 서브넷 범위를 계산합니다.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [],
  "outputs": {
    "v6subnets": {
      "type": "array",
      "copy": {
        "count": "[length(range(0, 5))]",
        "input": "[cidrSubnet('fdad:3236:5555::/48', 52, range(0, 5)[copyIndex()])]"
      }
    }
  }
}

앞의 예제에서는 다음 배열을 반환합니다.

[
  "fdad:3236:5555::/52"
  "fdad:3236:5555:1000::/52"
  "fdad:3236:5555:2000::/52"
  "fdad:3236:5555:3000::/52"
  "fdad:3236:5555:4000::/52"
]

cidrHost

cidrHost(network, hostIndex)

지정된 IP 주소 범위의 지정된 인덱스를 CIDR 표기법으로 사용하여 호스트의 사용 가능한 IP 주소를 계산합니다. 예를 들어 192.168.1.0/24의 경우 예약된 IP 주소가 있습니다. 192.168.1.0은 네트워크 식별자 주소로 사용되고 192.168.1.255는 브로드캐스트 주소로 작동합니다. 192.168.1.1에서 192.168.1.254에 이르는 IP 주소만 호스트에 할당할 수 있으며 이를 "사용 가능한" IP 주소라고 합니다. 따라서 함수가 전달되면 0, 192.168.1.1의 hostIndex가 반환됩니다.

Bicep에서 cidrHost 함수를 사용합니다.

매개 변수

매개 변수 필수 Type 설명
network string 변환할 IP 네트워크가 포함된 문자열입니다(올바른 네트워킹 형식이어야 함).
hostIndex int 반환할 호스트 IP 주소의 인덱스입니다.

반환 값

IP 주소의 문자열입니다.

예제

다음 예제에서는 지정된 /24에서 처음 5개의 사용 가능한 호스트 IP 주소를 계산합니다.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [],
  "outputs": {
    "v4hosts": {
      "type": "array",
      "copy": {
        "count": "[length(range(0, 5))]",
        "input": "[cidrHost('10.144.3.0/24', range(0, 5)[copyIndex()])]"
      }
    }
  }
}

앞의 예제에서는 다음 배열을 반환합니다.

[
  "10.144.3.1"
  "10.144.3.2"
  "10.144.3.3"
  "10.144.3.4"
  "10.144.3.5"
]

다음 예제에서는 지정된 /52에서 처음 5개의 사용 가능한 호스트 IP 주소를 계산합니다.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [],
  "outputs": {
    "v6hosts": {
      "type": "array",
      "copy": {
        "count": "[length(range(0, 5))]",
        "input": "[cidrHost('fdad:3236:5555:3000::/52', range(0, 5)[copyIndex()])]"
      }
    }
  }
}

앞의 예제에서는 다음 배열을 반환합니다.

[
  "fdad:3236:5555:3000::1"
  "fdad:3236:5555:3000::2"
  "fdad:3236:5555:3000::3"
  "fdad:3236:5555:3000::4"
  "fdad:3236:5555:3000::5"
]

다음 단계