OpenFlow 기반 SDN 시험인프라확산및개선 문서의연혁버전 날짜 작성자 비고 초안 김종원, 차병래 김남곤, 정치욱, 나태흠 김종원, 차병래, 김남곤, 정치욱, 나태흠

Size: px
Start display at page:

Download "OpenFlow 기반 SDN 시험인프라확산및개선 문서의연혁버전 날짜 작성자 비고 초안 김종원, 차병래 김남곤, 정치욱, 나태흠 김종원, 차병래, 김남곤, 정치욱, 나태흠"

Transcription

1 OpenFlow 기반 SDN 시험인프라확산및개선 SmartX Rack 구축및운용매뉴얼 (Type A, B, C) Document No. 8 Version 1.0 Date Author(s) GIST #1 & #2 OF@TEIN Team

2 OpenFlow 기반 SDN 시험인프라확산및개선 문서의연혁버전 날짜 작성자 비고 초안 김종원, 차병래 김남곤, 정치욱, 나태흠 김종원, 차병래, 김남곤, 정치욱, 나태흠 김종원, 김남곤, 정치욱, 나태흠 김종원, 차병래, 김남곤, 나태흠 김종원, 차병래, 김남곤, 정치욱, 나태흠 김종원, 차병래, 박선, 김남곤, 정치욱, 나태흠 김종원 본문서는한국정보화진흥원 (NIA) 의미래네트워크연구시험망 (KOREN) 사업 지원과제의연구결과로수행되었음 ( ). This research was one of KOREN projects supported by National Information Society Agency ( ).

3 Contents Part A - Introduction to OF@TEIN SmartX Racks 1 A1. OF@TEIN: OpenFlow-enabled SDN Infrastructure 2 A1.1 OF@TEIN Project Goals 2 A1.2 SmartX Rack Introduction 3 A1.3 Interconnection of SmartX Racks 6 A2. Supporting SDN Experiments with Multiple Controllers 8 A2.1 FlowVisor Setup and Configuration 8 A2.1.1 Installing FlowVisor 8 A2.1.2 Configuring FlowVisor 9 A2.2 Running Multiple OF Controllers with FlowVisor 9 A2.2.1 Running FlowVisor 11 A2.2.2 Running the Selected OF Controller 11 A2.2.3 Running Multiple NOX Controllers with FlowVisor 13 A2.3 FlowSpace UI 16 A2.3.1 FlowSpace UI Introduction 16 A2.3.2 FlowSpace UI Application Setup & Configuration 17 A2.3.3 FlowSpace UI Execution & Trouble Shooting 18 A2.3.4 SDN Experiment UI Introduction 19 A2.3.5 Utilizing SDN Experiment UI for User Experiments 19 A2.3.6 Compatibility Issues with Controller Software 20 A3. Linking SmartX Racks together with Tunnel-based Overlay Networking 21 A3.1 Admin SDN Controller for Capsulator 22 A3.2 Understanding Tunnel-based Overlay Networking 25 A3.3 Remote Management of Tunnels 27 A3.4 3-Stage Flow Processing (Tagging-Steering-Mapping) 30 A4. System and Network Monitoring for OF@TEIN 33 A4.1 Monitoring Tool Introduction 33 A4.1.1 Monitoring Tool Overview 33 A4.1.2 Existing Monitoring Tools 34 A4.1.3 Cacti, perfsonar, 그리고 Nagios 35 A4.2 Monitoring with Cacti Tool 36 A4.2.1 Cacti Tool: Web UI 36 A4.2.2 Cati Tool: PlugIn 41 A4.3 Verification and Utilization of Cacti Tool 43 A4.3.1 Verification of Cacti Web UI 43 1

4 A4.3.2 Utilizing Cacti PlugIn 45 Part B - SmartX Rack (Type A & Type B) 52 B1. SmartX Rack Equipment Specification and Installation 53 B1.1 SmartX Rack Equipment List and Specification (Type A) 53 B1.2 SmartX Rack Equipment List and Specification (Type B) 54 B1.3 SmartX Rack Equipment Installation & Connection 55 B1.4 Remote Power Management Configuration & Usage 56 B1.5 SmartX Rack Equipment Network Configuration 60 B2. Capsulator Node Setup 61 B2.1 OVS Capsulator Node Setup 61 B2.1.1 OVS Capsulator Introduction 61 B2.1.2 OVS Software Install 61 B2.1.3 OVS-based Tunneling Configuration and Execution 62 B2.2 Narinet Capsulator Setup 66 B2.2.1 NOFS Introduction 66 B2.2.2 NOFS-based Tunneling Configuration and Execution 67 B2.3 NetOpen Capsulator Node Setup 69 B2.3.1 NetOpen Capsulator Introduction 69 B2.3.2 NetFPGA Card Installation 71 B2.3.3 Accessing NetOpen Capsulator Node 80 B2.3.4 Verifying Tunneling Reference Software Module 80 B2.3.5 NetOpen Capsulator Software Module 82 B2.3.6 NetOpen Capsulator Usage 89 B2.3.7 NetOpen Capsulator Trouble Shooting 92 B3. SmartX Rack OF Switch Setup 94 B3.1 SmartX Rack OF Switch Initialization 94 B3.2 SmartX Rack OF Switch Verification 94 B3.3 OpenFlow-related Configuration 97 B4. Worker & Management Node Setup 100 B4.1 Accessing Management Node 100 B4.2 Xen Hypervisor Installation 102 B4.2.1 Xen Installation 102 B4.2.2 Management VM#1 Creation 103 B4.2.3 Management VM#2 Creation 103 B4.3 Management VM#1 Setup 104 2

5 B4.3.1 VT Agent Installation & Configuration 104 B4.3.2 Test VM by using CLI 107 B4.4 Management VM#2 Setup 109 B4.4.1 perfsonar Agent Installation & Configuration 109 B4.5 Worker VMs Setup 119 B4.5.1 Worker VM Templet Creation 119 B4.5.2 Bridge Setup for Worker VMs 120 Part C - SmartX Rack (Type C): 121 C1. OF@TEIN SmartX Box (Type C) 122 C1.1 SmartX Box (Type C) Overview 122 C1.2 Softwares Specification for SmartX Box (Type C) 123 C1.3 Hardware Specification for SmartX Box (Type C) 124 C1.4 Networking Specification for SmartX Box (Type C) 125 C2. SmartX Box (Type C) System Architecture 128 C2.1 Unified Virtualized Resources for VMs 128 C2.2 Main System Nodes 128 C2.2.1 Provisioning Center Node 129 C2.2.2 Openstack Orchestration Node 129 C2.2.3 Gateway Node 129 C2.2.4 Worker Node 130 C2.3 기본템플릿들 130 C2.3.1 Template G-A 130 C2.3.2 Template G-A 130 C2.3.2 Template G-A 131 C3. Installation & Operation SmartX Boxes (Type C) 132 C3.1 Automatic Installation of OS (Cobbler) 132 C3.1.1 Cobbler install 132 C3.1.2 Cobbler kickstart 설정 134 C3.1.3 Cobbler 활용 151 C3.3 OpenStack Installation and Configuration (Chef) 157 C4. Experimenting with SmartX Boxes (Type C) 161 C4.1 Web Dashboard (Horizon) 161 C4.2 OpenStack API Server 172 C5. Example Experiment: CCNx Media Delivery 173 3

6 References 184 부록 A. 문서정보 185 4

7 표목차 [ 표 1] 할당된 IP 주소대역 11 [ 표 2] SmartX Box Type C 용도및하드웨어구성 125 5

8 그림목차 [ 그림 1] OF@TEIN 시험환경인프라 (2013년) 2 [ 그림 2] SmartX Rack (Type A*) 구성개념도 (GIST 사이트 ) 4 [ 그림 3] SmartX Rack (Type B) 구성개념도와구성사진 5 [ 그림 4] SmartX Rack (Type C) 구성개념도 6 [ 그림 5] OF@TEIN 인프라 : 시스템및네트워크자원연동 7 [ 그림 6] OF Management를위한 SmartX Rack들의연결다이어그램 7 [ 그림 7] FlowVisor를활용한다수사용자실험지원개념도 8 [ 그림 8] FlowVisor에서 Slice 할당과 FlowSpace 등록 10 [ 그림 9] FlowVisor DB Management 10 [ 그림 10] OF@TEIN Portal and Multiple OF Controllers 12 [ 그림 11] FlowSpace UI에모니터링할슬라이스정보를입력하는부분. 17 [ 그림 12] FlowSpace UI 실행화면. 18 [ 그림 13] SDN Experiment UI 화면 : 연동사이트들에위치한 OpenFlow 스위치와 VM 자원들간에플로우가흐르는모습 20 [ 그림 14] SmartX Rack 간의오픈플로우연동을위한오버레이가상네트워킹 21 [ 그림 15] Admin SDN 제어기와 OF-aware Capsulator 관계도 22 [ 그림 16] 국제간오픈플로우상호연결을위한구성과확장된연결 25 [ 그림 17] Admin SDN 제어기와 OpenFlow-aware Capsulator에서의 Flow Control 26 [ 그림 18] 스크립트코드의계층적구성도 27 [ 그림 19] 각함수와 Data파일과의관계도 29 [ 그림 20] 관리자에게전송된현재터널상태 30 [ 그림 21] 3-Stage와 Overlay Networking에대한도식도 31 [ 그림 22] OF@TEIN 통합모니터링개념도 33 [ 그림 23] Catti Login URL 36 [ 그림 24] Login 화면 36 [ 그림 25] Alert UP/DOWN Mail 37 [ 그림 26] Cacti Graph 1 38 [ 그림 27] Cacti Graph 2 38 [ 그림 28] Cacti Menu 39 [ 그림 29] Device add 39 [ 그림 30] SNMP Options 40 [ 그림 31] Add Data Query 40 [ 그림 32] Create Graphs for this Host 40 [ 그림 33] Cacti Graph 4 41 [ 그림 34] Plugin Management 41 [ 그림 35] Device Status 43 [ 그림 36] Cacti Graph

9 [ 그림 37] Device ICMP Result 44 [ 그림 38] Plugin Management 45 [ 그림 39] Cacti Graph 6 45 [ 그림 40] Monitor 1 46 [ 그림 41] Monitor 2 46 [ 그림 42] NPC Main 47 [ 그림 43] NPC Status 47 [ 그림 44] Nagios Host 47 [ 그림 45] Event Log 48 [ 그림 46] GPS Map 48 [ 그림 47] KOREN Cacti 49 [ 그림 48] Thold 기능 49 [ 그림 49] Alert UP/DOWN Mail 50 [ 그림 50] WeatherMap 1 50 [ 그림 51] WeatherMap Management 51 [ 그림 52] WeatherMap 2 51 [ 그림 53] SmartX Rack Type A의하드웨어구성 53 [ 그림 54] SmartX Rack Type B의하드웨어구성 54 [ 그림 55] SmartX Rack 장치설치구성도 55 [ 그림 56] Remote Power Management: 후면및전면 55 [ 그림 57] Web 인터페이스의로그인화면 57 [ 그림 58] Web 로그인후초기화면 58 [ 그림 59] IP 주소설정화면 58 [ 그림 60] IP 설정후환경설정저장 59 [ 그림 61] SmartX Power Management UI 59 [ 그림 62] OVS 머신간의 GRE 통신연결구성도의예시 63 [ 그림 63] NetOpen Switch 의 NetFPGA 하드웨어보드 #0, #1의장착사진 ( 내부 ) 69 [ 그림 64] NetOpen Switch 의 NetFPGA 하드웨어보드 #0, #1의장착사진 ( 외부 ) 70 [ 그림 65] NetOpen Capsulator V2의 NetFPGA 하드웨어의 FPGA 내부파이프라인구조 70 [ 그림 66] GRE 패킷헤더구조 71 [ 그림 67] NetFPGA 카드 72 [ 그림 68] NetOpen Capsulator V2 의실행 89 [ 그림 69] NetOpen Capsulator V2의설정스크립트 91 [ 그림 70] NetOpen Capsulator V2의실행스크립트 92 [ 그림 71] perfsonar Toolkit 의메인인터페이스화면 111 [ 그림 72] 각종네트워크테스트항목추가를위한 Scheduled Tests 메뉴화면 112 [ 그림 73] BWCTL(Throughput Test) 설정을위한화면 112 [ 그림 74] 추가된테스트에대한호스트추가및파라미터설정화면 112 [ 그림 75] 테스트에참여할호스트설정화면 113 [ 그림 76] Cacti 설정메인화면 115 [ 그림 77] 그래프를나타낼호스트가추가된화면 115 7

10 [ 그림 78] 그래프를나타낼호스트를추가설정하는화면 115 [ 그림 79] 그래프를나타낼호스트의추가가완료된결과화면 116 [ 그림 80] 그래프를나타낼호스트의선택및새로운그래프의생성 116 [ 그림 81] 선택된호스트간의상태를나타내는그래프 117 [ 그림 82] 생성된그래프리스트 117 [ 그림 83] 시간에따라각호스트디바이스에서처리되는트래픽양의그래프예시 118 [ 그림 84] OF@TEIN Configuration: Autonomic Configuration with Templates for SmartX Box 122 [ 그림 85] Installation & Coordination Tool SW for SmartX Box 123 [ 그림 86] OF@TEIN SmartXbox default template G-A 124 [ 그림 87] OF@TEIN SmartXboxes (Type C) Infrastructure (Network) 126 [ 그림 88] SmartX Box (Type C) 는 Installation phase 127 [ 그림 89] Unified and Virtualized (Computing / Networking / Storaging) Resources for OF@TEIN Virtual Playground 128 [ 그림 90] OF@TEIN SmartXbox default template G-A 129 [ 그림 91] OF@TEIN SmartXBox (Type C): Template G-A 130 [ 그림 92] OF@TEIN SmartXBox (Type C): Template G-A 130 [ 그림 93] OF@TEIN SmartXBox (Type C): Template G-A 131 [ 그림 94] OS(ubuntu ) 자동설치 152 [ 그림 95] script 실행 153 [ 그림 96] 서버재부팅 153 [ 그림 97] 서버재부팅 154 [ 그림 98] 서버재부팅 154 [ 그림 99] OpenStack 자동설치 155 [ 그림 100] OpenStack 설치완료 155 [ 그림 101] OpenStack 접속화면 156 [ 그림 102] 로그인화면, 자신의아이디 / 비밀번호로로그인 161 [ 그림 103] 프로젝트초기화면 162 [ 그림 104] 인스턴스들초기화면 162 [ 그림 105] Access & Security 설정화면 163 [ 그림 106] Networking 설정화면 163 [ 그림 107] Post-Creation 설정화면 164 [ 그림 108] Instance 기본설정화면 164 [ 그림 109] Node 생성과정 165 [ 그림 110] 인스턴스텝에서 view Log를클릭 165 [ 그림 111] 성공적으로 VM이생성되었을때의 Log 화면 166 [ 그림 112] 네트워크들기본화면 166 [ 그림 113] 네트워크이름설정화면 167 [ 그림 114] 서브넷설정화면 167 [ 그림 115] 서브넷세부설정화면 168 [ 그림 117] External Network 설정화면 168 8

11 [ 그림 116] Routers 기본화면 168 [ 그림 118] Router 생성화면 169 [ 그림 119] Routers 기본화면에서생성된 Router의 gateway 생성 170 [ 그림 120] public network 중하나를 gateway로선택 170 [ 그림 121] router 기본화면 170 [ 그림 122] router에 interface 설정 171 [ 그림 123] hypervisor 정보 172 [ 그림 124] dashboard에서 ubuntu 11.10설치 173 [ 그림 125] OpenStack VM에설치된게스트OS 174 [ 그림 126] 오라클자바라이센스사용동의화면 175 [ 그림 127] 오픈자바와오라클자바변경을위한선택화면 176 [ 그림 128] CCNx의 configure 실행화면 177 [ 그림 129] CCNx의 make 실행화면 177 [ 그림 130] CCNx의 make install 실행화면 178 [ 그림 131] ccndstart를이용하여 CCNx 구동화면 179 [ 그림 132] CCNx Web Interface 실행화면 179 [ 그림 133] ccnr명령어를이용하여 CCNx저장소를활성화시키는화면 180 [ 그림 134] ccnexplore를이용하여저장소및저장자료를트리형태로나타낸화면 181 [ 그림 135] ccnchat명령어를이용하여채팅하는화면 182 [ 그림 136] vlc를이용한 CCNx상의비디오자료를스트림으로플레이하는화면 183 9

12 Part A - Introduction to OF@TEIN SmartX Racks 1

13 A1. OpenFlow-enabled SDN Infrastructure A1.1 Project Goals 국내 / 국제연구망 (KOREN/TEIN/APII) 을활용한다양한미래네트워크연구시험의일환으로미래인터넷관련기술과서비스에대한연구아이디어를실증하기위한시험환경 ( 즉테스트베드 ) 을구축하고이를활용하는운용기술의확보하는 DevOps ( 개발운영병행체제 ) 방법론이매우중요하게부각되고있다. 또한 IP 기반의인터넷에기초하지않는새로운연구를실증하려고할때, 기존의테스트베드들은프로토콜의존에따른많은제약으로새로운네트워크활용을요구하는실증시험을지원하기어려운문제점이나타나고있다. 따라서최근주목받는소프트웨어중심의새로운네트워킹패러다임 (paradigm) 을시도하는 SDN (Software-Defined Networking, 소프트웨어-정의네트워킹 ) 기술에기반한시험환경에주목할필요가있다. OF@KOREN SmartX Racks (Type C) Postech (Pohang) Jeju (Jeju) VoD Korea U (Seoul) NIA(Seoul) GIST (Gwangju) Networked Tiled Display Narinet OFS EU (SmartFIRE) Thailand Japan or USA Vietnam OF@TEIN Philippines Malaysia SmartX Racks (Type B) SmartX Rack OF@TEIN SDN Tools OF@TEIN Portal Exp. Node (with HD camera) Exp. Node (traffic generator) Exp. Node OpenFlow FlowVisor OpenFlow Controller OpenFlow Production Switch OpenFlow Switch Indonesia [ 그림 1] OF@TEIN 시험환경인프라 (2013년) 이러한상황인식에효과적으로대응하기위해서 2012년도에수행했던 OF@TEIN 1차년도 OpenFlow 기반 SDN 네트워킹인프라구축 과제에서는 KOREN/TEIN에연계하여 OF@TEIN 테스트베드환경에대한 1차구축을 [ 그림 1] 의 1단계부분에맞춰서진행했다. 구축된 OF@TEIN 테스트베드는국내외연구망을활용해서 SDN에기반한미래형서비스실증기술을해외협력기관들과공동으로연구할수있도록컴퓨팅 / 네트워킹자원을융합형으로제공하는 SmartX Rack 장비를중심으로개발된 2

14 독자적인국제연동시험환경이다. 2012년도하반기에광주과학기술원의주도로 KT 네트웤스, 제주대학교, 충남대학교협력으로진행된 1차구축을통해서동남아시아 5 개사이트들과국내 2개사이트들에 SmartX Rack으로불리는한국형테스트베드장비를설치하고이들을 TEIN4 국제연구망으로연동하였다. 해외사이트는 Vietnam; Philippines; Chulalongkorn Thailand; Indonesia; University of Lumpur, Malaysia와같이 ICT 기술을활발하게수용하고있는아세안국가의선도적인기관들로선정하여실제적인국제협력연구를태동시키도록고려했다. 이어서 2013년도에는 1차적으로구축된 OF@TEIN SDN 시험환경을확산하고개선하여당초목적했던실증형테스트베드의운용성과를지속적으로증대시키고자노력하고있다. 이를위하여 1차년도에구축한 TEIN 참가 6개국 ( 한국, 필리핀, 태국, 인도네시아, 말레이시아, 베트남 ) 간을연동하는 OF@TEIN 테스트베드를기반으로 TEIN 참여 NREN들과협력을구체화하고아울러부족했던국내연구자들과의선도적인협력을촉진하기위하여다음과같은 2대분야에주목하면서 OpenFlow 기반 SDN 테스트베드인 OF@TEIN 시험인프라의확산및개선을위한협업형연구 / 운영 / 개발을진행한다. o 분야 #1: SmartX Rack 개량, 확산및모니터링도구개선 o 분야 #2: OF@TEIN 인프라를활용한 SDN 서비스실험촉진 A1.2 SmartX Rack Introduction OF@TEIN 테스트베드에서핵심적인역할을하는 SmartX Rack은미래형서비스실증에필요한각종컴퓨팅 / 네트워킹자원들을융합형으로가상화된수준에서지능적으로제공할수있는독자적인자원집합 (resource pool) 과이를활용하는 DevOps 개념을구체적으로보여준다. 즉미국 GENI 프로젝트의 InstaGENI, ExoGENI Rack 의실용적인버전으로독자화하여설계된 SmartX Rack은 OpenFlow 기반의 SDN 실증을위한핵심기능들을다음장치들의결합으로제공한다. SDN 네트워킹자원을제공하는오픈플로우스위치, 가상화된컴퓨팅자원을제공하는실험 (experiment) 노드, 다지점오픈플로우네트워크들을연결하는 capsulator 노드, 그리고이들을제어하는관리 (management) 노드와원격전원관리 (remote power management) 장치를핵심으로구축된다. 이어서국제적으로분산된 SmartX Rack들을연결하는 capsulator 노드의기술적인애로사항을해결하기위해 Narinet 사의 NPU (network processor unit) 기반 NOFS (Narinet OpenFlow Switch) 를적용한 3

15 Narinet Capsulator, NF (NetFPGA+OpenFlow) Capsulator, 그리고 OVS (Open vswitch) Capsulator 방식을비교검증하는노력이반영되었다. 마지막으로실험자들에게개방된실제적인테스트베드환경을제공하기위해 서버집합, 인프라모니터링도구, SDN 도구에대한개발이병행되었다. 인프라를위한네트워킹자원뿐만아니라컴퓨팅자원을제공하는 SmartX Rack의설계에는다음과같은내용을고려하였다. OpenFlow 스위칭장비는 TEIN 망위에서의 OpenFlow 연결을위해필요한 OpenFlow 터널링및 VLAN 기능을지원하며, 장비상태에대한모니터링기능을제공한다. 설계된 SmartX Rack에대해서 네트워크운용에필요한 SmarX Rack OpenFlow 스위칭기능및원격관리기능을검증한다. 이와같이 SmartX Rack 장비들은크게 Type A, Type B, 그리고 Type C (2013년신규 ) 으로구분된다. SmartX Rack Type A는 GIST 사이트의 SmartX Rack 자원구성을다양화하면서동시에연결하는국내외사이트확장에따른 Capsulator 대역폭요구에대응하도록개선한다. 2013년도에는세부적으로는 NOFS (Narinet OpenFlow Switch) 와 OVS (Open vswitch) 의선택적적용이가능한유연성이개선된 SmartX Rack (Type A*) 로개편하고추가적인컴퓨팅 / 네트워킹자원을투입하여토폴로지 (topology) 구성의유연성을개선하는방식을모색한다. [ 그림 2] SmartX Rack (Type A * ) 구성개념도 (GIST 사이트 ) 기존에구축된 SmartX Rack (Type A) 을중심으로 GIST 사이트의컴퓨팅과네트워킹자원의구성을다양하게통합하고정리하여 [ 그림 2] 에제시한바와같이재구성한다. 이러한형태로확장된자원들의집합을 SmartX Rack (Type A * ) 으로개편한 4

16 후에, 실험자의요구사항에따른유연성이증대된컴퓨팅자원할당과네트워크토폴로지를포함하는네트워킹자원을최대한지원하도록준비한다. 이때 GIST 사이트에위치한 OpenFlow 지원네트워크의토폴로지를다양하게만들고, 여러형태의 Capsulator (L2 GRE 터널링지원 ) 기능을선택적으로적용한다. L2 GRE 기능이포함된 10Gbps급 NOFS, 2~3개의 HP OpenFlow 스위치 (HP 3500, HP 3800 등 ), 그리고소프트웨어기반의 OVS 노드들을연결하여실험자가원하는토폴로지가다양하게구성되도록준비한다. 또한고성능네트워킹이필요한실험은 NOFS(Capsulator + Switch) 를우선적으로사용하도록설정하고, 변화가많은환경설정이필요한실험은 OVS(Capsulator + Switch) 를우선적으로운용한다. 이때상대편 SmartX Rack 사이트들로부터의트래픽을고려하여필요시 OVS 노드를유연하게추가배치해서 OF@TEIN 인프라를위한네트워킹을안정적으로운용하도록한다. 또한추가로함께연동되는컴퓨팅자원의종류를다음과같이다양하게확대해서지원한다. 사용자들이실제로사용하는가상적인컴퓨팅노드인 VM(virtual machine) 컴퓨팅자원을기존의 SmartX Rack (Type A & B) 에속한 Management+Worker 노드를통하거나, 일체화된 (Capsulator + Switch 기능에 VM 지원이포함된, SmartX Rack Type C와유사하게구성된 ) OVS 노드에서선택적으로생성하여할당한다. 또한추가적으로비디오장치를연결한미디어관련컴퓨팅노드들과네트워크타일드디스플레이 (networked tiled display) 와같이가상화되지않은물리적인장비들을연결한다. [ 그림 3] SmartX Rack (Type B) 구성개념도와구성사진 SmartX Rack Type B는 OF@TEIN 인프라의구성에서국외사이트들에보급하기위한 SmartX Rack Type B([ 그림 3] 참조 ) 는아래사항들을고려하여설계하였다. 특히 OpenFlow 스위칭장비는 TEIN 망위에서의 OpenFlow 연결을위해필요한 L2-GRE OpenFlow 터널링기능을 NF/OVS Capsulator를통해지원하도록하였다. 또한원격장비들의효과적인전원관리에주목하여웹기반인터페이스로구현하여적 5

17 용하였다. 마지막으로설계된 SmartX Rack에대해서 네트워크운용에필요한 SmartX Rack OpenFlow 스위칭기능은자체적인연동시험을통해검증하였으며, 구축된 시험환경을통해연결된 SmartX Rack의설정변경이나운용을통하여설계된원격관리기능이효과적으로동작함을확인하였다. SmartX Rack (Type C) Management Switch Management VM (Rack / OpenStack / Monitoring Agents) Storage Manage ment Worker VM #1 Worker VM #2 Worker VM #3 Remote Power Management Open vswitch [ 그림 4] SmartX Rack (Type C) 구성개념도 SmartX Rack Type C는 2013년도에신규로추가하고있는구성방식이다. 총 3 개의노드 (Management + Worker, NF/OVS Capsulator, OpenFlow Switch) 와원격전원관리장치로구성되었던 SmartX Rack (Type B) 의설정및운용에서파악한복잡성을회피할수있도록단독노드인 SmartX Box의집합인 SmartX Rack (Type C) 를 [ 그림 4] 와같이설계하고구축한다. 이때급속하게세력을확대하고있는 OpenStack 클라우드의각종기능을최대한활용하도록하면서, 특히 Storage 부분에대한성능개선및원격전원관리의내재화 ( 노드자체의 IPMI 지원기능활동등 ) 를추진한다. A1.3 Interconnection of SmartX Racks OF@TEIN 인프라를구축하기위해원격사이트들에분산된다수의 SmartX Rack 들을통합하여 SmartX Rack을 OF@TEIN 서버노드들과의연결하는구성은 [ 그림 5] 과같이도식화된다. OF@TEIN 인프라로분산된 SmartX Rack 의각종장치들을통합된원격관리, OpenFlow 기반 SDN 제어 / 관리통합, 연결네트워킹에대한모니터링, 사용자 SDN 도구통합제공등의역할을제공할수있도록구성한다. 6

18 [ 그림 5] 인프라 : 시스템및네트워크자원연동 OF@TEIN을구성하는 SmartX Rack 장비들의세부적인연결은 [ 그림 6] 과같이 Data Plane 측면과 Management/Control 측면으로나눠서구성된다. 지역적으로분산된 Worker VM 들을서로연결할수있도록구성함에있어서세부적인연결을확인할수있다. 하지만 SmartX Rack 의 Capsulator/Switch/Worker 의 3계층구성방안이다양하게확대됨에따라 [ 그림 6] 에제시한연결은지속적으로변화되고있음을참고하기바란다. [ 그림 6] OF Management 를위한 SmartX Rack 들의연결다이어그램 7

19 A2. Supporting SDN Experiments with Multiple Controllers Provisioning for Users Slice #1 Service (S 11 ) Service (S 12 ) User Experiment Script (OMX, ) Slice #2 Slice #3 Service (S 2 ) Service (S 3 ) Computing Resource OF@TEIN Portal Interface OMNI Admin. Slice Networking Resource SmartX Resource Aggregation Manager NOX Core VM VM OF Controller FlowSpace UI SmartX Racks OF Controller FlowSpace Slices Virtually linked FlowVisor SDN Experiment UI NOX Core Node-/Connection-centric OF Controller FlowSpace OF Controller Service-/Content-biased [ 그림 7] FlowVisor 를활용한다수사용자실험지원개념도 [ 그림 7] 에다수사용자들이자신만의콘트롤러를사용하여오픈플로우 SDN 에기 반한실험을진행하도록지원하는방법을개념적으로도식화하였다. A2.1 FlowVisor Setup and Configuration A2.1.1 Installing FlowVisor FlowVisor의소스는 Git 허브에서다운로드할수있으며주소는다음과같다. FlowVisor는 Java로개발되었으므로실행을위해서는 Java Runtime Environment (JRE) 가필요하며, 컴파일을위해서는 Java Developement Kit (JDK) 가필요하다. 원칙은 Sun의공식 JDK를설치하는것이지만, 오픈소스기반의 open-jdk를설치해도무방하다. # git clone git://github.com/opennetworkinglab/flowvisor.git 이어서필요한패키지들을다음과같이설치한다. # apt-get install python-openssl ssl-cert xmlsec1 python-libxml2 ant 8

20 기본적인파일설치가완료되면, 이제 FlowVisor 소스디렉토리로이동후컴파일을진행한다. 또한컴파일이완료되면 FlowVisor 설치를이어서진행한다. 설치과정에서설치디렉토리와사용자는디폴트로설정하고, 관리자용패스워드는적절하게입력한다. # make # make install A2.1.2 Configuring FlowVisor FlowVisor의환경설정중에서 OCF(Ofellia Control Framework) 로구현된 OF@TEIN Portal과연동되는부분은 XML-RPC API 설정과 SSL 연결을위한 key 설정이다. 이를위하여다음명령을실행하여기본설정파일을생성한다. # fvconfig load config.json 그리고파일편집기를활용하여 config.json 파일의 api_webserver_port 를 8080 으 로수정한다. 또한 OF@TEIN Portal 의 Opt-in Manager 가 SSL 로 FlowVisor 에접 속하기위해서는 SSL key 설정이필요하다. 키설정은다음의명령을사용한다. # fvconfig generatecert {Host IP} {Host IP} 인자는 FlowVisor 가실행되는머신의 IP 주소를입력한다. 이미파일이존 재하거나 SSL 접속에문제가있을경우 FlowVisor 가설치된디렉토리 ( 예 : /etc/flowvisor) 로이동하여 mysslkeystore 파일을삭제후 key 를생성한다. A2.2 Running Multiple OF Controllers with FlowVisor [ 그림 8] 은 FlowVisor의구조를나타낸것이다. FlowVisor는사용자별로 Slice 를할당하고, 해당 Slice별로제어할 Flow의집합인 FlowSpace 를생성한다. FlowSpace는 OpenFlow의 12-tuple의조합으로정의할수있고, 하나의 Slice에다수의 FlowSpace를등록할수있다. FlowVisor는환경설정을저장하고관리하기위한 DB를사용하여, 머신이재부팅되거나 FlowVisor가재시작되더라도 Slice와 FlowSpace 등의정보는사라지지않는다. [ 그림 9] 는 FlowVisor의 Slice와 FlowSpace의관리주기를나타낸것이다. 9

21 [ 그림 8] FlowVisor 에서 Slice 할당과 FlowSpace 등록 [ 그림 9] FlowVisor DB Management 10

22 A2.2.1 Running FlowVisor FlowVisor (version 1.2 이상 ) 의실행은다음의 2 가지중하나로할수있으며, root 계정이아닌사용자계정으로실행해야한다. $ flowvisor /etc/flowvisor/config.json $ sudo /etc/init.d/flowvisor start A2.2.2 Running the Selected OF Controller FlowVisor 실행후새로운실험자가있다면 Slice 를할당해야하며, 명령은다음과 같다. $ fvctl add-slice <slice name> <OF Controller IP:Port> <slice admin mail> Slice 생성전 OF 제어기는실행되고있어야하는데, 각실험자들은자신이사용할 OF 제어기를설치하고실행해야한다. 각실험자별 FlowSpace는 VLAN을기반으로정의하고, 경우에따라할당된 IP주소대역을사용한다. [ 표 1] 는 SmartX Rack Type B/B+ 의사이트별 VLAN ID와권장 IP주소대역을나타내었다. Project (site) required VLAN Optional IP4 address (B class) GIST (KR) 3000~ ~ PH 3200~ ~ ID 3300~ ~ MY 3400~ ~ TH 3500~ ~ VN 3600~ ~ PK 3700~ ~ [ 표 1] 할당된 IP 주소대역 11

