SDN 실증 테스트 시스템 기술서 (SDN Tech. TEST System) · 2018. 10. 15. · SDN에서는...

25
SDN 실증 테스트 시스템 기술서 (SDN Tech. TEST System)

Transcript of SDN 실증 테스트 시스템 기술서 (SDN Tech. TEST System) · 2018. 10. 15. · SDN에서는...

Page 1: SDN 실증 테스트 시스템 기술서 (SDN Tech. TEST System) · 2018. 10. 15. · SDN에서는 Router라는 명칭 대신, Switch라는 명칭을 사용하는데, 이는 Router

SDN 실증 테스트 시스템 기술서

(SDN Tech. TEST System)

Page 2: SDN 실증 테스트 시스템 기술서 (SDN Tech. TEST System) · 2018. 10. 15. · SDN에서는 Router라는 명칭 대신, Switch라는 명칭을 사용하는데, 이는 Router

목 차

Ⅰ. 개요 ···································································1

SDN의 정의와 현황 ························································· 1

Openflow ·········································································· 2

Controller 소개 ······························································· 3

ODL 설치 ············································································ 6

Ⅱ. SDN 실증시스템 ········································· 11

실증시스템 소개 ···························································· 11

실증시스템 설치 및 운영 ············································ 12

SDN 스위치 설정 ························································ 20

Page 3: SDN 실증 테스트 시스템 기술서 (SDN Tech. TEST System) · 2018. 10. 15. · SDN에서는 Router라는 명칭 대신, Switch라는 명칭을 사용하는데, 이는 Router

- 1 -

Ⅰ 개 요

1. SDN의 정의와 현황

최근 네트워크 산업의 이슈로 부상하고 있는 SDN은 'Software Defined

Networking'의 약자로 소프트웨어 정의 네트워킹이라고도 할 수 있다.

기존 인터넷의 장비를 대표하는 일반적 네트워크 장비에서 하드웨어 기능과

소프트웨어 기능을 분리해 내는 것으로 설명할 수 있다. 인터넷의 발전과 함께

증가하고 있는 데이터와 데이터의 다양성, 그리고 멀티미디어 데이터의 품질향

상에 따른 데이터의 증가는 하나의 네트워크 장비에서 처리하기 위해 점점 고사

양의 네트워크 장비를 요구하게 되었다. 또한 네트워크 장비뿐아니라 트래픽의

송수신에 사용되는 회선 대역폭의 증가는 광 네트워크 기술의 발전에 따라 바로

 네트워크 장비의 Control Plane과 Data Plane을 분리하는 아키텍처이다.

<그림 1> SDN 아키텍처

현재의 일반적인 네트워크는 연산 기능을 담당하고 있는 Control Plane은 네트

워크 시스템과 함께 제공되기 때문에 이른 따로 선택해서 소프트웨어와 분리된

네트워크를 구성할 수 없는 구조이며, SDN은 연산 기능을 담당하는 Control

Plane을 Data Plane으로부터 물리적으로 분리해내어 다양한 네트워크 요구 사항

Page 4: SDN 실증 테스트 시스템 기술서 (SDN Tech. TEST System) · 2018. 10. 15. · SDN에서는 Router라는 명칭 대신, Switch라는 명칭을 사용하는데, 이는 Router

- 2 -

들을 수용한 유연한 네트워크 구현을 가능하도록 한다. 기존의 하드웨어 중심의

네트워크에서 소프트웨어 중심의 네트워크로 아키텍처를 변화시켜, 벤더 종속성

에서 벗어나 사용자 중심의 네트워크 관리와 운영을 가능하게 하도록 하는 진화

된 네트워크 구조이다.

2. Openflow (오픈플로우)

앞에서 소개 했듯이 일반적으로 SDN은 제어플랜(Control Plane)과 Data Plane

에 대한 분리에 따라 물리적인 복잡한 네트워크 구조와 역할을 지능화하고 관리

하기 유용한 네트워크를 만드는데 목적이 있다.

이러한 목적을 위해서는 표준프로토콜 즉, OPenFlow와 같은 프로토콜의 제어

