검색 전체 메뉴
PDF
맨 위로
OA 학술지
다중큐잉 실시간 트래픽쉐이핑을 적용한 네트워크간 VPN 지원 유무선공유기 시스템 Wired/Wireless Gateway System Supporting LAN-to-LAN VPN with Multi-Queuing Realtime Traffic Shaping
  • 비영리 CC BY-NC
  • 비영리 CC BY-NC
ABSTRACT
다중큐잉 실시간 트래픽쉐이핑을 적용한 네트워크간 VPN 지원 유무선공유기 시스템

In order to build network infrastructure to implement the aforementioned advantages enabling smart device users to work anywhere, professional support and expensive VPN devices are required. This is a barrier to supplying VPN devices to small and medium-sized institutes. To address this issue, this study aims to implement OpenVPN, OpenSSH and iproute based on the OpenWRT platform which is an embedded OS for open networks in affordable open wired/wireless gateway H/W platforms to support the inter-network VPN. In addition, the network environment can be maintained optimal by applying a "multi-queuing real-time traffic shaping technology" to VPN tunnels, although channel quality changes.

KEYWORD
가상 사설망 , 네트워크 플랫폼 , 랜투랜 방식 , 트래픽 쉐이핑
  • Ⅰ. 서 론

    일반사용자, SOHO, 중소기업의 경우 네트워크간 VPN을 도입하기에는 소요 비용 측면에서 부담이 크다 할 수 있다. 따라서 유무선공유기 수준의 저렴한 가격과 손쉬운 설정으로 네트워크간 VPN을 구성하여 활용 할 수 있는 장비에 대한 필요성이 대두되고 있다.

    본 논문에서는 유무선 공유기 수준의 저렴한 비용으로 네트워크간 VPN 연동이 가능한 장비를 제안하고자 한다. H/W플랫폼은 공개된 유무선공유기를 사용하고, S/W 플랫폼은 네트워크전용 공개 임베디드OS인 Open WRT를 기반으로 OpenVPN, easy-rsa, iproute등 관련 오픈소스들을 활용하여 구현한다. 일반 유무선공유기 플랫폼을 도입하여 가격을 현저히 낮추고, 특정 모델이 단종 되어도 유사기종으로 쉽게 이전이 가능토록 한다. OpenWRT플랫폼을 도입하여 최적화시킴으로써 높은 수준의 최신기술을 빨리 적용할 수 있고, 다양한 H/W플랫폼에 이식성을 높일 수 있도록 한다. 여기에, 특허출원기술인 다중큐잉 실시간 트래픽쉐이핑 기술을 VPN터널에 적용시켜 회선품질의 변화가 빈번하더라도 최적의 네트워크 환경을 유지할 수 있도록 한다.

    Ⅱ. 관련연구

    본 장에서는 논문에서 제안한 시스템 구현에 필요한 관련기술 3가지에 대해 제시한다.

       2.1. OpenWRT

    대표적인 네트워크장비용 임베디드OS로 Linux 커널을 기반으로 하여 안정적이고 이식성이 뛰어나다. 다양한 패키징 툴을 지원하여 리눅스관련 대부분의 오픈 소스를 활용할 수 있으며, 오픈소스간의 의존성 문제를 해결해 주어 효율적으로 원하는 펌웨어 컴파일이 가능하다. 시스코, HP등 네트워크 전문기업부터 atheros, broadcom 칩셋개발업체 그리고 버팔로, D-Link, TPLink등 수많은 네트워크 써드파티 기업에서 기술지원에 참여하고 있어 개발자 인프라가 탄탄하고 관련 프로젝트 진행이 활발하다[1,2].

       2.2. OpenVPN

    VPN기술을 지원하는 대표적인 오픈소스 프로그램으로 VPN에 필요한 요소인 암호화, 인증, 네트워킹, 보안 등을 모두 지원하며 새로운 기술 적용이 가능하도록 확장성까지 지원해 준다. OpenWRT를 포함한 대부분의 Linux는 물론 Windows, Unix, iOS, 안드로이드 등 현존하는 대부분의 OS를 지원해준다.

    VPN 터널링 기술은 L2TP, PPTP등 네트워크 계층2에서 구현하는 방법과 IPSec , SSL등 계층3에서 구현하는 방법이 있다. 각각의 방법에 장단점이 있으나 현재는 커널 수정 없이 구현이 가능하며, 이식성 및 확장성이 뛰어난 SSL 방법을 많이 활용하고 있다. 본 논문에서는 SSL방법을 적용한다[3].

       2.3. iproute2

    응용프로그램 영역인 User-Space에서 Linux 커널의 네트워크 프로토콜에 접근할 수 있는 소프트웨어다. 네트워크라우터, 트래픽쉐이핑, 방화벽 모두 구현할 수 있는 툴이며 대부분의 IDS, IPS기술의 기반이 되고 있다. 본 논문에서 구현한 다중큐잉 실시간 트래픽쉐이핑도 iproute2를 기반으로 구현하였다.

    Ⅲ. 시스템 구성

    본 장에서는 논문에서 제안한 시스템에 대해 구현 절차와 시스템 구성을 기술한다.

       3.1. OpenWRT 플랫폼 이식

    타겟 H/W플랫폼은 상용 유무선 공유기에 가장 많이 사용되는 CPU인 Atheros, Broadcom 을 선택한다. 타겟 개발용 호스트 PC는 Linux 기반에 OpenWRT 개발환경을 준비한다. 타겟 CPU에 맞도록 커널설정을 하고 OpenVPN, openssl, iproute2, libpcap,큐잉 등 관련 패키지들을 선택하여 컴파일한다. 이렇게 준비된 새 이미지는 tftp나 부트로더에서 펌업 작업을 한다[3].

       3.2. 네트워크간 VPN - 브릿지 구현

    OpenVPN Server Access Gateway, Client Gateway를 개발하고 그림 1처럼 원격지 네트워크가 VPN을 통해 브릿지 연결이 되도록 구현한다. 두 개의 네트워크가 브릿지로 연결이 되었기 때문에 라우팅이 필요 없고 주소체계가 동일하고 동일 네트워크처럼 동작하기 때문에 이더넷 패킷까지 교환되고 모든 장비에 접근이 가능하다. DLNA(Digital Living Network Alliance), 인트라넷 등 동일 네트워크에서 동작하는 프로그램을 그대로 쓸수 있는 장점이 있고, 이더넷 패킷까지 모두 전송되어 트래픽이 과도하다는 단점이 있다[4].

       3.3. 네트워크간 VPN - 라우팅 구현

    그림 2처럼 원격지 네트워크가 VPN을 통해 라우팅 연결이 되도록 구현한다. 두 개의 네트워크가 라우팅으로 연결이 되었기 때문에 주소체계가 다르고 다른 네트워크처럼 동작하기 때문에 명시적으로 라우팅 설정을 해서 사용을 해야 한다. 장단점은 브릿지 방법과 반대라고 할 수 있다.

       3.4. 브릿지 방법에서 다중큐잉 실시간 트래픽쉐이핑 기술 구현

    3.2절에서 구현한 브릿지에 그림 3처럼 VPN 터널링 구간을 다중큐잉으로 구현한다. 다중큐잉에는 밴드폭을 조절하기 쉬운 htb(Hierarchical Token Bucket) 와 우선순위 조절이 우수한 sfq(Stochastic Fairness Queuing)를 혼합하여 사용한다[5,6]. 큐잉은 서비스포트별, IP주소별 PREROUTING, POSTROUTING 모두 설정할 수 있도록 구현한다. 디버깅 및 성능평가를 위해서 실시간 패킷모니터링이 가능하도록 하고 VPN터널링에 걸리는 CPU부하를 모니터링할 수 있도록 준비한다. VPN 터널링을 통해서 DLNA 동영상 플레이 및 제어가 되도록 하고, 동시에 ftp송수신과 ssh접속을 함께 할 수 있도 록 하여 큐잉방법에 따라 그 성능의 변화를 모니터링 할 수 있도록 구현한다.

    Ⅳ. 구현 및 실험결과

       4.1. 구현

    정적인 방법으로 특정 IP, 특정 서비스포트별로 별도의 큐를 할당하고 밴드폭과 우선순위를 설정하고 테스트한 결과는 별도의 성능평가 리포트로 확인할 수 있다.

    여기서는 3.4절에서 제시한 방법대로 현실의 DLNA 서버, 플레이어, 콘트롤러 그리고 ftp, ssh서버, 클라이언트 장비를 VPN환경의 테스트베드로 구축하였다. 이렇게 구축된 동적인 테스트베드 환경에서 다중큐잉의 성능을 비교하기 위하여 다음과 같이 3가지 종류의 성능평가를 실시하였다. 실험 데이터의 우선순위는 원하는 대로 다양하게 적용할 수 있지만, 여기서는 동영상 끊김 효과를 바로 확인할 수 있도록 DLNA 스트림 데이터를 가장 높은 우선순위로 지정하여 테스트 하였다.

    • 트래픽쉐이핑 없이 VPN 터널링만 동작

    • 단일큐잉에서 트래픽쉐이핑 동작

    • 다중큐잉에서 트래픽쉐이핑 동작

       4.2. 트래픽쉐이핑 없이 VPN 터널링만 동작

    그림의 VPN터널만 구성하여 연결하고 일체의 트래픽쉐이핑 방법을 적용하지 않았다.

    4.2.1. 테스트 시나리오

    (가) 번호⑬ →번호③→번호⑩

    (나) 번호② →번호⑫

    (다) 번호⑭→번호① →번호⑪

    4.2.2. 테스트 결과

    시나리오 (가), (나), (다) 순서로 동시 실행한다.

    • 공유기의 VPN프로세스 CPU점유율 : 90~98%

    • 시나리오 (가) : 간헐적으로 버퍼링

    • 시나리오 (나) : 단독실행시 13000Kbps, 동시실행시 1000Kbps ~ 9000Kbps 가변적

    • 시나리오 (다) : 지속적인 버퍼링

    트래픽쉐이핑이 동작하지 않기 때문에 IP간 DLNA 간 FTP간 대역폭, 우선순위가 설정되지 않았다. 따라서 FTP속도의 변화폭이 크고, DLNA플레이중 나중에 실행시킨 “다”의 경우 지속적인 버퍼링 현상이 발생한다.

       4.3. 단일큐잉에서 트래픽쉐이핑 동작

    2개의 큐를 가지고 첫 번째 큐에는 1종의 데이터스트림만 전송하고 두 번째 큐에는 2종의 데이터스트림을 전송한다. 2개의 큐는 모두 동일한 우선순위, 대역폭으 로 구성한다.

    4.3.1. 테스트 시나리오

    (가) 큐1: 번호⑬ → 번호③ → 번호⑩

    (나) 큐2: 번호② → 번호⑫

    (다) 큐2: 번호⑭ → 번호① → 번호⑪

    4.3.2. 테스트 결과

    시나리오 (가), (나), (다) 순서로 동시 실행한다.

    - 공유기의 VPN프로세스 CPU점유율 : 70~80% 사이 안정적

    • 시나리오 (가) : 전혀 버퍼링 없음

    • 시나리오 (나) : 3000Kbps ~ 4000KBps 범위 유지

    • 시나리오 (다) : 자주 버퍼링

    트래픽쉐이핑이 동작하고 큐1을 독립적으로 사용하는 (가)의 경우 항상 안정적인 속도가 보장되어 원활한 동영상 디스플레이가 가능하다. 하지만, 큐2를 같이 쓰는 (나)와 (다)는 FTP속도의 변화가 1000Kbps정도의 폭에서 가변적이고, 동영상은 자주 버퍼링 현상이 발생한다(4.2절 보다는 원활함).

       4.4. 다중큐잉에서 트래픽쉐이핑 동작

    3개의 큐를 가지고 각 테스트 시나리오 마다 별도의 큐를 사용하게 한다. 동영상 스트림이 통과하는 큐1과 큐3은 우선순위와 대역폭을 동일하게 설정한다. FTP스트림이 통과하는 큐2는 큐1,3에 비해 우선순위가 낮고 대역폭도 좁게 설정한다.

    4.4.1. 테스트 시나리오

    (가) 큐1: 번호⑬ →번호③ →번호⑩

    (나) 큐2: 번호②-→ 번호⑫

    (다) 큐3: 번호⑭→ 번호①→ 번호⑪

    4.4.2. 테스트 결과

    시나리오 (가), (나), (다) 순서로 동시 실행한다.

    - 공유기의 VPN프로세스 CPU점유율 : 86~93% 사이 안정적

    • 시나리오 (가) : 전혀 버퍼링 없음.

    • 시나리오 (나) : 900Kbps ~ 4000Kbps 가변적. 우선순 위가 낮아 전체 트래픽이 올라가면 낮아짐. 시나리오 (다) : 속도체크를 위한 1~2번의 버퍼링만 발생.

    트래픽쉐이핑이 동작하고 큐1, 큐3을 사용하는 동영상은 모두 안정적으로 플레이된다. 큐3의 경우 동영상 플레이중 한번이나 두 번 버퍼링이 발생하는데 이는 버퍼링 용량을 계산하기 위한 동작이기 때문에 원활히 플레이 된다고 볼 수 있다.

    FTP스트림이 사용하는 큐2는 우선순위가 낮고 대역 폭이 작기 때문에 큐1,3에 영향을 주지 않는다. 큐2의 경우 우선순위가 가장 낮기 때문에 큐1,3이 우선 대역폭을 사용하고 남은 용량을 사용하기 때문에 속도의 하한치가 낮아지고 속도 변화량이 증가함을 알 수 있다. 실험 데이터의 결과는 표 1과 같다.

    [표 1.] 실험 데이터 비교

    label

    실험 데이터 비교

    CPU부하는 VPN터널링 알고리즘에 소요되는 비용이다. 큐잉을 사용함에 따라 안정적으로 CPU부하를 제어할 수 있음을 알 수 있다. 본 실험에서 사용한 Atheros 싱글코어 400Mhz CPU는 Blowfish 알고리즘 사용 시최대 속도가 약 13,000kbps로 측정되었다. CPU속도만 700Mhz로 올려도 20,000kbps 성능은 충분히 보장할 수 있고, 이후 다양한 CPU에 다양한 알고리즘 테스트를 진행할 계획이다.

    ssh 반응은 트래픽쉐이핑을 통해 바로 효과가 나타남을 알 수 있다. ftp전송은 우선순위를 낮추어서 스트림데이타에 지장을 주지 않도록 적용을 하였다. 따라서 멀티큐에서의 ftp전송속도가 가장 늦고 변화폭이 큰 것을 알수 있다. 이에 대한 이득은 모두 동영상 스트림데이타의 우선순위로 갖게 된다.

    마지막으로 DLNA스트림 버퍼링은 트래픽쉐이핑의 적용여부와 멀티큐를 사용함에 따라 그 효과가 다르게 나타남을 알 수 있다.

    Ⅴ. 결 론

    본 논문에서는 2가지를 구현하였다. 첫째로, 개방형 유무선공유기 H/W플랫폼에 개방형 OpenWRT플랫폼을 기반으로 네트워크간 VPN을 터널링을 지원하도록 구현하여 저렴한 가격에 VPN 구성이 가능하도록 하였다. 둘째로, 특허출원기술인 다중큐잉 실시간 트래픽쉐이핑 기술을 VPN터널에 적용시켜 회선품질의 변화가 발생하더라도 최적의 네트워크 환경을 유지할 수 있도록 하여 저렴한 장비지만 회선품질성능은 상용제품보다 우수하도록 하였다.

    특히 실험결과와 같이, 전용 VPN장비에 비해 상대적으로 부족한 유무선공유기의 CPU성능을 실시간 다중큐잉 트래픽쉐이핑 기술로 네트워크 상황과 CPU상황 그리고 우선순위에 따라 대역폭을 조절함으로서 실제 운용성능을 최대로 끌어올린 것에 본 논문의 의미가 있다고 할 수 있다.

    향후 과제로는 다중큐잉 방법과 병행하여 가중치가 다른 다중 터널링으로 확장하여 더욱 효율적인 성능을 끌어낼 수 있는 방법에 대한 연구가 필요하다. 또한, 응용과제로는 IoT 센서를 본 논문에서 개발한 플랫폼에 “센서-DLNA” 가상화 기술과 접목시켜 VPN을 통한 댁내 센서에 안전한 접근이 가능한 연구로 발전시킬 수 있다.