23 각슬라이스에 FlowSpace 를할당하기위한명령은다음과같다. <slice-perm> $ fvctl add-flowspace <flowspace name> <dpid> <priority> <match> <dpid> 는 OF스위치의 DPID로특정링크로구성된토폴로지를구성할때에는해당하는 DPID를각각입력하여명령을실행하고, 전체스위치에적용할때에는 all 로한번만실행할수있다. priority는 0~65535 범위로지정할수있고, 큰값일수록우선순위를가진다. match는 Flow를정의한다. 예를들어 VLAN ID가 3000 인 Flow 를등록하기위해서는 dl_vlan=3000으로입력한다. slice-perm은 FlowSpace를등록할 Slice 이름과권한을지정한다. 권한은 DELGATE 1, READ 2, WRITE 4로정의되어있으며, 예를들어 DELGATE와 WRITE 권한을부여하려면 1+4인 5를입력하는데대부분의경우쓰기권한인 4를부여한다. slice이름 = 권한 의형태로입력하는데, 이때여러개의슬라이스를지정할수있다. 만약 [ 그림 10] 과같이 OF@TEIN Portal을사용하는환경설정인경우 Opt-in Manager는 FlowVisor의 XML-RPC API를사용하여각사용자들의 Sliced와 FlowSpace를등록하거나해제할수있다. 이때 OF@TEIN Portal에서는 OpenFlow 자원을예약하는과정에서제어기의접속정보와 FlowVisor의패스워드를입력하는방식을활용한다. [ 그림 10] OF@TEIN Portal and Multiple OF Controllers 할당된 FlowSpace 와 Slice 를삭제할경우아래의명령을실행한다. $ fvctl remove-flowspace <flowapce-name> $ fvctl remove-slice <slice-name> 12

24 A2.2.3 Running Multiple NOX Controllers with FlowVisor 본설명서에서는 FlowVisor와함께복수개의 NOX 제어기를동시에실행하는상황을기본적으로가정한다. 이러한상황에맞춰서 NOX 제어기와 FlowSpace UI 구동에필요한코드를자동실행하는스크립트와 FlowVisor에직접 FlowSpace를등록하여실험해볼수있는코드를아래에설명한다. 먼저 NOX 제어기머신에접속하여 /home/netcs/ofkorea/conf 폴더로들어가 switches.list 파일을수정한다. switches.list 파일에필요한변수를입력하고, 형식에 맞추어사용하고자하는 switch 의 dpid 를입력한다. pwd /home/netcs/ofkorea/conf ls cuda.conf envs.cfg openflow.cfg switches.list testbed.cfg vim switches.list ### Switch information # - " " indicating the two character nation's name -- HYUN -- % % 다음과같이스위치의 dpid 정보를입력. % HPGW는변수명따옴표안에는 dpid를나타낸다. % dpid의영문자는소문자로등록한다. % HPGW=" a6d18c0" #4 PH HPFF=" a6ffe80" #3 - ID HPOO=" a7c3900" #1 - TH HPTT=" a6e4080" #3 - MY CACA="00006cae8b1c4b2b" HOHO="00006cae8b1cb833" OVSNR="0000e41f13ec9825" #HPJJ=" a6d18c0" # - conflicted HPGW <-> HPJJ #NRNR="00007efbc0824e23" NRNR=" c2617f1e" JEJU=" b94735e9" OVSTMP=" fb1730" CAPSEOUL=" " OVSFORCNU=" a725612" CNU1=" " CNU2=" " CNUOVS=" e0caf9513" 13

25 CAPNEW=" " 이와같이스위치를위한변수와 dpid를등록하였다면 NOX 제어기와 FlowVisor 를위한설정파일을수정한다. 설정파일은 /home/netcs/ofkorea/experiment에있다. pwd /home/netcs/ofkorea/experiment ls check_netopen_perf.sh exp-cnunftonf exp-nari mon-alpha prepare_flowspaces.sh close_exp.sh exp-cnunftoovs exp-nofs mon-csage show_nox_log.sh close_flowspaces.sh exp-cnuovstonf exp-sage mon-experi stop_exp.sh exp-cnu exp-cnuovstoovs exp_status.sh noflood.sh exp-cnu2 exp-csage logs prepare_exp.sh 일례로 exp-csage 파일을살펴보면, vim exp-csage #SLICE-INFO # exp-firstpc EXP_NAME=sage % 슬라이스의이름을명해준다. SLICE=sage % 각각의세개의포트들이다른 Nox 의포트들과겹쳐지지않는지 % 확인후설정한다. LAVI_PORT=yyyy TRNS_PORT=yyyy NOX=xxx.xxx.xxx.xxx:yyyy NOX_APP=netopen NOX_SERVER=netcs@xxx.xxx.xxx.xxx % switches.list에서등록했던스위치중현재설정에필요한 % 스위치들을아래와같은형식으로등록해준다. switches[1]="caca \$CACA" switches[2]="hoho \$HOHO" switches[3]="hpgst \$HPGST" switches[4]="ovsnr \$OVSNR" switches[5]="jeju \$JEJU" % 마찬가지로 switches.list 에서등록했던스위치중현재설정에 14

26 % 필요한스위치들을아래와같은형식으로등록해주고, % flowtable 에추가할 ip 대역대를할당하여준다. commands[1]="fv_server=\"netcs@xxx.xxx.xxx.xxx\"" commands[2]="fv_set_flood_perm $ SLICE" commands[3]="add_ip_flow \$CACA /24 \$ SLICE \$READWRITE 10 &>> \$ LOG_FV" commands[4]="add_ip_flow \$HOHO /24 \$ SLICE \$READWRITE 10 &>> \$ LOG_FV" commands[5]="add_ip_flow \$HPGST /24 \$ SLICE \$READWRITE 10 &>> \$ LOG_FV" commands[6]="add_ip_flow \$OVSNR /24 \$ SLICE \$READWRITE 10 &>> \$ LOG_FV" commands[7]="add_ip_flow \$JEJU /24 \$ SLICE \$READWRITE 10 &>> \$ LOG_FV" TOTAL_COMMANDS=${#commands[@]} 설정파일을설정한후, NOX 제어기머신에서설정에맞춰 NOX 제어기프로그램 을실행시키고, FlowSpace 에 slice 를생성한다. 먼저 /home/netcs/ofkorea/experiment 에서./prepare_exp.sh < 설정한설정파 일 > 을명령하여 NOX 제어기프로그램을실행시킨다. netcs@sdntool-server:~/ofkorea/experiment$./prepare_exp.sh exp-cnu2 07:59:42 >> [INFO:nox] KILL TRANSLATE - 'netcs@xxx.xxx.xxx.xxx:yyy' KILL AutoTranslate (27298) at netcs@xxx.xxx.xxx.xxx KILL AutoTranslate (27413) at netcs@xxx.xxx.xxx.xxx 07:59:43 >> [INFO:nox] KILL NOX - 'netcs@xxx.xxx.xxx.xxx:yyyy' KILL nox_core (27008) at netcs@xxx.xxx.xxx.xxx 07:59:44 >> [INFO:flowvisor] 'netcs@xxx.xxx.xxx.xxx' flowvisor is running. 07:59:45 >> [INFO:nox] Start NOX at netcs@xxx.xxx.xxx.xxx... /home/netcs/ofkorea/experiment/logs/exp-cnu2/nox.netcs@xxx.xxx.xxx.xxx.log 07:59:51 >> [INFO:nox] nox is running. 07:59:51 >> [INFO:nox] Start AutoTranslate on yyyy... 07:59:52 >> [INFO:flowvisor] list of connected switches. - CAPG - CNU1 - HPTT 07:59:52 >> [INFO:prepare_exp] Done!!! 이어서 /home/netcs/ofkorea/experiment 에서./prepare_flowspaces.sh < 설 정한설정파일 > 을명령하여슬라이스추가를진행한다. netcs@sdntool-server:~/ofkorea/experiment$./prepare_flowspaces.sh exp-cnu2 15

27 07:59:57 >> [INFO:flowvisor] Remove slice 'cnu2'. 07:59:58 >> [INFO:flowvisor] flowvisor is running. 07:59:58 >> [INFO:flowvisor] list of slices. 07:59:58 >> [INFO:flowvisor] SLICE 'cnu2' does not exist! Create slice 'cnu2'! 07:59:59 >> [INFO:flowvisor] Add FlowSpaces for cnu2 slice. executing executing fv_set_flood_perm cnu2 success! executing add_ip_flow $CAPG /24 $ SLICE $READWRITE 10 &>> $ LOG_FV executing add_ip_flow $CNU /24 $ SLICE $READWRITE 10 &>> $ LOG_FV executing add_ip_flow $HPTT /24 $ SLICE $READWRITE 10 &>> $ LOG_FV 08:00:02 >> [INFO:prepare_flowspaces] Done!!! 만약추가한슬라이스를 FlowVisor 에서지우려면./close_flowspaces.sh < 설정한 설정파일 > 을사용하여삭제할수있다. 또한./prepare_exp.sh 를사용하여 NOX 제어기를실행할때, 기존에실행되던같 은설정의 NOX 는 kill 이되고재시작된다. 그리고임의로정지시키고싶을때는./close_exp.sh < 설정한설정파일 > 을사용하여삭제할수있다. A2.3 FlowSpace UI A2.3.1 FlowSpace UI Introduction OF@TEIN의전체 FlowSpace에대한관리를효과적으로지원하기위해서 FlowSpace UI 도구를제공한다. 이기능은 OF@TEIN Portal( 즉 OCF) 과분리된별도의프로그램으로설치해야한다. [ 주의 : 현재개발된 SmartX Rack의 FlowSpace UI는구버전의 NOX 제어기 (zaku version) 와함께동작한다.] 16

28 A2.3.2 FlowSpace UI Application Setup & Configuration FlowSpace UI 는 JAVA 코드로작성된프로그램으로서 JAVA 소스코드의컴파일 및실행이가능한노드에서실행이가능하다. FlowSpace UI 는 Eclipse 를이용하여 실행하게된다. SVN 을통해아래의주소에서다운받는다. svn://trac.nm.gist.ac.kr/first/branches/netopenui_omni/flowvisor2 관리자는 인프라의전체 FlowSpace 자원에대한모니터링을위하여관리자용으로준비된특별한슬라이스와 OpenFlow 제어기를가져야한다. 따라서관리자용 OpenFlow 제어기의주소에맞추어트랜슬레이터의포트를입력해야한다. 트랜슬레이터는 OpenFlow 제어기와 UI 도구사이에위치하여정보를번역하여전달하는역할을한다 ( FlowVisor NOX Translator FlowSpace UI ). 또한관리자는각실험슬라이스에대한정보를모니터링하기위하여각실험슬라이스에연결된 OpenFlow 제어기정보와트랜슬레이터포트정보를입력한다. [ 그림 11] FlowSpace UI 에모니터링할슬라이스정보를입력하는부분. 관리자는 FlowSpace UI를통해서모니터링하고자하는대상슬라이스를등록하기위하여 openflow_gui/src/org/openflow/gui/fv/flowvisorgui.java 에위치한소스코드의 servers.add 부분에자신의제어기정보를입력해줘야한다. 제어기주소, 트랜슬레이터포트, 표시될슬라이스이름정보를아래의표기와같이입력한다 ([ 그림 11] 참조 ). servers.add(new Triple(" ", 2505, "Admin")); 마찬가지로사용자슬라이스의제어기주소와트랜슬레이터포트, 표시될슬라이스 이름정보를추가적으로입력해야한다. 17

29 A2.3.3 FlowSpace UI Execution & Trouble Shooting [ 그림 12] FlowSpace UI 실행화면. FlowSpace UI 를실행하면 [ 그림 12] 과같은화면이나타나게되며, 분할된각화 면은각각입력된슬라이스의할당된자원과플로우의흐름을슬라이스의이름과함 께나타낸다. Trouble Shooting Tips: 1) 등록한 Slice 의이름과함께 Not Connected 가나온다면실제 OpenFlow 제어기와트랜슬레이터가정상적으로동작하는지, 포트번호를올바르게입력했는지확인한다 ; 2) 등록한 Slice 의이름만나오고토폴로지와플로우가표현되지않는다면, FlowVisor에슬라이스의 FlowSpace가등록되었는지확인한다. 18

30 A2.3.4 SDN Experiment UI Introduction SDN 기반실험을지원하기위해서 Portal에추가적으로사용자를위한플로우모니터링및인터랙션 (interaction) 인터페이스로 SDN Experiment UI를제공한다. 이도구는사용자슬라이스의 OpenFlow 네트워크및가상화된 VM 컴퓨팅자원의현황그리고이들간에흐르는플로우들의흐름을실시간으로반영하여보여준다. SDN Experiment UI는 JAVA 코드로작성된도구이다. 따라서 JAVA 소스코드의컴파일및실행이가능한대부분의사용자노드에서실행이가능하다. 도구설치를위하여사용자는 Eclipse의 SVN을통해소스코드를다운받아야한다. SVN 주소는아래와같다. Svn://trac.nm.gist.ac.kr/first/branches/ExperimentUI-GFIW2011: ExperimentUI-GFIW2011 먼저사용자의 OpenFlow 제어기정보와트랜슬레이터 (translator) 포트정보를입력해야한다. 트랜슬레이터는 NOX 제어기로구현된 OpenFlow 제어기와 SDN Experiment UI 사이에위치하여플로우들에대한정보를번역하여전달하는역할을한다. FlowVisor NOX Translator Experiment UI [ 주의 : 현재 SDN Experiment UI 는 OpenFlow 제어기로 Zaku 버전의 NOX 제어기 만지원.] 이어서 OpenFlow 제어기와트랜슬레이터에대한정보는아래경로에위치한소스 코드의 String server 와 port 에각각입력한다. /openflow_gui/src/org/openflow/gui/ex/example.java -> public static void main l l String server 사용자의 NOX 와연결된트랜슬레이터 IP 주소 Port 트랜슬레이터 Port 주소 A2.3.5 Utilizing SDN Experiment UI for User Experiments SDN Experiment UI 를실행하면 OpenFlow 네트워킹자원및컴퓨팅노드, 그리 고노드간발생하는플로우들이 [ 그림 13] 과같이보여진다. 보다나은가시성을위 19

31 하여사용자는자신이원하는레이아웃으로각자원들을드래그앤드롭으로위치시킬수있다. 위치시킨자원들을고정하기위해서는마우스오른쪽버튼을클릭하면나오는 Save Yaml Position 버튼을클릭하면자신의 Eclipse의 Workspace 폴더에 SAVED.yaml 파일로저장되며, 자신이사용하는 yaml 파일과바꿔넣으면다음실행시각자원들의위치를그대로복원하게된다. [ 그림 13] SDN Experiment UI 화면 : 연동사이트들에위치한 OpenFlow 스위치와 VM 자원들간에플로우가흐르는모습 A2.3.6 Compatibility Issues with Controller Software FlowSpace UI와 Experiment UI는 OpenFlow 제어기중 NOX (zaku) 버전에서 NetOpen 응용으로 2009년 ~2012년에걸쳐서구현되었다. NetOpen 응용은오픈플로우관련연구의초기단계에서개발되었던 pyswitch 등을가져와이를확장함에의해서, 링크정보와링크간의플로우정보를제공하는역할을하도록구현한응용이다. 따라서오래전에개발되었던 NOX (zaku) 버전을기반으로개발된관계로이버전에서동작은검증되었으나, 이후버전에서의동작은대부분검증되지않은상태이다. 특히이후버전의 NOX 제어기에서는현재정상작동하지않는다. 이는제어기의메시지와 UI의메시지포맷이다르기때문에변환을위한 Translator의실행이필요하다. Translator 역시 Nox (zaku) 기준으로구현되어있어이후버전의 NOX 나다른제어기와의호환성을보장하지않는다. 따라서현재상황에서는 Floodlight와같은다른종류의제어기에서 Translator나 UI와호환되는모듈을개발하거나, 새로운 UI 구현을고려해야하는상황이다. 20

32 A3. Linking SmartX Racks together with Tunnel-based Overlay Networking [ 그림 14] SmartX Rack 간의오픈플로우연동을위한오버레이가상네트워킹 각사이트들간의오픈플로우기반 SDN 운용을위해현재 IP 네트워킹을통한오버레이가상네트워킹 (overlay virtual networking) 의적용이필요하다. 오버레이가상네트워킹은 IP 네트워크를활용하여구성되는논리적인가상네트워킹을의미한다. 네트워킹가상화기능을적용한오버레이가상네트워킹을이용하면가상화기반으로사용자별로구분하거나, 제공하는기능별로구분할수있다. 현재 SmartX Rack 간의오버레이가상네트워킹은 L2 GRE 터널링을기반으로수행한다. 터널링을수행하는 Capsulator 역시오픈플로우제어를받는스위치의변형이므로제어기가필요하다. 2013년도에는사용자들의실험을위한환경구축과사용자들의실험을분리하여, 사용자는터널의존재를인지하지못한다. 따라서 SDN 제어기를 [ 그림 14] 와같이관리자용제어기, 사용자용제어기, 그리고기존의 FlowSpace UI를위한제어기로나눈다. 관리자용제어기는사용자에겐접근권한을부여하지않는다. 그런데 GRE 터널링에기반한방식으로인하여, 두사이트간중복된터널링을구현함에있어서여러가지어려움이존재한다. L3 방식의 IP를활용하여데이터를캡슐화하는 GRE 터널링의특성상중복된터널을구분할수없기때문에, 시험환경을구축 / 운영하는입장에서한계점을지닌다. 이를해결하기위해 Capsulator를기반으로 21

33 가상화를지원하는 GRE 확장인, NVGRE 방식을활용하게되면동일사이트간다중 터널을구축하는것이가능케하여전술한한계점을극복할수있으므로이에대한 보완이현재진행중이다. A3.1 Admin SDN Controller for Capsulator 구축된 SDN 실험환경을구성및제어하기위해서관리자는많은수의노드들에접근하고구성 / 제어할필요가있다. 이러한과정을효과적이고효율적으로수행하기위해서 Admin SDN (overlay networking via OpenFlow + OVSDB) 제어기를도입한다. Admin SDN 제어기는설정도구 (configuration tool) 과오픈플로우제어도구 (OpenFlow control tool) 의두가지부분으로나눠진다. 아울러논리적으로중앙에위치하면서 OF@TEIN 시험환경인프라에속한노드중에서오픈플로우-인지형 capsulator들을설정하고제어함과동시에이를통해생성 / 관리되는터널을이용하는플로우들의제어를지원한다. [ 그림 15] Admin SDN 제어기와 OF-aware Capsulator 관계도 [ 그림 15] 은 SDN 지원 OF@TEIN 시험환경에서각각의오픈플로우-인지 capsulator들과 Admin SDN 제어기의관계를나타내고있다. 설정도구 (configuration tool) 는 OF@TEIN 시험환경인프라에존재하는오픈플로우-인지캡슐레이터들을중앙에서관리및설정하는역할을하며, (NV)GRE 터널링을구성하는핵심역할을수행한다. 한편오픈플로우제어도구 (OpenFlow control tool) 는오픈플로우-인지 capsulator로들어온플로우들을제어하는역할을한다. 이때플로우들의제어는기존의오픈플로우컨트롤러를이용하여, 플로우테이블을내려수행하게된다. 이를통하여관리자가원하는대로사이트사이를이동하는플로우들을제어한다. Capsulator 는 OpenFlow 1.0 을지원하는장치또는소프트웨어를사용하고, 이를 22

34 위한 SDN Admin 제어기는 Floodlight를사용한다. 그런데사용자가 OpenFlow 스위치간의링크를확인할수있도록지원하는것이매우중요하다. Floodlight 기본모듈중에 Learning Switch 는이러한요구사항을만족한다. 추후관리자의필요에따라 Learning Switch를확장하거나유사한기능모듈을구현하여사용하면된다. 또한 Floodlight 는 Java 기반의응용프로그램이므로안정적인실행을위하여 64비트운영체제를사용하고, 시스템의메모리를 8GB 이상장착하는것을권장한다. [ 참고 : FlowVisor의권장 Java Heap size는 4GB이다.] Floodlight는실행시, 여러모듈들을초기화하는데현재네트워크연결성에불필요한모듈은제거해주어야한다. 이모듈들은기본적으로 Floodlight의폴더내설정파일을통해설정된다. 아래에제시한대로 floodlightdefault.properties파일에명시된모듈들이로딩되므로, 사용자는자신의환경에맞도록수정해야한다. /home/netcs/floodlight/src/main/resources/floodlightdefault.properties floodlight.modules = net.floodlightcontroller.storage.memory.memorystoragesource,\ net.floodlightcontroller.core.floodlightprovider,\ net.floodlightcontroller.threadpool.threadpool,\ net.floodlightcontroller.devicemanager.internal.devicemanagerimpl,\ net.floodlightcontroller.devicemanager.internal.defaultentityclassifier,\ net.floodlightcontroller.staticflowentry.staticflowentrypusher,\ net.floodlightcontroller.firewall.firewall,\ net.floodlightcontroller.forwarding.forwarding,\ net.floodlightcontroller.linkdiscovery.internal.linkdiscoverymanager, \ net.floodlightcontroller.topology.topologymanager, \ net.floodlightcontroller.flowcache.flowcache, \ net.floodlightcontroller.flowcache.flowreconcilemanager, \ net.floodlightcontroller.jython.jythondebuginterface,\ net.floodlightcontroller.counter.counterstore,\ net.floodlightcontroller.debugcounter.debugcounter,\ net.floodlightcontroller.perfmon.pktinprocessingtime,\ net.floodlightcontroller.ui.web.staticwebroutable,\ net.floodlightcontroller.loadbalancer.loadbalancer net.floodlightcontroller.restserver.restapiserver.port = 8080 net.floodlightcontroller.core.floodlightprovider.openflowport = 6600 net.floodlightcontroller.jython.jythondebuginterface.port = 6655 net.floodlightcontroller.forwarding.forwarding.idletimeout = 5 net.floodlightcontroller.forwarding.forwarding.hardtimeout = 0 23

35 위표의두번째행은설정파일의내용을나타낸다. 로딩되는여러모듈중빨간색으로표시된모듈은사용하는환경에부적합한모듈이다. 언급된모듈의기능은스위치에알수없는 Flow가들어왔을경우, 이를포워딩하도록하는기능인데, 현재사용한환경에서는 tenant의모든 flow는사용자가의도한사이트로전달되어야하며, 알수없는 flow는 drop시키는것이바람직하다. 따라서표시된모듈을삭제해주어야한다. 24

36 A3.2 Understanding Tunnel-based Overlay Networking [ 그림 16] 국제간오픈플로우상호연결을위한구성과확장된연결 SmartX Rack으로구성된 OF@TEIN 인프라에더불어, OpenFlow-aware capsulator와 VM이동시에상주하는새로운타입의머신을확장을위해광주지역사이트에두개의노드를추가하여구성한다. 이와동시에, Admin SDN 제어기또한추가적으로설치하여운용한다. [ 그림 16] 는확장된구성을보여주고있다. SmartX Rack으로구성되어있던기본구성을그대로유지하면서 OVS capsulator와 Narinet 스위치를가운데두어상황에따라 Admin SDN 제어기에서선택이가능하게한다. 즉기존의 GRE 터널링기반연결환경을 Admin SDN 제어기에저장하면서, NVGRE 터널링기반의새로운환경또한설정하여상황에따라터널링구성변경이용이하게운용할뿐만아니라, OVS/Narinet capsulator을선택하는환경또한고려하여인프라의활용성을높인다. Admin SDN 제어기의설정도구를사용하여, 각 OpenFlow-aware capsulator의설정및터널링구축이완료되면, VLAN ID를가진플로우들을해당하는 NVGRE 터널으로송수신하기위해해당 capsulator를통해오가는플로우들을제어할필요가있다. [ 그림 17] 은 Admin SDN 제어기를통해터널들이구축된뒤, 오픈플로우제어도구를통하여터널을통한플로우들을제어하는상황을도식적으로표현한것이다. 25

37 [ 그림 17] Admin SDN 제어기와 OpenFlow-aware Capsulator 에서의 Flow Control [ 그림 17] 의좌측은여러사이트들과 NVGRE 터널링을구성하는 OpenFlow-aware capsultor를의미하고우측은다른사이트의 OpenFlow-aware capsulator를의미한다. 각각의자동차는해당플로우의패킷을의미하며, 각기다른표식은 VLAN ID 값을의미한다. 가운데는각각의 NVGRE 터널을의미하고, 양끝의표식은 NVGRE 키값을의미한다. VLAN ID를단패킷은터널종단 (end-point) 을지나면서캡슐화되는동시에 NVGRE 키값을가진다. 이들은터널을지나기전에톨게이트를지나는것으로표현되어있는데, 이것이 OpenFlow control 툴에따라제어를받음을의미한다. [ 그림 17] 의하단에서이를설명하고있다. Admin SDN 제어기로부터내려받은플로우테이블을기반으로오픈플로우-인지 capsulator에들어온플로우들을구분한다. [ 그림 17] 의사례는각각의 VLAN ID로구분하여, 터널로보내는액션을취하거나드랍시키는부분을보여준다. 터널을통해들어오는패킷도마찬가지로 VLAN ID로구분하여특정포트로전달하는예를보여주고있다. 26

38 A3.3 Remote Management of Tunnels Overlay Networking을수행하기위한 L2 GRE 터널을쉽게구성하고관리하기위해서원격관리를원칙으로한다. 해당 Capsulator 머신에직접접속하여터널생성코드를실행하는것이아니라원격에서모든실행을수행한다. 수행하기위한머신은 Admin SDN 제어기 머신이다. 스크립트코드의구성 : 스크립트코드는 [ 그림 18] 과같이구성된다. Define 폴더내부에구현된파일들은각스위치에서처리될 Flow들을정의할수있고, 각스위치의 DataPathID 리스트와, Admin 제어기리스트, 각사이트의 Capsulator 리스트정보가정의되어있다. Define 내부의모든파일들은 Script 내부의 Function.sh에서참조되어사용된다. 이때 Tunnel 내부에 Tunnel.list를정의하여생성된터널들의목록을기록하여관리한다. Script 내부의 Function.sh는전술한대로모든 Define 내부의파일들을참조하여터널링관리를위한함수들이구현되어있다. 크게, OVS-Bridge를원격관리하는부분, Admin 제어기에 Al_flow 파일에작성된 flow들에대한 FlowTable을각스위치로내려주는부분, GRE터널과 NVGRE터널을생성및제거하는부분으로구분된다. [ 그림 18] 스크립트코드의계층적구성도 스크립트실행방법 : 관리자는새로운스크립트파일을생성하고, function.sh 파일을참조하여 function.sh 파일내부에구현된함수와변수들을사용할수있다. 각구현된함수들에대한사용법과, 실제사용예시는아래와같다. check_site_all sites.list에저장된사이트들의연결성을확인한다. clear_site $CAPSULATOR_CONTORL_IP 해당사이트의 vswtich를초기화한다. add_br $CAPSULATOR_CONTORL_IP BRIDGE 해당사이트에 BRIDGE를추가한다. add_port $CAPSULATOR_CONTORL_IP BRIDGE PORT 해당사이트의브리지에포트를추가한다. set_dpid $CAPSULATOR_CONTORL_IP BRIDGE $CAP_DPID 해당브리지에 DPID를부여한다. 27

39 set_controller $CAPSULATOR_CONTORL_IP BRIDGE $CONTROLLER 해당브리지 에컨트롤러를설정한다. clear_tunnel_list tunnel.list를초기화한다. tunnel_check $CAPSULATOR_CONTORL_IP BRIDGE 해당브리지의터널을확인하고삭제한다. make_tunnel $SRC_site $DST_site SRC와 DST간의 NVGRE터널을생성한다. set_flows_inout port 기반으로 al_flow에저장된 flow를허용하는플로우테이블을내린다. set_flows_vlan vlan 기반으로 al_flow에저장된 flow를허용하는플로우테이블을내린다. set_flows_ip ip 기반으로 al_flow에저장된 flow를허용하는플로우테이블을내린다. check_site_all clear_site $GJCAP00_CT_IP add_br $GJCAP00_CT_IP br1 add_port $GJCAP00_CT_IP br1 eth2 set_dpid $GJCAP00_CT_IP br1 $GJCAP00_DPID set_controller $GJCAP00_CT_IP br1 $CONTROLLER1 clear_tunnel_list tunnel_check $GJCAP00_CT_IP br1 make_tunnel GJ MY set_flows_inout set_flows_vlan set_flows_ip 현재는각사이트의 OVS-Bridge의초기화 (init.sh), GIST와각사이트간의터널생성 (configure_tunnel.sh), 모든사이트의 OVS-Bridge에 FlowTable 추가 (flow_setting.sh) 하는세단계의스크립트를사용할수있다. [ 그림 19] 의 Data파일과의관계도는함수가실행될시에, 정의된변수들과의관계를나타낸다. 28

40 [ 그림 19] 각함수와 Data 파일과의관계도 주기적모니터링 : 동남아및국내다수의멀티사이트를관리함에있어서, 안정적인테스트베드를제공하기위해서는자동화된상태체크및리포팅이적절히이루어져야한다. 이를위해자동화소프트웨어는앞서말한기능을포함한다. 30분간격으로동남아 5개국및 GIST의터널상태를확인하고, 이를관리자에게전달하도록구성되어있다. 이를통해관리자는주기적으로터널의상태를체크할수있으며, 이에대해신속한조치가가능하다. 구현을위한툴로는 mutt오픈소스프로젝트와 crontab을이용하여구현했으며, 설정방법은아래와같다. $corntab e */30 * * * * /bin/bash /home/netcs/adminsdncontroller/checking_tunnel.sh >> /home/netcs/cron.log */30 * * * * mutt -s "Current Tunnel State" -a /home/netcs/adminsdncontrolle r/tunnel/active_tunnel.list c ADMIN < /home/netcs/adminsdncontroller /Tunnel/active_tunnel.list $crontab l # 현재 crontab 에설정된리스트출력 설정이완료되면 [ 그림 20] 과같은형태로관리자에게 을통해리포트된다. 29

41 [ 그림 20] 관리자에게전송된현재터널상태 GRE 터널명명법 : 관리자및사용자의편의를위해, GRE 터널의이름을다음의형 태로명명한다. gre_[src][dst] 숫자 gre_gjph1 gre_phgj1 A3.4 3-Stage Flow Processing (Tagging-Steering-Mapping) 다수의실험자가사용하는테스트베드이므로, 12튜플중, 기준을세우고그기준으로 flowspace를할당함으로써, 실험자에게가상의네트워크를제공할수있다. 기본적으로 3-Stage는 Tagging Steering- Mapping을의미하며, 테스트베드운영자및사용자입장에서각각의스테이지는중요한의미를지닌다. Tagging단계는멀티유저의플로우들을구분하는단계이고, Steering은유저의의도와일치하도록 30

42 플로우들이제어되는단계이고, Mapping 은 Steering 된플로우들을다지점오픈플 로우사이트간연결이가능하도록매칭하여연결한다. Mapping 단계에서관리자는 리모트사이트로향하는모든플로우들에대해통제가가능하다. [ 그림 21] 3-Stage 와 Overlay Networking 에대한도식도 [ 그림 21] 은다지점오픈플로우사이트를 3-Stage 와각 Overlay Networking을강조한그림이다. 가장외부에표현되어있는회색원은 Worker노드를의미하며, 이부분에서는 VM 생성에필요한컴퓨팅자원과스토리지자원을제공한다. 실험자는광주를포함동남아 5개사이트에자유롭게 VM을생성할수있으며, 다수의사용자를수용하기위한방법으로, Tagging단계를거친다. Tagging단계를거친실험자의플로우들은, 사용자트래픽의구분을위한태그가붙는다. 현재는각 Worker노드내부에존재하는모든 VM들이모이는가상브리지가존재하는데, 이브리지의 Ingress포트기반으로 VLAN ID를할당한다. 각사용자를위한 VLAN Range가정해져있으며, 동일한 VLAN ID를가진플로우들은특정사용자의플로우로인지한다. [ 표 1] 는사이트별로할당된 VLAN ID를나타낸다. IP주소범위는는필수요구사항은아니고으로사용가능하다. 그내부에있는빨간색원은오픈플로우를지원하는가상네트워크를의미한다. Tagging다음단계인 Steering단은실험자가직접자신의플로우를제어할수있는환경이다. 1개의물리적오픈플로우스위치와이와연결된가상오픈플로우스위치를추가하여실험자에게제공함으로써, 2단에걸쳐실험자의플로우제어에대한다양성을확보하였다. Steering단계에서유저들은자신들이제어하는오픈플로우스위치의정보를컨트롤러를통해알수있다. 각포트의이름과그에 mapping되는포트번호 31