와 활용이 필요하며, 또한 이러한 프로토콜이 광범위한 대역에서 활용되고 관리

되기 위해서는 표준프로토콜이 필요하다. 또한 가상의 컴퓨터, 스토리지, 이러한

항목들이 장치들과 컨트롤러를 위한 장치제어기(Controller)가 필요하다.

가. OpenFlow의 정의

오픈플로우 장치들과 컨트롤러간의 통신에 사용되는 프로토콜로 중앙집중형

관리와 네트워크 요소의 관리포인트가 되는 컨트롤러간의 통신, 그리고 노스바

운드(North) API를 통해 애플리케이션의 서비스 요청을 위해 사용되는 입출입

통로로 사용된다 또한 오픈플롱 장치로는 컨트롤러 관리를 받는 오픈플로우 장

치로 구성된다.

대표적으로 이러한 오픈플로우 장치는 개방형으로 구성되며 하드웨어 또는 소

프트웨어 형태로 제시되고 있으며 인디고, 큐풀러스, OVS, LINC등이 있다.

나. OpenFlow 역할

OpenFlow의 역할은 네트워크 제어능력 향상 즉 일반적이 레거시 네트워크 이

상의 제어능력을 제공하기 위해서이다. 대표적으로 원하는 경로설정이나 네트워

크 가시성 이를 통한 API 및 개방형 하드웨어의 사용등과 네트워크의 활용성 극

대화로 비용절감 효과등의 역할을 할 수 있다.

Page 5: SDN 실증 테스트 시스템 기술서 (SDN Tech. TEST System) · 2018. 10. 15. · SDN에서는 Router라는 명칭 대신, Switch라는 명칭을 사용하는데, 이는 Router

- 3 -

다. Openflow와 SDN

SDN은 Openflow 프로토콜이 아니며 정확히 말하면 그이상의 플레임워크를 제

공하고 전체적인 생태계를 나타낸다. 즉, SDN은 어플리케이션과 서비스, 콘트롤

플랜과 네트워크 OS, 그리고 데이터플랜에서 스위치와 네트워크 구성요소 전반

을 나타내며, Openflow는 네트워크 요소와 네트워크 OS를 연결하고 제어하는 역

할을 수행하는 일부 기능적 프로토콜이라고 이해하면 된다.

또한 OpenFlow는 서비스별 또는 플로우별 설정을 통해 NFV 즉, 네트워크 기

능적 가상화의 경로 및 서비스 최적화 역할을 하며 오케스트레이션

(Orchestration), 서비스체이닝(Service Chaining), APP을 연결하는 NFV에서

Openflow를 사용하는 하나의 사례로 국한 될 수 있다.

<그림 2> Openflow 서비스구조

3. Controller(Opendaylight) 소개

가. SDN 컨트롤러

Page 6: SDN 실증 테스트 시스템 기술서 (SDN Tech. TEST System) · 2018. 10. 15. · SDN에서는 Router라는 명칭 대신, Switch라는 명칭을 사용하는데, 이는 Router

- 4 -

Openflow와 이를 구성하는 제어시스템, Openflow스위치, Flow의 전송과 전달,

테이블과 엔트리, 이를 네트워크 스위치에 설정하고 네트워크의 동작을 제어하

는 스위치 설정을 위해 필요한 Openflow-Config 등의 일련의 과정과 기능으로

구성되어 있다.

<그림 3> SDN 컨트롤러 구조

본 문서에 설치하고 테스트를 목적으로 하고 있는 SDN 컨트롤러는 SDN 네트

워크 전체에 대한 통합적 제어를 가진 중항집중형 네트워크 제어시스템을 말한

다.

어플리케이션과 네트워크 장비 사이를 연결시켜주는 인터페이스로서 직적 네

트워크 상에서 입출입되는 패킷을 처리하기 위한 플로우테이블을 소유하고 사용

자가 플로우를 제어하기 위한 사용자 인터페이스를 제공한다. 또한 네트워크 상

에서 추가적인 기능 예를 들면 Layer4, 방화병, 로드밸런스등의 추가적인 기능을

