> For the complete documentation index, see [llms.txt](https://ia-cloud.gitbook.io/cloudia-manual/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ia-cloud.gitbook.io/cloudia-manual/administrator/network/external-ip-pool.md).

# 외부 IP 풀

`외부 IP 풀`은 프로젝트에서 사용할 외부 IP 주소를 관리자 영역에서 미리 준비해 두는 공용 주소 풀입니다.\
관리자는 네트워크 대역, 실제 할당 범위, 기본 게이트웨이를 정의해 외부 IP를 관리하고, 프로젝트 리소스는 이 풀에서 주소를 할당받아 사용합니다.

### 외부 IP 풀이 사용되는 방식

외부 IP 풀은 프로젝트 네트워크 리소스가 외부 IP를 사용할 때 참조하는 풀입니다.

* **VPC**: VPC 생성 시 VPC 용도의 외부 IP가 자동 할당됩니다.
* **플로팅 IP**: 외부 접근 지점으로 사용할 외부 IP를 이 풀에서 할당받습니다.
* **로드 밸런서**: 외부 타입 로드 밸런서 생성 시 외부 IP를 이 풀에서 할당받습니다.
* **포트 포워딩**: 외부 요청을 받을 외부 IP를 이 풀에서 할당받습니다.

외부 IP가 실제로 할당되면 프로젝트의 `외부 IP` 메뉴에서 확인할 수 있으며, 사용 현황은 `VPC`, `플로팅 IP`, `로드 밸런서`, `포트 포워딩` 중 하나로 표시됩니다.

## 화면 개요

* `목록 화면`: 외부 IP 풀의 전체 현황을 조회하고 생성, 편집, 삭제 작업을 시작합니다.
* `상세 화면`: 선택한 외부 IP 풀의 기본 정보와 실제로 배정된 외부 IP 목록을 확인합니다.
* `생성/편집 화면`: IP / CIDR, 할당 범위, 기본 게이트웨이, 설명을 입력하거나 수정합니다.

## 외부 IP 풀 목록

### 주요 작업

* `생성`: 새 외부 IP 풀을 생성합니다.
* `편집`: 선택한 1개 풀의 설정을 수정합니다.
* `삭제`: 선택한 1개 풀을 삭제합니다. 사용 중인 외부 IP가 있으면 삭제할 수 없습니다.

### 테이블 컬럼

| 컬럼            | 설명                                                           |
| ------------- | ------------------------------------------------------------ |
| **IP 주소 범위**  | 실제로 외부 IP 배정에 사용하는 시작 IP와 종료 IP를 `시작 IP ~ 종료 IP` 형식으로 표시합니다. |
| **ID**        | 외부 IP 풀의 고유 ID입니다.                                           |
| **IP / CIDR** | 풀이 속한 전체 네트워크 대역입니다. 예: `192.168.179.0/24`                   |
| **기본 게이트웨이**  | 해당 외부 IP 대역이 사용하는 게이트웨이 IP입니다.                               |
| **주소 사용 현황**  | 현재 사용 중인 외부 IP 개수와 전체 풀 크기를 `사용 / 전체` 형식으로 표시합니다.            |
| **설명**        | 외부 IP 풀 설명입니다.                                               |
| **생성 일시**     | 외부 IP 풀이 생성된 시각입니다.                                          |

## 외부 IP 풀 상세

### 상단 요약

* **IP 주소 범위**: 시작 IP와 종료 IP입니다.
* **ID**: 외부 IP 풀 ID입니다.
* **IP / CIDR**: 외부 IP 풀이 속한 전체 IP / CIDR입니다.
* **기본 게이트웨이**: 기본 게이트웨이 IP입니다.
* **주소 사용 현황**: 사용 중인 IP 수와 전체 IP 수입니다.
* **설명**: 외부 IP 풀 설명입니다.
* **생성 일시**: 생성 시각입니다.

### 하단 목록: 외부 IP

상세 화면 하단에서는 해당 풀에서 할당된 외부 IP를 확인할 수 있습니다.

| 컬럼           | 설명                                           |
| ------------ | -------------------------------------------- |
| **외부 IP 주소** | 실제 외부 IP 주소입니다.                              |
| **ID**       | 외부 IP 고유 ID입니다.                              |
| **프로젝트**     | 이 외부 IP를 소유한 프로젝트입니다.                        |
| **VPC**      | 연결된 VPC입니다.                                  |
| **사용 현황**    | `VPC`, `플로팅 IP`, `로드 밸런서`, `포트 포워딩` 중 하나입니다. |
| **연결된 리소스**  | 현재 외부 IP를 실제로 사용 중인 리소스 이름과 ID입니다.           |
| **생성 일시**    | 외부 IP가 할당된 시각입니다.                            |

## 외부 IP 자동 할당 순서

프로젝트 화면에서 외부 IP를 `자동 할당`으로 선택하면, Cloud:iA는 외부 IP 풀 전체를 아래 순서로 탐색해 첫 번째 사용 가능한 IP를 할당합니다.

1. **외부 IP 풀 정렬**: 풀 생성 순서나 풀 ID가 아니라 `시작 IP(startIp)`가 작은 풀부터 검사합니다.
2. **풀 내부 탐색**: 선택된 풀 안에서는 `시작 IP -> 종료 IP` 방향으로 오름차순 탐색합니다.
3. **사용 중 IP 제외**: 이미 다른 외부 IP, 플로팅 IP, 로드 밸런서, 포트 포워딩 등에 사용 중인 주소는 건너뜁니다.
4. **첫 번째 빈 IP 할당**: 조건을 만족하는 가장 앞선 빈 IP가 자동 할당됩니다.

### 예시

* 풀 A: `192.168.150.200 ~ 192.168.150.210`
* 풀 B: `192.168.150.50 ~ 192.168.150.60`

위 두 풀이 있을 때 생성 순서나 풀 ID와 관계없이, 자동 할당은 `192.168.150.50`부터 우선 시도합니다.

### 참고 사항

* 마지막에 할당된 IP 다음 주소를 쓰는 방식이 아니라, 전체 외부 IP 풀 범위에서 가장 앞선 빈 주소를 다시 찾는 방식입니다.
* 서로 떨어진 여러 외부 IP 풀이 있으면 각 풀 범위를 독립적으로 순회하며, 비어 있는 구간만 대상으로 할당합니다.

## 외부 IP 풀 생성

### 입력 항목

* **IP / CIDR**: 외부 IP 풀이 속할 전체 네트워크 대역을 입력합니다. 예: `192.168.179.0/24`
* **시작 IP**: 실제 외부 IP 자동/수동 배정에 사용할 시작 주소를 입력합니다.
* **종료 IP**: 실제 외부 IP 자동/수동 배정에 사용할 마지막 주소를 입력합니다.
* **기본 게이트웨이**: 외부 네트워크와 통신할 때 사용할 기본 게이트웨이 IP를 입력합니다.
* **설명**: 회선 용도, 연결 장비, 운영 메모 등 외부 IP 풀의 관리 정보를 적습니다.

### 입력 필드 유효성

| 필드            | 허용 값                        | 검증 규칙                                                          | 비고                                           |
| ------------- | --------------------------- | -------------------------------------------------------------- | -------------------------------------------- |
| **IP / CIDR** | IPv4 CIDR                   | 필수입니다. 유효한 IPv4 CIDR 형식이어야 합니다.                                | 예: `192.168.179.0/24`                        |
| **시작 IP**     | 선택한 IP / CIDR 범위 내부 IPv4 주소 | 필수입니다. `IP / CIDR` 검증이 통과한 뒤에만 입력할 수 있으며, CIDR 범위를 벗어날 수 없습니다. | 실제 할당 시작 주소입니다.                              |
| **종료 IP**     | 선택한 IP / CIDR 범위 내부 IPv4 주소 | 필수입니다. CIDR 범위 안에 있어야 하며 시작 IP보다 앞설 수 없습니다.                    | 예: 시작 `192.168.179.50`, 종료 `192.168.179.200` |
| **기본 게이트웨이**  | 선택한 IP / CIDR 범위 내부 IPv4 주소 | 필수입니다. CIDR 범위 안에 있어야 하며 시작 IP\~종료 IP 할당 범위와 겹치면 안 됩니다.        | 예: `192.168.179.1`                           |
| **설명**        | 최대 200자 문자열                 | 선택 입력입니다. 200자를 초과할 수 없습니다.                                    | 운영 목적, 회선 정보 등을 기록할 때 사용합니다.                 |

### 생성 절차

1. `IP / CIDR`을 먼저 입력합니다.
2. CIDR 검증이 통과하면 `시작 IP`, `종료 IP`, `기본 게이트웨이` 입력 필드가 활성화됩니다.
3. 실제 배정에 사용할 시작/종료 IP 범위를 입력합니다.
4. 배정 범위 밖의 게이트웨이 IP를 입력합니다.
5. 필요 시 설명을 입력한 뒤 `생성`을 실행합니다.

> ⚠️ **주의:** 게이트웨이를 잘못 입력하면 프로젝트 외부 연결에 직접 영향을 줄 수 있으므로, 실제 상위 네트워크 설정과 일치하는 값을 입력해야 합니다.

## 외부 IP 풀 편집

편집 화면에서는 다음 항목만 변경할 수 있습니다.

* **IP 주소 범위**: 시작 IP와 종료 IP를 조정해 실제 배정 가능 범위를 변경합니다.
* **설명**: 외부 IP 풀 용도나 운영 메모를 갱신합니다.

다음 항목은 편집할 수 없습니다.

* **IP / CIDR**: 외부 IP 풀이 속한 네트워크 대역은 생성 후 고정됩니다.
* **기본 게이트웨이**: 상위 네트워크 설정과 직접 연결되므로 생성 후 수정할 수 없습니다.

### 편집 입력 필드 유효성

| 필드            | 허용 값                       | 검증 규칙                                                                | 비고                                   |
| ------------- | -------------------------- | -------------------------------------------------------------------- | ------------------------------------ |
| **시작 IP**     | 현재 외부 IP 풀 CIDR 내부 IPv4 주소 | 범위 편집 시 필수입니다. 종료 IP보다 앞서거나 같아야 하며, 사용 중인 외부 IP를 제외하는 범위로 줄일 수 없습니다. | 설명만 수정할 때는 변경하지 않습니다.                |
| **종료 IP**     | 현재 외부 IP 풀 CIDR 내부 IPv4 주소 | 범위 편집 시 필수입니다. 시작 IP보다 앞설 수 없으며, 다른 외부 IP 풀 범위와 겹치면 저장할 수 없습니다.      | 범위 축소 시 기존 할당 주소 포함 여부를 먼저 확인해야 합니다. |
| **설명**        | 최대 200자 문자열                | 선택 입력입니다. 설명만 변경하는 경우 주소 범위 검증 없이 저장할 수 있습니다.                        | 운영 메모 변경에 사용합니다.                     |
| **IP / CIDR** | 기존 값 고정                    | 편집 화면에서 수정할 수 없습니다.                                                  | 생성 시 결정됩니다.                          |
| **기본 게이트웨이**  | 기존 값 고정                    | 편집 화면에서 수정할 수 없습니다.                                                  | 생성 시 결정됩니다.                          |

### 편집 시 주의 사항

설명만 수정하는 경우에는 주소 범위 검증 없이 저장할 수 있습니다. 다만 `시작 IP`, `종료 IP`를 변경하는 범위 편집은 아래 조건에 해당하면 저장할 수 없습니다.

### 편집이 불가한 경우

1. **종료 IP가 시작 IP보다 앞서는 경우** 예: 시작 IP를 `10.0.0.20`, 종료 IP를 `10.0.0.10`으로 입력 결과: 잘못된 범위로 판단되어 저장할 수 없습니다.
2. **새 범위 밖으로 이미 할당된 외부 IP가 밀려나는 경우** 예: 현재 범위가 `10.0.0.10 ~ 10.0.0.20`이고 이미 `10.0.0.15`가 프로젝트에 할당된 상태에서, 새 범위를 `10.0.0.10 ~ 10.0.0.14`로 축소 결과: 사용 중 외부 IP `10.0.0.15`가 새 범위에 포함되지 않으므로 저장할 수 없습니다.
3. **다른 외부 IP 풀 범위와 겹치는 경우** 예: 다른 외부 IP 풀이 `10.0.1.10 ~ 10.0.1.20`을 사용 중인데, 현재 풀 범위를 `10.0.1.15 ~ 10.0.1.25`로 수정 결과: 두 풀의 주소 범위가 중첩되므로 저장할 수 없습니다.

### 편집 가능한 예시

* 설명만 변경하는 경우
* 현재 범위 `10.0.0.10 ~ 10.0.0.20`에서 사용 중 외부 IP가 `10.0.0.15` 하나뿐이고, 새 범위를 `10.0.0.10 ~ 10.0.0.18`로 줄이는 경우
* 현재 범위를 다른 외부 IP 풀과 겹치지 않는 새 범위 `10.0.0.30 ~ 10.0.0.40`로 이동하는 경우

### 편집 전 점검 순서

1. 상세 화면 하단 외부 IP 목록에서 실제 사용 중 주소를 확인합니다.
2. 새 범위가 모든 사용 중 주소를 포함하는지 확인합니다.
3. 다른 외부 IP 풀과 주소 범위가 겹치지 않는지 확인합니다.
4. 조건을 만족하면 범위 편집을 수행합니다.

## 외부 IP 풀 삭제

* 삭제는 한 번에 1개만 수행합니다.
* 선택한 풀에 사용 중인 외부 IP가 하나라도 있으면 삭제할 수 없습니다.
* 삭제 전에는 상세 화면 하단의 외부 IP 목록에서 사용 현황을 먼저 확인해야 합니다.

### 삭제 전 점검 순서

1. 상세 화면에서 하단 외부 IP 목록을 확인합니다.
2. 프로젝트 측 플로팅 IP, 포트 포워딩, 로드 밸런서 등에서 외부 IP가 할당되어 있는지 확인합니다.
3. 조건이 충족되면 삭제를 수행합니다.