43 를이용하여포트기반의플로우제어가가능하고, 이를이용하여 Steering의마지막단에서캡슐레이터로플로우를전달한다. 그내부의주황색의원은 Mapping단계를의미하며, Mapping단계는캡슐레이터내부에서진행된다. 캡슐레이터와유저의 2번째 OVS브리지는각사이트별이름으로각각의포트가연결되고, 해당포트로들어온플로우들을캡슐레이터내부에서는특정사이트의터널로진입시킨다. Steering단계에서사용자는이미포트이름을확인하여실험자는자신의플로우를전달하고자하는사이트로전달할수있다. 또한 Mapping단계는관리자와직접적인연관이있다. NVGRE를이용한터널링은관리자의영역이며, 관리자는허용된플로우에한해서터널진입을허용한다. 관리자의 Mapping단계를위한소프트웨어및자세한내용은 A3.2에서이미서술했으므로생략한다. 32

44 A4. System and Network Monitoring for A4.1 Monitoring Tool Introduction A4.1.1 Monitoring Tool Overview Collect / Measure / IP SLA (Oversea routers) weather map Alarm Philippines traffic Netflow /cflow Vietnam Indonesia TBD#1 TBD#2 TEIN- HK TEIN- SG TEIN- JP KOREN Cacti + Nagios + nfsen ( network node/link ) Malaysia APAN- JP Thailand SmartX Rack [ 그림 22] OF@TEIN 통합모니터링개념도 구성된 OF@TEIN 인프라 ( 시스템및네트워크 ) 의안정적인운용을위해인프라자원에대한운용상태를상시확인하는통합모니터링방안을제공한다. 2012년도에개발되었던 SmartX Rack의전원관리및각종모니터링기능을바탕으로분산구축된참여사이트들의시스템과네트워크상태를함께모아서관리자와일반사용자에게제공하는 OF@TEIN 통합모니터링도구를개선한다 ([ 그림 22] 참조 ). 세부적으로는구축된 OF@TEIN 인프라에속한모든개별적인 ( 핵심 ) 장비들과네트워크회선의상태를상시확인할수있도록지원해야하며, 이를통해서전체적인시스템과네트워킹상태 ( 장비동작여부확인, 네트워크연결상태확인, 실효속도의주기적검증, 품질측정을위한도구모듈운용 ) 를반영한 Weather map, Alarm, Traffic, NetFlow/cFlow 관련모니터링 UI ( 사용자인터페이스 ) 를웹기반으로제공한다. 33

45 A4.1.2 Existing Monitoring Tools 웹 UI를기반으로사용되는모니터링툴로써는 Munin, WhatsUp Gold, Nagios, Cacti, perfsonar 등여러종류가있다. perfsonar에관한자세한내용은 문서 Network WeatherMAP Monitoring 을참조하기바란다. n Munin: Munin 이라는모니터링툴은간편한설치, 깔끔한그래프, 다양한플러 그인지원이라는장점을가지고있는툴이지만, 기간검색이안되고 1 day, 1 week, 1 month, 1 year 단위로만조회가가능하다는단점을가지고있다. n WhatsUp Gold: WhatsUp Gold는 ICMP, SNMP를이용하여중요한네트워크서비스가정상적인상태에서운영이지속되도록대규모인기업의경우에는각부서에있는중요한어플리케이션의상태를 WhatsUp Gold로모니터하거나기존시스템을보완하도록할수있다. 중소규모라면 WhatsUp Gold를완전한네트워크관리시스템으로운영할수있다. 또한 WhatsUp Gold는고가의복잡한네트워크관리시스템을충분히대신할수있다. 그리고아래와같은장점을지닌모니터링툴이지만, 사용하는 Traffic의양을 Graph로표현하여보여주지는못한다. - Mapping : 자동탐색마법사를이용해서 WhatsUp Gold는컴퓨터및네트워크에내재되어있는정보를기반으로네트워크의정확한지도를생성한다. - Monitoring : mission-critical 한각종디바이스, 애플리케이션및자원활용상황등을모니터할수있다. - Notification : 다운되는즉시경고음, 비퍼, 페이저, 이메일또는전화로통지되어중요한서버나서비스의다운을바로알수있다. - Historical Reporting : 각종디바이스및애플리케이션의가용성과응답횟수를추적하여설비투자계획및자원관리를위한안내지표로사용할수있다. Graphical Reporting 기능은서비스레벨의추적을손쉽게하며 service provider 가역할을제대로하고있는지에대한척도로사용할수있다. - Web Access : Interactive Web interface는네트워크디바이스상태점검과웹을통한일상관리업무를수행할수있다. - Threshold Monitoring : 무료로배포되는 SNMP Threshold 플러그인을사용하면각종네트워크및시스템자원활용을더세부적으로추적할수있다. 라우터및스위치의대역폭이용률뿐아니라 CPU, 메모리, 그리고디스크공간등의활용도모니터할수있다. - NT Services Monitoring : 숨겨진모든 NT 서비스를손쉽게확인해서 34

46 모니터링할수있으며 WhatsUp Gold의무료 NT Services 플러그인을이용하면서비스가멈추었을때자동으로재시작하도록할수도있다. - Net Tools : IP 진단도구는신속하게네트워크의문제들을발견하고해결하는데도움을준다. n Nagios: Nagios 이라는모니터링툴은서버, 네트워크장비를포함하여 HTTP, FTP, SMTP 같은서비스를모니터링하고장애가발생하면관리자에게메일이나 SMS로알려준다. 또한 Web UI를통해서한눈에시스템상태를볼수도있다. 하지만 Nagios는오픈소스이기때문에스스로소스를내려받아컴파일하고설치해야하며원하는모니터링을위한설정을하나하나해야한다. 또한아래의장점을가지고있지만, Graph 생성을하지못하는단점을가지고있다. 그리하여 Cacti에 plugin으로추가하여툴의장점을최대한사용하도록한다. 1) Monitor your entire IT infrastructure 2) Spot problems before they occur 3) Know immediately when problems arise 4) Share availability data with stakeholders 5) Detect security breaches 6) Plan and budget for IT upgrades 7) Reduce downtime and business losses n Cacti: Cacti는 RRD Tool과 SNMP를기반으로한네트워크모니터링 Tool로 APM(Apache, PHP, Mysql) 과연계하여네트워크를모니터링하여관리상의편의를제공한다. 오픈소스프로그램이며, 처음에접근이어려울수있지만익숙해질수록유연하게사용할수있는장점이있다. 또한 RRD Tool을이용하여깔끔한그래프를생성가능하며, xml 형태의양식을제공하여 RRD 활용을극대화하며다양한 Plugin을추가하여상용 NMS의기능에근접하게기능을확장할수있다. A4.1.3 Cacti, perfsonar, 그리고 Nagios 따라서 OF@TEIN을위한통합모니터링을위해서는상기한여러종류의웹 UI 기반모니터링중에서 Cacti와 perfsonar Tool을사용한다. 여기에 Nagios를추가 plugin으로사용한다. Cacti란 RRD Tool, SNMP를이용하며웹 UI에서통합적으로확인할수있다. 이를이용하면 24시실시간모니터링을하여네트워크의상태와트래픽의양을확인할수있다. 또한 Cacti에사용자의편의에따라유용한 Plugin을추가하여원활한모니터링기능이가능하다. 35

47 A4.2 Monitoring with Cacti Tool A4.2.1 Cacti Tool: Web UI < URL 접속 > < URL 접속시 Cacti Login 화면 > 주소창에 URL 입력 [ 그림 23] Catti Login URL [ 그림 24] Login 화면 OF@TEIN 을위한통합모니터링을사용하기위해서는 [ 그림 23] 와 [ 그림 24] 에제 시한것처럼로그인해야한다. n 네트워크모니터링기능 : Cacti 툴은 Ping, SNMP를기반으로네트워크상태모니터링기능을수행하며, Traffic Graph와 Monitoring Alert 기능으로상시모니터링이가능하다. 또한주기적인 Ping Check를통하여장애발생시 Mail Alert 기능으로사용자가신속하게대처할수있도록한다. [ 그림 25] 과같이현재네트워크상태를등록된 Mail 주소로알려준다. 36

48 [ 그림 25] Alert UP/DOWN Mail n 그래픽기능 : SNMP를이용하여 Interface의 Traffic을 Graph로생성하여나타낼수있다. [ 그림 26], [ 그림 27] 와같이 Graph를통하여 Traffic의유입상황과현재네트워크상태를확인할수있다. 또한 Graph Tree기능을사용하여 Graph 분류및정리를할수있다. 예를들면최장 2년전부터 30분전에생성되었던 Graph 검색기능과원하는년도, 날짜, 시간에생성되었던 Graph를조회할수있으며, 확대하여확인할수있다. Graph의생성주기는다음과같다. - Hourly (1 Minute Average) : Graph의 1칸이 1분간격을의미한다. - Daily (5 Minute Average) : Graph의 1칸이 5분간격을의미한다. - Weekly (30 Minute Average) : Graph의 1칸이 30분간격을의미한다. - Monthly (2 Hour Average) : Graph의 1칸이 2시간간격을의미한다. - Yearly (1 Day Average) : Graph의 1칸이하루간격을의미한다. 37

49 [ 그림 26] Cacti Graph 1 [ 그림 27] Cacti Graph 2 n Device 추가하기 : Create devices 메뉴를이용하여 device 를추가할수있다. Cacti Tool 을이용하여 Device 를추가하여야 Graph 를만들수있으며, 추가방 법으로는 [ 그림 28] 의 Console Tab 에서좌측메뉴중 Devices 를선택한다. 38

50 [ 그림 28] Cacti Menu 이어서 [ 그림 29] 의우측상단에 add 버튼을클릭하여 Device 의정보를입력한다. [ 그림 29] Device add 39

51 계속하여 Switch, Server 에설정해놓은 SNMP Community 값을 [ 그림 30] 처럼 입력한다. [ 그림 30] SNMP Options 위의절차가완료된후에, save 를누르고 Add Data Query 에서 Interface 를 [ 그림 31] 과같이선택한다. [ 그림 31] Add Data Query 해당페이지상단을보면 Create Graphs for this Host 라는항목이있으며, [ 그 림 32] 처럼생성하려는포트를선택하고 Create 버튼클릭하여 Graph 를생성한다. [ 그림 32] Create Graphs for this Host 상단 Tab중에서 Graphs 항목으로이동하면생성한 Graph를확인할수있다. Graph를통하여기간, 구간별 Traffic 사용량을선택할수있으며, [ 그림 33] 와같이일일 ( 시간 ), 주간, 월간, 년간등의네트워크이용율확인이가능하다. 그리고최대 Traffic의 In/Out, 평균 Traffic의 In/Out, 현재 Traffic의 In/Out의사용율의확인이가능하다. 40

52 [ 그림 33] Cacti Graph 4 A4.2.2 Cati Tool: PlugIn [ 그림 34] 과같이 PlugIn 의설치를통해서다양한기능의용이한추가가가능한다. [ 그림 34] Plugin Management n Graph 기본기능 : Cacti 를설치하는기본목적이며, 네트워크상태를 Graph 로 보여줌으로써사용자가편이하게상태확인할수있다. n Monitor (Device 모니터링페이지 ) 기능 : 네트워크상태를실시간모니터링하여 UP & DOWN 을확인한다. DOWN 되어있는장비는얼마동안 DOWN 되어있는지 시간으로표기된다. 41

53 n NPC (Nagios Monitoring Tool, Cacti와연동하여모니터링 ) 기능 : 모니터링도구인 Nagios와연동이가능하다. Host 기능으로등록된 Host에문제가발생하였을때 Alert기능으로현재상태를실시간으로확인할수있다. Ping Check로네트워크상태와 Packet lost Rate를확인한다. 그리고 Event Log로등록된 Host 와 Service에문제가발생했을때의내용을 Log로저장한다. n 기타기능 : 기타기능으로 GPS Map, Reports, Thold, 그리고 Weathermap 기능들이있다. 먼저 GPS Map은 GPS를이용하여등록한 device와 Mapping하는기능이며, 세계지도에서 GPS를이용하여 devices의위치를알려주는기능이다. 또한 Reports 기능은설정값에따른 Report를생성해준다. Thold는 Thresholds, 장애 Alert을보내주는기준치를설정하는기능으로 Alert 기준치를설정하여, 기준치에따라 Alert를해준다. 또한 Weathermap은 GPS Map을이용하여한페이지에서네트워크상태확인기능을제공하며, 지도를이용하여등록된 devices의네트워크상태를쉽게확인할수있다. 42

54 A4.3 Verification and Utilization of Cacti Tool A4.3.1 Verification of Cacti Web UI ICMP, SNMP 를통하여 Device 들의네트워크상태를모니터링하며, 상태의 Up, Down 을확인하여원인을파악하며신속한조치가가능하게한다. [ 그림 35] Device Status [ 그림 35] 의 Status 상태에서 Up, Down 이되었을때 Mail Alert 기능은정상적 으로이루어지며, 네트워크상태의알림이올바른지확인한다. Device 의네트워크상태를 Graph 로표현하여 Traffic 사용량과네트워크문제 발생시신속하게판단하여조치할수있다. 43

55 [ 그림 36] Cacti Graph 5 Graph 에서정상적으로 Traffic 의사용량을표현하며, Graph Tree 기능을활용하 여분류및정리하였다. 원하는날짜와시간에대한 Graph 조회가정상적으로가능 한지확인한다. Graph 구간별확대기능으로기간을선택하고 Zoom Graph 기능을클릭을한 후원하는구간을드래그하여 Traffic 을확인하는기능을보여준다. Device 추가수에대한제약을없으며, 올바를정보를입력하여결과값이올바르 게나오는지확인한다. [ 그림 37] Device ICMP Result 44

56 A4.3.2 Utilizing Cacti PlugIn Plugin Management: Plugin 을선택하여추가 / 삭제, 사용 / 미사용이가능하다. [ 그림 38] Plugin Management Graph : 네트워크상태, Traffic in/out 상태를 Graph 로보여준다. 네트워크상 태와 Traffic 의발생량, 정도를파악할수있다. [ 그림 39] Cacti Graph 6 Monitor 기능 : Device 에등록되어있는서버들을 Ping Check 를통하여 UP/DOWN 상태를한페이지에서모니터링이가능하다. [ 그림 40] 의스타일이나 [ 그 림 41] 의스타일로변경이가능하다. 45

57 [ 그림 40] Monitor 1 [ 그림 41] Monitor 2 NPC: Nagios monitoring tool 의기능과연동하여현재네트워크상태를확인하 는기능이다. 등록한 device 들의네트워크상태를종합하여표시한다. 46

58 [ 그림 42] NPC Main - Nagios Tool Status, 등록한 Host & Service Status 를간략히표시한다. [ 그림 43] NPC Status - Device 의 Ping Check 와 Packet loss Rate 를확인할수있다. [ 그림 44] Nagios Host - Event 발생시 Log 를기록하여저장한다. 47

59 [ 그림 45] Event Log GPS Map: Device 에설정한위도, 경도의값으로해당위치를표시하며, 등록된 지역을클릭하면 device 의정보를확인할수있다. [ 그림 46] GPS Map 48

60 KOREN Cacti 와연동 : KOREN Cacti 를 Plugin 에추가하여한페이지에서두개 의 Cacti 를확인할수있다. [ 그림 47] KOREN Cacti Thold (Thresholds) 기능 : Alert 기능의기준치를설정하여장애발생시 deivce 의 정보를 [ 그림 48] 처럼보여준다. 또한 [ 그림 49] 와같이장애발생 / 복구시 Mail 로통 보를한다. [ 그림 48] Thold 기능 49

61 [ 그림 49] Alert UP/DOWN Mail Weathermap: Map을이용하여네트워크상태를종합적으로확인이가능하도록정리하여보여주는기능이다. GPS Map을이용하여동남아 5개국의 Traffic 경로를설정할수있으며, 한페이지에서 Traffic 유입상황및네트워크상태를확인한다. [ 그림 51] 과같이 Weathermap Management를이용하여추가 / 삭제가가능하다. 또한 edit groups를이용하여 Wearthermap을 [ 그림 52] 처럼추가할수있다. [ 그림 50] WeatherMap 1 50

62 [ 그림 51] WeatherMap Management [ 그림 52] WeatherMap 2 51

63 Part B - SmartX Rack (Type A & Type B) 52

