CISCO QOS

Network/Cisco 2008.06.25 20:18 |
QoS를 구현을 위해서 CISCO에서는 MQC라는 것을 사용하는데요..

간단히 정리하면 아래와 같습니다.

Class-map
Router(config)#class-map <match-all | match-any> class-map-name
Router(config-cmap)#[no] match <ip precedence | ip dscp | access-group>

Policy-map Class Action
Router(config)#policy-map policy-map-name
Router(config-pmap)#class class-name
Router(config-pmap-c)#[no] <police | set | trust>

Service-policy
Router(config)#interface interface-name
Router(config-if)#[no] service-policy input policy-map-name

간단히 Class-map는 어떤 패킷에 대한 정의를 하는 것이고 Policy-map에서는 적용한 것에 대한 어떤 행동을 할것인가...?? 끝으로 Service-policy에서는 인터페이스에 적용하는 이 3가지만 알고 있으면  QoS에 대해서는 어느정도 다했다고 생각하시면 됩니다. 물론 CISCO에서...
하나하나 설명드리면 가장 좋겠지만.. 다 설명드리려니 거의 책한권은 될것 같아서 가장 간단한 속도 제어하는 예제로 설명드리고 추가로 조금씩 설명드리겠습니다. 궁금한점은 "묻고답하고"에 글남겨 주시면 아마도 저희 카페 전문가분들이 답변해 주실것 같네요...^^

예제는 특정 네트워크에 대해서 10M 속도로 제공하는 것을 기준으로 예제를 작성하였습니다. 우선 모든 네트워크는 그냥 Permit 하고 192.1.1.0 네트워크는 10M로 속도 제어하려고 합니다. [참고로 CISCO 6509에서 실습한 예제입니다.]

1. 제일먼저 Access-list를 만들어야겠죠.

Router# configure terminal
Router(config)#access-list 2000 permit ip any any

Router(config)#access-list 2110 permit ip any 192.1.1.0 0.0.0.255 <- 10M 로 속도 제어하기위해서

Router# configure terminal
2. Router(config)# mls qos <-- PFC에서 QoS를 enable해야함.[필]
Router(config)# end

참고로 PFC[Policy Feature Card]에서 패킷분류, Policing 등의 QoS 기능을 수행합니다.


Class-map 작성
먼저 Class-map을 작성하는데요. 10M 과uplink_10M 이렇게 두개를  만들었습니다. 왜 두개를 만들었냐면 CISCO6509에서는 하나의 포트에서 input 패킷에 대해서만 속도제어가 가능하기 때문에 즉 가입자 입장에서는 up 속도만 제어가 되기 때문에 상위의 uplink 포트에서도 속도를 제어하면 down 스트림도 속도가 제어가능하겠죠. 아.. 어렵다고요... 저도 설명하기 힘드네요.. 그럼 그림으로 쉽게..


아래의 그림을 보시면 Backbone과 연결되어 있는 포트 들어오는 패킷에 대해서는 속도제어가 가능하지만 나가는 패킷에 대해서는 속도 제어가 가능하지 못하죠. 또 가입자 쪽으로 연결된 포트도 마찬가지로 들어오는 패킷은 속도제어가 가능한데 나가는 패킷은 불가능합니다. 당연히 Service 포트에서 input/output 포트 다 10M로 제한한다면 가장 좋겠지만 6509에서는 input 패킷에 대해서만 되기 때문에 어쩔수 없이 uplink포트에도 10M로 제한해야합니다. 참고로 input/output 모두 되는 기종은 GSR입니다.


class-map match-all 10M
  match access-group 2000

class-map match-all uplink_10M
  match access-group 2110

이렇게 두개를 만들었습니다. 이름은 아무것이나 주면 되는데 우선 가입자 10M로 그리고 uplink_10M는 업링크포트로 주도록 하겠습니다. 우선 Class-map에서 어떤 패킷인지 정의를 했습니다. 먼저 access-group 2000는 access-list 2000에 정의던 모든 ip에 대해서 trust 를 맞었고 192.1.1.0네트워크에 대해서 uplink_10M와 trust를 맞었습니다. 이거 말고도 cos,dscp 등 가입자에서 올라오는 패킷중 QoS를 목적으로 패킷에 마킹된 패킷에 대해서도 Trust해서 policy-map에서 처리할 수도 있습니다.


먼저 policy-map 이름을 uplink로 주고.
두번째 class는 위의 uplink_10M 에 정의 된 패킷이 들어오면 아래 Police를 실행하겠다는 의미 정도로 이해하시면 될것 같네요.
police 첫번째 숫자는 Rate [속도] 두번째/세배째 숫째는 Burst 끝으로 Action



policy-map uplink
class uplink_10M
    police 10000000 312500 312500 conform-action transmit exceed-action drop

policy-map 10M
  class 10M
    police 10000000 312500 312500 conform-action transmit exceed-action drop

이해가 가시는지요? 혹시 프로그램관련 해서 배운것 중에 if~ than ~else구문 아시죠?
if class=10M 이면 police 10000000 312500 312500 conform-action transmit 실행하고 else exceed-action drop
간단히 표현 하면 이렇습니다.

끝으로 서비스를 적용하는 구문  uplink포트에 policy-map uplink를 적용하고 가입자 포트에 10M를 적용하면 끝나죠. 참고로  Service-policy  다음엔 input /output이 있는데 조금전이 이야기한것 처럼 6500시리즈와 4000시리즈에서는 input만 됩니다. 그런데 가입자 포트는 모든 패킷에 대해서 10M인 반면에 업링크포트에서는 192.1.1.0 네트워크에 대해서만 10M인 이유는 업링크포트에는 192.1.1.0 네트워크 말고도 다른 네트워크가 지나갈수 있기 때문에 하나만 선택해서 Rate를 걸었습니다.

interface GigabitEthernet1/1
speed nonegotiate
service-policy input uplink


interface GigabitEthernet3/1
ip address 192.1.1.254 255.255.255.0
speed nonegotiate
service-policy input 10M

설명하다보니 상당히 길었는데요.. 이것말도 아직 무지하게 많습니다. 다 설명드리긴 조금 힘들고.. 다음시간에 간단한 것들에 대한 개념과 예제로 마칠까 합니다.

참고로 장비메뉴얼-cisco-"CISCO QoS 관련 설정 방법[MQC] 영문" 이것 보시면 조금이나마 이해하시는데 도움 될것 같습니다.

<출처 : http://cafe.naver.com/neteg.cafe >




댓글을 달아 주세요

티스토리 툴바