네트워크 트래픽 모니터링에 관한 글

반응형

몇주 전 지인분께서 네트워크쪽은 트래픽 모니터링을 어떻게 하나요? 라고 물어보셔서 트래픽을 모니터링하고 네트워크 스위치에서 직접 제어했던 경험을 바탕으로 글을 쓰게 되었다. 필자는 네트워크 엔지니어로 근무하면서 오픈소스를 통해 성능 및 트래픽을 모니터링하고, 스위치 장비에서 QoS 를 제어하는 방식으로 운영해왔다. 내가 엔지니어로 근무하면서 경험했던 내용을 바탕으로 쓸 예정이라 여러분과 상황이 다를 수 있음! 물론 내용도 틀릴 수 있음! (피드백 환영합니다.)


1. 트래픽 모니터링과 QoS 제어는 왜 필요할까?

이전 회사에서 근무하면서 트래픽 이슈는 심심치 않게 겪을 수 있었다. 대부분의 원인은 특정 시간대에 특정 부서에서 많은 다운로드(혹은 드물게 업로드)를 하게 되고, ISP 회선 트래픽의 최대 대역폭까지 끌어쓰게되면서 같은 회선을 사용하는 다른 부서의 망에도 영향을 끼치는 것이다. 예를 들어 기업회선 10G 짜리를 사용하고 있는데, 트래픽이 엄청나게 몰려 8~9G 까지 쓰거나, Burst Traffic이 10G 이상 치는 경우 전사 사내망에 병목현상이 생기면서 느려지게 된다. 이러한 트래픽 이슈가 생기면 네트워크 엔지니어는 이를 빨리 감지하고, 비정상적인 트래픽에 대해서는 적절한 조치를 취해주어야 한다. 가만히 놔둬서 사내망이 전부 느려지면 정말 중요한 작업을 해야하는 경우 문제가 될 수 있으니 항상 모니터링될 수 있는 환경을 갖춰놓는 것이 좋다.

 


2. 스위치에서 QoS 제어하기

네트워크에서 QoS 를 보장하는 방법은 여러가지가 있겠지만, 오늘은 딱 네트워크 스위치 장비에서 사용자 포트(혹은 서비스 포트)에 대해 트래픽을 제어하는 방법에 대해 써보려고 한다. 범용적으로 쓰이는 Cisco 기준으로 작성하겠지만, 벤더사, 모델 등에 따라 Config와 동작은 달라질 수 있으니 참고만 하면 좋을 것 같다.

 

2.1) Service-Policy 설정

네트워크 스위치에서 제공하는 Qos(Quality of Service) 기능을 사용하면 특정 네트워크 트래픽에 대해 제어가 가능하다. Service-policy는 아래와 같이 class-map과 policy-map 으로 구성된다.

 

  • Class-Map: 트래픽 분류
    • 트래픽을 분류하는 역할로 ACL, Vlan, Protocol 혹은 Layer3/4 속성(ip 주소, Port 번호 등)을 기준으로 트래픽을 식별할 수 있다.
    • class-map은 여러 개 생성가능하고, 아래의 명령어는 ip 로 통신하는 트래픽에 대해 class-map을 생성하는 Configuration 이다. ( 생성된 class-map을 확인하는 명령어는 show class-map )
Switch(config)#class-map Class1
Switch(config-cmap)#match protocol ip

 

  • Policy-Map: 동작 정의
    • Class Map에서 정의한 트래픽에 대해 수행할 작업(Action, Rule 등)을 지정한다.
    • 아래는 QOS 명칭을 가진 policy-map에 Class1 이름을 가진 class-map 을 매핑하고, <value> 값을 초과하는 트래픽에 대해서는 drop 하도록 설정하는 명령어이다. (Policy-Map의 Qos는 drop 을 통해 초과한 트래픽을 버릴 수도 있고, Shaping 을 통해 트래픽을 버퍼링하여 균등하게 전달할 수도 있다.)
Switch(config)#policy-map QOS     // QOS 명칭의 policy-map 생성
Switch(config-pmap)#class Class1  // policy-map QOS에 class 매핑
Switch(config-pmap)#police <1-10000000> <1-10000000> exceed-action drop  // 수행할 작업을 지정

 

2.2) 스위치에서 Service-Policy 사용 예

Global Configuration 설정

아래는 스위치 Global Configuration 으로 적용한 Service-policy 이다. policy-map 을 다운링크, 업링크에 대해 각각 트래픽 제어 룰을 설정해도되고, QOS 라는 명칭으로 하나 생성 후 동일 rule 을 적용해도 된다. 어느쪽이든 요구사항에 맞게 제어하는 것이 중요! 여기서는 QOS 명칭의 policy-map 을 사용했다.

!
class-map C1
!
policy-map Downlink_Limit
!
policy-map Uplink_Limit
!
policy-map QOS
class C1
police 500000 500000 exceed-action drop
!

 

인터페이스에 정책 적용

위에서 policy-map 을 생성했으면 스위치의 인터페이스에 적용이 가능하다. ACL과 마찬가지로 input 혹은 output 방향으로 설정할 수 있다.

Switch# configure terminal
Switch(config)#interface TenGigabitEthernet 0/1
Switch(config-if-TenGi0/1)#service-policy input QOS
Switch(config-if-TenGi0/1)#end

 


 

스위치에서 QoS 제어 테스트 결과

필자는 위와 같은 테스트 망 구성에서 Swtich에 글로벌 설정 후, Downlink 쪽 인터페이스에 Policy-map 설정을 input 으로 넣어주었다. 먼저 트래픽 제한을 하지 않았을 때 업로드 및 다운로드 속도 측정을 해보았다. 속도 측정은 구글에 speedtest 라고 쳐도 나오고, 인터넷 속도 측정 이라고 치면 NIA 사이트가 나오는데 여기서는 NIA 를 기준으로 작성하였다. 업로드는 약 978 Mbps, 다운도르 약 984 Mbps 로 1G 속도의 정상 범주 내에 있다.

 

이제 여기서 스위치의 class-map Class1을 설정하여 각각 100 Mbps, 500 Mbps 로 속도를 제어해보았다.

 위와 같이 속도제어가 되는 모습을 확인할 수 있다. QoS 제어는 방화벽에서도 특정 어플리케이션이나 프로토콜별로 제어도 가능하고, 스위치에서도 단순 ip 트래픽만 제어하는 것이 아닌, acl 별, 프로토콜 별, tcp flag 별 등등 다양하게 활용할 수 있다. vlan, ACL이나 http, https 등 트래픽 종류에 따른 제어를 통해 관리자와 사용자의 요구사항에 맞게 조절함으로써 트래픽에 우선순위를 둘 수 있을 것 같다. 생각보다 별거없는(?) 네트워크 스위치에서 트래픽 제어하기 포스팅 끝!

반응형