목차/10. 시스템 최적화

10시스템 최적화System Optimization in Maestro

이 장은 Maestro Security Group에서 성능과 가용성을 끌어올리기 위해 취할 수 있는 최적화 작업들을 빠짐없이 정리합니다. 부하에 따라 어플라이언스를 자동으로 붙였다 떼는 Auto-Scaling, 신뢰하는 연결을 Orchestrator 하드웨어로 내려보내 가속하는 Fastforward, 로그 부하를 분산하는 전용 로깅 포트, Dual Site 절체를 다루는 Security Group 고가용성(HA), 그리고 신원 기반 접근 제어까지 차례로 다룹니다.

Maestro Auto-Scaling

Auto-Scaling이란

Maestro Auto-Scaling특정 조건이 충족되면 가용 Security Appliance(Scale Unit)를 Security Group에 자동으로 배정 하는 기능입니다. 어떤 조건에서 어플라이언스를 붙일지(또는 뗄지)는 Quantum Maestro Orchestrator 에서 Security Group별로 구성합니다.

사전 요건

Auto-Scaling을 쓰기 전에 다음 세 가지를 갖춰야 합니다.

  • Maestro Security Group 안의 Security Appliance들은 모두 같은 모델 이어야 합니다.
  • Security Group에서 SMO Image Cloning 을 켜야 합니다. Security Group의 Gaia gClish에서 다음을 실행합니다.
  set cluster configuration image auto-clone state on
  show cluster configuration image auto-clone state
  
  • Scale Unit이 User Center 에서 라이선스를 받아올 수 있도록, Security Group에 인터넷 연결 이 있어야 합니다.

제한 사항

  • Maestro Security Group에 서로 다른 어플라이언스 모델 이 섞여 있으면 Auto-Scaling 설정을 구성할 수 없습니다.
  • Security Group의 CPU 사용률이 높으면, Orchestrator가 Security Group 멤버를 "Expired(만료됨)"로 간주할 수 있습니다.

Auto-Scaling 용어

용어정의
KPIKey Performance Indicator(핵심 성능 지표).
Scale Unit"Scale Up" 정책 규칙이 최소 하나 충족되면 Security Group에 자동으로 배정 되고, 모든 "Scale Down" 규칙이 충족되면 자동으로 제거 될 수 있는 Security Appliance.
Scale Up policySecurity Group의 KPI를 기준으로 구성한 규칙 묶음. 규칙 하나라도 (지정한 연속 시간 동안) 매칭되면 같은 하드웨어의 Scale Unit이 그 Security Group에 배정 됩니다.
Scale Down policySecurity Group의 KPI를 기준으로 구성한 규칙 묶음. 규칙 하나라도 (지정한 연속 시간 동안) 매칭되면 Scale Unit이 릴리스 후보(release candidate) 로 표시됩니다.
Release Candidate현재 어떤 Security Group에 배정되어 있지만, 다른 Security Group의 "Scale Up" 규칙이 충족되면 그쪽으로 옮겨질 준비가 된 Scale Unit.

Auto-Scaling 구성

Auto-Scaling은 Orchestrator에서 Gaia Portal 또는 Gaia Clish 로 구성합니다.

Gaia Portal에서 구성

  1. Orchestrator의 Gaia Portal 에 접속합니다.
  2. 왼쪽 트리에서 Orchestrator 를 클릭합니다.
  3. 왼쪽 창의 Unassigned Gateways / assigned Gateways(Security Group에 어플라이언스가 둘 이상 배정돼 있을 때)에서 Security Appliance를 우클릭하고 Set Scale Unit 을 클릭합니다.
  4. 가운데 Topology 창에서 Security Group을 우클릭하고 Set Security Group configuration 을 클릭합니다.
  5. Auto-Scaling settings 탭을 클릭합니다.
  6. Scale up policy 규칙을 구성합니다.
    1. Add 를 클릭합니다.
    2. 각 필드에서 알맞은 값을 고릅니다.
필드선택할 수 있는 값
WhenEach Member — "Each Member" KPI 기준으로 측정하고, 규칙에 설정한 임계값을 개별 멤버 가 넘으면 새 Security Appliance를 요청합니다. / Security Group (Average) — "Security Group(평균)" KPI 기준으로 측정하고, 평균값 이 임계값을 넘으면 새 어플라이언스를 요청합니다.
With규칙이 쓸 KPI — CPU Utilization (%), Throughput (Gbps), Packets (p/s), Connections 중에서 선택.
More than임계값 설정 — CPU 사용률은 1~100, 그 밖의 지표는 1~1099511627776(1TB).
For consecutive period of지속 시간 — 1~86400초(최대 1일).
  1. OK 를 클릭합니다.
    1. Attach up to 필드에 이 Security Group에 붙일 Security Appliance 개수를 설정합니다.
  2. Scale down policy 규칙을 구성합니다.
    1. Add 를 클릭합니다.
    2. 각 필드에서 알맞은 값을 고릅니다.