참고문헌
  • 1. Kye Min-seok, Min Joon-Ki, Yang Seung-Eui, Park Sang-No, Jung Hoe-kung 2014 "iOS-based Fitness Management System utilizing OpenWrt Server" [Journal of the Korea Institute of Information and Communication Engineering] Vol.18 google
  • 2. OpenWRT Web site google
  • 3. Kotuliak I., Rybar P., Truchly P. Oct. 27-28, 2011 “Performance Comparison of IPsec and TLS Based VPN Technologies” [ICETA 2011 9th IEEE International Conference on Emerging eLearning Technologies and Applications] google
  • 4. 2011 "SSH VPNs: Bridged connection to LAN using tap" google
  • 5. BALAN Doru Gabriel, POTORAC Dan Alin 2010 “Extended Linux HTB Queuing Discipline Implementations” [International Journal of Information Studies] Vol.2 google
  • 6. Hubert Bert 2012 "Linux Advanced Routing & Traffic Control HOWTO" google
OAK XML 통계
이미지 / 테이블
  • [ 그림 1. ]  VPN - 브릿지
    VPN - 브릿지
  • [ 그림 2. ]  VPN - 라우팅
    VPN - 라우팅
  • [ 그림 3. ]  VPN - 브릿지 - 다중큐잉
    VPN - 브릿지 - 다중큐잉
  • [ 그림 4. ]  VPN - 브릿지 - 다중큐잉 - 테스트베드
    VPN - 브릿지 - 다중큐잉 - 테스트베드
  • [ 표 1. ]  실험 데이터 비교
    실험 데이터 비교
(우)06579 서울시 서초구 반포대로 201(반포동)
Tel. 02-537-6389 | Fax. 02-590-0571 | 문의 : oak2014@korea.kr
Copyright(c) National Library of Korea. All rights reserved.