플로우 분배 및 패킷 순서 지정
이 주제는 SRX5000 Line 디바이스의 로드 분배 및 패킷 순서에 대해 설명합니다.
SRX5000 라인 디바이스의 부하 분산 이해
SRX5800, SRX5600 및 SRX5400 디바이스에서 지원되는 부하 분배 알고리즘은 세션 용량과 처리 능력에 따라 조정됩니다. (실제 플랫폼 지원은 설치 시 Junos OS 릴리스에 따라 다릅니다.)
해시 기반 세션 배포는 해시 테이블을 사용합니다. SPU 세션 가중치 테이블은 세션 배포 해시 테이블의 각 해시 인덱스에 SPU ID를 할당하는 데 사용됩니다. 이러한 방식으로 해시 기반 배포를 사용하여 각 SPU에서 생성된 세션 수는 SPU 세션 가중치 테이블에서 SPU의 가중치에 비례합니다. 또한 각 NPU는 NPU 세션과 일치하지 않는 패킷을 포워딩하기 위해 SPU를 선택하는 데 사용하는 동일한 SPU 세션 가중치 테이블 및 세션 배포 해시 테이블을 유지합니다.
SPU에 장애가 발생할 경우, 라우팅 엔진은 세션 배포를 위한 해시 테이블 일관성을 유지하기 위해 IOC 및 NPC를 포함한 데이터 플레인의 모든 카드를 재설정합니다.
해시 기반 세션 배포에서 가중치는 세션 용량을 기반으로 합니다. 높은 세션 용량이 필요한 경우 해시 세션 배포 모드를 사용하는 것이 좋습니다.
SRX5000 회선 디바이스의 부하 분산은 항상 해시 기반입니다.
SPC를 삽입 및 제거하면 삽입 후 섀시를 재부팅해야 하기 때문에 중앙 지점 초기화 시간에 SPU 세션 가중치 테이블이 다시 계산됩니다.
Junos OS 릴리스 15.1X49-D30부터 중앙 포인트 아키텍처가 향상되어 SRX5000 회선 디바이스에 대해 더 높은 동시 세션 및 초당 연결 수(cps)를 처리할 수 있습니다.
중앙 지점 아키텍처의 향상은 트래픽 관리를 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
SRX3K-SPC-1-10-40, 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는 패킷 조회 및 캡슐화 기능을 위해 패킷 데이터 메모리와 패브릭 큐잉을 관리합니다.
Junos OS 릴리스 15.1X49-D10 및 Junos OS 릴리스 17.3R1부터 해시 기반 세션 배포는 SRX5400, SRX5600 및 SRX5800 디바이스의 기본 모드입니다. 해시 키 선택은 애플리케이션 프로토콜에 따라 다릅니다.
Junos OS 릴리스 17.4R1부터 IOC는 해시 기반 세션 배포 알고리즘을 기반으로 트래픽을 해시하고 다른 SPU로 배포합니다. 이러한 향상은 더 큰 고정 길이 해시 테이블을 사용하여 모든 SPU 간에 균등한 해시 분포를 제공합니다. 이전 Junos OS 릴리스에서는 고정 길이 해시 테이블로 인해 모든 SPU에서 트래픽 분포가 고르지 않았습니다.
IOC3는 키, 결과 테이블 및 패킷 메모리를 포함한 보안 플로우 테이블(IPv4 및 IPv6)을 설정합니다.
다음 기능은 플로우 테이블과 함께 제공됩니다.
플로우 조회
플로우 삽입 및 삭제
보안 플로우 노후화
보안 플로우 통계
SRX5000 회선 디바이스의 패킷 순서 기능 이해
SRX5400, SRX5600 및 SRX5800, 디바이스 및 vSRX 가상 방화벽에서 지원되는 패킷 순서 지정 기능은 애플리케이션 중앙 지점의 XLP 프로세서에 있는 패킷 순서 지정 엔진의 내장된 패킷 순서 지정 기능을 활성화하여 장치의 성능을 개선합니다.
지원되는 패킷 순서 모드에는 하드웨어와 소프트웨어의 두 가지 유형이 있습니다.
패킷 순서 지정 기능이 하드웨어로 설정되면 LBT(로드 밸런싱 스레드)와 POT(패킷 순서 스레드)가 패킷 순서 지정 엔진에 오프로드되고 패킷 처리를 수행하기 위해 리소스가 해제됩니다. 패킷 순서 지정 기능이 소프트웨어로 설정되면 로드 밸런싱 스레드(LBT)와 패킷 순서 스레드(POT)가 SPU에서 실행됩니다. 기본적으로 패킷 주문 엔진(하드웨어)을 사용하는 패킷 주문 모드는 디바이스에서 활성화됩니다. 재부팅이 필요한 구성 변경을 통해 비활성화할 수 있습니다.
플로우 스레드는 패킷을 수신하고, 처리하고, 보내거나 삭제합니다. 순서가 필요하지 않은 패킷의 경우 플로우 스레드는 NAE(Network Acceleration Engine) 송신에 패킷을 보내거나 삭제하도록 알립니다. 순서 지정이 필요한 패킷의 경우 흐름 스레드는 패킷 순서 지정 엔진에 패킷 순서 지정 목록에서 패킷을 대기열에서 제거하고 패킷을 순서대로 보내거나 삭제하도록 알립니다.
SRX5000 회선 디바이스에서 패킷 주문 모드 변경
패킷 주문 엔진을 사용하는 패킷 주문 기능은 차세대 SPC가 있는 SRX5400, SRX5800 및 SRX5600 디바이스에서 지원됩니다. (플랫폼 지원은 설치 시 Junos OS 릴리스에 따라 다릅니다.) 기본적으로 패킷 주문 엔진을 사용하는 패킷 주문 모드가 활성화되어 있습니다. 패킷 주문 엔진을 사용하여 패킷 주문 기능을 비활성화하려면 디바이스에서 패킷 주문 모드를 업데이트해야 합니다.
지원되는 패킷 순서 모드는 다음과 같습니다.
software - 패킷 주문 엔진을 사용하여 패킷 주문 모드를 비활성화합니다.
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 status
Flow 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(Weighted Round-Robin) 세션 분포를 구별하는 것은 가중치의 동적 계산입니다. WRR은 다양한 유형의 SPU에 가중치를 계산하고 할당하여 SPU와 CPU 용량을 차별화하지만, 계산 및 할당은 정적이므로 초기화 시 한 번만 수행됩니다. 적응형 모드는 WRR의 고정 비율 세션 배포 프로세스를 개선합니다. WRR은 세션 처리 제한이 SPU의 가용 처리 능력을 고려하지 않고 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(C1)의 사용 가능한 CPU 용량 = 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에 할당됩니다.
가중치가 적용된 숫자는 중앙점이 런타임 사용 정보를 확인하고 가중치를 새 값으로 조정하기 전에 짧은 기간 내에 시스템에 적용될 수 있습니다.
변경 내역 테이블
기능 지원은 사용 중인 플랫폼 및 릴리스에 따라 결정됩니다. 기능 탐색기 를 사용하여 플랫폼에서 기능이 지원되는지 확인합니다.