필드선택할 수 있는 값
WhenSecurity Group (Average) — "Security Group(평균)" KPI 기준으로 측정하고, 평균값이 규칙의 임계값보다 작아지면 현재 점유 중인 Scale Unit을 릴리스 후보로 표시합니다(= Security Group이 그 Scale Unit을 놓아줄 수 있음).
With규칙이 쓸 KPI — CPU Utilization (%), Throughput (Gbps), Packets (p/s), Connections 중에서 선택.
Less than임계값 설정 — CPU 사용률은 1~100, 그 밖의 지표는 1~1099511627776(1TB).
For consecutive period of지속 시간 — 1~86400초(최대 1일).
  1. OK 를 클릭합니다.
    1. Detach single scale unit 필드에 이 Security Group에서 뗄 Security Appliance 개수를 설정합니다.
  2. OK 를 클릭합니다.

Gaia Clish에서 구성

  1. Orchestrator의 명령줄에 접속합니다.
  2. Gaia Clish 에 로그인합니다.
  3. Scale up 정책 규칙을 구성합니다.
   add maestro auto-scale security-group-id <Security Group ID>
   scale-up-policy when {Each-Member | Security-Group-Average}
   with {CPU | bps | pps | connections} more-than <Threshold>
   period <Duration>
   
  1. 구성한 Scale up 규칙 중 하나라도 충족될 때 이 Security Group에 붙일 Security Appliance 개수를 설정합니다.
   set maestro auto-scale security-group-id <Security Group ID>
   scale-units-to-attach <1-4>
   
  1. Scale down 정책 규칙을 구성합니다.
   add maestro auto-scale security-group id <Security Group ID>
   scale-down-policy when <Security-Group-Average> with {CPU |
   bps | pps | connections} less-than <Threshold> period
   <Duration>
   
  1. 이 Security Group에서 Auto-Scaling을 켭니다.
   set maestro auto-scale security-group-id <Security Group ID>
   state enable
   
  1. 특정 사이트의 어플라이언스를 시리얼 번호로 지정해 Scale 어플라이언스로 구성합니다.
   set maestro auto-scale site-id <Site ID> scale-unit-serial
   <Serial Number> state on
   

Gaia Clish에서 쓰는 관련 명령은 다음과 같습니다.

add maestro auto-scale
set maestro auto-scale
show maestro auto-scale
delete maestro auto-scale

Orchestrator에서 Auto-Scaling 모니터링

아래 작업은 모두 Orchestrator의 명령줄에 접속해 Gaia Clish에 로그인한 뒤 실행합니다.

  • Security Group의 Auto-Scaling 상태 보기:
  show maestro auto-scale security-group-id <Security Group ID> state
  
  • Security Group의 Scale Unit 목록 보기:
  show maestro auto-scale scale-units
  
  • Scale Up 규칙 보기:
  show maestro auto-scale security-group-id <Security Group ID> scale-up-rules
  
  • Scale Down 규칙 보기:
  show maestro auto-scale security-group-id <Security Group ID> scale-down-rules
  

현재 Security Group들과 KPI를 보려면, Gaia Clish에서는 show maestro auto-scale interactive-status 를, Expert mode에서는 mas_cli --interactive 를 실행합니다.

Security Group: 1
Site: 1
Average:
| CPU Utilization: 9%
| Pckt/s: 8
| Bytes/s: 5652
| Connections: 384
Average (w/o 1 SU): | CPU Utilization: 13%
| Pckt/s: 13
| Bytes/s: 8478
| Connections: 576
Member: 1
| CPU Utilization: 7%
| Pckt/s: 12
| Bytes/s: 8562
| Connections: 372
Member: 2
| CPU Utilization: 9%
| Pckt/s: 4
| Bytes/s: 2656
| Connections: 412
[Scale Unit]
Member: 3
| CPU Utilization: 11%
| Pckt/s: 10
| Bytes/s: 5739
| Connections: 369
[Scale Unit]
----------------------------------------------------------------

현재 Auto-Scaling 규칙을 보려면, Gaia Clish에서는 show maestro auto-scale interactive-rules 를, Expert mode에서는 mas_cli --interactive-rules 를 실행합니다.

Security Group: 1
Scale Up Rules:
ID 1: When Each member with CPU utilization exceeds 70% For
60 seconds | No Match
Scale Down Rules:
ID 1: When Security Group with CPU utilization less than 30%
For 60 seconds | Match for 16 seconds
----------------------------------------------------------------

Auto-Scaling 문제 해결

Auto-Scaling 서비스 — 문제를 풀 때는 먼저 masd 서비스가 Orchestrator와 Security Group 멤버 양쪽에서 실행 중 인지 확인합니다. 두 곳 모두에서 Expert mode로 로그인한 뒤 service masd status 를 실행하면, 정상이라면 masd is running... 이 나와야 합니다.

service masd status

Auto-Scaling 로그 파일 — Orchestrator와 Security Group 멤버에서 masd 데몬 로그를 실시간으로 살펴봅니다(각각 Expert mode).

tail -F /var/log/masd.elg

Auto-Scaling 규칙 확인 — Orchestrator에서 구성한 규칙이 제대로 적용됐는지 보려면, Expert mode에서 mas_cli --interactive-rules 로 규칙 목록을 받아 Gaia Portal/Clish에서 구성한 내용과 비교 합니다.

멤버의 KPI 보고 확인 — Security Group 멤버가 Orchestrator로 KPI를 제대로 보고하는지 보려면, Orchestrator의 Expert mode에서 mas_cli --interactive 로 KPI 상태를 확인합니다.

Maestro Fastforward

Fastforward란

Maestro Fastforward신뢰하는 연결에 대해 선택한 정책 규칙을 Quantum Maestro Orchestrator로 오프로드해, accept/drop을 하드웨어 수준에서 가속 하는 기능입니다.

