cidrsubnets 함수
cidrsubnets 함수
특정 CIDR 접두어 안에서 연속된 IP 주소 범위 수열을 계산하는 함수예요.
출처: 문서
본문
cidrsubnets는 특정 CIDR 접두어 안에서 연속된 IP 주소 범위 수열을 계산해요.
cidrsubnets(prefix, newbits...)
prefix는 RFC 4632 3.1절에서 정의한 대로 CIDR 표기로 주어야 해요.
위에서 newbits로 표시된 나머지 인자들은 각각 반환되는 하나의 주소 범위에 대한 추가 네트워크 접두어 비트 수를 지정해요. 따라서 반환 값은 newbits 인자마다 요소 하나씩을 가진 리스트이며, 각 요소는 CIDR 표기의 주소 범위를 포함하는 문자열이에요.
IP 주소 개념에 대한 자세한 내용은 관련 함수 cidrsubnet에 대한 문서를 참고하세요. cidrsubnet은 접두어 안에서 단일 서브넷 주소를 계산하면서 서브넷 번호를 지정할 수 있게 해주는 반면, cidrsubnets는 서로 다른 크기의 여러 주소를 한 번에 계산하고 서브넷 번호를 자동으로 지정할 수 있어요.
네트워크 주소 계획의 일부로 주소 공간을 분할할 때 이 함수를 사용한다면, 실제 인프라에 네트워크 주소가 할당된 후에는 기존 인자를 변경하면 안 돼요. 그렇게 하면 이후의 주소 할당이 무효화되기 때문이에요. 다만 주소 공간이 충분하다면 기존 호출에 새 인자를 추가하는 것은 안전해요.
이 함수는 IPv6와 IPv4 접두어를 모두 허용하며, 결과는 항상 주어진 접두어와 같은 주소 체계를 사용해요.
예제
> cidrsubnets("10.1.0.0/16", 4, 4, 8, 4)
[
"10.1.0.0/20",
"10.1.16.0/20",
"10.1.32.0/24",
"10.1.48.0/20",
]
> cidrsubnets("fd00:fd12:3456:7890::/56", 16, 16, 16, 32)
[
"fd00:fd12:3456:7800::/72",
"fd00:fd12:3456:7800:100::/72",
"fd00:fd12:3456:7800:200::/72",
"fd00:fd12:3456:7800:300::/88",
]
for 표현식과 함께 중첩된 cidrsubnets 호출을 사용하면 네트워크 주소 블록 그룹을 간결하게 할당할 수 있어요.
> [for cidr_block in cidrsubnets("10.0.0.0/8", 8, 8, 8, 8) : cidrsubnets(cidr_block, 4, 4)]
[
[
"10.0.0.0/20",
"10.0.16.0/20",
],
[
"10.1.0.0/20",
"10.1.16.0/20",
],
[
"10.2.0.0/20",
"10.2.16.0/20",
],
[
"10.3.0.0/20",
"10.3.16.0/20",
],
]
더 알아보기 (Learn more)
cidrhost함수는 주어진 네트워크 주소 접두어 안의 단일 호스트에 대한 IP 주소를 계산해요.cidrnetmask함수는 CIDR 표기의 IPv4 네트워크 접두어를 넷마스크 표기로 변환해요.cidrsubnet함수는 단일 서브넷 주소를 계산하며 네트워크 번호를 지정할 수 있어요.