플로우 분배 및 패킷 순서 지정
이 주제는 SRX5000 라인 디바이스의 부하 분산 및 패킷 순서에 대해 설명합니다.
SRX5000 라인 디바이스의 부하 분산 이해
SRX5800, SRX5600 및 SRX5400 디바이스에서 지원되는 부하 분산 알고리즘은 세션 용량과 처리 능력을 기반으로 조정됩니다. (실제 플랫폼 지원은 설치 시 Junos OS 릴리스에 따라 다릅니다.)
해시 기반 세션 배포는 해시 테이블을 사용합니다. SPU 세션 가중치 테이블은 세션 배포 해시 테이블의 각 해시 인덱스에 SPU ID를 할당하는 데 사용됩니다. 이러한 방식으로 해시 기반 배포를 사용하여 각 SPU에서 생성된 세션 수는 SPU 세션 가중치 테이블에서 SPU의 가중치에 비례합니다. 또한 각 NPU는 NPU 세션과 일치하지 않는 패킷을 전달하기 위해 SPU를 선택하는 데 사용하는 동일한 SPU 세션 가중치 테이블과 세션 배포 해시 테이블을 유지합니다.
SPU 실패 시 라우팅 엔진은 세션 배포를 위한 해시 테이블 일관성을 유지하기 위해 IOC와 NPC를 포함한 데이터 플레인의 모든 카드를 재설정합니다.
해시 기반 세션 배포에서 가중치는 세션 용량을 기반으로 합니다. 높은 세션 용량이 필요한 경우 해시 세션 배포 모드를 권장합니다.
SRX5000 라인 디바이스의 부하 분배는 항상 해시 기반입니다.
SPC를 삽입 및 제거하면 삽입 후 섀시가 재부팅되어야 하므로 중심점 초기화 시간에 SPU 세션 가중치 테이블이 다시 계산됩니다.
중앙 지점 아키텍처 개선은 트래픽 관리를 SPU로 오프로드하여 데이터 패킷이 중앙 지점을 통과하는 것을 방지합니다. 중앙 지점의 세션 제한이 제거됨에 따라 시스템 세션 용량이 확장됩니다.
SPU ID 계산
SRX3K-SPC-1-10-40, SRX5K-SPC-2-10-40 또는 SRX5K-SPC3 SPC(Services Processing Card)가 장착된 디바이스의 SPU ID는 다음과 같이 계산됩니다.
SPU ID = (FPC ID X 4) + PIC ID
SRX5K-SPC-2-10-40 및 SRX5K-SPC3은 카드당 2개의 PIC, 카드당 4개의 PIC(FPC) 및 카드당 2개의 PIC를 각각 포함합니다. 예를 들어, 디바이스에 슬롯 1(FPC ID 0)과 슬롯 2(FPC ID 1)에 2개의 카드가 포함되어 있는 경우 예상 SPU ID는 다음과 같습니다.
SPC1의 경우: (0, 1) 및 (4, 5), 2개의 카드에 총 4개의 SPU.
SPC2의 경우: (0, 1, 2, 3) 및 (4, 5, 6, 7), 2개의 카드에 총 8개의 SPU.
SPC3의 경우: (0, 1) 및 (4, 5), 2개의 카드에 총 4개의 SPU가 있습니다.
FPC1(두 번째 카드) 및 PIC1(카드의 두 번째 PIC)에 대해 SPU ID는 다음과 같이 계산됩니다.
SPU ID = (FPC ID X 4) + PIC ID
= (1 X 4) + 1
= 4 + 1
= 5
CLI 및 SNMP에 대한 SPU ID를 참조할 때 이 규칙을 사용합니다.
SRX5K-MPC, SRX5K-MPC3-40G10G(IOC3) 및 SRX5K-MPC3-100G10G(IOC3)에서 해시 기반 포워딩
이러한 SRX 시리즈 방화벽에서 패킷은 수신에서 송신 처리로 진행됨에 따라 다양한 구성 요소와 관련된 일련의 이벤트를 거칩니다. 데이터 경로 패킷 포워딩 기능을 사용하면 SRX 5000 디바이스 제품군을 통해 I/O 트래픽을 신속하게 전달할 수 있습니다.
SRX5K-MPC, SRX5K-MPC3-40G10G(IOC3) 및 SRX5K-MPC3-100G10G(IOC3)는 SRX5400, SRX5600 및 SRX5800 디바이스에서 지원되는 인터페이스 카드입니다. MPC(Modular Port Concentrator)는 해시 기반 포워딩 방법을 사용하여 SPU(Services Processing Units)에 대한 로드 밸런싱 서비스를 제공합니다.
해시 기반 포워딩에서 MPC는 패킷을 중앙 지점 대신 선택된 SPU(DCP)로 포워딩할 수 있습니다. 이 접근 방식은 세션 확장을 향상시키고 중앙 지점의 과부하를 방지합니다.
해시 값 계산에는 다음 단계가 포함됩니다.
IPv4 패킷의 경우, 해시 기반 포워딩 모듈은 다른 레이어 4 프로토콜 유형에 따라 레이어 3 및 레이어 4 정보를 기반으로 해시 값을 생성합니다.
스트림 제어 전송 프로토콜(SCTP), TCP, UDP, 인증 헤더(AH), 에지 서비스 프로바이더(ESP) 및 인터넷 제어 메시지 프로토콜(ICMP) 프로토콜의 경우 해시 모듈은 레이어 4 정보를 활용하여 해시 값을 생성합니다. 다른 프로토콜의 경우, 해시 생성에는 레이어 3 정보만 사용됩니다.
IPv4 단편 패킷의 경우, 해시 값은 레이어 3 정보만을 사용하여 계산됩니다. 이는 패킷의 첫 번째 부분에도 적용됩니다.
비 IP 패킷의 경우, 해시 기반 포워딩 모듈은 레이어 2 정보를 사용하여 해시 값을 계산합니다.
패킷의 레이어 2, 레이어 3 또는 레이어 4 정보에 따라 해시 값이 계산되면 세션 배포 해시 테이블의 각 해시 인덱스에 SPU ID가 할당됩니다.
SRX5K-MPC(IOC2), SRX5K-MPC3-40G10G(IOC3) 및 SRX5K-MPC3-100G10G(IOC3)는 해시 기반 세션 배포를 위해 구성된 SRX5400, SRX5600 및 SRX5800 디바이스에서만 사용할 수 있습니다.
해시 기반 세션 배포 모드가 활성화되면 SRX5K-MPC, SRX5K-MPC3-40G10G(IOC3) 및 SRX5K-MPC3-100G10G(IOC3)가 디바이스에 설치되면 시스템은 동작을 높은 세션 용량 기반 모드로 변경합니다.
SRX5K-MPC, SRX5K-MPC3-40G10G(IOC3) 또는 SRX5K-MPC3-100G10G(IOC3)가 설치된 SRX5000 라인 디바이스에서 시스템 또는 SPU 재부팅 중에 해시 기반 세션 배포 모드가 활성화되면 재부팅 후 모든 SPU가 작동할 때만 트래픽이 통과합니다.
IOC3의 MPC는 해시 기반 데이터 경로 패킷 전달을 수행하여 기존 모든 IOC 및 SPC와 상호 연결함으로써 SPU에 로드 밸런싱 서비스를 제공합니다.
IOC3는 수신 및 송신 패킷을 처리합니다. IOC3는 수신 패킷을 구문 분석하고 플로우 세션 조회, 영역 및 정책 확인, VPN, ALG 등을 포함한 추가 보안 처리를 위해 SPU로 보냅니다.
IOC3는 패킷 조회 및 캡슐화 기능을 위해 패킷 데이터, 메모리, 패브릭 큐잉을 관리합니다.
IOC3는 키, 결과 테이블 및 패킷 메모리를 포함한 보안 플로우 테이블(IPv4 및 IPv6)을 설정합니다.
플로우 테이블과 함께 제공되는 함수는 다음과 같습니다.
플로우 조회
플로우 삽입 및 삭제
보안 플로우 노후화
보안 플로우 통계
SRX5000 라인 디바이스의 패킷 순서 기능 이해
SRX5400, SRX5600, SRX5800, 디바이스 및 vSRX 가상 방화벽에서 지원되는 패킷 순서 지정 기능은 애플리케이션 중앙 지점의 XLP 프로세서에 있는 패킷 순서 엔진의 내장 패킷 순서 기능을 활성화하여 디바이스의 성능을 향상시킵니다.
두 가지 유형의 패킷 순서 모드, 즉 하드웨어와 소프트웨어가 지원됩니다.
패킷 순서 지정 기능이 하드웨어로 설정된 경우, 로드 밸런싱 스레드(LBT)와 패킷 순서 스레드(POT)가 패킷 순서 지정 엔진으로 오프로드되고 리소스가 확보되어 패킷 처리를 수행할 수 있습니다. 패킷 순서 지정 기능이 소프트웨어로 설정된 경우, 로드 밸런싱 스레드(LBT)와 패킷 순서 스레드(POT)가 SPU에서 실행되고 있습니다. 기본적으로 패킷 순서 엔진(하드웨어)을 사용하는 패킷 순서 모드가 디바이스에서 활성화됩니다. 재부팅이 필요한 구성 변경으로 비활성화할 수 있습니다.
플로우 스레드는 패킷을 수신하고 처리하며 전송하거나 삭제합니다. 순서 지정이 필요하지 않은 패킷의 경우, 플로우 스레드는 네트워크 가속 엔진(NAE) 송신에 패킷을 보내거나 삭제하도록 알립니다. 순서 지정이 필요한 패킷의 경우, 플로우 스레드는 패킷 순서 지정 엔진에 순서 목록에서 패킷을 대기열에서 제거하고 순서대로 패킷을 보내거나 삭제하도록 알립니다.
SRX5000 라인 디바이스에서 패킷 순서 모드 변경
패킷 순서 엔진을 이용한 패킷 순서 기능은 차세대 SPC가 탑재된 SRX5400, SRX5800 및 SRX5600 디바이스에서 지원됩니다. (플랫폼 지원은 설치 시 Junos OS 릴리스에 따라 다릅니다.) 기본적으로 패킷 순서 엔진을 사용하는 패킷 순서 모드가 활성화되어 있습니다. 패킷 순서 엔진을 사용하여 패킷 순서 기능을 비활성화하려면 디바이스에서 패킷 순서 모드를 업데이트해야 합니다.
지원되는 패킷 순서 지정 모드는 다음과 같습니다.
소프트웨어 - 패킷 순서 엔진을 사용하여 패킷 순서 모드를 비활성화합니다.
hardware—패킷 순서 엔진을 사용하여 패킷 순서 모드를 활성화합니다. 기본 옵션입니다.
패킷 순서 엔진을 사용하여 패킷 순서 모드를 비활성화하려면:
CLI 구성 프롬프트에서 다음 명령을 입력하여 패킷 순서 모드를 지정합니다.
[edit] user@host# set security forwarding-process application-services packet-ordering-mode software
명령을 사용하여
show security forwarding-process구성을 검토합니다.[edit] user@host# show security forwarding-process application-services{ packet-ordering-mode software; }커밋하기 전에 구성 변경 사항을 확인하십시오.
[edit] user@host# commit check
warning: System packet ordering mode changed, reboot is required to take effect. If you have deployed a cluster, be sure to reboot all nodes. configuration check succeeds
구성을 커밋합니다.
[edit] user@host# commit
warning: System packet ordering mode changed, reboot is required to take effect. If you have deployed a cluster, be sure to reboot all nodes. commit complete
적절한 시기에 디바이스를 재부팅합니다.
명령을 사용하여
show security flow status패킷 순서 모드를 확인합니다.user@host> show security flow statusFlow forwarding mode: Inet forwarding mode: flow based Inet6 forwarding mode: drop MPLS forwarding mode: drop ISO forwarding mode: drop Flow trace status Flow tracing status: off Flow session distribution Distribution mode: RR-based Flow packet orderingOrdering mode: Software (reboot needed to change to Software)
적응형 모드에서 SRX5000 라인 디바이스의 세션 배포 이해
Junos OS 릴리스 15.1X49-D30 및 Junos OS 릴리스 17.3R1부터는 적응형 모드 세션 배포가 중앙 지점 아키텍처의 향상된 기능으로 대체되었습니다.
적응형 모드 세션 배포는 Junos OS 릴리스 15.1X49-D30 및 Junos OS 릴리스 17.1R1 이전에 혼합 모드로 실행되는 SRX5000 라인 디바이스에서 구현됩니다. 적응형 모드 세션 분배는 SPU(Services Processing Unit)의 용량과 사용 가능한 리소스를 고려하여 시스템 리소스의 사용을 극대화합니다. 이는 XLR/XLP 혼합 모드, 즉 다양한 유형의 SPU가 다른 조합으로 사용되는 섀시 구축에서 실행되는 SRX5000 라인 디바이스에서만 활성화됩니다. SRX5800, SRX5600 또는 SRX5400 디바이스에 차세대 SPC(Services Processing Card)와 기존 SPC가 혼합되어 있는 경우, 적응형 모드 세션 배포가 기본값으로 간주됩니다. 혼합 모드에서 실행되지 않는 SRX5000 라인 디바이스의 경우, 해시 기반 로드 밸런싱이 기본값입니다.
SPC(Services Processing Card)에는 하나 이상의 SPU가 포함되어 있으며, 각 SPU는 CP(Central Point)에 의해 배포된 세션에 대해 구성된 보안 기능 및 기타 서비스에 따라 플로우의 패킷을 처리합니다. SPU의 CPU 로드는 수시로 변경됩니다. 변화하는 가용 용량을 최대한 활용하고 그에 따라 세션 분포를 조정하기 위해 적응형 모드에서 시스템은 모든 SPU에 가중치를 동적으로 할당합니다. 세션 배포를 결정하는 것은 SPU의 가중치입니다.
각 SPU는 CPU 사용량 정보를 주기적으로 중앙 지점(CP)에 보냅니다. 중앙점은 이러한 값을 확인하고, 1초마다 가중치를 계산하며, 전체 시스템 성능을 최대화하는 방식으로 세션을 분산합니다. 즉, 적응형 모드에서 세션 분배는 실시간으로 계산되는 동적 가중 할당 시스템을 기반으로 하므로 유형에 관계없이 모든 SPU의 CPU를 최대한 활용할 수 있습니다.
적응형 모드 세션 분포와 가중치 라운드 로빈(WRR) 세션 분포를 구분하는 것은 가중치의 동적 계산입니다. WRR은 다양한 유형의 SPU에 가중치를 계산하고 할당하여 SPU와 CPU 용량을 구별하지만, 계산과 할당은 정적입니다. 즉, 초기화 시 한 번만 수행됩니다. 적응 모드는 WRR의 고정 비율 세션 배포 프로세스를 개선합니다. WRR은 사용 가능한 처리 능력을 고려하지 않고 SPU의 유형과 CPU 용량에 따라서만 세션 처리 제한이 설정되기 때문에 시스템 리소스의 활용도가 부족합니다.
적응형 모드 세션 배포의 경우, 다음 공식을 사용하여 SPU에 할당된 가중치를 계산합니다.
Wi = 합계(W1-n)*Ci*Si/합계(C1-n*S1-n)
여기서:
Wi— SPU에 할당된 가중치.Sum(W1-n)— 시스템의 총 중량입니다. 이 값은 일정합니다.n—총 SPU 수입니다.Ci—SPU의 사용 가능한 CPU 계산 능력.Si—SPU의 사용 가능한 세션 용량입니다.
적응형 모드에서는 한 SPU의 CPU 사용량이 높으면 더 적은 수의 세션이 해당 SPU에 배포됩니다. 다음 예제에서는 계산을 설명합니다.
두 개의 SPU가 있는 디바이스를 생각해 보겠습니다. 각 SPU의 세션 용량은 100만 개입니다.
일정 시간 동안:
SPU1에 500,000개의 세션이 있을 때 CPU 사용량은 10%입니다.
SPU1의 사용 가능한 CPU 용량(C1) = 1-10% = 90(퍼센트).
SPU1의 사용 가능한 세션 용량(S1) = 1-500,000/1M = 50(퍼센트).
SPU2에 400,000개의 세션이 있는 경우 CPU 사용량은 20%입니다.
SPU2의 사용 가능한 용량(C2)= 1-20%= 80(퍼센트).
SPU2(S2)의 사용 가능한 세션 용량 = 1-400,000/1M = 60(퍼센트).
전체 시스템의 가중치가 100인 경우, 각 SPU에 대한 별도의 가중치 값은 다음과 같습니다.
SPU1의 무게(W1) = 100*90*50/(50*90+80*60) = 48
SPU2의 무게(W2) = 100*80*60/(50*90+80*60) = 52
들어오는 세션의 경우, 세션의 48%가 SPU1에 할당되고 패킷의 52%가 SPU2에 할당됩니다.
가중치가 부여된 숫자는 중앙점이 런타임 사용량 정보를 확인하고 가중치를 새 값으로 조정하기 전에 짧은 기간 내에 시스템에 적용될 수 있습니다.
변경 내역 표
기능 지원은 사용 중인 플랫폼과 릴리스에 따라 결정됩니다. 기능 탐색기를 사용하여 플랫폼에서 기능이 지원되는지 확인합니다.