주요 이점은 다음과 같습니다.

  • 낮은 지연(Low latency) — 마이크로초 미만의 지연. 음성, 트레이딩, 내부 신뢰 서버 간 통신처럼 특정 신뢰 민감 흐름 에 매우 낮은 지연을 제공합니다.
  • 처리량(Throughput) — 연결된 인터페이스 대역폭에 따른 포트 라인 레이트 처리량. 하나의 연결에 최대 200Gbps 까지 달성합니다. 서버 간 통신·백업처럼 대용량 신뢰 연결에 켤 수 있습니다.
  • 문제 해결/우회(Troubleshooting / Bypassing) — 문제 해결 과정에서 선택한 튜플을 전달(우회)합니다.

그림: Fastforward 동작 개요 (p.234)

Fastforward의 동작 원리

정책(Policy) — 관리자는 오프로드하려는 규칙의 이름에 특정 접두사(prefix, 변경 가능) 를 붙여 표시합니다. 정책 설치 시, 해당 규칙들은 ACL(Access Control List) 로 변환되어 Orchestrator로 오프로드되고 하드웨어 수준에서 적용됩니다.

라우팅(Routing) — Layer 3(라우팅) 수준에서 신뢰 연결을 가속하려면, Orchestrator가 Security Gateway와 동일한 토폴로지 시각 을 가져야 올바른 출력 인터페이스와 next hop으로 패킷을 보낼 수 있습니다. 따라서 이 기능은 Security Gateway/Virtual System의 라우팅 토폴로지를 복제하며, 이 로직은 하드웨어 수준에서 일어나 매우 견고합니다.

Fastforward FAQ

지원되는 배포 유형은?

  • Single Site 또는 Dual Site.
  • 사이트당 Orchestrator 한 대 또는 두 대.
  • Gateway 모드 또는 VSX 모드(VSX는 Virtual System마다 구성).

Fastforward로 가속된 연결도 방화벽 로깅이 되나?

  • TCP 연결 — Action이 "Accept"인 규칙은 Orchestrator가 TCP SYN 패킷을 Security Group으로 보내며, Security Group이 그에 해당하는 로그를 생성 합니다.
  • UDP 연결 — Security Group이 로그를 생성하지 않 습니다.

Client→Server, Server→Client(리턴 트래픽) 규칙을 따로 추가해야 하나?

아니요. stateful inspection처럼 규칙을 만들면 됩니다. ACL 변환 메커니즘이 C2S/S2C 규칙을 자동으로 추가 합니다.

방화벽이 Fastforward 가속 트래픽을 검사하나?

(Accept 규칙의) SYN / SYN-ACK 패킷만 검사합니다. 신뢰 연결을 Orchestrator 하드웨어 수준으로 완전히 오프로드하는 것이 이 기능의 맞교환이며, 그 덕에 Security Group 멤버에 영향 없이 매우 낮은 지연과 높은 처리량을 얻습니다.

Fastforward 토폴로지

토폴로지설명
Single Site, One Orchestrator단일 사이트에 Orchestrator 한 대 — 물리 연결에 제한이 없으며, 인터페이스는 일반 또는 bond 인터페이스 모두 가능합니다.
Single Site, Two Orchestrators단일 사이트에 Orchestrator 두 대 — "cross-Orchestrator" bond 인터페이스만 허용 됩니다(각 bond가 Orchestrator마다 종속 인터페이스를 가짐). "특별 고려 사항" 참고.
Dual Site사이트마다 "cross-Orchestrator" bond 인터페이스만 허용 됩니다. 각 bond는 사이트의 각 Orchestrator에 종속 인터페이스를 둡니다. Dual Site에서는 활성 사이트만 ACL을 적용 하며, 사이트 절체가 일어나면 새 활성 사이트가 활성화됩니다.
VSXVSX 모드에서는 기능을 켠 각 Virtual System 에서 동작합니다.

Fastforward 구성

이 기능은 기본적으로 꺼져 있습니다. Security Group마다 구성하며, VSX 모드에서는 Virtual System마다 구성합니다.

Fastforward 켜기

1/2단계 — Security Group에서 구성

  1. Security Group의 명령줄에 접속합니다.
  2. Gaia gClish 에 로그인합니다.
  3. VSX 모드라면 해당 Virtual System 컨텍스트로 이동합니다.
   set virtual-system <VSID>
   
  1. Access Control 규칙에 붙일 접두사를 구성합니다.
   set maestro fastforward rulebase-prefix enable prefix <Name Prefix>
   

예를 들어 접두사를 ff_rule 로 설정했다면, 정책 규칙 이름은 ff_rule_1, ff_rule_2 처럼 짓습니다.

   [Global] MyChassis-01> set maestro fastforward rulebase-prefix enable prefix ff_rule
   1_01:
   Fastforward prefix status: enabled. Prefix is "ff_rule"
   Please install policy from SmartConsole for the change to take effect.
   2_01:
   Fastforward prefix status: enabled. Prefix is "ff_rule"
   Please install policy from SmartConsole for the change to take effect.
   
  1. Fastforward 기능을 켭니다.
   set maestro fastforward state on
   

출력 예:

   Routing configuration validation finished successfully.
   Fastforward status: enabled
   Please install policy from SmartConsole for the change to take effect.
   2_01:
   Routing configuration validation finished successfully.
   Fastforward status: enabled
   Please install policy from SmartConsole for the change to take effect.
   