64 B1. SmartX Rack Equipment Specification and Installation SmartX Rack 장비는크게 Type A 와 Type B 로구분되며, 본문서에서는기본적 으로 SmartX Rack Type B 에포커스를맞춰작성되었다. B1.1 SmartX Rack Equipment List and Specification (Type A) SmartX Rack Type A 의하드웨어구성을 [ 그림 53] 과같이나타내며, 장치별제 조사및공급사에대한정보를간략하게정리한다. [ 그림 53] SmartX Rack Type A 의하드웨어구성 SmartX Rack Type B 의하드웨어는 4 가지장비로구성되며, 각장비에대한제조 사및공급사정보를 [ 표 3] 과같이나타내었다. [ 표 3] SmartX Type A 하드웨어구성 Management Switch Management Node Experiment Node OF Switch Dell Manufacturer Model Functions ( IBM ( IBM ( Narinet ( Powerconnect 6248 x3650 M4 x3650 M4 ProCurve 4-Port Power Controller (embedded Web Server, Telnet) 4-Port Serial Console Virtualization 6 cores, 16GB Virtualization QP 1GbE 24-Port (incl. 4-Port GbE) OpenFlow Technical Support

65 B1.2 SmartX Rack Equipment List and Specification (Type B) SmartX Rack Type B 의하드웨어구성을 [ 그림 54] 와같이나타내며, 장치별제 조사및공급사에대한정보를간략하게정리한다. [ 그림 54] SmartX Rack Type B 의하드웨어구성 SmartX Rack Type B 의하드웨어는 5 가지장비로구성되며, 각장비에대한제조 사및공급사정보를 [ 표 4] 와같이나타내었다. [ 표 4] SmartX Type B 하드웨어구성 Manufacturer Model Functions Technical Support Rack RMS ( RMS 1018H 18U, 19inch Server Rack 6-Power Socket (220V) Remote Power Management NexG ( NPC Port Power Controller (embedded Web Server, Telnet) 4-Port Serial Console Management Node Dell ( PowerEdge R710 Virtualization 8-Port GbE Capsulator IBM ( x3650 M4 Virtualization NetFPGA OF Switch HP ( ProCurve 24-Port (incl. 4-Port GbE) OpenFlow

66 B1.3 SmartX Rack Equipment Installation & Connection Rack Mounting: [ 그림 55] 은 SmartX Rack 의각장치들의랙마운트위치를나 타낸것이다. 필요한경우장치의위치는변경할수있다. [ 그림 55] SmartX Rack 장치 설치구성도 Power Cabling: [ 그림 56] 은 Remote Power Management 의후면을나타낸것 으로, 각장치의전원을해당포트에연결한다. 장치별연결포트는다음과같다. [ 그림 56] Remote Power Management: 후면및전면 Management Node(DellR710): Power port 1, 2 O/F Switch: Power port 3 55

67 Capsulator (IBMx3650M4): Power port 4 Serial Cabling: [ 그림 56] 의 Remote Power Management 의전면을보면, 각장 치의시리얼케이블을해당하는포트에연결하여원격에서접속할수있다. 각장치 와시리얼케이블을연결할경우권장하는장치별연결포트는다음과같다. Management Node (DellR710): Serial port 1 O/F Switch: Serial port 2 Capsulator (IBMx3650M4): Serial port 3 WAN (UTP): 원격에서 Remote Power Management 에접속하여제어하기위한 네트워크연결을한다. LAN (UTP): 4 포트스위치로활용하거나, 추가적인설정을하여포트에연결된머 신들의네트워크모니터링을위해사용할수도있다. B1.4 Remote Power Management Configuration & Usage 원격전원관리를위한환경설정은시리얼콘솔, Telnet, 또는웹을이용한방법 중하나를선택하여수행할수있으며, 각방법별절차는아래와같다. 1) Using Serial console: 네트워크환경이바뀌거나새로운장치를설치하여 WAN 인터페이스에 IP 설정이안된경우에사용한다. 1 Connect serial cable between remote power management and machine (e.g. management node, notebook, or etc.) 2 Run serial console application (Baudrate , Databits 8, Stopbits 1, Parity none) 3 Press Mode switch during 2 seconds for change mode from Operate mode to console mode 4 Press enter key. If need ID/pass for login, type ID and password as below: 5 IP Setting 56

68 npc-104# enable npc-104# configure terminal npc-104(config)# interface eth1 npc-104(config-if)# ip address xxx.xxxx.xxx.xxx/m npc-104(config-if)# exit npc-104(config)# exit npc-104# write 2) Using Telnet 1 connection: telnet ip_address same above procedure 1) 4 ~ 5 3) Using Web 1 connection: 접속에성공하면 [ 그림 57] 과같은로그인화면이나타난다. [ 그림 57] Web 인터페이스의로그인화면 2 Login: type ID and Password, and then click LOGIN 로그인에성공하면 [ 그림 58] 와같이현재전원상태를요약하여보여주는초기화면이나타난다. 57

69 [ 그림 58] Web 로그인후초기화면 3 IP Setting: Network Interface EDIT button 을클릭하면 [ 그림 59] 와같은설정창이나타난다. [ 그림 59] IP 주소설정화면 4 설정이후에, 현재의설정을저장하기위하여 [ 그림 60] 과같이 SAVE REQUIRED 를클릭한다. 58

70 [ 그림 60] IP 설정후환경설정저장 [ 그림 61] SmartX Power Management UI 4) Remote Power Management UI의사용 : UI는웹인터페이스로구현했으며각랙별로머신의전원상태를표시한다. 상태는 ON, OFF, Unknown 3가지이다. 각상태를판단하기위해 Remote Power 제어기의전원정보와머신별 Ping 테스트, 각머신에서전송하는 Heartbeat 정보를종합한다. Remote Power 제어기의소켓별전원이 on 상태이고, Ping 테스트에성공하거나각머신에서 1분간격으로전송하는 Heartbeat가최근 3분이내존재할경우 ON 상태이다. Remote Power 59

71 제어기의소켓별전원이 on 상태이지만, Ping 테스트를실패할경우 UnKnown 상태이다. 그리고 Remote Power 제어기의소켓별전원이 off 상태인경우 OFF 상태로표시한다. [ 그림 61] 은웹브라우저로서버에접속한초기화면으로각랙별머신의전원상태를나타낸다. 관리자는각머신을원격에서접속할수없거나기타재부팅이필요한경우 Reset 버튼을클릭하여해당머신을강제적으로재부팅할수있다. 또한각랙별상태는 5분간격으로자동업데이트되지만, Refresh 를클릭하여수동으로업데이트할수도있다. B1.5 SmartX Rack Equipment Network Configuration SmartX Rack Equipment Network 설정에서는 Remote Power Management Switch, Management Node, NF Capsulator Node, OF Switch으로구성된다. SmartX Rack 하드웨어장치를새로구입하거나네트워크환경이변경됐을때에원격에서관리하기위해네트워크설정이필요하다. 60

72 B2. Capsulator Node Setup B2.1 OVS Capsulator Node Setup OVS Capsulator Node 의설정과정은 OVS 를설치및환경설정을수행한후에, OVS 터널링환경설정과실행으로과정으로구분된다. B2.1.1 OVS Capsulator Introduction Open vswitch (OVS) 는 Linux Bridge를확장하여가상화환경에서유연한네트워킹을위해개발된오픈소스소프트웨어이다. 가상네트워크인터페이스기반의브리징뿐만아니라 GRE 터널링과같은다양한부가기능을지원한다. 또한패킷의전달기능은커널모듈로구현하고, 브릿지의환경설정을관리하거나각종툴과전달모듈의인터페이스는데몬형태로작동한다. 대표적인클라우드오픈소스패키지인 OpenStack의기본네트워킹모듈로채택될만큼성능과기능면에서각광을받고있다. 따라서 SmartX Rack의터널링을위한 Capsulator는 OVS를활용하여구현하였다. B2.1.2 OVS Software Install Installation: CentOS 에 OVS 의설치는 OVS 1.71 버전을 OVS 홈페이지에서다운 받아해당머신에압축을푼뒤, 다음과같은순서로이루어진다. 압축을푼해당폴 더로들어가서아래와같은명령어들을입력하면설치및실행이완료된다. 61

73 yum install gcc make python-devel openssl-devel kernel-devel kernel-debug-devel wget tar xzvf openvswitch tar.gz cd openvswitch /boot.sh./configure with-linux=/lib/modules/`uname -r`/build make make install insmod datapath/linux/openvswitch_mod.ko touch /usr/local/etc/ovs-vswitchd.conf mkdir p /usr/local/etc/openvswitch ovsdb-tool create /usr/local/etc/openvswitch/conf.db vswitchd/vswitch.ovsschema ovsdb-server /usr/local/etc/openvswitch/conf.db --remote=punix:/usr/local/var/run/openvswitch/db.sock --remote=db:open_vswitch,manager_options --private-key=db:ssl,private_key --certificate=db:ssl,certificate --bootstrap-ca-cert=db:ssl,ca_cert --pidfile detach --log-file ovs-vsctl no-wait init ovs-vswitchd --pidfile --detach B2.1.3 OVS-based Tunneling Configuration and Execution NetFPGA Card setting: OVS capsulator 를사용하기위하여 NF Capsulator 를 위해사용하는 NetFPGA 카드를일반적인 NIC 로전환하는세팅이요구된다. cd /root/netfpga/bitfiles nf_download./reference_nic.bit cd /root/netfpga/projects/reference_nic/regress/test_ip_interface./ip_interface.pl 62

74 OVS-based Tunneling Configuration: 다음그림의구성을예제로 OVS 머신간 의 GRE 통신을연결하는방법을이해할수있다 대역을사설망 IP 대역으 로사용하여 GIST 와경희대사이를 GRE Tunneling 으로연결하는것을볼수있다. [ 그림 62] OVS 머신간의 GRE 통신연결구성도의예시 1 GIST OVS 머신에서명령어 ovs-vsctl add-br br1 ovs-vsctl add-port br1 nf2c3 ifconfig br netmask ifconfig br1 up ovs-vsctl add-port br1 gre1 -- set interface gre1 type=gre options:remote_ip= ovs-vsctl show 2 KHU OVS 머신에서명령어 ovs-vsctl add-br br1 ovs-vsctl add-port br1 nf2c3 ifconfig br netmask ifconfig br1 up ovs-vsctl add-port br1 gre1 -- set interface gre1 type=gre options:remote_ip= ovs-vsctl show 각각의명령어를하나하나살펴보면, 다음과같다. ovs-vsctl add-br br1 가상의브릿지추가 ovs-vsctl add-port br1 nf2c3 추가한가상의브릿지에 management 노드가 연결된 nf2c3 를추가 63

75 ifconfig br netmask 가상의브리지에사설 IP 를 할당 ifconfig br1 up 가상의브리지를 up 시킴 ovs-vsctl add-port br1 gre1 -- set interface gre1 type=gre options:remote_ip= 가상의브리지에 gre 터널링을시행할가상의포트를추가하고, 상대방 GRE 터널링앤드포인트의 IP를설정 ovs-vsctl show 설정한설정들을확인 OpenFlow enabled OVS Tunneling Configuration: 위의 OVS 터널링구성예제에서각각의 OVS를 OpenFlow의 NOX의 control을통해동작하게하기위해서는 OVS 와 OpenFlow를연결하는과정이필요하다. 이를위하여각각의 bridge에 OpenFlow를연결해야한다. 1 GIST OVS 머신에서명령어 ovs-vsctl add-br br1 ovs-vsctl add-port br1 nf2c3 ifconfig br netmask ifconfig br1 up ovs-vsctl add-port br1 gre1 -- set interface gre1 type=gre options:remote_ip= ovs-vsctl show ovs-vsclt set-controller br1 tcp:[flowvisor or nox addredd]:[port] 2 KHU OVS 머신에서명령어 ovs-vsctl add-br br1 ovs-vsctl add-port br1 nf2c3 ifconfig br netmask ifconfig br1 up ovs-vsctl add-port br1 gre1 -- set interface gre1 type=gre options:remote_ip= ovs-vsctl show ovs-vsclt set-controller br1 tcp:[flowvisor or nox addredd]:[port] 64

76 위와같이각각의머신에 OVS 기반의 GRE 터널링구성을하고각각의 bridge 에 nox or flowvisor 를 ovs-vsctl set-controller 명령어를통해연결해준다. 이러한 과정을통해 OVS 기반의 GRE 터널링은 OpenFlow 와연결된다. NVGRE: NVGRE는많은숫자의 VLAN을만들기위하여 encapsulation과 Tunneling을사용하는네트워크가상화방법이다. VLAN의제한적인확장성을개선하기위해디자인되었다. Cloud 환경에서는 Multi-tenant와 Load-balanced network를지원하기위하여사용되기도한다. 기존의 GRE방식에 Key값을추가하여, 동일한사이트간에다수의 Tunnel을구성하더라도, Tunnel들의구분이가능케한다. 즉, 서로터널로연결된 interface간에세팅된 key값이일치해야만통신이가능하다. OVS에서는아래의명령어를이용하여 GRE터널에 Key값을부여할수있고, interface별 gre key값을확인할수있다. #ovs-vsctl set interface <interface name> options:key=<value> #ovs-dpctl show #ovs-vsctl set interface eth0 options:key=3 #ovs-dpctl show T07:33:04Z netlink_socket WARN ovs_vport-ovs_vport: has no multicast group, using fallback 33 lookups: hit: missed: lost: flows: 5 port 0: br1 (internal) port 1: eth2 port 2: eth3 port 3: eth1 port 5: jj (gre: key=1, pmtud=false, remote_ip= ) port 6: ph (gre: pmtud=false, remote_ip= ) port 7: id (gre: pmtud=false, remote_ip= ) NVGRE 로사용하던 interface 를일반 GRE 로변경하고자할때는해당 interface 에 key 값을 0 을부여하면된다. 아래의명령어를이용한다. #ovs-vsctl set interface <interface name> options:key=0 #ovs-vsctl set interface eth0 options:key=0 65

77 B2.2 Narinet Capsulator Setup Narinet 캡슐레이터스위치는 NPU(network processor unit) 을사용하여하드웨어로구현한스위치로각포트별로 1G/10G 설정이가능하며, GRE 터널기능을탑재하고있다. 오픈플로우플로우테이블기반으로동작하며, 일반스위치로사용하기위해서는자체컨트롤러설정이필요하다. B2.2.1 NOFS Introduction Narinet 캡슐레이터스위치설정은기본적으로 OVS의인터페이스를따른다. 따라서포트추가및 GRE 터널설정시, 플로우테이블확인등의모든작업을 OVS명령어문법과동일하게사용할수있다. 이때몇가지세부적인차이점을자각하는것이중요하다. 또한, Narinet 캡슐레이터스위치는 OVS와다르게몇가지차이점을가지는데, 다음과같다. Narinet 캡슐레이터스위치는브리지를추가할수없다. 다시말해 nofs 이름의 브리지가유일하다. 이는 OVS 에서 OVS 브리지를여러개추가할수있는점과구 별된다. 각각의포트에대하여 1G/10G 설정시추가작업이필요하다. GRE 터널추가시, 게이트웨이주소 (gateway address), 아웃풋포트 (output port), 다음홉 (next hop) 의맥주소 (mac address) 를지정해주어야한다. Narinet 캡슐레이터스위치에존재하는총포트는 12 개이며각각의명명법은 pt1 에서부터 pt12 이다. 오픈플로우지원스위치로서일반적스위치기능을하지않는다. 다만, 자체컨트롤 러를오픈플로우컨트롤러로지정하여임의로동작이가능하다. 따라서 Narinet 캡슐레이터스위치에추가되는모든포트및 GRE 터널은 nofs 라는 이름의브리지에추가된다. 보다자세한내용은공식문서인아래관련문서들을참조할수있다. NOFS_Narinet Open vswitch_userguide_v1.0 NTPM_8000T_HW_UsersGuide_v0.1 66

78 NTPM-8000T_SW-UsersGuide_v1.0.1_eng Asis 2-slot 3U ATCA AC Manual B2.2.2 NOFS-based Tunneling Configuration and Execution 포트추가를위해서는다음과같은명령어를사용한다. 이때 OVS 와다르게 type=ntpm 을설정해주어야한다. 아래는 NOFS 브리지에 pt1 을추가하는예를보여 주고있다. ovs-vsctl add-port nofs pt1 -- set interface pt1 type=ntpm 각각의포트에대하여 1G/10G 설정을위해서는추가적인작업이필요하다. 해당포트를 10G 로설정 # ovs-ofctl mod-port nofs <port-name> 10GB 해당포트를 1G 로설정 # ovs-ofctl mod-port nofs <port-name> 1GB 단이때해당포트는이미 ovs-vsctl add-port command 로 switch 에설정되어있어 야한다. 아래는 pt3 포트에대한예제를보여주고있다. # ovs-ofctl mod-port nofs pt3 10GB // pt3 port 를 10Gbit mode 로설정 # ovs-ofctl mod-port nofs pt3 1GB // pt3 port 를 1Gbit mode 로설정 GRE 터널추가는기본적으로 OVS 와동일하나 GRE 터널추가시, 게이트웨이주 소, 아웃풋포트, 다음홉의맥주소를추가하여설정하는것에차이점이있다. 명령 어는다음과같다. # ovs-vsctl add-port nofs <gre-port-name> -- set interface <gre-port-name> type=ntpm-gre options:remote_ip=<remote_ip> options:gw_ip=<gateway_ip> options:outport=<port-name> options:local_ip=<local_ip> options:next_mac=<next-mac-address> 예를들어상대방의터널 IP 가 이고, 자신의터널 IP 를 , 67

79 터널을통하여패킷이나가는포트가 pt5 이고, 이때 pt5 와연결된스위치포트의맥 주소가 54:75:d0:56:3e:c0 이며, 게이트웨이 을거칠때, 아래의명령어로 터널추가가가능하다. ovs-vsctl add-port nofs gre1 -- set interface gre1 type=ntpm-gre options:remote_ip= options:gw_ip= options:outport=pt5 options:local_ip= options:next_mac=54:75:d0:56:3e:c0 Narinet 캡슐레이터스위치는기본적으로오픈플로우컨트롤러에연결되어해당지시를내려받아동작하게끔설계되었다. 하지만임의로사용자의편의에따라일반스위치로동작시키고자하는경우, Narinet 캡슐레이터스위치에내장되어있는자체컨트롤러를사용할수있다. 사용방법은컨트롤러의 IP를 으로별다른포트설정없이지정하면된다. # ovs-vsctl set-controller nofs tcp: Narinet 캡슐레이터스위치또한 OVS 인터페이스기반의장비로서, OVS 와마찬 가지로아래와같은명령어로특정포트를통한원격관리가가능하다. 현재기본설 정포트로 4455 포트를사용중이다. # ovs-vsctl db=<narinet-control-ip>:<port> show 사용자가임의로설정을위한원격포트를변경하고싶을때는아래와같은방법으로 설정이가능하다. # export OVSDB_PORT=<port> /etc/init.d/ovs.sh stop /etc/init.d/ovs.sh start 68

80 B2.3 NetOpen Capsulator Node Setup 터널링은인터넷을사적 ( 私的 ) 이며안전한네트워크의일부로서사용하는것으로서, 한네트워크에서다른네트워크의접속을거쳐데이터를보낼수있도록하는기술을말한다. 터널링은이중화하고자하는네트워크에의해운송되는패킷들내에네트워크프로토콜을캡슐화함으로써운영된다. 다수의프로토콜들이인터넷상의터널을통해가상사설망을구축하도록제안되었으며, 마이크로소프트등에의해후원된 PPTP 와 CISCO 시스템즈에의해제안된 "2 계층포워딩 " 은 IETF의주요관련표준들이다. 본설명서에서는 NetOpen Capsulator 노드를설정하고, 이를통한검증과정과 Troubleshooting을진행한다. B2.3.1 NetOpen Capsulator Introduction NetFPGA[1] 플랫폼기반으로오픈플로우 [2] 프로토콜을이용하여동작하는스위치로, 기본오픈플로우프로토콜에따른패킷포워딩기능에물리적으로떨어져있는테스트베드간의연동을지원할수있는 GRE(Generic Routing Encapsulation) 터널링기능이추가되었으며, MAC 주소학습을위한기능이추가되어있다. 사용자는스크립트파일의터널링및오픈플로우컨트롤러의 IP 주소설정관련부분만변경함으로간단하게시스템을구동할수있도록되어있어, 테스트베드구축후쉘스크립트파일을실행시킴으로써설정된환경에따라 NetOpen Capsulator V2간자동으로연동이된다. 또한, 환경설정시각기능의 on/off 를통하여일반 NetFPGA 플랫폼기반의기본오픈플로우스위치로도사용가능하다. [ 그림 63] NetOpen Switch 의 NetFPGA 하드웨어보드 #0, #1 의장착사진 ( 내부 ) 69

81 [ 그림 63] 와 [ 그림 64] 은 NetFPGA 하드웨어보드가 2개장착되었을경우의실제장착사진이며, [ 그림 65] 은 NetOpen Capsulator V2의 NetFPGA 하드웨어보드에서트래픽처리를담당하는 FPGA(Field Programmable Gate Array) 의파이프라인구조를나타낸다. [ 그림 64] NetOpen Switch 의 NetFPGA 하드웨어보드 #0, #1 의장착사진 ( 외부 ) [ 그림 65] NetOpen Capsulator V2 의 NetFPGA 하드웨어의 FPGA 내부 파이프라인구조 GRE 프로토콜은 Cisco 에서개발한네트워크계층의터널링프로토콜로써 IP 네트워 크상에서가상의점대점연결을통하여다양한네트워크계층의프로토콜을캡슐화 70

82 하며, GRE 패킷헤더의구조는 [ 그림 66] 와같다. GRE 프로토콜을이용하여다양한다양한오픈플랫폼의오픈플로우스위치들이연동되는테스트베드를구축하기위해서는 L2 ( 데이터링크 ) 계층에서터널링된다. 이를위하여 GRE 터널의물리적인인터페이스들을브릿징하는방법을이용한다 [3]. 이때, GRE 터널을통하여전송되는이더넷프레임의구조는 MAC-in-IP 터널링형태를갖는다. [ 그림 66] GRE 패킷헤더구조 NetFPGA 기반캡슐레이터는국가간연동되는기존의연구망에 NetFPGA플랫폼기반의오픈플로우스위치를이용한오버레이망형태의오픈플로우테스트베드구축을위하여구현하였으며, [ 그림 65] 과같은 FPGA 내부파이프라인구조를갖는다. 먼저 ARP Request/Reply 모듈은 GRE 터널링시터널링엔드포인트와라우터간에위치하는로컬스위치의 MAC 주소학습을위한모듈이고 GRE Encapsulator와 GRE Decapsulator 모듈은 GRE 터널링시캡슐화를담당하는모듈이다. 또한 Fragmentation 모듈은 GRE 터널을통하여패킷을전송할때호스트의패킷크기가특정크기를초과하게되면 GRE 캡슐화의오버헤드로인하여경로 MTU(Maximum Transmit Unit) 의제약을받아패킷이전송되지않는문제점이발생하게되는데, 이를극복하기위하여패킷을분할하여전송한다. NetFPGA 에서는분할기능이동작하게되면 MAC 헤더포함 1460 바이트이상의패킷을분할하게된다. 패킷의페이로드 (payload) 를 1400 바이트로분할하여먼저전송하며, 남은페이로드를다음패킷으로전송하게된다. 이때분할된패킷은최종목적지에서재조립하게된다. B2.3.2 NetFPGA Card Installation NetOpen Capsulator는 NetFPGA 카드를사용하여하드웨어적으로 L2 GRE를사용한 NetOpenSwitch를포함하는버전을일컫는다. NetOpenSwitch버전을실행하게되면오픈플로우에는하나의스위치로등록이되어오픈플로우컨트롤러의제어를받는동시에, end node에서전달되어져온오리지널패킷을 L2 GRE 패킷으로캡슐화 71

83 하고상대방 end point 로부터전달되어져온 L2 GRE 패킷을비캡슐화하여 end point 로전달한다. NetFPGA 카드는 [ 그림 67] 과같으며, 네개의포트구성으로이 루어져있다. 각각포트를 nf2c0, nf2c1, nf2c2, nf2c3 으로부르고사용한다. [ 그림 67] NetFPGA 카드 오픈플로우사이트 (openflow.org) 의 WIKI 페이지에서 CentOS with NetFPGA 를 참고하여오픈플로우를설치한다. 오픈플로우프로토콜을 make 하기전해당파일을 복사한후컴파일해주어야한다. n CentOS Installation 1 사이트 에서 OS 를다운받는다. 2 다음의설치순서는 CentOS 비트버전기준으로작성되었다. 3 설치공간최소화를위하여추가적인패키지를선택하지않고네트워 크를통한설치를추천한다. 4 NetFPGA 기본패키지설치후설치확인을위한테스트를실시한다. 1) root 로로그인 72

84 1 설치를위하여사용자계정생성 : /usr/sbin/adduser openflow 2 패스워드설정 : passwd openflow 3 슈퍼유저권한설정 /usr/sbin/visudo 4 'root ALL=(ALL) ALL': 추가 openflow ALL=(ALL) NOPASSWD:ALL exit 5 openflow 로로그인 : ssh -X openflow@<machine_name> 6 하도록한다. 7 RPMForge 설치 : wget rpmforge-release el5.rf.i386.rpm sudo rpm --import sudo rpm -Uhv rpmforge-release el5.rf.i386.rpm n NetFPGA 플랫폼 SW 설치 : NetFPGA 플랫폼은기본적으로 CentOS 32-bits 기 반에설치하는것을권장하고있다. OS 설치후에 NetFPGA 플랫폼을설치하기 73

85 위하여우선 root 권한을갖고있어야하며, 설치는다음과같이진행한다. 1. NetFPGA 플랫폼설치를위한패키지설치 1 아래와같은 rpmforge-release package 를다운로드한다 el5.rf.i386.rpm 2 DAG's GPG key 설치 rpm import 3 다운로드한패키지검사 rpm K rpmforge-release el5.rf.*.rpm 4 다운로드한패키지설치 rpm i rpmforge-release el5.rf.*.rpm 5 다음과같은명령어를이용하여 iperf 가설치되는지확인 yum install iperf 2. NetFPGA 기본플랫폼설치 1 NetFPGA GPG Key 를다음과같이다운받는다. rpm Uhv noarch/netfpga-repo-1-1_cent OS5.noarch.rpm 2 NetFPGA 기본플랫폼설치 yum install netfpga-base 74

86 3. 사용자계정에 NetFPGA 디렉토리생성 1 스크립트실행 /usr/local/netfpga/lib/scripts/user_account_setup/ user_account_setup.pl 2 재부팅 4. 컴파일및드라이버설치 1 컴파일 cd ~/netfpga/ make 2 드라이버설치 Make install 3 재부팅 5. 설치검증 1) 드라이버 : 다음과똑같지는않지만비슷한형태의샘플값이출력될것이다. lsmod grep nf2 nf ) NetFPGA 인터페이스 : 4 개의 nf2cx (NetFPGA 의이더넷인터페이스 ) ifconfig a grep nf2 Sample correct output: nf2c0 Link encap:ethernet HWaddr xx:xx:xx:xx:xx:xx nf2c1 Link encap:ethernet HWaddr xx:xx:xx:xx:xx:xx 75

87 nf2c2 nf2c3 Link encap:ethernet HWaddr xx:xx:xx:xx:xx:xx Link encap:ethernet HWaddr xx:xx:xx:xx:xx:xx 3) CPCI 재프로그램 1 CPCI reprogramming 스크립트를아래와같이실행 /usr/local/sbin/cpci_reprogram.pl all 2 예상출력 : Loading the CPCI Reprogrammer on NetFPGA 0 Loading the CPCI on NetFPGA 0 CPCI on NetFPGA 0 has been successfully reprogrammed 3 컴퓨터부팅시 CPCI 를재프로그램해주어야한다! 4 3 을위하여 /etc/rc.local 에다음과같이작성한다. /usr/local/netfpga/lib/scripts/cpci_reprogram/ cpci_reprogram.pl all 5 패킷전송이되지않거나셀프테스트가실패되면 CPCI 가재프로그램되 었는지확인한다. n OpenFlow 설치 1 Stanford Git repository 에서설치 : sudo yum -y install git automake pkgconfig libtool gcc 2 Autoconf 2.60 또는이후버전이필요함 : 76

88 wget tar xvzf autoconf-2.63.tar.gz cd autoconf-2.63./configure --prefix=/usr make sudo make install cd 3 OpenFlow code와히스토리를갖고있는 git repo 다운로드. git clone git://openflowswitch.org/openflow.git cd openflow git checkout -b netfpga origin/devel/tyabe/1.0.0-netfpga./boot.sh 4 NetFPGA bitfile 다운로드 & 압축풀기. cd (your openflow directory)/hw-lib/nf2 wget openflow_switch.bit.100_3.tar.gz tar xfvz openflow_switch.bit.100_3.tar.gz 5 NetFPGA가지원되는 OpenFlow user-space switches 빌드 : cd (your openflow directory)./configure --enable-hw-lib=nf2 * 추가부분 * make를하기전수정된 datapath.c 파일을해당디렉토리에덮어씌운다. (openflow/udatapath) make sudo make install 77

89 n Wireshark Dissector 설치 1 Wireshark 및 glib 설치 : sudo yum -y groupinstall "X Window System" sudo yum -y install wireshark wireshark-gnome glib2-devel 2 Make 및 install: cd utilities/wireshark_dissectors/openflow make sudo make install cd n Regression Suite 설치 1 몇개의추가적인패키지와환경변수설정필요. sudo yum -y install perl-convert-binary-c perl-data-hexdump perl-net-pcap perl-net-rawip.i386 perl-error.noarch wget tar xvf Getopt-Long-2.38.tar.gz cd Getopt-Long-2.38 perl Makefile.PL make all test sudo make install 2 OF_ROOT environment variable 및 PERL5LIB 업데이트환경변수 : cd ~/ cp openflow/regress/scripts/env_vars. vim env_vars 3 다음라인을찾는다 : export OF_ROOT=/home/yourname/openflow 78

90 4 다음과같이수정한다 : export OF_ROOT=/home/openflow/openflow 5 다음라인을찾는다 : export PERL5LIB=${OFT_ROOT}/lib/Perl5:${PERL5LIB} 6 다음과같이수정한다 : export PERL5LIB=${OFT_ROOT}/lib/Perl5 7 save env_vars 파일저장 : sudo /sbin/chkconfig avahi-daemon off sudo /etc/rc.d/init.d/avahi-daemon stop 8 IPv6 지원하지않도록설정 sudo /sbin/chkconfig ip6tables off 9 modprobe.conf 파일수정 sudo vim /etc/modprobe.conf 10 modprobe.conf 에다음을추가 alias ipv6 off alias net-pf-10 off 11 network file 설정 79

91 sudo vim /etc/sysconfig/network 12 다음과같이수정한다. NETWORKING_IPV6=no B2.3.3 Accessing NetOpen Capsulator Node NetOpen Capsulator Node 에접근하기위해서는일반머신과동일하게 ssh 로접 근이가능하다. 해당머신의 ip 로접속할수있다. ssh Capsulator Node IP> B2.3.4 Verifying Tunneling Reference Software Module Tunneling Reference Software 의설정및수행은 IP 네트워크연결검증절차 과정으로이루어진다. n IP Network Connectivity Verification: NetFPGA카드는일반이터넷처럼 ping 테스트가불가능하다. 따라서실제로포트가해당망에서통신이되는지게이트웨이등에 ping을쳐서확인할필요가있다. 이때 regress.sh라는스크립트를사용한다. regress.sh는충남대의이전버전 capsulator에포함되어있고경로는 /root/netopen_beta/rev_092에있다. 해당파일이존재하지않을경우 netcs@xxx.xxx.xxx.xxx:./netopen_beta.tar를복사하여사용한다. [root@localhost ~]# cd netopen_beta [root@localhost netopen_beta]# cd rev_092/ [root@localhost rev_092]# vim regress.sh 80

92 #!/bin/bash source "/root/netopen_beta/include/print.sh" test_s2g() { ITF=$1 ADDR=$2 NMSK=$3 TARG=$4 } print_info regress "$ITF - $ADDR" ifconfig $ITF $ADDR netmask $NMSK ping -I $ITF $TARG -c 3 awk '/time=/ {print} /Unreachable/ { printf("\033[1;31m%s\033[0m\n", $0); }' #ping -I $ITF c 3 ifconfig $ITF echo "" nf_download /root/netfpga/bitfiles/reference_nic.bit &> /dev/null sleep 3 #nf_download /root/netfpga/bitfiles/reference_nic.bit &> /dev/null #sleep 3 % 아래의명령어를수정하여 ping 테스트를시행하여본다. test_s2g nf2c0 xxx.xxx.xxx.xxx yyy.yyy.yyy.yyy % Test_s2g <Netfpga port> < 할당할 ip> <netmask> < 해당포트를통해 ping 테스트를 % 해볼 ip> 위의내용에서 test_s2g nf2c0 xxx.xxx.xxx.xxx yyy.yyy.yyy.yyy 부분을통해 NetFPGA 카드와외부망의통신이되는지를테스트해볼수있다. 명령 어순서는다음과같다. test_s2g <Netfpga port> <NetFPGA 포트에할당할 IP> <netmask> <ping 을쳐볼 IP> 예를들어 nf2c3 포트에 ip , netmask 를할당하고 로 ping 테스트를시행하고자한다면, test_s2g nf2c 로설정하면된다. 설정후파일을저장하고다음과같이실행하면 Netfpga의해당 port를통해 ping 테스트를시행한다. 아래의예시는 test_s2g nf2c0 xxx.xxx.xxx.xxx yyy.yyy.yyy.yyy로설정후 regress.sh를실행시켰을때의결과이다. 81

93 rev_092]#./regress.sh 05:50:25 >> [INFO:regress] nf2c0 xxx.xxx.xxx.xxx 64 bytes from yyy.yyy.yyy.yyy: icmp_seq=1 ttl=64 time=2.46 ms 64 bytes from yyy.yyy.yyy.yyy: icmp_seq=2 ttl=64 time=0.601 ms 64 bytes from yyy.yyy.yyy.yyy: icmp_seq=3 ttl=64 time=0.553 ms B2.3.5 NetOpen Capsulator Software Module NetOpen Capsulator Software 는환경설정과실행과정으로구성된다. n NetOpen Capsulator Software Configuration: NetOpen Capsulator 의설정은 Netopen_capsulator.sh 파일을수정하여환경설정을변경한다. 1 아래의 Netpen_capsulator.sh 의내용은다음과같은절차에의해서수행 된다. #!/bin/bash killall -9 ofdatapath &> /dev/null killall -9 ofprotocol &> /dev/null sleep $SLEEP_TIME SLEEP_TIME=1 NOX_ALPHA=$1 NOX_PORT=$2 OF_HOME=/root/openflow echo " " echo "****************************" echo "NetOpen Switch V2 START" date echo "****************************" echo " " echo " " echo "********************************************************************" echo " " echo " FiRST@PC" echo " NetOpen Switch V2" echo " " echo " minsh@cnu.ac.kr" echo " Data Communications Lab., Chungnam National University " echo " " echo "******************************************************************" echo " " # Set unique MAC address #ifconfig nf2c0 hw ether 00:4E:46:32:12:00 82

94 #ifconfig nf2c1 hw ether 00:4E:46:32:12:01 #ifconfig nf2c2 hw ether 00:4E:46:32:12:02 #ifconfig nf2c3 hw ether 00:4E:46:32:12:03 ## bitfile download nf_download nf2_top_par.bit echo " " sleep $SLEEP_TIME ## openflow data path setup $OF_HOME/udatapath/ofdatapath punix:/var/run/dp0.sock -i nf2c0,nf2c1,nf2c2,nf2c3 -d & echo " " sleep $SLEEP_TIME ## netfpga register setup./netopen_capsulator_reg_setup.pl echo " " sleep $SLEEP_TIME ## openflow control path setup $OF_HOME/secchan/ofprotocol unix:/var/run/dp0.sock tcp:$nox_alpha:$nox_port out-of-band max-backoff= echo " " echo " " 1 capsulator bit file 로딩 2 ofdatapath ❶ openflow datapath만듦. 해당 switch를 openflow enable, 하지만제어기연결은아직되지않는다. (ofdatapath는쉘스크립트처럼그냥정지시키는것이아니라따로 process kill을해주어야함, Netopen_capsulator.sh를실행할때자동적으로 kill을한후다시실행하지만알아둘필요가있다.) ❷ 다른캡슐레이터들과중복되지않는 datapath id 이용 3 regsetup.pl file 실행해서레지스트리설정. 4 ofprotocol 을수행해서 flowvisor 랑연결. 83

95 n NetOpen Capsulator Software Execution Capsulator 머신에 root 로접속하여 NetOpen-Switch_V2_1_0 폴더로들어간다. ( 없으면압출파일을풀어서설치 ) [root@localhost ~]# pwd /root [root@localhost ~]# cd NetOpen_Switch_V2_1_0 [root@localhost NetOpen_Switch_V2_1_0]# ls NetOpen_Switch_V2_1_0 폴더에는다음과같은파일들이있다. netopen_capsulator_reg_setup.pl netopen_capsulator.sh nf2_top_par.bit of_stop.sh reg_defines_openflow_switch.pm netopen_capsulator_reg_setup.pl 파일을열어보면, NetOpen_Switch 를위한설 정내용이들어있다. NetFPGA 의 4 개포트들에대하여개별적으로설정을진행한다 는것을알수있으며, 설정하는내용은다음과같다. 포트별 L2 GRE encapsulation 포트별 L2 GRE edcapsulation 포트별 MAC Address 포트별 Gateway IP 포트별 Source IP ( 터널링시자신의포트 IP) 포트별 Destination IP ( 터널링시상대방의포트 IP) [root@localhost NetOpen_Switch_V2_1_0]# vim netopen_capsulator_reg_setup.pl #!/usr/bin/perl -w # # use strict; use warnings; use POSIX; #use NF::Base "~/netfpga/projects/openflow_switch/lib/perl5"; #use NF::Base "~/netfpga/lib/perl5"; use NF::RegAccess; 84

96 #use Test::RegressTest; #use OpenFlowLib; #use reg_defines_openflow_switch; my $debug = 0; # 0: disable, 1: enable ################################################################### # # global environments - set-up by user # ################################################################### my $nf2c0_fragmentation = 1; fragmentation for GRE) # 0: disable, 1: enable (packet my $arp_request = 1; # 0: disable, 1: enable my $arp_reply = 1; # 0: disable, 1: enable % 각포트의기능을설정한다. 하나의포트는인캡슐레이션, 디캡슐레이션두가지 % 기능모두를수행할수있다. % 각포트별로인캡슐레이션을활성화시킬것인지결정, disable(0) 을설정해놓으면 % 일반 switch 의포트처럼사용된다. my $nf2c0_encap = 1; # 0: disable, 1: enable my $nf2c1_encap = 0; # 0: disable, 1: enable my $nf2c2_encap = 0; # 0: disable, 1: enable my $nf2c3_encap = 0; # 0: disable, 1: enable % 각포트별로디캡슐레이션을활성화시킬것인지결정, disable(0) 을설정해놓으면 % 일반 switch 의포트처럼사용된다. my $nf2c0_decap = 1; # 0: disable, 1: enable my $nf2c1_decap = 0; # 0: disable, 1: enable my $nf2c2_decap = 0; # 0: disable, 1: enable my $nf2c3_decap = 0; # 0: disable, 1: enable % 각포트마다고유의맥주소를할당한다. 할당하는맥주소는모든넷오픈스위치 % 각각의포트들이모두달라야한다. 동일한맥주소가존재하면안된다. = (0x00, 0x4E, 0x46, 0x32, 0x30, = (0x00, 0x4E, 0x46, 0x32, 0x30, = (0x00, 0x4E, 0x46, 0x32, 0x30, = (0x00, 0x4E, 0x46, 0x32, 0x30, 0x00); 0x01); 0x02); 0x03); % GRE 터널링기능을할포트 ( 인캡슐레이션 / 디캡슐레이션이켜진포트 ) 에할당된 % ip 의게이트웨이아이피주소를설정한다. = (xxx, xxx, xxx, xxx); = (0, 0, 0, 0); = (0, 0, 0, 0); = (0, 0, 0, 0); % GRE 터널링기능을할포트 ( 인캡슐레이션 / 디캡슐레이션이켜진포트 ) 에 ip 를할당한다. = (yyy, yyy, yyy, yyy); = (0, 0, 0, 0); = (0, 0, 0, 0); = (0, 0, 0, 0); % GRE 터널링기능을할포트 ( 인캡슐레이션 / 디캡슐레이션이켜진포트 ) 와터널링된 % 상대편넷오픈스위치포트에할당된 ip 를지정한다. = (zzz, zzz, zzz, zzz); 85

97 = (0, 0, 0, 0); = (0, 0, 0, 0); = (0, 0, 0, 0); ################################################################### # NetOpen_Switch 를실행할쉘스크립트에서 dpid(data path ID) 를설정하여준 다. dpid 는오픈플로우컨트롤러에서각각의스위치를구분하는역할을한다. [root@localhost NetOpen_Switch_V2_1_0]# vim netopen_capsulator.sh #!/bin/bash killall -9 ofdatapath &> /dev/null killall -9 ofprotocol &> /dev/null sleep $SLEEP_TIME SLEEP_TIME=1 NOX_ALPHA=$1 NOX_PORT=$2 OF_HOME=/root/openflow echo " " echo "****************************" echo "NetOpen Switch V2 START" date echo "****************************" echo " " echo " " echo "********************************************************************" echo " " echo " FiRST@PC" echo " NetOpen Switch V2" echo " " echo " minsh@cnu.ac.kr" echo " Data Communications Lab., Chungnam National University " echo " " echo "******************************************************************" echo " " # Set unique MAC address #ifconfig nf2c0 hw ether 00:4E:46:32:12:00 #ifconfig nf2c1 hw ether 00:4E:46:32:12:01 #ifconfig nf2c2 hw ether 00:4E:46:32:12:02 #ifconfig nf2c3 hw ether 00:4E:46:32:12:03 ## bitfile download nf_download nf2_top_par.bit echo " " sleep $SLEEP_TIME % 아래의명령문에서붉은색으로표시된 의숫자를편의에맞게 86

98 % 바꾸어준다. 각넷오픈스위치는각기다른 dpid 를가져야하고입력되어있는 % 숫자의숫자개수를맞추어주어야한다. % 예 ) > / 등. ## openflow data path setup $OF_HOME/udatapath/ofdatapath punix:/var/run/dp0.sock -i nf2c0,nf2c1,nf2c2,nf2c3 -d & echo " " sleep $SLEEP_TIME ## netfpga register setup./netopen_capsulator_reg_setup.pl echo " " sleep $SLEEP_TIME ## openflow control path setup #ofprotocol unix:/var/run/test tcp:xxx.xxx.xxx.xxx:yyyy --out-of-band --max-backoff=1 #ofprotocol unix:/var/run/test tcp:$nox_alpha:$nox_port --out-of-band --max-backoff=1 $OF_HOME/secchan/ofprotocol unix:/var/run/dp0.sock tcp:$nox_alpha:$nox_port --out-of-band --max-backoff=1 echo " " echo " " 위의설정들을모두완료하였다면캡슐레이터실행하기위한쉘스크립트 (netopen_capsulator.sh) 를실행하여터널링을완료하고오픈플로우컨트롤러에등록한다. 1 방법은다음과같은명령어에의해서이루어진다. >$./netopen_capsulator.sh <Openflow controller IP> Openflow <controller port> 예를들어, xxx.xxx.xxx.xxx IP를가진플로우바이저머신에포트 yyyy 으로 NetOpen 스위치를실행시키고등록한다면, 다음과같이실행하면된다. [root@localhost NetOpen_Switch_V2_1_0]#./netopen_capsulator.sh xx:xx:xx:xx yyyy 87

99 2 정상적인수행결과는다음과같을것이다. **************************** NetOpen Switch V2 START Wed Oct 17 04:37:52 KST 2012 **************************** ************************************************************************* NetOpen Switch V2 Data Communications Lab., Chungnam National University ************************************************************************* Found net device: nf2c0 Bit file built from: nf2_top_par.ncd;hw_timeout=false Part: 2vp50ff1152 Date: 2012/ 9/18 Time: 21:48:15 Error Registers: 0 Good, after resetting programming interface the FIFO is empty Download completed bytes. (expected ). DONE went high - chip has been successfully programmed. CPCI Information Version: 4 (rev 1) Device (Virtex) Information Project directory: openflow_switch Project name: OpenFlow Switch Project description: OpenFlow Switch Device ID: 0 Version: Built against CPCI version: 4 (rev 1) Virtex design compiled against active CPCI version Oct 17 04:37: datapath ERR nf2c0 device has assigned IPv6 address fe80::24e:46ff:fe32:4300 Oct 17 04:37: datapath ERR nf2c3 device has assigned IPv6 address 88

100 fe80::24e:46ff:fe32:4303 [NetOpen Switch V2] -> register set-up: fragmentation control... OK!!! [NetOpen Switch V2] -> register set-up: tunneling control... OK!!! [NetOpen Switch V2] -> register set-up: tunneling gateway ip... OK!!! [NetOpen Switch V2] -> register set-up: tunneling src mac... OK!!! [NetOpen Switch V2] -> register set-up: tunneling src ip... OK!!! [NetOpen Switch V2] -> register set-up: tunneling dst ip... OK!!! Oct 17 04:38: secchan INFO OpenFlow reference implementation version Oct 17 04:38: secchan INFO OpenFlow protocol version 0x01 Oct 17 04:38: secchan WARN new management connection will receive asynchronous messages Oct 17 04:38: rconn INFO unix:/var/run/dp0.sock: connecting... Oct 17 04:38: rconn INFO tcp:xxx.xxx.xxx.xxx:yyyy: connecting... Oct 17 04:38: rconn INFO unix:/var/run/dp0.sock: connected Oct 17 04:38: port_watcher INFO Datapath id is Oct 17 04:38: port_watcher INFO Identified data path local port as "tap0". Oct 17 04:38: rconn INFO tcp:xxx.xxx.xxx.xxx:yyyy: connected B2.3.6 NetOpen Capsulator Usage NetOpen Capsulator 실행은디렉토리의 perl 스크립트파일에서터널링관련 IP 설정후 shell 스크립트를실행시키면된다. 스크립트의실행순서는다음과같으며, 각항목별설정후설정된값과설정값의확인절차를통하여사용자가원하는대로설정이되었는지확인한다. [ 그림 64] 는 shell 스크립트실행명령어의예를나타내는데, arguments 로 OpenFlow 제어기의 IP 주소와 port 를추가하여실행한다. [ 그림 68] NetOpen Capsulator V2 의실행 [ 그림 68] 의명령어를실행하였을때의동작은아래와같다. FPGA configuration file 다운로드 (bit file) 89

101 NetOpen Switch V2의비트파일다운로드 OpenFlow 의 data-path 설정 터널링포트설정 Gateway IP 설정 SRC MAC 설정 SRC IP 설정 DST IP 설정 패킷분할여부설정 OpenFlow 의 control-path 설정 터널링관련설정은 perl 스크립트파일을열어 [ 그림 69] 와 [ 그림 70] 의부분 (1~6 번설정 ) 에서만필요한설정을하게되며, 설정항목은다음과같다. ( 본버전에서는 터널링포트는 nf2c0 와 nf2c1, 엔드호스트는 nf2c2, nf2c3 만사용가능하다.) 1 패킷분할여부설정 2 각포트의터널링설정 (encapsulation & decapsulation enable/disable) 3 각터널링포트의 GATEWAY IP 설정 4 각터널링포트의 SRC MAC 설정 ( 임의로설정가능, 단, 각포트마다 다르게 ) 5 각터널링포트의 SRC IP 설정 6 각터널링포트의 DST IP 설정 7 오픈플로우스위치의 data-path 설정 8 오픈플로우스위치의 control-path 설정 스크립트파일실행도중 FAIL 메시지가화면에보이면시스템준비또는설정이 잘못된것이며, perl 스크립트에서디버그메시지 on 기능을이용하여문제의부분이 확인가능하다. 90

102 [ 그림 69] NetOpen Capsulator V2 의설정스크립트 91

103 [ 그림 70] NetOpen Capsulator V2 의실행스크립트 B2.3.7 NetOpen Capsulator Trouble Shooting 트러블슈팅을해결하기위한방법으로터널종단들사이의링크생성확인절차, 상 대방과연결실패시 ( 터널종단들사이의링크가발견되지않을시 ) 절차, 그리고 regress.sh 가실패할시의절차에대해서다음과같이수행한다. 터널종단들사이의링크생성확인 1 Flowvisor 에서 fvctl listdevices 를통해머신이등록되었는지를확인 2 Flowvisor 에서 fvctl getlinks 명령어를통해터널종단들사이에링크가 존재하는지확인 92

104 예 ) DPID 00:11:11:11:11:11:11:11에서 DPID 00:00:00:50:c2:61:7f:2b로의경로를보여준다. Link0 : Link[srcDPID=00:11:11:11:11:11:11:11, srcport=1, dstdpid=00:00:00:50:c2:61:7f:2b, dstport=14] 상대방과연결실패시 ( 터널종단들사이의링크가발견되지않을시 ) 1 regsetip.pl 파일을확인하여설정내용이정확한지점검 2 regress.sh 를통해서인터페이스가정상동작하고해당 IP 가 게이트웨이와통신이가능한지확인 3 <NetFPGA port issues> NetFPGA 포트에랜선을꽂아도램프가 작동하지않을시, 해당연결이모두 1G 로연결된것인지확인. (1G 가아니면포트램프가작동하지않는것이정상 ) 4 nf2c 포트들이모두 up 상태인지확인 regress.sh 가실패할시 1 nf2 모듈이정상적으로로드되었는지 dmesg grep nfc 를통해확인. 2 tail f var/log/syslog 확인 (program 에서띄우는메시지 ) 3 tail f var/log/dmesg 확인 (kernel 에서띄우는메시지 ) 93

105 B3. SmartX Rack OF Switch Setup 컴퓨팅자원과네트워킹자원을제공하는 SmartX Rack은네트워킹자원을제공하는 OpenFlow 스위치 (NariNet 장비협조 ), 컴퓨팅자원을제공하는 experiment 노드, 그리고 management plane으로연결되어있는 management 노드로구성된다. 설계된 SmartX Rack의 OpenFlow 스위칭기능과원격관리기능을설치및검증한다. B3.1 SmartX Rack OF Switch Initialization OF Switch 는 ssh 를통해서접근이가능하다. ssh <OF Switch ip> 와같이접근할 수있다. 계정이설정되어있는경우 ssh < 계정 Switch ip> 와같이접근할 수있다. 접속을위한패스워드를요구하는경우해당패스워드를입력한다. 예 ) ssh xxx.xxx.xxx.xxx 예 ) ssh (id)@xxx.xxx.xxx.xxx B3.2 SmartX Rack OF Switch Verification 설정을변경하기위해서는 configuration mode 로전환이필요하며, 명령어 config 를다음과같이입력한다. HP-TH(B-1)# configure HP-TH(B-1)(config)# 1 명령어 show vlan 으로설정된 vlan 의정보를확인할수있다. HP-TH(B-1)# show vlans 94

106 Status and Counters - VLAN Information Maximum VLANs to support : 256 Primary VLAN : DEFAULT_VLAN Management VLAN : VLAN ID Name Status Voice Jumbo DEFAULT_VLAN Port-based No No 2 OpenFlow Port-based No No Vlan Port-based No No 2 명령어 show vlan <vlan_id> 에의해서 vlan 의설정과포함된포트를확인 할수있다. HP-TH(B-1)# show vlan 2 Status and Counters - VLAN Information - VLAN 2 VLAN ID : 2 Name : OpenFlow Status : Port-based Voice : No Jumbo : No Port Information Mode Unknown VLAN Status Untagged Learn Down 14 Untagged Learn Down 15 Untagged Learn Down 16 Untagged Learn Down 17 Untagged Learn Down 18 Untagged Learn Down 19 Untagged Learn Down 20 Untagged Learn Down 21 Untagged Learn Down 22 Untagged Learn Up 3 새로운 vlan 을생성하기위해서는명령어 vlan <vlan_id> name 95

107 <vlan_name> 으로새로운 vlan 을생성한다. HP-TH(B-1)(config)# vlan 20 name vlan20 4 생성된 vlan 을삭제하기위해서는명령어 no vlan <vlan_id> 에의해서 vlan 이삭제된다. HP-TH(B-1)(config)# no vlan 20 5 vlan 에포트를추가하기위해서는명령어 vlan <vlan_id> untagged <ports> 에의해서포트가추가된다. 여러개의포트를추가할수도있다. HP-TH(B-1)(config)# vlan 20 untagged 3 HP-TH(B-1)(config)# vlan 20 untagged 3-10,11 96

108 B3.3 OpenFlow-related Configuration OpenFlow 관련환경설정은다음의절차를따른다. 1 오픈플로우정보를확인하기위해서는명령어 show openflow 를 사용한다. HP-TH(B-1)(config)# show openflow Openflow Configuration Openflow aggregate VLANs [Disabled] : Openflow aggregate management VlanId [0] : 0 Openflow second aggregate management VlanId [0] : 0 Openflow aggregate configuration VlanId [0] : 0 VID State HW Controller Pseudo-URL Conn Off On tcp:xxx.xxx.xxx.xxx:yyyy No 2 오픈플로우가설정이되어있는 vlan 의자세한정보를확인하기위해서는 명령어 show openflow <vlan_id> 를사용한다. HP-TH(B-1)(config)# show openflow 2 97

109 Openflow Configuration Openflow aggregate VLANs [Disabled] : Openflow aggregate management VlanId [0] : 0 Openflow second aggregate management VlanId [0] : 0 Openflow aggregate configuration VlanId [0] : 0 VID State HW Controller Pseudo-URL Conn Off On tcp:xxx.xxx.xxx.xxx:yyyy No Openflow Configuration - VLAN 2 Openflow state [Disabled] : Disabled Controller pseudo-url : tcp:xxx.xxx.xxx.xxx:yyyy Listener pseudo-url : Openflow software rate limit [100] : 100 Openflow connecting max backoff [60] : 60 Openflow hardware acceleration [Enabled] : Enabled Openflow hardware rate limit [0] : 0 Openflow hardware stats max refresh rate [0] : 0 Openflow fail-secure [Disabled] : Disabled Second Controller pseudo-url : Third Controller pseudo-url : Openflow Status - VLAN 2 Switch MAC address : 28:92:4A:7C:39:00 Openflow datapath ID : A7C3900 Instance not running, no controller connection Number of hardware rules: 0 3 vlan 에연결할컨트롤러를설정하기위해서는명령어 openflow <vlan_id> controller tcp:<ip_addr>:<tcp_port> 를입력한다. HP-TH(B-1)(config)# openflow 2 controller tcp:xxx.xxx.xxx.xxx:yyyy 98

110 4 vlan 에설정된컨트롤러에연결및연결해제를위해서는다음과같은 명령어를입력한다. openflow <vlan_id> {enable/disable} vlan 에설정된컨트롤러에연결을위한명령어는다음과같으며, HP-TH(B-1)(config)# openflow 2 enable vlan 에설정된컨트롤러에연결해제를위한명령어는다음과같다. HP-TH(B-1)(config)# openflow 2 disable 99

111 B4. Worker & Management Node Setup Management Node의설정과정은 Management Node의원격접속, Management Node의 Xen 기반의가상화설치, Management Node Management VM#1 설정, Management Node Management VM#2 설정, 그리고 Worker VM들의 Bridge 설정으로구성된다. 다음의설명은 Management Node 의 O/S로 Ubuntu Desktop 64bit 버전이설치되고, 기본적인패키지설정을위한인터넷이제공되는환경을기반으로작성되었다. B4.1 Accessing Management Node Management Node 의 Remote Access 를위한 Control IP 설정은다음과같은절 차에의해서수행된다. 1 Control IP 설정을위한모든커맨드는 root 권한으로실행되어야한다. 본매뉴얼에서는 sudo 명령을사용하여 root 권한을획득하는것으로설명한다. 2 설정에필요한기본적인패키지를설치한다. $ sudo apt-get install vim ssh ethtool ifstat bridge-utils 3 수동 IP 설정을위해 "network-manager" 패키지를삭제한다. $ apt-get remove network-manger 4 수동으로인터페이스를설정하기위하여 /etc/network/interfaces 인터페이스설정스크립트파일을아래와같은정보로직접수정한다. Public IP는매니지먼트노드가설치되는지역에서사용되는주소이다. $ sudo vim /etc/network/interfaces auto xenbr0 xenbr0 inet static address PublicIP netmask netmask for PublicIP gateway gateway address for PublicIP bridge_ports eth0 dns-nameservers # google DNS 100

112 5 새로운설정을적용하기위하여네트워킹데몬을재시작한다. $ sudo /etc/init.d/networking restart 6 네트워킹데몬재시작이후 ifconfig 를통하여인터페이스설정이정상적으로적용되었는지확인한다. eth0 와 xenbr0 에대한정보가아래표와같이출력되어야한다. $ ifconfig eth0 xenbr0 Link encap:ethernet HWaddr 00:26:b9:47:35:41 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets: errors:0 dropped:6730 overruns:0 frame:0 TX packets:18089 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes: (100.1 MB) TX bytes: (1.7 MB) Interrupt:36 Memory:d d Link encap:ethernet HWaddr 00:26:b9:47:35:41 inet addr:xxx.xxx.xxx.xxx Bcast: Mask: inet6 addr: 2001:320:1a10:4:5dbc:6d2c:70d1:a6aa/64 Scope:Global inet6 addr: 2001:320:1a10:4:5900:c66e:bd7d:7c12/64 Scope:Global inet6 addr: 2001:320:1a10:4:226:b9ff:fe47:3541/64 Scope:Global inet6 addr: fe80::226:b9ff:fe47:3541/64 Scope:Link inet6 addr: 2001:320:1a10:4:411f:b781:aeee:cb5f/64 Scope:Global UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets: errors:0 dropped:29031 overruns:0 frame:0 TX packets:18074 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes: (64.6 MB) TX bytes: (1.5 MB) 8 다음으로물리적인터페이스 eth0 와브릿지인터페이스 xenbr0 정상적 으로연결되었는지 brctl 커맨드를이용해확인하다. $brctl show bridge name bridge id STP enabled interfaces virbr yes xenbr b no eth0 9 마지막으로 Control IP 를통하여인터넷으로잘연결이되었는지를 ping 커맨드를이용하여확인한다. $ping "destination IP address" 101

113 B4.2 Xen Hypervisor Installation B4.2.1 Xen Installation 매니지먼트노드의자원가상화는 Xen 솔루션을기반으로이루어진다. Xen 설치는다음과같은절차에의해서수행된다. 편의상한번에많은패키지들을설치하도록설명되어있기때문에정확한입력에주의한다. 1 가상화솔루션인 Xen Hypervisor와관련툴, 그리고가상화라이브러리들을설치한다. $ sudo apt-get install libxen-4.1 libxen-dev libxenstore3.0 xen-hypervisor-4.1-amd64 xen-tools xen-utils-4.1 xen-utils-common xenstore-utils libvirt-bin libvirt-dev libvirt0 python-libvirt 2 GRUB 을업데이트한다. $ sudo sed -i 's/grub_default=.*\+/grub_default="xen 4.1-amd64"/' /etc/default/grub $ sudo update-grub 3 Xen Managerment를위한 ToolStack으로 xm을설정한다. $ sed -i 's/toolstack=.*\+/toolstack="xm"/' /etc/default/xen $ sed i 's/grub_cmdline_linux_default="quiet splash"/grub_cmdline_linux_default="quiet splash max_loop=64"/' /etc/default/grub $ update-grub 4 마지막으로 Management Node 를재부팅하여 Xen 이정상적으로설치되었는지확인한다. $ sudo xm list Name ID Mem VCPUs State Time(s) Domain r

114 B4.2.2 Management VM#1 Creation Xen Hypervisor는 Virtual Machine Monitoring (VMM) 을위한최소한의기능만구현되어있고, 사용자가가상화된해당호스트를제어하기위해서 Dom0라는특수한 VM을사용한다. B4.2.1절의설치가완료되면 Xen 설치전의리눅스는 Dom0가되고, 이는부팅시에자동으로생성된다. SmartX Management VM #1은별도 VM을사용하지않고 Xen Hypervisor의 Dom0를그대로사용한다. 따라서 Xen Hypervisor 설치가완료되면 Management VM #1의생성또한완료된것으로볼수있다. B4.2.3 Management VM#2 Creation 1 perfsonar toolkit 포함된 VM 을생성한다. $xm create c /etc/xen/perfsonar.cfg 2 brctl 커맨드를이용하여 perfsonar VM 이이용할 br_eth1 브릿지가물리적인터페이스 eth1 과연결이되었는지확인한다. $brctl show br_eth b no eth1 vif3.0 br_eth b no eth2 br_eth no virbr yes xenbr b no eth0 3 VM 내에서 ping 커맨드를이용해인터넷에연결되었는지확인한다. $ping "destination IP address 103

115 B4.3 Management VM#1 Setup SmartX Rack 의 Experiment 툴들의동작을위해서관련소프트웨어의설치가필 요하다. 본절에서는 OCF 와연동하여 Worker VM 을생성하고관리하는 VT 에이전 트설치를중점적으로기술한다. B4.3.1 VT Agent Installation & Configuration VT Agent의설치는다음과같은절차에의해서수행된다. 1 MediaX VT Agent 를위해필요한기본패키지들을설치한다. $ apt-get install python-openssl python-lxml python-libxml2 python-jinja2 python-libxslt1 python-setuptools python-pyparsing build-essential $ /usr/bin/easy_install generateds!! 자동적으로설치가되지않는다면소스코드를이용해설치한다. 다음의주소에서소스코드를다운받는다. generateds 소스코드압축을해제하고컴파일및인스톨과정을아래와같이수행한다. $ tar xzvf generateds-x.xx.tar.gz $ cd generateds-x.xx $ python setup.py build $ python setup.py install # probably as root 2 python TCP server 를패치하기위해 SocketServer.py 파일의 454번라인부분의 "def_shutdown_request(self, request):" 부분을아래와같이수정한다. $ vim /usr/lib/python2.7/socketserver.py 104

116 def shutdown_request(self, request): """Called to shutdown and close an individual request.""" try: # explicitly shutdown. socket.close() merely releases # the socket and waits for GC to perform the actual close. # jyyoo fix for avoiding "TypeError: shutdown() takes exactly 0 arguments (1 given)" error # request.shutdown(socket.shut_wr) # original line self.close_request(request) # cheesy hack to avoid shut-down issue of python 2.7 (jyyoo) except socket.error: pass #some platforms may raise ENOTCONN here #self.close_request(request) # commented by jyyoo 3 VM 들이사용할네트워크브릿지들을설정한다. # brctl addbr br_eth1; brctl addbr br_eth2; brctl addbr br_eth3; brctl addif br_eth1 eth1; brctl addif br_eth2 eth2; brctl addif br_eth3 eth3 # ifconfig eth1 up; ifconfig eth2 up; ifconfig eth3 up; ifconfig br_eth1 up; ifconfig br_eth2 up; ifconfig br_eth3 up 4 브릿지들이정상적으로설정되어있는지 brctl 명령어를이용하여확인한다. $brctl show 105

117 br_eth b no eth1 br_eth b no eth2 br_eth no eth3 virbr yes xenbr b no eth0 5 Pygrub 설정하여 VM 들이자체적인커널및모듈라이브러리를사용할수있도록한다. $ ln -s /usr/lib/xen-4.1/bin/pygrub /usr/bin/pygrub 6 테스트용으로필요한템플릿 VM 이미지와설정파일을복사한다. $ scp tein@xxx.xxx.xxx.xxx:/etc/xen/ubuntu-test-3.cfg/etc/xen $ mkdir p /var/lib/xen/images/ $ scp tein@xxx.xxx.xxx.xxx:/var/lib/xen/images/ubuntu-test-3.img/ var/lib/xen/images/ $ scp tein@xxx.xxx.xxx.xxx:/boot/vmlinuz xen-amd64 /boot/ $ scp tein@xxx.xxx.xxx.xxx:/boot/initrd.img xen-amd64 /boot/ 7 libvirt 와 XEN 의세부환경설정 $ sed -i 's/ -d / -d l /' /etc/default/libvirt-bin $ sed -i 's/#listen_tcp = 1/listen_tcp = 1/' /etc/libvirt/libvirtd.conf $ sed -i 's/#listen_tls = 0/listen_tls = 0/' /etc/libvirt/libvirtd.conf $ sed -i 's/#tcp_port = /tcp_port = /' /etc/libvirt/libvirtd.conf $ /etc/init.d/libvirt-bin restart $ sed -i s/#(xend-http-server no)/(xend-http-server yes)/ /etc/xen/xend-config.sxp $ sed -i s/#(xend-unix-server no)/(xend-unix-server yes)/ /etc/xen/xend-config.sxp 106

118 $ sed -i s/#(xend-unix-path \/var\/lib\/xend\/xend-socket) /(xend-unix-path\/var\/lib\/xend\/xend-socket)/ /etc/xen /xend-config.sxp $ sed i s/#(xend-port 8000))/ #(xend-port 8000)/ /etc/xen/xend-config.sxp $ sed -i s/#(network-script network-bridge)/(network-script network-bridge)/ /etc/xen/xend-config.sxp 8 설정을적용하기위하여 Xen 데몬을재시작한다. $ /etc/init/xend restart 9 MediaX VT Manager 설치를위해 Ofelia 패키지를복사한다. $ scp tein@xxx.xxx.xxx.xxx:/opt/ofelia.tar.gz/opt/ 10 MediaX VT Manager 에포함된기본템플릿이미지사용을위해 default 이미지를설정한다. $ ln s /opt/ofelia/vt_manager/src/python/agent/remote/ templates/default/default-permission-fixed.tar.gz /opt/ofelia/vt_ manager/src/python/agent/remote/templates/default/default.tar.gz $ ln s /opt/ofelia/vt_manager/src/python/agent/cache/ templates/default/default-permission-fixed.tar.gz/ opt/ofelia/vt_ manager/src/python/agent/cache/templates/default/default.tar.gz 11 MediaX VT Manager Agent 를실행한다. $ cd /opt/ofelia/vt_manager/src/python/agent $ python OfeliaAgent.py B4.3.2 Test VM by using CLI 커맨드라인인터페이스 (CLI) 에의한 VM 테스트는 VM 생성, 콘솔에의한 VM 연 결, 그리고 VM 삭제를테스트할수있다. 설치에필수적인과정은아니며, 기본적인 VM 의동작을검증해볼수있다. 107

119 VM 생성 1 VM 조작에대한모든커맨드는 sudo 권한으로실행되어야한다. $sudo su 2 VM 이미지와설정파일을이용하여 VM 의생성을한다. VM 이정상적으로생성되면로그인화면이나타나게된다. ( 템플릿으로포함된 VM 이미지를이용하여테스트한다.) $xm create c /etc/xen/ubuntu-test3-cfg Ubuntu LTS ubuntu-worker-3 hvc0 ubuntu-worker-3 login: 3 VM에서 Management Node 쉘로복귀할때에는 'ctrl' 키를누른채로 ']' 키를누르면 VM 은동작하는상태에서 Management Node 쉘로나올수있다. 4 생성된 VM 들을 xm 커맨드를이용하여확인한다. $xm list Name ID Mem VCPUs State Time(s) Domain r ubuntu b 콘솔에의한 VM 연결 1 Management Node 상에서 xm 커맨드를사용해내부적으로생성된 VM에접속할수있다. $xm console [name of VM] 2 VM에서 Management Node 쉘로복귀할때에는 'ctrl' 키를누른채로 ']' 키를누르면 VM 은동작하는상태에서 Management Node 쉘로나올수있다. 108

120 VM 삭제 1 VM 내부에서는 halt 또는 shutdown 명령어를사용해 VM 을종료한다. $halt 2 Management Node 쉘에서는 xm 커맨드를이용하여 VM 을강제종료할수있다. $xm destroy [name of VM] B4.4 Management VM#2 Setup VM2 는 perfsonar 툴킷을사용한네트워크링크상황의모니터링및리포트기 능을포함한다. B4.4.1 perfsonar Agent Installation & Configuration PerfSonar Agent 의설치와환경설정은다음의절차와같다. 1 기본 OS 로 CentOS 5.8 (32 bit) 가필요하고커널정보는아래와같다. Linux perfsonar el5xen #1 SMP Tue Feb 21 21:26:03 EST 2012 i686 i686 i386 GNU/Linux 2 RPM Repository 추가한다. perfsonar 다운로드를위한 repo 파일은 다음과같다. Internet2.repo epel.repo Internet2-web100_kernel.repo epel-testing.repo 109

121 3 Public key 추가한다. Repository 사용을위한 Public key 추가는 다음과같다. RPM-GPG-KEY-EPEL Version: GnuPG v1.2.6 (GNU/Linux) RPM-GPG-KEY-Internet2 Version: GnuPG v1.2.6 (GNU/Linux) 4 perfsonar 설치패키지들 yun install [ 패키지명 ] yum 을이용해 아래의패키지다운로드설치에필요한패키지는다음과같다. 1) 기본패키지 ntp bash kernel syslinux passwd policycoreutils chkconfig authconfig rootfiles comps-extras xkeyboard-config less vim-common vim-enhanced gcc binutils glibc glibc-common libgcc cpp glibc-devel glibc-headers kernel-headers libgomp httpd php php-gd php-xml php-snmp mysql mysql-devel perl-dbi perl-dbd-mysql epel-release 2) PerfSonar 관련패키지 openssh-clients web100_userland owamp-server bwctl-server npad perl-perfsonar_ps-lsregistrationdaemon perl-perfsonar_ps-lookupservice perl-perfsonar_ps-pinger-server perl-perfsonar_ps-perfsonarbuoy-config perl-perfsonar_ps-traceroutema-config openssh-server owamp-client bwctl-client ndt nuttcp perl-perfsonar_ps-lscachedaemon perl-perfsonar_ps-snmpma perl-perfsonar_ps-perfsonarbuoy-client perl-perfsonar_ps-perfsonarbuoy-server perl-perfsonar_ps-traceroutema-client 110

122 perl-perfsonar_ps-traceroutema-server perl-perfsonar_ps-toolkit-systemenvironment perl-perfsonar_ps-toolkit kmod-sk98lin 5 설치후 reboot를수행한다. 6 웹을이용한 perfsonar 접속한다. perfsonar에기능들이 IE 에서는지원을안해주는부분이많이있으므로 Chrome 브라우저를통한접속을권장한다. 정상적으로설치가되면아래의 [ 그림 71] 에나타난다. 설치한 IP 주소 ]/toolkit [ 그림 71] perfsonar Toolkit 의메인인터페이스화면 7 BWCTL, OWAMP, Ping Latency 설정한다. BWCTL, OWAMP, Ping Latency 설정은첫화면에서좌측하단에 Toolkit Administration 에메뉴중 Scheduled Tests에서설정할수있다. 111

123 [ 그림 72] 각종네트워크테스트항목추가를위한 Scheduled Tests 메뉴화면메뉴중에서 BWCTL 설정은 Add New Throughput Test에서한다. 해당버튼을누르면 [ 그림 73] 에나타난다. [ 그림 73] BWCTL(Throughput Test) 설정을위한화면 여기서각각의설정은아래의표의내용과같으며설정을마치면 [ 그림 74] 에나타난다. Description Time Between Tests Test Duration Protocol Use Autotuning 설정의대표이름 BWCTL 의테스트간격설정 1회테스트간격테스트할 Protocol Use Autotuning 사용여부 화면에서가운데부분을보면 Add New Host 가있다. 버튼을클릭하게되면 BWCTL 테스트를할 Host를등록할수있다. 등록하는방법은아래와같으며, 여기서각각의설정은다음표의내용과같다. 설정후 Add 를누르면이전화면으로넘어가게되고, 화면상단에있는 Save를누르면설정된값이저장이된다. OWAMP와 Ping Latency도 BWCTL 과유 112

124 [ 그림 74] 추가된테스트에대한호스트추가및파라미터설정화면 사한방법으로설정한다. [ 그림 75] 테스트에참여할호스트설정화면 Host 테스트하고자하는 Destination IP 를입력한다. port 설정된값으로한다. (BWCTL 의기본 Port 번호이다.) Description Host 의이름을설정한다. 7 Host의 SNMP 설정한다. Cacti 설정에앞서 Host의 SNMP를설정해주어야한다. perfsonar가설치되어있는 CentOS를기준으로 SNMP 변경방법을설명한다. 아래표는 snmpd.conf 파일중수정해야하는일부분을잘라편집한것이다. 빨간글로된부분을작성해추가시키거 113

125 나자신의 Host 설정에따라값을변경해주면된다. 설정을완료한후 에는 snmp 를실행시켜준다. $vim /etc/snmp/snmpd.conf... (40번째줄 ) # sec.name source community com2sec notconfiguser default public #### # Second, map the security name into a group name: # groupname securitymodel securityname group notconfiggroup v1 notconfiguser group notconfiggroup v2c notconfiguser... (73번째줄 ) ## sec.name source community com2sec local localhost COMMUNITY com2sec mynetwork xxx.xxx.xxx.0/24 public... $service snmpd start SNMP 데몬실행 ($service snmpd restart SNMP 데몬재실행 ) 8 Cacti 설정 : Cacti 설정은좌측하단에 Toolkit Administration 메뉴중 Cacti SNMP Monitoring 에서설정할수있고첫화면은 [ 그림 76] 와같다. 우선그래프를그리기위해서는 Host를추가시켜주어야하는데 [ 그림 77] 좌측 Management 하단에 Devices 라는카테고리를선택하여관찰하고자하는 Host를추가시키면된다. 즉화면에서우측상단에있는 Add를눌러서그래프를관찰하고자하는 Host를추가시켜주면된다. 114

126 [ 그림 76] Cacti 설정메인화면 [ 그림 77] 그래프를나타낼호스트가추가된화면 [ 그림 78] 그래프를나타낼호스트를추가설정하는화면 115

127 설정해야하는부분은다음표와같다 ( 아래의표를보면위의그림에 없는설정메뉴가있는데설정을시작하면자동으로설정메뉴가생성된다.) Description Host의이름설정부분이다. Hostname Host의 IP주소설정부분이다. Host Template Generic SNMP-enabled Host 를선택한다. Downed Device Detection SNMP Version 2를사용할경우 Ping and SNMP 를선택한다. Ping Method 보통 UDP 사용한다. SNMP Version Version 2 를사용한다. SNMP Community Host의 SNMP와동일하게맞춘다. 설정을완료후 Create 를눌러설정 Host 를추가시키고아래와같이 SNMP 정보와 Ping 결과가출력되면정상적으로추가된것이다. [ 그림 79] 그래프를나타낼호스트의추가가완료된결과화면 또한 Host 설정이완료되면 Graph 를추가시켜야한다. Graph 추가는 좌측에 Create 하위에 New Graphs 를선택하면된다. [ 그림 80] 그래프를나타낼호스트의선택및새로운그래프의생성 상단에보면 Host 에보면추가한 Host 중그래프를그릴 Host 를선택할 수있는데, 그래프를그리고자하는 Host 를선택하면위와같은화면이 116

128 나타난다. 관찰하고자하는장비를선택한후우측끝에체크박스를 눌러선택하고 Create 버튼을놀러생성한다. [ 그림 81] 선택된호스트간의상태를나타내는그래프선택한그래프는 Graph 메뉴에서볼수있다. 위의사진은 Graph 메뉴이며, 좌측상단에 list 메뉴를눌러이전과정에서생성한그래프를볼수있다. [ 그림 82] 생성된그래프리스트 [ 그림 82] 에서보고자하는그래프를선택하여 [ 그림 83] 를볼수있다. 그래프는 5분간격으로갱신되며 Host 에 /var/lib/cacti/rra 하위에 [Description명]_traffic_in_[ 생성번호 ].rrd 라는파일로생성되는파일을기준으로생성되는그래프이다. 117

129 [ 그림 83] 시간에따라각호스트디바이스에서처리되는트래픽양의그래프예시 118

130 B4.5 Worker VMs Setup Worker VM 은각실험자들이실험에필요한컴퓨팅자원을할당받아서생성하는 것으로, 모든실험에기본적으로사용된다. SmartX 의실험자인터페이스인 Portal 에서는제공되는템플릿기반으로 VM 의인스턴스를생성한다. B4.5.1 Worker VM Templet Creation 새로운 Worker VM의템플릿을생성하는과정은아래와같다. 1 OF@TEIN Portal 서버의 :/opt/ofelia/expedient/src/python/vt_plugin/models/vm.py을오픈한다. 2 20번째줄과 48번째줄근처에서 # [add-image] 를찾아서 VM의이름을등록한다. 3 OF@TEIN Portal 서버의 :/opt/ofelia/expedient/src/python/vt_plugin/controller/vmcontroller/vmc ontroller.py을오픈한다. 3 48번째줄근처에서 # [add-image] 를찾아서 VM의설정을추가한다. instance.hdoriginpath은 agent의 tar-ball 위치이다. 만약새로운종류의 OS를추가하려면 OF@TEIN Portal 서버의 /opt/ofelia/vt_manager/src/python/vt_manager/models/utils/choic es.py 파일에서 OSTypeClass에추가하고, 그렇지않으면 GNU/Linux를사용한다. OS의버전설정을위해서는같은파일의 # [add-image] 부근의코멘트를참조한다. 4 템플릿으로만들 VM의이미지파일을마운트한다. ( 예 : /mnt) 그리고마운트된디렉토리를 tar-ball로압축하기위해다음명령어를사용한다. tar zcvf /root/my-template-image.tar.gz 5 만들어진템플릿파일을각 Management VM #1의다음디렉토리에복사한다. /opt/ofelia/vt_manager/src/python/agent/cache/templates/default /opt/ofelia/vt_manager/src/python/agent/remote/templates/default 119

131 B4.5.2 Bridge Setup for Worker VMs PerfSonar, VM의 Control & Data Plane에대한 bridge 설정은다음과같은절차에의해서수행된다. 1 자동설정스크립트를통한 bridge 연결설정 /home/tein/init_brths.sh 2 ifconfig 명령어를통해 eth1~eth3, br_eth1~br_eth3 가 up 되었는지확인 3 brctl show 명령어를통해 eth1~eth3이각각 br_eth1~br_eth3 로 bridge 되어있는지확인 4 **option( 위의방법으로올라오지않았을경우아래의방법을따른다 ) 5 이미있을수있는 bridge 들삭제 - ifconfig br_eth1 down; ifconfig br_eth2 down; ifconfig br_eth3 down; brctl delbr br_eth1; brctl delbr br_eth2; brctl delbr br_eth3 6 각각 eth1, eth2, eth3 를 bridge 로연결시키기위해아래와같은명령어를입력한다. - brctl addbr br_eth1; brctl addbr br_eth2; brctl addbr br_eth3; brctl addif br_eth1 eth1; brctl addif br_eth2 eth2; brctl addif br_eth3 eth3 7 Ifconfig 를통해 eth1~eth3, br_eth1~br_eth3 가 up 되었는지확인 8 brctl show 를통해 eth1~eth3이각각 br_eth1~br_eth3 로 bridge 되어있는지확인 120

132 Part C - SmartX Rack (Type C): SmartX Box 121

133 C1. SmartX Box (Type C) C1.1 SmartX Box (Type C) Overview SmartX Box (Type C) 에서는 인프라의컴퓨팅, 네트워킹, 스토리징자원을가상화하여사용자맞춤테스트베드를제공한다. SmartX Box (TypeC) 는사용자들이자신들의실험목적에맞는실험환경을자동으로구성할수있도록해주는템플릿들을미리설계하여제공한다. 이를위하여설계되어제공되는 Virtual ground templates은자동으로 templates로 Box와 Role로써구성된다. 여기서 Box는아무것도없는하드웨어에실험목적에접합한운영제체및클라우드환경을설치하며, Role은실험을할수있는환경및기능을설정한다. 이를위해서 SmartX Box (Type C) 는원격에서자동으로설치및관리되는환경인 DevOps환경을기반으로설계되었으며, 소프트웨어설치및설정자동화도구인 Chef와 Bare-metal Provision 도구인 Cobbler를기반으로운영된다. 다음은 SmartX Box (Type C) 에진해되는내용을나타낸다 [1, 2, 3, 4]. SmartX Box (Type C) 설계 SmartX Box (Type C) 원격설치및관리자동화도구개발 SmartX Box (Type C) 운영템플릿설계 [ 그림 84] OF@TEIN Configuration: Autonomic Configuration with Templates for SmartX Box 122

134 C1.2 Softwares Specification for SmartX Box (Type C) 을구성하는 SmartX Box 의소프트웨어구조는 [ 그림 85] 와같다. [ 그림 85] Installation & Coordination Tool SW for SmartX Box [ 그림 85] 의 Provisioning Center Node는원격서버들에게 Box 템플릿을적용시켜서 OS와클라우드인프라인 OpenStack을설치한다. OS를설치를위해서 cobbler 의탬플릿을이용하며, OpenStack을설치하기위해서는 Chef 탬플릿을이용한다. 그림81의 OpenStack Orchestration Node에는 OpenStack platform을제어하는데활용되는 Keystone( 인증 ), Horizon(UI), Nova( 가상컴퓨팅 ), Swift( 객체기반가상스토리지 ), Glance( 이미지서비스 ), Neutron( 가상네트워킹 ) 들로써구성된다. OpenStack Orchestration Node의구성요소들을활용하여 SmartX Box의자원들을운영한다. SmartX Box를구성하는각논리적인노드들에는자원가상화를위한 SW들을포함한다 [5]. 123

135 C1.3 Hardware Specification for SmartX Box (Type C) SmartX Box Type C 의하드웨어구성은 [ 그림 86] 과 [ 표 4] 와같이나타내며, 장 치별제조사및공급사에대한정보를간략하게정리한다. [ 그림 86] OF@TEIN SmartXbox default template G-A 124