부여하는 역할을 수행한다.

나. SDN Architecture including OpenFlow

위 그림에서와 같이, Control Layer부분과 Application Layer부분이 최근 활발

Page 7: SDN 실증 테스트 시스템 기술서 (SDN Tech. TEST System) · 2018. 10. 15. · SDN에서는 Router라는 명칭 대신, Switch라는 명칭을 사용하는데, 이는 Router

- 5 -

히 연구 개발되고 있다. 그 중 Control Layer부분은 Controller가 많은 비중을 차

지 하는데, 다음 절에서와 같이 이미 많은 벤더들이 많은 OpenFlow 기반의

Controller를 제공하고 있다. 그외 소규모 벤더들은 Controller가 아닌 Application

Layer에서 보안, 로드벨런싱, 홈네트워크 등의 서비스가 지원되는 제품 개발에

힘쓰고 있다.

SDN에서는 Router라는 명칭 대신, Switch라는 명칭을 사용하는데, 이는 Router

보다 더 단순한 기능을 수행하고, 기존 레거시와 차별화를 위해 명명된 것으로

보인다.

또한, Switch를 반드시 벤더로부터 구매할 필요가 없다. 상황에 따라 리눅스 등

의 운영체제를 기반으로 자체 개발이 가능하다.

다. SDN의 프로젝트

http://www.ddaily.co.kr/news/news_view.php?uid=105141

위 사이트에서와 같이, SDN는 현재 개발과 테스트베드 하에 있다.

현재 기술 수준의 SDN으로는 기존 레거시 네트워크를 대처 할 만한 비용 절감

효과를 보기 어렵다. 따라서, 충분한 기술 확보와 평가 등이 완료되어야 하고, 그

시점에서는 현재 비용보다 약 50%정도 절감 효과를 볼 수 있다. 아직 갈 길이 멀

다는 얘기이다.

현재 개발이 완료된 controller와 appllication의 가격 단가가 고가이다보니, 초

기투자비용이 많이 든다. 뿐만 아니라 운영비용 또한 많이 드는데, 이는 관리 자

동화와 설정 또는 트러블 발생률을 기존 레거시 수준까지 올려야 비용 절감 효

과를 볼 수 있다.

라. 요약

SDN의 최대 장점은, 유연성이다. 각 환경에 맞게 controller와 application 개발

및 설정이 레거시보다 현저히 유연성을 가진다는 점이다. 하지만, 오픈플로우 스

위치에서의 플로우 테이블 폭증 또는 다중 컨트롤러 간의 메시징 처리 성능 문

Page 8: SDN 실증 테스트 시스템 기술서 (SDN Tech. TEST System) · 2018. 10. 15. · SDN에서는 Router라는 명칭 대신, Switch라는 명칭을 사용하는데, 이는 Router

- 6 -

제해야 하며, 스위치 벤더 간의 호환성 문제 또한 차후 과제로 본다.

4. Opendaylight 의 설치

가. JAVA 설치

- Opendaylight 컨트롤러는 일반적으로 JVM에서 실행

- Java가 실행되는 시스템을 기반으로 설치 및 실행이 가능

· 현재 배포되는 Linux 기반

· Java Virtual Machine 1.7

나. 기본 설치

- 다음 Step을 따라 최근 버전(Build) 준비

- Opendaylight 다운로드 및 압축풀기

https://jenkins.opendaylight.org/controller/job/controller-merge/lastSuccess

fulBuild/artifact/opendaylight/distribution/opendaylight/target/

Page 9: SDN 실증 테스트 시스템 기술서 (SDN Tech. TEST System) · 2018. 10. 15. · SDN에서는 Router라는 명칭 대신, Switch라는 명칭을 사용하는데, 이는 Router

- 7 -

- JVM 1.7 + 의 설치 및 (JAVA_HOME 환경변수 지정)

- MAC터미널에서 현재 Java 버전을 확인한다.

Page 10: SDN 실증 테스트 시스템 기술서 (SDN Tech. TEST System) · 2018. 10. 15. · SDN에서는 Router라는 명칭 대신, Switch라는 명칭을 사용하는데, 이는 Router

