03DHCP Relay와 IP Broadcast HelperDHCP Relay와 IP Broadcast Helper
라우팅된 네트워크에는 한 가지 근본적인 제약이 있습니다 — 브로드캐스트는 라우터를 넘지 못한 다는 점입니다. DHCP 클라이언트는 처음에 IP 주소가 없으니, 자기 LAN 안에 브로드캐스트를 뿌려 "누가 나에게 주소를 줄 수 있나요?"라고 묻습니다. 그런데 DHCP 서버가 다른 서브넷에 있다면 그 브로드캐스트는 라우터에서 막혀 서버에 닿지 못합니다. 이 문제를 푸는 것이 바로 중계(Relay) 기능입니다.
이 장은 그 중계를 담당하는 세 가지 기능을 빠짐없이 풀어 둡니다. DHCP Relay(IPv4 BOOTP/DHCP Relay), IPv6 DHCP Relay, 그리고 더 일반적인 UDP 브로드캐스트를 다루는 IP Broadcast Helper 입니다. Gaia Portal과 Gaia Clish 양쪽의 설정 방법, 파라미터, 그리고 중계 트래픽을 통과시키기 위한 관리 서버·SmartConsole의 보안 정책까지 모두 다룹니다.
DHCP Relay (IPv4 BOOTP/DHCP Relay)
BOOTP/DHCP Relay 는 BOOTP(Bootstrap Protocol)와 DHCP(Dynamic Host Configuration Protocol) 동작을 라우팅된 네트워크의 여러 홉(hop)에 걸쳐 확장 하는 기능입니다. 표준 BOOTP에서는 한 LAN의 모든 인터페이스가 그 LAN 안의 단일 구성 서버 에서만 설정을 받습니다. BOOTP Relay는 구성 요청을 LAN 밖의 구성 서버로 전달(forward)해, 그 서버에서 응답을 받게 합니다.
이 방식이 표준 BOOTP/DHCP보다 나은 점은 세 가지입니다.
- Redundancy(이중화) — Check Point 시스템의 한 인터페이스가 나열된 모든 서버에 동시에 클라이언트 구성 요청을 중계하도록 설정합니다. 서버 한 대가 죽어도 나머지가 응답할 수 있습니다.
- Load Balancing(부하 분산) — Check Point 시스템의 여러 인터페이스가 서로 다른 서버로 클라이언트 요청을 중계하도록 설정해, 부하를 나눕니다.
- Management(중앙 관리) — 여러 LAN에 걸친 대규모 엔터프라이즈 환경에서 클라이언트 구성을 한곳에서 중앙 관리 합니다.
정리하면, DHCP 서버를 서브넷마다 둘 필요 없이 중앙 서버 몇 대로 전체를 감당 할 수 있다는 것이 핵심입니다.
Gaia의 BOOTP Relay 구현은 RFC 951, RFC 1542, RFC 2131 을 준수 합니다. 또한 Bootp htype=1(802.3, FDDI)을 지정하는 클라이언트 에 대해 canonical MAC 바이트 순서를 쓰는 Ethernet과 IEEE 802 LAN을 지원합니다.
동작 방식
BOOTP Relay용으로 설정된 인터페이스가 부트 요청(boot request)을 받으면, 자기 서버 목록에 있는 모든 서버로 그 요청을 전달 합니다. 다만 곧바로 전달하지는 않습니다.
먼저 로컬 서버가 응답할 수 있도록 지정된 시간(wait time)만큼 기다린 뒤에 전달합니다. 그리고 요청을 전달할 때 출발지 주소를 "도장 찍듯이(stamp)" 표시 하는데, 그 규칙은 이렇습니다.
- Primary IP가 지정돼 있으면 — 그 주소로 요청에 도장을 찍습니다.
- 지정돼 있지 않으면 — 해당 인터페이스에 지정된 IP 주소 중 가장 낮은 숫자의 IP 주소 로 도장을 찍습니다.
Security Gateway에서 IPv4 DHCP Relay 설정하기
Security Gateway에서 DHCP Relay는 Gaia Portal 또는 Gaia Clish 어느 쪽으로든 설정할 수 있습니다. 인터페이스에 DHCP Relay를 켜면, 그 인터페이스가 BOOTP/DHCP 요청을 전달할 여러 대의 DHCP 서버 를 지정할 수 있습니다.
Gaia Portal에서 IPv4 DHCP Relay 켜기
인터페이스에 IPv4 BOOTP/DHCP Relay를 켜는 절차입니다.
- 웹 브라우저로 Gaia Portal에 접속합니다.
https://<IP address of Gaia Management Interface>
Gaia Portal의 기본 포트(443)를 바꿨다면 포트도 함께 입력합니다(https://<IP address>:<Port>).
2. 왼쪽 탐색 트리에서 Advanced Routing > DHCP Relay 를 클릭합니다.
3. Add 를 클릭합니다.
4. Enable 을 선택합니다.
5. Interface 필드에서 BOOTP/DHCP Relay를 켤 인터페이스를 고릅니다.
6. (선택) 다음 파라미터 중 하나 이상의 값을 입력합니다 — Primary Address, Wait Time, Maximum Hops.
각 파라미터의 뜻은 다음과 같습니다.
| 파라미터 | 설명 |
|---|---|
| Primary Address | BOOTP/DHCP 라우터 주소로 쓸 IPv4 주소. 값을 넣으면 이 인터페이스에서 받은 모든 BOOTP/DHCP 요청에 이 IPv4 주소가 도장처럼 찍 힙니다. 한 인터페이스에 여러 IPv4 주소(별칭, alias)가 있을 때 유용합니다. 기본값: 인터페이스에 처음 할당된 IPv4 주소. |
| Wait Time | 부트 요청을 인터페이스로 전달하기 전에, 로컬 구성 서버의 응답을 기다리는 최소 시간(초) . 이 지연 동안 로컬 서버가 먼저 응답할 기회를 줍니다. 로컬 서버가 응답할 만큼 충분히 길게 잡으세요. 로컬 서버가 없으면 0으로 설정합니다. 범위: 1–65535, 기본값: 0. |
| Maximum Hops | IPv4 BOOTP/DHCP 요청의 최대 홉 수 . IPv4 DHCP Relay는 요청의 홉 카운트를 1 늘린 뒤 이 최대값과 비교해, 최대 홉 수를 넘으면 요청을 폐기 합니다. 범위: 1–16, 기본값: 4. |
- Relays 섹션에서, BOOTP/DHCP 요청을 전달할 각 릴레이(서버)의 IPv4 주소 를 정의합니다. IPv4 유니캐스트, 멀티캐스트, 브로드캐스트 주소 모두 가능합니다. 인터페이스마다 독립적으로 여러 구성 서버에 중계할 수 있으며, 서로 다른 인터페이스에 서로 다른 서버를 두면 부하 분산, 한 인터페이스에 여러 서버를 두면 이중화 가 됩니다.
각 릴레이마다 Add 를 클릭하고, IPv4 address 필드에 릴레이 IPv4 주소를 입력한 뒤 OK 를 클릭합니다.
- (선택) Relay Agent Information Option (Option 82) 섹션에서 해당 설정을 구성합니다(RFC 3046 참고).
- Circuit-ID 를 선택하면 DHCP 요청을 받은 인터페이스를 식별하는 Agent Circuit ID 가 켜집니다. 기본적으로 Gaia OS는 앞서 고른 인터페이스 이름을 쓰지만, 릴레이 인터페이스를 식별할 사용자 정의 문자열 을 직접 넣을 수도 있습니다.
- Remote-ID 를 선택하면 DHCP 요청을 서버로 전달·중계한 호스트 시스템을 식별하는 Agent Remote ID 가 켜집니다. 기본적으로 Gaia OS는 자신의 호스트네임을 쓰며, 사용자 정의 문자열도 넣을 수 있습니다.
- Save 를 클릭합니다.
설정을 다시 끄거나 지울 때는 모두 Advanced Routing > DHCP Relay 에서 시작합니다.
- 릴레이 대상 하나만 끄기 — 인터페이스 선택 → Edit → Relays 섹션에서 해당 서버 선택 → Delete → Save.
- Option 82 끄기 — 인터페이스 선택 → Edit → Relay Agent Information Option (Option 82) 섹션에서 Circuit-ID 와 Remote-ID 의 선택 해제 → Save.
- 인터페이스에서 IPv4 BOOTP/DHCP Relay 완전히 끄기 — 인터페이스 선택 → Delete.
Gaia Clish에서 IPv4 DHCP Relay 설정하기
쓸 수 있는 명령을 직접 둘러보려면 Gaia Clish에서 다음을 입력합니다. set 명령은 set bootp interface 뒤에 [Esc][Esc], show 명령은 show bootp interface 뒤에 [Esc][Esc] 를 누르면 가능한 형태가 펼쳐집니다.
전체 구문은 다음과 같습니다.
set bootp interface <Name of Interface>
agent-info
circuit-id {<Circuit-ID> | default | off}
remote-id {<Remote-ID> | default | off}
off
maxhopcount {<1-16> | default}
{off | on}
primary {<IPv4 Address of Interface> | default}
wait-time {<1-65535> | default}
relay-to <Destination IPv4 Address> {off | on}각 파라미터는 다음과 같습니다.
| 파라미터 | 설명 | ||
|---|---|---|---|
<Name of Interface> | IPv4 DHCP Relay를 켤 인터페이스를 지정합니다. | ||
| `agent-info circuit-id {<Circuit-ID> \ | default \ | off}` | DHCP 요청을 받은 인터페이스를 식별하는 Agent Circuit ID (RFC 3046). <Circuit-ID>는 사용자 정의 문자열, default는 기본값(Gaia OS가 인터페이스 이름 사용), off는 Agent Circuit ID를 완전히 제거합니다. 최대 251자이며, Remote ID와 함께 쓰면 합쳐서 249자를 넘을 수 없습니다. |
| `agent-info remote-id {<Remote-ID> \ | default \ | off}` | DHCP 요청을 서버로 전달·중계한 호스트를 식별하는 Agent Remote ID (RFC 3046). <Remote-ID>는 사용자 정의 문자열, default는 기본값(Gaia OS가 호스트네임 사용), off는 완전히 제거합니다. 최대 251자이며, Circuit ID와 함께 쓰면 합쳐서 249자를 넘을 수 없습니다. |
agent-info off | Relay Agent Information Option (Option 82)을 완전히 비활성화 합니다. | ||
| `maxhopcount {<1-16> \ | default}` | IPv4 BOOTP/DHCP 요청의 최대 홉 수. 홉 카운트를 1 늘린 뒤 이 값과 비교해, 넘으면 요청을 폐기합니다. 범위: 1–16, 기본값: 4. | |
| `{off \ | on}` | 지정한 인터페이스에서 BOOTP/DHCP Relay를 켜거나(on) 끕니다(off). | |
| `primary {<IPv4 Address of Interface> \ | default}` | BOOTP/DHCP 라우터 주소로 쓸 IPv4 주소. 값을 넣으면 이 인터페이스에서 받은 모든 BOOTP/DHCP 요청에 이 주소가 찍힙니다(별칭이 여럿일 때 유용). 기본값: 인터페이스에 처음 할당된 IPv4 주소. | |
| `wait-time {<1-65535> \ | default}` | 요청을 전달하기 전 로컬 구성 서버의 응답을 기다리는 최소 시간(초). 로컬 서버가 없으면 0으로 둡니다. 범위: 1–65535, 기본값: 0. | |
| `relay-to <Destination IPv4 Address> {off \ | on}` | BOOTP/DHCP 요청을 전달할 각 릴레이의 IPv4 주소. 유니캐스트·멀티캐스트·브로드캐스트 모두 가능합니다. 인터페이스마다 독립적으로 여러 서버에 중계할 수 있으며, 인터페이스별 다른 서버는 부하 분산, 한 인터페이스의 여러 서버는 이중화입니다. |
인터페이스에 IPv4 BOOTP/DHCP Relay를 켜는 전체 절차입니다.
- 명령줄에 접속해 Gaia Clish에 로그인합니다.
- 인터페이스에서 Relay를 켭니다.
set bootp interface <Name of Interface> on
- 요청을 전달할 각 릴레이의 IPv4 주소를 설정합니다.
set bootp interface <Name of Interface> relay-to <Destination IPv4 Address> on
- (선택) Primary Address·Wait Time·Maximum Hops 값을 설정합니다.
set bootp interface <Name of Interface> maxhopcount {<1-16> | default}
set bootp interface <Name of Interface> primary {<IPv4 Address of Interface> | default}
set bootp interface <Name of Interface> wait-time {<1-65535> | default} on
- (선택) Option 82 설정을 구성합니다.
set bootp interface <Name of Interface> agent-info circuit-id {<Circuit-ID> | default | off}
set bootp interface <Name of Interface> agent-info remote-id {<Remote-ID> | default | off}
- 구성을 저장합니다 —
save config
설정을 끄는 명령도 같은 요령입니다.
- 릴레이 대상 하나만 끄기
set bootp interface <Name of Interface> relay-to <Destination IPv4 Address> off
- Option 82 끄기
set bootp interface <Name of Interface> agent-info off
- 인터페이스에서 Relay 완전히 끄기
set bootp interface <Name of Interface> off
각 작업 뒤에는 반드시 save config 로 저장합니다.
관리 서버에서 IPv4 DHCP Relay 보안 정책 설정하기
중계 자체를 켰다고 끝이 아닙니다. DHCP 중계 트래픽이 Security Gateway를 통과하도록 명시적인 보안 정책 을 만들어 줘야 합니다. 이 작업은 두 단계로 나뉩니다 — 관리 서버의 table.def 손질과, SmartConsole의 규칙 작성입니다.
관리 서버에서 IPv4 DHCP 서비스 손질하기
다음은 Security Management Server나 Multi-Domain Server에서 DHCP 서비스를 설정하는 절차입니다.
- 관리 서버 명령줄에 (SSH나 콘솔로) 접속합니다.
- Expert mode로 로그인합니다.
- Multi-Domain Server라면 해당 Domain Management Server의 컨텍스트로 들어갑니다.
mdsenv <Name or IP Address of Domain Management Server>
- 관련된 모든 table.def 파일 내용을 확인합니다(파일 위치는 sk98339 참고).
egrep "no_hide_services_ports|no_fold_services_ports" /<Path>/<To>/<Applicable>/table.def
- UDP 포트 67·68 이
no_hide_services_ports나no_fold_services_ports테이블에 들어 있으면, 해당 table.def 파일을 편집해 이 포트들을 제거 합니다.
vi /<Path>/<To>/<Applicable>/table.def
변경 전:
no_hide_services_ports = { <4500,17>, <500,17>, <259,17>, <1701,17>, ..., <68,17>, <67,17> }
no_fold_services_ports = { <4500,17>, <500,17>, <259,17>, <1701,17>, ..., <68,17>, <67,17> }
변경 후:
no_hide_services_ports = { <4500,17>, <500,17>, <259,17>, <1701,17>, ... }
no_fold_services_ports = { <4500,17>, <500,17>, <259,17>, <1701,17>, ... }
- 파일을 저장하고 편집기를 빠져나갑니다.
- SmartConsole에서 해당 Security Gateway에 Access Control Policy를 설치합니다.
SmartConsole에서 보안 정책 작성하기
IPv4 DHCP 중계 트래픽을 허용하려면 DHCP relay 서비스를 쓰는 명시적인 보안 정책 규칙 을 만들어야 합니다. 이런 명시적 규칙이 필요한 이유는 다음과 같습니다.
- IPv4 DHCP relay 에이전트와 서버는 응답을 요청과 자동으로 짝지을 수 없 습니다.
- 클라이언트가 처음 요청을 보낼 때 출발지 IP 주소가 없을 수도 있습니다. 따라서 보안 정책은 Any 출발지에서 DHCP 서버 또는 DHCP Relay로 가는 IPv4 DHCP 브로드캐스트 를 허용해야 합니다.
- dhcp-request, dhcp-reply 서비스는 Check Point의 Stateful Inspection Engine을 써서 IPv4 DHCP 트래픽을 상태 기반 검사 합니다.
IPv4 DHCP 서비스는 다음 포트를 씁니다.
- 클라이언트가 보내는 IPv4 DHCP 요청 — UDP 유니캐스트 또는 브로드캐스트, 출발지 포트 68, 목적지 포트 67 . 클라이언트가 아직 IPv4 주소가 없으면 출발지 IP가
0.0.0.0일 수 있습니다. - 클라이언트로 가는 IPv4 DHCP 응답 — UDP 유니캐스트 또는 브로드캐스트, 출발지 포트 67, 목적지 포트 68 .
- relay와 server 사이의 중계 트래픽 — UDP 유니캐스트, 출발지 포트 67, 목적지 포트 67 .
R77.20 이상 Security Gateway에서 쓸 IPv4 DHCP 서비스는 새 DHCP 서비스인 dhcp-request와 dhcp-reply 입니다.
IPv4 DHCP 보안 정책 구성 절차는 이렇습니다.
- SmartConsole에서 메인 메뉴 > Global properties 를 클릭합니다.
- Firewall 을 클릭합니다. Accept outgoing packets originating from gateway implied rule이 켜져 있다면, 드롭다운에서 Last 또는 Before Last 를 선택하고 OK 를 클릭합니다.
- DHCP 서버용 호스트 객체 를 만듭니다 — Objects > New Host 에서 이름과 DHCP 서버의 IPv4 주소 를 입력하고 OK.
- Global Broadcast용 호스트 객체 를 만듭니다 — Objects > New Host 에서 이름과 IPv4 주소
255.255.255.255를 입력하고 OK. - IPv4 DHCP 클라이언트가 연결된 Client Network 객체 를 만듭니다 — Objects > New Network 에서 이름, IPv4 Network 주소와 Net mask를 입력하고 OK.
- 레거시 DHCP 구성이 남아 있지 않은지 확인합니다.
- 다음 레거시 서비스를 쓰는 IPv4 DHCP 보안 규칙을 모두 삭제하거나 비활성화 합니다 —
bootp,dhcp-relay,dhcp-req-localmodule,dhcp-rep-localmodule. - 레거시 IPv4 DHCP 구성을 위한 수동 NAT 규칙도 모두 삭제·비활성화 합니다.
- 다음 레거시 서비스를 쓰는 IPv4 DHCP 보안 규칙을 모두 삭제하거나 비활성화 합니다 —
- 새 IPv4 DHCP 서비스(
dhcp-request,dhcp-reply)로 필요한 Access Control Policy 규칙을 만듭니다.
IPv4 DHCP Relay 서비스를 쓴 Rule Base 예시는 다음과 같습니다.
| Source | Destination | Service | Action | 규칙 설명 |
|---|---|---|---|---|
| Any | <Global Broadcast> 객체 | dhcp-request | Accept | 출발지 IP는 반드시 Any 여야 합니다. 0.0.0.0은 동작하지 않습니다. |
| Any | <DHCP Server> 객체 | dhcp-request | Accept | 일부 상황에서 DHCP 클라이언트는 일부 요청을 DHCP 서버로 직접 보냅니다. |
<DHCP Relay> 객체 | <Client Network> 객체 | dhcp-reply | Accept | 응답은 DHCP 클라이언트 옵션에 따라 유니캐스트일 수도 브로드캐스트일 수도 있습니다. |
<DHCP Relay> 객체 | <Global Broadcast> 객체 | dhcp-reply | Accept | 응답은 유니캐스트·브로드캐스트 모두 가능합니다. 일부 상황에서 DHCP 서버는 일부 요청을 클라이언트로 직접 보냅니다. |
<DHCP Server> 객체 | <Client Network> / <Global Broadcast> 객체 |
- 해당 Security Gateway에 Access Control Policy를 설치합니다.
IPv4 DHCP Relay 모니터링
Gaia Portal에서 모니터링하려면 Advanced Routing > DHCP Relay 로 가서, 오른쪽 위 모서리의 Monitoring 을 클릭합니다.
Gaia Clish에서는 다음을 입력해 쓸 수 있는 show 명령을 봅니다.
show bootp[Esc][Esc]문제 해결(Troubleshooting)은 "Trace Options" 절을 참고하세요.
IPv6 DHCP Relay
IPv6 DHCP Relay 는 같은 개념의 IPv6판으로, Security Gateway에서 DHCPv6 요청을 다른 서브넷의 DHCPv6 서버로 중계 합니다. DHCPv6 프로토콜과 IPv6 DHCP relay의 기술적 내용은 RFC 3315 를 참고하세요. 인터페이스마다 서로 다른 DHCPv6 서버 집합 으로 요청을 보내도록 설정할 수 있습니다.
Gaia Portal에서 IPv6 DHCP Relay 켜기
인터페이스에 IPv6 DHCP Relay를 켜는 절차입니다.
- 웹 브라우저로 Gaia Portal에 접속합니다.
https://<IP address of Gaia Management Interface>
기본 포트(443)를 바꿨다면 포트도 함께 입력합니다. 2. 왼쪽 탐색 트리에서 Advanced Routing > IPv6 DHCP Relay 를 클릭합니다. 3. Add 를 클릭합니다. 4. Enable 을 선택합니다. 5. Interface 필드에서 Relay를 켤 인터페이스를 고릅니다. 6. (선택) Send Interface-ID 를 선택하면 DHCPv6 Relay 요청에 Interface-ID 옵션 을 함께 보냅니다. 이 옵션은 DHCPv6 서버가 relay 요청의 인터페이스 ID를 relay 응답 메시지로 그대로 복사 하도록 지시합니다. relay 에이전트는 이 값으로 DHCPv6 요청이 원래 어느 인터페이스에서 수신됐는지 를 식별합니다.
- (선택) Wait Time 필드에 이 인터페이스의 대기 시간을 입력합니다. DHCPv6 클라이언트가 이 대기 시간보다 짧게 서버 응답을 기다렸다고 표시하면, DHCPv6 Relay는 요청을 전달하지 않고 드롭 합니다. 이 지연은 로컬 DHCPv6 서버가 먼저 응답할 기회를 줍니다.
- Relays 섹션에서, DHCPv6 요청을 전달할 각 릴레이의 IPv6 주소 를 정의합니다. 인터페이스마다 서로 다른 DHCPv6 서버 목록 을 설정할 수 있습니다. 서로 다른 인터페이스에 서로 다른 서버를 두면 부하 분산, 한 인터페이스에 여러 서버를 두면 이중화가 됩니다.
각 릴레이마다 Add 를 클릭하고, Relay To 필드에 릴레이의 IPv6 주소를 입력한 뒤 OK 를 클릭합니다.
- Save 를 클릭합니다.
끄거나 지울 때도 Advanced Routing > IPv6 DHCP Relay 에서 시작합니다.
- 릴레이 대상 하나만 끄기 — 인터페이스 선택 → Edit → Relays 섹션에서 해당 서버 선택 → Delete → Save.
- 인터페이스에서 IPv6 DHCP Relay 완전히 끄기 — 인터페이스 선택 → Delete → Save.
Gaia Clish에서 IPv6 DHCP Relay 설정하기
쓸 수 있는 명령을 보려면 Gaia Clish에서 set 은 set ipv6 dhcp6relay 뒤에 [Esc][Esc], show 는 show ipv6 dhcp6relay 뒤에 [Esc][Esc] 를 누릅니다.
전체 구문입니다.
set ipv6 dhcp6relay interface <Name of Interface>
interface-id {off | on}
{off | on}
relay-to <Destination IPv6 Address> {off | on}
wait-time {<1-65535> | default}각 파라미터는 다음과 같습니다.
| 파라미터 | 설명 | |
|---|---|---|
<Name of Interface> | IPv6 DHCP Relay를 켤 인터페이스를 지정합니다. | |
| `interface-id {off \ | on}` | DHCPv6 서버가 relay 요청의 인터페이스 ID를 relay 응답으로 복사하도록 지시합니다. relay 에이전트는 이 값으로 요청이 원래 어느 인터페이스에서 수신됐는지를 식별합니다. 전역 링크 주소만으로 인터페이스를 유일하게 식별할 수 없을 때 켜는 것이 Best Practice 입니다. 기본값: off. |
| `{off \ | on}` | 지정한 인터페이스에서 IPv6 DHCP Relay를 켜거나(on) 끕니다(off). |
| `relay-to <Destination IPv6 Address> {off \ | on}` | DHCPv6 요청을 전달할 각 릴레이의 IPv6 주소. 인터페이스마다 다른 서버 목록을 설정할 수 있고, 인터페이스별 다른 서버는 부하 분산, 한 인터페이스의 여러 서버는 이중화입니다. 로컬 장비 자신의 주소일 수 없 습니다. |
| `wait-time {<1-65535> \ | default}` | DHCPv6 클라이언트가 이 대기 시간보다 짧게 서버 응답을 기다렸다고 표시하면 요청을 전달하지 않고 드롭합니다. 실제 지연은 1/100초 단위 (값 100 = 1초). 범위: 1–65535, 기본값: 0. |
인터페이스에 IPv6 DHCP Relay를 켜는 전체 절차입니다.
- 명령줄에 접속해 Gaia Clish에 로그인합니다.
- 인터페이스에서 Relay를 켭니다.
set ipv6 dhcp6relay interface <Name of Interface> on
- 요청을 전달할 각 릴레이의 IPv6 주소를 설정합니다.
set ipv6 dhcp6relay interface <Name of Interface> relay-to <Destination IPv6 Address> on
- (선택) Interface-ID·Wait Time 값을 설정합니다.
set ipv6 dhcp6relay interface <Name of Interface> interface-id on
set ipv6 dhcp6relay interface <Name of Interface> wait-time {<1-65535> | default}
- 구성을 저장합니다 —
save config
끄는 명령도 같은 요령입니다.
- 릴레이 대상 하나만 끄기
set ipv6 dhcp6relay interface <Name of Interface> relay-to <Destination IPv6 Address> off
- 인터페이스에서 Relay 완전히 끄기
set ipv6 dhcp6relay interface <Name of Interface> off
각 작업 뒤에는 반드시 save config 로 저장합니다.
관리 서버에서 IPv6 DHCP Relay 보안 정책 설정하기
관리 서버의 IPv6 DHCP 서비스
DHCPv6 클라이언트와 서버는 UDP로 메시지를 주고받 습니다. 클라이언트가 relay나 서버의 IPv6 주소를 모를 때는 특수한 link-scoped 멀티캐스트 주소 로 구성 정보를 요청합니다.
FF02::1:2각 트래픽이 쓰는 포트와 보안 정책 서비스는 다음과 같습니다.
| 트래픽 | 전송 방식·포트 | 보안 정책 서비스 |
|---|---|---|
| 클라이언트의 DHCPv6 요청 | UDP 유니캐스트 또는 멀티캐스트, 출발지 포트 546 / 목적지 포트 547 | dhcpv6-request |
| 클라이언트로 가는 DHCPv6 응답 | 클라이언트의 IPv6 link-local 주소로 UDP 유니캐스트, 출발지 포트 547 / 목적지 포트 546 | dhcpv6-reply |
| relay와 server 사이 트래픽 | IPv6 UDP 유니캐스트, 출발지 포트 547 / 목적지 포트 547 | dhcpv6-relay |
서버 주소는 여러 개 지정할 수 있고, 각각 IPv6 유니캐스트 주소 여야 하며, DHCPv6 서버 또는 하나 이상의 DHCPv6 relay 를 가리킬 수 있습니다.
SmartConsole에서 보안 정책 작성하기
IPv6 DHCP 보안 정책 구성 절차입니다.
- SmartConsole에서 메인 메뉴 > Global properties 를 클릭합니다.
- Firewall 을 클릭합니다. Accept outgoing packets originating from gateway implied rule이 켜져 있다면 드롭다운에서 Last 또는 Before Last 를 선택하고 OK.
- DHCP 서버용 새 호스트 를 만듭니다 — Objects > New Host 에서 서버 이름과 DHCP 서버의 IPv6 주소 를 입력하고 OK.
- IPv6 DHCP 클라이언트가 연결된 Client Network 객체 를 만듭니다 — Objects > New Network 에서 이름, IPv6 Network 주소와 IPv6 Prefix를 입력하고 OK.
- DHCPv6 서비스(
dhcpv6-request,dhcpv6-reply,dhcpv6-relay)로 필요한 보안 정책 규칙을 만듭니다.
IPv6 DHCP Relay 서비스를 쓴 Rule Base 예시입니다.
| Source | Destination | Service | 비고 |
|---|---|---|---|
<IPv6 Link Local Hosts> 객체 | <All DHCPv6 Relay Agents and Servers> 객체 | dhcpv6-request | 클라이언트 네트워크에 직접 연결된 (Gaia Security Gateway 위의) DHCPv6 relay로 가는 DHCPv6 클라이언트 요청을 허용합니다. |
<DHCPv6 Relay> 객체 | <IPv6 Link Local Hosts> 객체 | dhcpv6-reply | DHCPv6 relay에서 로컬 DHCPv6 클라이언트로 가는 응답을 허용합니다. |
<DHCPv6 Relay> 객체 | <DHCPv6 Server> 객체 | dhcpv6-relay | DHCPv6 relay와 DHCPv6 서버 사이 트래픽을 허용합니다. |
<DHCPv6 Server> 객체 | <DHCPv6 Relay> 객체 | dhcpv6-reply | implied rule이 기본값(Before Last)이면 서버→relay 응답은 relay→서버 요청과 매칭될 때 자동 허용됩니다. 다만 확실히 허용하려면 서버에서 relay로 가는 트래픽을 명시 규칙으로 만드는 것을 권장 합니다. |
<Client Network> 객체 | <DHCPv6 Server> 객체 | dhcpv6-request | DHCPv6 relay를 쓰더라도 클라이언트는 여전히 DHCPv6 서버로 직접 요청 을 보낼 수 있습니다. |
<DHCPv6 Server> 객체 | <Client Network> 객체 | dhcpv6-reply | DHCPv6 서버에서 클라이언트로 가는 응답을 허용합니다. relay를 쓰더라도 클라이언트는 멀리 있는 서버에서 UDP 유니캐스트로 직접 응답을 받 을 수 있습니다. |
- 해당 Security Gateway에 Access Control Policy를 설치합니다.
IPv6 DHCP Relay 모니터링
Gaia Portal에서는 Advanced Routing > IPv6 DHCP Relay 로 가서 오른쪽 위 Monitoring 을 클릭합니다.
Gaia Clish에서는 다음을 입력합니다.
show ipv6 dhcp6relay[Esc][Esc]문제 해결은 "Trace Options" 절을 참고하세요.
IP Broadcast Helper
UDP 브로드캐스트는 로컬 네트워크의 가장자리에서 멈춥 니다. 평소엔 괜찮지만, 어떤 상황에서는 이게 문제가 됩니다. 예를 들어 서버는 다른 네트워크로 옮겼는데, 옮기지 않은 클라이언트들이 보내는 UDP 브로드캐스트를 그 서버가 여전히 받아야 하는 경우입니다.
IP Broadcast Helper 는 UDP 브로드캐스트를 지정한 목적지 IPv4 주소 목록으로 전달(forward) 해 이 문제를 풉니다. 정적 주소 지정(static addressing)의 한 형태로, directed broadcast를 써서 로컬 브로드캐스트와 all-nets 브로드캐스트를 인터네트워크 안의 원하는 목적지로 보냅니다. DHCP Relay와 비슷하지만 더 일반적이어서, DHCP뿐 아니라 브로드캐스트에 의존하는 다른 UDP 서비스 의 요청도 라우터를 넘어 지정한 서버로 보낼 수 있습니다.
Gaia Portal에서 IP Broadcast Helper 설정하기
- 왼쪽 탐색 트리에서 Advanced Routing > IP Broadcast Helper 를 클릭합니다.
- IP Broadcast Helper 섹션의 Forward Non-local Packets 옵션은, 수신 인터페이스에 직접 연결된 출발지가 만든 게 아닌 패킷도 전달할지 를 제어합니다.
- 이 옵션을 선택 하면, 출발지가 수신 인터페이스에 직접 있지 않아도 패킷을 전달합니다. Apply 를 클릭합니다.
- 이 옵션을 해제 하면(기본값), 수신 인터페이스에 직접 있는 출발지가 만든 패킷만 중계 대상이 됩니다. Apply 를 클릭합니다.
- Configure Relays 섹션에서 IP helper 서비스를 실행할 인터페이스를 설정합니다.
- Add 를 클릭합니다.
- Interface 필드에서 해당 인터페이스를 고릅니다.
- UDP Port 필드에 인터페이스가 릴레이 목적지로 전달할 클라이언트 UDP 패킷의 UDP 포트 번호 를 입력합니다.
- Relay 필드에 인터페이스가 클라이언트 UDP 패킷을 전달할 IPv4 유니캐스트 주소(x.x.x.x) 또는 IPv4 브로드캐스트 주소(255.255.255.255) 를 입력합니다. 릴레이 IPv4 주소는 둘 이상 설정할 수 있습니다.
- Save 를 클릭합니다.
Gaia Clish에서 IP Broadcast Helper 설정하기
쓸 수 있는 명령을 보려면 set 은 set iphelper 뒤에 [Esc][Esc], show 는 show iphelper 뒤에 [Esc][Esc] 를 누릅니다.
전체 구문입니다.
set iphelper
forward-nonlocal {off | on}
interface <Name of Interface>
off
udp-port <1-65535>
off
relay-to <IP Address> {off | on}각 파라미터는 다음과 같습니다.
| 파라미터 | 설명 | |
|---|---|---|
| `forward-nonlocal {off \ | on}` | 수신 인터페이스에 직접 연결된 출발지가 만든 게 아닌 패킷도 전달할지 제어합니다. on이면 출발지가 직접 있지 않아도 전달, off(기본값)면 수신 인터페이스에 직접 있는 출발지가 만든 패킷만 중계 대상이 됩니다. |
<Name of Interface> | IP helper 서비스를 실행할 인터페이스를 지정합니다. | |
interface <Name of Interface> off | 지정한 인터페이스에서 IP Broadcast Helper를 비활성화합니다. | |
udp-port <1-65535> | 인터페이스가 릴레이 목적지로 전달할 클라이언트 UDP 패킷의 UDP 포트 번호 를 지정합니다. 포트 67·68은 DHCP Relay용 예약이라 쓸 수 없 습니다. | |
udp-port <1-65535> off | 이 인터페이스에 설정한 UDP 포트를 비활성화합니다. | |
| `relay-to <Destination IPv4 Address> {off \ | on}` | 인터페이스가 클라이언트 UDP 패킷을 전달할 IPv4 유니캐스트(x.x.x.x) 또는 브로드캐스트(255.255.255.255) 주소 . 둘 이상 설정 가능합니다. 단, 로컬 장비 자신의 주소일 수 없고 , 들어오는 UDP 브로드캐스트와 같은 인터페이스를 쓰는 목적지로는 전달되지 않 습니다. |
설정 절차는 다음과 같습니다.
- 명령줄에 접속해 Gaia Clish에 로그인합니다.
- Forward Non-local Packets 옵션을 설정합니다.
- 출발지가 수신 인터페이스에 직접 있지 않아도 전달하려면:
set iphelper forward-nonlocal on
- 수신 인터페이스에 직접 있는 출발지의 패킷만 중계하려면(기본값):
set iphelper forward-nonlocal off
- 인터페이스, 클라이언트 패킷의 UDP 포트, 목적지 IPv4 주소를 설정합니다.
set iphelper interface <Name of Interface> udp-port <1-65535> relay-to <Destination IPv4 Address> on
- 구성을 저장합니다 —
save config
IP Broadcast Helper 모니터링
Gaia Portal에서는 Advanced Routing > IP Broadcast Helper 로 가서 오른쪽 위 Monitoring 을 클릭합니다.
Gaia Clish에서는 다음을 입력합니다.
show iphelper[Esc][Esc]문제 해결은 "Trace Options" 절을 참고하세요.