136 [ 표 2] SmartX Box Type C 용도및하드웨어구성 SmartX Coordinator Box SmartX Control Box SmartX Box C* (Worker Nodes) 용도 Model Provisioning node 가동작하는 Box 로 Template 들을설정하거나 Template 에맞게 package 들을설치한다. 설치된 OpenStack node 들의전체적인 orchestration 을담당하는중요노드로써 OpenStack 요소들에대한전체적인제어를담당한다. 실제적인실험이이루어지는노드로써, 실험에맞는고성능혹은다수의가상머신들을생성한다. IBM x3650 M4 IBM x3650 M4 Intel ONP CPU Intel(R) Xeon(R) CPU E5-2630, 2.3Ghz, 6-cores Intel(R) Xeon(R) CPU E5-2630, 2.3Ghz, 6-cores Intel(R) Xeon(R) CPU E v2, 10-cores x2 RAM 32GB (8x4GB),1333MHz 32GB (8x4GB),1333MHz 96GB HDD /SDD 146GB+500GB 500GB+500GB 800GB SSD x2 (RAID 0) / 2TB SATA x2 (RAID 1) Remarks A1: I350(1G)x4 Intel 82571EB(1G)x2 Chelsio T420-CR(10G)x2 A2: I350(1G)x4 NIC: Intel I350(1G)x4 Chelsio T420-CR(10G)x2 NIC: Intel I350 (1G) x4 / Intel X520 DA2 (10G) x2 C1.4 Networking Specification for SmartX Box (Type C) [ 그림 87] 과같이 SmartX Box (Type C) 는 networking specification 을위해서 Installation phase 와 Operation phase 로나누어져서동작한다. 125

137 [ 그림 87] SmartXboxes (Type C) Infrastructure (Network) Installation phase 에서는 10G/1G 네트워크를활용하여 Provisioning Center node 에설정된 Template 을이용하여다음과같이 SmartX Box 를설치한다. 1 Box / Node configuration & Installing trigger procedure Playground에맞게설치될 Box 및 node들의내용에대해서설정을진행한다. 2 Remote Power Management procedure Remote Power Management나 SSH을이용하여해당서버의파워를재부팅시킨다. 3 PXE booting procedure PXE (Preboot Execution Environment) 과정을통하여미리설정해놓은설치 phase로넘어간다. 4 OS install/configuration procedure Cobbler에의해서미리정해놓은 cobbler box template에따라서 OS 설치및기본적인설치를진행한다. 그후 chef server로 Node들에대한설치를 trigger한다. 5 Openstack install/configuration procedure trigger된 chef 서버는서버들의 role에맞게 chef cookbook을선택하여 126

138 해당서버에설치를진행한다. [ 그림 88] SmartX Box (Type C) 는 Installation phase Operation phase는총 3개의네트워크를활용하여다음과같은역할을수행한다. 첫째, Data Network에서는 VM간의데이터송수신을전담한다. 둘째, Control Network에서는 SmartX Box를구성하는 SW의 Control 메시지들을담당한다. 마지막으로 Management 네트워크에서는외부관리용네트워크로써로그확인및원격제어와 Openstack의 API들을접속하는용도로도활용된다. 127

139 C2. SmartX Box (Type C) System Architecture C2.1 Unified Virtualized Resources for VMs [ 그림 89] Unified and Virtualized (Computing / Networking / Storaging) Resources for OF@TEIN Virtual Playground [ 그림 89] 는 OF@TEIN의 Virtual Playground를위한가상화자원의구조를보여준다. 즉, OF@TEIN 실험망의자원들은가상화되어실험자가필요한작업 (worker) 노드를원하는대로구성하도록지원한다. C2.2 Main System Nodes [ 그림 90] 은 SmartXbox 의메인시스템노드를보여주고있다. 그림 86 의 Provisioning 노드는템플릿과연결하여사용자별로중요한논리적인노드를구성할 때활용된다. cobbler 와 chef 가사용자별로맞춰놓은 Template 들을자동설치한다. 128

140 [ 그림 90] SmartXbox default template G-A C2.2.1 Provisioning Center Node Provisioning Center 노드는 Chef와 Cobbler를통하여각 Box에대한 provisioning 기능을수행한다. 미리설계해놓은 Box 템플릿을활용하여, 전체 SmartX Worker Box들에대한구성을완료하며, 이러한일련의과정은원격에서자동으로실행한다. C2.2.2 Openstack Orchestration Node Openstack Orchestartion 노드는 OpenStack 에각구성요소들을제어하는역할 을맡고있다. 이노드와 SmartX Box 들에구성된각종 Worker 노드들에대한제어 를담당한다. C2.2.3 Gateway Node Gateway 노드는 SmartX Box 의각노드들의네트워크를총체적으로제어하며, 129

141 외부인터넷과의연결을가능케해준다. C2.2.4 Worker Node 실제실험을하는노드로써, 역할하는임무에따라서가상된자원들다르게할당 받으면서 Computing/Networking/Storaging 에걸친작업을수행한다. C2.3 기본템플릿들 C2.3.1 Template G-A [ 그림 91] OF@TEIN SmartXBox (Type C): Template G-A Template G-A (Grizzly-A) 는가장기본적인템플릿으로써, Grizzly version 의 openstack 을활용하며, 모든서버들이하나의 OpenStack Network 로구성되어있 는실험환경을제공한다. C2.3.2 Template G-A 130

142 [ 그림 92] SmartXBox (Type C): Template G-A Template G-A 은기본적인템플릿으로써, Grizzly version의 openstack을활용 하며, 3 개로나누어진네트워크와 OpenStack 을갖는실험환경을제공한다. C2.3.2 Template G-A [ 그림 93] OF@TEIN SmartXBox (Type C): Template G-A Template G-A 은기본적인템플릿으로써, Grizzly version 의 openstack 을활용 하며, 각서버들이자신의네트워크와 openstack 을갖는실험환경을제공한다. 131

143 C3. Installation & Operation SmartX Boxes (Type C) C3.1 Automatic Installation of OS (Cobbler) C3.1.1 Cobbler install Cobbler 는 Bare-metal provision 도구로써정해놓은 OS 및설정내용에 따라서 OS 를설치해주는도구이다. 다음은 Cobbler 를설치하는방법에 대하여설명한다. 1 Cobbler 설치 $apt-get install cobbler -y 2 Cobbler 비밀번호설정 $openssl passwd -1 Password: 사용할 password 입력 example root@installer:~# openssl passwd -1 Password: Verifying - Password: $1$kKmzEh1m$bODVirc70wzAOEyBAmUKy1 3/etc/cobbler/settings 값설정 default_password_crypted: "$1$bfI7WLZz$PxXetL97LkScqJFxnW7KS1" 4 Cobbler DHCP 설정 /etc/cobbler/setting 값설정 manage_dhcp: 1 Cobbler 에서는 DHCP 혹은 DNS 를활용하여, 설치되는 system 의 identification 을진행한다. 본문서에서는 DHCP 를활용하므로 manager_dhcp 의값을 1 로써설정 해준다. 132

144 5/etc/cobbler/dhcp.template 값설정 subnet netmask { option routers ; option domain-name-servers , ; option subnet-mask ; filename "/pxelinux.0"; default-lease-time 21600; max-lease-time 43200; next-server $next_server; } 본문서에서는 DHCP를활용하여, 각서버들에대한 identification, PXE 부팅및설치를진행한다. 이를위해서 DHCP에대한설정이필요하다. 위의예제는현재 /16의네트워크 (10G, Data Network) 아이피를가지고있는서버에대한 DHCP 설정사항이다. 즉, 위에설정해놓은네트워크범위와서버가접속해있는네트워크정보를활용해서 DHCP 동작을진행할네트워크를결정하게된다. 위의예제에서는 10G Network를활용해서 DHCP 동작및 PXE 부팅및설치과정을진행한다. 6/etc/cobbler/modules.conf 값설정 [dhcp] module = manage_isc DHCP 를활용하기위해서 cobbler 의 moduels 에대한설정을변경해준다. $cobbler check $cobbler sync 4 OS Import 생성다음의명령어로 OS 이미지를다운로드해 Cobbler에 Import 시킨다. $wget md64.iso $mkdir ubuntu-alternate $mount -o loop ubuntu alternate-amd64.iso ubuntu-alternate $ cobbler import --name=baremetal --path=/root/ubuntu-alternate --breed=ubuntu 133

145 5 Box template 생성 다음의 preseed 를생성하여 cobbler 에 system 추가할때정의해준다. # Ubuntu Server Quick Install # by Dustin Kirkland <kirkland@ubuntu.com> # * Documentation: d-i d-i... debian-installer/locale string en_us.utf-8 debian-installer/splash boolean false d-i d-i d-i d-i mirror/country string manual mirror/http/hostname string archive.ubuntu.com mirror/http/directory string /ubuntu mirror/http/proxy string d-i preseed/late_command string true && \ $SNIPPET('smlocal_disable_pxe') && \ $SNIPPET('smlocal_late_command') \ true C3.1.2 Cobbler kickstart 설정 Cobbler의 kickstart를이용하여 OS설치관련정보를저장하고설정한다. 이를위해서현재기본적인 ubuntu를설치하는 default kickstart와 SmartX Box (typec) 를 kickstart를이용한다. 이두가지 kickstart는 Chef를 trigger 하여 OS와 SmartXBox를설치하는데, /var/www/installer/kickstarts에저장되어있다. 1 default kickstart 본 default template의경우에는기본적인 ubuntu 설치하는설치 template으로써추가적인설정내용은다음과같다. I. local repository 활용 ubuntu 설치 134

146 II. ubuntu apt repositiory ==> ftp.daum.net # Ubuntu Server Quick Install # by Dustin Kirkland <kirkland@ubuntu.com> # * Documentation: d-i debian-installer/locale string en_us.utf-8 d-i debian-installer/splash boolean false d-i console-setup/ask_detect boolean false d-i console-setup/layoutcode string us d-i console-setup/variantcode string d-i netcfg/enable boolean false #d-i netcfg/choose_interface select auto #d-i netcfg/get_nameservers string #d-i netcfg/get_ipaddress string #d-i netcfg/get_netmask string #d-i netcfg/get_gateway string #d-i netcfg/confirm_static boolean true d-i partman-auto/disk string /dev/sda d-i partman-auto/method string lvm # If one of the disks that are going to be automatically partitioned # contains an old LVM configuration, the user will normally receive a # warning. This can be preseeded away... d-i partman-lvm/device_remove_lvm boolean true # The same applies to pre-existing software RAID array: d-i partman-md/device_remove_md boolean true # And the same goes for the confirmation to write the lvm partitions. d-i partman-lvm/confirm boolean true d-i partman-auto/choose_recipe select atomic d-i partman-partitioning/confirm_write_new_label boolean true d-i partman/choose_partition select finish d-i partman/confirm boolean true d-i partman/confirm_nooverwrite boolean true d-i clock-setup/utc boolean true d-i clock-setup/ntp boolean true d-i clock-setup/ntp-server string ntp.ubuntu.com d-i base-installer/kernel/image string linux-generic d-i passwd/root-login boolean false d-i passwd/make-user boolean true d-i passwd/user-fullname string tein d-i passwd/username string tein 135

147 d-i passwd/user-password-crypted password $1$YI1oOT3L$lbdzJZIEkHlk48UWo7FHk. d-i passwd/user-uid string d-i user-setup/allow-password-weak boolean false d-i user-setup/encrypt-home boolean false d-i passwd/user-default-groups string adm cdrom dialout lpadmin plugdev sambashare d-i debian-installer/allow_unauthenticated string false d-i pkgsel/upgrade select safe-upgrade d-i pkgsel/language-packs multiselect d-i pkgsel/update-policy select none d-i pkgsel/updatedb boolean true d-i grub-installer/skip boolean false d-i lilo-installer/skip boolean false d-i debian-installer/locale string en_us.utf-8 d-i debian-installer/splash boolean false d-i console-setup/ask_detect boolean false d-i console-setup/layoutcode string us d-i console-setup/variantcode string d-i netcfg/enable boolean false #d-i netcfg/choose_interface select auto #d-i netcfg/get_nameservers string #d-i netcfg/get_ipaddress string #d-i netcfg/get_netmask string #d-i netcfg/get_gateway string #d-i netcfg/confirm_static boolean true d-i partman-auto/disk string /dev/sda d-i partman-auto/method string lvm # If one of the disks that are going to be automatically partitioned # contains an old LVM configuration, the user will normally receive a # warning. This can be preseeded away... d-i partman-lvm/device_remove_lvm boolean true # The same applies to pre-existing software RAID array: d-i partman-md/device_remove_md boolean true # And the same goes for the confirmation to write the lvm partitions. d-i partman-lvm/confirm boolean true d-i partman-auto/choose_recipe select atomic d-i partman-partitioning/confirm_write_new_label boolean true d-i partman/choose_partition select finish d-i partman/confirm boolean true d-i partman/confirm_nooverwrite boolean true 136

148 d-i clock-setup/utc boolean true d-i clock-setup/ntp boolean true d-i clock-setup/ntp-server string ntp.ubuntu.com d-i base-installer/kernel/image string linux-generic d-i passwd/root-login boolean false d-i passwd/make-user boolean true d-i passwd/user-fullname string tein d-i passwd/username string tein d-i passwd/user-password-crypted password $1$YI1oOT3L$lbdzJZIEkHlk48UWo7FHk. d-i passwd/user-uid string d-i user-setup/allow-password-weak boolean false d-i user-setup/encrypt-home boolean false d-i passwd/user-default-groups string adm cdrom dialout lpadmin plugdev sambashare d-i debian-installer/allow_unauthenticated string false d-i pkgsel/upgrade select safe-upgrade d-i pkgsel/language-packs multiselect d-i pkgsel/update-policy select none d-i pkgsel/updatedb boolean true d-i mirror/country string manual ## Repository 를 Local repository 로설정해주는부분 #set srv = $getvar('http_server','') #set profile_name = $getvar('profile_name','') #set repo_name = profile_name.split('-x86')[0] #set repo_address = "/cblr/ks_mirror/%s/ubuntu" % (repo_name) d-i d-i d-i mirror/http/hostname string $srv mirror/http/directory string $repo_address mirror/http/proxy string d-i apt-setup/services-select multiselect security d-i apt-setup/security_host string $srv d-i apt-setup/security_path string /ubuntu ## 설치종료후 ubuntu repository 를한국에위치한 ubuntu repository 로 설정해주는부분 137

149 #set repo_change_command = "in-target /bin/sed -i 's/%s\/cblr\/ks_mirror\/%s/ftp.daum.net/g' /etc/apt/sources.list" % (srv, repo_name) #set repo_change_command += "; in-target /bin/sed -i 's/%s/ftp.daum.net/g' /etc/apt/sources.list" % (srv) #set repo_change_command += "; in-target /bin/sed -i 's/us.archive.ubuntu.com/ftp.daum.net/g' /etc/apt/sources.list" ## 위에서설정한명령어를 OS 인스톨이완료된후실행시키는부분 d-i preseed/late_command $repo_change_command * 네트워크설정이기본적으로 Installation Network 로되어있으므로추 가적인 Data network 및 management network(external) 설정을해 주어야한다. 2 typec kickstart TypeC Box 들을설치하기위한템플릿으로써다음의내용을포함하고있다. I. PXE loop 방지 : PXE loop 를방지하기위한부분으로써, 해당서버의 PXE install 이 Disable 되어재부팅시다시 PXE 및 OS 재설 치가진행되는것을방지한다. 2. Network configuration 미리입력된 Cobbler network 정보에맞춰서네트워크 interface 을생성해준다. 파일 3. Trigger script다운로드 /root/ 위치로 trigger가다운되게되었으며, 해당호스트의이름.sh로저장된다. *trigger는 OS 설치후처음부팅시에만실행되도록되어있음. */var/www/installer/triggers에위치되어있음. computing.sh : computing node 용 trigger script 주요기능 I. root 계정 PW 등록 138

150 II. network interface 변경문제해결 III. chef node 등록 IV. chef role 추가 V. chef-clinet 실행 #!/bin/bash # 추가할 chef-client 의 role 에대한부분 RUN_LIST1="'role\[single-compute\]'" # 전달받은서버의 configuration 파일을불러들이는부분 source /root/conf # 사용할기본비밀번호를정해줍니다. PWD="fn\!xo\!ska\!" # 미리저장해놓은 NETWORK 의 MAC address 에맞춰서 network interface 를설정해주는부분입니다. SEARCH_CONTROL_NETWORK_IFACE=$(cat /etc/udev/rules.d/70-persistent-net.rules grep $CONTROL_NETWORK_MAC cut -f8 -d" ") NEW_CONTROL_NETWORK_IFACE=${SEARCH_CONTROL_NETWORK_IFACE: 6:4} SEARCH_DATA_NETWORK_IFACE=$(cat /etc/udev/rules.d/70-persistent-net.rules grep $DATA_NETWORK_MAC cut -f8 -d" ") NEW_DATA_NETWORK_IFACE=${SEARCH_DATA_NETWORK_IFACE:6:4} echo "(old)control Network Interface : $CONTROL_NETWORK_IFACE" echo "(old)data Network Interface : $DATA_NETWORK_IFACE" echo "Control Network Interface : $NEW_CONTROL_NETWORK_IFACE" echo "DATA Network Interface : $NEW_DATA_NETWORK_IFACE" if [ $CONTROL_NETWORK_IFACE!= $NEW_CONTROL_NETWORK_IFACE ] 139

151 then echo "network configure is changed" sed -i "s/$control_network_iface/$new_control_network_iface/" /etc/network/interfaces route del -net /16 dev $CONTROL_NETWORK_IFACE fi if [ $DATA_NETWORK_IFACE!= $NEW_DATA_NETWORK_IFACE ] then echo "network configure is changed" sed -i "s/$data_network_iface/$new_data_network_iface/" /etc/network/interfaces route del -net /16 dev $DATA_NETWORK_IFACE fi /etc/init.d/networking restart route apt-get update sudo apt-get install expect module-assistant openvswitch-datapath-dkms git ssh vim -y ssh-keygen -f /root/.ssh/id_rsa -t rsa -N '' #chef-client 를설치하는부분 dpkg i /root/chef_11.8.0_1.ubuntu.12.04_amd64.deb /usr/bin/expect <<EOD set timeout 20 spawn bash expect "# " send "passwd root\r" expect "password: " send "$PWD\r" expect "password: " send "$PWD\r" expect "# " send "exit\r" EOD 140

152 /usr/bin/expect <<EOD set timeout 20 spawn ssh -ostricthostkeychecking=no -ocheckhostip=no expect "password" send "$PWD\r" expect "installer:~# " send "ssh-keygen -f \"/root/.ssh/known_hosts\" -R $MANAGEMENT_NETWORK_IP\r" expect "# " send "knife node delete $HOST_NAME -y\r" expect "# " send "knife client delete $HOST_NAME -y\r" expect "# " send "knife node create $HOST_NAME -d\r" expect "# " send "knife bootstrap $MANAGEMENT_NETWORK_IP -x root -P '$PWD' --sudo\r" expect "installer:~# " send "knife node run_list add $HOST_NAME $RUN_LIST1\r" expect "installer:~# " send "exit\r" EOD echo environment \"$COORDINATOR\" >> /etc/chef/client.rb COORDINATOR_STATUS='install' while [ $COORDINATOR_STATUS == "install" ] do wget -O /root/status -q COORDINATOR_STATUS=$(cat /root/status) echo "Coordinator status : $COORDINATOR_STATUS, now waiting" sleep 10 done chef-client /usr/bin/expect <<EOD set timeout 20 spawn ssh -ostricthostkeychecking=no -ocheckhostip=no root@

153 expect "password" send "$PWD\r" expect "# " send "echo complete > /var/www/installer/status/$host_name\r" expect "# " send "exit\r" EOD coordinator.sh : coordinator node용 trigger script 주요기능 I. root 계정 PW 등록 II. network interface 변경문제해결 III. chef node 등록 IV. chef role 추가 V. chef-clinet 실행 VI. network configuration VII. cinder configuration #!/bin/bash source /root/conf RUN_LIST1="'role\[single-controller\]'" RUN_LIST2="'role\[single-network-node\]'" RUN_LIST3="'role\[quantum-network-manager\]'" RUN_LIST4="'role\[single-compute\]'" PWD="fn\!xo\!ska\!" SEARCH_CONTROL_NETWORK_IFACE=$(cat /etc/udev/rules.d/70-persistent-net.rules grep $CONTROL_NETWORK_MAC cut -f8 -d" ") NEW_CONTROL_NETWORK_IFACE=${SEARCH_CONTROL_NETWORK_ IFACE:6:4} SEARCH_DATA_NETWORK_IFACE=$(cat /etc/udev/rules.d/70-persistent-net.rules grep $DATA_NETWORK_MAC cut -f8 -d" ") 142

154 NEW_DATA_NETWORK_IFACE=${SEARCH_DATA_NETWORK_IFACE:6: 4} echo "(old)control Network Interface : $CONTROL_NETWORK_IFACE" echo "(old)data Network Interface : $DATA_NETWORK_IFACE" echo "Control Network Interface : $NEW_CONTROL_NETWORK_IFACE" echo "DATA Network Interface : $NEW_DATA_NETWORK_IFACE" if [ $CONTROL_NETWORK_IFACE!= $NEW_CONTROL_NETWORK_IFACE ] then echo "network configure is changed" sed -i "s/$control_network_iface/$new_control_network_iface /" /etc/network/interfaces route del -net /16 dev $CONTROL_NETWORK_IFACE fi if [ $DATA_NETWORK_IFACE!= $NEW_DATA_NETWORK_IFACE ] then echo "network configure is changed" sed -i "s/$data_network_iface/$new_data_network_iface/" /etc/network/interfaces route del -net /16 dev $DATA_NETWORK_IFACE fi /etc/init.d/networking restart route apt-get update apt-get install expect module-assistant openvswitch-datapath-dkms git ssh vim -y 143

155 ssh-keygen -f /root/.ssh/id_rsa -t rsa -N '' dpkg -i /root/chef_11.8.0_1.ubuntu.12.04_amd64.deb apt-get install expect module-assistant openvswitch-datapath-dkms git ssh vim -y ssh-keygen -f /root/.ssh/id_rsa -t rsa -N '' dpkg i /root/chef_11.8.0_1.ubuntu.12.04_amd64.deb /usr/bin/expect <<EOD set timeout 20 spawn bash expect "# " send "passwd root\r" expect "password: " send "$PWD\r" expect "password: " send "$PWD\r" expect "# " send "exit\r" EOD /usr/bin/expect <<EOD set timeout 20 spawn ssh -ostricthostkeychecking=no -ocheckhostip=no root@installer expect "password" send "$PWD\r" expect "# " send "ssh-keygen -f \"/root/.ssh/known_hosts\" -R $MANAGEMENT_NETWORK_IP\r" expect "# " send "knife node delete $HOST_NAME -y\r" expect "# " send "knife client delete $HOST_NAME -y\r" expect "# " send "knife node create $HOST_NAME -d\r" expect "# " 144

156 send "knife bootstrap $MANAGEMENT_NETWORK_IP -x root -P '$PWD' --sudo\r" expect "# " send "knife node run_list add $HOST_NAME $RUN_LIST1\r" expect "# " send "exit\r" EOD echo environment \"$COORDINATOR\" >> /etc/chef/client.rb chef-client /usr/bin/expect <<EOD set timeout 20 spawn ssh -ostricthostkeychecking=no -ocheckhostip=no expect "password" send "$PWD\r" expect "# " send "echo complete > /var/www/installer/status/$host_name\r" expect "# " send "exit\r" EOD /usr/bin/expect <<EOD set timeout 20 spawn ssh -ostricthostkeychecking=no -ocheckhostip=no expect "password" send "$PWD\r" expect "# " send "knife node run_list add $HOST_NAME $RUN_LIST3\r" expect "# " send "knife node run_list add $HOST_NAME $RUN_LIST4\r" expect "# " send "exit\r" EOD chef-client 145

157 #This part is for network configuration (It shuold be replaced to chef cookbooks) ovs-vsctl add-port br-ex eth0 sed -i 's/eth0/br-ex/g' /etc/network/interfaces echo -e 'auto eth0\niface eth0 inet static\n\taddress \n\tnetmask ' >> /etc/network/interfaces /etc/init.d/networking restart #This part if for change nova configuration (It also should be replaced to chef cookbooks) vgcreate cinder-volumes /dev/sdb1 sudo apt-get install cinder-volume -y sudo service cinder-scheduler restart source /root/openrc wget -O /root/precise-server-default wget so -O /root/ubuntu desktop-amd64.iso glance image-create --name precise-server-default --disk-format qcow2 --container-format bare --file precise-server-default glance image-create --name ubuntu desktop --disk-format iso --container-format bare --file /root/ubuntu desktop-amd64.iso 4. Configuration file Download /root/conf 로다운로드되게되어있으며, trigger script 가실행될때 사용하는변수들이저장되어있다. 5. Chef Client package Download 146

158 local repository에서 chef-client package를다운, trigger에서설치하도록준비 # Ubuntu Server Quick Install # by Dustin Kirkland <kirkland@ubuntu.com> # * Documentation: d-i debian-installer/locale string en_us.utf-8 d-i debian-installer/splash boolean false d-i console-setup/ask_detect boolean false d-i console-setup/layoutcode string us d-i console-setup/variantcode string d-i netcfg/enable boolean false d-i netcfg/disable_autoconfig boolean true d-i netcfg/dhcp_failed note d-i netcfg/dhcp_options select Configure network manually # Static network configuration. d-i netcfg/get_nameservers string d-i netcfg/get_ipaddress string d-i netcfg/get_netmask string d-i netcfg/get_gateway string d-i netcfg/confirm_static boolean true d-i partman-auto/disk string /dev/sda d-i partman-auto/method string lvm # If one of the disks that are going to be automatically partitioned # contains an old LVM configuration, the user will normally receive a # warning. This can be preseeded away... d-i partman-lvm/device_remove_lvm boolean true # The same applies to pre-existing software RAID array: d-i partman-md/device_remove_md boolean true # And the same goes for the confirmation to write the lvm partitions. d-i partman-lvm/confirm boolean true d-i partman-auto/choose_recipe select atomic d-i partman-partitioning/confirm_write_new_label boolean true d-i partman/choose_partition select finish d-i partman/confirm boolean true d-i partman/confirm_nooverwrite boolean true #set srv = $getvar('http_server','') d-i clock-setup/utc boolean true d-i clock-setup/ntp boolean false 147

159 #d-i clock-setup/ntp-server string $srv d-i base-installer/kernel/image string linux-generic d-i passwd/root-login boolean false d-i passwd/make-user boolean true d-i passwd/user-fullname string tein d-i passwd/username string tein d-i passwd/user-password-crypted password $1$YI1oOT3L$lbdzJZIEkHlk48UWo7FHk. d-i passwd/user-uid string d-i user-setup/allow-password-weak boolean false d-i user-setup/encrypt-home boolean false d-i passwd/user-default-groups string adm cdrom dialout lpadmin plugdev sambashare d-i debian-installer/allow_unauthenticated string false d-i pkgsel/upgrade select safe-upgrade d-i pkgsel/language-packs multiselect d-i pkgsel/update-policy select none d-i pkgsel/updatedb boolean true d-i grub-installer/skip boolean false d-i lilo-installer/skip boolean false d-i grub-installer/only_debian boolean true d-i grub-installer/with_other_os boolean true d-i finish-install/keep-consoles boolean false d-i finish-install/reboot_in_progress note d-i cdrom-detect/eject boolean true d-i debian-installer/exit/halt boolean false d-i debian-installer/exit/poweroff boolean false d-i pkgsel/include string openssh-server d-i mirror/country string manual #set profile_name = $getvar('profile_name','') #set repo_name = profile_name.split('-x86')[0] #set repo_address = "/cblr/ks_mirror/%s/ubuntu" % (repo_name) d-i d-i d-i mirror/http/hostname string $srv mirror/http/directory string $repo_address mirror/http/proxy string d-i apt-setup/services-select multiselect security d-i apt-setup/security_host string $srv d-i apt-setup/security_path string /ubuntu 148

160 # this part is for disable pxe loop # if you configure incorrectly, you will see infinite pxe loop #set system_name = $getvar('system_name','') #set nopxe = "in-target wget -O /dev/null" % (srv, system_name) # This part is for change local ubuntu repository to daum.net ubuntu repositroy # It's required because our ubuntu local repository dosen't sync ubuntu repo and have full packages #set repo_change_command = "in-target /bin/sed -i 's/%s\/cblr\/ks_mirror\/%s/ftp.daum.net/g' /etc/apt/sources.list" % (srv, repo_name) #set repo_change_command += "; in-target /bin/sed -i 's/%s/ftp.daum.net/g' /etc/apt/sources.list" % (srv) #set repo_change_command += "; in-target /bin/sed -i 's/us.archive.ubuntu.com/ftp.daum.net/g' /etc/apt/sources.list" # This part is for auto network configuration #set pxe_just_once = $str($getvar('pxe_just_once','')) #set profile_name = $getvar('profile_name','') #set puppet = $str($getvar('puppet_auto_setup','')) #set hostname = $getvar('$hostname', None) #set tint_file = "auto lo\\niface lo inet loopback\\n\\n" #set vlan_config = "" #set slave_config = "" #set configure_static_networking = False #set ikeys = $interfaces.keys() #for $iname in $ikeys #set $idata #set $mac #set $static #set $ip = $interfaces[$iname] = $idata["mac_address"] = $idata["static"] = $idata["ip_address"] 149

161 #set $netmask = $idata["netmask"] #set $iface_type = $idata["interface_type"] #set $iface_master = $idata["interface_master"] #set $static_routes = $idata["static_routes"] #set $management = $idata["management"] #if $static #set configure_static_networking = True #set tint_file += "auto %s\\niface %s inet static\\n\\taddress %s\\n\\tnetmask %s\\n" % (iname, iname, ip, netmask) #end if #if $static_routes #set gateway = $static_routes[0] #set nameserver = $name_servers[0] #set tint_file += "\\tgateway %s\\n\\tdns-nameservers %s\\n" % (gateway,nameserver) #set client_network_address = $ip #end if #end for #if $configure_static_networking ## Configure static networking #set network_static_command = "echo -e \"%s\" > /target/etc/network/interfaces" % (tint_file) #if hostname #set h = hostname.split('.')[0] #set client_hostname = $h #set hosts = " \\tlocalhost\\n%s\\t %s\\n" % (client_network_address, h) #set hosts +=" \\tinstaller\\n" #set hosts += "::1\\tip6-localhost ip6-loopback\\n" #set hosts += "fe00::0 ip6-localnet\\n" #set hosts += "ff00::0 ip6-mcastprefix\\n" #set hosts += "ff02::1 ip6-allnodes\\n" #set hosts += "ff02::2 ip6-allrouters\\n" #set network_static_command += "; echo -e \"%s\" > /target/etc/hosts" % (hosts) 150

162 #set network_static_command += "; echo -e \"%s\" > /target/etc/hostname" % (hostname) #end if #else #set network_static_command = "echo 1" #end if #set chef_client_download = "in-target wget -O /root/chef_11.8.0_1.ubuntu.12.04_amd64.deb" % (srv) ## This part is to install chef-client from local repository #set trigger_download = "in-target wget -O /root/%s.sh" % (srv, hostname, hostname) #set trigger_download += "; in-target wget -O /root/conf" % (srv, hostname) #set script = "" #set script += "#!/bin/bash -e\\n" #set script += "bash /root/%s.sh\\n" % (hostname) #set script += "sed -i /bash/d /etc/rc.local\\n" #set script += "exit 0\\n" #set excute_script = "echo -e \"%s\" > /target/etc/rc.local" % (script) d-i preseed/late_command string $nopxe; $repo_change_command; $network_static_command; $chef_client_download; $trigger_download; $excute_script C3.1.3 Cobbler 활용 1 기본 default 설치방법 cd /var/www/installer/scripts./cobbler_ga1.sh //GA template 설치 or./cobbler_ga2.sh //GA` template 설치 or./cobbler_ga3.sh //GA`` template 설치 151

163 * all_reset_ssh.sh 가정상적으로동작하지않을시 all_reset.sh 를통하여 RMM 을이용해서각서버들을재부팅시키거나, 수동으로재부팅시킨다. [ 그림 94] 는 Cobbler를실행시기위해서작성된 script를실행시킨화면을보여주고있으며, [ 그림 95] 는스크립트실행후서버를재부팅명령을내리는화면을보여주고있다. [ 그림 96] 에서는재부팅명령에의하여서버가재부팅되는화면을보여주고있으며, [ 그림 97] 에서운영체제가자동으로재설치되는화면을보여주고있다. [ 그림 98] 에서다시서버가재부팅된후 [ 그림 99] 에서 OpenStack이자동으로설치되는화면을보여주고있다. [ 그림 100] 에서는 OpenStack의설치가완료된화면을보여주여, [ 그림 101] 에서는 OpenStack의웹인터페이스인 dashboard에접속한화면을보여준다. [ 그림 94] OS(ubuntu ) 자동설치 152