- 8 -

/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents

cd /System/Library/Frameworks/JavaVM.framework/Versions/

sudo rm CurrentJDK

sudo ln -s

/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents

CurrentJDK

<그림 4> MacOS JAVA 확인

새로운 버전을 설치 했음에도 예전 버전으로 실행되는 이유는 기본적으로

실행되는 자바의 버전이 1.7이 아니기 때문이다. 필자는 새로운 자바가 아래

경로에 설치 되어 있다고 가정한다. 

이를 변경하기 위해서는 아래의 절차를 수행한다.

Page 11: SDN 실증 테스트 시스템 기술서 (SDN Tech. TEST System) · 2018. 10. 15. · SDN에서는 Router라는 명칭 대신, Switch라는 명칭을 사용하는데, 이는 Router

- 9 -

다. Opendaylight 설치 및 실행

1) 압축을 푼 디렉토리(폴더)를 보면 다음과 같은 파일들이 생성된다.

run.sh - 유닉스/리눅스 시스템상에서 Opendaylight 설치

run.bat - 윈도우즈 시스템상에서 Opendaylight 설치

version.properties : Build 버전정보 표시

configuration - 기본적 설치파일 설정

lib - Java libraries

2) ./run.sh or ./run.bat 실행 (관리자 계정으로 실행)

Page 12: SDN 실증 테스트 시스템 기술서 (SDN Tech. TEST System) · 2018. 10. 15. · SDN에서는 Router라는 명칭 대신, Switch라는 명칭을 사용하는데, 이는 Router

- 10 -

3) 설치후 http://controller-ip:8080 로 접속

User: admin

Password: admin

<그림 5> ODL 접속화면

Page 13: SDN 실증 테스트 시스템 기술서 (SDN Tech. TEST System) · 2018. 10. 15. · SDN에서는 Router라는 명칭 대신, Switch라는 명칭을 사용하는데, 이는 Router

- 11 -

Ⅱ SDN 실증시스템

1. SDN 실증시스템 소개

SDN (Software De ned Networking)은 복잡하게 엉켜있는 기존 Legacy 네트워

크의 구조적 한계를 극복할 수 있는 실질적인 대안이며, 네트워크 가상화를 위

한 새로운 아키텍처로, 중앙화된 Controller를 통해 전체 네트워크를 관리에 대한

기능에 대해 혁신적인 기술로 평가받고 있다. 특히, 구글, 페이스북, 아마존, NTT

는 SDN을 상용망에 성공적으로 적용했으며, 많은 국가연구망에서도 SDN 기능과

서비스를 제공하고 있다.

이에 따라 SDN 관련된 다양한 분야에서 연구가 활발히 진행되면서, SDN을 위

한 테스트베드 요구가 점차 많아지고 있으며 국가과학기술연구망의 연구자들에

게 해당 기술의 적용과 테스트를 위한 서비스가 고려되어야 한다. SDN 테스트

베드를 구성하려면 우선 SDN 아키텍처를 이해 해야 하며, 현존하는 다양한

OpenSource Controller와상용 Controller 그리고 OpenFlow Switch 등을 비교하

여 필요한 연구자들에게 테스트베드 환경을 제공하여야 하지만 실제로 테스트베

드를 구성하기 위해서는많은 시간과 인력이 소요된다.

이러한 어려움을 해결할 수 있도록 SDN 연구와 애플리케이션 개발에 활용할

수 있는 테스트베드를 구성하여 SDN/NFV 테스트베드 환경과 방법론을 기반으

로 연구현장에서 원격으로 접속하여 SDN 테스트를 진행하고, Controller와

Application 개발을 지원하여야 한다.

지금까지의 SDN 테스트베드는 애뮬레이터를 이용한 매우 간단한 형태로 이루

어져 있어 실제 환경과 많은 차이가 있거나, 실제 적용하여 테스트 할수 있는 혼

경이 한정되어. 한정된 비용과 부족한 정보 내에서 이용할 수도 없는 상황이었

다.

본 문서의 SDN실증시스템은 라임네트워크의 Rainbow의 물리적인 서버와 스위

치로 구성된 시스템을 재활용하여 연구망에 적합한 SDN 테스트베드로 재구성

하였다. 특히 Virtual Machine으로 제공하는 다수의 Controller를 손쉽게 비교 분

Page 14: SDN 실증 테스트 시스템 기술서 (SDN Tech. TEST System) · 2018. 10. 15. · SDN에서는 Router라는 명칭 대신, Switch라는 명칭을 사용하는데, 이는 Router

- 12 -

석하실 수 있으며, SDN 스위치를 포함한 물리적인 환경에서 구현되는 SDN관련

기술과 개발을 수행할수 있다.

2. 실증시스템 설치 및 운영

가. 실증시스템 구성

m SDN을 테스트하고 개발을 수행하기 위해 다음과 같은 구성을 지원한다.

- SDN 스위치는 다양한 환경을 제공하기 위해 2종류의 스위치로 구성한다.

- 각 스위치간 최소 3개의 레이어 구성을 위해 총 4대로 구성한다.

- 컨트롤러 시스템으로 서버2대와 클라이언트 5대로 구성한다.

Page 15: SDN 실증 테스트 시스템 기술서 (SDN Tech. TEST System) · 2018. 10. 15. · SDN에서는 Router라는 명칭 대신, Switch라는 명칭을 사용하는데, 이는 Router

- 13 -

나. 실증시스템 구성

m 시스템과 스위치간의 구성과 포트정보

Page 16: SDN 실증 테스트 시스템 기술서 (SDN Tech. TEST System) · 2018. 10. 15. · SDN에서는 Router라는 명칭 대신, Switch라는 명칭을 사용하는데, 이는 Router

- 14 -

Page 17: SDN 실증 테스트 시스템 기술서 (SDN Tech. TEST System) · 2018. 10. 15. · SDN에서는 Router라는 명칭 대신, Switch라는 명칭을 사용하는데, 이는 Router

- 15 -

다. Controller 접속 정보

m 모든 OpenFlow Controller는 HP DL320 Server#1의 VM형태로 설치

- Controller IP 정보

- ODL Lithium:10.0.0.151,(SSH)ID/PW:admin2/admin_01 - ONOS1.4:10.0.0.152,(SSH)ID/PW:admin2/admin_013 - Controller:10.0.0.251,(SSH)ID/PW:admin2/admin_01

m VNC Viewer로 10.0.0.241(HP DL320 Server#1)에 접속하여 가상머신 관

리자를 실행

- $virt-manager

<그림 6> 매니저 실행화면

Page 18: SDN 실증 테스트 시스템 기술서 (SDN Tech. TEST System) · 2018. 10. 15. · SDN에서는 Router라는 명칭 대신, Switch라는 명칭을 사용하는데, 이는 Router

- 16 -

라. SDN 스위치 설정

m 테스트베드 내 Server, Raspberry Pi, OpenFlow Controller는 모두

Page 19: SDN 실증 테스트 시스템 기술서 (SDN Tech. TEST System) · 2018. 10. 15. · SDN에서는 Router라는 명칭 대신, Switch라는 명칭을 사용하는데, 이는 Router

- 17 -

Debian 계열의 Linux이므로 아래의 방법으로 변경

m 변경 방법

- $ sudo vi /etc/network/interfaces

<그림 7> 인터페이스 변경

- Rasberry Pi, Ubuntu 12.04인 경우, $ sudo /etc/init.d/networking restart

- Ubuntu 14.04인 경우 network interface를 변경한 후 system reboot이 필요

Page 20: SDN 실증 테스트 시스템 기술서 (SDN Tech. TEST System) · 2018. 10. 15. · SDN에서는 Router라는 명칭 대신, Switch라는 명칭을 사용하는데, 이는 Router

- 18 -

마. OpenDayLight Lithium (1) 설치

바. OpenDayLight Lithium (2)

m 접속방법

- UI 접속 : http://ipaddress:8181/index.html (계정 admin/admin) - Console 접속 : ssh 로 접속하며 8101 port를 사용하여 접속 (계정

karaf/karaf) m Trouble Shooting

