Lab Seminar: An Adaptation of Proxy Mobile IPv6 to OpenFlow Architecture over Software Defined Networking

Paper: click

Presentation: ppt

1. INTRODUCTION

Software Defined Networking (SDN) 은 가장 최신의 프로그램 네트워크이다. SDN은 네트워크의 Control plane과 Data plane으로 분리하는데 다음과 같은 두가지 간단한 기능을 가지고 있다.

  • 특별한 정책에 따라 패킷들을 스위치에서 forwarding 한다.
  • 스위치들은 Controller를 통해서 스위치의 flow table을 확인한다.

SDN은 controller와 스위치들 사이의 통신을 제공하기 위한 framework를 요구한다. 그래서 스위치와 controller 사이의 프레임워크로 OpenFlow protocol이 제공된다. OpenFlow의 초기 목적은 캠퍼스 네트워크를 통한 실험적인 트레픽을 실행하여 연구를 위한 플랫폼 제공이었다. 하지만, SDN과 OpenFlow의 같이 사용을 하여 cost와 필요한 장치의 복잡성을 줄여 주고, 네트워크의 기능을 더 향상 시켰다. OpenFlow는 현재 많은 연구가 되고 있으며 Network에서도 큰 혁신을 가져 올 것으로 예상하고 있다. PMIPv6는 네트워크 기반의 관리 프로토콜이다. PMIPv6는 MN을 대신하여, Attachment Point (AP)에서 Mobility 관리를 수행하도록 한다.

PMIPv6는 LMA와 MAG로 구성되어 있으며, LMA는 MN이 MAG를 이동하여 움직이는 동안에 Location 정보를 관리한다. MAG는 IP handover와 MN의 Location을 등록하는 절차들을 MN대신하여 수행한다. PMIPv6의 경우 몇가지의 약점이 있다. 첫번째는 Control plane과 Data plane이 합쳐 있다. 그렇기 때문에 만약 전송에 문제가 생긴경우 재전송 과정에서 불필요한 자원의 낭비가 생기는 경우가 발생한다. 또 다른 문제는 PMIPv6는 IP터널링을 사용한다는 것 이다. LMA and MAG 사이에 터널링을 이용하여 통신을 하는데 그 경우에 패킷들을 Encapsulation과 decapsulation과정이 있다.

이 논문에서는 PMIPv6에 OpenFlow 아키텍쳐를 적용 시키고자 한다. 그리하여 OPMIPv6를 설명 한다. PMIPv6에서 따로 배치 되어있는 LMA와 MAG를 다시 재 구조화 하자는 것이다. OPMIPv6에서의 LMA는 OpenFlow의 controller처럼 path에서 스위치들의 위치에 대한 flow table을 가지고 있는 기능을 하며, MN의 location정보를 유지하는 기능을 갖는다. Access Switch는 MAG와 같은 기능을 가지고 있으며 MN을 대신하여 Mobility-related signaling을 수행한다. OPMIPv6는 conrol과 data plane을 각각의 secure channel 사용 함으로써 분리한다. 그리고 flow table을 사용하여 패킷 전송에 있어서 터널링에 의한 Overhead를 제거한다. 메시지 포멧은 PMIPv6의 메시지 포멧을 확장하여 OpenFlow에 맞게 확장하여 정의 할 것이다.

2. Related work

Proxy Mobile IPv6

PMIPv6는 네트워크 베이스이며 MN을 대신하여 Mobility signaling을 수행하고 관리한다. PMIPv6는 LMA와 MAG로 구성 되어 있으며, LMA는 MIPv6에서 Home Agent의 역할을 한다. MN의 location관리와 HNP (home network prefix)를 할당하게 된다. 그리고 LMA와 MAG 사이에 패킷 전송을 위하여 IP tunnel을 만든다. MAG는 MN의 이동이나 현재의 위치를 LMA에게 알리고, IP tunnel을 통하여 LMA에게 패킷을 전송한다. PMIPv6는 MIP과 똑같은 message 포멧을 사용하며 추가로 확장하여 PBU, PBA를 사용한다. PMIPv6의 기본 개념은 MN이 Movement에 있어서 signaling하는 과정에 참여하지 않고 수행하도록 하는 것이다.

OpenFlow System