164 [ 그림 95] script 실행 [ 그림 96] 서버재부팅 153

165 [ 그림 97] 서버재부팅 [ 그림 98] 서버재부팅 154

166 [ 그림 99] OpenStack 자동설치 [ 그림 100] OpenStack 설치완료 155

167 [ 그림 101] OpenStack 접속화면 * 자동설치가정상적으로동작하지않았을경우, 서버에접속해서 chef-client 를 재실행시켜준다. (#sudo chef-client) 2 기본설치스크립트설명 A. cobbler_all_change.sh 각 conf/ 폴더에적어놓은서버들의정보를활용해서, cobbler에서버등록 (/var/www/installer/scripts/conf에서버정보저장 ) example GJ-C1 GATEWAY=" " DNSNAMESERVER=" " POWER_NETWORK_IP=" " MANAGEMENT_NETWORK_IP=" " MANAGEMENT_NETWORK_MAC="00:1e:67:7f:e0:06" MANAGEMENT_NETWORK_IFACE="eth0" CONTROL_NETWORK_IP=" " CONTROL_NETWORK_MAC="00:1e:67:7f:e0:07" CONTROL_NETWORK_IFACE="eth1" 156

168 DATA_NETWORK_IP=" " DATA_NETWORK_MAC="90:e2:ba:54:ec:05" DATA_NETWORK_IFACE="eth5" #System Configuration HOST_NAME="GJ-C1" #OpenStack Install Type TYPE="coordinator" CHEF_ENVIRONMENT="tein_default" C3.3 OpenStack Installation and Configuration (Chef) 1 Chef를활용한 Openstack Chef를활용해서 OF@TEIN 프로젝트에활용할 Node 탬플릿을구성한다. 그후그구성한템플릿을활용자동으로해당노드에 Openstack을설치할수있도록한다. 2 Install Chef Server $ apt-get install git curl vim y 3 Chef server 및 chef work station 설치 script 실행 # curl -s -L ver.sh \ bash 4 Rackspace Private Cloud Cookbooks 설치 # curl -s -L ks.sh \ bash 5 Chef Environment 생성 157

169 $ export EDITOR=vi $ knife environment create tein_default -d " tein_default OpenStack Environment" $ knife environment edit tein_default { "name": "tein_default", "description": "", "cookbook_versions": { "smartx-b-box": "= 0.3.0", "smartx-b-capsulator": "= 0.3.0", "smartx-b-config": "= 0.2.0", "smartx-b-worker": "= 0.3.0" }, "json_class": "Chef::Environment", "chef_type": "environment", "default_attributes": { }, "override_attributes": { "nova": { "libvirt": { "virt_type": "kvm" }, "network": { "provider": "quantum", "network_type": "gre" }, "services": { "xvpvnc-proxy": { "network": "public" }, "novnc-proxy": { "network": "public" }, "novnc-server": { "network": "public" } }, "networks": [ { "label": "public", 158

170 "ipv4_cidr": " /24", "dns1": " ", "dns2": " " }, { "label": "private", "ipv4_cidr": " /24", "num_networks": "1", "network_size": "255" } ] }, "quantum": { "ovs": { "network_type": "gre", "tunneling": true, "tunnel_ranges": "1:1000", "integration_bridge": "br-int", "tunnel_bridge": "br-tun", "external_bridge": "br-ex", "external_interface": "eth0" } }, "mysql": { "allow_remote_root": true, "root_network_acl": "%" }, "osops_networks": { "public": " /24", "nova": " /16", "management": " /16" } } } 6 chef-client 설치클라이언트노드에 ssh-key를생성한후 chef server에서다음의명령어를실행 $ ssh-copy-id root@<devicehostname> 159

171 install-chef-client 스크립트다운로드 $ curl -sks hef-client.sh \ > install-chef-client.sh 스크립트권한변경 $ chmod +x install-chef-client.sh install-chef-client 스크립트실행 $./install-chef-client.sh <devicehostname> */etc/hosts 가잘못표시기스크립트오류발생가능 7 client 노드들의환경적용 $ knife exec -E 'nodes.transform("chef_environment:_default") \ ㅇ { n n.chef_environment("tein_default") }' 8 client 노느들 role 적용 $ knife node run_list add <devicehostname> 'role[single-controller]' $ knife node run_list add <devicehostname> 'role[single-compute]' role 적용후 chef-client 실행 * 위의설명은기본적인 Chef 를활용하는방법이며, 현재는 Cobbler 에서전달하는 trigger 에서모든 chef 동작은자동화되어있기에, 별도로 Chef 를설정하거나, 실행할필요는없는상황. 160

172 C4. Experimenting with SmartX Boxes (Type C) C4.1 Web Dashboard (Horizon) OpensStack을관리하기위해서 OpenStack은웹인터페이스인 Horizon web dashboard를지원하고있다. Horizon Dashboard를이용하여 SmartX Box의자원을직관적인 UI를통하여이용및관할수있다. 다음 [ 그림 102] 는 Dashbord에접속하기위한로그인화면을보여준다. 1) 로그인 [ 그림 102] 로그인화면, 자신의아이디 / 비밀번호로 로그인 2) Worker node 생성 161

173 [ 그림 103] 프로젝트초기화면 워크노드를생성하기위해서는 [ 그림 103] 과같이프로젝트초기화면에서인스턴 스들탭을클릭한다. [ 그림 104] 인스턴스들초기화면 이후 [ 그림 104] 와같이 Luanch Instance 버튼을클릭한다. 162

174 [ 그림 105] Access & Security 설정화면 그런다음에 [ 그림 105] 와같이생성되는 Node 의 Access & Security 에대한 그룹을설정해준다. *default 는어떠한접속도허용하지않음으로 Access & Security 에대해서별도로설정해주어야한다. [ 그림 106] Networking 설정화면 다음으로 [ 그림 106] 과같이생성되는 Node의 Networking을설정한다, 1개이상의네트워크에 virtual interface를통하여접근할수있으며생성된 VM은자동으로 Openvswitch에연결된다. *Network에대한설정은별도의 Network탭에서설정가능하다. 163

175 [ 그림 107] Post-Creation 설정화면 [ 그림 107] 은초기에실행될스크립트를기재할수있는설정화면이다. [ 그림 108] Instance 기본설정화면 다음으로 [ 그림 108] 과같이기본설정으로 Node 의이름및생성이미지를선택 한다. 그리고본 Node 가할당받는 Computing resource 는 Flavor 를선택해서조절 한다. 164

176 [ 그림 109] Node 생성과정 [ 그림 109] 의 Node의생성은 Building, Scheduling, Networking, Spawning 순으로진행된다. Build 과정은 Glance에있는 image를 build 하는과정이며, Scheduling은어느 Box로보낼지 nova-scheduler에서미리정의된 scheduling algorithm을활용하여결정하는과정이다. Networking 과정은 node network 정보를결정하는단계이며, Spawning에서실제 Box로 data가전송되어 node를생성한다. [ 그림 110] 인스턴스텝에서 view Log 를클릭 성공적으로 VM 이생성되었는지확인을하기위해서는 [ 그림 110] 과같이인스턴스텝에서 view log 를클리하면 [ 그림 111] 과같이 VM 이성공적으로생성되었다는 log 메시지를확인할 수있다. 165

177 [ 그림 111] 성공적으로 VM 이생성되었을때의 Log 화면 2) Network 설정 [ 그림 112] 네트워크들기본화면 [ 그림 112] 와같이기본적인노드들및가상라우터의토폴로지를확인할수있으 며, [ 그림 113] 과같이쉽게네트워크를한번에생성및설정할수있다. 166

178 [ 그림 113] 네트워크이름설정화면 [ 그림 114] 서브넷설정화면 [ 그림 114] 와같이외부인터넷이가능한 public network 를생성하는경우에는 실제인터넷사용이가능한 public network 대역을할당해주어야한다. ex) /27,gateway

179 [ 그림 115] 서브넷세부설정화면 [ 그림 115] 는서브넷세부설정화면을나타내며, DNA Name Server를정확히설정해주어야 VM들이외부인터넷과연결이가능해진다 (ex: ). VM이외부인터넷과연결되려면 [ 그림 116] 과같이 Public 망에연결된가상네트워크와가상라우터를통하여연결되어야한다. 이를위해서는 Create Router를클릭하여가상라우터를생성한다. [ 그림 116] Routers 기본화면 168

180 [ 그림 117] External Network 설정화면 생성된네트워크를 external network 로설정하려면, [ 그림 117] 과같이관리자탭에서위 와같이네트워크를다시수정해주어야한다. [ 그림 118] Router 생성화면 [ 그림 118] 는라우터생성하면이다. 라우터를생성하여 private네트워크와 public 네트워크를연결할수있다. 이를위해서 [ 그림 119] 와같이 [ 그림 120] 와 [ 그림 121] 과같이라우터의게이트웨어를설정해줘야한다. 이후 [ 그림 122] 과 [ 그림 123] 와같이라우터의인터페이스를설정하면 private네트워크와 public네트워크를연결할수있다. 169

181 [ 그림 119] Routers 기본화면에서생성된 Router 의 gateway 생성 [ 그림 120] public network 중하나를 gateway 로선택 [ 그림 121] router 기본화면 170

182 [ 그림 122] router 에 interface 설정 171

183 C4.2 OpenStack API Server OpenStack 에서제공하는 API 를활용하면 Horizon Web dashboard 보다매우 세밀한설정 (configuration) 이가능하다. 이를위해서다음과같이접근할수있다. 1) worker node 생성 $source openrc OpenStack 에대한기본적인환경변수를선언한다. $nova hypervisor-list Hypervisor 에대한정보를표기한다. [ 그림 123] hypervisor 정보 $nova boot --image " 이미지아이디 (cirros 이미지아이디 ) --flavor 2 --security-groups=default --key-name=default --nic net-id=" 네트워크 아이디 (private)" --availability-zone nova:" 호스트이름 " "vm 이름 " 표기한 Hypervisor 에 worker node 가생성된다. 172

184 C5. Example Experiment: CCNx Media Delivery CCN (content-centric networking) 은네트워크상에검새되거나참조되는자료들의물리적인위치나특성보다는사용자가필요로하는자료자체에집중된통신네트워크이다. CCNx는 CCN의공개개발프로젝트로이름인동시에공개프로그램버전의 CCN 이름이다. 이프로젝트는 CCN의통신구조에대한새로운접근방법에대한평가와개발및장려를하고있다. 본장에서는 OpenStack에생성된가상머신상의게스트OS에 CCNx를설치하여 vlc 플레이어를이용하여비디오스트림전송예를보인다. CCNx를이용한예를위해서는가상머신에게스트 OS 설치, CCNx 설치, vlc 플레이어설치및 CCNx plugin 설치, vlc와 CCNx를이용한비디오스트림전송예제단계로구성된다. 각단계에대한자세한설명은다음과같다 [6]. C5.1 Guest OS Installation CCNx의설치는현재리눅스만을지원하고있다. CCNx 상의동영상스트림을플레이하기위해서는 vlc 동영상플레이어와리눅스의 X-Windows환경을필요로한다. 그러나 vlc 플레이어의경우리눅스가상머신상에설치된리눅스최신버전을지원하지않고있다. 이때문에서본예제의게스트OS는 ubuntu desktop 버전을설치하여사용한다 [7]. [ 그림 124] dashboard 에서 ubuntu 설치 173

185 [ 그림 125] OpenStack VM 에설치된게스트 OS C5.2 CCNx Installation 1) 관련패키지설치 CCNx 를설치하고실행하려면먼저다음과같이패키지들을설치해야한다. $sudo update $sudo apt-get install ant autoconf libssl-dev libexpat1-dev libpcap-dev libecryptfs0 libxml2-utils automake gawk gcc g++ git-core pkg-config libpcre3-dev openjdk-6-jre-lib vlc libvlc-dev CCNx 설치에가장중요한관련패키지는자바이다. 현재 CCNx 설치에지원되는자바로는오라클자바와오픈자바가있다. CCNx 프로젝트에서는이두개의자바버전모두지원한다고하고있으나, 오픈자바의경우 CCNx가잘설치가되지않는문제를가지고있다. 이문제를해결하기위해서는다음과같이오라클자바를다시 174

186 설치해주어야한다. $sudo add-apt-repository ppa:webupd8team/java $sudo apt-get update $sudo apt-get install oracle-java6-installer 다음그림은오라클설치시라이센스동의화면이다. 사용라이센스에 ok 를선택 하여동의하면된다. [ 그림 126] 오라클자바라이센스사용동의화면 우분투를설정하면일반적으로오픈자바가기본적으로설치되어있다. 오픈자바 를오라클자바로변경하려면다음과같이명령어를입력하여 [ 그림 127] 과같이 2 번 을선택하여기본설정을오라클자바로변경한다. $sudo update-alternatives config java 175

187 [ 그림 127] 오픈자바와오라클자바변경을위한선택화면 오라클자바설치가끝났으면, 다음으로사용자계정의환경변수에오라클자바를 사용할수있도록다음과같이경로를설정해야한다. $echo " " >>.bashrc $echo "export JAVA_HOME=/usr/lib/jvm/java-6-oracle/jre" >>.bashrc $echo "export PATH=\$PATH:\$JAVA_HOME/bin" >>.bashrc $source.bashrc 2) CCNx 설치 위의 CCNx 와관련된패키지설치가완료되면 CCNx 사이트 ( 로부 터 CCNx 다음과같이가져온다. $wget $tar xvfz ccnx tar.gz $ln -s ccnx ccnx CCNx 를가져온다음에다음과같이설치한다. [ 그림 128], [ 그림 129], [ 그림 176

188 130] 은 CCNx 를설치하는화면을보여준다. $cd ccnx $sudo./configure $sudo make $sudo make test $sudo make install [ 그림 128] CCNx 의 configure 실행화면 [ 그림 129] CCNx 의 make 실행화면 177

189 [ 그림 130] CCNx 의 make install 실행화면 3) CCNx 실행 CCNx 의설치가완료되면, ccndstart 명령어를이용하여다음과같이실행해보자. ccndstart 을실행시키면 [ 그림 131] 과같이실행결과화면을볼수있다. 이화면을 확인할수있으면 CCNx 는성공적으로설치된것이다. $cd ccnx/bin $./ccndstart 178