- Case #1 : 6633 port not listen 현상: Switch 에서 Openflow activate 하

였으나 Opendaylight에서는 노드가 보이지 않는다. 해결방법- Console 접속후 Feature 중 odl-openflowplugin-all 를 설치

- Case #2 : UI not shown 현상 : UI 접속하였으나 페이지를 열수없음 혹은

접속이 page not found 등의 메시지가 출력

Page 21: SDN 실증 테스트 시스템 기술서 (SDN Tech. TEST System) · 2018. 10. 15. · SDN에서는 Router라는 명칭 대신, Switch라는 명칭을 사용하는데, 이는 Router

- 19 -

해결방법 - Console 접속후 Feature 중 odl-dlux-core 를 설치한다.

사. ONONS 설치

m OpenDayLight Lithium (2)

m 접속방법

- UI 접속 : http://ipaddress:8181/index.html (계정 admin/admin) - Console 접속 : ssh 로 접속하며 8101 port를 사용하여 접속 (계정

karaf/karaf) m Trouble Shooting

- Case #1 : 6633 port not listen 현상: Switch 에서 Openflow activate 하

였으나 Opendaylight에서는 노드가 보이지 않는다.

해결방법: Console 접속후 Feature 중 odl-openflowplugin-all 를 설치

- Case #2 : UI not shown 현상: UI 접속하였으나 페이지를 열수없음 혹은

접속이 page not found 등의 메시지가 출력

해결방법 - Console 접속후 Feature 중 odl-dlux-core 를 설치

Page 22: SDN 실증 테스트 시스템 기술서 (SDN Tech. TEST System) · 2018. 10. 15. · SDN에서는 Router라는 명칭 대신, Switch라는 명칭을 사용하는데, 이는 Router

- 20 -

3. SDN 스위치 설정

가. HP Switch는 VLAN 단위 OpenFlow 설정

m OpenFlow Instance마다 개별적인 Controller 설정.

m Controller 추가 설정

# configure

# openflow # controller-id 4 ip [추가할 Controller IP] controller-interface vlan 10

# controller-id 5 ip [추가할 Controller IP] controller-interface vlan 10

# controller-id 6 ip [추가할 Controller IP] controller-interface vlan 10

m Example: ODL Lithium Controller에서 ONOS Controller로 변경할 경우

- Member vlan은 2개 이상의 인스턴스에서 동시에 사용될 수 없으므로, 현

Page 23: SDN 실증 테스트 시스템 기술서 (SDN Tech. TEST System) · 2018. 10. 15. · SDN에서는 Router라는 명칭 대신, Switch라는 명칭을 사용하는데, 이는 Router

- 21 -

재 설정된 ODL 인스턴스에서 Vlan 192를 해제

# configure

# openflow# instance odl# no enable# no member vlan 192

# instance onos# member vlan 192

# enable

나. Brocade Switch: Controller 설정 및 변경 방법

Page 24: SDN 실증 테스트 시스템 기술서 (SDN Tech. TEST System) · 2018. 10. 15. · SDN에서는 Router라는 명칭 대신, Switch라는 명칭을 사용하는데, 이는 Router

- 22 -

Controller 추가 설정

# configure

# openFlow-controller [이름]# ip address [추가할 Controller IP] method [ssl 또는 no-ssl]

Example: ODL Lithium Controller에서 ONOS Controller로 변경할 경우

# configure# rbridge-id1# openflow logical-instance 1

# no controller odl

# controller onos

Example: 21번 포트를 OpenFlow 포트로 설정

Brocade Switch는 port 기반으로 OpenFlow Network이 설정되므로 port마다 개

별적으로 설정

# configure# interface TenGigabitEthernet 1/0/21

# lldp disable# openflow logical-instance 1

# openflow enable

Page 25: SDN 실증 테스트 시스템 기술서 (SDN Tech. TEST System) · 2018. 10. 15. · SDN에서는 Router라는 명칭 대신, Switch라는 명칭을 사용하는데, 이는 Router

- 23 -