2/2단계 — SmartConsole에서 구성

  1. 이 Security Group/Virtual System을 관리하는 Management Server에 SmartConsole 로 접속합니다.
  2. 앞서 Security Group에 설정한 접두사를 붙여 해당 Access Control 규칙을 구성합니다.

예: 이름 ff_rule_1, Source Backup_Server_1, Destination Backup_Server_2, Services nfsd-tcp, Action Accept, Track Log, Install On Policy Targets.

Fastforward용 Access Control 규칙에 대한 추가 주의 사항은 다음과 같습니다.

Action "Accept" 규칙에 대한 주의 사항

규칙 열주의 사항
SourceHost, Network, Group, Address Range 유형의 객체만 하나 이상 추가할 수 있습니다. "Any"는 쓸 수 없고 명시적 객체 를 넣어야 합니다. Security Group은 그 명시적 객체의 IP에 Data 인터페이스(관리 인터페이스가 아님) 로 접속할 수 있어야 합니다. Security Group의 Data 인터페이스에 직접 연결된 네트워크에 속한 IP 를 가진 객체는 쓸 수 없습니다.
DestinationHost, Network, Group, Address Range 유형의 객체만 하나 이상 추가할 수 있습니다. "Any"는 쓸 수 없고 명시적 객체를 넣어야 합니다. Security Group은 그 IP에 Data 인터페이스로 접속할 수 있어야 하고, Data 인터페이스에 직접 연결된 네트워크의 IP 객체는 쓸 수 없습니다.
Services & ApplicationsTCP 서비스 객체(single port / range of ports / source port), UDP 서비스 객체(같은 설정), 그리고 IP 기반 프로토콜의 Other Service 객체를 하나 이상 추가할 수 있습니다.

Action "Drop" 규칙에 대한 주의 사항

규칙 열주의 사항
SourceHost, Network, Group, Address Range 유형의 객체만 추가할 수 있습니다. Drop 규칙에서는 "Any" 사용이 지원 되어 명시적 객체가 꼭 필요하지는 않습니다. 단, Data 인터페이스에 직접 연결된 네트워크의 IP 객체는 쓸 수 없습니다.
DestinationHost, Network, Group, Address Range 유형의 객체만 추가할 수 있습니다. "Any" 사용이 지원됩니다. Data 인터페이스에 직접 연결된 네트워크의 IP 객체는 쓸 수 없습니다.
Services & ApplicationsTCP(single port / range / source port), UDP(같은 설정), IP 기반 프로토콜의 Other Service 객체를 하나 이상 추가할 수 있습니다.

Fastforward 끄기

1/2단계 — Security Group에서 구성

  1. Security Group의 명령줄에 접속합니다.
  2. Gaia gClish 에 로그인합니다.
  3. VSX 모드라면 해당 Virtual System 컨텍스트로 이동합니다 — set virtual-system <VSID>
  4. Fastforward를 끕니다.
   set maestro fastforward state off
   

이 작업이 실패하면 강제로 끌 수도 있습니다("Fastforward 문제 해결" 참고). 출력 예:

   clearing ACLs from all relevant Orchestrators
   Fastforward status: disabled
   2_01:
   clearing ACLs from all relevant Orchestrators
   Fastforward status: disabled
   

2/2단계 — SmartConsole에서 구성

  1. 해당 Management Server에 SmartConsole로 접속합니다.
  2. 앞서 설정한 접두사가 붙은 Access Control 규칙을 비활성화합니다 — No. 열에서 규칙을 우클릭하고 Disable 클릭.
  3. Security Gateway 객체/Virtual System 객체에 Access Control 정책을 설치합니다.

Fastforward 모니터링

Security Group은 평소처럼 TCP 연결을 로깅하므로 SmartConsole/SmartView에서 로그를 볼 수 있고, Orchestrator의 tor_util fastforward 명령으로 추가 정보를 얻습니다.

Fastforward 규칙의 hit 보기 — Orchestrator에 접속해 Expert mode로 로그인한 뒤 실행합니다.

tor_util fastforward show rules <Security Group ID> {0 | <Virtual System ID>}

Gateway 모드에서 Security Group 1의 출력 예:

[Expert@MHO1:0]# tor_util fastforward show rules 1 0
Fastforward Rule Hits:
======================
| Counter ID | Hit Count | Port       | Direction | Description
| 66240512   | 472065    | FF_SG1_VS0 | inbound   | Rule 1 C2S UDP, 1.1.1.0/24:ANY -> 2.2.2.0/24:3000, ACCEPT
| 66256896   | 23740853  | FF_SG1_VS0 | inbound   | Rule 1 S2C UDP, 2.2.2.0/24:3000 -> 1.1.1.0/24:ANY, ACCEPT
| 66273280   | 102381    | FF_SG1_VS0 | inbound   | Rule 2 C2S UDP, 1.1.1.0/24:ANY -> 2.2.2.0/24:4000, DROP
| 66289664   | 589884    | FF_SG1_VS0 | inbound   | Rule 3 C2S TCP, 10.10.10.0/24:ANY -> 20.20.20.0/24:22, ACCEPT
| 66306048   | 968405    | FF_SG1_VS0 | inbound   | Rule 3 S2C TCP, 20.20.20.0/24:22 -> 10.10.10.0/24:ANY, ACCEPT
| 66322432   | 0         | FF_SG1_VS0 | inbound   | Rule 4 C2S UDP, 10.10.10.0/24:ANY -> 20.20.20.0/24:445, ACCEPT
| 66338816   | 0         | FF_SG1_VS0 | inbound   | Rule 4 S2C UDP, 20.20.20.0/24:445 -> 10.10.10.0/24:ANY, ACCEPT
| 66371584   | 0         | FF_SG1_VS0 | inbound   | Rule 5 C2S ip proto ANY, 9.9.9.9/32:ANY -> 10.10.10.10/32:ANY, ACCEPT
| 66027520   | 0         | FF_SG1_VS0 | inbound   | Rule 5 S2C ip proto ANY, 10.10.10.10/32:ANY -> 9.9.9.9/32:ANY, ACCEPT

현재 구성 상태 보기 — Orchestrator의 Expert mode에서 실행합니다.

tor_util fastforward show status <Security Group ID> {0 | <Virtual System ID>} [verbose]

관리자를 위한 Fastforward 고려 사항

작업정상 흐름추가 흐름
정책 설치Management Server가 정책을 Security Group으로 전달합니다.Management Server가 Name 열에 접두사가 든 규칙을 stateless ACL로 변환하고, Security Group이 이 ACL을 모든 Orchestrator로 전달합니다. 정책에 변경이 없으면 이 단계를 건너뜁니다.
토폴로지 수정(물리 인터페이스/경로/bond 인터페이스)관리자가 인터페이스나 경로를 추가·수정·삭제합니다.정책 설치 때마다 Security Group이 네트워킹 토폴로지(인터페이스, 이웃, 정적 경로)를 모든 Orchestrator로 전달합니다. 토폴로지에 변경이 없으면 건너뜁니다. Gateway 모드에서는 Security Group의 Gaia gClish에서, VSX 모드에서는 Gaia Portal/SmartConsole에서(bond 인터페이스 제외) 변경합니다. 끝나면 Gateway 모드는 인터페이스 토폴로지를 fetch하고 정책을 설치, VSX 모드는 정책을 설치해야 합니다. 이로써 방화벽 토폴로지·Anti-Spoofing 등 적용이 변경을 인지합니다.

Fastforward의 라우팅 메커니즘

정책 설치 동안 Security Group은 다음 네트워킹 정보로 Orchestrator를 갱신합니다.

  • 인터페이스(물리 인터페이스, VLAN, bond 인터페이스)
  • 이웃 테이블(ARP 테이블)
  • 라우팅 테이블

Orchestrator는 이 정보로 자신의 하드웨어 안에 토폴로지를 구성 합니다. Orchestrator가 둘이면 각자 자신에게 있는 인터페이스를 기준으로 자기 토폴로지를 만듭니다. 예컨대 종속 인터페이스가 eth1-01, eth2-01bond1 이 토폴로지에 있다면, Orchestrator #1은 eth1-01 을, Orchestrator #2는 eth2-01 을 자기 토폴로지에 둡니다. 각 Orchestrator는 로컬에서 가속하며 Orchestrator 간 전달이 없기 때문입니다.

가속 대상 Access Control 규칙에 패킷이 매칭되면, 라우팅 메커니즘으로 넘어가 라우팅 결정을 내리고, 그 결정에 따라 패킷을 내보낼 출력 인터페이스를 찾습니다. 라우팅 토폴로지를 보려면 Orchestrator의 Expert mode에서 실행합니다.

tor_util fastforward show status <Security Group ID> {0 | <Virtual System ID>} verbose

Fastforward의 정책 메커니즘

가속할 신뢰 흐름의 정책 규칙은 규칙 이름의 고유 접두사 로 정의합니다. 정책 설치 동안 Management Server가 이 규칙들을 stateless ACL로 변환해 Security Group으로 전달하고, Security Group이 다시 Orchestrator로 전달해 적용합니다.

가속 연결은 방화벽 보안 기능을 우회해 높은 처리량과 낮은 지연을 얻으므로 반드시 신뢰할 수 있는 연결 이어야 합니다.

  • UDP 규칙 — Orchestrator에서 완전히 가속 됩니다.
  • TCP 규칙 — Accept 규칙은 첫 매칭에서 주로 로깅 목적으로 SYN·SYN-ACK 패킷을 Security Group으로 보내고, 그 이후 나머지 패킷은 Orchestrator에서 가속합니다.

이 가속은 SecureXL처럼 연결/세션마다가 아니라 오프로드된 ACL(규칙)마다 적용되는 stateless 가속 입니다. 오프로드된 규칙을 보려면 Expert mode에서 tor_util fastforward show status <Security Group ID> {0 | <Virtual System ID>} 를 실행합니다(출력은 "Fastforward 모니터링"의 예와 같은 형식).

SMO의 정책 설치 흐름

  1. SMO가 정책을 받아 정책 규칙을 stateless ACL로 변환합니다.
  2. SMO가 규칙 내용을 기반으로 고유 정책 시그니처 를 계산합니다.

SMO의 라우팅 처리 — (1) "Check": 새 라우팅 토폴로지 변경이 있는지 확인, (2) "Apply": 변경을 Orchestrator에 적용.

정책 처리

  1. Check — Orchestrator가 같은 정책 시그니처를 이미 설치했는지 확인합니다.
  2. Upload and Prepare — 아직 적용 전이면 ACL을 Orchestrator로 업로드해 준비시킵니다.
  3. Apply — 정책 ACL을 Orchestrator에 적용합니다.
  4. Activate — 사이트 상태에 따라 Fastforward 동작을 활성/비활성화합니다(활성 사이트는 켜고, standby 사이트는 끔).

패킷 매칭

  1. 패킷이 Orchestrator의 업링크 포트로 들어옵니다(예: eth1-05, 포트 5).
  2. (활성 사이트에서) Fastforward가 활성화돼 있으면, 패킷은 먼저 자신의 ACL 정책에 대해 매칭됩니다.
  3. accept되면 Orchestrator 라우팅 토폴로지로 넘어가 라우팅 결정을 거쳐 밖으로 라우팅됩니다.
  4. 정책 ACL에 매칭이 없으면, 패킷은 평소의 분배 과정 을 거쳐 Security Group 멤버로 향합니다.

매칭과 무관하게 일부 패킷은 항상 Security Group으로 보냅니다 — (Accept 규칙의) TCP SYN·SYN-ACK 패킷 과 (사용자 정의 서비스 규칙의) 단편화(fragmented) 패킷 입니다.

Fastforward 특별 고려 사항

같은 사이트에 Orchestrator가 여러 대일 때

Cross-bond 요건 — 각 Orchestrator는 자기만의 가상 라우팅 토폴로지를 만들고 Orchestrator 간 전달이 없으므로, 인터페이스를 반드시 cross-Orchestrator bond 인터페이스 로 구성해야 합니다. 즉 각 bond가 Orchestrator마다 종속 인터페이스를 가져야 합니다.

bond 종속 인터페이스
좋은 예Bond1 — eth1-05, eth2-05 / Bond2 — eth1-06, eth2-06
나쁜 예Bond1 — eth1-05, eth1-06 / Bond2 — eth2-05, eth2-06

종속 인터페이스 모니터링 — 한쪽 Orchestrator만 종속 인터페이스의 링크를 잃으면, 한쪽 Orchestrator와 Security Group은 완전한 토폴로지를 갖지만 다른 Orchestrator는 종속 인터페이스를 잃어 로컬 가속을 못 하게 되어 라우팅이 일관되지 않게 됩니다. 이때 두 Orchestrator는 임시 bypass 상태 로 들어가 트래픽을 Security Group으로 보내고, 링크가 "up"으로 돌아오면 임시 bypass에서 빠져나옵니다.

토폴로지 불일치(Topology inconsistency) — 같은 사이트에 Orchestrator가 여러 대인 배포에서 일어날 수 있습니다. 각 Orchestrator가 로컬에서 가속하므로 모든 인터페이스를 cross-Orchestrator bond로 구성 해야 각 Orchestrator가 전체 토폴로지를 보고 내부적으로 가속을 완성할 수 있습니다. 한쪽 Orchestrator에서만 bond 링크가 실패하면 트래픽 손실이나 잘못된 라우팅이 생길 수 있고, 이때 현재 사이트의 Orchestrator들은 internal bypass 라는 특수 모드로 들어갑니다. 토폴로지가 다시 일관되면 internal bypass에서 나와 마지막 원하던 상태(active/inactive)로 돌아갑니다.

예 — Orchestrator 두 대와 bond 두 개(Bond1 외부, Bond2 내부)인 배포로, 각 bond는 Orchestrator마다 두 개씩 총 네 개의 종속 인터페이스를 가집니다.

  • bond1: eth1-05, eth1-06, eth2-05, eth2-06
  • bond2: eth1-07, eth1-07, eth2-08, eth2-08

bond1이 완전히 실패하면 토폴로지는 일관성을 유지합니다. 하지만 bond1에서 eth2-05, eth2-06 만 실패하면 Orchestrator2는 bond1 토폴로지가 불일치하고, Orchestrator1과 Security Group은 여전히 일관됩니다. 이 경우 Orchestrator들은 불일치를 감지해 internal_bypass 모드로 들어가고, 불일치가 해소될 때까지 모든 트래픽이 Security Group으로 흐릅니다.

Dual Site

Fastforward는 활성 사이트에서만 트래픽을 가속 하고 standby 사이트는 비활성 상태입니다. 사이트 절체가 일어나면 새 SMO가 Orchestrator들을 새 상태로 갱신해 각각 활성/비활성화합니다.

다운링크 포트 모니터링

Fastforward는 각 Orchestrator에 연결된 다운링크 포트의 링크 상태를 모니터링합니다. 한 Orchestrator의 모든 다운링크 포트가 실패하면 기본적으로 그 Orchestrator에서 bypass 모드로 들어가, Security Group에 멤버가 없을 때 트래픽이 전달되지 않게 합니다.

Bond 인터페이스 지원

한 Orchestrator에 여러 bond 종속 인터페이스가 있으면(예: bond1에 eth1-01, eth1-02), Orchestrator는 트래픽을 보낼 기본(primary) 종속 인터페이스 를 고릅니다. bond 인터페이스가 Orchestrator가 아니라 Security Group 멤버에만 구성되기 때문입니다. 이를 보완하는 방식은 다음과 같습니다.

  • Ingress(수신) 트래픽 — bond 종속 인터페이스로 들어오는 트래픽은 평소처럼 Fastforward가 처리합니다.
  • Egress(송신) 트래픽 — bond 인터페이스로 라우팅돼 나가는 트래픽은 기본 종속 인터페이스 로 내보냅니다. 기본 종속 인터페이스는 링크가 "up"이면서 ID가 가장 낮은 인터페이스입니다.