190 [ 그림 131] ccndstart 를이용하여 CCNx 구동화면 CCNx 가잘설치되었는가는웹인터페이스 ( 를통해서다음 [ 그림 132] 와같이확인할수있다. [ 그림 132] CCNx Web Interface 실행화면 CCNx 에자료를저장하기위해서는저장소와관련된 ccnr 명령어를다음과같이 실행시켜줘야한다. [ 그림 133] 은 ccnr 명령어실행시보여주는화면이다. $cd ccnx/bin $sudo ccnr 179

191 [ 그림 133] ccnr 명령어를이용하여 CCNx 저장소를활성화 시키는화면 ccnr 명령어를실행시키면 CCNx의저장장소가활성화된다. 활성화된 CCNx의저장장소에 ccnputfile와 ccngetfile명령어를이용하여자료를저장하거나받아올수있다. ccnexplore 명령어를이용하여트리형태로저장된자료를 [ 그림 134] 와같이확인할수있다. [ 그림 134] 에서 parc.com과 ccnx.org는기본으로설정되어있는저장소이며, data는 ccnputfile 명령어를이용하여자료를올리면서새롭게생성된저장소이다. $ccnputfile ccnx:/data/test.txt test.txt $ccnputfile ccnx:/data/m1.wmv m1.wmv $ccnputfile ccnx:/data/m2.wmv m2.wmv $ccngetfile ccnx:/data/test.txt test1.txt $sudo ccnexplore 180

192 [ 그림 134] ccnexplore 를이용하여저장소및저장자료를 트리형태로나타낸화면 인터넷에서 CCNx 을이용하기위해서는자료를받아오는 CCNx 의 IP 를 udp 나 tcp 로접속할수있도록등록해주어야한다. 이를지원하는명령어는 ccndc 명령어 가있으며, 다음과같이사용할수있다. $cd ccnx/bin $ccnd add ccnx:/ udp $ccnd add ccnx:/ tcp 다음은 CCNx 를이용하여채팅을할수있게하는명령어이다. [ 그림 135] 는 ccnchat 명령어를이용하여채팅하는화면을보여준다. $sudo ccnchat ccnx:/test 181

193 [ 그림 135] ccnchat 명령어를이용하여 채팅하는화면 C5.3 vlc Installation CCNx 에저장되비디오자료를볼려면 CCNx 비디오스트림을지원하는 vlc 를설 치하고, vlc 와 CCNx 가연동될수있도록 plugin 을다음과같이설치해야한다. 다음 의내용은 vlc 와 CCNx 간의 plugin 이설치된화면을보여준다. $sudo apt-get install vlc libvlc-dev $cd ccnx/apps $sudo cp Makefile.Linux Makefile $sudo make $sudo make install C5.4 Example of video steam delivery CCNx에저장된비디오자료를스트림으로받아보기위해서는다음과같이 vlc를실행하면된다. 여기서주의할점은 CCNx에일반적으로사용하는장소지정형식인 ccnx:/ 를사용하지않고 ccn:/// 를사용한다는것이다. 즉, 트리플슬레시를이후에자료의저장위치와자료명을지정하면된다. 또한 vlc가실행하기위해서는 root계정이아닌사용자계정을사용해야한다. [ 그림 136] 은 vlc를이용하여비디오스트림을플레이하는화면이다. $vlc ccn:///data/m1.wmv 182

194 [ 그림 136] vlc 를이용한 CCNx 상의비디오자료를 스트림으로플레이하는화면 183

OpenFlow 기반 SDN 네트워킹인프라구축 OpenFlow 기반 SDN 네트워킹인프라구축 문서연혁버전 날짜 저자 ( 들 ) 수정사항 KOREN NOC KOREN NOC 네트워크통합모니터링도구설치및시험보고서

OpenFlow 기반 SDN 네트워킹인프라구축 OpenFlow 기반 SDN 네트워킹인프라구축 문서연혁버전 날짜 저자 ( 들 ) 수정사항 KOREN NOC KOREN NOC 네트워크통합모니터링도구설치및시험보고서 OpenFlow 기반 SDN 네트워킹인프라구축 OpenFlow 기반 SDN 네트워킹인프라구축 문서연혁버전 날짜 저자 ( 들 ) 수정사항 0.1 2012.12.18 KOREN NOC 1.0 2012.12.20 KOREN NOC OF@TEIN Document No. 4 Version 1.0 Date 2012-12-20 Author(s) KOREN NOC 본문서는한국정보화진흥원

More information

Microsoft Word - src.doc

Microsoft Word - src.doc IPTV 서비스탐색및콘텐츠가이드 RI 시스템운용매뉴얼 목차 1. 서버설정방법... 5 1.1. 서비스탐색서버설정... 5 1.2. 컨텐츠가이드서버설정... 6 2. 서버운용방법... 7 2.1. 서비스탐색서버운용... 7 2.1.1. 서비스가이드서버실행... 7 2.1.2. 서비스가이드정보확인... 8 2.1.3. 서비스가이드정보추가... 9 2.1.4. 서비스가이드정보삭제...

More information

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc NTAS and FRAME BUILDER Install Guide NTAS and FRAME BUILDER Version 2.5 Copyright 2003 Ari System, Inc. All Rights reserved. NTAS and FRAME BUILDER are trademarks or registered trademarks of Ari System,

More information

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론 이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론 2. 관련연구 2.1 MQTT 프로토콜 Fig. 1. Topic-based Publish/Subscribe Communication Model. Table 1. Delivery and Guarantee by MQTT QoS Level 2.1 MQTT-SN 프로토콜 Fig. 2. MQTT-SN

More information

Splentec V-WORM Quick Installation Guide Version: 1.0 Contact Information 올리브텍 주소 : 경기도성남시분당구구미로 11 ( 포인트타운 701호 ) URL: E-M

Splentec V-WORM Quick Installation Guide Version: 1.0 Contact Information 올리브텍 주소 : 경기도성남시분당구구미로 11 ( 포인트타운 701호 ) URL:   E-M Splentec V-WORM Quick Installation Guide Version: 1.0 Contact Information 올리브텍 주소 : 경기도성남시분당구구미로 11 ( 포인트타운 701호 ) URL: http://www.olivetech.co.kr E-Mail: tech@olivetech.co.kr TEL: 031-726-4217 FAX: 031-726-4219

More information

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자 SQL Developer Connect to TimesTen 유니원아이앤씨 DB 팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 2010-07-28 작성자 김학준 최종수정일 2010-07-28 문서번호 20100728_01_khj 재개정이력 일자내용수정인버전

More information

PCServerMgmt7

PCServerMgmt7 Web Windows NT/2000 Server DP&NM Lab 1 Contents 2 Windows NT Service Provider Management Application Web UI 3 . PC,, Client/Server Network 4 (1),,, PC Mainframe PC Backbone Server TCP/IP DCS PLC Network

More information

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D313939392D382E687770>

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D313939392D382E687770> i ii iii iv v vi 1 2 3 4 가상대학 시스템의 국내외 현황 조사 가상대학 플랫폼 개발 이상적인 가상대학시스템의 미래상 제안 5 웹-기반 가상대학 시스템 전통적인 교수 방법 시간/공간 제약을 극복한 학습동기 부여 교수의 일방적인 내용전달 교수와 학생간의 상호작용 동료 학생들 간의 상호작용 가상대학 운영 공지사항,강의록 자료실, 메모 질의응답,

More information

Windows 8에서 BioStar 1 설치하기

Windows 8에서 BioStar 1 설치하기 / 콘텐츠 테이블... PC에 BioStar 1 설치 방법... Microsoft SQL Server 2012 Express 설치하기... Running SQL 2012 Express Studio... DBSetup.exe 설정하기... BioStar 서버와 클라이언트 시작하기... 1 1 2 2 6 7 1/11 BioStar 1, Windows 8 BioStar

More information

Network Security - Wired Sniffing 실습 ICNS Lab. Kyung Hee University

Network Security - Wired Sniffing 실습 ICNS Lab. Kyung Hee University Network Security - Wired Sniffing 실습 ICNS Lab. Kyung Hee University Outline Network Network 구조 Source-to-Destination 간 packet 전달과정 Packet Capturing Packet Capture 의원리 Data Link Layer 의동작 Wired LAN Environment

More information

DE1-SoC Board

DE1-SoC Board 실습 1 개발환경 DE1-SoC Board Design Tools - Installation Download & Install Quartus Prime Lite Edition http://www.altera.com/ Quartus Prime (includes Nios II EDS) Nios II Embedded Design Suite (EDS) is automatically

More information

PWR PWR HDD HDD USB USB Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl Cable PC PC DDNS (

PWR PWR HDD HDD USB USB Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl Cable PC PC DDNS ( PWR PWR HDD HDD USB USB Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl Cable PC PC DDNS (http://ddns.hanwha-security.com) Step 1~5. Step, PC, DVR Step 1. Cable Step

More information

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 Eclipse (IDE) JDK Android SDK with ADT IDE: Integrated Development Environment JDK: Java Development Kit (Java SDK) ADT: Android Development Tools 2 JDK 설치 Eclipse

More information

USB USB DV25 DV25 REC SRN-475S REC SRN-475S LAN POWER LAN POWER Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl C

USB USB DV25 DV25 REC SRN-475S REC SRN-475S LAN POWER LAN POWER Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl C USB USB DV25 DV25 REC SRN-475S REC SRN-475S LAN POWER LAN POWER Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl Cable PC PC Step 1~5. Step, PC, DVR Step 1. Cable Step

More information

vm-웨어-01장

vm-웨어-01장 Chapter 16 21 (Agenda). (Green),., 2010. IT IT. IT 2007 3.1% 2030 11.1%, IT 2007 1.1.% 2030 4.7%, 2020 4 IT. 1 IT, IT. (Virtualization),. 2009 /IT 2010 10 2. 6 2008. 1970 MIT IBM (Mainframe), x86 1. (http

More information

Install stm32cubemx and st-link utility

Install stm32cubemx and st-link utility STM32CubeMX and ST-LINK Utility for STM32 Development 본문서는 ST Microelectronics 의 ARM Cortex-M 시리즈 Microcontroller 개발을위해제공되는 STM32CubeMX 와 STM32 ST-LINK Utility 프로그램의설치과정을설명합니다. 본문서는 Microsoft Windows 7

More information

1217 WebTrafMon II

1217 WebTrafMon II (1/28) (2/28) (10 Mbps ) Video, Audio. (3/28) 10 ~ 15 ( : telnet, ftp ),, (4/28) UDP/TCP (5/28) centralized environment packet header information analysis network traffic data, capture presentation network

More information

슬라이드 1

슬라이드 1 전자정부개발프레임워크 1 일차실습 LAB 개발환경 - 1 - 실습목차 LAB 1-1 프로젝트생성실습 LAB 1-2 Code Generation 실습 LAB 1-3 DBIO 실습 ( 별첨 ) LAB 1-4 공통컴포넌트생성및조립도구실습 LAB 1-5 템플릿프로젝트생성실습 - 2 - LAB 1-1 프로젝트생성실습 (1/2) Step 1-1-01. 구현도구에서 egovframe>start>new

More information

(SW3704) Gingerbread Source Build & Working Guide

(SW3704) Gingerbread Source Build & Working Guide (Mango-M32F4) Test Guide http://www.mangoboard.com/ http://cafe.naver.com/embeddedcrazyboys Crazy Embedded Laboratory www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 1 Document History

More information

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O Orange for ORACLE V4.0 Installation Guide ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE...1 1....2 1.1...2 1.2...2 1.2.1...2 1.2.2 (Online Upgrade)...11 1.3 ORANGE CONFIGURATION ADMIN...12 1.3.1 Orange Configuration

More information

ISP and CodeVisionAVR C Compiler.hwp

ISP and CodeVisionAVR C Compiler.hwp USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler http://www.avrmall.com/ November 12, 2007 Copyright (c) 2003-2008 All Rights Reserved. USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler

More information

01장

01장 뇌를자극하는 Windows Server 2012 R2 부록 NAS4Free 의설치와환경설정 네트워크상에서저장공간이제공되는 NAS(Network Attached Storage) 환경을 VMware에서구성해야한다. 이책에서는그중 Unix 계열의운영체제이며무료로사용할수있는 NAS4Free 운영체제를설치하고사용할것이다. 결국지금설치하는 NAS4Free는쿼럼디스크와클러스터디스크를제공하는것이목적이다.

More information

본교재는수업용으로제작된게시물입니다. 영리목적으로사용할경우저작권법제 30 조항에의거법적처벌을받을수있습니다. [ 실습 ] 스위치장비초기화 1. NVRAM 에저장되어있는 'startup-config' 파일이있다면, 삭제를실시한다. SWx>enable SWx#erase sta

본교재는수업용으로제작된게시물입니다. 영리목적으로사용할경우저작권법제 30 조항에의거법적처벌을받을수있습니다. [ 실습 ] 스위치장비초기화 1. NVRAM 에저장되어있는 'startup-config' 파일이있다면, 삭제를실시한다. SWx>enable SWx#erase sta [ 실습 ] 스위치장비초기화 1. NVRAM 에저장되어있는 'startup-config' 파일이있다면, 삭제를실시한다. SWx>enable SWx#erase startup-config Erasing the nvram filesystem will remove all configuration files Continue? [confirm] ( 엔터 ) [OK] Erase

More information

Remote UI Guide

Remote UI Guide Remote UI KOR Remote UI Remote UI PDF Adobe Reader/Adobe Acrobat Reader. Adobe Reader/Adobe Acrobat Reader Adobe Systems Incorporated.. Canon. Remote UI GIF Adobe Systems Incorporated Photoshop. ..........................................................

More information

슬라이드 1

슬라이드 1 - 1 - 전자정부모바일표준프레임워크실습 LAB 개발환경 실습목차 LAB 1-1 모바일프로젝트생성실습 LAB 1-2 모바일사이트템플릿프로젝트생성실습 LAB 1-3 모바일공통컴포넌트생성및조립도구실습 - 2 - LAB 1-1 모바일프로젝트생성실습 (1/2) Step 1-1-01. 구현도구에서 egovframe>start>new Mobile Project 메뉴를선택한다.

More information

chapter4

chapter4 Basic Netw rk 1. ก ก ก 2. 3. ก ก 4. ก 2 1. 2. 3. 4. ก 5. ก 6. ก ก 7. ก 3 ก ก ก ก (Mainframe) ก ก ก ก (Terminal) ก ก ก ก ก ก ก ก 4 ก (Dumb Terminal) ก ก ก ก Mainframe ก CPU ก ก ก ก 5 ก ก ก ก ก ก ก ก ก ก

More information

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드]

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드] Google Map View 구현 학습목표 교육목표 Google Map View 구현 Google Map 지원 Emulator 생성 Google Map API Key 위도 / 경도구하기 위도 / 경도에따른 Google Map View 구현 Zoom Controller 구현 Google Map View (1) () Google g Map View 기능 Google

More information

기존에 Windchill Program 이 설치된 Home Directory 를 선택해준다. 프로그램설치후설치내역을확인해보면 Adobe Acrobat 6.0 Support 내역을확인할수 있다.

기존에 Windchill Program 이 설치된 Home Directory 를 선택해준다. 프로그램설치후설치내역을확인해보면 Adobe Acrobat 6.0 Support 내역을확인할수 있다. PDMLink 에등록된 Office 문서들의 PDF 문서변환기능및 Viewer 기능을알아보자 PDM Link에서지원하는 [Product View Document Support] 기능은 Windows-Base 기반의 Microsoft Office 문서들을 PDMLink용 Viewer인 Product View를통한읽기가가능한 PDF Format 으로변환하는기능이다.

More information

SBR-100S User Manual

SBR-100S User Manual ( 1 / 13 ) SBR-100S 모델에 대한 사용자 펌웨어 업그레이드 방법을 안내해 드립니다. SBR-100S 는 신규 펌웨어가 있을시 FOTA(자동업데이트) 기능을 통하여 자동 업그레이드가 되며, 필요시 사용자가 신규 펌웨어를 다운받아 수동으로 업그레이드 할 수 있습니다. 1. 준비하기 1.1 연결 장치 준비 펌웨어 업그레이드를 위해서는 SBR-100S

More information

아래 항목은 최신( ) 이미지를 모두 제대로 설치하였을 때를 가정한다

아래 항목은 최신( ) 이미지를 모두 제대로 설치하였을 때를 가정한다 공유기사용환경에서 MNC-V100 환경설정하기 다음설명은 AnyGate GW-400A (Http://www.anygate.co.kr) 를사용하는네트워크환경에서 MNC-V100 을연결하여사용하는법을설명합니다. 공유기내부네트워크환경설정공유기를사용하는환경에서공유기의설정을아래그림과같이설정하시면 MNC-V100의설정을변경하지않아도모비캠과연결할수있습니다. ( 공유기의환경을변경하기어려운경우에는

More information

서현수

서현수 Introduction to TIZEN SDK UI Builder S-Core 서현수 2015.10.28 CONTENTS TIZEN APP 이란? TIZEN SDK UI Builder 소개 TIZEN APP 개발방법 UI Builder 기능 UI Builder 사용방법 실전, TIZEN APP 개발시작하기 마침 TIZEN APP? TIZEN APP 이란? Mobile,

More information

<4D F736F F D D31312D30312D53572D30312DBBE7BFEBC0DABCB3B8EDBCAD5FBFDCBACEB9E8C6F7BFEB2E646F63>

<4D F736F F D D31312D30312D53572D30312DBBE7BFEBC0DABCB3B8EDBCAD5FBFDCBACEB9E8C6F7BFEB2E646F63> SAM4S Printer Driver Installer 달리명시하지않은한, 인쇄또는복사된문서는통제하지않는문서임 목 차 1. 1. WINDOWS DRIVER INSTALLER 설치 설치...... 2 2. 프린터추가...... 5 3. 프린터제거...... 19 4. 프린터추가 / 제거선택...... 21 5. 프로그램추가 / 제거...... 21 SHC- 11-01-

More information

Raspbian 설치 라즈비안 OS (Raspbian OS) 라즈베리파이 3 Model B USB 마우스 USB 키보드 마이크로 SD 카드 마이크로 SD 카드리더기 HDM I 케이블모니터

Raspbian 설치 라즈비안 OS (Raspbian OS) 라즈베리파이 3 Model B USB 마우스 USB 키보드 마이크로 SD 카드 마이크로 SD 카드리더기 HDM I 케이블모니터 운영체제실습 Raspbian 설치 2017. 3 표월성 wspyo74@naver.com cherub.sungkyul.ac.kr 목차 Ⅰ. 설치 1. 라즈비안 (Raspbian 설치 ) 2. 설치후, 설정 설정사항 Raspbian 설치 라즈비안 OS (Raspbian OS) 라즈베리파이 3 Model B USB 마우스 USB 키보드 마이크로 SD 카드 마이크로

More information

untitled

untitled Push... 2 Push... 4 Push... 5 Push... 13 Push... 15 1 FORCS Co., LTD A Leader of Enterprise e-business Solution Push (Daemon ), Push Push Observer. Push., Observer. Session. Thread Thread. Observer ID.

More information

1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation

1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation 1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation Board(EVB B/D) 들과 TCP/IP Protocol로연결되며, 연결된 TCP/IP

More information

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 개발환경구조및설치순서 JDK 설치 Eclipse 설치 안드로이드 SDK 설치 ADT(Androd Development Tools) 설치 AVD(Android Virtual Device) 생성 Hello Android! 2 Eclipse (IDE) JDK Android SDK with

More information

10X56_NWG_KOR.indd

10X56_NWG_KOR.indd 디지털 프로젝터 X56 네트워크 가이드 이 제품을 구입해 주셔서 감사합니다. 본 설명서는 네트워크 기능 만을 설명하기 위한 것입니다. 본 제품을 올바르게 사 용하려면 이 취급절명저와 본 제품의 다른 취급절명저를 참조하시기 바랍니다. 중요한 주의사항 이 제품을 사용하기 전에 먼저 이 제품에 대한 모든 설명서를 잘 읽어 보십시오. 읽은 뒤에는 나중에 필요할 때

More information

VPN.hwp

VPN.hwp Linksys VPN Router RV042&RV082 VPN Router 용 VPN 터널설정 한국어사용자설명서 V1.0 Table of Content 1 Gateway to Gateway 설정... 1 STEP 1 - Gateway to Gateway 터널생성하기... 1 STEP 2 - 터널정보입력하기... 1 STEP 3 - Gateway to Gateway

More information

Cloud Friendly System Architecture

Cloud Friendly System Architecture -Service Clients Administrator 1. -Service 구성도 : ( 좌측참고 ) LB(LoadBlancer) 2. -Service 개요 ucloud Virtual Router F/W Monitoring 개념 특징 적용가능분야 Server, WAS, DB 로구성되어 web service 를클라우드환경에서제공하기위한 service architecture

More information

2 PX-8000과 RM-8000/LM-8000등의 관련 제품은 시스템의 간편한 설치와 쉬운 운영에 대한 고급 기술을 제공합니다. 또한 뛰어난 확장성으로 사용자가 요구하는 시스템을 손쉽게 구현할 수 있습니다. 메인컨트롤러인 PX-8000의 BGM입력소스를 8개의 로컬지

2 PX-8000과 RM-8000/LM-8000등의 관련 제품은 시스템의 간편한 설치와 쉬운 운영에 대한 고급 기술을 제공합니다. 또한 뛰어난 확장성으로 사용자가 요구하는 시스템을 손쉽게 구현할 수 있습니다. 메인컨트롤러인 PX-8000의 BGM입력소스를 8개의 로컬지 PX-8000 SYSTEM 8 x 8 Audio Matrix with Local Control 2 PX-8000과 RM-8000/LM-8000등의 관련 제품은 시스템의 간편한 설치와 쉬운 운영에 대한 고급 기술을 제공합니다. 또한 뛰어난 확장성으로 사용자가 요구하는 시스템을 손쉽게 구현할 수 있습니다. 메인컨트롤러인 PX-8000의 BGM입력소스를 8개의 로컬지역에

More information

Copyright 2012, Oracle and/or its affiliates. All rights reserved.,.,,,,,,,,,,,,.,...,. U.S. GOVERNMENT END USERS. Oracle programs, including any oper

Copyright 2012, Oracle and/or its affiliates. All rights reserved.,.,,,,,,,,,,,,.,...,. U.S. GOVERNMENT END USERS. Oracle programs, including any oper Windows Netra Blade X3-2B( Sun Netra X6270 M3 Blade) : E37790 01 2012 9 Copyright 2012, Oracle and/or its affiliates. All rights reserved.,.,,,,,,,,,,,,.,...,. U.S. GOVERNMENT END USERS. Oracle programs,

More information

Agenda 오픈소스 트렌드 전망 Red Hat Enterprise Virtualization Red Hat Enterprise Linux OpenStack Platform Open Hybrid Cloud

Agenda 오픈소스 트렌드 전망 Red Hat Enterprise Virtualization Red Hat Enterprise Linux OpenStack Platform Open Hybrid Cloud 오픈소스 기반 레드햇 클라우드 기술 Red Hat, Inc. Senior Solution Architect 최원영 부장 wchoi@redhat.com Agenda 오픈소스 트렌드 전망 Red Hat Enterprise Virtualization Red Hat Enterprise Linux OpenStack Platform Open Hybrid Cloud Red

More information

목차 제 1 장 inexio Touch Driver소개... 3 1.1 소개 및 주요 기능... 3 1.2 제품사양... 4 제 2 장 설치 및 실행... 5 2.1 설치 시 주의사항... 5 2.2 설치 권고 사양... 5 2.3 프로그램 설치... 6 2.4 하드웨

목차 제 1 장 inexio Touch Driver소개... 3 1.1 소개 및 주요 기능... 3 1.2 제품사양... 4 제 2 장 설치 및 실행... 5 2.1 설치 시 주의사항... 5 2.2 설치 권고 사양... 5 2.3 프로그램 설치... 6 2.4 하드웨 최종 수정일: 2010.01.15 inexio 적외선 터치스크린 사용 설명서 [Notes] 본 매뉴얼의 정보는 예고 없이 변경될 수 있으며 사용된 이미지가 실제와 다를 수 있습니다. 1 목차 제 1 장 inexio Touch Driver소개... 3 1.1 소개 및 주요 기능... 3 1.2 제품사양... 4 제 2 장 설치 및 실행... 5 2.1 설치 시

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Reasons for Poor Performance Programs 60% Design 20% System 2.5% Database 17.5% Source: ORACLE Performance Tuning 1 SMS TOOL DBA Monitoring TOOL Administration TOOL Performance Insight Backup SQL TUNING

More information

Voice Portal using Oracle 9i AS Wireless

Voice Portal using Oracle 9i AS Wireless Voice Portal Platform using Oracle9iAS Wireless 20020829 Oracle Technology Day 1 Contents Introduction Voice Portal Voice Web Voice XML Voice Portal Platform using Oracle9iAS Wireless Voice Portal Video

More information

The Self-Managing Database : Automatic Health Monitoring and Alerting

The Self-Managing Database : Automatic Health Monitoring and Alerting The Self-Managing Database : Automatic Health Monitoring and Alerting Agenda Oracle 10g Enterpirse Manager Oracle 10g 3 rd Party PL/SQL API Summary (Self-Managing Database) ? 6% 6% 12% 55% 6% Source: IOUG

More information

Microsoft Word - Armjtag_문서1.doc

Microsoft Word - Armjtag_문서1.doc ARM JTAG (wiggler 호환 ) 사용방법 ( IAR EWARM 에서 ARM-JTAG 로 Debugging 하기 ) Test Board : AT91SAM7S256 IAR EWARM : Kickstart for ARM ARM-JTAG : ver 1.0 ( 씨링크테크 ) 1. IAR EWARM (Kickstart for ARM) 설치 2. Macraigor

More information

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일 Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 Introduce Me!!! Job Jeju National University Student Ubuntu Korean Jeju Community Owner E-Mail: ned3y2k@hanmail.net Blog: http://ned3y2k.wo.tc Facebook: http://www.facebook.com/gyeongdae

More information

4S 1차년도 평가 발표자료

4S 1차년도 평가 발표자료 모바일 S/W 프로그래밍 안드로이드개발환경설치 2012.09.05. 오병우 모바일공학과 JDK (Java Development Kit) SE (Standard Edition) 설치순서 Eclipse ADT (Android Development Tool) Plug-in Android SDK (Software Development Kit) SDK Components

More information

Microsoft Word - windows server 2003 수동설치_non pro support_.doc

Microsoft Word - windows server 2003 수동설치_non pro support_.doc Windows Server 2003 수동 설치 가이드 INDEX 운영체제 설치 준비과정 1 드라이버를 위한 플로피 디스크 작성 2 드라이버를 위한 USB 메모리 작성 7 운영체제 설치 과정 14 Boot Sequence 변경 14 컨트롤러 드라이버 수동 설치 15 운영체제 설치 17 운영체제 설치 준비 과정 Windows Server 2003 에는 기본적으로

More information

歯이시홍).PDF

歯이시홍).PDF cwseo@netsgo.com Si-Hong Lee duckling@sktelecom.com SK Telecom Platform - 1 - 1. Digital AMPS CDMA (IS-95 A/B) CDMA (cdma2000-1x) IMT-2000 (IS-95 C) ( ) ( ) ( ) ( ) - 2 - 2. QoS Market QoS Coverage C/D

More information

Interstage5 SOAP서비스 설정 가이드

Interstage5 SOAP서비스 설정 가이드 Interstage 5 Application Server ( Solaris ) SOAP Service Internet Sample Test SOAP Server Application SOAP Client Application CORBA/SOAP Server Gateway CORBA/SOAP Gateway Client INTERSTAGE SOAP Service

More information

Mango-IMX6Q mfgtool을 이용한 이미지 Write하기

Mango-IMX6Q mfgtool을 이용한 이미지 Write하기 Mango-IMX6Q mfgtool 을 이용한이미지 Write 하기 http://www.mangoboard.com/ http://cafe.naver.com/embeddedcrazyboys Crazy Embedded Laboratory www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 1 Document

More information

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우.

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우. 소프트웨어매뉴얼 윈도우드라이버 Rev. 3.03 SLP-TX220 / TX223 SLP-TX420 / TX423 SLP-TX400 / TX403 SLP-DX220 / DX223 SLP-DX420 / DX423 SLP-DL410 / DL413 SLP-T400 / T403 SLP-T400R / T403R SLP-D220 / D223 SLP-D420 / D423

More information

< 목차 > Ⅰ. 개요 3 Ⅱ. 실시간스팸차단리스트 (RBL) ( 간편설정 ) 4 1. 메일서버 (Exchange Server 2007) 설정변경 4 2. 스팸차단테스트 10

< 목차 > Ⅰ. 개요 3 Ⅱ. 실시간스팸차단리스트 (RBL) ( 간편설정 ) 4 1. 메일서버 (Exchange Server 2007) 설정변경 4 2. 스팸차단테스트 10 (https://www.kisarbl.or.kr) < 목차 > Ⅰ. 개요 3 Ⅱ. 실시간스팸차단리스트 (RBL) ( 간편설정 ) 4 1. 메일서버 (Exchange Server 2007) 설정변경 4 2. 스팸차단테스트 10 Ⅰ. 개요 실시간스팸차단리스트 (RBL) 는메일서버를운영하는누구나손쉽게효과적으로스팸수신을차단하는데이용할수있도록한국인터넷진흥원 (KISA)

More information

server name>/arcgis/rest/services server name>/<web adaptor name>/rest/services ArcGIS 10.1 for Server System requirements - 지

server name>/arcgis/rest/services  server name>/<web adaptor name>/rest/services ArcGIS 10.1 for Server System requirements - 지 ArcGIS for Server (Windows) 설치가이드 ArcGIS 10.2 for Server 설치변경사항 1 설치 간편해진설치 -.Net Framework나 Java Runtime 요구하지않음 - 웹서버 (IIS, WebSphere ) 와별도로분리되어순수하게웹서비스기반의 GIS 서버역할 - ArcGIS Server 계정을이용한서비스운영. 더이상 SOM,

More information

Special Theme _ 모바일웹과 스마트폰 본 고에서는 모바일웹에서의 단말 API인 W3C DAP (Device API and Policy) 의 표준 개발 현황에 대해서 살펴보고 관 련하여 개발 중인 사례를 통하여 이해를 돕고자 한다. 2. 웹 애플리케이션과 네이

Special Theme _ 모바일웹과 스마트폰 본 고에서는 모바일웹에서의 단말 API인 W3C DAP (Device API and Policy) 의 표준 개발 현황에 대해서 살펴보고 관 련하여 개발 중인 사례를 통하여 이해를 돕고자 한다. 2. 웹 애플리케이션과 네이 모바일웹 플랫폼과 Device API 표준 이강찬 TTA 유비쿼터스 웹 응용 실무반(WG6052)의장, ETRI 선임연구원 1. 머리말 현재 소개되어 이용되는 모바일 플랫폼은 아이폰, 윈 도 모바일, 안드로이드, 심비안, 모조, 리모, 팜 WebOS, 바다 등이 있으며, 플랫폼별로 버전을 고려하면 그 수 를 열거하기 힘들 정도로 다양하게 이용되고 있다. 이

More information

歯I-3_무선통신기반차세대망-조동호.PDF

歯I-3_무선통신기반차세대망-조동호.PDF KAIST 00-03-03 / #1 1. NGN 2. NGN 3. NGN 4. 5. 00-03-03 / #2 1. NGN 00-03-03 / #3 1.1 NGN, packet,, IP 00-03-03 / #4 Now: separate networks for separate services Low transmission delay Consistent availability

More information

[Brochure] KOR_TunA

[Brochure] KOR_TunA LG CNS LG CNS APM (TunA) LG CNS APM (TunA) 어플리케이션의 성능 개선을 위한 직관적이고 심플한 APM 솔루션 APM 이란? Application Performance Management 란? 사용자 관점 그리고 비즈니스 관점에서 실제 서비스되고 있는 어플리케이션의 성능 관리 체계입니다. 이를 위해서는 신속한 장애 지점 파악 /

More information

MF5900 Series MF Driver Installation Guide

MF5900 Series MF Driver Installation Guide 한국어 MF 드라이버설치설명서 사용자소프트웨어 CD-ROM................................................ 1.................................................................... 1..............................................................................

More information

1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml 파일을텍스트에디터를이용하여 Open 합니다. config.xml 파일에서, 아

1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml 파일을텍스트에디터를이용하여 Open 합니다. config.xml 파일에서, 아 LG U+ SMS/MMS 통합클라이언트 LG U+ SMS/MMS Client Simple Install Manual LG U+ SMS/MMS 통합클라이언트 - 1 - 간단설치매뉴얼 1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml

More information

Chapter 1

Chapter 1 3 Oracle 설치 Objectives Download Oracle 11g Release 2 Install Oracle 11g Release 2 Download Oracle SQL Developer 4.0.3 Install Oracle SQL Developer 4.0.3 Create a database connection 2 Download Oracle 11g

More information

<4D F736F F F696E74202D C61645FB3EDB8AEC7D5BCBA20B9D720C5F8BBE7BFEBB9FD2E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D C61645FB3EDB8AEC7D5BCBA20B9D720C5F8BBE7BFEBB9FD2E BC8A3C8AF20B8F0B5E55D> VHDL 프로그래밍 D. 논리합성및 Xilinx ISE 툴사용법 학습목표 Xilinx ISE Tool 을이용하여 Xilinx 사에서지원하는해당 FPGA Board 에맞는논리합성과정을숙지 논리합성이가능한코드와그렇지않은코드를구분 Xilinx Block Memory Generator를이용한 RAM/ ROM 생성하는과정을숙지 2/31 Content Xilinx ISE

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Deep Learning 작업환경조성 & 사용법 ISL 안재원 Ubuntu 설치 작업환경조성 접속방법 사용예시 2 - ISO file Download www.ubuntu.com Ubuntu 설치 3 - Make Booting USB Ubuntu 설치 http://www.pendrivelinux.com/universal-usb-installer-easy-as-1-2-3/

More information

PowerPoint Template

PowerPoint Template JavaScript 회원정보 입력양식만들기 HTML & JavaScript Contents 1. Form 객체 2. 일반적인입력양식 3. 선택입력양식 4. 회원정보입력양식만들기 2 Form 객체 Form 객체 입력양식의틀이되는 태그에접근할수있도록지원 Document 객체의하위에위치 속성들은모두 태그의속성들의정보에관련된것

More information

Microsoft PowerPoint - AME_InstallRoutine_ver8.ppt

Microsoft PowerPoint - AME_InstallRoutine_ver8.ppt AMESim Install Routine and License Manager Tel : +82-31-608-0434 Fax : +82-31-608-0439 E-mail :support@shinho-systems.co.kr http://www.shinho-systems.co.kr Ssangyong IT Twin Tower 702, Sandaewon-dong,

More information

소개 TeraStation 을 구입해 주셔서 감사합니다! 이 사용 설명서는 TeraStation 구성 정보를 제공합니다. 제품은 계속 업데이트되므로, 이 설명서의 이미지 및 텍스트는 사용자가 보유 중인 TeraStation 에 표시 된 이미지 및 텍스트와 약간 다를 수

소개 TeraStation 을 구입해 주셔서 감사합니다! 이 사용 설명서는 TeraStation 구성 정보를 제공합니다. 제품은 계속 업데이트되므로, 이 설명서의 이미지 및 텍스트는 사용자가 보유 중인 TeraStation 에 표시 된 이미지 및 텍스트와 약간 다를 수 사용 설명서 TeraStation Pro II TS-HTGL/R5 패키지 내용물: 본체 (TeraStation) 이더넷 케이블 전원 케이블 TeraNavigator 설치 CD 사용 설명서 (이 설명서) 제품 보증서 www.buffalotech.com 소개 TeraStation 을 구입해 주셔서 감사합니다! 이 사용 설명서는 TeraStation 구성 정보를

More information

BY-FDP-4-70.hwp

BY-FDP-4-70.hwp RS-232, RS485 FND Display Module BY-FDP-4-70-XX (Rev 1.0) - 1 - 1. 개요. 본 Display Module은 RS-232, RS-485 겸용입니다. Power : DC24V, DC12V( 주문사양). Max Current : 0.6A 숫자크기 : 58mm(FND Size : 70x47mm 4 개) RS-232,

More information

품질검증분야 Stack 통합 Test 결과보고서 [ The Bug Genie ]

품질검증분야 Stack 통합 Test 결과보고서 [ The Bug Genie ] 품질검증분야 Stack 통합 Test 결과보고서 [ The Bug Genie ] 2014. 10. 목 차 I. Stack 통합테스트개요 1 1. 목적 1 II. 테스트대상소개 2 1. The Bug Genie 소개 2 2. The Bug Genie 주요기능 3 3. The Bug Genie 시스템요구사항및주의사항 5 III. Stack 통합테스트 7 1. 테스트환경

More information

thesis

thesis CORBA TMN Surveillance System DPNM Lab, GSIT, POSTECH Email: mnd@postech.ac.kr Contents Motivation & Goal Related Work CORBA TMN Surveillance System Implementation Conclusion & Future Work 2 Motivation

More information

1) 인증서만들기 ssl]# cat >www.ucert.co.kr.pem // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

1) 인증서만들기 ssl]# cat   >www.ucert.co.kr.pem // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키 Lighttpd ( 멀티도메인 ) SSL 인증서신규설치가이드. [ 고객센터 ] 한국기업보안. 유서트기술팀 1) 인증서만들기 [root@localhost ssl]# cat www.ucert.co.kr.key www.ucert.co.kr.crt >www.ucert.co.kr.pem // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat

More information

K7VT2_QIG_v3

K7VT2_QIG_v3 1......... 2 3..\ 4 5 [R] : Enter Raid setup utility 6 Press[A]keytocreateRAID RAID Type: JBOD RAID 0 RAID 1: 2 7 " RAID 0 Auto Create Manual Create: 2 RAID 0 Block Size: 16K 32K

More information

vm-웨어-앞부속

vm-웨어-앞부속 VMware vsphere 4 This document was created using the official VMware icon and diagram library. Copyright 2009 VMware, Inc. All rights reserved. This product is protected by U.S. and international copyright

More information

Assign an IP Address and Access the Video Stream - Installation Guide

Assign an IP Address and Access the Video Stream - Installation Guide 설치 안내서 IP 주소 할당 및 비디오 스트림에 액세스 책임 본 문서는 최대한 주의를 기울여 작성되었습니다. 잘못되거나 누락된 정보가 있는 경우 엑시스 지사로 알려 주시기 바랍니다. Axis Communications AB는 기술적 또는 인쇄상의 오류에 대해 책 임을 지지 않으며 사전 통지 없이 제품 및 설명서를 변경할 수 있습니다. Axis Communications

More information

System Recovery 사용자 매뉴얼

System Recovery 사용자 매뉴얼 Samsung OS Recovery Solution 을이용하여간편하게 MagicInfo 의네트워크를설정하고시스템을백업및복원할수있습니다. 시스템시작시리모컨의 - 버튼이나키보드의 F3 키를연속해서누르면복구모드로진입한후 Samsung OS Recovery Solution 이실행됩니다. Samsung OS Recovery Solution 은키보드와리모컨을사용하여조작할수있습니다.

More information

Solaris Express Developer Edition

Solaris Express Developer Edition Solaris Express Developer Edition : 2008 1 Solaris TM Express Developer Edition Solaris OS. Sun / Solaris, Java, Web 2.0,,. Developer Solaris Express Developer Edition System Requirements. 768MB. SPARC

More information

메일서버등록제(SPF) 인증기능적용안내서 (Exchange Windows 2000) OS Mail Server SPF 적용모듈 작성기준 Windows Server 2000 Exchange Server 2003 GFI MailEssentials 14 for

메일서버등록제(SPF) 인증기능적용안내서 (Exchange Windows 2000) OS Mail Server SPF 적용모듈 작성기준 Windows Server 2000 Exchange Server 2003 GFI MailEssentials 14 for 메일서버등록제(SPF) 인증기능적용안내서 (Exchange 2003 - Windows 2000) OS Mail Server SPF 적용모듈 작성기준 Windows Server 2000 Exchange Server 2003 GFI MailEssentials 14 for Exchange 2016 년 6 월 - 1 - 목 차 I. 개요 1 1. SPF( 메일서버등록제)

More information

. PC PC 3 [ ] [ ], [ ] [ ] [ ] 3 [ ] [ ], 4 [ ] [ ], 4 [Internet Protocol Version 4 (TCP/IPv4)] 5 [ ] 6 [ IP (O)], [ DNS (B)] 7 [ ] 한국어 -

. PC PC 3 [ ] [ ], [ ] [ ] [ ] 3 [ ] [ ], 4 [ ] [ ], 4 [Internet Protocol Version 4 (TCP/IPv4)] 5 [ ] 6 [ IP (O)], [ DNS (B)] 7 [ ] 한국어 - Quick Network Setup Guide xdsl/cable Modem PC DVR ~3.., PC, DVR. Cable IP Cable/ADSL/ VDSL or 3 4 VIDEO OUT (SPOT) AUDIO IN VGA ALARM OUT COM ALARM IN RS-485 3 4 G G + 3 CONSOLE NETWORK DC V VIDEO IN VIDEO

More information

bn2019_2

bn2019_2 arp -a Packet Logging/Editing Decode Buffer Capture Driver Logging: permanent storage of packets for offline analysis Decode: packets must be decoded to human readable form. Buffer: packets must temporarily

More information

H3050(aap)

H3050(aap) USB Windows 7/ Vista 2 Windows XP English 1 2 3 4 Installation A. Headset B. Transmitter C. USB charging cable D. 3.5mm to USB audio cable - Before using the headset needs to be fully charged. -Connect

More information

FMX M JPG 15MB 320x240 30fps, 160Kbps 11MB View operation,, seek seek Random Access Average Read Sequential Read 12 FMX () 2

FMX M JPG 15MB 320x240 30fps, 160Kbps 11MB View operation,, seek seek Random Access Average Read Sequential Read 12 FMX () 2 FMX FMX 20062 () wwwexellencom sales@exellencom () 1 FMX 1 11 5M JPG 15MB 320x240 30fps, 160Kbps 11MB View operation,, seek seek Random Access Average Read Sequential Read 12 FMX () 2 FMX FMX D E (one

More information

게시판 스팸 실시간 차단 시스템

게시판 스팸 실시간 차단 시스템 오픈 API 2014. 11-1 - 목 차 1. 스팸지수측정요청프로토콜 3 1.1 스팸지수측정요청프로토콜개요 3 1.2 스팸지수측정요청방법 3 2. 게시판스팸차단도구오픈 API 활용 5 2.1 PHP 5 2.1.1 차단도구오픈 API 적용방법 5 2.1.2 차단도구오픈 API 스팸지수측정요청 5 2.1.3 차단도구오픈 API 스팸지수측정결과값 5 2.2 JSP

More information

SLA QoS

SLA QoS SLA QoS 2002. 12. 13 Email: really97@postech.ac.kr QoS QoS SLA POS-SLMS (-Service Level Monitoring System) SLA (Service Level Agreement) SLA SLA TM Forum SLA QoS QoS SLA SLA QoS QoS SLA POS-SLMS ( Service

More information

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과 1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과 학습내용 1. Java Development Kit(JDK) 2. Java API 3. 자바프로그래밍개발도구 (Eclipse) 4. 자바프로그래밍기초 2 자바를사용하려면무엇이필요한가? 자바프로그래밍개발도구 JDK (Java Development Kit) 다운로드위치 : http://www.oracle.com/technetwork/java/javas

More information

15_3oracle

15_3oracle Principal Consultant Corporate Management Team ( Oracle HRMS ) Agenda 1. Oracle Overview 2. HR Transformation 3. Oracle HRMS Initiatives 4. Oracle HRMS Model 5. Oracle HRMS System 6. Business Benefit 7.

More information

4. 스위치재부팅을실시한다. ( 만약, Save 질문이나오면 'no' 를실시한다.) SWx#reload System configuration has been modified. Save? [yes/no]: no Proceed with reload? [confirm] (

4. 스위치재부팅을실시한다. ( 만약, Save 질문이나오면 'no' 를실시한다.) SWx#reload System configuration has been modified. Save? [yes/no]: no Proceed with reload? [confirm] ( [ 실습 ] 스위치장비초기화 1. NVRAM 에저장되어있는 'startup-config' 파일이있다면, 삭제를실시한다. SWx>enable SWx#erase startup-config Erasing the nvram filesystem will remove all configuration files Continue? [confirm] ( 엔터 ) [OK] Erase

More information

Microsoft Word - CPL-TR OM2M.doc

Microsoft Word - CPL-TR OM2M.doc OM2M 오픈소스설치가이드 2014 년 10 월 경북대학교통신프로토콜연구실 강형우 (hwkang0621@gmail.com) 요약 최근사물인터넷 (Internet of Things IoT) 이주요이슈가되고있다. 기존인간중심의통신패러다임에서사물이통신의주체로참여하는 IoT에대한시대가도래될것으로전망되는지금전세계적으로다양한오픈플랫폼을통하여 IoT 서비스들을제공하기위한노력이계속되고있다.

More information

TTA Verified : HomeGateway :, : (NEtwork Testing Team)

TTA Verified : HomeGateway :, : (NEtwork Testing Team) TTA Verified : HomeGateway :, : (NEtwork Testing Team) : TTA-V-N-05-006-CC11 TTA Verified :2006 6 27 : 01 : 2005 7 18 : 2/15 00 01 2005 7 18 2006 6 27 6 7 9 Ethernet (VLAN, QoS, FTP ) (, ) : TTA-V-N-05-006-CC11

More information

운영체제실습_명령어

운영체제실습_명령어 운영체제실습 리눅스네트워크기본개념및설정 서 기옥 Contents 네트워크용어정의 IP 주소 네트워크기본명령어 네트워크관리명령어 네트워크설정파일 telnet 서버설정 네트워크용어정의 네트워크 (Network) : 전자적으로데이터를주고받기위한목적으로연결된 2 개이상의컴퓨터시스템 IP 주소와 Ethernet 주소 IP 주소 : 네트워크에연결된시스템을구분하는소프트웨어적인주소

More information

Microsoft PowerPoint - 2.Catalyst Switch Intrastructure Protection_이충용_V1 0.ppt [호환 모드]

Microsoft PowerPoint - 2.Catalyst Switch Intrastructure Protection_이충용_V1 0.ppt [호환 모드] Catalyst Switch Infrastructure Protection Cisco Systems Korea SE 이충용 (choolee@cisco.com) Overview DoS (Denial of Service) 공격대상 - Server Resource - Network Resource - Network devices (Routers, Firewalls

More information

네트워크연결매뉴얼 SRP-Q300/302 감열식프린터 Rev

네트워크연결매뉴얼 SRP-Q300/302 감열식프린터 Rev 네트워크연결매뉴얼 감열식프린터 Rev. 1.00 http://www.bixolon.com 목차 1. 매뉴얼안내... 3 2. 주의사항... 3 3. 연결방법... 4 3-1 Android Soft AP 모드... 7 3-2 ios Soft AP 모드... 8 3-3 Infrastructure 모드로변경하는방법... 9 4. 설정초기화... 11 Rev. 1.00-2

More information

1. 기술배경 NFV는 Consortium of Service Provider들에의해서만들어졌다. 현재 Network Operation은규모가큰전용 Hardware appliances가계속해서증가하고있다. 새로운 Network Service를 Launching할때마다에

1. 기술배경 NFV는 Consortium of Service Provider들에의해서만들어졌다. 현재 Network Operation은규모가큰전용 Hardware appliances가계속해서증가하고있다. 새로운 Network Service를 Launching할때마다에 Network Function Virtualization 기술동향 2013 년 7 월 29 일 경북대학교통신프로토콜연구실 김우주 kachukun@gmail.com 요약 오늘날네트워크기술은다양한분야에서널리쓰이고있다. 그에따라상황에맞춘전용기술이빠르게개발되고있으며그에필요한전문화된 Network Device들이증가하고있다. 하지만이런현상이가속화되면서전용 Network

More information

표준프레임워크 Nexus 및 CI 환경구축가이드 Version 3.8 Page 1

표준프레임워크 Nexus 및 CI 환경구축가이드 Version 3.8 Page 1 표준프레임워크 Nexus 및 CI 환경구축가이드 Version 3.8 Page 1 Index 1. 표준프레임워크 EGOVCI 팩키지설치... 3 1.1 개요... 3 1.2 EGOVCI 압축풀기... 3 1.3 EGOVCI 시스템구성... 3 1.4 CI 시스템구동 (START/STOP)... 4 2. NEXUS 설정정보... 6 2.1 NEXUS 서버구동

More information

슬라이드 1

슬라이드 1 Software Verification #3 정적분석도구, 단위 / 시스템테스트도구 Software Verification Team 4 강 정 모 송 상 연 신 승 화 1 Software Verification #3 정적분석도구, 단위 / 시스템테스트도구 CONTENTS 01 Overall Structure 02 Static analyzer SonarQube

More information

PowerChute Personal Edition v3.1.0 에이전트 사용 설명서

PowerChute Personal Edition v3.1.0 에이전트 사용 설명서 PowerChute Personal Edition v3.1.0 990-3772D-019 4/2019 Schneider Electric IT Corporation Schneider Electric IT Corporation.. Schneider Electric IT Corporation,,,.,. Schneider Electric IT Corporation..

More information

rmi_박준용_final.PDF

rmi_박준용_final.PDF (RMI) - JSTORM http://wwwjstormpekr (RMI)- Document title: Document file name: Revision number: Issued by: Document Information (RMI)- rmi finaldoc Issue Date: Status:

More information

Backup Exec

Backup Exec (sjin.kim@veritas.com) www.veritas veritas.co..co.kr ? 24 X 7 X 365 Global Data Access.. 100% Storage Used Terabytes 9 8 7 6 5 4 3 2 1 0 2000 2001 2002 2003 IDC (TB) 93%. 199693,000 TB 2000831,000 TB.

More information

컴퓨터과학과 교육목표 컴퓨터과학과의 컴퓨터과학 프로그램은 해당분야 에서 학문적 기술을 창의적으로 연구하고 산업적 기술을 주도적으로 개발하는 우수한 인력을 양성 함과 동시에 직업적 도덕적 책임의식을 갖는 IT인 육성을 교육목표로 한다. 1. 전공 기본 지식을 체계적으로

컴퓨터과학과 교육목표 컴퓨터과학과의 컴퓨터과학 프로그램은 해당분야 에서 학문적 기술을 창의적으로 연구하고 산업적 기술을 주도적으로 개발하는 우수한 인력을 양성 함과 동시에 직업적 도덕적 책임의식을 갖는 IT인 육성을 교육목표로 한다. 1. 전공 기본 지식을 체계적으로 2015년 상명대학교 ICT융합대학 컴퓨터과학과 졸업 프로젝트 전시회 2015 Computer Science Graduate Exhibition 2015 Computer Science Graduate Exhibition 1 컴퓨터과학과 교육목표 컴퓨터과학과의 컴퓨터과학 프로그램은 해당분야 에서 학문적 기술을 창의적으로 연구하고 산업적 기술을 주도적으로 개발하는

More information

Microsoft PowerPoint - Smart CRM v4.0_TM 소개_20160320.pptx

Microsoft PowerPoint - Smart CRM v4.0_TM 소개_20160320.pptx (보험TM) 소개서 2015.12 대표전화 : 070 ) 7405 1700 팩스 : 02 ) 6012 1784 홈 페이지 : http://www.itfact.co.kr 목 차 01. Framework 02. Application 03. 회사 소개 01. Framework 1) Architecture Server Framework Client Framework

More information