Bicep의 CIDR 함수

CIDR(Classless Interdomain Routing)은 IP 주소를 할당하고 IP(인터넷 프로토콜) 패킷을 라우팅하는 방법입니다. 이 문서에서는 CIDR 작업을 위한 Bicep 함수를 설명합니다.

parseCidr

parseCidr(network)

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

네임스페이스: sys.

매개 변수

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

반환 값

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

예제

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

output v4info object = 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 문자열을 구문 분석합니다.

output v6info object = 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 주소 범위를 반환합니다.

네임스페이스: sys.

매개 변수

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

반환 값

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

예제

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

output v4subnets array = [for i in range(0, 5): cidrSubnet('10.144.0.0/20', 24, i)]

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

[
  "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 서브넷 범위를 계산합니다.

output v6subnets array = [for i in range(0, 5): cidrSubnet('fdad:3236:5555::/48', 52, i)]

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

[
  "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 주소라고 합니다. 따라서 함수에 hostIndex 0이 전달되면 192.168.1.1이 반환됩니다.

Azure 내에는 각 서브넷에 예약된 추가 IP 주소가 있으며, 여기에는 처음 4개와 마지막 IP 주소가 포함되며 총 5개의 예약된 IP 주소가 포함됩니다. 예를 들어 IP 주소 범위 192.168.1.0/24의 경우 다음 주소가 예약됩니다.

  • 192.168.1.0: 네트워크 주소
  • 192.168.1.1: Azure에서 기본 게이트웨이용으로 예약됨
  • 192.168.1.2, 192.168.1.3: Azure DNS IP를 VNet 공간에 매핑하기 위해 Azure에서 예약됨
  • 192.168.1.255: 네트워크 브로드캐스트 주소

네임스페이스: sys.

매개 변수

매개 변수 필수 Type 설명
network string 변환할 IP 네트워크를 포함하는 문자열. 제공된 문자열은 올바른 네트워킹 형식이어야 합니다.
hostIndex int 인덱스는 반환할 호스트 IP 주소를 결정합니다. 값 0을 사용하는 경우 비 Azure 네트워크에 사용할 수 있는 첫 번째 IP 주소를 제공합니다. 그러나 3을 사용하는 경우 Azure 서브넷에 사용할 수 있는 첫 번째 IP 주소를 제공합니다.

반환 값

IP 주소의 문자열입니다.

예제

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

output v4hosts array = [for i in range(0, 5): cidrHost('10.144.3.0/24', i)]

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

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

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

output v6hosts array = [for i in range(0, 5): cidrHost('fdad:3236:5555:3000::/52', i)]

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

[
  "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"
]

다음 단계