OpenFlow는 스위치와 Controller로 분리되어 있으며, OpenFlow 프로토콜을 사용하여 이들 사이에 통신을 하도록 한다. OpenFlow 스위치는 기존 생산 트래픽으로 부터 분리하여 실험 트래픽을 실행하도록 구성 할 수 있다. Controller는 OpenFlow프로토콜을 통한 데이터의 흐름을 관리할 수 있도록 Secure Channel을 사용한다. OpenFlow 시스템은 주요하게 3가지로 구성 되어있다:

  • flow table
  • secure channel
  • OpenFlow protocol.

각 flow는 contorller에서 action이라는 것에 따라 flow table에 처리되어 진다. flow는 물리 계층에서 transport 계층 까지의 네트워크 정보를 포함하는 10-tuple에 의해 분류 되어진다. 패킷의 처리와 flow table의 구성은 다음과 같다. 이더넷 패킷이 OpenFlow 스위치로 들어오게 되면, 패킷은 flow 식별자에 의해 flow classification module에 입력되어 패킷은 Parsing되어 진다. flow match 모듈은 parsed된 flow information에 따라 맞는 entry가 table에 있는지 검색을 한다. 만약 entry가 존재하면, 패킷은 다음과 같은 actioin을 따르게 된다.

  • a) 패킷들은 주어진 포트들로 전송 되어진다.
  • b) 패킷들은 Encapsulated 되고 controller에 전송 된다.
  • c) 패킷들을 drop한다.
  • d) 패킷들은 일반 IP routing을 사용하여 전송한다. 만약 그렇지 않다면 , OpenFlow는 core에 PIN (Packet_IN) 메시지를 controller에 전송하여 패킷을 어떻게 처리해야할지 결정하도록 한다.

Controller는 스위치의 적절한 포트를 통해 패킷들을 어떻게 전송 할 지 결정하기위해 network topology를 사용한다. topology가 어떻게 구성 되어있는지 알기 위해, Link Layer Discovery Protocol (LLDP)를 미묘히 수정하여 사용한다. OpenFlow 네트워크는 topology를 찾기 위하여 LLDP메시지가 포함 되어있는 Packet_Out메시지를 연결된 새로운 스위치로 전송한다. 먼저 POUT메시지를 받은 스위치는 LLDP 패킷들을 그것의 모든 포트들에게 전송한다. 그림에서 처럼 스위치 1에서 3번 포트로 나간 LLDP패킷은 스위치 2의 1번 포트로 도착한다. 그때 스위치 2는 controller에게 LLDP패킷이 포함된 PIN 메시지를 전송하게된다. Controller는 받은 PIN메시지에서 LLDP 패킷을 분석하여, LLDP패킷이 스위치 1번에서 스위치 2번까지의 link information을 통하여 network topology를 발견하게 된다.

3. OpenFlow-Based PMIPv6

OPMIPv6의 아키텍쳐는 PMIPv6의 구성이었던 mobility 기능들의 분리이다. LMA의 기능을 controller가 수행, MAG의 기능을 Access 스위치가 수행하게된다. OPMIPv6에서 Controller는 OpenFlow 프로토콜에서 설정해 놓은 데이터 포워딩 경로를 사용함으로써 Controller와 Switch가 통신을 하게 된다. 그리고 스위치들을 제어하게 된다. OPMIPv6는 확장된 OpenFlow 메시지를 사용하여 mobility 관리를 하게 된다. OPMIPv6-C는 Controller가 LMA와 MAG두가지의 기능을 한꺼번에 가지고 있는 것을 말한다. PMIPv6은 항상 LMA와 MAG사이에 데이터 전송 시에 IP tunnel을 사용했다. 하지만 OPMIPv6과 OPMIPv6-C의 경우에는 IP tunnel 대신에 flow table 을 기반으로하여 제공 되어지는 설정된 데이터 전송 경로를 통해 데이터를 전송하게 된다. 각 OpenFlow 스위치는 고유의 flow table을 가지고 있으며 OpenFlow Controller를 통해서 확인 할 수 있다. 결과적으로, OPMIPv6은 IP tunnel 없이 OpenFlow에서 설정해 놓은 데이터 경로를 통해서 패킷들을 전송 하게 되는 것이다.

Control Plane

