07ISP 이중화ISP 이중화
ISP Redundancy 는 Security Gateway 또는 Scalable Platform Security Group을 두 개 이상의 ISP(인터넷 서비스 제공자) 회선으로 인터넷에 연결 해, 한 회선이 끊겨도 인터넷 연결이 끊기지 않게 해 주는 기능입니다. 핵심은 게이트웨이가 ISP 링크들을 끊임없이 감시(monitor)하다가 그때그때 가장 좋은 링크를 골라 쓴다 는 데 있습니다. 이 장에서는 ISP Redundancy가 무엇이고, 어떤 배선으로 구성하며, 두 가지 동작 모드가 어떻게 다르고, 나가는·들어오는 연결이 각각 어떻게 처리되는지, 그리고 SmartConsole에서의 설정 절차부터 VPN 연동과 CLI 제어까지 빠짐없이 정리합니다.
ISP Redundancy란
ISP Redundancy는 내부망의 트래픽이 인터넷으로 나갈 때 회선 하나에만 의존하지 않도록, 여러 ISP 링크를 묶어 두는 기능입니다. 게이트웨이가 링크 상태를 살펴 살아 있는 링크 중 가장 적절한 것을 선택하므로, 한 ISP에 장애가 생겨도 서비스가 멈추지 않습니다.
전제와 범위를 먼저 짚어 두면 다음과 같습니다.
- ISP Redundancy는 외부 인터페이스가 최소 2개 필요하며, 최대 10개까지 지원합니다. ISP 링크를 2개보다 많이(3개 이상) 구성하려면 Management Server와 Security Gateway / Scalable Platform Security Group이 모두 R81.10 이상 이어야 합니다.
- ISP Redundancy는 기본적으로 내부 네트워크에서 시작되어 인터넷으로 나가는 트래픽 을 위한 기능입니다.
배선 — 세 가지 배치
ISP Redundancy는 회선을 게이트웨이에 어떻게 물리는가에 따라 몇 가지 배치가 가능합니다.
단일 ISP 링크 (참고용 기본 그림)
가장 단순한 형태는 ISP 한 곳에만 연결된 일반적인 배치입니다.

여기서 그림의 각 요소는 다음과 같습니다.
| 번호 | 설명 |
|---|---|
| ① | 내부 네트워크(Internal network) |
| ② | Security Gateway 또는 Scalable Platform Security Group |
| ③ | ISP |
| ④ | 인터넷 |
권장 — ISP마다 전용 물리 인터페이스 (인터페이스 2개)
두 ISP 링크에 각각 전용 물리 인터페이스를 하나씩 주는 구성 입니다.

| 번호 | 설명 |
|---|---|
| ① | 내부 네트워크 |
| ② | Security Gateway 또는 Scalable Platform Security Group |
| ③ | ISP A |
| ④ | ISP B |
| ⑤ | 인터넷 |
외부 인터페이스 하나로 ISP 두 개 묶기
외부 인터페이스가 하나뿐 인 경우에도 ISP Redundancy를 쓸 수 있습니다. 같은 외부 인터페이스에 두 개의 서브넷 을 두는 방식입니다(Gaia의 인터페이스 Aliases 기능 사용 — 자세한 내용은 R82 Gaia Administration Guide의 Network Management > Network Interfaces > Aliases 참고).
이렇게 하면 두 ISP 링크가 같은 게이트웨이 인터페이스에 연결되지만, 서로 다른 next-hop 라우터 로 향합니다. 보통 그 사이에 스위치를 둡니다.

