07CoreXL — 개념과 구성CoreXL — 개념과 구성
CoreXL 은 방화벽 커널을 여러 벌 복제해 여러 CPU 코어에서 병렬로 트래픽을 검사 하는 기술입니다. 한 코어가 처리할 수 있는 양에는 한계가 있으므로, 커널을 여러 개로 나누어 각 코어가 동시에 일하게 만들면 게이트웨이 전체 성능이 코어 수에 거의 비례해 올라갑니다. 이 장에서는 CoreXL의 구조를 짚고, cpconfig로 켜고 끄거나 인스턴스 수를 바꾸는 방법, 코어 수에 따라 자동으로 정해지는 기본 구성, 그리고 CoreXL이 지원하지 않는 제약 사항 을 차례로 정리합니다. 어느 코어에 무엇을 묶을지(Affinity)와 세밀한 튜닝은 CoreXL Affinity와 성능 튜닝에서 이어집니다.
CoreXL의 구조
CoreXL을 켜면 방화벽 커널이 여러 벌 복제 됩니다. 복제된 검사 커널 하나하나가 CoreXL Firewall Instance(FWK) 로, 각각이 완전하고 독립된 검사 커널 이며 같은 인터페이스·같은 정책으로 동시에 트래픽을 처리합니다(Security Gateway 가이드에서 본 개념). 들어오는 트래픽을 받아 각 인스턴스로 골고루 분배하는 역할은 CoreXL SND(Secure Network Distributor) 가 맡습니다. 이렇게 일을 나누면 코어 수에 거의 선형으로 성능이 확장 됩니다.
CoreXL 켜고 끄기 (Enabling and Disabling)
CoreXL은 cpconfig 메뉴를 통해 켜고 끄거나 인스턴스 수를 바꿉니다. 변경은 재부팅 후에 적용 됩니다.
클러스터에 대한 중요한 주의 사항
CoreXL 구성을 바꾸는 절차
| 단계 | 작업 |
|---|---|
| 1 | Security Gateway의 명령줄에 접속합니다. 참고 — Scalable Platform(Maestro·Chassis)에서는 해당 Security Group 에 접속해야 합니다. |
| 2 | Gaia Clish 또는 Expert mode 에 로그인합니다. 참고 — Scalable Platform에서는 Gaia gClish 또는 Expert mode 를 사용해야 합니다. |
| 3 | cpconfig 를 실행합니다. |
| 4 | Check Point CoreXL 옵션의 번호를 입력합니다. |
| 5 | 아래 중 해당하는 옵션의 번호를 입력합니다. |
| 6 | 화면의 안내를 따릅니다. |
| 7 | cpconfig 메뉴를 빠져나갑니다. |
| 8 | 재부팅합니다(아래 참고). |
3단계에서 실행하는 명령:
cpconfig5단계에서 고르는 옵션:
(1) Change the number of firewall instances # 방화벽 인스턴스 수 변경
(2) Change the number of IPv6 firewall instances # IPv6 방화벽 인스턴스 수 변경
(3) Disable Check Point CoreXL # CoreXL 비활성화8단계의 재부팅 명령은 환경에 따라 다릅니다.
- Security Gateway(각 클러스터 멤버) 에서:
- Scalable Platform Security Group 에서 Gaia gClish 로:
- Scalable Platform Security Group 에서 Expert mode 로:
g_reboot -a
CoreXL 기본 구성 (Default Configuration)
CoreXL을 켜면, 기본 CoreXL Firewall 인스턴스 수는 CPU 코어 총 수를 기준으로 자동으로 정해집니다. 또한 SecureXL이 켜져 있으면 모든 인터페이스의 affinity가 자동(automatic) 으로 잡혀, 모든 인터페이스의 트래픽이 CoreXL SND를 실행하는 CPU 코어로 향 하게 됩니다. 처리 CPU 코어 할당에 대한 자세한 내용은 CoreXL Affinity와 성능 튜닝을 참고하세요.
코어 수에 따른 기본 IPv4 인스턴스·SND 수
| CPU 코어 수 | 기본 IPv4 FW 인스턴스 수 | 기본 SND 수 |
|---|---|---|
| 1 | 1 (CoreXL 비활성) | 1 (CoreXL 비활성) |
| 2 | 2 | 2 |
| 4 | 3 | 1 |
| 6 ~ 20 | CPU 코어 수 - 2 | 2 |
| 20 초과 | CPU 코어 수 - 4 (단, 최대 40개) | 4 |
몇 가지 번호 매김 규칙도 알아 두어야 합니다.
- CoreXL Firewall 인스턴스 번호는 0부터 시작합니다.
- CPU 코어 번호는, 현재 Check Point 라이선스가 해당 Security Gateway / Cluster Member / Scalable Platform Security Group에서 허용하는 가장 높은 CPU ID부터 시작해서 내려갑니다.
다음 예시의 ID(인스턴스)와 CPU(코어) 열을 보면 이 관계를 확인할 수 있습니다.
> fw ctl multik stat
ID | Active | CPU | Connections | Peak
----------------------------------------------
0 | Yes | 7 | 5 | 21
1 | Yes | 6 | 3 | 23
2 | Yes | 5 | 5 | 25
3 | Yes | 4 | 4 | 21
4 | Yes | 3 | 5 | 21
5 | Yes | 2 | 5 | 20
>
> fw6 ctl multik stat
ID | Active | CPU | Connections | Peak
----------------------------------------------
0 | Yes | 7 | 0 | 4
1 | Yes | 6 | 0 | 4
>최대 IPv4 CoreXL Firewall 인스턴스 수
| Gaia 커널 에디션 | Check Point Appliance | Open Server |
|---|---|---|
| 64-bit | 40 | 40 |
이와 관련해 다음을 기억하세요.
- R80.20·R80.20SP 부터 Gaia 커널 에디션은 64-bit 전용 입니다.
- IPv4 CoreXL Firewall 인스턴스 수와 IPv6 CoreXL Firewall 인스턴스 수의 합계는 위 표의 수치를 초과할 수 없 습니다. 이 한계 역시 Kernel Mode Firewall(KMFW) 에만 적용됩니다.
CoreXL 제약 사항 (Limitations)
CoreXL에는 다음과 같은 한계가 있습니다.
- R82 CoreXL이 지원하지 않는 것:
- Overlapping NAT(중첩 NAT)
- VPN Traditional Mode(VPN 전통 모드)
- 전역 CoreXL Firewall 인스턴스 #0(
fw_worker_0) 은 항상 모든 6in4 트래픽을 처리 합니다. 즉 6in4 트래픽은 다른 인스턴스로 분산되지 않고 0번 인스턴스가 전담합니다.
정리하면, CoreXL은 SND가 트래픽을 받아 여러 FW 인스턴스로 분배해 코어를 병렬로 활용 하며, 기본 인스턴스 수는 코어 수에 따라 자동으로 잡힙니다. 켜고 끄거나 인스턴스 수를 바꾸는 일은 클러스터에서 업그레이드에 준해 다루어야 하고, Overlapping NAT·VPN Traditional Mode 같은 제약도 있습니다. 어느 코어에 무엇을 묶을지(Affinity)와 세밀한 튜닝은 CoreXL Affinity와 성능 튜닝에서 이어집니다.