목차/09. QoS 관리

09QoS 관리Managing QoS

이 장은 QoS를 실제로 구성하고 운영하는 작업들 을 모았습니다. 전역 속성과 인터페이스 속성을 잡는 일, 정책과 규칙을 만들고 고치는 일, DiffServ·LLQ 클래스를 인터페이스에 거는 일, 그리고 로깅을 켜는 일까지가 한 흐름입니다. 모든 절차는 SmartConsole을 연 상태를 전제로 합니다.

QoS 전역 속성

전역 속성에는 규칙 파라미터의 기본값과 측정 단위 가 들어 있습니다. SmartConsole의 Application Menu > Global properties > QoS 에서 잡는데(이때 SmartDashboard는 닫아 두어야 합니다), 핵심은 세 가지입니다. Maximum weight of rule(규칙에 줄 수 있는 최대 가중치, 기본 1000), Default weight of rule(새 규칙·Default에 기본으로 주는 가중치), 그리고 Unit of measure(전송률 단위, 예: Bps) 입니다. Set Default 로 기본값을 저장합니다.

인터페이스 QoS 속성

QoS가 트래픽을 통제하려면 먼저 게이트웨이와 그 인터페이스를 네트워크 객체로 정의 해야 합니다. 그다음 인터페이스 속성 창의 QoS 탭 에서 Inbound·Outbound 활성 전송률을 정하고 DiffServ·LLQ 클래스를 지정 합니다. 이 QoS 탭은 게이트웨이의 General Properties에서 QoS가 선택된 경우에만 활성화됩니다.

설정은 SmartConsole에서 게이트웨이 객체를 열어 Network Management 로 간 뒤(인터페이스 목록이 없으면 Get Interface), 대상 인터페이스를 더블클릭해 QoS 탭 에서 합니다. DiffServ·LLQ 클래스는 여기서 Add/Edit/Remove 합니다.

여기엔 실무에서 꼭 알아야 할 원칙 이 있습니다. WAN 쪽(또는 느린 망 쪽) 인터페이스를 active로 두는 것이 보통이고, 인터페이스가 둘뿐이면 WAN 연결 인터페이스에만 QoS를 켭 니다. 그리고 무엇보다 정한 전송률(Rate)이 인터페이스의 실제 물리 용량과 맞아야 합니다 — QoS는 이를 자동으로 확인해 주지 않습니다. 정한 값이 물리 용량보다 작으면 그만큼만 쓰고(남는 건 안 씀), 크면 QoS가 트래픽을 제대로 통제하지 못 합니다.

QoS 정책 다루기

QoS 정책은 Rule Base에 순서대로 놓인 규칙들 입니다. 우리가 만든 규칙과 자동 생성된 Default Rule로 이뤄지고, Default는 수정만 되고 삭제는 안 되며 항상 맨 마지막 에 있습니다. Rule Base는 패킷을 어떻게 다룰지(출발지·목적지·서비스·시간·로깅)를 정하며, 만든 정책은 관련 게이트웨이와 인터페이스에 설치 해야 효력이 생깁니다.

새 정책은 File > Manage Policies and Layers > New 에서 만듭니다. 이름 규칙은 튜토리얼에서 본 것과 같고(예약어·공백·선두 숫자·특수문자·.pf/.W 금지), QoS 를 선택한 뒤 Express/Recommended를 고르면 SmartDashboard가 자동으로 열립니다. 기존 정책은 Security Policies > Manage Policies 에서 QoS 정책을 더블클릭해 엽니다.

규칙 만들고 고치기

규칙은 SmartDashboard에서 다룹니다. Default Rule이 항상 맨 아래여야 하므로, 새 규칙은 맨 마지막 규칙 뒤를 빼고 어디든 넣을 수 있습니다. QoS 탭에서 원하는 위치를 잡고 Rule 메뉴·툴바·우클릭으로 규칙을 추가한 뒤 이름을 정하면, 전역 속성의 기본값으로 규칙이 생성 됩니다. 추가 위치는 메뉴에서 맨 아래(Bottom)·맨 위(Top)·현재 규칙 아래(Below)·위(Above)·서브 규칙(Add Sub-Rule) 중에 고릅니다.

규칙을 우클릭하면 규칙 추가·삭제·복사·잘라내기·붙여넣기, Class of Service 추가, 숨기기(Hide)·비활성화(Disable)·이름 변경 같은 명령을 쓸 수 있습니다. Hide화면에서만 감추고 설치 때는 포함 되며, DisableRule Base에 보이되 집행되지 않 습니다.

규칙의 각 필드 수정

규칙의 필드는 원하는 만큼 몇 번이고 고칠 수 있습니다. Source·Destination·Service 는 해당 열을 우클릭해 Add 로 객체를 더하고(원하는 만큼, 단 Service의 URI for QoS 리소스는 규칙당 하나만), Edit·Delete·Cut·Copy·Paste로 다듬습니다. 마지막 객체를 지우면 Any로 대체 되며, Where Used 로 그 객체가 어디 쓰이는지 볼 수 있습니다. Source에는 Add Users Access 로 사용자 그룹을 더하고 위치 제한(No restriction / Restrict to)도 걸 수 있습니다.

리소스를 단 서비스를 더할 때는 Add with Resources 를 쓰며, QoS에는 URI for QoS 타입 리소스만 됩니다. URI를 쓸 땐 http:// 같은 프로토콜 접두어를 빼 고 적습니다(전체 URI: www.my-site.com/pic/qos.gif, 상대 URI: /pic/qos.gif). QoS가 지원하는 정규표현식은 a*b 형태이며, 자세한 문법은 정규표현식 부록을 봅니다.

Action 은 Action 열을 우클릭해 Edit Properties 로 엽니다. Simple이면 암호화 트래픽 전용 여부·Rule Weight·Rule Limit·Rule Guarantee 를, Advanced면 거기에 Per connection limit, Guarantee Allocation(Per rule/Per connection), Number of guaranteed connections, Accept additional connections 가 더해집니다(Express에서는 Advanced 불가).

이 밖에 Track(로깅: None·Log·Account), Install On(규칙을 집행할 인터페이스 — QoS가 General Properties에서 켜져 있고 인터페이스가 QoS 탭에 정의되어야 함), Time(집행 시간대), Comment 도 같은 방식(우클릭 → Add/Edit)으로 다룹니다. Action을 기본값으로 되돌리려면 Reset to Default 를 씁니다.

서브 규칙 정의와 보기

서브 규칙은 규칙 안에서 대역폭을 더 잘게 나누는 규칙입니다. 규칙 이름 열을 우클릭해 Add Sub-Rule 을 고르면, 기본값을 가진 새 서브 규칙과 서브 Default가 함께 자동 생성 됩니다. 수정·추가 방법은 일반 규칙과 같습니다. 서브 규칙은 QoS Rule Tree에서 부모 규칙을 펼쳐 보며, 서브 규칙 하나를 클릭하면 Rule Base에 그 묶음 전체가 나타납니다.

DiffServ 다루기

DiffServ 규칙도 일반 규칙처럼 QoS Class와 가중치를 갖고, 그 가중치는 규칙이 설치된 인터페이스에서만 적용 됩니다(개념은 고급 정책 관리 참고).

DiffServ Class of Service 는 SmartDashboard의 Manage > QoS > QoS Classes 에서 New > DiffServ Class of Service 로 만들며, 이름·코멘트·색·타입(미리 정의/사용자 정의)을 정합니다(DiffServ code는 읽기 전용 비트맵 표시). 여러 클래스를 묶는 Class of Service Group 도 같은 메뉴에서 만듭니다.

인터페이스에 DiffServ를 걸려면, 게이트웨이 객체의 Network Management 에서 인터페이스를 열어 QoS 탭 > Add > DiffServ Classes > Others 로 클래스를 더하고, Inbound/Outbound를 활성화해 Rate를 잡은 뒤 Guaranteed bandwidth(우선 표시할 보장 대역폭)와 Bandwidth Limit(이 클래스 최대 대역폭) 를 (최소 한 방향) 설정합니다. Rule Base에는 규칙 이름의 Add Class of Service > Above/Below 로 클래스 헤더를 더하는데, 첫 클래스를 정의하면 그 바로 아래 Best_Effort 헤더 가 나타납니다.

Expedited Forwarding 클래스 속성은 인터페이스 QoS 탭의 Add/Edit에서 DiffServ Classes > Expedited Forwarding 으로 잡으며, Constant Bit Rate와 Maximal Delay 를 (최소 한 방향) 정합니다(지연을 넘긴 패킷은 드롭). 일반 DiffServ 클래스 속성은 Others 로 잡으며 Guaranteed bandwidth와 Bandwidth Limit 를 정합니다(예: 용량 256MB·제한 192MB면 192MB 초과분은 표시 안 됨).

LLQ 다루기

LLQ는 음성·영상 같은 지연 민감 애플리케이션을 위한 특수 클래스 입니다(개념은 고급 정책 관리 참고).

Low Latency ClassManage > QoS > QoS Classes > New > Low Latency Class of Service 로 만들어 이름·코멘트·색·타입을 정합니다. 인터페이스에 걸려면 SmartDashboard를 닫은 상태 에서 SmartConsole의 게이트웨이 객체 → Network Management → 인터페이스 → QoS 탭 으로 가, Inbound/Outbound 활성화 후 Add > Low Latency Classes 로 클래스를 고르고 Constant Bit Rate와 Maximal Delay 를 (최소 한 방향) 정합니다(지연 초과 패킷은 드롭). Expedited Forwarding을 DiffServ처럼만 쓰려면 Maximal Delay를 99999로 둡니다.

게이트웨이 상태 보기

QoS Security Gateway 상태는 SmartConsole의 Gateways & Servers 에서 게이트웨이를 클릭하면 아래쪽 Summary 탭 에 나타납니다.

로그 수집 켜기

연결이 로그에 남으려면 두 조건 이 맞아야 합니다. 게이트웨이 속성의 Additional Logging에서 QoS 로깅 플래그가 켜져 있어야 하고(기본으로 켜짐), 그 연결에 매칭되는 규칙의 Track 필드가 Log 또는 Account 로 표시되어야 합니다. 규칙이 로깅되는지 확인하려면 SmartDashboard에서 규칙을 골라 Track 필드에 Log 또는 Account가 있는지 봅니다. 로그가 실제로 어떻게 보이는지는 Logs & Events에서 다룹니다.