목차/07. ISP 이중화

07ISP 이중화ISP 이중화

ISP Redundancy게이트웨이를 두 개 이상의 ISP 회선으로 인터넷에 연결 해, 한 회선이 끊겨도 인터넷 연결이 유지되게 합니다. 게이트웨이가 ISP 링크들을 감시해 그때그때 가장 좋은 링크를 고릅 니다.

전제와 범위는 이렇습니다. 외부 인터페이스가 최소 2개 필요하고 최대 10개까지 지원하며(3개 이상은 Management Server·게이트웨이가 R81.10 이상이어야 함), 기본적으로 내부망에서 인터넷으로 나가는 트래픽 을 위한 기능입니다.

배선 — 권장은 인터페이스 분리

!두 ISP 링크에 전용 물리 인터페이스 두 개 *① 내부 네트워크 ② Security Gateway / Security Group ③ ISP A ④ ISP B ⑤ 인터넷*

두 ISP 링크에 각각 전용 물리 인터페이스를 주는 구성이 권장 됩니다(더 단순하기 때문). 외부 인터페이스가 하나뿐이면, 같은 인터페이스에 두 서브넷을 두고 서로 다른 next-hop 라우터(보통 스위치 경유)에 연결 하는 방식으로도 가능합니다(Gaia의 인터페이스 Alias 사용).

두 가지 모드

나가는 연결의 동작은 두 모드 중 하나로 정합니다.

Load Sharing 은 모든 링크에 부하를 분산 합니다. 새 연결을 링크에 무작위 배정하고, 링크마다 상대 부하(weight)를 줘 빠른 링크에 더 많이 흘릴 수 있으며, 한 링크가 죽으면 다른 링크가 부하를 떠맡습니다. 들어오는 연결도 게이트웨이가 DNS 응답에 두 ISP의 IP를 번갈아 줘 어느 링크로든 도달할 수 있습니다.

Primary/Backup 은 한 링크(Primary)만 쓰다가 끊기면 Backup으로 전환 합니다. Primary가 복구되면 새 연결은 다시 Primary로 가고, 기존 연결은 끝날 때까지 Backup에 남습니다. 반환 패킷이 연결을 시작한 같은 ISP 링크로 나가 므로 들어오는 연결도 이득을 봅니다.

선택 기준은 단순합니다 — 링크들이 비슷하면 Load Sharing 으로 모두 활용하고, 한 링크가 더 저렴·안정적이면 그걸 Primary로 둔 Primary/Backup 을 씁니다.

나가는·들어오는 연결의 처리

나가는 연결 은 Load Sharing이면 weight 비율대로 링크에 분산 되고, Primary/Backup이면 활성 Primary 링크를 쓰며 Hide NAT으로 출발지 주소를 나가는 인터페이스 주소로 바꿔 반환 패킷이 같은 링크로 돌아오게 합니다.

들어오는 연결 을 받으려면 각 애플리케이션 서버에 ISP마다 라우팅 가능한 공인 IP를 하나씩 주고, Static NAT으로 실제 서버 주소로 변환 해야 합니다. 핵심은 게이트웨이의 내장 미니 DNS 서버 입니다. 외부 클라이언트가 www.example.com 을 물으면(Type A DNS 쿼리), 게이트웨이가 이를 가로채 Primary/Backup이면 활성 링크의 IP만, Load Sharing이면 두 IP를 번갈아 응답합니다. 한 링크(예: ISP A)가 죽으면 그 IP는 빠지고 클라이언트는 살아 있는 링크의 IP로 해석합니다. 호스트 이름을 모르면 원래 목적지나 도메인 DNS 서버로 쿼리를 넘깁니다.

구성 절차의 큰 줄기

SmartConsole에서 게이트웨이 객체를 열어 Other > ISP Redundancy 로 갑니다. 흐름은 ISP Redundancy 지원 켜기 → 모드 선택 → ISP 링크 구성(2~10개) → 게이트웨이를 DNS 서버로 설정 → Access Control 정책 구성 → 정책 설치 입니다.

ISP 링크는 외부 토폴로지 인터페이스가 2개 이상이면 "Set initial configuration"으로 자동 잡고(Primary/Backup이면 Primary를 목록 맨 위로), 하나뿐이면 수동 으로 추가합니다(이름·인터페이스·next-hop·Load Sharing이면 weight를 합 100%가 되게 — 2개면 각 50, 3개면 각 33 …). DNS 서버 설정은 Enable DNS Proxy 를 켜고 DMZ/웹 서버를 ISP별 공인 IP로 등록한 뒤 Static NAT을 구성합니다. Access Control 정책에는 나가는 연결을 시작하는 내부 객체에 Automatic Hide NAT 을 걸고, 공개 서버에는 Static NAT 규칙을 둡니다(수동 NAT을 쓰면 자동 ARP가 안 되므로 local.arp 를 sk30197대로 설정).

VPN, 그리고 CLI 제어

ISP Redundancy 설정은 VPN Link Selection 설정을 덮어씁 니다(우선함). 덕분에 VPN 암호화 연결도 ISP 링크 장애를 넘겨 살아남 습니다. Check Point 피어와 쓸 때는 Apply settings to VPN traffic 을 켜고 Link Selection이 "Use ongoing probing"으로 ISP Redundancy 모드를 따르게 합니다. 서드파티 피어와는 Load Sharing·Service Based·Route based probing이 Check Point 장비끼리만 동작 하므로, Probing을 써서 한 링크(가장 긴 prefix·가장 낮은 metric)로 연결하게 조정합니다.

CLI로도 제어합니다. fw isp_link <링크이름> {up|down} 으로 링크 상태를 강제 할 수 있어(Scalable Platform은 g_fw isp_link, Management Server는 게이트웨이 이름까지 지정) 설치 테스트나 잘못 인식된 상태 교정에 씁니다. 게이트웨이가 켜지거나 링크 상태가 바뀌면 $FWDIR/bin/cpisp_update 스크립트가 기본 경로를 바꾸는데, 이 스크립트는 손대지 않는 것이 권장 됩니다.