Terraform IP Network Functions 정리
Terraform v1.4.x 버전을 기준으로 IP 및 네트워크와 관련된 기능을 정리한다.
cidrhost
- 주어진 IP 네트워크 주소 접두사 내에서 주어진 호스트 번호에 대한 전체 호스트 IP 주소를 계산한다.
cidrhost(${접두사}, ${호스트번호})형식으로 사용한다.
$ terraform console
> cidrhost("10.1.1.0/20", 10)
"10.1.0.10"
> cidrhost("10.1.1.0/20", 20)
"10.1.0.20"
> cidrhost("10.1.1.0/20", 300)
"10.1.1.44"
> cidrhost("fd00:fd12:3456:7890:00a2::/72", 34)
"fd00:fd12:3456:7890::22"
cidrnetmask
- CIDR 표기법으로 주어진 IPv4 주소 접두사를 서브넷 마스크 주소로 변환한다.
$ terraform console
> cidrnetmask("192.168.0.1/20")
"255.255.240.0"
cidrsubnet
- 주어진 IP 네트워크 주소 접두사 내에서 서브넷 주소를 계산한다.
cidrsubnet(${prefix}, ${newbits}, ${netnum})형식으로 사용하며 각 인자의 의미는 아래와 같다.prefix: RFC 4632에 정의된 CIDR 표기법을 따르는 문자열newbits:prefix에서 확장할 추가 비트 수. 예를 들어,prefix가/16으로 끝나고newbits가 4인 경우prefix가/20인 것과 동일하다.netnum: 접두사에 추가된 추가 비트를 채우는 데 사용되는newbits이진수 이하의 이진 정수로 나타낼 수 있는 정수다.
$ terraform console
> cidrsubnet("172.16.0.0/12", 4, 2)
172.18.0.0/16
> cidrsubnet("10.1.2.0/24", 4, 15)
10.1.2.240/28
> cidrsubnet("fd00:fd12:3456:7890::/56", 16, 162)
fd00:fd12:3456:7800:a200::/72
cidrsubnets
- 특정 CIDR 접두사 내에서 일련의 연속 IP 주소 범위를 계산한다.
cidrsubnets(${prefix}, ${newbits...})형식으로 사용한다.
$ terraform console
> cidrsubnets("10.10.0.0/16", 4, 4, 4, 4)
tolist([
"10.10.0.0/20",
"10.10.16.0/20",
"10.10.32.0/20",
"10.10.48.0/20",
])
참고한 자료
'[IT] Infrastructure > Terraform' 카테고리의 다른 글
| [Terraform] Blocks (0) | 2023.03.16 |
|---|---|
| [Terraform] Type Conversion Functions (0) | 2023.03.15 |
| [Terraform] Hash & Crypto Functions (0) | 2023.03.15 |
| [Terraform] Date & Time Functions (0) | 2023.03.15 |
| [Terraform] File System Functions (0) | 2023.03.15 |