Firewall_qosSettings
QoS(서비스 품질)는 예측 가능한 네트워크 동작과 성능을 제공하기 위한 많은 방법을 지칭합니다. VoIP(Voice over IP), 멀티미디어 콘텐츠 또는 업무상 중요한 응용 프로그램(예: 주문 또는 신용 카드 처리) 등의 특정 응용 프로그램 유형에서는 이와 같은 예측 가능성이 반드시 필요합니다. 분량에 상관없이 모든 대역폭은 일정한 시점이 되면 궁극적으로 네트워크에서 해당하는 용량에 사용되므로 이와 같이 예측할 수는 없습니다. 따라서 QoS를 올바르게 구성 및 구현해야 트래픽을 적절하게 관리하고 원하는 수준의 네트워크 서비스를 보장할 수 있습니다.
이 섹션에 포함된 하위 섹션은 다음과 같습니다.
• 분류
• 조건
• 조건
관리해야 하는 트래픽을 식별할 수 있도록 첫 단계로 분류 작업을 수행해야 합니다. SonicOS에서는 트래픽 분류 인터페이스로 액세스 규칙을 사용합니다. 따라서 주소 개체, 서비스 개체 및 일정 개체 요소를 조합하여 정밀하게 제어할 수 있으며, 모든 HTTP 트래픽 등의 일반적인 분류 조건과 수요일 오전 2:12 호스트A에서 호스트B로의 SSH 트래픽 등의 구체적인 분류 조건을 모두 사용할 수 있습니다.
식별 또는 분류된 트래픽은 관리할 수 있습니다. SonicOS BWM(대역폭 관리)을 사용하면 내부에서 관리할 수 있습니다. 네트워크가 자체적으로 모든 기능을 포함하는 자치 시스템이라면 이 방식이 매우 효율적입니다. 그러나 구성을 알 수 없는 외부 네트워크 인프라나 대역폭을 경합하는 기타 호스트(예: 인터넷) 같은 외부 요소 또는 중간 요소가 도입되면 이처럼 동작을 예측하고 서비스를 보장하는 기능의 효율성이 떨어집니다. 즉 네트워크 끝점과 그 사이에 있는 모든 요소가 관리 범위 내에 있으면 BWM이 정확히 구성된 대로 작업을 수행하지만 외부 엔터티가 도입되면 BWM 구성의 정밀도와 효력이 저하될 수 있습니다.
SonicOS에서는 이러한 현상을 방지할 수 있습니다. SonicOS는 트래픽을 분류한 후 트래픽에 태그를 지정하여 CoS 태그를 따를 수 있는 특정 외부 시스템에 해당 분류를 전달함으로써 이러한 시스템도 QoS 제공 과정에 참가할 수 있도록 합니다.
사용 가능한 여러 정책 지정, 큐 및 구성 방법을 이용하여 트래픽 조건을 지정(관리)할 수 있습니다. SonicOS에서는 수신/발신 BWM(대역폭 관리)을 통해 내부 조건 기능을 제공합니다(자세한 내용은 대역폭 관리 참조). SonicOS의 BWM은 대역폭이 충분한 완전 자치 개인 네트워크에는 매우 효율적인 솔루션이지만 알 수 없는 외부 네트워크 요소가 도입되고 대역폭이 경합하면 효율성이 다소 낮아질 수 있습니다.
공용 네트워크를 통한 사이트 투 사이트 VPN
SonicOS에 통합된 BWM은 VPN으로 연결된 네트워크 간의 트래픽을 관리하는 데 매우 효율적입니다. 수신/발신 트래픽을 두 끝점에서 모두 분류 및 제어할 수 있기 때문입니다. 끝점 간의 네트워크는 QoS가 인식되지 않으면 모든 VPN ESP를 동일하게 간주 및 취급합니다. 일반적으로 이러한 중간 네트워크나 해당 경로를 제어하는 방법은 없으므로 QoS를 완전히 보장하기 어렵지만 BWM을 사용하면 동작을 더 쉽게 예측할 수 있습니다.
종단 간 QoS를 제공하기 위해 IP 네트워크에서 트래픽 조건 서비스를 제공하는 기업 대상 서비스 공급자가 갈수록 증가하고 있습니다. 이러한 서비스는 일반적으로 고객 프레미스 장비를 사용하여 트래픽을 분류하고 태그를 지정하며, 보통 DSCP 같은 표준 표시 방법을 사용합니다.
서비스 공급자가 실제로 적용하는 조건은 공급자별로 다를 수 있지만 일반적으로 트래픽 우선 순위를 지정하기 위한 가중 공평 큐(Weighted Fair Queuing) 등의 클래스 기반 큐 방법과 후행 자르기, 무작위 조기 탐지(Random Early Detection) 등의 혼잡 방지 방법이 사용됩니다.
|
|
|
|
SonicOS에서는 발신(아웃바운드)/수신(인바운드) BWM(대역폭 관리) 인터페이스를 통한 통합 트래픽 구성 메커니즘을 제공합니다. 아웃바운드 BWM은 신뢰할 수 있는 영역과 공용 영역(예: LAN, DMZ)에서 생성되어 신뢰할 수 없는 영역과 암호화된 영역(예: WAN, VPN)으로 이동하는 트래픽에 적용할 수 있습니다. 인바운드 BWM은 신뢰할 수 없는 영역과 암호화된 영역에서 생성되어 신뢰할 수 있는 영역과 공용 영역으로 이동하는 트래픽에 적용할 수 있습니다.
Note 완전하게 통합된 QoS 시스템인 BWM은 분류 및 구성 작업이 단일 SonicWALL 어플라이언스에서 수행되어 외부 시스템을 사용하지 않아도 되기 때문에 표시할 필요도 없지만, 단일 액세스 규칙에서 BWM 및 QoS(레이어 2 및/또는 레이어 3 표시) 설정을 동시에 구성할 수 있습니다. 이렇게 하면 트래픽이 이미 구성된 후에도 외부 시스템이 방화벽에서 수행한 분류를 활용할 수 있습니다.
BWM을 구성할 때는 먼저 관련 WAN 인터페이스에서 BWM을 사용하도록 설정하고 사용 가능한 인터페이스 대역폭을 Kbps(초당 킬로비트) 단위로 선언합니다. 이 작업을 수행하려면 네트워크 > 인터페이스 페이지에서 WAN 인터페이스의 구성 아이콘을 선택하고 고급 탭으로 이동합니다.
발신/수신 BWM은 WAN 인터페이스에서 함께 또는 개별적으로 사용하도록 설정할 수 있습니다. 또한 아웃바운드/인바운드 대역폭에 각기 다른 대역폭 값을 입력하여 비대칭 링크를 지원할 수 있습니다. 고속 이더넷 인터페이스에서는 최대 100,000Kbps(100Mbit)의 링크 속도를 선언할 수 있으며, 기가비트 이더넷 인터페이스는 최대 1,000,000기가비트의 링크 속도를 지원합니다. 선언된 속도에는 링크에 실제로 사용 가능한 대역폭이 반영되어 있어야 합니다. 즉 사용 가능한 대역폭보다 큰 값을 선언하여 링크를 초과 구독하지 않는 것이 좋습니다.
Note 인터페이스에 대해 BWM을 사용하도록 설정하고 링크 속도를 정의하고 나면 BWM 설정에서 액세스 규칙을 구성하지 않아도 해당 링크를 통과하는 트래픽(인바운드/아웃바운드 모두)이 선언된 값으로 제한됩니다.
BWM 설정 하나 또는 두 가지 모두 WAN 인터페이스에서 사용하도록 설정하고 사용 가능한 대역폭을 선언하면 이더넷 BWM 탭이 액세스 규칙에 표시됩니다. 대역폭 탭에는 WAN 인터페이스에서 사용하도록 설정한 항목에 따라 인바운드 설정과 아웃바운드 설정 중 하나 또는 두 설정이 모두 표시됩니다.
일반 탭의 구성을 통해 트래픽을 분류합니다. 다른 BWM 규칙이 구성되어 있지 않다고 가정하는 위 예제에서는, 신뢰할 수 있는 LAN 영역의 LAN 서브넷에서 암호화된 VPN 영역의 10.50.165.0 원격 서브넷(서비스 그룹 VOIP로 구성됨)으로 전송되는 트래픽에 선언된 대역폭의 30%(1500Kbps의 30% = 450Kbps)가 보장되지만 80%(1500Kbps의 80% = 1200Kbps)는 초과할 수 없으므로 다른 트래픽에서 300Kbps를 사용할 수 있습니다.
선언 제한
각 대역폭 관리 규칙은 패킷 큐의 메모리를 사용하므로 SonicOS에서 허용되는 대기 중인 패킷 및 규칙의 수가 플랫폼별로 제한됩니다(값은 변경될 수 있음).
대역폭 관리와 관련하여 다음 사항을 고려하십시오.
• 사용 가능한 대역폭을 100%보다 많이 보장할 수는 없으므로, 모든 BWM 규칙에서 선언한 보장된 모든 대역폭 백분율의 총합계는 100%를 초과할 수 없습니다.
• 모든 최대 대역폭 값의 총합계는 보장된 대역폭 총합계 이상이어야 합니다.
• 모든 최대 대역폭 값의 총합계는 100%를 초과할 수 있습니다. 즉 명시적 제한이 필요하지 않으면 모든 BWM 규칙이 100%의 최대 대역폭을 지정할 수 있습니다.
SonicOS에서 적용하는 대역폭 관리는 큐 관리 및 혼잡 방지 기술의 조합을 기준으로 하지만 실제로는 Sally Floyd와 Van Jacobson이 패킷 네트워크를 위한 링크 공유 및 리소스 관리 모델에서 정의한 CBQ(클래스 기준 큐)와 비슷하며, RFC2309 인터넷의 큐 관리 및 혼잡 방지 관련 권장 사항 및 다양한 점수 기반 흐름 제어 이론이 통합됩니다. SonicOS BWM 체계의 주요 목표는 다음과 같습니다.
• : 단순성 – 처리 오버헤드가 평균 패킷 전송 시간보다 계속해서 훨씬 적어야 합니다.
• : 견고성 – 스케줄러는 예측 가능/불가능한 트래픽 상황에서도 효율적으로 작동해야 하며 트래픽 버스트, 동기화 문제처럼 원치 않는 부작용을 야기해서는 안 됩니다.
• 공정성 – 정의된 관리 체계에 맞는 방식으로 사용 가능한 대역폭을 공유해야 합니다(특히 동작이 불량한 greedy 트래픽이 있는 경우).
전송되는 각 패킷에 대해 링크 점수(토큰) 풀을 조정하여 사용 가능한 WAN 링크의 대역폭을 추적합니다. 링크가 포화 지점에 도달하지 않은 경우 우선 순위가 지정된 큐를 처리할 수 있는 것으로 간주합니다.
SonicOS BWM도 CBQ와 마찬가지로 클래스 구조를 기준으로 합니다. 이 구조에서는 트래픽 큐가 액세스 규칙에 따라 SSH, 텔넷, HTTP 등으로 분류된 다음 지정된 우선 순위에 따라 예약됩니다. 이 과정에서 사용되는 각 액세스 규칙에는 보장된 대역폭, 최대 대역폭 및 대역폭 우선 순위의 세 값이 할당됩니다. 8개 우선 순위 링 중 하나에 대역폭을 할당하여 예약 우선 순위를 지정합니다. 0이 최고 우선 순위이고 7이 최저 우선 순위입니다. 그러면 생성되는 큐 계층 구조는 항상 깊이가 1개 수준인 노드 트리 구조로 생각할 수 있습니다. 여기서 모든 노드는 하위 항목을 포함하지 않는 리프 노드입니다.
큐 처리에서는 시간 조각당 약 1/256초에 해당하는 시간 구분 체계를 사용합니다. 시간 조각 내에서는 우선 순위 0 큐부터 평가가 시작되며, 큐 점수 풀에 대해 패킷 길이를 측정하여 패킷별로 전송 적합성을 결정합니다. 점수가 충분하면 패킷이 전송되고 큐 및 링크 점수 풀이 적절하게 감소됩니다. 패킷이 큐에 유지되고 보장된 링크와 큐 점수를 사용할 수 있으면 해당 큐에서 전송되는 패킷이 계속 처리됩니다. 보장된 큐 점수가 소진되면 해당 우선 순위 링의 다음 큐가 처리됩니다. 나머지 우선 순위 링에 대해 같은 프로세스가 반복되며, 우선 순위 링 7의 처리 작업이 완료되면 우선 순위 링 0부터 다시 처리하기 시작합니다.
초과 대역폭 예약에는 엄격한 우선 순위가 적용되며 각 우선 순위 내에서 패킷별 라운드 로빈 방식이 사용됩니다. 즉 지정된 시간 조각에 대해 초과 대역폭이 있으면 초과 분량이 없어질 때까지 해당 우선 순위 링 내의 모든 큐가 차례로 패킷을 보냅니다. 그러고 나서 다음 우선 순위 링이 처리됩니다.
이 점수 기준 방법을 사용하는 경우 CBQ의 한도 초과 개념을 적용하지 않아도 되며, 기존 CBQ의 가장 큰 문제 중 하나인 버스트 동작(다운스트림 장치 및 링크에서 서비스 장애 현상이 발생하기 쉬움)이 해결됩니다. 이처럼 SonicOS에서 보다 신중한 방식을 사용하면 다운스트림 장치가 포화되어 재전송해야 하는 경우, 일반적으로 발생하는 CPU 주기 낭비 문제를 방지할 수 있습니다. 또한 TCP 느린 시작(Sally Floyd의 혼잡 기간이 긴 경우 TCP의 제한적 느린 시작 참조) 및 전역 동기화(RFC 2884에 설명)처럼 성능을 저하시키는 기타 혼잡 동작도 피할 수 있습니다.
큐 관리 알고리즘은 보통 버퍼 오버플로 시에만 패킷을 삭제하여 라우터의 패킷 큐 길이를 관리합니다. 그리고 각 큐의 최대 길이가 구성됩니다. 라우터는 이 최대 크기를 초과할 때까지 패킷을 허용하며, 최대 크기가 초과되면 수신 패킷을 삭제합니다. 버퍼 공간이 허용되면 새 패킷이 허용됩니다. 이 기술을 후행 자르기라고 합니다. 이 방법은 오랫동안 인터넷에서 사용되었지만 몇 가지 단점이 있습니다. 버퍼 오버플로 시에는 모든 흐름에서 도달하는 패킷이 모두 삭제되므로 TCP의 혼잡 제어 메커니즘과는 효율적으로 상호 작용하지 못합니다. 최대 큐 크기가 초과되면 매우 많이 삭제되는 주기가 진행됩니다. 그런 다음에는 최종 시스템이 사용되지 않아 라우터 사용률이 낮아집니다. 그러면 최종 시스템이 작업 기간을 동시에 늘려서 일정 시점이 되면 또다시 매우 많이 삭제됩니다. 이러한 현상을 전역 동기화라고 합니다. 이 때문에 링크 사용률과 전체 처리량이 낮아집니다. 후행 자르기의 또 다른 문제는, 단일 연결이나 소수의 흐름이 큐 공간 전체를 차지하는 경우가 있다는 점입니다. 이 때문에 잠김 현상이 발생하여 동기화 또는 기타 타이밍 효과가 나타날 수 있습니다. 마지막으로 언급할 후행 자르기의 주요 단점은, 큐가 오랫동안 가득 찬 상태로 유지된다는 것입니다. 큐 관리의 주요 목표 중 하나는 안정 상태의 큐 크기를 줄이는 데 있습니다.
아웃바운드 대역폭 관리용 알고리즘
방화벽을 통과하는 각 패킷은 먼저 실시간 또는 방화벽 패킷으로 분류됩니다. 방화벽 패킷은 항상 BWM 모듈을 통과하는 사용자가 생성한 패킷입니다. 실시간 패킷은 보통 방화벽에서 생성된 패킷으로, BWM 모듈에서 처리되지 않고 최고 우선 순위가 암시적으로 지정됩니다. 실시간(방화벽 생성) 패킷은 다음과 같습니다.
• : WAN 부하 분산 검색
• : ISAKMP
• : 웹 CFS
• : PPTP 및 L2TP 컨트롤 패킷
• : DHCP
• : ARP 패킷
• : Websense
• : Syslog
• : NTP
• : 보안 서비스(AV, 서명 업데이트, 라이선스 관리자)
아웃바운드 BWM 패킷 처리 경로
a. 패킷이 WAN 경로로 이동하는지 확인합니다.
b. 패킷을 방화벽 패킷으로 분류할 수 있는지 확인합니다.
c. 패킷이 액세스 규칙과 일치하는지 확인하여 BWM 설정을 결정합니다.
d. 해당하는 규칙 큐에 패킷을 대기시킵니다.
보장된 대역폭 처리
이 알고리즘은 모든 정책이 GBW를 전부 사용하는 방법을 나타냅니다.
a. 먼저 링크 점수를 사용 가능한 링크 BW와 동일하게 설정합니다.
b. 규칙에 구성된 GBW를 사용하여 클래스 점수를 초기화합니다.
c. : 패킷 길이가 클래스 점수 이하이면 패킷을 전송하고, 클래스 점수와 링크 점수에서 해당 길이를 뺍니다.
d. 큐에서 다음 패킷을 선택하고 클래스 점수가 낮아지거나 규칙 큐가 비워질 때까지 C단계를 반복합니다.
e. : 다음 규칙 큐를 선택하고 b~d단계를 반복합니다.
최대 대역폭 처리
이 알고리즘은 정책이 사용되지 않은 링크 BW를 전부 사용하는 방법을 나타냅니다. 최고 우선 순위 링부터 시작해서 링크 점수가 소진되거나 큐가 모두 비워질 때까지 전체 규칙 큐의 패킷을 라운드 로빈 방식으로 전송합니다. 그러고 나서 다음 최저 우선 순위 링으로 이동한 후 같은 작업을 반복합니다.
a. 먼저 링크 신용을 GBW 사용 후 남은 링크 BW와 동일하게 설정합니다.
b. 최고 우선 순위 링을 선택합니다.
c. 클래스 점수를 (MBW - GBW)로 초기화합니다.
d. : 규칙 큐의 패킷 길이가 클래스 점수 및 링크 점수 미만인지 확인합니다.
e. : 길이가 해당 점수 미만이면 패킷을 전송하고 클래스 점수와 링크 점수에서 해당 길이를 뺍니다.
f. 다음 규칙 큐를 선택하고 링크 점수가 소진되거나 해당 우선 순위 링의 큐가 모두 비워질 때까지 C단계를 반복합니다.
g. 다음 최저 우선 순위 링을 선택하고 c~f단계를 반복합니다.
아웃바운드 BWM 예제
위 다이어그램에는 링크 용량이 100Kbps인 OBWM에 구성된 정책이 네 가지 나와 있습니다. 즉 링크 용량은 초당 12,800바이트입니다. 아래 표에는 각 규칙의 BWM 값(초당 바이트)이 나와 있습니다.
|
a. : GBW 처리 시 먼저 규칙 큐 목록의 첫 번째 큐(FTP)부터 시작합니다. 링크 점수는 12800이고 클래스 점수는 1280입니다. Pkt1 400B를 WAN 링크에서 전송하면 링크 점수는 12400, 클래스 점수는 880이 됩니다. 1500바이트를 보낼 클래스 점수가 부족하므로 Pkt2는 전송되지 않습니다. 나머지 클래스 점수는 다음 시간 조각으로 이월됩니다.
b. 이제 이 목록의 다음 규칙 큐인 H323으로 이동합니다. Pkt1 1500B를 전송하면 H323의 링크 점수는 10900, 클래스 점수는 1060이 됩니다. Pkt2도 큐에서 전송되므로 링크 점수는 10200, 클래스 점수는 360이 됩니다. 클래스 점수가 부족하므로 Pkt3은 전송되지 않습니다. 나머지 클래스 점수는 다음 시간 조각으로 이월됩니다.
c. : 이제 Yahoo Messenger 큐로 이동합니다. 클래스 점수 640바이트에는 Pkt1을 포함할 수 없기 땜누에 이 큐에서는 패킷이 처리되지 않습니다. 그러나 해당 클래스 점수는 다음 시간 조각으로 이월됩니다.
d. VNC 큐에서는 Pkt1, Pkt2가 전송되므로 링크 점수는 8000, 클래스 점수는 360이 됩니다. 클래스 점수는 이월됩니다.
e. 이제 GBW에 대한 모든 큐가 처리되었으므로 남은 링크 점수인 8000을 모두 사용합니다.
f. : 먼저 최고 우선 순위 링 0부터 시작하여 해당 우선 순위의 모든 큐를 라운드 로빈 방식으로 처리합니다. H323에서는 최대 2,560(MBW-GBW)을 사용할 수 있으므로 해당 Pkt3인 500B가 전송됩니다. 이제 링크 점수는 7500, 최대 점수는 2060이 됩니다.
g. : 해당 우선 순위 링의 다음 큐인 VNC로 이동합니다. Pkt3 500B를 전송하면 링크 점수는 7000B, 클래스 최대 점수는 140(MBW-GBW - 500)이 됩니다.
h. 해당 우선 순위 링의 다음 큐로 이동합니다. H323 큐는 이미 비어 있으므로 다음 큐인 VNC로 다시 이동합니다.
i. : VNC 큐에서는 Pkt4 40B가 전송되므로 링크 점수는 6960, 클래스 최대 점수는 100이 됩니다. 클래스 최대 점수가 부족하므로 Pkt5 500B는 전송되지 않습니다.
j. 이제 다음 하위 우선 순위 큐로 이동합니다. 우선 순위 링 1~3은 비어 있으므로 우선 순위 링 4를 선택합니다. 여기에는 FTP의 규칙 큐가 있습니다. Pkt2 1000B가 전송되므로 링크 점수는 6000, 클래스 최대 점수는 280이 됩니다. 해당 우선 순위에는 다른 큐가 없으므로 FTP 큐가 다시 처리됩니다. 그러나 클래스 최대값이 Pkt3의 1500B를 전송하기에 부족하므로 Pkt3은 전송되지 않습니다.
k. : 다음 하위 우선 순위 링(7 - Yahoo Messenger)으로 이동합니다. Pkt1 1200B가 전송되므로 링크 점수는 4800, 클래스 최대 점수는 80이 됩니다. 해당 우선 순위에는 다른 큐가 없으므로 이 큐가 다시 처리됩니다. 최대 점수인 80에 포함할 수 없으므로 Pkt2 1500B는 전송되지 않습니다.
l. 이제 모든 우선 순위 링의 모든 큐가 현재 시간 조각에 대해 처리되었습니다.
인바운드 BWM은 인바운드 TCP 및 UDP 트래픽을 구성하는 데 사용할 수 있습니다. TCP의 기본 흐름 제어 동작을 사용하여 수신 대역폭을 관리합니다. 인바운드 UDP 트래픽을 관리하기 위해 수신 모듈에서는 CBQ를 사용해 수신 패킷을 대기시킵니다. TCP 속도는 기본적으로 ACK 수신 속도를 통해 제어됩니다. 즉 TCP는 ACK를 받는 것과 같은 속도로 네트워크에서 패킷을 전송합니다. IBWM의 경우 원본 ACK 속도를 제어하여 TCP 원본의 전송 속도를 낮춥니다. 원본 ACK를 지연시키면 흐름의 RTT(왕복 시간)가 증가하여 원본 전송 속도가 낮아집니다.
수신 모듈은 각 트래픽 클래스의 수신률을 모니터링하여 기록합니다. 또한 발신 ACK도 모니터링하며 수신률을 줄여야 하는 경우 발신 ACK를 대기시킵니다. 수신 BW 가용성 및 평균 속도에 따라 ACK가 릴리스됩니다.
인바운드 대역폭 관리용 알고리즘
IBWM은 8가지 우선 순위 링을 유지 관리하며, 각 우선 순위 링에는 IBWM이 사용하도록 설정된 규칙 관련 큐가 하나씩 있습니다. 최고 우선 순위부터 최저 우선 순위 순서로 IBWM 풀을 처리하여 트래픽을 추가로 구성합니다. IBWM에서 사용하는 세 가지 주요 알고리즘은 다음과 같습니다.
수신률 업데이트
이 알고리즘은 WAN의 모든 패킷을 처리하고 해당 패킷이 속하는 클래스의 수신률을 업데이트합니다. 또한 초과 사용된 링크가 있으면 트래픽 클래스를 표시합니다.
a. : 패킷이 WAN 영역에서 생성되었으며 방화벽 패킷인지를 확인합니다.
b. 현재 시간 조각에서 지금까지 수신된 패킷 길이의 합에 패킷 길이를 더합니다. 링크 점수에서 (GBW, 패킷 길이)의 최소값을 뺍니다.
c. : 합계 값이 클래스 점수보다 크면 클래스가 링크를 초과 사용하는 것으로 표시합니다.
d. : 패킷 길이가 클래스 점수보다 크면 링크와 클래스를 모두 초과 사용되는 것으로 표시합니다.
발신 ACK 모니터
이 알고리즘은 발신 ACK를 모니터링 및 처리하는 방법을 나타냅니다.
a. 패킷이 WAN 영역으로 전송되며 TCP ACK인지를 확인합니다.
b. : 클래스 또는 인터페이스가 초과 사용으로 표시되어 있으면 패킷을 해당하는 수신 규칙 큐에 대기시킵니다.
ACK 처리
이 알고리즘은 이전 시간 조각의 BW 사용량에 따라 클래스별로 BW 매개 변수를 업데이트하는 데 사용됩니다. BW 사용량은 이전 시간 조각에서 클래스에 대해 수신된 총 바이트 수로 지정됩니다. 사용 가능한 클래스 점수에 따라 수신 모듈 큐에서 패킷을 처리할 때도 이 알고리즘이 사용됩니다.
특정 시간 조각에 대해 클래스의 BW 사용량이 GBW보다 많으면 해당 클래스의 점수는 부채가 됩니다. 그러면 부채가 0이 될 때까지 해당 클래스의 모든 발신 ACK가 대기됩니다. 각 후속 시간 조각에서는 부채에서 GBW에 해당하는 값을 빼며, 링크 BW가 남아 있으면 (MBW - GBW)에 해당하는 값도 뺍니다.
다음과 같이 이전 시간 조각의 BW 사용량을 계산합니다.
a. : 클래스별 BW 사용량을 사용하여 평균 수신률을 계산합니다.
b. BW 사용량이 클래스 점수보다 많으면 두 값의 차를 부채로 기록합니다. 링크 BW가 남아 있으면 부채에서 (MBW - GBW)를 뺍니다.
c. 현재 시간 조각에 대해 클래스 및 링크 점수를 계산합니다.
: •: : 클래스가 부채 상태이면 부채와 링크 점수에서 GBW를 빼 현재 시간 조각의 클래스가 해당 GBW를 이미 모두 사용했음을 표시합니다.
: •: : 클래스가 부채 상태가 아니고 해당 클래스에 도달하는 패킷이 있으면 누적 링크 점수를 계산합니다. 즉 각 시간 조각에서 점수에 GBW를 더합니다.
: •: 부채가 0이 아니면 클래스는 초과 사용되는 것으로 표시됩니다.
d. 수신 풀의 패킷을 최고 우선 순위 링부터 최저 우선 순위 순서로 처리합니다.
e. 클래스 점수를 남은 점수로 기록합니다.
f. : 패킷 길이가 클래스 점수 이하이면 패킷을 전송하고 클래스 점수 및 링크 점수에서 해당 길이를 뺍니다.
g. : 남은 점수가 부족하거나 수신 ACK 큐가 비워질 때까지 g단계를 반복합니다.
h. 링의 다음 규칙 큐에 대해 f~h단계를 반복합니다.
i. : 다음 최저 우선 순위 링에 대해 f~i단계를 반복합니다.
인바운드 대역폭 관리 예제
GBW = 5Kbps, MBW = 10Kbps, 링크 BW = 100Kbps인 클래스가 있다고 가정해 보겠습니다. 초당 바이트를 기준으로 하면 GBW = 640, 초과 BW = (MBW - GBW) = 640 , 링크 BW = 12800입니다.
|
a. : 클래스 점수는 640부터 시작됩니다. 2행에 나와 있는 것처럼 이전 시간 조각에서 이 클래스에 대해 1,300바이트가 수신됩니다. 이 수치는 클래스 점수보다 많으므로 부채가 20(1300 - GBW - 초과 BW)이 됩니다. 해당 클래스에 대해 20바이트의 부채는 GBW에서 모두 사용되었으므로 현재 시간 조각의 클래스 점수 = 620(GBW - 부채), 부채 = 0 ,링크 BW = 12,780이 됩니다.
b. : 2a행에는 클래스의 발신 ACK가 나와 있습니다. 클래스 점수가 속도보다 작으므로 이 패킷은 해당하는 수신 큐에 대기됩니다. 그리고 클래스 점수가 속도와 같거나 커질 때 때까지 해당 패킷이 처리되지 않습니다.
c. : 다음 시간 조각에서는 클래스 점수가 속도와 일치할 때까지 누적됩니다. 따라서 두 시간 조각이 경과한 이후의 클래스 점수는 1,900(620 + 640 + 640)이 됩니다. 이 시점에서 대기된 ACK 패킷이 수신 풀에서 처리됩니다.
2a행에서는 WAN 영역의 TCP 원본으로 발송해야 하는 ACK 패킷이 수신됩니다. 이 ACK를 즉시 보내면 TCP 원본이 즉시 패킷을 더 보내게 됩니다. 여기서는 ACK를 대기시키고 클래스 점수가 평균 속도에 도달한 후에만 보내 TCP 전송 속도를 줄일 수 있었습니다. 즉 이 작업을 통해 수신률이 낮아졌습니다.
NAT 부하 분산을 사용하는 BWM은 다음과 같은 방식으로 작동합니다.
a. : 두 인터페이스가 WAN으로 구성되어 있고 부하 분산이 사용하도록 설정되어 있지 않으면 BWM은 기본 WAN 인터페이스에만 적용됩니다.
b. : 두 인터페이스가 WAN으로 구성되어 있고 부하 분산이 사용하도록 설정되어 있으면 다음 사항이 적용됩니다.
: •: 활성/수동 장애 조치(failover)의 경우 활성 WAN 인터페이스에서만 BWM이 수행됩니다.
: •: 라운드 로빈 및 속도 옵션의 경우 링크 용량은 기본 및 보조 WAN 인터페이스에서 사용 가능한 BW의 합이며, 두 인터페이스에서 모두 BWM이 수행됩니다.
: •: : 스필오버 옵션의 경우 링크 용량은 기본 WAN의 사용 가능한 BW이며, BWM은 스필오버가 수행되기 전에 기본 인터페이스에서 수행됩니다. 그리고 스필오버가 수행된 후에는 보조 인터페이스의 용량이 사용되며 BWM이 보조 WAN 인터페이스에서 수행됩니다.
BWM(대역폭 관리) - 트래픽을 구성하거나 제어하는 데 사용되는 다양한 알고리즘 또는 방법을 총칭하는 명칭입니다. 여기서 구성은 아웃바운드 트래픽을 지칭하고, 제어는 인바운드 트래픽을 지칭하는 경우가 많습니다(허용 제어라고도 함). 다양한 큐 및 취소 기술을 비롯해 여러 가지 대역폭 관리 방법이 있으며, 각 방법에는 설계상의 장점이 있습니다. SonicWALL에서는 인바운드/아웃바운드 BWM용 토큰 기반 클래스 기반 큐 방법과 특정 유형의 인바운드 트래픽용 취소 메커니즘을 동시에 사용합니다.
• CoS(서비스 클래스) – 분류 후 트래픽에 적용되는 레이어 2 또는 레이어 3 태그와 같은 지정자/식별자입니다. CoS 정보는 QoS(서비스 품질) 시스템에서 네트워크의 각 트래픽 클래스를 구분하고 QoS 시스템 관리자가 정의한 특수 처리 기능(예: 우선 순위가 지정된 큐, 낮은 대기 시간 등)을 제공하는 데 사용됩니다.
• 분류 – 특정 트래픽 유형/클래스를 식별 또는 구분하는 작업입니다. QoS 컨텍스트에서는 지연, 대기 시간 또는 패킷 손실에 대한 트래픽 민감도를 기준으로 사용자 지정된 처리 방법(보통 우선 순위 지정 또는 우선 순위 지정 해제)을 제공하기 위해 분류를 수행합니다. SonicOS 내의 분류는 액세스 규칙을 사용하며 보안 영역, 대상 영역, 원본 주소 개체, 대상 주소 개체, 서비스 개체, 일정 개체 등의 요소 중 일부 또는 전부를 기준으로 수행될 수 있습니다.
• 코드 포인트 – 호스트 또는 중간 네트워크 장치가 IP 패킷의 DSCP 부분에 표시하거나 태그로 지정하는 값입니다. 현재 사용 가능한 코드 포인트는 0~63의 64개이며, 태그가 지정된 트래픽의 오름차순으로 우선 순위가 지정된 클래스를 정의하는 데 사용됩니다.
• 조건 – 네트워크 트래픽에 서비스 품질을 제공하는 여러 방법을 설명하는 데 사용되는 광범위한 용어입니다. 여기에는 삭제, 큐, 감시, 구성 등의 다양한 방법이 포함됩니다.
삭제 – 네트워크에서 혼잡이 발생할 수 있는 시기를 예측하고 한계 초과 트래픽을 삭제하는 방법으로 혼잡을 방지하기 위해 QoS 시스템에서 사용하는 혼잡 방지 메커니즘입니다. 삭제는 큐가 가득 차는 상황도 방지하므로 큐 관리 알고리즘으로도 생각할 수 있습니다. 고급 삭제 메커니즘은 중요한 트래픽 삭제를 방지하기 위해 CoS 표시를 따릅니다. 일반적으로 사용되는 방법은 다음과 같습니다.
– 후행 자르기 – 가득 찬 큐를 처리하는 임의 방법으로, 큐로 들어오는 마지막 패킷이 CoS 표시에 관계없이 삭제됩니다.
– RED(Random Early Detection, 무작위 조기 탐지) – RED는 큐 상태를 모니터링하여 큐가 가득 차는 시기를 예상합니다. 그런 다음 패킷을 지그재그형으로 임의 삭제하여 전역 동기화 가능성을 최소화합니다. 후행 자르기 등의 기본 RED 구현에서는 CoS 표시를 고려하지 않습니다.
– WRED(Weighted Random Early Detection, 가중 무작위 조기 탐지) – 삭제 결정 프로세스에서 DSCP 표시를 고려하는 RED 구현입니다.
• DSCP – Differentiate Services Code Points의 약어로, RFC2747에 설명된 대로 IP 헤더의 ToS 필드 용도를 변경하는 것입니다. DSCP에서는 64개 코드 포인트 값을 사용하여 DiffServ(Differentiated Services)를 사용하도록 설정합니다. 이처럼 해당 클래스에 따라 트래픽을 표시하면 네트워크의 모든 홉에서 각 패킷을 적절하게 처리할 수 있습니다.
• 전역 동기화 – 가득 찬 큐를 처리하기 위한 혼잡 방지 방법인 삭제의 잠재적 부작용입니다. 후행 자르기에서처럼 혼잡한 링크를 통과하는 여러 TCP 흐름이 동시에 삭제되는 경우 전역 동기화가 발생합니다. 이러한 각 흐름에 대해 기본 TCP 느린 시작 메커니즘이 거의 동시에 시작되면 흐름 때문에 또다시 링크에서 서비스 장애가 발생합니다. 그러면 혼잡과 사용률 저하 현상이 주기적으로 반복됩니다.
• 보장된 대역폭 – 인터페이스에서 사용 가능한 총 대역폭 중 항상 특정 트래픽 클래스에 부여되는 선언된 대역폭의 백분율입니다. 인바운드 BWM과 아웃바운드 BWM에 모두 적용됩니다. 모든 BWM 규칙의 보장된 총 대역폭은 사용 가능한 총 대역폭의 100%를 초과할 수 없습니다. SonicOS에서는 대역폭 관리 기능이 개선되어 속도 제한 기능이 제공됩니다. 이제 레이어 2, 3, 4 네트워크 트래픽의 최대 속도를 지정하는 트래픽 정책을 만들 수 있습니다. 그러면 기본 WAN 링크가 보조 연결로 장애 조치(failover)되었는데 해당 연결이 기본 링크만큼 트래픽을 처리할 수 없는 경우 대역폭 관리를 사용할 수 있습니다. 보장된 대역폭을 0%로 설정할 수도 있습니다.
• 인바운드(수신/IBWM) – 트래픽이 특정 인터페이스로 들어오는 속도를 구성하는 기능입니다. TCP 트래픽은 발신 승인(ACK)을 지연시켜서 보낸 사람이 속도를 낮추도록 해 수신 흐름의 속도를 조정할 수 있는 경우 실제로 구성할 수 있습니다. UDP에는 기본 피드백 컨트롤이 없으므로 UDP 트래픽에는 취소 메커니즘이 사용됩니다.
• IntServ – RFC1633에서 정의하는 통합 서비스(Integrated Services)입니다. DiffServ의 대체 CoS 시스템인 IntServ는 각 장치가 트래픽을 전송하기 전에 해당 네트워크 요구 사항을 요청하거나 예약하도록 한다는 점에서 DiffServ와 근본적으로 다릅니다. 이렇게 하려면 네트워크의 각 홉이 IntServ를 인식해야 할 뿐만 아니라 모든 흐름의 상태 정보를 유지 관리해야 합니다. SonicOS에서는 IntServ가 지원되지 않습니다. 가장 일반적인 IntServ 구현은 RSVP입니다.
• 최대 대역폭 – 인터페이스에서 사용 가능한 총 대역폭 중 특정 트래픽 클래스에 허용되는 최대 대역폭을 정의하는 선언된 대역폭의 백분율입니다. 인바운드 BWM과 아웃바운드 BWM에 모두 적용됩니다. 대역폭 속도 제한을 지정하는 제한 메커니즘으로 사용됩니다. 대역폭 관리 기능이 개선되어 속도 제한 기능이 제공됩니다. 이제 레이어 2, 3, 4 네트워크 트래픽의 최대 속도를 지정하는 트래픽 정책을 만들 수 있습니다. 그러면 기본 WAN 링크가 보조 연결로 장애 조치(failover)되었는데 해당 연결이 기본 링크만큼 트래픽을 처리할 수 없는 경우 대역폭 관리를 사용할 수 있습니다. 최대 대역폭을 0%로 설정할 수 있는데, 그러면 모든 트래픽이 차단됩니다.
• 아웃바운드(발신/OBWM) – 트래픽이 인터페이스에서 나가는 속도의 조건을 지정합니다. 아웃바운드 BWM은 8가지 우선 순위 링이 포함된 크레딧(토큰) 기반 큐 시스템을 사용하여 액세스 규칙에 따라 분류된 각 트래픽 유형을 처리합니다.
• 우선 순위 – 트래픽 분류에서 사용되는 추가 차원입니다. SonicOS에서는 8가지 우선 순위 링(0 = 가장 높음, 7 = 가장 낮음)을 사용하여 BWM에 사용되는 큐 구조를 구성합니다. 큐는 우선 순위 링 순서대로 처리됩니다.
MPLS – Multi Protocol Label Switching(다중 프로토콜 레이블 전환)의 약어로, QoS 분야에서 자주 등장하는 용어지만 SonicWALL 어플라이언스를 비롯한 대부분의 고객 프레미스 IP 네트워킹 장치에서는 기본적으로 지원되지 않습니다. MPLS는 네트워크에 연결 중심 경로(LSP: 레이블 전환 경로) 개념을 추가하여 IP 네트워크 환경을 개선하려는 사업자 클래스 네트워크 서비스입니다. 고객 프레미스 네트워크에서 전송되는 패킷에는 LER(레이블 에지 라우터)로 태그가 지정되므로 레이블을 사용하여 LSP를 확인할 수 있습니다. MPLS 태그 자체는 레이어 2와 레이어 3 사이에 상주하며 두 네트워크 레이어의 MPLS 특징에 모두 적용됩니다. VPN 분야에서 널리 사용되는 MPLS는 레이어 2 및 레이어 3 VPN 서비스를 모두 제공하는 동시에 기존의 IPsec VPN 구현과도 계속 상호 운용할 수 있습니다. 또한 MPLS는 QoS 기능을 제공하며 기존 DSCP 표시와도 효율적으로 상호 운용되는 것으로도 유명합니다.
• PHB(홉당 동작) – 패킷이 통과하는 각 DiffServ 가능 라우터에서 패킷의 DSCP 분류에 따라 패킷에 적용하는 처리 방식입니다. 이러한 동작으로는 삭제, 다시 표시(다시 분류), 최상의 노력, AF(Assured Forwarding), 긴급 전달 등의 작업이 있습니다.
• 감시 – 네트워크 링크를 드나드는 트래픽의 속도를 제어하는 트래픽 조건 지정 기능입니다. 감시 방법으로는 임의 패킷 삭제, 알고리즘 방식 구성, 다양한 큐 분야 등이 있습니다.
• 큐 – 큐는 사용 가능한 링크 대역폭을 효율적으로 사용하기 위해서 보통 분류된 트래픽을 정렬하고 개별적으로 관리하는 데 사용됩니다. 그런 다음 여러 가지 방법과 알고리즘으로 큐를 관리하여 우선 순위가 높은 큐가 항상 트래픽을 더 받을 수 있도록 하고 우선 순위가 낮은 큐보다 먼저 서비스를 받을 수 있도록 합니다(큐에서 제거되거나 처리됨). 몇 가지 일반적인 큐 분야는 다음과 같습니다.
– FIFO – 선입 선출(First In First Out) 방식으로, 먼저 들어온 패킷이 먼저 처리되는 매우 단순한 임의 큐입니다.
– CBQ(클래스 기반 큐) – 우선 순위가 높은 트래픽이 우선 처리되도록 패킷의 CoS를 고려하는 큐 분야입니다.
– WFQ(가중 공평 큐) – 패킷의 IP 우선 순위와 총 흐름 수를 기준으로 하는 간단한 수식을 사용해 큐를 처리하는 분야입니다. WFQ는 처리해야 하는 우선 순위가 높은 흐름이 매우 많은 경우 불균형 상태가 되기 쉬운데, 바람직하지 않은 경우가 많습니다.
– 토큰 기반 CBQ – 토큰(점수 기반 시스템)을 사용하는 향상된 CBQ로, 링크 사용률을 평탄화/정규화하여 버스트와 사용률 저하를 방지합니다. SonicOS의 BWM에 적용되는 방식이기도 합니다.
• RSVP – Resource Reservation Protocol의 약어입니다. 일부 응용 프로그램에서 사용하는 IntServ 신호 프로토콜로, 필요할 것으로 예상되는 네트워크 동작(예: 지연 및 대역폭)을 네트워크 경로에서 예약할 수 있도록 요청하는 방식입니다. 이 Reservation Protocol을 설정하려면 경로의 각 홉이 RSVP를 사용할 수 있어야 하고 요청된 리소스 예약에 동의해야 합니다. 이 QoS 시스템의 경우 각 홉이 기존 흐름의 상태를 유지 관리해야 하므로 리소스를 비교적 많이 사용합니다. IntServ의 RSVP는 DiffServ의 DSCP와는 크게 다르지만 RSVP와 DSCP는 상호 운용할 수 있습니다. SonicOS에서는 RSVP가 지원되지 않습니다.
• 구성 – 보통 보낸 사람에게 일부 피드백 메커니즘을 적용하여 QoS 시스템에서 트래픽 흐름 속도를 수정하려는 시도입니다. 이러한 작업의 가장 일반적인 예로는 TCP 속도 조작이 있습니다. 여기서는 계산되는 RTT(왕복 시간)를 늘리기 위해 TCP 보낸 사람에게 다시 전송되는 승인(ACK)이 대기 및 지연되는데, 이때 TCP의 기본 동작을 사용하여 보낸 사람이 데이터를 전송하는 속도를 줄이도록 강제 지정합니다.
• ToS(서비스 유형) – CoS 정보를 지정할 수 있는 IP 헤더 내의 필드입니다. 다소 드물기는 하지만 그동안 IP 우선 순위 비트와 함께 CoS를 정의하는 데 사용되었습니다. 현재 ToS 필드는 DiffServ의 코드 포인트 값에 일반적으로 사용됩니다.