| 번호 | 설명 |
|---|---|
| ① | 내부 네트워크 |
| ② | Security Gateway 또는 Scalable Platform Security Group |
| ③ | 스위치(Switch) |
| ④ | ISP A |
| ⑤ | ISP B |
| ⑥ | 인터넷 |
두 가지 모드
ISP Redundancy의 동작 모드는 내부 클라이언트에서 인터넷으로 나가는 연결을 어떻게 처리할지 를 정합니다. 두 가지 중 하나를 고릅니다.
| 모드 | 설명 |
|---|---|
| Load Sharing | 모든 링크를 써서 연결 부하를 분산합니다. 들어오는 연결도 번갈아 처리합니다. 링크마다 상대 부하(weight) 를 줄 수 있어, 더 빠른 링크가 더 많은 부하를 맡게 할 수 있습니다. 새 연결은 링크에 무작위로 배정 되며, 한 링크가 죽으면 다른 링크가 그 부하를 떠맡습니다. 이 모드에서는 들어오는 연결도 어느 ISP 링크로든 애플리케이션 서버에 도달할 수 있는데, 게이트웨이가 DNS 요청에 두 ISP의 IP를 번갈아 응답 하기 때문입니다. |
| Primary/Backup | 한 링크(Primary)로만 연결을 처리하다가, Primary 링크가 죽으면 Backup 링크로 전환 합니다. Primary 링크가 복구되면 새 연결은 다시 Primary로 배정되고, 기존 연결은 끝날 때까지 Backup 링크에 그대로 남아 있습니다. 이 모드에서는 들어오는 연결(인터넷에서 DMZ나 내부망의 애플리케이션 서버로)도 이득을 봅니다. 게이트웨이가 연결을 시작한 바로 그 ISP 링크로 반환 패킷을 돌려보내기 때문입니다. |
모드 선택 기준은 단순합니다.
나가는 연결(Outgoing Connections)
게이트웨이를 거쳐 인터넷으로 나가는 트래픽은 모드에 따라 다르게 처리됩니다.
| 모드 | 설명 |
|---|---|
| Load Sharing | 인터넷으로 나가는 트래픽이 ISP 링크들 사이에 분산 됩니다. 각 링크를 얼마나 쓸지 상대 weight 로 정할 수 있어서, 예컨대 한 링크가 더 빠르면 그 링크로 더 많은 트래픽을 보내도록 설정할 수 있습니다. |
| Primary/Backup | 나가는 트래픽이 활성 Primary 링크 를 씁니다. 이때 Hide NAT 으로 나가는 패킷의 출발지 주소를 패킷이 나가는 인터페이스의 주소로 바꿉 니다. 그러면 반환 패킷의 목적지 주소가 곧 그 링크의 주소가 되므로, 반환 패킷이 자동으로 같은 ISP 링크로 돌아옵 니다. Hide NAT 설정은 관리자가 직접 구성합니다. |
들어오는 연결(Incoming Connections)
외부 사용자가 내부로 들어오는 연결 을 맺을 수 있게 하려면, 관리자가 다음을 해야 합니다.
- 각 애플리케이션 서버에 ISP마다 라우팅 가능한 공인 IP를 하나씩 줍니다.
- Static NAT 을 구성해 그 라우팅 가능한 주소를 실제 서버 주소로 변환 합니다.
서버들이 서로 다른 서비스(예: HTTP와 FTP)를 다룬다면, NAT을 활용해 공개 서버 전체에 대해 라우팅 가능한 공인 IP만 쓰게 할 수 있습니다.
외부 클라이언트는 배정된 IP 중 하나를 사용합니다. 연결을 맺으려면 클라이언트가 서버의 DNS 이름을 올바른 IP로 해석할 수 있어야 합니다.
예시 — 게이트웨이 내장 미니 DNS 서버의 역할
웹 서버 www.example.com 에는 각 ISP에서 받은 IP가 하나씩 배정되어 있습니다.
- ISP A에서 받은
192.168.1.2 - ISP B에서 받은
172.16.2.2
만약 ISP 링크 A가 죽으면 192.168.1.2 는 사용할 수 없게 되고, 클라이언트는 www.example.com 을 살아 있는 172.16.2.2 로 해석할 수 있어야 합니다.
이 예시를 바탕으로 들어오는 연결은 다음 순서로 맺어집니다.
- 인터넷의 외부 클라이언트가
www.example.com에 접속하려고 그 URL의 IP를 묻는 DNS 쿼리 를 보냅니다. 이 DNS 쿼리는 게이트웨이에 도달합니다. 게이트웨이에는 자기 도메인에 속한 서버에 대한 Type A DNS 쿼리를 가로채도록 구성할 수 있는 내장 미니 DNS 서버 가 있습니다. - ISP 링크에 속한 인터페이스로 도착한 DNS 쿼리는 게이트웨이가 가로챕 니다.
- 게이트웨이가 그 호스트 이름을 인식하면, 다음 중 하나로 응답합니다.
- Primary/Backup 모드 에서는 Primary ISP 링크가 활성인 동안에는 Primary 링크에 연결된 IP만 응답합니다.
- Load Sharing 모드 에서는 두 IP를 순서를 번갈아 가며 응답합니다.
- 게이트웨이가 DNS 요청을 처리할 수 없으면(예: 호스트 이름을 인식하지 못하면), 그 DNS 쿼리를 원래 목적지나
example.com도메인의 DNS 서버로 넘깁 니다. - 외부 클라이언트가 DNS 응답을 받으면 연결을 엽니다. 패킷이 게이트웨이에 도착하면, 게이트웨이는 Static NAT으로 목적지 IP
192.168.1.2또는172.16.2.2를 실제 서버 IP10.0.0.2로 변환 합니다. - 게이트웨이는 서버에서 클라이언트로 가는 반환 패킷을 연결을 시작할 때 쓴 바로 그 ISP 링크로 라우팅합니다.
Security Gateway에서 ISP Redundancy 구성하기
전체 흐름은 SmartConsole 접속 → 게이트웨이 객체 열기 → ISP Redundancy 지원 켜기 → 모드 선택 → ISP 링크 구성 → 게이트웨이를 DNS 서버로 설정 → Access Control 정책 구성 → 정책 설치 입니다.
- 이 게이트웨이 / Security Group을 관리하는 Security Management Server 또는 Domain Management Server 에 SmartConsole로 접속합니다.
- 왼쪽 탐색 패널에서 Gateways & Servers 를 클릭합니다.
- 해당 Security Gateway / Security Group 객체를 엽니다.
- Other > ISP Redundancy 를 클릭합니다.
- Support ISP Redundancy 를 선택합니다.
- 이중화 모드를 고릅니다 — Load Sharing 또는 Primary/Backup.
- ISP 링크를 구성합니다(최소 2개, 최대 10개). 2개보다 많이 구성하려면 Management Server와 게이트웨이 / Security Group이 모두 R81.10 이상이어야 합니다.
ISP 링크 구성 — 자동 vs 수동
먼저 ISP 데이터를 준비합니다 — 링크 속도와 next-hop IP 주소 가 필요합니다.
자동·수동 중 어느 쪽인지는 외부(External) 토폴로지 인터페이스의 개수로 갈립니다.
- Network Management 페이지에서 Topology가 "External" 인 인터페이스가 2개 이상 이면 ISP 링크를 자동 으로 구성할 수 있습니다.
- 그런 외부 인터페이스가 하나뿐 이면 ISP 링크를 수동 으로 구성해야 합니다.
ISP 링크 자동 구성
- Other > ISP Redundancy 를 클릭합니다.
- Set initial configuration 을 클릭합니다. ISP 링크가 자동으로 추가됩니다.
- Primary/Backup 모드 라면 Primary 인터페이스가 목록 맨 위에 있는지 확인합니다. 오른쪽 화살표로 순서를 바꿀 수 있습니다.
- OK 를 클릭합니다.
ISP 링크 수동 구성
- Other > ISP Redundancy 를 클릭합니다.
- ISP Links 영역에서 Add 를 클릭하면 ISP Link 창이 열립니다.
- General 탭을 클릭합니다.
- Name 필드에 이 링크의 이름을 원하는 텍스트로 입력합니다. 여기에 입력한 이름이 ISP Redundancy 명령(아래 "CLI로 ISP Redundancy 제어하기")에서 그대로 쓰입 니다.
- 이 ISP 링크에 쓸 게이트웨이 / Security Group의 Interface 를 선택합니다.
- 외부 인터페이스가 2개 이상이면 각 ISP 링크를 서로 다른 인터페이스에 둡니다. 그중 하나가 백업 ISP로 가는 링크라면 ISP Redundancy Script를 함께 구성합니다.
- 외부 인터페이스가 하나뿐이면 각 ISP 링크를 같은 그 인터페이스에 연결합니다.
- Next Hop IP Address 를 설정합니다.
- 외부 인터페이스가 2개 이상이면 이 필드를 비워 두고 Get from routing table 을 클릭 합니다. next-hop은 기본 게이트웨이(default gateway)가 됩니다.
- 외부 인터페이스가 하나뿐이면 각 ISP 링크를 서로 다른 next-hop 라우터로 설정합니다.
- Load Sharing 모드 라면 Weight 값을 입력합니다. ISP 링크 사이에 트래픽을 균등하게 나누려면 각 링크에
100% / ISP 링크 수비율을 입력합니다.
| ISP 링크 수 | 각 링크에 입력할 weight |
|---|---|
| 2개 | 각 50 |
| 3개 | 각 33 |
| 4개 | 각 25 |
| … | … |
한 ISP 링크가 더 빠르면 그 값을 올리고 다른 링크는 내려서, 합이 항상 100이 되도록 맞춥니다. 8. Advanced 탭을 클릭합니다. 9. 링크가 살아 있는지 확인하기 위해 감시할 호스트(monitored hosts) 를 정의합니다. 해당 객체를 Selected hosts 영역에 추가합니다. 10. OK 를 클릭합니다.
게이트웨이를 DNS 서버로 설정하기
게이트웨이 또는 그 뒤의 DNS 서버가 DNS 쿼리에 응답해야 합니다. 이것이 DMZ(또는 다른 내부망) 서버의 IP를 해석해 줍니다.
각 ISP에서 공인 IP를 하나씩 받 습니다. 공인 IP를 받을 수 없으면 도메인을 등록해 DNS 서버가 인터넷에서 접근 가능하게 만듭니다.
게이트웨이는 외부 호스트가 보내는, 자기 도메인의 웹 서버에 대한 Type A DNS 쿼리를 가로챕 니다.
- 게이트웨이가 외부 호스트를 인식하면 응답합니다.
- Load Sharing 모드 에서는 모든 ISP 링크의 IP를 순서를 번갈아 응답합니다.
- Primary/Backup 모드 에서는 활성 ISP 링크의 IP로 응답합니다.
- 게이트웨이가 호스트를 인식하지 못하면 DNS 쿼리를 원래 목적지나 도메인 DNS 서버로 넘깁 니다.
DNS 서버를 활성화하는 절차는 다음과 같습니다.
- Other > ISP Redundancy 를 클릭합니다.
- Enable DNS Proxy 를 선택합니다.
- Configure 를 클릭합니다.
- DMZ 또는 웹 서버를 추가합니다. 각 서버에 ISP마다 받은 공인 IP를 하나씩 구성합니다.
- DNS TTL 에 초 단위 숫자를 입력합니다. 이는 각 DNS 응답의 Time To Live 를 정합니다 — 인터넷의 DNS 서버들은 이 TTL보다 오래 여러분의 DNS 데이터를 캐시할 수 없습니다.
- OK 를 클릭합니다.
- Static NAT을 구성 해 공인 IP를 실제 서버 IP로 변환합니다. 외부 클라이언트는 구성된 IP 중 하나를 사용합니다.
| Name | Source | Destination | VPN | Services & Applications | Action | Track | Install On |
|---|---|---|---|---|---|---|---|
| DNS Proxy | 해당 소스 | 해당 DNS 서버 | Any | domain_udp | Accept | None | Policy Targets |
도메인을 등록하고 IP를 받으려면 다음을 합니다.
- 각 ISP에 도메인을 등록합니다.
- 도메인에 대한 DNS 쿼리에 응답할 DNS 서버의 구성된 IP를 ISP에 알려 줍니다.
- DMZ의 각 서버마다 ISP에서 공인 IP를 하나씩 받습니다.
- SmartConsole에서 Menu > Global properties 를 클릭합니다.
- 왼쪽 트리에서 NAT - Network Address Translation 을 클릭합니다.
- Manual NAT rules 영역에서 Translate destination on client side 를 선택합니다.
- OK 를 클릭합니다.
ISP Redundancy용 Access Control 정책 구성하기
Access Control 정책은 ISP 링크를 통한 연결을 허용해야 하며, 나가는 연결을 시작하는 네트워크 객체에 Automatic Hide NAT 을 걸어야 합니다.
- 내부 네트워크 객체의 속성에서 NAT > Add Automatic Address Translation Rules 를 선택합니다.
- Hide behind the gateway 를 선택합니다.
- OK 를 클릭합니다.
- 공개적으로 접근 가능한 서버(웹 서버, DNS 서버, DMZ 서버)에 대한 규칙을 정의합니다.
- 게이트웨이 / Security Group이 ISP마다 공인 IP를 하나씩 가지고 있으면 Static NAT 을 정의합니다. 특정 서버에 특정 서비스를 허용합니다. 예컨대 ISP에서 들어오는 HTTP 연결은 웹 서버로, ISP에서 들어오는 DNS 연결은 DNS 서버로 도달하도록 NAT 규칙을 구성합니다.
| Name | Original Source | Original Destination | Original Services | Translated Source | Translated Destination | Translated Services | Install On |
|---|---|---|---|---|---|---|---|
| Incoming Web - ISP A | Any | 웹 서버 IP를 가진 Host 객체 | http | S 50.50.50.2 | = (Original) | = (Original) | Policy Targets |
| Incoming Web - ISP B | Any | 웹 서버 IP를 가진 Host 객체 | http | S 60.60.60.2 | = (Original) | = (Original) | Policy Targets |
| Incoming DNS - ISP A | Any | DNS 서버 IP를 가진 Host 객체 | domain_udp | S 50.50.50.3 | = (Original) | = (Original) | Policy Targets |
| Incoming DNS - ISP B | Any | DNS 서버 IP를 가진 Host 객체 | domain_udp | S 60.60.60.3 | = (Original) | = (Original) | Policy Targets |
- 게이트웨이뿐 아니라 공개 서버마다 ISP별 공인 IP를 가지고 있으면, 다음과 같이 NAT 규칙을 구성합니다.
- 각 서버에 사설 IP를 줍니다.
- Original Destination 에 공인 IP를 씁니다.
- Translated Destination 에 사설 IP를 씁니다.
- Original Service 로 Any 를 선택합니다.
ISP Redundancy와 VPN
ISP Redundancy가 켜져 있으면 VPN 암호화 연결도 ISP 링크 장애를 넘겨 살아남 습니다. ISP Redundancy 페이지의 설정이 IPsec VPN > Link Selection 페이지의 설정보다 우선하기 때문입니다.
Check Point 피어와 VPN을 쓸 때
| 단계 | 지시 |
|---|---|
| 1 | 이 게이트웨이 / Security Group을 관리하는 Security Management Server 또는 Domain Management Server에 SmartConsole로 접속합니다. |
| 2 | 왼쪽 탐색 패널에서 Gateways & Servers 를 클릭합니다. |
| 3 | 해당 Security Gateway / Security Group 객체를 엽니다. |
| 4 | 왼쪽 탐색 트리에서 Other > ISP Redundancy 로 갑니다. |
| 5 | Apply settings to VPN traffic 을 선택합니다. |
| 6 | 왼쪽 탐색 트리에서 IPsec VPN > Link Selection 으로 갑니다. |
| 7 | Use ongoing probing 인지 확인합니다. Link redundancy mode 가 ISP Redundancy의 모드를 보여 줍니다 — Primary/Backup이면 High Availability, Load Sharing이면 Load Sharing. 이제 VPN Link Selection은 ISP Redundancy에 구성된 ISP만 probing 합니다. |
서드파티 피어와 VPN을 쓸 때
VPN 피어가 Check Point 게이트웨이가 아니라면, VPN이 실패하거나 서드파티 장비가 이미 죽은 ISP 링크로 계속 암호화 트래픽을 보낼 수 있습니다.
- 서드파티 VPN 피어가 보조(secondary) ISP 링크에서 오는 암호화 트래픽을 Check Point cluster에서 온 것으로 인식 하도록 합니다.
- ISP Redundancy 구성을 바꿔, Check Point 전용 기술을 쓰지 않도록 합니다.
- Use Probing — Link Selection이 다른 옵션을 쓰도록 합니다.
- Load Sharing, Service Based Link Selection, Route based probing 옵션은 Check Point Security Gateway / Cluster / Security Group 사이에서만 동작 합니다. 이를 쓰면 게이트웨이 / Cluster 멤버 / Security Group은 서드파티 VPN 피어에 한 링크만 써서 연결하며, 가장 긴 prefix 길이와 가장 낮은 metric을 가진 링크 가 선택됩니다.
CLI로 ISP Redundancy 제어하기
ISP Redundancy의 동작은 CLI로도 제어할 수 있습니다.
ISP 링크 상태 강제 변경
fw isp_link 명령으로 ISP 링크 상태를 Up 또는 Down으로 강제할 수 있습니다. 이는 설치·배포를 테스트하거나, 게이트웨이가 링크의 실제 상태를 제대로 인식하지 못할 때(링크는 죽었는데 게이트웨이는 살아 있다고 볼 때) 올바른 상태를 강제 하는 데 씁니다.
- Security Gateway 에서 실행할 때:
fw isp_link <SmartConsole의 ISP 링크 이름> {up | down}
- Scalable Platform Security Group 에서 실행할 때:
g_fw isp_link <SmartConsole의 ISP 링크 이름> {up | down}
- Security Management Server 에서 실행할 때(게이트웨이 객체 이름까지 지정):
fw isp_link <Security Gateway 객체 이름> <SmartConsole의 ISP 링크 이름> {up | down}
자세한 내용은 R82 CLI Reference Guide의 Security Gateway Commands > fw > fw isp_link 항목을 참고하세요.
ISP Redundancy Script
게이트웨이가 시작되거나 ISP 링크 상태가 바뀌면, 게이트웨이에서 $FWDIR/bin/cpisp_update 스크립트가 실행 됩니다. 이 스크립트는 게이트웨이의 기본 경로(default route)를 바꿉 니다.