Fastforward의 알려진 제한 사항

일반(General)

ID설명
PMTR-76262서비스가 포함된 규칙에서는 단편(fragment)이 Security Gateway로 전달 됩니다.
PMTR-76274FTP, SIP 등 복합 연결은 데이터 연결을 동적으로 열지 못합니다. 두 가지 방법이 있습니다 — (1) 제어 연결에 전용 서비스를 쓰면(예: FTP 21, VoIP SIP 5060) Security Gateway가 데이터 연결을 자동으로 엽니다. (2) 제어 연결과 데이터 연결 범위(예: UDP 포트 범위)를 수동으로 허용합니다.
PMTR-108476Orchestrator MHO-175는 ACL 규칙 최대 10,000개 를 지원합니다. 정책이 그보다 많은 ACL로 변환되면 정책 설치 중 Fastforward가 멈출 수 있습니다. 단기 우회책(Orchestrator)은 아래 절차이고, 장기 우회책(Management Server)은 특정 규칙(예: Host)을 줄이고 일반 규칙(예: Network)을 늘리도록 Access Control 정책을 재구성하는 것입니다.

PMTR-108476 단기 우회책 절차:

  1. Expert mode에서 현재 ACL 규칙 수를 확인합니다 — tor_util fastforward show status all all
  2. Gaia Clish에서 Fastforward를 멈춥니다 — set maestro fastforward state off
  3. Gaia Clish에서 Fastforward를 다시 시작합니다 — set maestro fastforward state on

Layer 3

ID설명
PMTR-76277Dynamic Routing(동적 라우팅) 미지원.
PMTR-76258Fastforward 가속 흐름에 IPv6 미지원.
PMTR-76261Multicast 트래픽에 Fastforward 규칙 구성 불가.
PMTR-86316Policy Based Routing(PBR) 미지원.
PMTR-86565가속 흐름에 VPN 암·복호화 미지원.
PMTR-76260가속 흐름에 NAT 미지원.
PMTR-76271가속 흐름에 Anti-Spoofing 미적용.

Security Group

ID설명
PMTR-76273(Fastforward 가속 연결에서) Security Group은 TCP 연결에 대해서만 로그 를 생성합니다.
PMTR-86318SmartConsole의 규칙 Hit Count에는 Fastforward 가속이 반영되지 않습니다.
PMTR-76267기능을 끄거나 우회하면 Fastforward 가속 TCP 연결의 트래픽이 드롭될 수 있습니다.

Topology

ID설명
PMTR-76268관리 인터페이스를 향한 Fastforward 가속 미지원.
PMTR-76263직접 연결된 서브넷에 대한 가속 미지원.
PMTR-76270사이트마다 Orchestrator 두 대인 구성에서는 배포 인터페이스를 각 Orchestrator에 종속 인터페이스를 둔 bond로 구성해야 합니다.
PMTR-76272bond 인터페이스로 가속할 때, 송신 트래픽은 (Orchestrator마다) 종속 인터페이스 하나로만 나갑니다.

Layer 2

ID설명
PMTR-76275Bridge Mode 미지원.
PMTR-76259Fastforward 가속 트래픽의 출발지 MAC 주소가 Security Group 인터페이스의 출발지 MAC 주소와 다릅니다.
PMTR-76278"Same VMAC" 기능 미지원.

Fastforward 문제 해결

트래픽 흐름 추적 — Orchestrator에서 규칙의 hit count가 증가하는지 확인합니다. TCP 연결은 tcpdump 명령으로 트래픽을 캡처하거나 SmartConsole 로그를 살핍니다.

즉석에서 우회(bypass)·재개하기 — 문제 해결의 일환으로 Fastforward를 끄지 않고 우회 할 수 있습니다. 우회하면 트래픽이 Fastforward 오프로드 규칙 매칭을 건너뛰고 해당 Security Group으로 갑니다.

  1. Security Group의 명령줄에 접속해 Expert mode로 로그인합니다.
  2. 해당 Orchestrator의 명령줄에 접속합니다.
   member {ssm1 | ssm2}
   
     tor_util fastforward policy operation_mode <Security Group ID> {0 | <Virtual System ID>} bypass
     
     tor_util fastforward policy operation_mode <Security Group ID> {0 | <Virtual System ID>} skip_bypass
     

출력 예:

[Expert@MHO1:0]# tor_util fastforward policy operation_mode 1 0 bypass
operation mode was set successfully
[Expert@MHO1:0]# tor_util fastforward policy operation_mode 1 0 skip_bypass
operation mode was set successfully
It is required to install policy in order for the change to take effect.

정책 실패 문제 해결 — 다음 파일들을 살핍니다.

SMO Security Group 멤버에서:

유형파일
Log/var/log/acl_cli.log
Log/var/log/policyparser.log

Orchestrator에서:

유형파일내용비고
Log/var/log/fastforward.log로깅 정보
Configuration/etc/mlx_routing.json라우팅 토폴로지 정보이 파일을 편집하면 안 됩니다.
Configuration/etc/mlx_conf.jsonFastforward 정책 정보이 파일을 편집하면 안 됩니다.