다음 그림과 같이 mobility 혹은 location registration, Handover에 대한 signaling을 하게 된다. 먼저, PMIPv6에 대한 control plane은

  • MN이 어디에 붙은 MAG가 인지하고 LMA에게 MN에 대한 PBU메시지를 전송,
  • LMA는 MN에게 HNP를 할당하고,
  • routing path를 확인한다. OPMIPv6에 대한 Control plane은
  • PMIPv6과 같이 MAG기능을 하는 Switch가 Controller에게 메시지를 보냄 (OpenFlow 메시지)
  • LMA (Controller)는 OpenFlow에서 flow table로 설정해 놓은 경로를 따라 signaling을 수행함.

OPMIPv6-C의 경우에는 LMA와 MAG가 co-location하고 있기 때문에, 위에 PMIPv6에서 수행하던 1), 2)과정을 내부에서 수행하게 됩니다. 그러므로 OpenFlow메시지를 보내면 1), 2)과정을 한번에 수행하게 됩니다. OPMIPv6-C에서는 MN의 붙은 것과 떨어진 것에 대해서 감지하기 위해서 스위치에서 PMIPv6과 같은 link layer에서 Controller에서 MN의 attachment를 감지하기 위해 L2 상태 정보가 MAG 위치 저장 기능에 전송 되어진다. 스위치가 확장된 OpenFlow메시지 (Mobility option을 가진)를 보냄으로써 link layer의 상태를 전송하게 된다. 이 과정에서 MAC Address와 Access technology를 사용하기 때문에 좀 더 간단한 절차로 감지를 할 수 있다.

Data Plane

PMIPv6에서는 LMA와 MAG사이에 IP tunnel을 사용하여 데이터를 전송 하였다. OPMIPv6과 OPMIPv6-C의 경우에는 LMA Controller에 의하여 확인 되어진 경로를 따라서 패킷들을 전송한다. 만약 MN이 이동을 하게 되면 PMIPv6의 signaling을 통해서 MN의 이동을 감지하게 되고, LMA Controller는 flow table을 업데이트 하게 된다. 그러므로 Access router와 gateway사이에 새로운 경로를 즉시 설정하게 된다. 결과적으로 OPMIPv6은 IP tunnel을 사용하지 않고 데이터를 전송함으로써 추가적인 자원의 낭비가 들지 않고 트래픽을 적절하게 분배할 수 있다.

4. Comparison with PMIPv6

PMIPv6과 OPMIPv6의 차이는 다음의 테이블을 통해서 볼 수 있다. OPMIPv6은 flexible architecture이다. 하지만 한가지 단점을 가지고 있다. OPMIPv6의 경우 LMA Controller와 switch사이에 경로에 대한 flow table을 만들기 위한 추가적인 딜레이가 필요하다. 그러나 flow table을 setup하는 과정은 평행적으로 이루어지는 작업이기 때문에, 추가적인 딜레이는 아주 미미하다.

PMIPv6의 단점으로는 Single point failure의 문제가 있다. 만약에 LMA가 고장이 날 경우, LMA가 binding과 tunneling information들을 가지고 있기 때문에 PMIPv6이 정상적으로 수행 되지 못한다. 이와 반대로 OPMIPv6의 경우에는 다중 Controller를 지원해 준다. master와 slaves들 역할을 하는 Controller들을 가지고 있다. master마다는 적어도 하나의 slave를 가지고 있기 때문에 네트워크에 영향을 않는다. 그러므로 OPMIPv6은 좀더 빠른 회복력을 갖는다. 추가로 물리적으로 문제를 감지 했을때, controller는 적당한 경로를 다시 확인하여 확립하게 된다. PMIPv6의 경우에는 주 LMA가 바뀌지 않는다.

그림으로 설명을 하면, 다음과 같이 MN이 LMA1을 통해서 CN과 통신을 한다고 하자, 그럴 경우 LMA2가 CN과 더 가깝다 하더라도, 주 LMA가 LMA1이기 때문에 MN이 다음과 같이 이동을 하더라도 더 먼 LMA1을 통해서 통신을 해야만 한다. 하지만, OPMIPv6의 경우에는 switch들 사이에 제어를 하는 Controller가 있기 때문에 MN이 다른 Access Switch로 이동을 할 경우 controller에서 network topology와 link information을 통해 주 Gateway를 교체해 준다. ingress traffic을 위하여 새로운 gateway로 설정하는데 BGP와 같은 routing protocol을 사용한다.

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax

%d 블로거가 이것을 좋아합니다: