티스토리 뷰

요즘 나오는 외산 또는 국산 L3/L2 스위치들은 기본적으로 rate-limit 기능을 탑재하고 있다. 

 

기업/PC방을 대상으로 한 전용회선 서비스에서 속도 제어는 월 과금과 관련해 아주 큰 이슈를 담고 있기 때문에, 속도제어는 메트로 스위치의 꽃이라고 볼 수 있다.

 

국산 장비들을 예로 들어보면,

유비쿼스(로커스) 장비는 rate-limit ingress/egress 명령,

라오넷 장비는 rate-limit output/input 명령,

다산 장비는 set rate 명령일 것이다.

 

또한 요즘 문제시 되는 보안이나 바이러스, 해킹, DDoS 등의 이슈로 인하여, 메트로S/W의 성능은 날이 갈수록 진화 및 발전하고 있다.

 

 

 

오늘 얘기할 내용은 메트로S/W의 꽃인 상/하향 속도제어가 아닌 기존 백본급 스위치 (요즘에는 C6506/C6509는 백본급도 아닌듯) 에서 속도제어하는 방법에 대해 알아볼 것이다.

 

다음 절에는 C6509 급과 비슷하게 출시된 엔터프라이즈 급 C4510R 과 중소형급으로 출시된 캠퍼스 급 C3750의 속도제어에 대해 알아보도록 하겠다.

 

참고로 이번 셋팅에 사용된 장비는 C6506으로 Native OS 를 바탕으로 하였다.

 

본론으로 들어가서,

 

C6506는 Access-list와 class-map, Policy-map을 이용하여 속도를 제어한다.

police 정책을 이용하여 실제 액션을 취할 조건을 만들어준다.


.


 

#사전 작업

mls qos (Cisco 장비는 qos 명령이 들어가야지만 큐값을 조절할 수 있다)

 

1. ACLs (Access-list) 만들기

access-list 10 permit any

  -> 모든 ip에 대하여 standard access-list를 만든다.

 

2. Class-map 만들기 (여기서는 10M 제어와 20M 제어 2가지를 예를 들기 위해 2개의 Class-map을 만듬)

class-map match-all 20M_RATE_LIMIT_C
  match access-group 10
class-map match-all 10M_RATE_LIMIT_C
  match access-group 10

 

3. Policy-map 만들기 (여기도 실제 적용하는 policy-map을 만들기 위해 2개의 이름으로 만듬)

policy-map 10M_RATE_LIMIT_P
  class 10M_RATE_LIMIT_C
     police 10000000 1875000 1875000 conform-action transmit exceed-action drop
policy-map 20M_RATE_LIMIT_P
  class 20M_RATE_LIMIT_C
     police 20000000 3750000 3750000 conform-action transmit exceed-action drop

 

4. interface에 inbound 방향으로 적용 (Co Location 서비스를 위한 작업을 예로 들었으며 사용자들이 해당 서버로부터 받아가는 데이터양이 많기 때문에 장비의 input 방향으로적용)

 

interface Vlan400
 service-policy input 20M_RATE_LIMIT_P

!

interface Vlan401

 service-policy input 10M_RATE_LIMIT_P

 

-----

 

이렇게 1~4단계를 거쳐 설정을 한 후 최종 L3 interface에 설정하면 즉시 적용이 된다.

 

이제 하나하나 알아보도록 하자.

 

ACLs 는 다들 아시겠지만 모든 ip를 대상으로 해야 하기에 any 로 처리했으며,

 

Class-map은 단지 access-group 명령으로 ACLs를 매칭만 시켰다.

 

그리고 Policy-map 에서는 해당 class를 매칭한 후 실제 동작할 내용을 설정하였다.

 

     police 10000000 1875000 1875000 conform-action transmit exceed-action drop

 

이 police 는 Cisco에서 정해진 정책으로 진행이 되니 그 정책에 따라주면 되겠다.

 

police -> police 정책으로 패킷 제어를 하겠다.

10000000 -> Bits per second (Bit 단위이므로 이 수치는 10M 이다)

1875000 ->  Normal burst bytes (20M 일 경우 3750000 가 된다)

1875000 -> Maximum burst bytes (burst bytes로 환산된 위의 값과 동일하며, 20M 일 경우 3750000)

conform-action transmit -> 범위에 들어오거나 딱 떨어지는 범위의 패킷은 transmit 시킴 (전송)

exceed-action drop -> 초과되거나 벗어난 범위의 패킷은 drop 시킴 (폐기)

 

-----

 

C6506/C6509에서는 Policy-map 에서 위와 같은 속성 값으로 대역폭을 제어하고 있다.

 

다음 절에 넘어가기 전에 간단한 명령만 소개해 보겠다.

 

 

 

C4510 Traffic Shaping 예제 (200M shaping)

qos
!
policy-map SHAPE
 class class-default
  set dscp 17
!
qos map dscp 17 to tx-queue 2
!
inter gi x/x
 service-policy output SHAPE
 tx-queue 2
 shape percent 20
!

확인하는 명령어
!
show qos interface gig x/x
!
show qos maps dscp tx-queue

!

 

C4510 Traffic Policing 예제 (200M Policing)

qos
!
policy-map POLICING
 class class-default
  police 200 mbps 8000 byte conform-action transmit exceed-action drop
!
inter gi x/x
 service-policy output POLICING
!
show policy interface gi x/x
!
show qos interface gi x/x
!

 

 

 

C3750 Traffic Shaping (200M Shaping)

mls qos
!
access-list 199 permit ip any x.x.x.x 0.0.0.255
!
class-map match-all CUSTOMER
  match access-group 199
!
policy-map SHAPING-MARK
  class CUSTOMER
   set dscp 17
!
inter gi x/x
 service-policy output SHAPING-MARK
 srr-queue bandwidth shape 0 5 0 0

!

 

C3750 Traffic Policing (200M Policing)

mls qos
!
access-list 199 permit ip any x.x.x.x 0.0.0.255
!
class-map match-all CUSTOMER
  match access-group 199
!
policy-map POLICING
  class CUSTOMER
    police 200000000 8000 exceed-action drop
!
inter gi x/x
 des << Uplink Gig Port >>
 service-policy input POLICING

!

 

C4510R/C3750 등에서도 Shaping 과 Policing 을 이용한 속도제어가 가능하며, C4510 의 경우에는 DSCP 큐를 이용한 % (퍼센테이지)로 환산하는 방법도 제공하고 있다.

 

이 모든 명령어는 IOS 버전별로 다르게 지원되니 꼭 확인하고 진행하기 바란다.

 

-----

 

이러한 Shaping 이나 Policing 은 ip를 기반으로 하는 정책이므로, 특정 ip블록에 대한 제어도 가능하다.

 

하지만 ip블록에 기반한 ACLs를 만들게 되면, dynamic routing 정보 등에서 잘못 제어될 수 있는 경우가 있기 때문에, 보통은 전체 ip블록에 대한 ACLs를 이용하여 port-based 또는 vlan-based로 적용하는 경우가 많다.

 

-----

 

여기서는 간단하게 예를 한가지만 들어 설명을 하였고, Cisco TAC 등에서 자료를 얻을 수 있을 것이다.


#Cisco TAC 바로가기#

 

어떠한 서비스를 위하여 C6506/C6509에서 속도제어를 해야만 하는 경우, 이 방법을 사용하면 서비스에 맞는 속도를 얻을 수 있을 것이다.

 

도움이 되셨다면 추천이나 댓글 추천! ^^v



댓글