강제로 Fastforward 끄기 — 끄기 작업이 실패하면 강제로 끌 수 있습니다.

  1. Security Group의 명령줄에 접속해 Expert mode로 로그인한 뒤 실행합니다.
   g_all "/usr/scripts/acl_cli/acl_cli fastforward disable --force"
   
   orchd restart
   

Maestro에서 전용 로깅 포트 구성

Security Group의 각 멤버에 있는 로깅 메커니즘은 이 Security Group에 배정된 Orchestrator 관리 포트 를 통해 로그를 전용 Log Server로 직접 보냅니다. 그런데 멤버들이 많은 로그를 생성하면 Orchestrator 관리 포트에 높은 부하 가 걸릴 수 있습니다. 이를 줄이려면 (1) Security Group에 로깅용 management 유형의 전용 Orchestrator 포트를 배정하고, (2) Security Group이 전용 Log Server로 로그를 보내도록 구성합니다.

토폴로지:

[Management Server](some interface) <===> (management port 1 on Quantum Maestro Orchestrator)[Security Group]
[Management Server](some interface) <===> (interface 1) [Log Server]
(interface 2) <===> (management port 2 on Quantum Maestro Orchestrator)[Security Group]

절차:

단계지침
1물리 인터페이스 두 개를 가진 전용 Log Server를 설치 합니다(해당 Installation and Upgrade Guide의 "Installing a Dedicated Log Server or SmartEvent Server" 장 참고). 한 인터페이스는 Management Server에, 다른 인터페이스는 Orchestrator의 사용 가능한 management 포트에 직접 연결합니다. 중요 — Management Server에 연결되는 같은 포트는 쓰지 마세요. SmartConsole에서 이 Log Server를 나타내는 객체를 만듭니다.
2Orchestrator에서 management 유형의 전용 포트를 Security Group에 배정하고 변경을 적용합니다.
3Security Group의 Gaia OS에서 Gaia gClish로 전용 management 포트를 구성합니다(아래 구문·예 참고).
4SmartConsole에서 Security Group 객체가 전용 Log Server로 로그를 보내도록 구성합니다(해당 Logging and Monitoring Administration Guide의 "Configuring the Security Gateways for Logging" 참고).

3단계 구문:

[Expert@HostName-ch0x-0x:0]# gclish
[Global] HostName-ch01-01> set interface ethX-MgmtY ipv4-address <IPv4 Address> mask-length <Mask Length>

예:

[Global] HostName-ch01-01 > set interface eth1-Mgmt2 ipv4-address 2.2.2.10 mask-length 24

Maestro에서 Security Group 고가용성(HA) 구성

Security Group 가중치(고가용성 계수) 설정

Security Group 멤버의 각 하드웨어 구성 요소에는 Security Group 전체 건강 상태에 대한 상대적 중요도 를 정하는 품질 가중치(quality weight factor)가 있습니다. 예컨대 포트는 다른 구성 요소보다 중요해 보통 더 높은 가중치를 받습니다.

멤버의 등급(grade)은 모든 구성 요소 가중치 값의 합이며, Dual Site 환경에서는 등급이 더 높은 Security Group이 Active 가 되어 트래픽을 처리합니다. 각 구성 요소의 등급은 다음 공식으로 계산합니다.

(Unit Weight) x (Number of components in the state "UP")

각 구성 요소의 가중치를 보려면 Security Group의 Gaia gClish에서 asg stat -v 를 실행합니다.

하드웨어 구성 요소의 가중치는 set cluster configuration high-availability factors 명령으로 구성합니다. Security Group의 Gaia gClish 구문은 다음과 같습니다.

set cluster configuration high-availability factors member <Security Group Factor>
set cluster configuration high-availability factor {other <Other Port Factor> | standard <Standard Port Factor> | mgmt <Management Port Factor> | bond <Bond Port Factor>}

자세한 내용은 명령줄 레퍼런스의 show cluster configuration high-availability, set cluster configuration high-availability 항목을 참고하세요.

파라미터설명
<Security Group Factor>Security Group 멤버의 가중치 계수. 유효 범위: 0~1000의 정수.
<Other Port Factor>고등급(high grade) 포트 계수. 유효 범위: 0~1000의 정수.
<Standard Port Factor>표준 등급 포트 계수. 유효 범위: 0~1000의 정수.
<Management Port Factor>관리 포트 계수. 유효 범위: 0~1000의 정수.
<Bond Port Factor>bond 인터페이스 계수. 유효 범위: 0~1000의 정수.

예:

[Global] HostName-ch01-01 > set cluster configuration high-availability factors sgm 100
[Global] HostName-ch01-01 > set cluster configuration high-availability factors port other 70
[Global] HostName-ch01-01 > set cluster configuration high-availability factors port standard 50

품질 등급 차이(Differential) 설정

set cluster configuration high-availability failover 명령으로 절체(failover)를 일으키는 최소 품질 등급 차이 를 구성합니다. Security Group의 Gaia gClish 구문은 다음과 같습니다.

set cluster configuration high-availability failover <Trigger>
파라미터설명
<Trigger>절체를 일으키는 Security Group 품질 등급의 최소 차이. 유효 값: 1~1000.

Maestro에서 신원 기반 접근 제어·Threat Prevention 구성

Maestro에서 신원 기반 접근 제어(Identity Based Access Control)와 Threat Prevention 을 구성하는 설계 지침은 sk175587 을 참고하세요.