Size: px
Start display at page:

Download ""

Transcription

1 NIA Ⅳ-RER / 개방형모바일네트워크테스트베드기술실증시험 Technical Feasibility Test for Open Mobile Network Testbed

2

3 한국정보화진흥원장귀하 본보고서를미래네트워크연구시험망실증시험과제 개방형모바일네트워크 테스트베드기술실증시험 의최종연구개발결과보고서로제출합니다 년 12 월 30 일 주관기관 : 경희대학교산학협력단참여기관 : 고려대학교산학협력단 바른기술총괄책임자 : 홍충선 ( 경희대학교컴퓨터공학과교수 ) 참여연구원 : 강선무 ( 한국정보화진흥원스마트네트워크단단장 ) 김형순 ( 한국정보화진흥원선도망기술부부장 ) 조일권 ( 한국정보화진흥원선도망기술부수석연구원 ) 김상균 ( 한국정보화진흥원선도망기술부수석연구원 ) 조희령 ( 한국정보화진흥원선도망기술부연구원 ) 이성원 ( 경희대학교컴퓨터공학과교수 ) 조응준 ( 경희대학교컴퓨터공학과박사과정 ) 허림 ( 경희대학교컴퓨터공학과박사과정 ) 문승일 ( 경희대학교컴퓨터공학과박사과정 ) Dang Ngoc Minh Duc ( 경희대학교컴퓨터공학과박사과정 ) Pham Chaun ( 경희대학교컴퓨터공학과박사과정 ) Saeed Ulah ( 경희대학교컴퓨터공학과박사과정 ) Thant Zin Oo ( 경희대학교컴퓨터공학과박사과정 ) Le Anh Tuan ( 경희대학교컴퓨터공학과박사과정 ) Golam Rabiul Alam Shahin ( 경희대학교컴퓨터공학과박사과정 ) Vo Thi Luu Phuong ( 경희대학교컴퓨터공학과박사과정 ) Zaw Htike ( 경희대학교컴퓨터공학과박사과정 ) Do the Cuong ( 경희대학교컴퓨터공학과박사과정 ) Rossi Kamal ( 경희대학교컴퓨터공학과박사과정 ) Ngo Tien Dung ( 경희대학교컴퓨터공학과박사과정 ) Kyi Thar ( 경희대학교컴퓨터공학과석사과정 ) 성태진 ( 경희대학교컴퓨터공학과석사과정 ) 권봉용 ( 경희대학교컴퓨터공학과석사과정 ) 장성만 ( 경희대학교컴퓨터공학과석사과정 ) 김동하 ( 경희대학교컴퓨터공학과석사과정 ) 나은총 ( 경희대학교컴퓨터공학과석사과정 )

4 이규선 ( 경희대학교컴퓨터공학과석사과정 ) 김기정 ( 경희대학교컴퓨터공학과석사과정 ) 김희정 ( 경희대학교컴퓨터공학과석사과정 ) 강효성 ( 경희대학교컴퓨터공학과학사과정 ) 이두호 ( 경희대학교컴퓨터공학과학사과정 ) 김성수 ( 경희대학교컴퓨터공학과학사과정 ) 최진식 ( 한양대학교컴퓨터공학과교수 ) Widjaja Delphine ( 한양대학교컴퓨터소프트웨어학과석사과정 ) 신용섭 ( 한양대학교전자컴퓨터통신학과석사과정 ) 장병욱 ( 한양대학교컴퓨터소프트웨어학과석사과정 ) 강성태 ( 한양대학교컴퓨터소프트웨어학과석사과정 ) 최덕재 ( 전남대학교컴퓨터공학과교수 ) Ardiansyah Musa Efendi ( 전남대학교컴퓨터공학과석사과정 ) Muhammad Nugraha ( 전남대학교컴퓨터공학과석사과정 ) 이도경 ( 전남대학교컴퓨터공학과석사과정 ) 방기현 ( 전남대학교컴퓨터공학과석사과정 ) 주홍택 ( 계명대학교컴퓨터공학과교수 ) 권동우 ( 계명대학교컴퓨터공학과박사과정 ) 김현우 ( 계명대학교컴퓨터공학과박사과정 ) 정인식 ( 계명대학교컴퓨터공학과석사과정 ) 조충호 ( 고려대학교컴퓨터정보학과교수 ) 김세진 ( 고려대학교컴퓨터정보학과연구교수 ) 서시오 ( 고려대학교컴퓨터정보학과박사과정 ) 김이강 ( 고려대학교컴퓨터정보학과박사과정 ) 윤석호 ( 고려대학교컴퓨터정보학과박사과정 ) 백승용 ( 고려대학교컴퓨터정보학과박사과정 ) 최승환 ( 고려대학교컴퓨터정보학과박사과정 ) 정주영 ( 고려대학교컴퓨터정보학과석사과정 ) 금도엽 ( 고려대학교컴퓨터정보학과석사과정 ) 장태진 ( 고려대학교컴퓨터정보학과학사과정 ) 이석영 ( 바른기술연구소소장 ) 김새한솔 ( 바른기술연구소연구원 ) - III -

5 - IV -

6 - V -

7 - VI -

8 - VII -

9 - VIII -

10 - IX -

11 - X -

12 - XI -

13 - XII -

14 - XIII -

15 - XIV -

16 - XV -

17 - XVI -

18 - XVII -

19 - XVIII -

20 - XIX -

21 - XX -

22 - XXI -

23 - XXII -

24 - XXIII -

25 - XXIV -

26 - XXV -

27 ρ ρ - XXVI -

28 - XXVII -

29 - XXVIII -

30

31 - 1 -

32 표 1. 개방형모바일네트워크플랫폼관련오픈소스커뮤니티 오픈소스소프트웨어커뮤니티 OpenWrt (WLAN AP) OpenBTS (GSM base-station) OpenBSC (GSM/3GPP AN) osmosgsn (3GPP CN) smoggsn (3GPP CN) GNU Radio (software defined radio) Open vswitch (virtualized switch) Open Source Routing (core network router) Quagga (IP router) OpenFlow (network virtualization) OpenMIH (IEEE MIH) Cacheboy CDN (CDN) CCNx (CCN) OpenNOP (WAN optimization) WANProxy (WAN optimization) TrafficSqueezer (WAN optimization) Linux call router (ISDN PBX) Asterisk (VoIP) OpenStack (Cloud computing platform) OpenStack Melange (Cloud Network control) Open Compute Project (all about data center) - 2 -

33 - 3 -

34 - 4 -

35 - 5 -

36 - 6 -

37 - 7 -

38 - 8 -

39 - 9 -

40 그림 1. 연구과제의최종목표

41 - 11 -

42 - 12 -

43 그림 2. 오픈소스소프트웨어기반개방형모바일네트워크테스트베드

44 그림 3. 오픈소스소프트웨어기반개방형모바일네트워크컴포넌트구성도

45 - 15 -

46 그림 4. MVNO 서비스를위한시스템환경

47 - 17 -

48 표 2. 참여기관별연구내용 주관기관 기관명 담당수행내용 Open vswitch 및 SDN Controller를활용한 SDN 기반네트워크구성 OpenStack을활용한클라우드서비스플랫폼구축경희대학교 GNU Radio를활용한모바일네트워크환경구성 클라우드서비스플랫폼을활용한 3GPP 코어네트워크구축한양대학교 OpenWrt를활용한 WLAN 환경구축 전남대학교 SDN 지원 IP Router 구축 계명대학교 VoIP(Asterisk 등 ) 를활용한모바일서비스환경구축 참여기관 고려대학교 바른기술 EFN 기반진화된 MVNO 아키텍처설계 모바일네트워크플랫폼기반 EFN 구현 모바일네트워크플랫폼기반 MVNO 구현 EFN 간섭제어및 MVNO 가상망자원관리기술연구 그림 5. 연구추진체계

49 그림 6. 연구과제추진방법

50 그림 7. 연구과제세부개발수행방법

51 - 21 -

52 그림 8. WZR-HP-AG300H 구조

53 그림 9. Software Architecture

54 config switch option name 'eth0' option enable '1' config switch_vlan option device 'eth0' option vlan '1' option ports '1 0t' config switch_vlan option device 'eth0' option vlan '2' option ports '2 0t' config switch_vlan option device 'eth0' option vlan '3' option ports '3 0t' config switch_vlan option device 'eth0' option vlan '4' option ports '4 0t' config 'interface' option 'ifname' 'eth0.1' option 'proto' 'static' config 'interface' option 'ifname' 'eth0.2' option 'proto' 'static' config 'interface' option 'ifname' 'eth0.3' option 'prpto' 'static' config 'interface' option 'ifname' 'eth0.4' option 'proto' 'static' 그림 10. network 설정 그림 11. wireless 설정

55 그림 12. OpenWrt AP 기반 Open vswitch

56 그림 13. Quagga 구조

57 그림 14. Quagga IP 라우터구조

58 그림 15. 기존의 Quagga( 왼쪽 ) 와 SDN 기반 Quagga( 오른쪽 )

59 - 29 -

60 그림 개의호스트연결실험토폴로지 그림 개의호스트라우팅실험토폴로지

61 그림 18. mobile-voip 유저가네트워크와연결할때경로

62 그림 19. Cisco packet tracer 를이용한테스트베드토폴로지구성

63 그림 20. OpenFlow 기반네트워크제어프레임워크구조도

64 $ sudo apt-get install build-essential default-jdk ant python-dev eclipse git $ git clone git://github.com/floodlight/floodlight.git $ cd floodlight $ ant $ java -jar target/floodlight.jar

65 그림 21. Floodlight Web UI 그림 22. SDN Agent 의 Use Case

66 그림 23. VNAPI 메시지큐구조메시지생성영역

67 그림 24. VNAPI 의사용자메시지분류및처리영역 그림 25. HTTP 요청처리부분

68 그림 26. RequestProcessor 의 HTTP 요청처리영역

69 그림 27. USRP

70 그림 28. USRP 의내부구조및인터페이스

71 그림 29. OpenBTS 와 USRP 의연계도 그림 30. 패킷통신을위한 USRP + OpenBTS + Osmocom 프로젝트의연계도

72 그림 31. USRP + OpenBTS +Osmocom 프로젝트의연계도 그림 32. 3GPP Celluar 네트워크구조도

73 - 43 -

74 - 44 -

75 그림 33. 다수의 BTS 를지원하기위한구성요소배치방안 그림 34. PCU 의운용위치

76 그림 35. osmo-pcu의 동작화면 osmo-sgsn은 osmo-pcu와 Gb 인터페이스를 사용하여 연결되는데, 이때 라 우팅과 QoS 관리를 담당하는 BSSGP(BSS GPRS Protocol)가 사용된다. 또한 BSSGP를 전송하기 위해 Network Service(NS)을 사용하여 기존의 frame-relay 연결을 구현하였으며, 원활한 PDU relay를 위해 SGSN Relay 기 능을 내장하였다. openggsn은 IP 네트워크에서 UDP기반의 GPRS Tunnelling Protocol(GTP) 를 사용하여 SGSN으로 패킷을 전송한다. 특히 유닉스에서 동작하는 openggsn은 운영체제에서 제공하는 터널링 기능을 사용하기 때문에 더욱 간 편하고 안정적으로 운용이 가능하다. 그림 36. osmo-sgsn 동작화면

77 그림 37. openggsn 동작화면 그림 38. 단말에서 패킷 네트워크에 접속된 화면 5) 3GPP Cellular 네트워크 보안 3GPP에서의 보안이란, 1. 라디오 흐름의 기밀성과 익명성을 보호하고, 2. 악 의적인 사용자의 망 악용을 방지하기 위하여 철저한 사용자 인증, 3. 사용자 서로간의 보안을 유지하는 것이다. 네트워크 사용자는 보안을 지원하기위해 ME(Mobile Equipment)와 SIM(Subscriber Identity Module)의 두 개의 엔티티를 사용하는 것으로 볼 수 있다 ME에서는 IMEI(International Mobile Equipment Identity)를 가져 각자의 단말을 구분하고(이를 사용하면 단말의 분실폰 여부를 확인할 수 있다), SIM 에서 주요한 역할을 수행한다. SIM은 보안키인 Ki(Subscriber Authentication Key)와 식별자인 IMSI(International Mobile Subscriber Identity), 그리고 키 알고리즘을 갖는 스마트카드이다

78 그림 39. 전체적인인증데이터의흐름

79 그림 40. A3, A8, 그리고 COMP128 그림 41. MS-BTS 간통신보안을위한 A5 알고리즘

80 그림 42. 사용자인증을위한 OpenBTS 구조및프로토콜

81 그림 43. 기본적인 OpenBTS 내부구성도

82 그림 44. TMSI 테이블 Scheme

83 그림 45. OpenStack 기반클라우드서비스플랫폼의구조

84 표 3. OpenStack 클라우드플랫폼의노드별명세및네트워크구성정보

85 그림 46. OpenStack 기반클라우드서비스플랫폼의관리를위한웹인터페이스

86 그림 47. OpenStack Dashboard 의인스턴스관리인터페이스

87 그림 48. Diameter 프로토콜의구성

88 - 58 -

89 그림 49. UE 에서 Diameter 에이르는 REGISTER 과정 그림 50. SIP Diameter Application 을위한데이터베이스

90 그림 51. SIP Diameter 와 OpenBTS 연동방안 그림 52. freediameter 의동작화면

91 그림 차통합테스트베드구성도

92 그림 54. 개방형모바일네트워크테스트베드구성도

93 - 63 -

94 제 2 절모바일네트워크테스트베드를이용한실증시험

95 그림 55. Asterisk IP PBX 설치및네트워크구성

96 그림 56. Asterisk IP PBX: Call Processing

97 그림 57. 구축된모바일 VoIP 서비스를위한시험환경구성

98 - 68 -

99 표 4. R-value 와 MOS-CQE 의품질범주 Codec Information Bandwidth Calculations Codec Bitrate (Kbps) Codec Sample Size (Bytes) Codec Sample Interval (ms) Mean Opinion Score (MOS) Voice Payload Size (Bytes) Voice Payload Size (ms) Packets Per Second (PPS) Bandwidth Ethernet (Kbps) G G G G G G G G.722_64k ilbc_mode_ NA ilbc_mode_ NA 그림 58. 코덱별대역폭점유량비교

100 ID Name Description g723 G.723.1; pass-thru for people who need a license, free for other people gsm GSM ulaw G.711 u-law; used in US alaw G.711 A-law; used in Europe g726 G.726 RFC3551; 32kbps only (16/24/32/40kbps supported in format_g726 for files) adpcm ADPCM lpc10 LPC10; not recommended g ilbc ilbc g726aa12 G.726 AAL g722 G.729A; may require a license unless using pass-thru, free version available for use in countries without patents or for educational use only G722; 16 khz wideband codec; passthrough, playback and recording in Asterisk 1.4; full support incl. transcoding in Asterisk siren7 ITU G (Siren7, licensed from Polycom) siren14 ITU G Annex C, (Siren14, licensed from Polycom) testlaw G.711 test-law g719 ITU G.719 그림 59. Asterisk 가지원하는음성코덱 ID Name Description speex SpeeX; configurable 4-48kbps, VBR, ABR, etc speex16 SpeeX 16khz speex32 SpeeX 32khz slin 16 bit Signed Linear PCM slin12 16 bit Signed Linear PCM (12kHz) slin16 16 bit Signed Linear PCM (16kHz) slin24 16 bit Signed Linear PCM (24kHz) slin32 16 bit Signed Linear PCM (32kHz) slin44 16 bit Signed Linear PCM (44kHz) slin48 16 bit Signed Linear PCM (48kHz) slin96 16 bit Signed Linear PCM (96kHz) slin bit Signed Linear PCM (192kHz) silk8 SILK Custom Format 8khz silk12 SILK Custom Format 12khz silk16 SILK Custom Format 16khz silk24 SILK Custom Format 24khz 그림 60. Asterisk 가지원하는 Multi-rate 음성코덱

101 LinPhone: Android LinPhone: ios LinPhone: Ubuntu Codec Speex 16Khz Speex 8Khz Silk 16Khz Silk 8Khz G.722 GSM ilbc PCMU PCMA AMR Speex 16Khz Speex 8Khz Silk 24Khz Silk 16Khz G.722 GSM ilbc PCMU PCMA Speex 32Khz Speex 16Khz Speex 8Khz GSM PCMU PCMA 그림 61. Linphone 의플랫폼별지원음성코덱목록 표 5. VoIP 서비스품질측정을위한오픈소스소프트웨어

102 그림 62. 모바일 VoIP 음성통화품질측정

103 2. EFN 환경에서의 MVNO 서비스

104 그림 63. Open HeNB-GW 가 MVNO 트래픽을우회시키는모바일네트워크아키텍처

105 그림 64. Open EGW 가 MVNO 트래픽을우회시키는모바일네트워크아키텍처

106 그림 65. CN의위치에따라모바일트래픽오프로드방법을선택하는예

107 그림 66. CN의위치에따른모바일트래픽오프로드선택방법 그림 67. CN 과모바일트래픽의종류에따른모바일트래픽오프로드선택방법

108 그림 68. 전형적인펨토망아키텍처에서 MNO 사용자인증및트래픽전송절차

109 그림 69. 전형적인펨토망아키텍처에서 MVNO 사용자인증및트래픽전송절차

110 그림 70. 제안하는아키텍처에서 MVNO 사용자인증및인터넷트래픽오프로드절차

111 그림 71. 시스템토폴로지및매크로셀과 EFN 에대한무선채널할당

112 그림 단계 : Multiple cluster assignment 방법

113 그림 단계 : Dynamic subchannel assignment 방법

114 표 6. 시스템파라미터 파라미터 값 주파수대역 2 GHz 전체주파수밴드 4.5 MHz 부채널당주파수밴드 5 KHz 전체부채널수 900 각섹터에서 MBS 와 EFN의부채널수 300, 600 건물의층수 5 펨토기지국수 20, 40, 60, 80, 100 각펨토기지국의요구전송률 ( ) 1Mbps, 1.5Mbps 단말수 / 펨토기지국 1 매크로셀기지국사이의거리 (d IS ) 1Km 펨토기지국커버리지 5m 매크로셀과 EFN 사이의거리 (d ME ) 400m 건물의면적 50m 50m 건물의층높이 3m 매크로기지국의높이 25m 펨토기지국과사용자단말의높이 1.5m, 1m 펨토기지국과사용자단말의최소거리 0.2m [20] 매크로기지국의전송파워 20W [20] 팸토기지국의전송파워 10mW [20] Commercial 과 office building의 Path loss exponent 22, 30 [21] 펨토기지국그룹의최소부채널수 (K min ) 10 Minimum SINR -10dB [22] Bit error rate 10-3 [20] Shadowing에서매크로와펨토셀의 Standard deviation with zero mean 4dB, 10dB [20] 그래프컬러링알고리즘 DSATUR (Degree of Saturation) [23]

115 Mean HeNB capacity (Mbps) r = 1.5Mbps Commercial buildings (r = 1 and 1.5Mbps) r = 1Mbps MC-DCA DCSA GB-DFR GB-SCA FR The number of HeNBs (N) 그림 74. 펨토기지국수에따른평균 HeNB 전송률 (Commercial buildings) 1.5 Office buildings (r = 1 and 1.5Mbps) Mean HeNB capacity (Mbps) MC-DCA DCSA GB-DFR GB-SCA FR 1 r =1.5Mbps r =1Mbps The number of HeNBs (N) 그림 75. 펨토기지국수에따른평균 HeNB 전송률 (Office buildings)

116 ρ ρ 1.5 Commercial buildings (r = 1 and 1.5Mbps) Mean HeNB capacity (Mbps) N = 20 N = 40 N = 60 N = 80 N = Backhaul capacity per MVNO (Mbps) 그림 76. Commercial building 환경에서각 MVNO 의평균 HeNB 전송률 ( 실선 : ρ=1mbps, 점선 : ρ=1.5mbps)

117 ρ ρ ρ ρ 1.5 Office buildings (r = 1 and 1.5Mbps) Mean HeNB capacity (Mbps) N = 20 N = 40 N = 60 N = 80 N = Backhaul capacity per MVNO (Mbps) 그림 77. Office building 환경에서각 MVNO 의평균 HeNB 전송률 ( 실선 : ρ=1mbps, 점선 : ρ=1.5mbps)

118 ρ ρ ρ ρ

119 그림 78. MVNO 서비스를위한시스템개념도

120 그림 79. 모바일네트워크플랫폼기반 MVNO 서비스의전체적인시스템환경

121 그림 80. FCS Emulator의모듈별동작절차 그림 81. Open HeNB-GW 의모듈별구성도

122 그림 82. MNO/MVNO Server Pool의모듈구성도 그림 83. 외부서버의모듈구성도

123 - 93 -

124 그림 84. Enterprise Femto Unit(EFU) using NS3 그림 85. FCS Emulator 동작의예

125 그림 86. Open HeNB-GW 동작의예 그림 87. MNO/MVNO Server Pool 초기동작의예 그림 88. MNO/MVNO Server Pool 의인증과정예

126 그림 89. 외부서버동작의예

127 그림 90. 웹기반모니터링시스템로그인화면

128 그림 91. 웹기반모니터링시스템의메인화면

129 그림 92. 웹기반모니터링시스템의실시간트래픽모니터링화면

130 그림 93. 웹기반모니터링시스템의실시간트래픽모니터링화면 ( 무선자원기법의변화 ) 그림 94. 무선자원기법에따른트래픽전송률의분석화면

131 그림 95. 무선자원기법에따른트래픽전송률의분석화면 ( 실험변수의변화 )

132 제 1 절연구진행사항 구분 주요내용 추진일정 월 달성비중도 환경구축 포팅및환경구축 동작테스트 환경구축 설치및 와의연동 설치및연동 동작테스트 구축 구축 설정및 연동테스트 망테스트베드구축 망에서의동작테스트 모바일단말을이용한연동테스트 합계

133 구분 주요내용 추진일정 월 달성비중도 에대한정보습득 관련 설치및운용 정보습득및연구 라우터구성 개발 호스트에적용 설치및운용 터널인터페이스생성 가상환경에서 실험 경희대교내에서 차테스트베드환경구축 접속환경별라우팅경로설정 망에서최종테스트베드실험진행 합계 구분 주요내용 추진일정 월 달성비중도 제어환경구성 네트워크구성 구성및네트워크연동 개발 기반 와 연동작업네트워크 제어및 연동테스트네트워크안정화작업 합계

134 구분 주요내용 추진일정 월 비 중 달성도 엑세스네트워크 코어네트워크 와 간의상호연동 간의상호연동 간의상호연동 간의상호연동 합계 구분 주요내용 추진일정 월 달성비중도 기반서비스연구 기반클라우드서비스플랫폼설계 기반클라우드서비스플랫폼구축 기반개방형네트워크와의연동테스트 서비스최적화및시험 서비스플랫폼안정화및최적화 실증시험의데모를위한커뮤니티형성및시험 합계

135 구분 프레임워크연구 프레임워크적용방안 주요내용 추진일정 월 기존시큐리티프레임워크비교분석 오픈소스기반 네트워크시큐리티모듈분석오픈소스기반 네트워크시큐리티와의호환성모색해당모듈에대한연동사항연구및설계 비 중 달 성 도 합계 구분 주요내용 추진일정 월 달성비중도 계명대학교네트워크 모바일서비스환경구축 내선음성통화서비스설정 경희대학교 시스템 경희대학교 모바일서비스환경구축 내선음성통화서비스설정 및 환경에서서비스시험 및 환경에서통화품질향상을위한코덱설정 합계

136 IEEE Trans. on Vehicular Technology Multi-Cluster based Dynamic Channel Assignment for Dense Femtocell Networks ISSN Se-Ji n Kim 국외 Submi tted SCI 50% IEICE Trans. on Communications IEICE Trans. on Communications Distributed System for Efficient Handling Location-Based Information in Mobile DYN-MAC: A MAC Protocol for Cognitive Radio Networks with Dynamic Control Channel Assignment ISSN ISSN Se-Ji n Kim Zaw Hike 국외 국외 Submi tted Submi tted SCI 50% SCI 50% 국내 국내 국내 국내 국내 추계학술발표회 추계학술발표회 추계학술발표회 추계학술발표회 추계학술발표회 대한민국 대한민국 대한민국 대한민국 대한민국 구두발표구두발표포스터포스터포스터

137 국내 국내 국내 국내 국내 추계학술발표회 대한민국 추계학술발표회 대한민국 추계학술발표회 대한민국 추계학술발표회 대한민국 추계학술발표회 대한민국 국외 일본 국외 프랑스 국제 한국 국제 마카오 중국 콘텐츠중심네트워킹에서효율적인콘텐츠전송을위한콘텐츠포스터콘트롤러를이용한콘텐츠전송기법연구 기반네트워크에서링크상태에따른동적플로우관리포스터메커니즘 포스터 포스터 포스터 포스터 구두발표구두발표 경희대학교 기술문서 기반 스위치구축매뉴얼 네트워킹 연구실 경희대학교 기술문서클라우드서비스플랫폼구축매뉴얼 모바일컨버전스 연구실 경희대학교 기술문서 구축매뉴얼 네트워킹 연구실 경희대학교 기술문서 를위한 기술문서 네트워킹 연구실

138 기술문서 요구사항명세서 기술문서 기술문서 오픈소스기반테스트베드의사용자 단말간의인증을위한시큐리티프레임워크설계서 기술문서오픈소스기반 네트워크구축매뉴얼 기술문서 기반 지원라우터구축매뉴얼 기술문서 기반 액세스네트워크구축매뉴얼 기술문서오픈소스기반 서비스구축매뉴얼 기술문서 품질보장기법설계서 기술문서 과 을이용한진화된 서비스아키텍처설계서 기술문서 구성요소들의역할및동작절차설명서 기술문서 간섭제어방법과 가상망자원관리방법설명서 경희대학교 네트워킹연구실 경희대학교 네트워킹연구실 경희대학교 네트워킹연구실 경희대학교 네트워킹연구실 전남대학교 차세대네트워크연구실 한양대학교 계명대학교 컴퓨터네트워크연구실 계명대학교 컴퓨터네트워크연구실 고려대학교 데이터통신 네트워크연구실 고려대학교 데이터통신 네트워크연구실 고려대학교 데이터통신 네트워크연구실

139 시제품 시제품 시제품 해당노드에서의프로세스정보를기 에서반으로해당노드의정상동작여부를 의노드정보제공확인하는프로그램 개발각노드내에위치한 가 에제출함으로써수집된노드 에서의실행가능들의정보를사용하여각노드에대한성테스트를위한 접속가능성여부를확인하고 각노드 프레임워크개발에대해적절한행동을수행할수있는 를제공하는프로그램시뮬레이션을위한가상의펨토셀네 가상모바일환경구트워크환경을구성하고 해당환경내축및 서비스에서연구된무선자원할당기법기반 제공에뮬레이터개발의트래픽전송을수행하는에뮬레이터개발 데모시스템구현프로그램등록예정데모시스템구현프로그램등록예정데모시스템구현프로그램등록예정 특허출원 인지무선네트워크를위한빠른주 파수센싱방법 경희대학교 산학협력단 대한민국홍충선 탄진우 특허출원 을위한효율적이고신뢰할 수있는하이브리드 경희대학교산학협력단대한민국 홍충선 당넉 민덕 반둥니 엔 특허등록 특허등록 정보중심네트워크를위한네트워경희대학교크내에서의확률적청크표시와캐산학협력단싱인지무선네트워크에서지연에민 감한멀티미디어애플리케이션을위 한동적인스펙트럼접근기법 경희대학교산학협력단대한민국 대한민국홍충선 사이드울라 홍충선 두더 쿠옹

140

141

142

143

144

145

146

147

148

149

150

151

152 개방형모바일네트워크테스트베드 기술실증시험과제 [ 부록 ] 경희대학교네트워킹연구실경희대학교모바일컨버전스연구실전남대학교차세대네트워크연구실한양대학교모바일인텔리젼스및라우팅연구실계명대학교컴퓨터네트워크연구실고려대학교데이터통신및네트워크연구실

153 목 차 A1. Open vswitch 기반 OpenFlow 스위치구축매뉴얼 1 A1.1. 서론 3 A1.2. Open vswitch와 OpenFlow 4 A Open vswitch 4 A OpenFlow 5 A1.3. Open vswitch 기반의 OpenFlow 스위치 7 A OpenFlow 스위치머신규격 7 A Open vswitch 설치 7 A 테스트베드구조 8 A OpenFlow 스위치설정 9 A1.4. 결론 10 A2. OpenStack 기반클라우드서비스플랫폼구축매뉴얼 11 A2.1. 서론 13 A 소개 13 A 유의사항 13 A2.2. OpenStack 클라우드 14 A OpenStack의기본구조 14 A OpenStack 클라우드플랫폼의구성 15 A2.3. 설치 17 A 공통설치부분 17 A 컨트롤러노드 18 A 네트워크노드 28 A 컴퓨트노드 33 - I -

154 A2.4. 가상머신구동및관리 37 A OpenStack Dashboard 37 A 인스턴스 ( 가상머신 ) 생성 38 A 인스턴스관리 39 A2.5. 결론 39 A3. SDN Controller 구축매뉴얼 40 A3.1. 서론 42 A3.2. Floodlight 설치하기 42 A 요구사항 42 A 다운로드및빌드하기 42 A Floodlight 실행및 Controller 접속확인 42 A3.3. 개발을위한환경설정 43 A Eclipse 설정 43 A4. SDN Controller를위한 API 기술문서 45 A4.1. 서론 47 A 개발환경 47 A4.2. 시스템구조 47 A SDN 기반네트워크제어를위한시스템구조 47 A4.3. VN API(Virtual Network API) 48 A VN API 개발 48 A5. SDN Agent 요구사항명세서 51 A5.1. 서론 53 A5.1.1 용어정의 53 A5.2. 기능요구사항 54 A SDN Agent 54 A Listen Policy 56 - II -

155 A Policy Analyzer 56 A Keep Alive 56 A Reply Result 57 A5.3. 인터페이스요구사항 58 A XML 메시지정의 58 A SDN Controller에서 SDN Agent에게요청하는 Policy XML 형식 58 A SDN Agent에서 SDN Controller에게보내는 응답 XML 형식 59 A6. Topology-GUI-environment 60 A6.1. Glossary 62 A6.2. Introduction 63 A6.3. System overview 63 A6.4. System functionality 64 A6.5. Development tool/framework 64 A Get the right Eclipse version 64 A Install GWT into Eclipse 65 A Testing and Debugging with Chrome 67 A Getting the GWT plugin 67 A Import project to Eclipse by Maven 68 A6.6. MVC Design pattern 69 A View class 70 A Controller class 71 A Model class 71 A EventBus class 72 A6.7. GUI design overview 73 - III -

156 A6.8. SVG Drawing implementation 74 A6.9. Client/Server communication using RESTful API 75 A6.10. Current application status 76 A7. 오픈소스기반테스트베드의사용자-단말간의인증을위한 시큐리티프레임워크설계서 78 A7.1. OpenBTS 보안 80 A GPP / OpenBTS 보안사항 80 A7.2. Diameter 적용 83 A Diameter란 83 A Diameter SIP Application(RFC 4740) 소개 83 A OpenBTS Diameter 연동방안 84 A7.3. freediameter 87 A 설치방법 (APT) 87 A source기반설치 (1) 88 A source기반설치 (2, without deb-tool) 89 A configuration(freediameter.conf ) 89 A Diameter 서버실행 91 A8. 오픈소스기반 3GPP 네트워크구축매뉴얼 92 A8.1. 서론 94 A 개발환경 (HW) 94 A 개발환경 (SW) 94 A8.2. 설치방법 96 A Common(OS) 96 A Access Network 97 A Access Network_OpenBTS 설정 100 A Core Network IV -

157 A Core Network_Yate 설정 109 A8.3. References 112 A9. Quagga 기반 SDN 지원라우터구축매뉴얼 113 A9.1. 서론 115 A9.2. Quagga 116 A Quagga 설치 116 A Quagga 구성 118 A9.3. OpenFlow V-Switch 120 A OpenvSwitch 설치 120 A OpenvSwitch 빌드 121 A9.4. RouteFlow 122 A RouteFlow 구성과설치 123 A rftest1 기능테스트 124 A9.5. Mininet 128 A9.6. 참고문헌 138 A10. OpenWRT 기반 WiFi 액세스네트워크구축매뉴얼 139 A10.1. 서론 141 A10.2. 무선 AP 141 A WZR-HP-AG300H 141 A Openwrt 142 A10.3. SDN 143 A Openflow & OpenVswitch 143 A 네트워크및 SDN 설정 144 A10.3. 결론 146 A11. 오픈소스기반 VoIP 서비스구축매뉴얼 147 A11.1. 서론 V -

158 A11.2. Open Source IP PBX Asterisk 149 A Asterisk 149 A Asterisk 설치환경 150 A Asterisk 설치 150 A Asterisk 기본설정 (sip.conf) 153 A Dial Plan 설정 (extensions.conf) 153 A SIP Messaging 설정 153 A11.3. Asterisk Web User Interface 155 A AsteriskNOW 155 A Digium Asterisk GUI 155 A Digium Asterisk GUI를사용한 Asterisk 설정 157 A11.4. VoIP Client 159 A SIP 클라이언트 159 A Linphone 설정 160 A11.5. 참고문헌 164 A12. VoIP 품질보장기법설계서 165 A12.1. VoIP 서비스품질지표 167 A12.2. VoIP 서비스대역폭 168 A12.3. VoIP 서비스품질측정 169 A12.4. 관련연구 170 A12.5. 참고문헌 171 A13. EFN과 SDN을이용한진화된 MVNO 서비스아키텍처설계서 172 A13.1. 서론 174 A 연구배경 174 A 연구범위 176 A13.2. 관련기술개요 VI -

159 A 가상통신망사업자 (MVNO) 178 A 기업형펨토셀네트워크 (EFN) 180 A GPP 모바일트래픽오프로드기술표준화동향 183 A13.3. EFN과 SDN을이용한진화된 MVNO 서비스아키텍처설계 189 A 진화된 MVNO 서비스아키텍처설계 189 A 진화된 MVNO 서비스아키텍처구성요소 190 A13.4. 모바일트래픽오프로드방법및프로세스 192 A 모바일트래픽오프로드방법 192 A MVNO 모바일트래픽오프로드프로세스 195 A14. FCS, FGW, MVNO 구성요소들의역할및동작절차설명서 199 A14.1. 개요 201 A 목적 201 A 범위 201 A 용어및약어 202 A14.2. MVNO 서비스제공을위한전체시스템소개 203 A14.3. MVNO 서비스를위한구성요소별역할정의 206 A FCS Emulator 역할 206 A HeNB-GW 역할 210 A MNO/MVNO Server Pool 역할 216 A 외부서버역할 218 A14.4. MVNO 서비스를위한구성요소별역할에따른동작절차 219 A FCS Emulator 동작절차 220 A HeNB-GW 동작절차 222 A MNO/MVNO Server Pool 동작절차 224 A 외부서버동작절차 226 A15. EFN 간섭제어방법과 MVNO 가상망자원관리방법설명서 VII -

160 A15.1. 서론 229 A 연구배경 229 A 연구범위 231 A15.2. 관련기술및연구동향 233 A 기업형펨토셀네트워크 (EFN) 233 A 펨토망에서간섭제어및자원할당방법 236 A 가상통신망사업자 (MVNO) 236 A15.3. EFN에서간섭제어및자원할당방법 239 A 시스템모델 239 A 제안하는무선간섭제어및유동적채널할당방법 242 A 실험환경및성능분석 246 A15.4. MVNO 가상망자원관리방법 257 A15.5. 참고문헌 VIII -

161 미래네트워크연구시험망실증시험과제 A1. Open vswitch 기반 OpenFlow 스위치구축매뉴얼 Copyright C 2013 경희대학교모바일컨버전스연구실 All rights reserved. 사전승인없이본내용의전부또는일부에대한복사, 전재, 배포, 사용을금합니다. 경희대학교 - 1 -

162 Open vswitch 기반 OpenFlow 스위치구축매뉴얼 제 / 개정이력 버전날짜작성자성명제 / 개정사항비고 이성원, 김동하최초작성 김동하오, 탈자수정 - 2 -

163 Open vswitch 기반 OpenFlow 스위치구축매뉴얼 A1.1. 서론 본문서는개방형모바일네트워크테스트베드기술실증시험과제의네트워크인프라로구축된 Open vswitch 기반스위치의구축매뉴얼이다. 본절에서는매뉴얼에대한간략한소개와함께기준이되는소프트웨어버전에대하여서술한다. 제 A1.2절에서는 Open vswitch 및 OpenFlow의기본구조등을간략하게소개하고, 제 A1.3절에서는본문서에서실제로구축하고자하는테스트베드의구조와 OpenFlow 스위치의설치방법및설정방법을설명한다. 마지막으로제 A1.4절에서결론으로본문서를끝맺는다. 본문서는앞서언급한바와같이, Open vswitch 기반 OpenFlow 스위치를구축하는방법에대하여설명한다. 단, 앞으로설명할모든 OpenFlow 스위치는 x86 아키텍처기반의일반서버용데스크탑으로, 운영체제는리눅스배포판인우분투버전 12.04(Precise Pangolin) 가설치되어있음을가정한다. 또한, 가정한 OpenFlow 스위치에서우분투기본패키지저장소 (Repository) 를이용해 Open vswitch 및관련패키지를설치하는방법을설명할것이며, 해당방법을통해설치되는 Open vswitch의버전은 이며, 구현된 OpenFlow의버전은 1.1이다

164 Open vswitch 기반 OpenFlow 스위치구축매뉴얼 A1.2. Open vswitch 와 OpenFlow 본절에서는 Open vswitch 및 OpenFlow의기본구조에대하여설명하고, 본문서에서실제로구축하고자하는테스트베드의구조를설명한다. 앞서언급한대로, 본절에서설명하는내용은 Open vswitch 버전을기준으로하므로타버전에서는그구조와지원범위등이다소다를수있음을유의해야한다. A Open vswitch Open vswitch(ovs) 는소프트웨어스위치로, Dom0 또는 Xen과같은하이퍼바이저나관리도메인 (Management domain) 내부에존재하며가상머신과물리적인네트워크인터페이스사이의연결성을제공한다. 또한, OVS는가상스위치에대한중앙집중식의관리를위한외부인터페이스를지원하고 1.4 버전기준으로 OpenFlow 1.1 버전이구현되어있으므로 OpenFlow 스위치로도동작할수있다. 또한, OVS는플로우기반의패킷 ( 프레임 ) 스위칭을지원하는데몬또는커널모듈로구성된다. 그리고 OVS는기존리눅스브릿지와호환성을가지므로, 가상머신을위한네트워크구성에매우적합하다. 그림 A1.1은 OVS의구조적위치및 OVS 기반의가상화네트워킹구조를나타낸다. 그림 A1.1. Open vswitch 기반의가상화네트워킹인프라스트럭처구조 - 4 -

165 Open vswitch 기반 OpenFlow 스위치구축매뉴얼 본문서에서는이와같은 OVS 의특징및장점을이용하여, x86 아키텍처기반의일반 서버용데스크탑에 OVS 를설치하여이노드를 OpenFlow 스위치로활용하였다. A OpenFlow OpenFlow는소프트웨어중심의네트워킹기술을지향하는 ONF(Open Networking Foundation) 에서 SDN(Software Defined Netowork) 개념에통합및확장하여표준화를추진하고있는프로토콜이다. 제어평면과데이터평면이분리되어있는 SDN 개념의네트워크구조에서, 논리적으로중앙집중화된네트워크제어플랫폼과데이터평면인물리계층사이의인터페이스를 OpenFlow 라고할수있다. 그림 A1.2는 OpenFlow의구조및 OpenFlow 스위치의구성과동작원리를나타내고있다. 그림 A1.2. OpenFlow 의구조및 OpenFlow 스위치 한편, OpenFlow 스위치는 x86 아키텍처기반의 PC, OpenFlow가구현된상용스위치박스또는본문서에서사용한 OVS와같은가상소프트웨어스위치까지다양한형태가될수있다. OpenFlow 스위치는자신을거쳐흐르는패킷 ( 프레임 ) 들의헤더정보를조합하여개별플로우로제어할수있다. 즉, 출발지또는목적지 MAC 주소또는 IP 주소, 혹은전송계층포트번호등을기준으로패킷들을개별플로우로구분하여이들에대한제어를수행할수있다

166 Open vswitch 기반 OpenFlow 스위치구축매뉴얼 그림 A1.3. OpenFlow 1.1 버전기준의플로우테이블및헤더정보 그림 A1.3은 1.1 버전기준의 OpenFlow가다루는플로우테이블및헤더정보이다. OpenFlow 스위치는스위치로들어온패킷의헤더와그림 A1.1의매치필드에명시된정보를비교하여해당하는처리 (Action) 을수행하는기본체제로패킷을처리하는방법으로플로우를제어하게된다. 이때가능한패킷의처리방법은스위치의특정포트로패킷을포워딩하거나, 패킷을버리거나 (Drop), 컨트롤러에게전달하는것부터, 출발지 MAC 주소, IP 주소또는전송계층포트번호를수정하거나하는등의패킷의특정필드를수정하는것까지다양하다

167 Open vswitch 기반 OpenFlow 스위치구축매뉴얼 A1.3. Open vswitch 기반의 OpenFlow 스위치 본절에서는 Open vswitch 기반의 OpenFlow 스위치에대한설치및설정방법에대하여설명하고, 해당 OpenFlow 스위치를사용하여구축하고자하는테스트베드의구조를설명한다. A OpenFlow 스위치머신규격 앞서언급한바와같이, 본문서에서는 x86 아키텍처기반의일반서버용데스크탑에리눅스배포판인우분투버전 12.04(Precise Pangolin) 운영체제및 Open vswitch를설치하여 OpenFlow 스위치로사용한다. 실제테스트베드구축에사용한머신의기본하드웨어규격은다음과같다. Ÿ CPU : Intel(R) Xeon(R) 3.16GHz (Quad) Ÿ Memory : 4G Ÿ Storage : 500G HDD Ÿ NIC : 4 x Giga Ethernet ü 2 x On-board ü 1 x Dual-port Ethernet LAN Card A Open vswitch 설치 아래에서설명할모든 OpenFlow 스위치들은리눅스배포판인우분투 LTS(Long Term Support) 서버버전이설치된다. 본문서에서는운영체제설치에대하여상세히설명하지않지만, 기본적으로아래항목을충족하는것을기준으로한다. Ÿ Ÿ Ÿ Ÿ OS Version : Ubuntu LTS Server Hostname : Specified Partitioning : Guided - Use entire disk ( 단, 머신을다른 OS와함께사용하거나별도의파티션을원하는경우해당상황에맞게설정 ) Additional Package : OpenSSH server 기본적인운영체제설치를완료한후, 아래명령어를입력하는것으로간단히 OVS 를 설치할수있다

168 Open vswitch 기반 OpenFlow 스위치구축매뉴얼 # apt-get update # apt-get upgrade # apt-get install openvswitch-brcompat openvswitch-switch openvswitch-datapath-source 이후, 아래파일을열어다음라인을추가한다. File : /etc/default/openvswitch-switch, BRCOMPAT=yes 마지막으로, 관련서비스를재시작한다. # service openvswitch-switch start A 테스트베드구조 앞서소개한 x86 아키텍처및 OVS 기반의 OpenFlow 스위치 (OFS) 와일반 L2 스위치를사용하여그림 A1.4와같이테스트베드를구축할수있다. OpenFlow 컨트롤러는 Floodlight를사용하였으며, 컨트롤러에관련된부분은본문서의범위를벗어나므로자세히설명하지는않는다. 그림 A1.4. 테스트베드구성도예시 그림 A1.4 에서와같이 OFS 는다른스위치와연결되거나, OFS 01 과같이단말과직 접연결될수도있고, OFS 02 와같이외부시스템의게이트웨이역할을할수도있다

169 Open vswitch 기반 OpenFlow 스위치구축매뉴얼 또한, OpenFlow 컨트롤러인 Floodlight는네트워크를통해모든 OFS와연결되어있으며원격으로플로우를제어한다. A OpenFlow 스위치설정 본문서에서는, OFS의설정과정을간략화하기위해스크립트를사용한다. 스크립트의내용은각스위치별로다를수있으나그구조는모두동일하다. 그림 A1.4와같은테스트베드의 OFS에사용될수있는설정스크립트는다음과같다. #!/bin/bash DATAPATH_ID= ITF_1=eth1 ITF_2=eth2 ITF_3=eth3 ITF_4=eth4 ITF_5=eth5 CTRL= :6633 ovs-vsctl del-br br0 ovs-vsctl add-br br0 ovs-vsctl add-port br0 $ITF_1 ovs-vsctl add-port br0 $ITF_2 ovs-vsctl add-port br0 $ITF_3 ovs-vsctl add-port br0 $ITF_4 ovs-vsctl add-port br0 $ITF_5 ovs-vsctl set bridge br0 other-config:datapath-id=$datapath_id ovs-vsctl set-controller br0 tcp:$ctrl ovs-ofctl show br0 환경변수를등록하는, 스크립트의처음부분각라인의의미는다음과같다. 먼저, DATAPATH_ID 는설정과정에서각 OFS 의고유한식별자로사용된다. 실제로 - 9 -

170 Open vswitch 기반 OpenFlow 스위치구축매뉴얼 Floodlight 와같은 OpenFlow 컨트롤러는이 Datapath ID 를기반으로각 OFS 를구분 한다. ITF_# 은각 OFS 머신에존재하는물리적인네트워크인터페이스를의미한다. CTRL 은 OpenFlow 컨트롤러의 IP 주소와포트번호를의미한다. 설정과정은다음과같다. 먼저, ovs-vsctl add-br br0 위의명령은 br0 이름으로 OVS 브리지를생성한다. 해당브리지는소프트웨어스위치로동작하며다음명령을통해물리적인네트워크인터페이스가추가된다. ovs-vsctl add-port br0 $ITF_1 이후, 환경변수로등록한 OFS의 Datapath ID를등록하고컨트롤러와연결하는과정을거친다. A1.4. 결론 본문서는개방형모바일네트워크테스트베드기술실증시험과제의 SDN 기반네트워크인프라로구축된 Open vswitch 기반 OpenFlow 스위치의구축방법및설정방법에대하여설명하였다. 본문서를통하여상대적으로저렴한 x86 아키텍처기반의서버용데스크탑및일반 L2 스위치를사용하여 SDN 기반네트워크인프라를구축할수있다. 또한, 구축한 SDN 기반네트워크는플로우를기반으로동작하므로기존 IP 및라우팅기반네트워크에서구현하기힘든동적플로우관리가가능하다

171 미래네트워크연구시험망실증시험과제 A2. OpenStack 기반클라우드서비스플랫폼구축매뉴얼 - Ubuntu 12.04(LTS) 및 OpenStack Grizzly 버전기준 Copyright C 2013 경희대학교모바일컨버전스연구실 All rights reserved. 사전승인없이본내용의전부또는일부에대한복사, 전재, 배포, 사용을금합니다. 경희대학교

172 OpenStack 기반클라우드서비스플랫폼구축매뉴얼 제 / 개정이력 버전날짜작성자성명제 / 개정사항비고 이성원, 김동하최초작성 김동하오, 탈자수정

173 OpenStack 기반클라우드서비스플랫폼구축매뉴얼 A2.1. 서론 본문서는개방형모바일네트워크테스트베드기술실증시험과제의클라우드시스템으로구축된 OpenStack 기반클라우드서비스플랫폼의구축매뉴얼이다. 또한, 본문서는실험자의가상머신생성, 관리등을포함하는 OpenStack 클라우드자원사용및관리방법을설명한다. 본절에서는매뉴얼에대한간략한소개와함께기준이되는소프트웨어버전및유의사항에대하여서술한다. 제 A2.2절에서는 OpenStack 클라우드의기본구조등을소개하고, 본문서에서실제로구축하고자하는테스트베드의구조를설명한다. 제 A2.3 절에서는 OpenStack 소프트웨어패키지의설치방법과설정방법을각각의노드별로설명하며제 A2.4절에서는구축된플랫폼상에서실험자가인스턴스 ( 가상머신 ) 을생성하고실행하는것과같은기본운영방법에대하여설명한다. 마지막으로제 A2.5절에서결론으로본문서를끝맺는다. A 소개 본문서는앞서언급한바와같이, OpenStack 기반클라우드서비스플랫폼을구축하는방법에대하여설명한다. 단, 앞으로설명할모든클라우드노드 (OpenStack 클라우드소프트웨어컴포넌트들이설치될물리적머신 ) 는 x86 아키텍처기반의일반서버용데스크탑으로, 운영체제는리눅스배포판인우분투버전 12.04(Precise Pangolin) 가설치되어있음을가정한다. 또한, 가정한노드에서우분투기본패키지저장소 (Repository) 를이용해 OpenStack 관련패키지를설치하는방법을설명할것이며, 해당방법을통해설치되는 OpenStack 소프트웨어패키지의버전은 Grizzly 이다. A 유의사항 OpenStack 기반클라우드플랫폼을구축하기위하여구축할수있는노드들의물리적인구성은여러가지가될수있으나, 본문서에서는 2+2 노드설치방법 을기준으로설명하도록한다. 이설치방법은단일클라우드컨트롤러, 단일네트워크노드그리고두개의컴퓨트 (Compute) 노드로시스템을구축하는방법을의미하며, 이와관련하여제 A2.3절에서조금더자세히설명하도록한다. 마지막으로, 본문서에서공통적으로사용된 IP 주소및 password 는실제설치및운용과정에서다르게적용될수있다. 특히, IP 주소의경우클라우드시스템내부적으로사용되는사설 IP 주소의경우에는본문서를그대로적용해도큰무리가없겠지만, 공용 IP 주소의경우에는클라우드시스템이소속된네트워크에해당하는 IP 주소를사

174 OpenStack 기반클라우드서비스플랫폼구축매뉴얼 용해야할것이다. 또한, 편의를위해공통적으로사용된 password 의경우에는시스 템을정식오픈할때에는보안상반드시적절하게바뀌어있어야할것이다. A2.2. OpenStack 클라우드 본절에서는 OpenStack 클라우드의기본구조와주요컴포넌트들에대하여설명하고, 본문서에서실제로구축하고자하는테스트베드의구조를설명한다. 앞서언급한대로, 본절에서설명하는내용은 OpenStack Grizzly 버전을기준으로하므로타버전에서는그구성과내용이다소다를수있음을유의해야한다. A OpenStack 의기본구조 OpenStack은그림 A2.1과같이컨트롤러노드, 네트워크노드및컴퓨트노드로이루어진기본구조를가지고있다. 또한, 그림에서와같이각각의노드는주요 OpenStack 소프트웨어컴포넌트로구성되어있다. 또한, 그림 A2.1은 OpenStack 클라우드시스템을구축하기위한가장기본이되는구조로실제시스템구축단계에서실제구성과노드의개수등이변경될수있다. 그림 A2.1. OpenStack 의기본구조및주요컴포넌트

175 OpenStack 기반클라우드서비스플랫폼구축매뉴얼 각노드의기능및내, 외부네트워크구성에대한설명은다음과같다. 우선컨트롤러노드 (Cloud Controller Node) 는아래에서설명될네트워크노드의네트워크관리기능과컴퓨트노드의가상머신관리기능을제외한, 전반적인클라우드시스템의제어기능을담당한다. 여기에는각가상머신에설치될운영체제이미지관리 (Glance) 기능, 가상머신에자유롭게추가및제거등의관리가가능한저장소관리기능 (Cinder, Block Storage Management), 전클라우드시스템에공통적으로사용되는사용자인증및식별정보관리기능 (Keystone) 및 Web UI 기반의클라우드관리인터페이스를제공하는 Dashboard 등이포함되어있다. 또한, 네트워크노드는가상머신들에대해 DHCP(Dynamic Host Configuration Protocol), L2 스위칭및 L3 라우팅그리고 NAT(Network Address Translation) 를바탕으로한공인 IP(Floating IP) 할당및관리기능을제공한다. 마지막으로컴퓨트노드는인스턴스로불리는가상머신에대한통합적관리기능을제공한다. 또한, 그림 A2.1에서확인할수있듯 OpenStack 클라우드시스템은내부의관리네트워크 (Management Network) 를통해각노드및컴포넌트간의통신을수행하며이때사용될수있는 IP 주소는, 각클라우드시스템에독립적인사설 IP 주소이다. 외부 ( 인터넷 ) 와의통신은가상머신이네트워크노드를통해외부와연결된외부네트워크 (External Network) 와원격지에서 OpenStack 클라우드시스템을제어하기위한목적으로사용되는, 컨트롤러노드와연결된 API 네트워크 (API Network) 를통해이루어진다. 본문서에서는위에서설명한기본구조를사용하여 OpenStack 기반클라우드서비스플랫폼을구축하는방법에대하여서술한다. 다음절에서는본문서에서 OpenStack 을기반으로구축한클라우드시스템의구성도에대해설명한다. A OpenStack 클라우드플랫폼의구성 OpenStack을기반으로클라우드시스템을구축하는방법에대하여설명하기위해, 본절에서는 x86 아키텍처기반의서버용데스크탑을노드로구성하는경우필요한기본정보와네트워크구조를서술한다. 먼저, 표 A2.1은시스템을구축하기위해필요한기본노드및네트워크정보이다. 앞서언급한바와같이컨트롤러노드, 네트워크노드그리고컴퓨트노드로기본구성이이루어지며이때컴퓨트노드는여러대가될수있다. 또한, 컨트롤러노드및네트워크노드도필요에따라두대이상으로구성할수있지만해당부분은본문서에서다루지않는다. 표에는각노드들의호스트명규칙및구동되는서비스의종류, 노드에할당되는 IP 주소및그로인해요구되는 NIC(Network Interface Card) 의개수등이명시되어있다

176 OpenStack 기반클라우드서비스플랫폼구축매뉴얼 표 A2.1. 시스템구축을위한기본정보 노드 컨트롤러 네트워크 컴퓨트 호스트명 khu-controller khu-network khu-compute-1 서비스 MySQL, RabbitMQ, Nova, Glance, Keystone, Quantum /2 4 Quantum-L3-agent, Quantum-DHCP-agent, Quantum Agent(with Open vswitch) Nova-compute, KVM, Nova-api, Quantum Agent(with Open vswitch) 외부네트워크주소 /24 N/A 내부네트워크주소 / / /24 필요 NIC 개수 그림 A2.2. 시스템구축을위한노드및네트워크구성도 그림 A2.2는표 A2.1과같은기본정보를바탕으로실제 OpenStack 클라우드시스템을구축하는노드및네트워크의구성도이다. 각네트워크장비와노드에는간략한장비정보가포함되어있으며각장비사이의실선은유선이더넷링크를의미한다. 따라서, 그림과같이고가의서버장비및네트워크장비가아닌, 일반 L2 스위치와 x86 아키텍처기반의서버용데스크탑을사용하여컨트롤러노드, 네트워크노드및컴퓨트노드로구성된클라우드시스템을구축할수있다

177 OpenStack 기반클라우드서비스플랫폼구축매뉴얼 A2.3. 설치 본절에서는 A2.2절에서구축한클라우드시스템위에 OpenStack 소프트웨어플랫폼을설치하는방법을설명한다. 각노드에공통적으로해당되는부분인운영체제설치및공통패키지설치방법을먼저설명하고, 각노드에필요한소프트웨어패키지를운영체제에서제공하는소프트웨어패키지관리자및 CLI(Command Line Interface) 를사용하여설치하는방법에대하여설명한다. A 공통설치부분 아래에서설명할모든노드들은리눅스배포판인우분투 LTS(Long Term Support) 서버버전이설치된다. 본문서에서는운영체제설치에대하여상세히설명하지않지만, 기본적으로아래항목을충족하는것을기준으로한다. Ÿ Ÿ Ÿ Ÿ OS Version : Ubuntu LTS Server Hostname : Specified Partitioning : Guided - Use entire disk ( 단, 머신을다른 OS와함께사용하거나별도의파티션을원하는경우해당상황에맞게설정 ) Additional Package : OpenSSH server 운영체제설치를완료한후, OpenStack Grizzly 버전의설치를위해우분투클라우드아카이브를이용한다. 먼저, 아래와같이명령을수행한다. 이때, 가장앞의 # 은수퍼유저권한으로각명령이수행됨을의미하며본문서에서공통적으로사용된다. # apt-get install ubuntu-cloud-keyring 그후, 다음파일에아래라인을추가한다. 만약파일이존재하지않는다면생성하여야한다. File : /etc/apt/sources.list.d/cloud-archive.list, deb precise-updates/grizzly main 마지막으로아래명령을실행하여아카이브로부터 OpenStack Grizzly 버전을설치한다. 이때, 운영체제의업데이트또한동시에반영된다

178 OpenStack 기반클라우드서비스플랫폼구축매뉴얼 # apt-get update && apt-get upgrade 업데이트및소프트웨어패키지설치가정상적으로완료되면시스템을재가동시킨다. A 컨트롤러노드 본항에서는컨트롤러노드의운영체제설치및 A2.3.1항의공통설치부분을모두완료한이후의설치및설정과정이다. 먼저, 다음파일을수정하여네트워크설정을해야한다. 참고로, 표 A2.1에서와같이, 컨트롤러노드는최소두개의 NIC이필요하다. File : /etc/network/interfaces, auto eth0 iface eth0 inet static address netmask auto eth1 iface eth1 inet static address netmask gateway dns-nameservers 단, 위의설정내용중에서 eth1은각설치환경의네트워크에따라그값이변경되어야한다. 이후아래파일을수정한다. 해당설정파일에는다른설정값들이더많이존재할수있으며, 만일해당라인이존재하지않는다면추가하여야한다. File : /etc/sysctl.conf, net.ipv4.conf.all.rp_filter = 0 net.ipv4.conf.default.rp_filter = 0 이제, 아래명령어를사용하여변경된네트워크설정을적용시킨다. # /etc/init.d/networking restart 추가로, 각 OpenStack 노드들은시스템시간을동기화시켜줄필요가있다. 본문서에서는 NTP를사용하여노드간시스템시간을동기화한다

179 OpenStack 기반클라우드서비스플랫폼구축매뉴얼 # apt-get install -y ntp OpenStack 컴포넌트들은설정값저장등의용도로관계형데이터베이스를사용하며, 본문서에서는 MySQL을사용한다. 아래의명령을수행하여 MySQL 서버를설치한다. # apt-get install -y python-mysqldb mysql-server MySQL은기본값으로로컬에서의데이터베이스접속만허용하나, 컨트롤러의 MySQL 데이터베이스에접속하는 OpenStack 컴포넌트들은물리적으로다른노드에존재할수있다. 따라서아래와같이권한설정을해줄필요가있다. # sed -i 's/ / /g' /etc/mysql/my.cnf 아래명령을텍스트에디팅프로그램에복사한후에, 비밀번호 ( password ) 및노드의 IP 주소를수정하고명령을적용시킨다. # mysql -u root p <<EOF CREATE DATABASE nova; GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' \ IDENTIFIED BY 'password'; CREATE DATABASE glance; GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost' \ IDENTIFIED BY 'password'; CREATE DATABASE keystone; GRANT ALL PRIVILEGES ON keystone.* TO 'keystone'@'localhost' \ IDENTIFIED BY 'password'; CREATE DATABASE quantum; GRANT ALL PRIVILEGES ON quantum.* TO 'quantum'@'localhost' \ IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON quantum.* TO 'quantum'@' ' \ IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON quantum.* TO 'quantum'@' ' \ IDENTIFIED BY 'password'; FLUSH PRIVILEGES; EOF 별다른에러메시지없이위의절차가완료되면, 변경된설정값을적용시키기위해아래와같이명령을수행하여서비스를재시작한다

180 OpenStack 기반클라우드서비스플랫폼구축매뉴얼 # service mysql restart 그리고 OpenStack의컴포넌트들은컨트롤러노드의 RabbitMQ 서버를통해메시지를주고받게된다. RabbitMQ는메시지큐서버로, 아래와같이명령을수행하여설치한다. # apt-get install -y rabbitmq-server 설치가완료되면기본값으로설정되어있는비밀번호를수정한다. # rabbitmqctl change_password guest password 추가로, guest 계정을사용하고싶지않을경우에는관련문서를참조하여계정을추가하고비밀번호를지정한다. OpenStack은컴포넌트간인증 (Authentication) 과허가 (Authorization) 를위해 Keystone을사용한다. 해당소프트웨어패키지는아래명령으로설치할수있다. # apt-get install -y keystone python-keystone python-keystoneclient 설치완료후아래파일을수정하여설정값을적용시킨다. File : /etc/keystone/keystone.conf, [DEFAULT] admin_token = password debug = True verbose = True [sql] connection = mysql://keystone:password@localhost/keystone 이후반복되는유사한설정과정에서, MySQL의비밀번호는앞선과정에서설정한비밀번호로수정해주어야한다. 또한, 마찬가지로 password 로표기된기본비밀번호는설치과정에서적절한비밀번호로수정해야한다. 설정파일을수정한후에서비스를재시작하고, MySQL 데이터베이스에필요한테이블을추가한다. 아래명령어를사용한다. # service keystone restart # keystone-manage db_sync 위과정에서에러가발생하였거나, 정상동작여부를확인하고싶을경우로그파일 (/var/log/keystone/keystone.log) 을참조할수있다

181 OpenStack 기반클라우드서비스플랫폼구축매뉴얼 OpenStack 의 CLI 명령대부분은테넌트 (Tenant) 로구분되는인증및허가객체를 기반으로동작된다. 즉, 매명령어를수행할때마다해당명령에대한권한을인증해야 한다. 해당과정을간소화하기위해아래파일을생성하여환경변수에테넌트정보를 등록시킬수있다. 물론, 이파일을홈디렉토리의.bashrc 와같은파일에등록하여사 용할수도있다. Make a file : e.g) ~/openrc export OS_TENANT_NAME=admin export OS_USERNAME=admin export OS_PASSWORD=password export OS_AUTH_URL=" export OS_SERVICE_ENDPOINT=" export OS_SERVICE_TOKEN=password 생성한파일에실행권한을추가하고, 파일을실행하여환경변수를등록하여준다. # chmod +x ~/openrc # source ~/openrc 이제, 아래스크립트를생성하고필요한부분 ( 비밀번호, IP 주소등 ) 을수정하여실행 시킴으로써 Keystone 을동작시킨다. Make a file : #!/bin/bash ADMIN_PASSWORD=${ADMIN_PASSWORD:-password} SERVICE_PASSWORD=${SERVICE_PASSWORD:-$ADMIN_PASSWORD} DEMO_PASSWORD=${DEMO_PASSWORD:-$ADMIN_PASSWORD} export OS_SERVICE_TOKEN="password" export OS_SERVICE_ENDPOINT=" SERVICE_TENANT_NAME=${SERVICE_TENANT_NAME:-service} # MYSQL_USER=keystone MYSQL_DATABASE=keystone MYSQL_HOST=localhost MYSQL_PASSWORD=password # KEYSTONE_REGION=RegionOne KEYSTONE_HOST= # Shortcut function to get a newly generated ID

182 OpenStack 기반클라우드서비스플랫폼구축매뉴얼 function get_field() { while read data; do if [ "$1" -lt 0 ]; then field="(\$(nf$1))" else field="\$$(($1 + 1))" fi echo "$data" awk -F'[ \t]*\\ [ \t]*' "{print $field}" done } # Tenants ADMIN_TENANT=$(keystone tenant-create --name=admin grep " id " get_field 2) DEMO_TENANT=$(keystone tenant-create --name=demo grep " id " get_field 2) SERVICE_TENANT=$(keystone tenant-create --name=$service_tenant_name grep " id " get_field 2) # Users ADMIN_USER=$(keystone user-create --name=admin --pass="$admin_password" -- =admin@domain.com grep " id " get_field 2) DEMO_USER=$(keystone user-create --name=demo --pass="$demo_password" -- =demo@domain.com --tenant-id=$demo_tenant grep " id " get_field 2) NOVA_USER=$(keystone user-create --name=nova --pass="$service_password" -- tenant-id $SERVICE_TENANT -- =nova@domain.com grep " id " get_field 2) GLANCE_USER=$(keystone user-create --name=glance --pass="$service_password" --tenant-id $SERVICE_TENANT -- =glance@domain.com grep " id " get_field 2) QUANTUM_USER=$(keystone user-create --name=quantum --pass= "$SERVICE_PASSWORD" --tenant-id $SERVICE_TENANT -- =quantum@domain.com grep " id " get_field 2) # Roles ADMIN_ROLE=$(keystone role-create --name=admin grep " id " get_field 2) MEMBER_ROLE=$(keystone role-create --name=member grep " id " get_field 2)

183 OpenStack 기반클라우드서비스플랫폼구축매뉴얼 # Add Roles to Users in Tenants keystone user-role-add --user-id $ADMIN_USER --role-id $ADMIN_ROLE --tenantid $ADMIN_TENANT keystone user-role-add --tenant-id $SERVICE_TENANT --user-id $NOVA_USER -- role-id $ADMIN_ROLE keystone user-role-add --tenant-id $SERVICE_TENANT --user-id $GLANCE_USER -- role-id $ADMIN_ROLE keystone user-role-add --tenant-id $SERVICE_TENANT --user-id $QUANTUM_USER --role-id $ADMIN_ROLE keystone user-role-add --tenant-id $DEMO_TENANT --user-id $DEMO_USER --roleid $MEMBER_ROLE # Create services COMPUTE_SERVICE=$(keystone service-create --name nova --type compute -- description 'OpenStack Compute Service' grep " id " get_field 2) IMAGE_SERVICE=$(keystone service-create --name glance --type image -- description 'OpenStack Image Service' grep " id " get_field 2) IDENTITY_SERVICE=$(keystone service-create --name keystone --type identity --description 'OpenStack Identity' grep " id " get_field 2) EC2_SERVICE=$(keystone service-create --name ec2 --type ec2 --description 'OpenStack EC2 service' grep " id " get_field 2) NETWORK_SERVICE=$(keystone service-create --name quantum --type network -- description 'OpenStack Networking service' grep " id " get_field 2) # Create endpoints keystone endpoint-create --region $KEYSTONE_REGION --service-id $COMPUTE_SERVICE --publicurl ' $(tenant_id)s' --adminurl ' --internalurl ' keystone endpoint-create --region $KEYSTONE_REGION --service-id $VOLUME_SERVICE --publicurl ' $(tenant_id)s' --adminurl ' --internalurl ' keystone endpoint-create --region $KEYSTONE_REGION service-id $IMAGE_SERVICE --publicurl ' -- adminurl ' --internalurl ' '"$KEYSTONE_HOST"':9292'

184 OpenStack 기반클라우드서비스플랫폼구축매뉴얼 keystone endpoint-create --region $KEYSTONE_REGION --service-id $IDENTITY_SERVICE --publicurl ' -- adminurl ' --internalurl ' '"$KEYSTONE_HOST"':5000/v2.0' keystone endpoint-create --region $KEYSTONE_REGION --service-id $EC2_SERVICE --publicurl ' --adminurl ' --internalurl ' '"$KEYSTONE_HOST"':8773/services/Cloud' keystone endpoint-create --region $KEYSTONE_REGION --service-id $NETWORK_SERVICE --publicurl ' -- adminurl ' --internalurl ' '"$KEYSTONE_HOST"':9696/' 만일, 위설정과정에서에러가발생할경우, 에러메시지혹은로그파일을확인하여문제를해결할수있다. 또한, 문제를해결한후에위의스크립트를실행시키기전에아래의과정을거쳐이미생성되었을수있는데이터베이스테이블을정리해주어야한다. ### OPTIONAL ### # mysql -u root -p keystone -e "drop database keystone" # mysql -u root -p keystone -e "create database keystone # mysql -u root -p keystone -e "grant all privileges on keystone.* TO 'keystone'@'localhost' identified by 'password' # keystone-manage db_sync OpenStack은가상머신에설치되고동작할운영체제를관리하고그것을하나의이미지로관리하는 Glance 서비스를구동한다. OpenStack Glance 소프트웨어패키지는다음과같이설치할수있다. # apt-get install glance 설치를완료한후에, Glance의설정파일들을다음과같이수정한다. File #1 : /etc/glance/glance-api.conf, File #2 : /etc/glance/glance-registry.conf, [DEFAULT] sql_connection = mysql://glance:password@localhost/glance [keystone_authtoken]

185 OpenStack 기반클라우드서비스플랫폼구축매뉴얼 admin_tenant_name = service admin_user = glance admin_password = password 설정파일의수정이완료된후에, 아래명령어를통해서비스를재시작한다. # service glance-api restart && service glance-registry restart 또한, 위과정에서에러가발생하였거나, 정상동작여부를확인하고싶을경우로그파일들 (/var/log/glance/*.log) 을참조할수있다. 서비스가정상적으로재실행되는것을확인한후에, 아래명령어를통해데이터베이스를업데이트한다. # glance-manage db_sync OpenStack 클라우드의가상머신으로동작할수있는운영체제이미지는몇가지요구사항을필요로한다. 해당내용은관련문서에서자세히확인할수있으며, 본문서에서는이미만들어진이미지파일을다운로드하고, Glance 이미지서비스에등록시키도록한다. 다음과같은명령으로위과정을실행할수있다. # wget server-cloudimg-amd64-disk1.img # glance image-create --is-public true --disk-format qcow2 --containerformat bare --name "Ubuntu" < ubuntu server-cloudimg-amd64-disk1.img 이미지파일의다운로드및서비스에이미지등록이완료된후에, 아래명령어를통해정상등록여부를확인할수있다. # glance image-list 본문서의구성환경에서는컨트롤러노드가실제가상머신을구동하지는않지만, 마 찬가지로 Nova 컴포넌트를설치해주어야한다. 설치방법은다음과같다. # apt-get install -y nova-api nova-cert nova-common nova-conductor \ nova-scheduler python-nova python-novaclient nova-consoleauth novnc nova-novncproxy 설치가완료된후에, 설정파일 (/etc/nova/api-paste.ini) 을다음과같이수정한다

186 OpenStack 기반클라우드서비스플랫폼구축매뉴얼 File : /etc/nova/api-paste.ini, admin_tenant_name = service admin_user = nova admin_password = password 이후아래의라인들을 Nova 설정파일 (/etc/nova/nova.conf) 에추가한다. 일부라인 은실제설치환경에맞게수정할필요가있을수있다. File : /etc/nova/nova.conf, [DEFAULT] sql_connection=mysql://nova:password@localhost/nova rabbit_password=password auth_strategy=keystone # Networking network_api_class=nova.network.quantumv2.api.api quantum_url= quantum_auth_strategy=keystone quantum_admin_tenant_name=service quantum_admin_username=quantum quantum_admin_password=password quantum_admin_auth_url= libvirt_vif_driver=nova.virt.libvirt.vif.libvirthybridovsbridgedriver linuxnet_interface_driver=nova.network.linux_net.linuxovsinterfacedriver # Security Groups firewall_driver=nova.virt.firewall.noopfirewalldriver security_group_api=quantum # Metadata quantum_metadata_proxy_shared_secret=password service_quantum_metadata_proxy=true metadata_listen = metadata_listen_port = 8775 # Glance glance_api_servers= :9292 image_service=nova.image.glance.glanceimageservice # novnc novnc_enable=true novncproxy_port=6080 novncproxy_host= vncserver_listen=

187 OpenStack 기반클라우드서비스플랫폼구축매뉴얼 설정파일의수정이완료된후, 아래명령어를통해데이터베이스를업데이트한다. # nova-manage db sync 데이터베이스업데이트가성공적으로끝나면관련서비스들을재시작한다. # service nova-api restart # service nova-cert restart # service nova-consoleauth restart # service nova-scheduler restart # service nova-novncproxy restart 마찬가지로, 위과정에서에러가발생하였거나, 정상동작여부를확인하고싶을경우로그파일들 (/var/log/nova/nova-*.log) 을참조할수있다. 또한, 컨트롤러노드에는네트워크설정을담당하는 Quantum( 현재 Neutron으로프로젝트명변경및확장되었음 ) 컴포넌트도설치되어야한다. 아래명령어를통해설치할수있다. # apt-get install y quantum-server 정상적으로설치가완료된후, 아래두설정파일을수정해준다. File : /etc/quantum/quantum.conf, [DEFAULT] verbose = True rabbit_password = password [keystone_authtoken] admin_tenant_name = service admin_user = quantum admin_password = password File : /etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini, [DATABASE] sql_connection = mysql://quantum:password@localhost/quantum [OVS] tenant_network_type = gre tunnel_id_ranges = 1:1000 enable_tunneling = True local_ip = [SECURITYGROUP] firewall_driver = quantum.agent.linux.iptables_firewall.ovshybridiptablesfirewalldriver

188 OpenStack 기반클라우드서비스플랫폼구축매뉴얼 Quantum은다양한방법으로컨트롤러노드에구현될수있으나, 본문서에서는 OVS(Open vswitch) 와 GRE 터널링을사용하였다. 따라서, 아래명령을실행하여 Quantum의 OVS 플러그인을활성화시켜야한다. # ln -s /etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini /etc/quantum/plugin.ini 모든설정이정상적으로완료된후, 서비스를재시작한다. # service quantum-server restart 마지막으로, Web UI 기반의 OpenStack 제어및관리인터페이스인 Dashboard를설치한다. # apt-get install -y openstack-dashboard memcached python-memcache # apt-get remove --purge openstack-dashboard-ubuntu-theme 정상적으로설치가완료되었다면, 컨트롤러노드의공인 IP 주소를사용하여웹브라우저로 Dashboard 관리페이지에접속할수있다. 만약, 위과정에서에러가발생하였거나, 정상동작여부를확인하고싶을경우로그파일들 (/var/log/apache/error.log) 을참조한다. A 네트워크노드 본항에서는네트워크노드의운영체제설치및 A2.3.1항의공통설치부분까지모두완료한이후의설치및설정과정이다. 먼저, 다음파일을수정하여네트워크설정을해야한다. 참고로, 표 A2.1에서와같이, 네트워크노드는최소두개의 NIC이필요하다. File : /etc/network/interfaces, auto eth0 iface eth0 inet static address netmask auto eth1 iface eth1 inet static address netmask gateway dns-nameservers

189 OpenStack 기반클라우드서비스플랫폼구축매뉴얼 단, 위의설정내용중에서 eth1은각설치환경의네트워크에따라그값이변경되어야한다. 이후아래파일을수정한다. 해당설정파일에는다른설정값들이더많이존재할수있으며, 만일해당라인이존재하지않는다면추가하여야한다. File : /etc/sysctl.conf, net.ipv4.conf.all.rp_filter = 0 net.ipv4.conf.default.rp_filter = 0 이제, 아래명령어를사용하여변경된네트워크설정을적용시킨다. # /etc/init.d/networking restart 추가로, 각 OpenStack 노드들은시스템시간을동기화시켜줄필요가있다. 본문서에서는 NTP를사용하여노드간시스템시간을동기화한다. # sed -i 's/server ntp.ubuntu.com/server /g' /etc/ntp.conf # service ntp restart 네트워크노드에 Quantum 컴포넌트의소프트웨어패키지를설치한다. # apt-get install quantum-plugin-openvswitch-agent quantum-dhcp-agent quantum-l3-agent 이후, Open vswitch 서비스를시작한다. 이미정상구동중일경우에러메시지가발생할수도있다. # service openvswitch-switch start 네트워크노드는 OVS를사용하여가상머신의네트워크를관리하고, 그를위해가상스위치를생성해줄필요가있다. 또한, 해당과정에서생성한가상스위치를사용하기때문에리눅스네트워크설정에서도변경사항이발생한다. ovs-vsctl add-br br-ex # ovs-vsctl add-port br-ex eth1 # ovs-vsctl add-br br-int

190 OpenStack 기반클라우드서비스플랫폼구축매뉴얼 File : /etc/network/interfaces, auto eth0 iface eth0 inet manual up ip address add 0/0 dev $IFACE up ip link set $IFACE up down ip link set $IFACE down auto br-ex iface br-ex inet static address netmask gateway dns-nameservers 위과정을통해기존 eth1에대한네트워크설정을가상스위치 (br-ex) 가대신하게되었다. 설정파일수정이끝난후아래명령을통해 eth1에지정되어있는네트워크설정값을삭제한다. # ip addr del /24 dev eth1 이후네트워크를재시작한다. # /etc/init.d/networking restart 마지막으로, 간단한 NAT 설정을추가한다. 이과정을통해가상머신에서네트워크 노드를통해인터넷에접속할수있게된다. # echo 1 > /proc/sys/net/ipv4/conf/all/forwarding # iptables -A FORWARD -i eth0 -o br-ex s /24 -m conntrack --ctstate NEW j ACCEPT # iptables A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED j ACCEPT # iptables -A POSTROUTING s /24 -t nat -j MASQUERADE 위과정을모두마친후에, 아래네개설정파일에대한수정을진행한다

191 OpenStack 기반클라우드서비스플랫폼구축매뉴얼 File #1 : /etc/quantum/quantum.conf, [DEFAULT] verbose = True rabbit_password = password rabbit_host = [keystone_authtoken] auth_host = admin_tenant_name = service admin_user = quantum admin_password = password File #2 : /etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini, [DATABASE] sql_connection = mysql://quantum:password@ /quantum [OVS] tenant_network_type = gre tunnel_id_ranges = 1:1000 enable_tunneling = True local_ip = [SECURITYGROUP] firewall_driver = quantum.agent.linux.iptables_firewall.ovshybridiptablesfirewalldriver File #3 : /etc/quantum/dhcp_agent.ini, [DEFAULT] enable_isolated_metadata = True enable_metadata_network = True File #4 : /etc/quantum/metadata_agent.ini, [DEFAULT] auth_url = auth_region = RegionOne admin_tenant_name = service admin_user = quantum admin_password = password nova_metadata_ip = metadata_proxy_shared_secret = password

192 OpenStack 기반클라우드서비스플랫폼구축매뉴얼 위의네개파일에대한수정을모두완료하고, 아래명령을통해관련서비스를재 시작한다. # service quantum-plugin-openvswitch-agent start # service quantum-dhcp-agent restart # service quantum-metadata-agent restart # service quantum-l3-agent restart 또한, 위과정에서에러가발생하였거나, 정상동작여부를확인하고싶을경우로그 파일들 (/var/log/quantum/*.log) 을참조할수있다. 컨트롤러노드에서와같이, 네트워크노드에서도편의를위해테넌트정보를환경변 수에등록하는파일을생성한다. Make a file : e.g) ~/openrc export OS_TENANT_NAME=admin export OS_USERNAME=admin export OS_PASSWORD=password export OS_AUTH_URL=" export SERVICE_ENDPOINT=" export SERVICE_TOKEN=password 생성한파일에실행권한을추가하고, 파일을실행하여환경변수를등록하여준다. # chmod +x ~/openrc # source ~/openrc 이제, 아래스크립트를생성하고필요한부분 ( 비밀번호, IP 주소등 ) 을수정하여실행 시킨다. #!/bin/bash TENANT_NAME="demo TENANT_NETWORK_NAME="demo-net" TENANT_SUBNET_NAME="${TENANT_NETWORK_NAME}-subnet" TENANT_ROUTER_NAME="demo-router" FIXED_RANGE=" /24" NETWORK_GATEWAY=" " TENANT_ID=$(keystone tenant-list grep " $TENANT_NAME " awk '{print $2}') TENANT_NET_ID=$(quantum net-create --tenant_id $TENANT_ID $TENANT_NETWORK_NAME --provider:network_type gre -- provider:segmentation_id 1 grep " id " awk '{print $4}') TENANT_SUBNET_ID=$(quantum subnet-create --tenant_id $TENANT_ID ip_version 4 --name $TENANT_SUBNET_NAME $TENANT_NET_ID $FIXED_RANGE --gateway $NETWORK_GATEWAY --dns_nameservers list=true grep " id " awk'{print $4}') ROUTER_ID=$(quantum router-create --tenant_id $TENANT_ID $TENANT_ROUTER_NAME grep " id " awk '{print $4}') quantum router-interface-add $ROUTER_ID $TENANT_SUBNET_ID

193 OpenStack 기반클라우드서비스플랫폼구축매뉴얼 위스크립트를실행함으로써 demo 라는이름의테넌트로프로젝트가실행되고, 가상머신의구동을위한내부네트워크및소프트웨어스위치 ( 라우터 ) 가설정된다. 이제, 아래명령을수행하여각가상머신에서사용할수있는공인 IP 주소풀을등록한다. # quantum net-create public --router:external=true # quantum subnet-create --ip_version 4 --gateway public /24 --allocation-pool start= xxx,end= xxx --disable-dhcp --name public-subnet # quantum router-gateway-set demo-router public 이때, 사용할수있는공인 IP 주소대역이연속되지않거나여러서브넷으로존재할경우에는 --allocation-pool 옵션을중복사용하여해당 IP 주소를등록할수있다. 즉, 아래예시와같이다수의 IP 주소및대역을주소풀에등록시킬수있다. ### Allocation example ### # quantum subnet-create --ip_version 4 --gateway public /24 --allocation-pool start= ,end= \ --allocation-pool start= ,end= \ --disable-dhcp --name public-subnet A 컴퓨트노드 본항에서는컴퓨트노드의운영체제설치및 A2.3.1항의공통설치부분까지모두완료한이후의설치및설정과정이다. 먼저, 다음파일을수정하여네트워크설정을해야한다. 참고로, 표 A2.1에서와같이, 컴퓨트노드는최소한개의 NIC 만으로구성이가능하지만필요에따라 NIC이추가될수있고그경우네트워크설정파일은다소다르게설정될수있다. File : /etc/network/interfaces, auto eth0 iface eth0 inet static address netmask

194 OpenStack 기반클라우드서비스플랫폼구축매뉴얼 이후아래파일을수정한다. 해당설정파일에는다른설정값들이더많이존재할수 있으며, 만일해당라인이존재하지않는다면추가하여야한다. File : /etc/sysctl.conf, net.ipv4.conf.all.rp_filter = 0 net.ipv4.conf.default.rp_filter = 0 이제, 아래명령어를사용하여변경된네트워크설정을적용시킨다. # /etc/init.d/networking restart 추가로, 각 OpenStack 노드들은시스템시간을동기화시켜줄필요가있다. 본문서에서는 NTP를사용하여노드간시스템시간을동기화한다. # sed -i 's/server ntp.ubuntu.com/server /g' /etc/ntp.conf # service ntp restart 이후아래명령을통해 Nova 컴퓨트패키지를설치한다. # apt-get install nova-compute-kvm 설치과정이정상적으로종료된후, 아래두설정파일을수정한다. File # 1 : /etc/nova/api-paste.ini, [filter:authtoken] auth_host = admin_tenant_name = service admin_user = nova admin_password = password

195 OpenStack 기반클라우드서비스플랫폼구축매뉴얼 File #2 : /etc/nova/nova.conf, [DEFAULT] # General verbose=true rabbit_host= rabbit_password=password auth_strategy=keystone ec2_host= ec2_url= # Networking libvirt_use_virtio_for_bridges=true network_api_class=nova.network.quantumv2.api.api quantum_url= quantum_auth_strategy=keystone quantum_admin_tenant_name=service quantum_admin_username=quantum quantum_admin_password=password quantum_admin_auth_url= # Security Groups firewall_driver=nova.virt.firewall.noopfirewalldriversecurity_group_api=quan tum # Compute compute_driver=libvirt.libvirtdriver connection_type=libvirt # Glance glance_api_servers= :9292 image_service=nova.image.glance.glanceimageservice # Novnc vnc_enabled=true vncserver_proxyclient_address= novncproxy_base_url= vncserver_listen=

196 OpenStack 기반클라우드서비스플랫폼구축매뉴얼 설정파일의수정이완료된후, Nova 컴퓨트서비스를재시작한다. # service nova-compute restart 이제컴퓨트노드에 Open vswitch 및 Quantum 네트워크관리컴포넌트를설치한다. # apt-get install y openvswitch-switch # apt-get install -y quantum-plugin-openvswitch-agent 설치가완료된후에, 필요하다면서비스를시작시킨다. 그리고가상스위치 br-int 를생성한다. # service openvswitch-switch start # ovs-vsctl add-br br-int 그리고두개의 Quantum 설정파일을수정한다. File #1 : /etc/quantum/quantum.conf, [DEFAULT] rabbit_host = rabbit_password = password verbose = True File #2 : /etc/quantum/plugins/openvswitch/ovs_quantum_plugin.ini, [DATABASE] sql_connection = mysql://quantum:password@ /quantum [OVS] tenant_network_type = gre tunnel_id_ranges = 1:1000 local_ip = enable_tunneling = True [SECURITYGROUP] firewall_driver = quantum.agent.linux.iptables_firewall.ovshybridiptablesfirewalldriver 설정파일의수정이완료된후, 서비스를재시작시킨다. # service quantum-plugin-openvswitch-agent restart

197 OpenStack 기반클라우드서비스플랫폼구축매뉴얼 위과정에서에러가발생하였거나, 정상동작여부를확인하고싶을경우로그파일 (/var/log/quantum/openvswitch-agent.log) 을참조할수있다. A2.4. 가상머신구동및관리 본절에서는, A2.3절에서구축한 OpenStack 기반의클라우드서비스플랫폼을사용하여가상머신을구동하고관리하는방법에대하여설명한다. 또한, A2.3절의설치과정에서설명한 Dashboard를사용하여 Web UI를사용한사용자입장에서의사용방법위주로설명하기로한다. A OpenStack Dashboard 일반적으로, 컨트롤러노드의공인 IP 주소를바탕으로웹브라우저로아래주소에접속을시도하면그림 A2.3과같은 Dashboard 로그인화면을만날수있다. 설치과정을그대로따라했을경우관리자권한계정은 admin/password로접속할수있으며, demo/password 계정을통해 A2.3절에서설정한프로젝트를관리할수있다. 그림 A2.3. OpenStack Dashboard 의로그인화면

198 OpenStack 기반클라우드서비스플랫폼구축매뉴얼 그림 A2.4. OpenStack Dashboard 의인스턴스생성인터페이스 A 인스턴스 ( 가상머신 ) 생성 Dashboard 초기화면에서 demo 계정으로로그인하면, 프로젝트에할당된가용자원현황및사용중인자원과인스턴스현황을확인할수있다. 단, 여기서확인할수있는수치는관리권한계정에서임의로할당가능하며, 실제클라우드시스템의최대가용자원과는무관하다. 로그인된화면에서, 좌측의메뉴중 인스턴스들 을선택하고 Launch Instance 버튼을누르면그림 A2.4와같이인스턴스생성팝업이표시된다. Details 탭에서확인할수있는 Image 는인스턴스에설치되고구동될운영체제이미지를의미하며 A2.3절에서설명한방법과같이등록할수있다. Flavor는미리지정된인스턴스의규격을의미한다. Access & Security 탭에서는공개키방식의암호화를이용하여비밀번호입력없이 ssh에접속할수있도록하기위해키를등록하거나이미등록된키를사용하여인스턴스를생성할수있다

199 OpenStack 기반클라우드서비스플랫폼구축매뉴얼 A 인스턴스관리 인스턴스가정상적으로생성된후에, Dashboard를사용하여다양한관리작업을수행할수있다. 우선, A2.4.2항에서설명한대로인스턴스가정상적으로생성및구동이될경우그림 A2.5와같이인스턴스의기본정보및 Active 로표시된상태를확인할수있다. 그림 A2.5. OpenStack Dashboard 의인스턴스정보표시 먼저원격지에서인스턴스에접속이가능하도록하기위해, 인스턴스에공인 IP를할당하는방법에대하여설명한다. 그림 A2.5에서, 인스턴스정보의 작동 열에있는 더 버튼을클릭해서 Associate Floating IP 를선택한다. 이후팝업되는창에서원하는공인 IP를선택할수있으며, 해당 IP 주소의등록및관리방법은 A2.3절에서설명하였다. 위와같은방법을사용하여, 공인 IP의할당외에도인스턴스의시스템로그확인또는재부팅, 강제종료등의관리또한가능하다. A2.5. 결론 본문서는개방형모바일네트워크테스트베드기술실증시험과제의클라우드시스템으로구축된 OpenStack 기반클라우드서비스플랫폼의구축방법을설명하고, 사용자입장에서 OpenStack Dashboard UI를사용하여인스턴스를생성및관리하는방법에대하여설명하였다. 본문서를통하여성공적으로서비스플랫폼을구축하고난후에, 조금더높은사용성이나확장성이요구될수있다. 그러한경우단순히컴퓨트노드를추가하고노드의추가에따른설정을수정하는것만으로도가용클라우드자원을확장할수있으며, 필요에따라컨트롤러노드또는네트워크노드의확장또한가능하다

200 미래네트워크연구시험망실증시험과제 A3. SDN Controller 구축매뉴얼 Copyright C 2013 경희대학교네트워킹연구실 All right reserved 사전승인없이본내용의전부또는일부에대한복사, 전재, 배포, 사용을금합니다. 경희대학교

201 SDN Controller 구축매뉴얼 제 / 개정이력 버전날짜작성자성명제 / 개정사항비고 홍충선, 문승일최초작성

202 SDN Controller 구축매뉴얼 A3.1. 서론 본문서는 OpenFlow 기반네트워크를제어하기위해 Floodlight 을이용하여 SDN Controller 를구축하기위한 SDN Controller 구축매뉴얼이다. Floodlight 은 Java 기반의 SDN Controller 이며, JVM 에서동작한다. A3.2. Floodlight 설치하기 A 요구사항 Linux - Ubuntu 또는이상버전 - 실행을위한 JDK 와 Ant 설치 A 다운로드및빌드하기 Floodlight을설치하기전에필수요소들을설치한다. $ sudo apt-get install build-essential default-jdk ant python-dev eclipse git Github를통해 Floodlight을설치한다. $ git clone git://github.com/floodlight/floodlight.git floodlight을설치한폴더로이동한후 ant를실행한다. $ cd floodlight $ ant A Floodlight 실행및 Controller 접속확인 콘솔창에서아래명령어수행을통해 Floodlight을실행할수있다. $ java -jar target/floodlight.jar Floodlight을실행한후네트워크의상태정보를웹브라우저를통해 컨트롤러 IP주소 :8080/ui/index.html 접속하면 Controller의상세정보를확인할수있다

203 SDN Controller 구축매뉴얼 그림 A3.1. Floodlight Web UI A3.3. 개발을위한환경설정 A Eclipse 설정 콘솔에서 floodlight 폴더로이동한후다음과같이명령어를실행한다. $ ant eclipse 그후 eclipse를실행하여 Import 과정을통해 floodlight 프로젝트를불러와개발이가능하다. 프로젝트 import 과정은다음과같다. 1. eclipse 실행후 workspace를새로생성한다. 2. File -> Import -> General -> Existing Projects into Workspace 를선택한후 Next 클릭 3. Select root directory 를선택한후 Browse 클릭 floodlight 폴더를선택한다. 4. Finish 클릭

204 SDN Controller 구축매뉴얼 FloodlightLaunch target 생성하기 1. Run -> Run Configurations 클릭 2. Java Application 오른쪽클릭후 New 선택 3. FloodlightLaunch로사용할이름을 Name 항목에입력 4. Project 항목에 floodlight 선택 5. Main class 항목에 net.floodlightcontroller.core.main 입력 6. Apply 클릭 그림 A3.2. Eclipse 를이용한개발환경구성

205 미래네트워크연구시험망실증시험과제 A4. SDN Controller 를위한 API 기술문서 Copyright C 2013 경희대학교네트워킹연구실 All right reserved 사전승인없이본내용의전부또는일부에대한복사, 전재, 배포, 사용을금합니다. 경희대학교

206 SDN Controller 를위한 API 기술문서 제 / 개정이력 버전날짜작성자성명제 / 개정사항비고 홍충선, 문승일최초작성

207 SDN Agent 요구사항명세서 A4.1. 서론 본문서는 Floodlight을기반으로하여 OpenFlow 네트워크를제어하기위한 API 기술문서이다. A 개발환경 - Ubuntu LTS - Floodlight Java v Apache tomcat v7.0(http/https 통신지원 ) A4.2. 시스템구조 A SDN 기반네트워크제어를위한시스템구조 그림 A4.1. OpenFlow 기반네트워크제어프레임워크구조도

208 SDN Agent 요구사항명세서 그림 A4.1은 OpenFlow 기반네트워크제어프레임워크구조도이다. 그림에서와같이 Path Manger와 VN Manager는 HTTP(Hypertext Transfer Protocol) 표준통신방법을이용하여통신하며요청에대한결과값은 JSON (JavaScript Object Notation) 을통해전달받는형식으로동작한다. Path Manager를통해요청되는작업은 VN Manager의 Request Msg Analyzer로전달되어분석된후이에상응하는 API를호출하게된다. 호출된 API는 Floodlight의 REST API와연동하여사용자의요청을 Floodlight에전달함으로써 OpenFlow 기반네트워크를제어하게된다. A4.3. VN API(Virtual Network API) A VN API 개발 VNAPI는 Floodlight와의통신부분 (Communication 인터페이스구현 ) 과 HTTP 사용자요청처리부분으로나뉜다. 그리고다시통신부분은메시지분류및처리영역 (MessageDispacture 와 MessageProcessor), 메시지생성및메시지큐관리영역으로나뉘며, HTTP 사용자요청처리부분은 5개의사용자요청처리영역과링크상태관리영역으로나뉜다. 아래는각세부영역별로개발된클래스도를나타낸다. 그림 A4.2. VNAPI 메시지큐구조메시지생성영역 그림 A4.2 은사용자요청메시지를저장하는큐와메시지생성자에관한클래스도이

209 SDN Agent 요구사항명세서 다. HTTP로부터넘어온메시지는 MessageGenerator를통해가공되고이메시지는 MessageQueue에저장되어 SDN Controller에의해작업이처리되고결과를전달받게된다. 이때 Message에대한처리결과는 callbackmessage 함수를통해전달받게되는데이 callbackmessage함수를함수는 Callback 인터페이스를구현부분이메시지와함께전달하게되어처리후 MessageProcessor에의해회신받게된다. 그림 A4.3. VNAPI 의사용자메시지분류및처리영역 그림 A4.3 은 VNAPI 의결과메시지분류및처리영역을나타낸다. 이영역에서는처 리를위해 SDN Controller 로전달된사용자의메시지의결과를 Callback 함수를통해전 달하거나결과가나올때까지기다리는역할을수행하게된다

210 SDN Agent 요구사항명세서 그림 A4.4. HTTP 요청처리부분 그림 A4.4 는 HTTP 호출기반의요청처리부분으로사용자는 HTTP 표준통신방법을 통해서비스를요청하게되고이런처리는 RequestProcessor 에의해처리된후 JSON 으 로변환되어요청에응답하게된다. 그림 A4.5. RequestProcessor 의 HTTP 요청처리영역 그림 A4.5는 RequestProcessor의 HTTP 요청처리영역으로현재 VNAPI는플로우의추가삭제 (AddReqeustProcessor, DeleteReqeustProcessor) 기능, 사용자플로우테이블정보 (UserFlowTableReqeustProcessor), 토폴로지정보 (TopologyReqeustProcessor), 링크상태정보 (LinkStateRequestProcessor) API를제공한다

211 미래네트워크연구시험망실증시험과제 A5. SDN Agent 요구사항명세서 Copyright C 2013 경희대학교네트워킹연구실 All rights reserved. 사전승인없이본내용의전부또는일부에대한복사, 전재, 배포, 사용을금합니다. 경희대학교

212 SDN Agent 요구사항명세서 제 / 개정이력 버전날짜작성자성명제 / 개정사항비고 홍충선, 문승일최초작성

213 SDN Agent 요구사항명세서 A5.1. 서론 본문서는 Floodlight 을기반으로하여 OpenFlow 네트워크를제어하는시스템에서 동작하는 SDN Agent 를개발하기위한소프트웨어요구사항명세서 (SRS) 이다. A5.1.1 용어정의 용어 SRS Flow SDN 설명 Software Requirement Specification, 소프트웨어요구사항명세서출발지주소, 출발지포트, 목적지주소, 목적지포트, 전송계층프로토콜이동일한패킷의집합사용자가원하는형태의네트워크를범용 Hardware와 Programmable Software를사용하여사용자가설정하고관리하는것을가능하게하는네트워크

214 SDN Agent 요구사항명세서 A5.2. 기능요구사항 A SDN Agent 그림 A5.1. SDN Agent 의 Use Case SDN Agent 는 SDN Controller 로부터요청을수신대기하고수신받은요청을분석하 여수행한후그결과를다시 SDN Controller 에게전달한다

215 SDN Agent 요구사항명세서 그림 A5.2. SDN Controller 와 SDN Agent 사이의동작절차 그림 A5.3. SDN Agent 의주요모듈 Class 다이어그램

216 SDN Agent 요구사항명세서 A Listen Policy 표 A5.1. Listen Policy 기능요구사항 설명입력출력상세요구사항 SDN Controller 로부터의요청을수신대기하고, 수신된메시지를분석하여 Policy Analyzer 모듈에전달 XML type 메시지 XML type 메시지 SRS F 001 SRS F 002 SDN Controller 로부터의요청을항상대기 수신된요청메시지파싱하여 Policy Analyzer 모듈에전달 A Policy Analyzer 표 A5.2. Policy Analyzer 기능요구사항 설명입력출력상세요구사항 수신된 XML 형식의 Policy 를분석하여결과를 Apply Request 에게전달한다. XML type 메시지 분석결과 SRS F 003 분석결과에따라 SDN Controller 의요청사항을수행한다. A Keep Alive 표 A5.3. Keep Alive 기능요구사항 설명입력출력상세요구사항 분석된결과에따라 SDN Controller 의요청사항 (Keep Alive 여부확인 ) 을수행한다. Policy Analyzer 의분석결과 수행결과 SRS F 004 수행결과를 SDN Controller 에전달하기위해 Reply Result 에게전달

217 SDN Agent 요구사항명세서 A Reply Result 표 A5.4. Policy Analyzer 기능요구사항 설명 Apply Request에게전달받은수행결과를 SDN Controller에게전달한다. 입력 수행결과 출력 XML type 메시지 상세요구사항 SRS F 005 XML type의메시지를 SDN Controller에게전달

218 SDN Agent 요구사항명세서 A5.3. 인터페이스요구사항 표 A5.5. 인터페이스요구사항 구분인터페이스데이터설명 Input SRS-I-001 High-level Policy XML Policy Processing System 에서생성한 High-level Policy 를저장하고있는 XML 형 태의파일 Output SRS-I-002 Control Result XML SDN Agent 에서수행한대역폭제어결과파일 A XML 메시지정의 SDN Controller 와 SDN Agent 사이에주고받는 XML 의형식은다음과같다. A SDN Controller 에서 SDN Agent에게요청하는 Policy XML 형식 SDN Controller는 SDN Agent에게다음과같이정책을요청할수있다. 표 A5.6. Policy 리스트 Policy keepalive 설명 Keep Alive 메시지를통해장치의동작여부를 Controller 에게전달 한다. 표 A5.7. XML 형식 <request> <policy>keepalive</policy> </request>

219 SDN Agent 요구사항명세서 A SDN Agent 에서 SDN Controller 에게보내는 응답 XML 형식 SDN Controller 는 SDN Agent 에게다음과같이정책을요청할수있다. 표 A5.8. Policy 리스트 Policy 타입설명 keepalive true false 정상적으로동작하고있음 문제발생, 확인요망 표 A5.9. XML 형식 <request> <policy>keepalive <result>true</result> </policy> </request>

220 미래네트워크연구시험망실증시험과제 A6. Topology GUI Environment Copyright C 2013 경희대학교네트워킹연구실 All rights reserved. 사전승인없이본내용의전부또는일부에대한 복사, 전재, 배포, 사용을금합니다. 경희대학교

221 Topology GUI Environment 제 / 개정이력 버전날짜작성자성명제 / 개정사항비고 Dai H. Tran Initial drafted document Add more details about Dai H. Tran framework and classes

222 Topology GUI Environment A6.1. Glossary 용어 HTML5 RESTful API JSON IDE Eclipse GWT Chrom e MVC SVG Git 설명 Hyper Text Markup Language Version 5, the standard markup language for creating web pages Representational State Transfer Application Programming Interface, predominant web API design model JavaScript Objection Notation, an open standard format that uses human-readable text to transmit data objects consisting of attribute value pair Integrated Development Environment, a software application for software development A famous, open-source IDE Google Web Toolkit, an open source set of tools that allows web developers to create and maintain complex JavaScript front-end applications in Java A Google web browser product Model-View-Controller, a software architecture used in software engineering, that has 3 entities: Model, View and Controller Scalable Vector Graphic, XML-based vector image format for two-dimensional graphics that has support for interactivity and animation A distributed revision control and source code management

223 Topology GUI Environment A6.2. Introduction Topology GUI environment (TGE) is a web application that helps illustrate the Open Mobile Network Testbed (OMNT) topology. Users can perform various interactions with the GUI to examine the whole network topology. To make it portable and working across different platforms, topology GUI environment is developed to give output as HTML5 (the new web standard markup language). Here are some of the decision was made by the author to develop this TGE: - The chosen development tool and framework are Google Web Toolkit (GWT) and Eclipse IDE, they are well integrated to each other. GWT helps developers to use JAVA and compile the source code to JavaScript, thus produce a well interactive web application. - MVC design pattern is applied to provide fine-grain control over the complexity for GUI application. - RESTful API is used in communication by client (TGE) and the cloud (OMNT) A6.3. System overview Figure A6.1 describes the abstract level of how the TGE fits into the whole OMNT. User have a set of user interface (UI) components such as buttons, menus in the TGE to interact with. Base on that, the TGE will use the OMNT cloud Application Programming Interface (API) to get various topology information. The API is implemented as RESTful web API, thus the API will return JavaScript Object Notation (JSON) as its result. 그림 A6.1 System overview

224 Topology GUI Environment A6.4. System functionality The table below describes the set of initial functionality that user can interact with the TGE. New functionality will be added in futures as the project requirements increase. 표 A6.1 System functionality Function 1 - See all OMNT topology information 2 - Zoom into a cluster, get its information 3 - View a path-flow connection from one end-host/switch (node) to another node in the topology Action User clicks on button get topology User clicks on zoom button, then clicks on a cluster User clicks on make path button, then clicks on two nodes A6.5. Development tool/framework The author uses GWT as the framework for development because of the author's proficiency in Java programming language. The chosen IDE is Eclipse, an open-source, versatile IDE to help speed up the development process. Other reasons for choosing GWT are the rich set of provided widgets (an UI component) and its strong open-source community. When compiling the source code, GWT will convert Java into JavaScript code to run in the browser. And the main target browser in the development is Google Chrome. The details of how to development environment was setup are describes below. A Get the right Eclipse version Eclipse is a mature open-source IDE that support many programming languages, frameworks and has thousands of plugins that support almost any aspect of programming. As a result, Eclipse IDE comes with a variety of versions and

225 Topology GUI Environment distributions. The author has decided to get the standard JAVA distribution named: Eclipse IDE for Java Developers that cooperates the latest Eclipse version 4.3, which includes support for Java programming environment, Git version control and many other useful features that support Java developers. Figure A6.2 shows the chosen Eclipse IDE version from Eclipse download website. 그림 A6.2 Eclipse IDE Java version A Install GWT into Eclipse To enable the GWT in Eclipse, the author needs to install the GWT plugin that is provided by Google. Fortunately, Eclipse makes the GWT installation relatively easy by using the Eclipse Marketplace (EM). EM is the also a plugin of Eclipse, that acts as a centralize plugin repository and provide one-click installation experience. Developers can search the plugin he/she wants, then click on install, the rest will be handled by Eclipse itself. To install GWT, simply open Eclipse Marketplace in Eclipse menu Help -> Eclipse Marketplace. Type in the search box GWT and press search, then choose the plugin Google Plugin for Eclipse 4.3 (Figure A6.3), click install to get the GWT framework

226 Topology GUI Environment 그림 A6.3 GWT installation in Eclipse

227 Topology GUI Environment A Testing and Debugging with Chrome A Getting the GWT plugin With the main target browser is Google Chrome, the author performed testing and debugging also with Chrome browser. For this purpose, we need to install specific plugin for Chrome. The plugin name is GWT Developer Plugin, it can be easily install at Chrome web store. Figure A6.4 shows the plugin in Chrome web store. 그림 A6.4 GWT plugin in Chrome web store

228 Topology GUI Environment A Import project to Eclipse by Maven TGE project was developed using Maven for project management. Maven is a powerful software project management that can manage project build, reporting and documentation. Maven is well integrated with Eclipse through its plugin, thus new developer can install and import this TGE easily and continue the development cycle. To import TGE using Maven, from Eclipse IDE, choose menu File -> Import -> click on Maven -> Existing Maven Projects. Now choose the TGE project folder. Figure A6.5 shows the process of importing TGE. 그림 A6.5 Import Maven project

229 Topology GUI Environment A6.6. MVC Design pattern The TGE application has medium complexity in user interaction. It can evolve to a complex GUI application later on. To address this issue, the author applied a modified Model-View-Controller pattern when implementing the application. Figure A6.6 shows how the modified MVC works in TGE. Each view will have its own controller. When a user interacts with the view, the events will be sent to a separate component called the EventBus. The EventBus will perform some reasoning to deliver the events to appropriate controllers. This model focuses on centralizing the user event processing part to one entity, which can help organize and avoid messy events handling. The classes are described as follows. 그림 A6.6 Modified MVC architecture

230 Topology GUI Environment A View class View classes represent the User interface components on the web pages that users can see and interact with. Most of the View classes are extended classes from the GWT widget library. Inside a View class, there can be many child components, which can be seen as sub View classes as well, as illustrated in Figure A6.9. For example, inside the menu bar, we will have multiple menu buttons, and inside tab bar panel, we can have drawing panel or information panel. Not all view has controller, for example, standard widget like button or label will not have associate controller. Only the view that has many child component will have controller. Each view also has its parent that is registered when the view is created from the parent. Last but not least, each view can update itself to reflect the event interaction. For example, the drawing panel will display all the network topology after user click on show Global topology button. Figure A6.7 shows the common fields/methods of a View class. 그림 A6.7 General View class

231 Topology GUI Environment A Controller class Controller classes is the mediate entity that connect View and business Model of the TGE that handle generate events. It is important to distinguish two type of events in the TGE, they are: Ÿ View events: Events generated by UI components such as button clicked, menu item clicked, etc. All of these event will be forwarded to the View s controller. Ÿ User events: These events are for user interaction, for example, user clicks on Global topology button, not only a button clicked event generated, but also a user event is called. But user events will be sent to EventBus class, not the View s controller. Besides handling events, controller class also update business models, which are network topologies. Figure A6.8 shows a general controller class fields/method. 그림 A6.8 General controller class A Model class Model classes are the classes that represent network topology such as switches, routers, gateways, connections between them, etc. Each of these model will have different attributes, and its information is delivered from the OMNT cloud, which can be requested by calling its RESTful API for its returned JSON result. Currently, there are 4 types of network topology, and are abstracted into 2 types Node and Link: Ÿ Switch: represents a switch router (a node) Ÿ End-host: represents a physical computer that connect to the OMNT (a node) Ÿ Gateway: represents a gateway (a node) Ÿ Link: represents a connection between 2 nodes

232 Topology GUI Environment A EventBus class EventBus is an important class that will direct the interaction flow of user and the TGE. The biggest problem with most of the GUI application is that when the application grows bigger with more complexity in user interface, maintaining a correct logic of user events handling can be frustrating. For example, in the TGE, when a user clicks on button Global topology, various things happen. Ÿ First the user event will be processed, in which a request is sent to OMNT cloud s RESTful API to get network topology information. Ÿ When JSON result is returned, TGE will create model classes (Node and Link classes), then updates the drawing panel and information panel for displaying results to user. As you can see, for just one user event, many class entities get involved, including controllers, views and models. If we don t have a standard way to control the flow, the program codes will become difficult to understand. As illustrated in Figure A6.6, the EventBus class will forward user events to appropriate controllers, and these controllers will update appropriate views and models instances

233 Topology GUI Environment A6.7. GUI design overview Figure A6.9 shows the general design of the TGE application. Although it is a web application, the layout is designed to be similar with a normal desktop application including menu bar and task bar, which provides various options to user. For displaying topology information, a left and right panel are used. Both of them can display information in different tabs, whereas left panel will display visualized information including image, drawing of shapes, etc., and the right panel will show detail information about the topology such as node IP address, its connections, etc. 그림 A6.9 GUI design overview

234 Topology GUI Environment A6.8. SVG Drawing implementation For visualized drawing of network topology, the author used Scalable Vector Graphic (SVG), an XML-based vector image format for drawing in the browser. SVG has been supported by many major browsers on the web today. The main benefit of using SVG is that the author can modify the image at runtime to dynamically alter the visualization, which makes the TGE more interactive and attractive. For example, when a user wants to zoom into a cluster, the author can draw all the nodes inside that cluster as an overlay layer on top of a blurry cluster image in the background, which has been scale up and add blurry attribute at the moment user clicks zoom in. This help user to quickly distinguish all the children nodes are belong to that cluster behind. Figure A6.10 shows an example of this approach. 그림 A6.10 change SVG image at run-time

235 Topology GUI Environment A6.9. Client/Server communication using RESTful API When the TGE wants to get network topology information based on user interaction, it will send HTTP requests to the RESTful API service of the OMNT that resided in the cloud. RESTful API help simplify and speed up the communication between the client and the cloud. JSON is the returned result, which is very lightweight. The TGE will quickly process JSON and give user information. Figure A6.11 shows an example of JSON result F 그림 A6.11 Example JSON result

236 Topology GUI Environment A6.10. Current application status The TGE is still under development. This session will highlight the current status of the application by showing snapshot of application screen during the development. Figure A6.12 shows the application when user gets the whole network topology, and Figure A6.13 shows the topology inside a cluster (cloud image) when user click zoom in button. On the left side of the TGE, drawing panel will draw network topology by using SVG features of HTML. On the right side, information panel will give user details topology information about each node and link. When user zoom-in into a cluster, new tab will be created to show to nodes inside that cluster (Figure A6.13). The next feature that is under development is illustrating the shortest connection path between two nodes when user clicks on Make path button. 그림 A6.12 Get global network topology

237 그림 A6.13 Zoom into a cluster

238 미래네트워크연구시험망실증시험과제 A7. 오픈소스기반테스트베드의사용자 - 단말간의인증을위한시큐리티프레임워크설계서 Copyright C 2013 경희대학교네트워킹연구실 All right reserved 사전승인없이본내용의전부또는일부에대한복사, 전재, 배포, 사용을금합니다. 경희대학교

239 오픈소스기반테스트베드의사용자 - 단말간의인증을위한시큐리티프레임워크설계서 제 / 개정이력 버전날짜작성자성명제 / 개정사항비고 홍충선, 장성만최초작성

240 오픈소스기반테스트베드의사용자 - 단말간의인증을위한시큐리티프레임워크설계서 A7.1. OpenBTS 보안 A GPP / OpenBTS 보안사항 3GPP에서의보안이란, 1. 라디오흐름의기밀성과익명성을보호하고, 2. 악의적인사용자의망악용을방지하기위하여철저한사용자인증, 3. 사용자서로간의보안을유지하는것이다. 네트워크사용자는두개의엔티티를사용하는것으로볼수있다. ME(Mobile Equipment) 와 SIM(Subscriber Identity Module). ME에서는 IMEI(International Mobile Equipment Identity) 를가져각자의단말을구분하고 ( 이를사용하면단말의분실폰여부를확인할수있다 ), SIM에서주요한역할을수행한다. SIM은키와 Identifiers와키알고리즘을갖는스마트카드이다. Identifier로다음과같은항목이존재한다. Ki Subscriber Authentication Key IMSI International Mobile Subscriber Identity TMSI Temporary Mobile Subscriber Identity MSISDN Mobile Station International Service Digital Network PIN Personal Identity Number protecting a SIM LAI location area identity IMSI는전세계적으로이동통신가입자를식별할수있는 unique한 ID로그포맷은 PLMN ID와 MSIN으로구성된다. PLMN ID는전세계적으로통신사업자를식별할수있는 ID가된다 ( 대한민국 SKT는 MCC=450, MNC=05로구성 ). 그리고 MSIN은해당통신사업자내에서가입자를식별할수있는 unique한 ID이다. TMSI는 IMSI대신사용되어가입자의신원을감추게한다. TMSI는단말이처음네트워크에접속하며 IMSI를네트워크에보내는경우할당되며, 기지국을옮길때마다새로운 TMSI가할당된다. TMSI는호처리나네트워크와의연결관리시에사용되고, 네트워크에서는 TMSI를사용하여 MS와통신이가능하다. MS가꺼질때 TMSI가 SIM에저장되어재사용될수있도록한다. Ki 는망사업자가가입자를구분하기위해사용하는 128 비트키로써, 단말에서는 SIM 에, 사업자에서는 HLR(Home Locator Register) 에저장된다. 이것이단말이다르더라도동일한 SIM 을사용하여정상적인통신을할수있게되는원리이다

241 오픈소스기반테스트베드의사용자 - 단말간의인증을위한시큐리티프레임워크설계서 네트워크에서는 128비트의랜덤한문자열 (RAND) 를단말에게발신한다. 단말은 RAND를 Ki로암호화하고 A3( 해시함수 ) 를사용함으로써 SRES를생성한다. 네트워크에서는동일한 RAND값과 Ki, 그리고 A3을사용하여동일한 SRES값을생성하고, 따라서단말에서의 SRES 와비교하여단말을인증할수있다. 그림 A7.1 전체적인보안데이터의흐름 A3 MS Authentication Algorithm A3 은 MSC 로부터받은랜덤한 Challenge 인 RAND 값에대응하는 SRES 값을생성하는알 고리즘이다. A8 Voice Privacy Key Generation Algorithm A8은세션키 Ks를생성하며, 공개되지않는알고리즘을사용한다. 위 A3과 A8 알고리즘은 SIM내에프로그램되어있다. 알고리즘은단말 / 망사업자에독립적이다. keyed hash function인 COMP128이 A3과 A8에주로사용된다

242 오픈소스기반테스트베드의사용자 - 단말간의인증을위한시큐리티프레임워크설계서 그림 A7.2 A3, A8, 그리고 COMP128 A5 는 stream cipher 으로, 하드웨어에서매우효율적으로설계가가능하다. 이를통해 MS 와 BTS 간에안전한통신이이루어질수있다. 그림 A7.3 MS-BTS 간통신보안을위한 A5 알고리즘

243 오픈소스기반테스트베드의사용자 - 단말간의인증을위한시큐리티프레임워크설계서 A7.2. Diameter 적용 A Diameter 란 AAA는다중네트워크와플랫폼상에서인증 (authentication), 권한검증 (authroization), 과금 (accounting) 등의기능들을조정하는프레임워크이다. AAA는복잡한 Inter-domain 응용서비스의등장에따라이들서비스들을신뢰성있도록하고, 안전한관리를위해사용된다. IETF에서는 AAA를위해 Remote Authentication Dial-In User Service(RADIUS) 와 DIAMETER 프로토콜을제안하고있다. Diameter는기존의 PPP와 roaming, mobile ip같은새로운정책과 AAA 서비스를위한확장기반을제공하기위한가벼운 Peer 기반의 AAA 프로토콜이다. 가장널리알려지고많이사용되는 AAA 프로토콜은 RADIUS인데, Diameter는 Radius의약점을보완하고서버간통신 (Inter-Server communication) 을지원한다. IETF에서는 Diameter를위한프로토콜을정의하고있다. A Diameter SIP Application(RFC 4740) 소개 이문서는 'Diameter SIP 응용 (Application)' 에대한문서로써, 이를통해 Diameter 클라이언트는 SIP기반의 IP Muitimedia Services를위한 AA(Authentication, Authorization) 정보를 Diameter 서버에요청할수있다. 또한 AA에서더나아가, 사용자의 profile을수신하거나, 사용자에게할당된또다른 SIP 서버를찾는데도움을주는정보를받는경우또한고려되었다. 여기에서는 SIP 서버 ( 예를들어 SIP proxy server, registrar, redirect server등의 ) 와 Diameter 클라이언트가같은노드에위치해서, SIP 서버가 SIP 메시지를처리할수있다고가정한다. 이에따라, SIP 서버는 SIP Request와특정 SIP 서비스사용을위해 Diameter의 AAA(Authentication, Authorization, Accounting) infrastructure를사용하게된다. 이문서에서는멀티미디어세션에 SIP이사용되어세션초기화와세션종료를수행하는데있어필요한특정기능에대해, 혹은세션과관련없는응용에, SIP이사용되어요구되는특정기능에대해필요한 Diameter의절차 (procedure) 를제공한다. 단, 이문서에서는 SIP 절차와 'Diameter SIP 응용 ' 절차에대한매핑을강제하지않으며, SIP과 Diameter사이에발생하는특정한이벤트순서를강제하지않는다. 이문서에서는원하는기능을수행하기위한, SIP 과 'Diameter SIP 응용 ' 간의상호작용에대한유용한예를제공한다

244 오픈소스기반테스트베드의사용자 - 단말간의인증을위한시큐리티프레임워크설계서 이문서에서는, Home Realm내에 Diameter/SIP 기능을구현한노드가하나이상존재하는일반적인구조를고려한다. 사용자는 SIP 요청을보내 SIP 자원에접근할수있다. 모든사용자에대해 Home Realm은 SIP 자원에대한, 혹은그에필요한노드에대한라우팅정보에대하여 AA를수행해야한다. 여기에서는사용자에관련한데이터는인증 (Authorization) 을요구하는 SIP 노드와분리되어저장된다고가정한다. 각각의사용자에대한정보는 Home Realm내의서로다른노드에저장될수있지만, 이때, 특정사용자에대한모든정보는하나의노드에만저장된다고가정한다.( 단, 이것은데이터베이스클러스터링을사용할수없다는의미는아니다, 즉, Diameter 서버가접근해야하는사용자의데이터는, Diameter 서버의관점에서볼때, 하나의장소에위치한단일데이터베이스내에있어야한다는것이다.) 이문서는 Home Realm에대한다양한설정을허가한다. 그중하나로, SIP 서버 (proxy, registrar등 ) 는동적으로사용자에게할당되어서비스를 triggering하고수행할수있다. 이와같은설정에서는, SIP 서버가다른 SIP 서버를사용자에게할당되도록하거나, 혹은, 할당된특정 SIP 서버를위해 SIP request/responce 라우팅을수행할수있어야한다. 이때양 SIP 서버에는 Diameter 클라이언트가구동될것이다. 또다른설정으로, 이문서에서다루지않을방법을통하여 SIP outbound proxy의주소가 SIP User Agent에설정되는경우를생각할수있다. 이때, SIP outbound proxy 노드내의 outbound Diameter 클라이언트는사용자를 authenticate하고, SIP 요청을위한 authorization을요청하고, 또한과금활동을수행할수있다. A OpenBTS Diameter 연동방안 OpenBTS는모든 Signalling을 SIP을기반으로처리하고, HLR/SIP의역할을하는 sipauthserve에서가입자정보관리와인증을담당한다. 따라서 Diameter와연동하기위해서는다양한 Diameter Application들중, Diameter SIP Application(RFC4740) 을준수하여처리하는것이바람직하다. 물론 3GPP entity들의 function들이더욱명확해진다면 3GP TS 등에서정의된 3GPP Application을도입하는것도가능하다. RFC4740는크게두가지시나리오로나눌수있다. 인증주체가 SIP 서버가되는경우, 또는 Diameter 서버가인증의주체가되는경우로나누어볼수있다. 본프로젝트에서는이미인증부분이구현되어있으므로, SIP 서버측에서인증을처리하는것이더욱바람직해보인다. 물론확장성을위해 Diameter 서버에서인증하는하는것또한가능하다. 단, 이시나리오에서는 SIP 서버가두개로나뉘어있지만프로젝트특성상하나의 SIP 서버만구축이

245 오픈소스기반테스트베드의사용자 - 단말간의인증을위한시큐리티프레임워크설계서 되어있다가정한다. 따라서이시나리오와 OpenBTS 인증절차를종합하여시퀀스다이어그램을작성하면다 음과같다. 그림 A7.4 UE 에서 Diameter 에이르는 REGISTER 과정 또한 SIP-Diameter Application 을위해 Diameter Base 위에추가될 Database 로다음이 존재한다

246 오픈소스기반테스트베드의사용자 - 단말간의인증을위한시큐리티프레임워크설계서 그림 A7.5 SIP Diameter Application 을위한데이터베이스 그리고전체적인구조는다음과같다. 그림 A7.6 Access, Core Network 간의보안통신구조

247 오픈소스기반테스트베드의사용자 - 단말간의인증을위한시큐리티프레임워크설계서 A7.3. freediameter A 설치방법 (APT) sudo vi /etc/apt/sources.list.d/freediameter.list 에다음을 src 정보를추가한다. ## freediameter APT repository #deb precise universe #deb-src precise universe #sudo apt-get update 단, APT Repositories에대한보안이강화된관계로 freediameter repository에대한공개키를 import하지않으면다음과같은 warning 메시지를만날수있다. WARNING: The following packages cannot be authenticated! freediameter-common freediameter-daemon freediameter-dictionary-rfc4740 freediameter-sip-server Install these packages without verification [y/n]? 따라서다음의방법으로 key를 import한다. #wget ## md5sum repository.key -> 3483b09a2b6a1e882ac55d5d repository.key #sudo apt-key add repository.key 또한 libmysqlclient16 은 repo 에서제거되었으므로다음의경로에서다운로드 받아설치해야한다. libmysqlclient ubuntu1 (i386 binary) in ubuntu precise bit version bit version

248 오픈소스기반테스트베드의사용자 - 단말간의인증을위한시큐리티프레임워크설계서 그리고이와더불어 prerequistes를설치할차례이다다음을입력하여설치를진행한다. #sudo apt-get install cmake make gcc g++ flex bison libsctp1 libsctp-dev libgnutls-dev libgcrypt-dev libidn11-dev mercurial gdb libpq-dev libmysqlclient-dev libxml2-dev swig python-dev 마침내 freediameter를설치할수있다. 아래명령을수행하면다음의패키지가함께설치된다. freediameter-common, freediameter-daemon, freediameter-dictionary-rfc4740, freediameter-sip-server #sudo apt-get install freediameter-sip-server A source 기반설치 (1) # hg clone # cd freediameter # ln s contrib/debian # fakeroot dh binary # cd.. # sudo dpkg -i *.deb # sudo su # ln -s /etc/ssl/certs/ssl-cert-snakeoil.pem /etc/ssl/certs/freediameter.pem # ln -s /etc/ssl/private/ssl-cert-snakeoil.key /etc/ssl/private/freediameter.key # zcat /usr/share/doc/freediameter-daemon/examples/freediameter.conf.sample. gz > /etc/freediameter/freediameter.conf # echo "Identity=\"localhost.localdomain\";" >> /etc/freediameter/freediameter.conf freediameterd

249 오픈소스기반테스트베드의사용자 - 단말간의인증을위한시큐리티프레임워크설계서 A source 기반설치 (2, without deb-tool) # sudo apt-get install mercurial cmake make gcc g++ bison flex libsctp-dev libgnutls-dev libgcrypt-dev libidn11-dev # sudo apt-get install libpq-dev libmysqlclient-dev cmake-curses-gui # hg clone # mkdir fdbuild # cd fdbuild # cmake../freediameter # make edit_cache # make # sudo make install A configuration(freediameter.conf ) # Local # Uncomment if the framework cannot resolv it. #Identity = "backend.localhost"; # TLS configuration (see previous section) TLS_Cred = "cert.pem", "privkey.pem"; TLS_CA = "ca.pem"; # Limit the number of SCTP streams SCTP_streams = 3; # Extensions # Uncomment (and create rtd.conf) to specify routing table for this peer. #LoadExtension = "rt_default.fdx" : "rtd.conf"; # Uncomment (and create acl.conf) to allow incoming connections from

250 오픈소스기반테스트베드의사용자 - 단말간의인증을위한시큐리티프레임워크설계서 other peers. #LoadExtension = "acl_wl.fdx" : "acl.conf"; # Uncomment to display periodic state information #LoadExtension = "dbg_monitor.fdx"; # Uncomment to enable an interactive Python interpreter session. # (see doc/dbg_interactive.py.sample for more information) #LoadExtension = "dbg_interactive.fdx"; # Load the RFC4005 dictionary objects LoadExtension = "dict_nasreq.fdx"; # Load RFC4072 dictionary objects LoadExtension = "dict_eap.fdx"; # Load the Diameter EAP server extension (requires diameap.conf) LoadExtension = "app_diameap.fdx" : "diameap.conf"; # Load the Accounting Server extension (requires app_acct.conf) LoadExtension = "app_acct.fdx" : "app_acct.conf"; # Load the SIP Application LoadExtension = app_sip.fdx : dict_sip.fdx # Peers # The framework will actively attempt to establish and maintain a connection # with the peers listed here. # For only accepting incoming connections, see the acl_wl.fx extension. ConnectPeer = "nas.localhost" { No_TLS; };

251 오픈소스기반테스트베드의사용자 - 단말간의인증을위한시큐리티프레임워크설계서 A Diameter 서버실행 #!/bin/bash -x DATE=`date +%Y%m%d-%H%M%S`; HOST=`hostname --fqdn`; ulimit -c rm -f core* pushd freediameter make popd echo fd-$host-$date.log > /home/aaa/logs/latest-$host-fd.log /root/freediameter/freediameterd/freediameterd -dd $* 2>&1 tee i /home/aaa/logs/fd-$host-$date.log

252 미래네트워크연구시험망실증시험과제 A8. 3GPP Network 구축메뉴얼 Copyright C 2013 경희대학교네트워킹연구실 All right reserved 사전승인없이본내용의전부또는일부에대한복사, 전재, 배포, 사용을금합니다. 경희대학교

253 3GPP Network 구축매뉴얼 제 / 개정이력 버전날짜작성자성명제 / 개정사항비고 홍충선, 장성만최초작성

254 A8.1. 서론 이문서는 USRP 와 OpenBTS 를기반으로한 3GPP 네트워크구축을위한문서이다. A 개발환경 (HW) * USRP USRP B100 Kit + SBX Bundle ( MHz) LP0965 Log Periodic PCB Antenna (900 MHz to 2.6 GHz) Cable Assembly, SMA to SMA, 0.5M * PC Dell Inspiron 660 -특정 PC에서는 USRP와호환이되지않을수있음 (e.g. 삼성 ) * SIM Micro USB2.0 SIM Card Reader Sim Card Simcard Copy USB Reader Black LS4G Max SIM Cell Phone Magic Super Card Backup Kit 16in 1 L A 개발환경 (SW) * OS(Operating System) Ubuntu LTS x32 (ubuntu desktop-i386.iso) or x32 ID:cell / PW: khucell - 반드시 32비트운영체제를사용할것

255 3GPP Network 구축매뉴얼 #sudo apt-get install g++ make libdbi-dev git autoconf libtool libosip2-dev subversion libortp-dev libusb dev g++ erlang libreadline6-dev sqlite3 libdbd-sqlite3 * 3GPP Access Network OpenBTS(Master, 09/26/2013, 93ea7452d6909e9bccd6749e7f3ea895a98199be) #svn co OpenBTS-GPRS(gprs-work, 05/07/2013, 423a a4d4b8385c067c4c5077e0abf01ae) #git clone -b gprs-work git://github.com/chemeris/openbts-p2.8.git Libosmocore(master, 5b6416a729b46aab8ac7ea25a7ec91f3afeaf4fc) #git clone git://git.osmocom.org/libosmocore.git OsmoPCU(master, 08/01/2013, 9d938388f678e8c753e f17a35a45247) #git clone git://git.osmocom.org/osmo-pcu * 3GPP Core Network OpenGGSN(master, 07/28/2013, e101fa33c7f9fb7b875c65d0ff0138d9f) #git clone git://git.osmocom.org/openggsn.git OpenBSC(jolly/testing, 07/10/2013, c69099b3049a2c50a9085f7416a4e6aedf3da23d) openbsc 보다먼저 make 해야한다. ( 또한 jolly/testing 브랜치대신 master 브랜치도가능하다 ) #git clone git://git.osmocom.org/openbsc.git Libosmo-abis(master, 11/11/2013, 3ea52e4f4c463b56ad59db5f041b fbad) git clone git://git.osmocom.org/libosmo-abis.git

256 3GPP Network 구축매뉴얼 A8.2. 설치방법 A Common(OS) Ubuntu LTS x32 (ubuntu desktop-i386.iso) or x32 을다운받고설치한다. ID:cell / PW: khucell #sudo apt-get install g++ make libdbi-dev git autoconf libtool libosip2-dev libortp-dev libusb dev erlang libreadline6-dev sqlite3 libdbd-sqlite3 libsqlite3-dev Brightness and Lock에서 Screen off 해제하고 Lock Off할것. Desktop Sharing enable하고 confirm 체크해제. 암호는 khucell 홈디렉토리아래에 cell 폴더를만들고그아래에모든것을설치한다. 환경설정파일은그 cell폴더아래의 conf폴더에모두넣고, 파일명은소문자해당모듈 +.conf 로할것. # mkdir ~/cell # sudo vi /etc/apt/sources.list :1,$ s/us.archive.ubuntu.com/ftp.daum.net/g :wq # sudo rm /var/lib/apt/lists/lock # sudo rm /var/cache/apt/archives/lock # sudo apt-get update

257 3GPP Network 구축매뉴얼 A Access Network * UHD 1) # sudo apt-get install python libboost-all-dev libusb dev # sudo bash -c 'echo "deb -cs` `lsb_release -cs` main" > /etc/apt/sources.list.d/ettus.list' # sudo apt-get update # sudo apt-get install -t `lsb_release -cs` uhd * libosmocore # cd ~/cell # git clone git://git.osmocom.org/libosmocore.git # cd libosmocore # autoreconf -i #./configure # make # sudo make install # sudo ldconfig # cd ~/cell * osmopcu 1)

258 3GPP Network 구축매뉴얼 # cd ~/cell # git clone git://git.osmocom.org/osmo-pcu # cd osmo-pcu # autoreconf -i #./configure # make # sudo make install # sudo ldconfig # cd ~/cell * openbts-gprs # cd ~/cell # git clone -b gprs-work git://github.com/chemeris/openbts-p2.8.git # cd openbts-p2.8 # autoreconf i #./configure with-uhd # make # sudo make install # sudo ldconfig # cd apps # sudo mkdir /etc/openbts # sudo sqlite3 -init OpenBTS.example.sql /etc/openbts/openbts.db.quit # sudo sqlite3 /etc/openbts/openbts.db.dump # ln -s../transceiver52m/transceiver. # sudo mkdir /var/run # cd ~/cell

259 3GPP Network 구축매뉴얼 * 실행방법 # ~/cell/osmo-pcu/src/osmo-pcu -n 01 m 001 # cd ~/cell/openbts-p2.8/apps # sudo./openbts # sudo ~/cell/openbts-p2.8/apps/openbtscli # tail -f /var/log/syslog

260 3GPP Network 구축매뉴얼 A Access Network_OpenBTS 설정 -OpenRegistration INSERT INTO "CONFIG" VALUES('Control.LUR.OpenRegistration', 0,0,1,'If not NULL, allow unprovisioned handsets to attach in Um.'); #config Control.LUR.OpenRegistration.* -C1C7 INSERT INTO "CONFIG" VALUES('GSM.Channels.NumC1s','5',1,0,'Number of Combination-I timeslots to configure. The C-I slot carries a single full-rate TCH, used for speech calling. Static.'); INSERT INTO "CONFIG" VALUES('GSM.Channels.NumC7s','0',1,0,'Number of Combination-VII timeslots to configure. The C-VII slot carries 8 SDCCHs, useful to handle high registration loads or SMS. If C0T0 is C-IV, you must have at least one C-VII also. Static.'); #config GSM.Channels.NumC1s 1 #config GSM.Channels.NumC7s 0 -BCC,NCC INSERT INTO "CONFIG" VALUES('GSM.Identity.BSIC.BCC','2',0,0,'GSM basestation color code; lower 3 bits of the BSIC. BCC values in a multi-bts network should be assigned so that BTS units with overlapping coverage do not share a BCC. This value will also select the training sequence used for all slots on this unit.'); INSERT INTO "CONFIG" VALUES('GSM.Identity.BSIC.NCC','0',0,0,'GSM network color code; upper 3 bits of the BSIC. Assigned by your national regulator. Must be distinct from NCCs of other GSM operators in your area.'); -MCC,MNC INSERT INTO "CONFIG" VALUES('GSM.Identity.MCC','001',0,0,'Mobile country code, 2 or 3 digits. Defined in ITU-T E.212.'); INSERT INTO "CONFIG" VALUES('GSM.Identity.MNC','01',0,0,'Mobile network code;

261 3GPP Network 구축매뉴얼 Must be 3 dgits. Assigned by your national regulator.'); #config GSM.Identity.MCC 450 #config GSM.Identity.MNC 08 -Band,Freq. INSERT INTO "CONFIG" VALUES('GSM.Radio.Band','900',1,0,'The GSM operating band. Valid values are 850 (GSM850), 900 (PGSM900), 1800 (DCS1800) and 1900 (PCS1900). For most Range models, this value is dictated by the hardware and should not be changed. Static.'); INSERT INTO "CONFIG" VALUES('GSM.Radio.C0','51 ',1,0,'The C0 ARFCN. Also the base ARFCN for a multi-arfcn configuration. Static.'); -GRPS INSERT INTO "CONFIG" VALUES('GSM.GPRS','1',0,0,'GPRS support "1" - turn on, "0" - turn off. You should check GSM Channel configuration, timeslot for GPRS must be free.'); -LogLevel INSERT INTO "CONFIG" VALUES('Log.Level','WARNING',0,0,'Default logging level when no other level is defined for a file.'); #config Log.Level INFO -SIP IP/Port INSERT INTO "CONFIG" VALUES('SIP.Local.IP',' ',1,0,'IP address of the OpenBTS machine as seen by its proxies. If these are all local, this can be localhost. Static.'); INSERT INTO "CONFIG" VALUES('SIP.Local.Port','5062',1,0,'IP port that OpenBTS uses for its SIP interface. Static.'); #config SIP.Local.IP SIP(Reg., SMS, Speech)

262 3GPP Network 구축매뉴얼 INSERT INTO "CONFIG" VALUES('SIP.Proxy.Registration',' :5064',0,0,'The IP host and port of the proxy to be used for registration and authentication. This should normally be the subscriber registry SIP interface, not Asterisk.'); INSERT INTO "CONFIG" VALUES('SIP.Proxy.SMS',' :5063',0,0,'The IP host and port of the proxy to be used for text messaging. This is smqueue, for example.'); INSERT INTO "CONFIG" VALUES('SIP.Proxy.Speech',' :5060',0,0,'The IP host and port of the proxy to be used for normal speech calls. This is Asterisk, for example.'); #config SIP.Proxy.Registration :5064 #config SIP.Proxy.SMS :5063 #config SIP.Proxy.Speech :5060 -GPRS INSERT INTO "CONFIG" VALUES('GPRS.TS','6 7',0,0,'Timeslots for GPRS channels. You should check GSM Channel configuration, timeslot for GPRS must be free.'); INSERT INTO "CONFIG" VALUES('GPRS.Local.Port','5934',0,0,'GPRS local port'); INSERT INTO "CONFIG" VALUES('GPRS.PCU.IP',' ',0,0,'GPRS PCU ip address'); INSERT INTO "CONFIG" VALUES('GPRS.PCU.Port','5944',0,0,'GPRS PCU port'); INSERT INTO "CONFIG" VALUES('GPRS.SGSN.IP',' ',0,0,'GPRS SGSN ip address'); INSERT INTO "CONFIG" VALUES('GPRS.MCC','001',0,0,'GPRS MCC'); INSERT INTO "CONFIG" VALUES('GPRS.MNC','01',0,0,'GPRS MNC'); INSERT INTO "CONFIG" VALUES('GPRS.INITIAL_CS','1',0,0,'INITIAL_CS'); #config GPRS.TS #config GPRS.SGSN.IP #config GPRS.MCC 450 #config GPRS.MNC 08 #config GPRS.INITIAL_CS 3 -NSEI INSERT INTO "CONFIG" VALUES('GPRS.NSEI','8',0,0,'NSEI');

263 3GPP Network 구축매뉴얼 INSERT INTO "CONFIG" VALUES('GPRS.CELL_ID','0',0,0,'CELL_ID'); INSERT INTO "CONFIG" VALUES('GPRS.BVCI','7',0,0,'BVCI'); INSERT INTO "CONFIG" VALUES('GPRS.NSVCI','4',0,0,'NSVCI'); -SubscriberReg. INSERT INTO "CONFIG" VALUES('SubscriberRegistry.db','/var/lib/asterisk/sqlite3dir/sqlite3.db',0,0,'The location of the sqlite3 database holding the subscriber registry.'); INSERT INTO "CONFIG" VALUES('SubscriberRegistry.Port','5064',0,0,'Port used by the SIP Authentication Server. NOTE: In some older releases (pre-2.8.1) this is called SIP.myPort.');

264 3GPP Network 구축매뉴얼 A Core Network Ubuntu 12.04_03 LTS Server x32 기준. #apt-get install libncurses5-dev * OpenBTS(HLR등 ) # svn co # mv public openbts # cd ~/cell/openbts/a53/trunk # sudo make install # cd ~/cell/openbts/openbts/trunk # autoreconf -i #./configure # make * OpenBTS Configure # sudo mkdir /etc/openbts # sudo sqlite3 -init./apps/openbts.example.sql /etc/openbts/openbts.db ".quit" # sudo sqlite3 /etc/openbts/openbts.db.dump * Subscriber Registry # sudo mkdir -p /var/lib/asterisk/sqlite3dir # cd ~/cell/openbts/subscriberregistry/trunk # make # sudo sqlite3 -init subscriberregistry.example.sql /etc/openbts/sipauthserve.db ".quit" * Build and Install Smqueue

265 3GPP Network 구축매뉴얼 # cd ~/cell/openbts/smqueue/trunk # autoreconf -i #./configure # make # sudo sqlite3 -init smqueue/smqueue.example.sql /etc/openbts/smqueue.db ".quit" # cd ~/cell * openggsn # cd ~/cell # git clone git://git.osmocom.org/openggsn.git # cd openggsn # autoreconf -i #./configure # make # sudo make install # sudo ldconfig # sudo mkdir p /var/lib/ggsn/ # cd ~/cell * libosmocore # cd ~/cell # git clone git://git.osmocom.org/libosmocore.git # cd libosmocore # autoreconf -i #./configure # make # sudo make install # sudo ldconfig # cd ~/cell

266 3GPP Network 구축매뉴얼 * libosmo-abis # cd ~/cell # git clone git://git.osmocom.org/libosmo-abis.git # cd libosmo-abis # autoreconf -i #./configure # make # sudo make install # sudo ldconfig # cd ~/cell * openbsc(osmosgsn) # cd ~/cell # git clone git://git.osmocom.org/openbsc.git # cd openbsc/openbsc/ # autoreconf -i #./configure # make # sudo make install # sudo ldconfig # cd ~/cell

267 3GPP Network 구축매뉴얼 * Yate 2) # cd ~/cell # sudo su # apt-get install libgsm1-dev # svn checkout yate # cd yate #./autogen.sh #./configure # make # make install-noapi # apt-get install python-setuptools # cd ~/cell # git clone # cd python-messaging # sudo python setup.py install # cd ~/cell # git clone # cd libvbts # sudo python setup.py install # sudo python setup_yate.py install ## /etc/openbts/sipauthserve.db ## /var/lib/asterisk/sqlite3dir/sqlite3.db 2)

268 3GPP Network 구축매뉴얼 *apache # vi /etc/apache2/sites-enabled/000-default # cd /usr/lib/cgi-bin # sudo ln s ~/openbts/subscriberregistry/trunk/subscriberserver.cgi * 실행방법 sudo su echo 1 > /proc/sys/net/ipv4/ip_forward iptables -A POSTROUTING -s /24 -t nat -o eth0 -j MASQUERADE yate *sudo ~/cell/openbts/subscriberregistry/trunk/sipauthserve *sudo ~/cell/openbts/smqueue/trunk/smqueue/smqueue *sudo ~/cell/openggsn/ggsn/ggsn c ~/cell/ggsn.conf *~/cell/openbsc/openbsc/src/gprs/osmo-sgsn c ~/cell/osmo-sgsn.cfg *tail f /var/log/syslog *tail f /var/log/vbts.log

269 3GPP Network 구축매뉴얼 A Core Network_Yate 설정 OpenBTS 와의연동을위해 Yate 설정파일을변경해야한다. 아래파일들은 /usr/local/etc/yate/ 에위치해있다. 3) * ysipchan.conf 이파일은 sip 모듈에관한파일이며, 이를수정하여 SIP Message Event를처리할수있다. [general] maxpkt=4096 generate=yes [methods] message=yes 3)

270 3GPP Network 구축매뉴얼 * regexroute.conf 이파일은특정패킷에대한라우팅을관리한다. 이파일에서메시지의인증을비활성화한다. 그리고파일의마지막에실제라우팅규칙을지정한다. user.auth블록은없은블록이므로새로입력해야한다. [extra] ;skipping auth step user.auth=20 [user.auth].*=return true /* # regexroute.conf [default] ; The following are for testing purposes ^ $=tone/dial ^ $=tone/busy ^ $=tone/ring ^ $=tone/specdial ^ $=tone/congestion ^ $=tone/outoforder ^ $=tone/milliwatt */

271 3GPP Network 구축매뉴얼 * extmodule.conf yate와연동될외부모듈을관리하는파일이다. libvbts는 OpenBTS와의연동을위한파일들이며이들을활성화하기위해다음과같이기입한다. [scripts] ;sip.message handlers VBTS_SMS_Provisioning.py=5 VBTS_SMS_Echo.py=10 vbts_tp_dest_address ^100$ VBTS_SMS_Route.py=50 ;call.route handlers VBTS_Route_Provisioning.py=5 VBTS_Route_Local.py=

272 3GPP Network 구축매뉴얼 A8.3. References [1] [2]

273 미래네트워크연구시험망실증시험과제 A9. Quagga 기반 SDN 지원라우터 구축매뉴얼 Copyright C 2013 전남대학교차세대네트워크연구실 All right reserved 사전승인없이본내용의전부또는일부에대한복사, 전재, 배포, 사용을금합니다. 전남대학교

274 Quagga 기반 SDN 지원라우터구축매뉴얼 제 / 개정이력 버전날짜작성자성명제 / 개정사항비고 최덕재, ARDI, 방기현최초작성

275 Quagga 기반 SDN 지원라우터구축매뉴얼 A9.1. 서론 Quagga는오픈소스라우팅소프트웨어이고 RIP, OSPF, BGP와같은라우팅프로토콜을제공한다. Quagga는여러데몬으로구성되는데라우팅프로토콜 (RIP, OSPF, BGP) 데몬과라우팅매니저인 zebra로구성된다. zebra는라우팅테이블과라우팅프로토콜과의연결고리역할을수행하고라우팅테이블을생성한다. Quagga는라우팅프로토콜구성 ( 예 OSPF,BGP 등 ) 에따라 SDN 컨트롤러에 Forwarding Information Base(FIB) 를생성한다. 라우팅프로토콜데몬이생성한 Routing Information Base(RIB) 는 zebra 데몬에최적의경로를전달하고, zebra는각프리픽스에대한최적의경로를계산한다. 그림 A9.1. OpenFlow IP 라우팅서비스 SDN agent 포트를나타내는터널인터페이스를생성한다. 터널인터페이스를통해 Quagga로패킷을송수신한다. 라우팅테이블의변경을모니터링한다. SDN RCP NOX와 SDN agent연결을관리한다. 라우팅프로토콜패킷을포워딩한다. SDN agent로부터받은플로우엔트리를인스톨한다

276 Quagga 기반 SDN 지원라우터구축매뉴얼 A9.2. Quagga A Quagga 설치 이항은 Quagga 설치및구성방법에대한내용이다 에서 quagga orig. tar.gz 를다운받고 /usr/local/src/quagga 디렉토리에압축을해제한다. #cd /usr/local/src #tar xfz /tmp/quagga orig.tar.gz 그림 A9.2. Quagga 다운로드 2. 유저와그룹 quagga 를등록하고 quagga 디렉토리를생성한다. #groupadd quagga #useradd -g quagga -s /bin/false quagga #mkdir /etc/quagga #mkdir /var/state/quagga #touch /var/log/zebra.log #touch /var/log/ospfd.log #touch /var/log/bgpd.log #chown quagga:quagga /etc/quagga #chown quagga:quagga /var/state/quagga

277 Quagga 기반 SDN 지원라우터구축매뉴얼 3. quagga 인스톨 # cd /usr/local/src/quagga / #./configure --enable-user=quagga --enable-group=quagga --enable-vty-group=quagga --enable-fpm --prefix=/usr --sysconfdir=/etc/quagga -localstatedir=/var/state/quagga 그림 A9.3. Quagga configuration 정보 Quagga configuration quagga version : host operationg system : linux-gnu source code location :. compiler : gcc compiler flags : -Os -fno-omit-frame-pointer -g -std=gnu99 -Wall -Wsign-compare -Wpointer-arith -Wbad-function-cast -Wwrite-strings -Wmissing-prototypes -Wmissing-declarations -Wchar-subscripts -Wcast-qual make : make includes : linker flags : -lcrypt -lcap -lm state file directory : /var/state/quagga config file directory : /etc/quagga example directory : /etc/quagga

278 Quagga 기반 SDN 지원라우터구축매뉴얼 user to run as : quagga group to run as : quagga group for vty sockets : config file mask : 0600 log file mask : 0600 위의유저와그룹은 state 파일디렉토리와 config 파일디렉토리의 config 파일에대한 read/write 권한을가지고있어야한다. #make #make install #ldconfig Note : 일부시스템에서실패할수있다. 대부분 Makefile 에라이브러리를추가해야한다. zebra 디렉토리로이동하여, -lcap( 또는누락된라이브러리 ) 을 Makefile 의 LIBS 에추가한다. LIBS = -lcrypt -lrt -lcap A Quagga 구성 1. quagga config 파일을준비한다. #touch /etc/quagga/zebra.conf #touch/etc/quagga/ospfd.conf #touch/etc/quagga/bgpd.conf 또는샘플파일을복사한다. #cp/etc/quagga/zebra.conf.sample/etc/quagga/zebra.conf #cp/etc/quagga/ospfd.conf.sample/etc/quagga/ospfd.conf #cp/etc/quagga/bgpd.conf.sample/etc/quagga/bgpd.conf #chmod 640 -R /etc/quagga #chown quagga:quagga -R /etc/quagga 2. 환경설정하고 Zebra 를실행시킨다. Zebra 데몬을실행한다. -d - 데몬을실행 zebra.conf 는 zebra 환경설정파일 -A : vty 주소 --retain : 프로그램이종료될때, 경로를유지 #zebra zebra.conf -d -A retain 3. Quagga 데몬의상태를체크할수있다. #ps -aef grep zebra quagga :42? 00:00:00zebrazebra.conf-d-A retain root :14pts/100:00:00grep color=autozebra

279 Quagga 기반 SDN 지원라우터구축매뉴얼 그림 A9.4. Quagga 데몬상태체크 4. zebra VTY 에로그인한다. 기본패스워드는 zebra 이다. #telnet localhost 각데몬이고유한환경설정파일과터미널인터페이스를가지고있기때문에그들의포트번호를이용하여 telnet 으로 quagga 데몬에접근할수있다. zebra : 2601 ripd : 2602 ripng : 2603 ospfd : 2604 bgpd : 2605 ospf6d : 2606 /etc/environment 파일에 "VTYSH_PAGER = more" 을추가하는게유용하다. 그렇지않으면명령어를입력할때마다 (END)" 깜빡임이나타나고 q 를눌러서항상종료를해야한다. 6. 라우터가기본라우팅을통해인터넷에연결되어있다면, 라우팅엔진이동작하는지체크하기위해서 zebra 데몬에 telnet 하고, 라우팅정보를확인하면된다. 그림 A9.5. Localhost telnet

280 Quagga 기반 SDN 지원라우터구축매뉴얼 #telnet localhost 2601 Trying Connected to localhost. Escape character is ^]. Hello, this is Quagga (version ). Copyright Kunihiro Ishiguro, et al. User Access Verification Password: R1>enable Password: R1#show ip route Codes:K kernel route, C connected, S static, R RIP, O OSPF,I IS-IS,B BGP,A Babel, > selectedroute,* FIBroute K>* /0 via , eth0 C>* /8isdirectlyconnected,lo C>* /16isdirectlyconnected,eth0 K>* /16isdirectlyconnected,eth0 A9.3. OpenFlow V-Switch OpenvSwitch OpenFlow 지원가상스위치이다. 이절에서는 Open v-switch 와데이터베이스설치및구성법에대해설명한다. A OpenvSwitch 설치 #wget #tar zxvf openvswitch tar.gz #cd openvswitch #uname -a ( 커널정보를확인 ) #sudo apt-get install gcc #./configure --help #./configure -with-l26=/usr/src/linux-headers generic ( 커널정보 를따름 ) #sudo make #sudo make install

281 Quagga 기반 SDN 지원라우터구축매뉴얼 A OpenvSwitch 빌드 ⓵ 최상위소스디렉토리에서, 구성스크립트를실행하여패키지를구성한다. #./configure --prefix=/usr localstatedir=/var --with-linux=/lib/modules /`uname -r`/build ⓶ 최상위소스디렉토리에서, make 를실행한다. #make ⓷ /usr/local 에서실행중인시스템에실행파일과맨페이지를인스톨하기위해 make install" 명령어를입력한다. #make install ⓸ 커널모듈을빌드하고, insmode 를로드한다. #insmod datapath/linux/openvswitch_mod.ko #/sbin/modinfo openvswitch_mod.ko #/sbin/modinfo /lib/modules/`uname -r`/kernel/net/bridge/bridge.ko ⓹ ovsdb-tool 을사용하여데이터베이스구성을초기화시킨다. #mkdir -p /usr/local/etc/openvswitch #ovsdb-tool create /usr/local/etc/openvswitch/conf.db vswitchd/vswitch.ovsschema ⓺ 데이터베이스를구성한다. #ovsdb-server --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 #ovs-vsctl --no-wait init #ovs-vswitchd --pidfile --detach ⓻ 시작하고, 컨트롤러와연결하기위해브릿지를생성한다. 여기서쉘스크립트커맨드를사용

282 Quagga 기반 SDN 지원라우터구축매뉴얼 #!/bin/bash DATAPATH_ID_DP101= CTRL= sudo ovs-vsctl add-br dp101 sudo ovs-vsctl set-controller dp101 tcp:$ctrl:6633 sudo ovs-vsctl set bridge dp101 stp_enable=true sudo ovs-vsctl set bridge dp101 other-config:datapath-id=$datapath_id_dp101 sudo ovs-vsctl add-port dp101 eth1 sudo ovs-vsctl add-port dp101 eth2 sudo ovs-vsctl add-port dp101 eth3 ⓼ 데이터베이스를업그레이드하기위해다음의명령어를사용한다. # kill `cd /usr/local/var/run && cat ovsdb-server.pid ovs-vswitchd.pid` # ovsdb-tool convert /usr/local/etc/openvswitch/conf.db vswitchd/vswitch. ovsschema A9.4. RouteFlow 이절에서는 RouteFlow 인스톨과구성에대해설명한다. RouteFlow 는 OpenFlow 지원하드웨어에가상 IP 라우팅서비스를제공하는오픈소스프로젝트이다. RouteFlow 는 OpenFlow 컨트롤러어플리케이션, 독립적인 RouteFlow 서버, 물리적인프라의연결을구현하고 IP 라우팅엔진을실행하는가상네트워크환경으로구성된다. 라우팅엔진은구성된라우팅프로토콜 ( 예, OSPF, BGP) 에따라리눅스 IP 테이블에 forwarding information base(fib) 를생성한다. 리눅스 IP 와 ARP 테이블은 RouteFlow Slave 프로세스에의해수집되고포워딩플레인에관련된 OpenFlow 지원장치에설치되어 OpenFlow 튜플로변환된다. RouteFlow 는세가지기본어플리케이션에의해구성된다 (RFClient, RFServer, RFProxy). - RFClient 는리눅스 ARP 와라우팅테이블의변화를감지하고, Virtual Machine(VM) 에서데몬으로동작한다. 라우팅정보는업데이트될때, RFServer 로보내진다. - RFServer 는 RFClient 데몬을구동하는 VM 을관리하는독립형어플리케이션이다. RFServer 는 RFClient VM 인스턴스와인터페이스및해당스위치와포트사이의매핑을유지한다. RFServer 는플로우를구성하고 VM 세트에의해형성된가상환경에서연결을유지하기위한 OpenvSwitch 를구성하는경우에이것을지시하는 RFProxy 에연결한다

283 Quagga 기반 SDN 지원라우터구축매뉴얼 - RFProxy 는 OpenFlow 프로토콜을통해 OpenFlow 스위치 (datapah 에의해식별된 ) 와상호작용하는어플리케이션 (POX 및기타컨트롤러 ) 이다. RFProxy 는 RFServer 에서지시를수신하고네트워크이벤트에대해 RFServer 에게알린다. A RouteFlow 구성과설치 RouteFlow 를사용할때, 2 가지의옵션이있다. ⓵ ftp://ftp.cpqd.com.br/pub/routeflow/routeflow.zip 에서필요한모든것을포함하는미리구성된 VM 을다운받는다. 시나리오를실행하기위해, README(rftest1 폴더안에있음 ) 의지시사항을따른다. ⓶ 처음부터시작하고, 수동으로 RouteFlow 와디펜던시를인스톨한다. - 디펜던시인스톨 #sudo apt-get install build-essential git libboost-dev \ #libboost-program-options-dev libboost-thread-dev \ #libboost-filesystem-dev iproute-dev openvswitch-switch \ #mongodb python-pymongo - GitHub 의 RouteFlow 리포지토리를복제한다. #git clone git://github.com/cpqd/routeflow.git - rfclient 를빌드한다. #make rfclient - rftest 를구동한다. #cd rftest #sudo./create

284 Quagga 기반 SDN 지원라우터구축매뉴얼 A rftest1 기능테스트 그림 A9.6. RouteFlow 테스트환경 ⓵ 가상게이트웨이를생성한다. 경량가상화솔루션인 LXC 컨테이너를이용한다. 스위치가게이트웨이로동작하려면, 두개의호스트를다른서브넷마스크에연결하고두개의인터페이가필요하다. auto lo iface lo inet loopback auto eth0 iface eth0 inet static address netmask auto eth1 iface eth1 inet static address netmask auto eth2 iface eth2 inet static address netmask

285 Quagga 기반 SDN 지원라우터구축매뉴얼 config 파일은 LXC에필요한인터페이스를선언한다. lxc.utsname = rfvm1 lxc.network.type = veth lxc.network.flags = up lxc.network.hwaddr = 12:a0:a0:a0:a0:a0 lxc.network.link=lxcbr0 lxc.network.type = veth lxc.network.flags = up lxc.network.veth.pair = rfvm1.1 lxc.network.hwaddr = 12:a1:a1:a1:a1:a1 lxc.network.type = veth lxc.network.flags = up lxc.network.veth.pair = rfvm1.2 lxc.network.hwaddr = 12:a2:a2:a2:a2:a2... lxc.rootfs = /var/lib/lxc/rfvm1/rootfs lxc.mount = /var/lib/lxc/rfvm1/fstab... 호스트 b1에대한 config lxc.utsname = b1 lxc.network.type = veth lxc.network.flags = up lxc.network.hwaddr = 02:b1:b1:b1:b1:b1 lxc.network.veth.pair = b1.0 호스트 b2에대한 config lxc.utsname = b2 lxc.network.type = veth lxc.network.flags = up lxc.network.hwaddr = 02:b2:b2:b2:b2:b2 lxc.network.veth.pair = b

286 Quagga 기반 SDN 지원라우터구축매뉴얼 가상환경을실행한다. #!/bin/sh sleep 5 /opt/rfclient/rfclient > /var/log/rfclient.log ⓶ 네트워크시작 rftest1 에서 configuration 파일은이와같다 : vm_id,vm_port,ct_id,dp_id,dp_port 12A0A0A0A0A0,1,0,99,1 12A0A0A0A0A0,2,0,99,2 실행 # sudo./rftest1 LXC 컨테이너 b1 에로그인할수있고 b2 에 ping 을보낸다. ⓷ 결과 rftest1 이준비된후에 rfvm1 에로그인한다. # sudo lxc-console -n rfvm1 라우팅테이블 ubuntu@rfvm1:~$ sudo sudo route -n 표 A9.1. 커널 IP 라우팅테이블 Destination Gateway Genmask Flags Metric Ref Use Iface U eth U eth U eth2 ARP 테이블 ubuntu@rfvm1:~$ sudo arp -a? ( ) at aa:48:2d:aa:da:41 [ether] on eth0 $ sudo lxc-console -n b

287 Quagga 기반 SDN 지원라우터구축매뉴얼 b1에서실행 # ping PING ( ) 56(84) bytes of data. 64 bytes from : icmp_req=1 ttl=63 time=29.5 ms 64 bytes from : icmp_req=2 ttl=63 time=15.4 ms 64 bytes from : icmp_req=3 ttl=63 time=51.7 ms 64 bytes from : icmp_req=4 ttl=63 time=40.7 ms 64 bytes from : icmp_req=5 ttl=63 time=37.6 ms ping statistics packets transmitted, 5 received, 0% packet loss, time 4006ms rtt min/avg/max/mdev = /35.020/51.702/ ms 인스톨된플로우는스위치에서볼수있다. # sudo ovs-ofctl dump-flows switch1... cookie=0x0, duration= s, table=0, n_packets=0, n_bytes=0, idle_timeout=300,priority=32800,ip,dl_dst=12:a1:a1:a1:a1:a1,nw_dst= actions=mod_dl_src:12:a1:a1:a1:a1:a1,mod_dl_dst:02:b2:b2:b2:b2:b2,output:2 cookie=0x0, duration=203.97s, table=0, n_packets=0, n_bytes=0, idle_timeout=300,priority=32800,ip,dl_dst=12:a1:a1:a1:a1:a1,nw_dst= actions=mod_dl_src:12:a1:a1:a1:a1:a1,mod_dl_dst:02:b1:b1:b1:b1:b1,output:

288 Quagga 기반 SDN 지원라우터구축매뉴얼 A9.5. Mininet Mininet 은네트워크에뮬레이터이다. 엔드호스트, 스위치, 라우터, 하나의리눅스커널에대한링크들을실행한다. 완전한네트워크, 같은커널, 시스템, 유저코드와같은싱글시스템을만들기위해경량가상화기술을사용한다. Mininet 호스트는실제머신처럼작동한다. ssh 를할수있고 ( 호스트에 sshd 와브릿지네트워크를시작하는경우 ) 임의의프로그램을실행한다. 실행하는프로그램은주여진연결속도및지연을가진실제이더넷인터페이스와같이패킷을보낼수있다. 패킷은큐잉을가진실제이더넷스위치, 라우터또는미들박스와같이처리된다. Mininet 의가장강력하고유용한기능중하나는 Software Defined Networking 을사용한다는것이다. OpenFlow 프로토콜과관련툴을사용하여, 원하는모든것을프로그래밍할수있다. 이프로젝트에서, Quagga IP Routing Engine 을통해 SDN OpenFlow Network 를가상화하고, SDN 컨트롤러와연결하는데 Mininet 을사용한다. 각각의호스트에연결된 4 개의라우터 (A,B,C,D) 가있다. OSPF 를사용하여토폴로지에서다른네트워크에트래픽을라우팅한다. 다음에여러시나리오의가상네트워크를통해 Wi-Fi/GNU Radio 네트워크로부터레거시네트워크에패킷을전송한다. Mininet 을이용한작업 1. 토폴로지생성 4 개의스위와 4 개의호스트로구성된네트워크토폴로지를생성한다. 4 개의스위치는메쉬토폴로지로각스위치의호스트에연결 : 그림 A9.7. Mininet 테스트환경

289 Quagga 기반 SDN 지원라우터구축매뉴얼 class rftest2(topo): "RouteFlow Demo Setup" def init ( self, enable_all = True ): "Create custom topo." Topo. init ( self ) h1 = self.addhost("h1", ip=" /24", defaultroute="gw ") h2 = self.addhost("h2", ip=" /24", defaultroute="gw ") h3 = self.addhost("h3", ip=" /24", defaultroute="gw ") h4 = self.addhost("h4", ip=" /24", defaultroute="gw ") sa = self.addswitch("s5") sb = self.addswitch("s6") sc = self.addswitch("s7") sd = self.addswitch("s8") self.addlink(h1, sa) self.addlink(h2, sb) self.addlink(h3, sc) self.addlink(h4, sd) self.addlink(sa, sb) self.addlink(sb, sd) self.addlink(sd, sc) self.addlink(sc, sa) self.addlink(sa, sd) topos = { 'rftest2': ( lambda: rftest2() ) }

290 Quagga 기반 SDN 지원라우터구축매뉴얼 2. 가상환경구성 - 스위치 A config lxc.utsname = rfvma lxc.network.type = veth lxc.network.flags = up lxc.network.hwaddr = 02:a0:a0:a0:a0:a0 lxc.network.link=lxcbr0 lxc.network.type = veth lxc.network.flags = up lxc.network.veth.pair = rfvma.1 lxc.network.hwaddr = 02:a1:a1:a1:a1:a1 lxc.network.type = veth lxc.network.flags = up lxc.network.veth.pair = rfvma.2 lxc.network.hwaddr = 02:a2:a2:a2:a2:a2 lxc.network.type = veth lxc.network.flags = up lxc.network.veth.pair = rfvma.3 lxc.network.hwaddr = 02:a3:a3:a3:a3:a3 lxc.network.type = veth lxc.network.flags = up lxc.network.veth.pair = rfvma.4 lxc.network.hwaddr = 02:a4:a4:a4:a4:a

291 Quagga 기반 SDN 지원라우터구축매뉴얼 - 스위치 B config lxc.utsname = rfvmb lxc.network.type = veth lxc.network.flags = up lxc.network.hwaddr = 02:b0:b0:b0:b0:b0 lxc.network.link=lxcbr0 lxc.network.type = veth lxc.network.flags = up lxc.network.veth.pair = rfvmb.1 lxc.network.hwaddr = 02:b1:b1:b1:b1:b1 lxc.network.type = veth lxc.network.flags = up lxc.network.veth.pair = rfvmb.2 lxc.network.hwaddr = 02:b2:b2:b2:b2:b2 lxc.network.type = veth lxc.network.flags = up lxc.network.veth.pair = rfvmb.3 lxc.network.hwaddr = 02:b3:b3:b3:b3:b3 - 스위치 C config lxc.utsname = rfvmc lxc.network.type = veth lxc.network.flags = up lxc.network.hwaddr = 02:c0:c0:c0:c0:c0 lxc.network.link=lxcbr0 lxc.network.type = veth lxc.network.flags = up lxc.network.veth.pair = rfvmc.1 lxc.network.hwaddr = 02:c1:c1:c1:c1:c1 lxc.network.type = veth

292 Quagga 기반 SDN 지원라우터구축매뉴얼 lxc.network.flags = up lxc.network.veth.pair = rfvmc.2 lxc.network.hwaddr = 02:c2:c2:c2:c2:c2 lxc.network.type = veth lxc.network.flags = up lxc.network.veth.pair = rfvmc.3 lxc.network.hwaddr = 02:c3:c3:c3:c3:c3 - 스위치 D config lxc.utsname = rfvmd lxc.network.type = veth lxc.network.flags = up lxc.network.hwaddr = 02:d0:d0:d0:d0:d0 lxc.network.link=lxcbr0 lxc.network.type = veth lxc.network.flags = up lxc.network.veth.pair = rfvmd.1 lxc.network.hwaddr = 02:d1:d1:d1:d1:d1 lxc.network.type = veth lxc.network.flags = up lxc.network.veth.pair = rfvmd.2 lxc.network.hwaddr = 02:d2:d2:d2:d2:d2 lxc.network.type = veth lxc.network.flags = up lxc.network.veth.pair = rfvmd.3 lxc.network.hwaddr = 02:d3:d3:d3:d3:d3 lxc.network.type = veth lxc.network.flags = up lxc.network.veth.pair = rfvmd.4 lxc.network.hwaddr = 02:d4:d4:d4:d4:d

293 Quagga 기반 SDN 지원라우터구축매뉴얼 - IP config h1 route add default gw h2 route add default gw h3 route add default gw h4 route add default gw Quagga 라우터구성 OSPF 라우팅은엔진에의해서관리된다. 시나리오데몬에맞게일부구성파일을수정한다. zebra=yes bgpd=no ospfd=yes ospf6d=no ripd=no ripngd=no isisd=no ospf.conf : OSPF 옵션, 여기서라우팅된네트워크와메시지인터벌을선언 router ospf! network /12 area 0 network /8 area 0 network /8 area 0 network /8 area 0 network /8 area 0 network /8 area 0 log file /var/log/quagga/ospfd.log! interface eth0! interface eth1! interface eth2 ip ospf hello-interval 1 ip ospf dead-interval 4 ip ospf hello-interval 1 ip ospf dead-interval

294 Quagga 기반 SDN 지원라우터구축매뉴얼! interface eth3! interface eth4 ip ospf hello-interval 1 ip ospf dead-interval 4 ip ospf hello-interval 1 ip ospf dead-interval 4 ip ospf hello-interval 1 ip ospf dead-interval 4 zebra.conf : 인터페이스세팅 ; 인터페이스주소를선언 - 스위치 A interface eth1! interface eth2! interface eth3! interface eth4! ip address /24 ip address /24 ip address /24 ip address /24 - 스위치 B interface eth1 ip address /24! interface eth2 ip address /24! interface eth3 ip address /24!

295 Quagga 기반 SDN 지원라우터구축매뉴얼 - 스위치 C! interface eth1 ip address /24! interface eth2 ip address /24! interface eth3 ip address /24! - 스위치 D! interface eth1 ip address /24! interface eth2 ip address /24! interface eth3 ip address /24! interface eth4 ip address /24! 4. 네트워크구동 Mininet 토폴로지 #cd rftest #scp topo-4sw-4host.py mininet@ :/home/mininet/mininet/custom #scp ipconf mininet@ :/home/mininet$ #sudo./rftest

296 Quagga 기반 SDN 지원라우터구축매뉴얼 Mininet VM으로이동하고네트워크를시작한다 #sudo mn --custom mininet/custom/[name of mininet topology].py --topo=rftest2 --controller=remote,ip=[controller ip],port= pre=ipconf mininet> pingall 그림 A9.8. 컨트롤러에표시된 XML 메시지

297 Quagga 기반 SDN 지원라우터구축매뉴얼 그림 A9.9. 토폴로지구성 GUI

298 Quagga 기반 SDN 지원라우터구축매뉴얼 A9.6. 참고문헌 [1] Quagga: [2] OpenvSwitch: [3] RouteFlow: [4] Mininet:

299 미래네트워크연구시험망실증시험과제 A10. OpenWRT 기반 WiFi 액세스 네트워크구축메뉴얼 Copyright C 2013 한양대학교 MIR Lab All right reserved 사전승인없이본내용의전부또는일부에대한복사, 전재, 배포, 사용을금합니다. 한양대학교

300 OpenWRT 기반 WiFi 액세스네트워크구축매뉴얼 제 / 개정이력 버전날짜작성자성명제 / 개정사항비고 장병욱, 최진식최초작성

301 OpenWRT 기반 WiFi 액세스네트워크구축매뉴얼 A10.1. 서론 Buffalo 공유기를이용하여 Openwrt 공유기환경을만들고 Openwrt내에 OpenVswitch 및 Openflow환경을설정하여무선환경의네트워크를구축한다. 구축된네트워크를 KOREN망에연결하여 SDN Controller와연결하여 Controller로부터관리를받는다. A10.2. 무선 AP A WZR-HP-AG300H 무선네트워크를구축하기위하여 buffalo사의 WZR-HP-AG300H(OpenSwitch 설치하기가원활함 ) 공유기를준비한다. 그림 A10.1. 그림설명그림 A10.1에서보는바와같이 WZR-HP-AG300H은 1개의 USB포트와 1개의무선환경 1개의 WAN과 VLAN을이용한 4개의 LAN포트를제공하고 4개의 LAN포트는기본적으로같은 MAC주소를가진다. 해당공유기는 Openwrt 및 Openvswitch의포팅이쉬운편이며시중에서도쉽게구할수있는제품으로선택하였다

302 OpenWRT 기반 WiFi 액세스네트워크구축매뉴얼 A Openwrt 오픈소스인 Openflow 및 Openswitch를해당공유기에포팅하기앞서공유기에기본적으로설치되어있는펌웨어대신오픈소스인 Openwrt를공유기에포팅하여야한다. Openwrt 포팅을위하여리눅스환경에서 subversion을설치한후아래의명령어를이용하여 openwrt의소스를다운받는다. #svn://svn.openwrt.org/openwrt/tags/attitude_adjustment_12.09/ 우분투환경에서커널컴파일을하기위해아래의명령어를사용하여패키지를설치한다. #sudo apt-get install build-essential asciidocautoconfbinutilsbison bzip2 flex gawk gettextlibncurses5-dev libz-dev patch unzip zlib1g-dev quilt 아래의명령어를이용하여 openwrt의소스를최신으로업데이트한다. HostPC# svn up HostPC# cd attitude_adjustment HostPC#./scripts/feeds update -a HostPC#./scripts/feeds install -a 아래의명령어를사용하여 menuconfig에들어가서 Target System과 Target Profile 을그림 A10.2와같이설정하고 kernel을 make한다. kernel을 make한후이미지를구축한다. (1~2시간소요 ) 컴파일이완료되면 attitude_adjustment/bin폴더에컴파일된이미지가생성된다. #make menuconfig #make kenel_menuconfig #make 그림 A10.2. menuconfig 설정 생성된이미지를공유기설정 Web 에서펌웨어업데이트를통해공유기에 Openwrt 포팅을완료한다

303 OpenWRT 기반 WiFi 액세스네트워크구축매뉴얼 A10.3. SDN A Openflow & OpenVswitch SDN환경을 openwrt내에구축하기위하여 Openflow와 OpenVswitch를 Openwrt에패키지로포함시키고기존의 Openwrt를업데이트하여 SDN환경의 wifi네트워크를구축한다. Openwrt에 Openflow패키지를설치하기위하여아래의명령어들을사용한다. #git clone git://gitosis.stanford.edu/openflow-openwrt #cd ~/ofwrt/backfire/packages/ #ln -s ~/ofwrt/openflow-openwrt/openflow-1.0/ #cd ~/ofwrt/backfire/ #ln -s ~/ofwrt/openflow-openwrt/openflow-1.0/files 이후 make menuconfig 명령어를통해 Network->Openflow와 Kernel Modules->Network Support->kmod-tun을체크해준다. OpenVswitch 의패키기설치를위하여아래의명령어를통해 feed.conf에 OpenVswitch에대한 git주소를 feed.conf에적용한후패키지를 update 및 install 한다. #echo 'src-git openvswitch git://github.com/schuza/openvswitch.git' >> feeds.conf #./scripts/feeds update openvswitch #./scripts/feeds install -a -p openvswitch make menuconfig->network 에서그림 A10.3 과같이각각의항목에체크를한후다 시 make 명령어를통해이미지를생성한다

304 OpenWRT 기반 WiFi 액세스네트워크구축매뉴얼 그림 A10.3. OpenVswitch menuconfig A 네트워크및 SDN 설정 Openwrt 내에서 OpenSwitch 를통한통신을하기위해기본적인 LAN,WAN 설정이 외에도아래의설정을 /etc/config/network 에추가하여야한다. config switch option name 'eth0' option enable '1' config switch_vlan option device 'eth0' option vlan '1' option ports '1 0t' config switch_vlan option device 'eth0' option vlan '2' option ports '2 0t' config switch_vlan config 'interface' option 'ifname' 'eth0.1' option 'proto' 'static' config 'interface' option 'ifname' 'eth0.2' option 'proto' 'static' config 'interface' option 'ifname' 'eth0.3'

305 OpenWRT 기반 WiFi 액세스네트워크구축매뉴얼 option device 'eth0' option vlan '3' option ports '3 0t' config switch_vlan option device 'eth0' option vlan '4' option ports '4 0t' config 'interface' option 'prpto' 'static' option 'ifname' 'eth0.4' option 'proto' 'static' network 와마찬가지로무선환경설정을위해아래그림 A10.4 같이기본설정에서 빨간부분을 # 으로주석처리를해주면된다. 그림 A10.4. wifi 설정 마지막으로 Openwrt 내에서 Openvswitch 에대한설정을위하여아래의명령어를 사용하여브릿지및컨트롤러에대한설정을해준다. #ovs-vsctl show #ovs-vsctl --no-wait init #ovs-vsctl add-br br-br0 #ovs-vsctl add-port br-br0 eth0.1 #ovs-vsctl add-port br-br0 eth0.2 #ovs-vsctl add-port br-br0 eth0.3 #ovs-vsctl add-port br-br0 eth0.4 #ovs-vsctl add-port br-br0 wlan0 #ovs-vsctl set-fail-mode br-br0 secure #ovs-vsctl set-controller br-br0 tcp: :

306 OpenWRT 기반 WiFi 액세스네트워크구축매뉴얼 A10.3. 결론 지금까지 WZR-HP-AG300H 에 Openwrt 의포팅및 SDN & WIFI 환경구축을위한 설정을모두하였다. 모든설정이끝나면공유기는그림 A10.5 와같은구조를가지게된다. 그림 A10.5. Openwrt AP 기반 OpenVswitch 이렇게구축을끝낸공유기는외부의컨트롤러와연결되어 FLOW 를통해패킷에대 한포워딩및통신을제어받게되고무선 AP 를이용하여사용자가무선으로인터넷 망에접속할수있게된다

307 미래네트워크연구시험망실증시험과제 A11. 오픈소스기반 VoIP 서비스 구축매뉴얼 Copyright C 2013 계명대학교컴퓨터네트워크연구실 All right reserved 사전승인없이본내용의전부또는일부에대한복사, 전재, 배포, 사용을금합니다. 계명대학교

308 오픈소스기반 VoIP 서비스구축매뉴얼 제 / 개정이력 버전날짜작성자성명제 / 개정사항비고 주홍택, 권동우최초작성

309 오픈소스기반 VoIP 서비스구축매뉴얼 A11.1. 서론 Voice over Internet Protocol (VoIP) 서비스는기존의공중교환전화망 (Public Switched Telephone Network, PSTN) 과달리공공 IP 기반패킷교환망을사용하여음성통화서비스를제공하는서비스를말한다. 대표적인상용 VoIP 서비스로는 Skype, Viber, Tango 등이있다. 본문서에서는오픈소스소프트웨어를기반으로 VoIP 서비스제공하기위한환경을구축하는방법을설명한다. VoIP 서비스를제공하기위해서는 IP 사설교환기 (Private Branch Exchange, IP PBX) 가필요하다. 오픈소스 IP PBX 소프트웨어로는가장높은점유율을차지하고있는 Asterisk [1] 를사용하고, 오픈소스 VoIP 클라이언트로다양한운영체제를지원하는 Linphone [2] 을사용한다. 이문서는 Asterisk의소스빌드부터설치방법, 환경설정과문제해결방법에대해설명하고, 모바일스마트장치에 Linphone을설치하여 IP PBX에연결하는과정을설명한다. A11.2. Open Source IP PBX Asterisk IP PBX의동작방식은크게두가지로분류할수있다. Session Initiation Protocol (SIP) Proxy와 Back-To-Back User Agent (B2BUA) 이다. SIP Proxy 서버는통화연결 (call setup) 과정에서송신클라이언트의통화연결요청을받고, 그요청을수신클라이언트로전달한다. 이후실제음성데이터가전송되는미디어전송 (media transportation) 과정에서는 Proxy 서버를거치지않고두송 / 수신클라이언트가직접음성데이터를교환한다. 이에반해, B2BUA 방식은통화연결단계와미디어전송단계모두 B2BUA를통하여데이터를교환한다. B2BUA를사용해서 VoIP 서비스를구축했을때의이점은중간에서클라이언트연결만중재하는 Proxy 서버와는달리, 다양한응용서비스를사용자에게제공할수있다는점이다. 대표적인오픈소스 SIP Proxy 서버로는 OpenSIPS [3] 가있고, B2BUA로는 Asterisk가있다. 본문서에서는 VoIP 서비스를구축하기위해서 B2BUA 방식인 Asterisk를사용한다. A Asterisk Asterisk는통신애플리케이션을구축하기위해범용 PC 및서버시스템에설치될수있는오픈소스프레임웍이다. Asterisk는기본적인 VoIP 서비스외에 SIP Messaging 서비스, 보이스메일서비스, 대화식음성응답 (Interactive Voice Response, IVR) 서비스와같은다양한응용서비스를제공할수있으며, VoIP 게이트웨이를통하

310 오픈소스기반 VoIP 서비스구축매뉴얼 여 PSTN 에연결될수있다. Asterisk 는 Digium 사와 Asterisk 커뮤니티에의해관리되 고있으며, Digium 사의지원을받고있다. Asterisk 를사용하여제공할수있는응용 서비스는다음과같다. - 상용전화시스템 / 사설교환기 - VoIP 게이트웨이 - 보이스메일서버 - 회의시다자간연결 - 콜센터 - 대화식음성응답서버 이러한 Asterisk는사설전화망구축을위한소프트웨어중 88% 의점유율을차지하며 [4], 다양한참고문서가존재한다. A Asterisk 설치환경 이문서에서 VoIP 서비스를구축하기위해사용한환경은다음과같다. (1) Asterisk 서버시스템 운영체제 : Ubuntu (raring) - 최신운영체제업데이트완료 (2013년 7월 15일기준 ) $> sudo apt-get update && sudo apt-get upgrade (2) VoIP 클라이언트시스템 안드로이드기반스마트태블릿 : 삼성갤럭시노트 10.1 (SHW-M480W) - Android Version (Ice Cream Sandwich / API Level 15) 안드로이드기반스마트태블릿 : 삼성갤럭시탭 (SHW-M180S) - Android Vesion 2.3 (Gingerbread / API Level 10) 리눅스기반노트북 - Ubuntu LTS (precise) A Asterisk 설치 Asterisk는 Asterisk 공식웹사이트 ( 에서다운로드받을수있다

311 오픈소스기반 VoIP 서비스구축매뉴얼 (1) Asterisk 빌드및설치 a. Version (2013 년 9 월 13 일기준최신버전 ) 다운로드 b. 설치전에 README 파일을숙지후설치시작 c. 빌드시필요한라이브러리설치 ( 의존성문제해결 ) $> sudo apt-get install build-essential libncurses5-dev libncursesw5-dev libxml2-dev libssl-dev uuid uuid-dev libuuid1 sqlite3 libsqlite3-dev - 이외에도의존성문제발생시해당하는라이브러리를추가로설치한후계 속진행 d. Asterisk 빌드환경설정 $>./configure $> make e. Asterisk 빌드 f. Asterisk 설치 (root 권한필요 ) $> sudo make install g. Asterisk 설정예제설치 (root 권한필요 ) $> sudo make samples (2) Asterisk 실행 a. Asterisk 실행 $> asterisk vvvc b. Asterisk 문제해결 실행오류 : asterisk: error while loading shared libraries: libasteriskssl.so.1: cannot open shared object file: No such file or directory - CentOS 64 비트버전에서위와같은오류가발생할수있음. 64 비트용라이브 러리디렉토리에심볼릭링크를생성하여해결 $> ln -s /usr/lib/libasteriskssl.so.1 /usr/lib64/libasteriskssl.so.1 - Asterisk 는정상적으로빌드되고실행되었으나, Asterisk 서버측에서 SIP 포 트 (5060) 가닫혀있어 VoIP 클라이언트에서사용자등록을시도하는경우, 서버 측에서 udp port 5060 unreachable ICMP 메시지응답이발생하는문제 1 Asterisk 를실행한후증상확인을위해 SIP 포트가열려있는지확인 $> netstat na grep 5060 udp : :*

312 오픈소스기반 VoIP 서비스구축매뉴얼 2 위와같이포트가열려있으면다른문제이며, 아무런메시지가나타나지않 으면이문제에해당함 3 이문제는빌드시 libssl-dev 패키지 (Ubuntu 기준 ) 가설치되어있지않아, chan_sip.so 가정상적으로빌드되지않음으로써발생하는문제로, Asterisk 실 행시 SIP 채널모듈을로드할수없게됨 4 Asterisk 빌드전반드시 libssl-dev 패키지가설치되어있는지확인후빌드 를시작해야함 5 chan_sip.so 가잘로드되었는지확인하려면 Asterisk Command-line interface (CLI) 에서다음명령어들이정상적으로동작하는지확인 *CLI> sip show users *CLI> module reload chan_sip.so VoIP 클라이언트에서사용자등록이정상적으로완료되었으나통화연결이되 지않고, Asterisk CLI 상에 rtp_engine.c:259 ast_rtp_instance_new: No RTP engine was found. Do you have one loaded? 오류가발생하는문제 - 다음명령어를실행하여 Resource Modules 메뉴에서 res_rtp_asterisk 가빌 드되어있는지확인 $> make menuconfig - 빌드되어있지않으면 uuid, uuid-dev, libuuid1 패키지를설치한후다시빌 드함 - 위패키지가설치되어있지않으면 res_rtp_asterisk 가빌드되지않아서발생하 는문제임 NAT 네트워크환경에 Asterisk 서버가설치되어있는경우발생하는문제 - Asterisk 서버가 NAT 네트워크에연결되어있으면클라이언트사용자등록, 통화연결까지는성공적으로이루어지나음성이들리지않고일정시간경과후 연결이강제로끊기는현상발생 - Asterisk 서버가클라이언트에게자신의사설 IP 주소를전달함으로써, 발생하 는문제임 ( 클라이언트가 Asterisk 서버의사설 IP 주소로 RTP 패킷전송을시 도함 ) externaddr = < 공인 IP 주소 > localnet = < 사설 IP 주소대역 > ( 예 ) localnet = /24 - sip.conf 에공인 IP 주소와사설 IP 주소대역에관한정보를알려줌으로써해 결이가능함

313 오픈소스기반 VoIP 서비스구축매뉴얼 A Asterisk 기본설정 (sip.conf) (1) Security 관련설정 a. allowguest 기본값 : enabled --> disabled로변경 (guest 통화연결거부 ) b. permit / deny / acl IP 주소필터링 c. contactpermit / contactdeny / contactacl 계정등록을시도하는 IP 주소필터링 d. context 사용자들에게제공하는서비스셋 A Dial Plan 설정 (extensions.conf) (1) Asterisk 서버와 VoIP 클라이언트연결시험을위한내선번호 ( 예 : 9999) 생성 $> sudo vi /etc/asterisk/extensions.conf exten => 9999,1,Answer() exten => 9999,2,Wait(1) exten => 9999,3,Playback(hello-world) exten => 9999,4,Echo() exten => 9999,5,Hangup() (2) 9999 번으로통화를연결하면여성음성으로 Hello, world 가재생된후 Echo 상태가되어테스트가능 A SIP Messaging 설정 (1) SIP 메시지서비스를사용하려면 sip.conf 에서다음과같이설정사항을변경 $> sudo vi /etc/asterisk/sip.conf accept_outofcall_message=yes outofcall_message_context=messages ; SIP 메시지를처리할 context 지정 (2) SIP 메시지를처리하기위해 extensions.conf 에새로운 context 를추가 $> sudo vi /etc/asterisk/extensions.conf

314 오픈소스기반 VoIP 서비스구축매뉴얼 [messages] ; sip.conf에서지정한 context 이름 exten => _.,1,NoOp(SMS receiving dialplan invoked) exten => _.,n,noop(to ${MESSAGE(to)}) exten => _.,n,noop(from ${MESSAGE(from)}) exten => _.,n,noop(body ${MESSAGE(body)}) exten => _.,n,set(actualto=${cut(message(to),@,1)}) exten => _.,n,messagesend(${actualto},${message(from)}) exten => _.,n,noop(send status is ${MESSAGE_SEND_STATUS}) exten => _.,n,gotoif($["${message_send_status}"!= "SUCCESS"]?sendfailed msg) exten => _.,n,hangup() ; 메시지전송실패시처리 exten => _.,n(sendfailedmsg),set(message(body)="[${strftime(${epoch},,% d%m%y-%h:%m:%s)}] Your message to ${EXTEN} has failed. Retry later.") exten => _.,n,set(me_1=${cut(message(from),<,2)}) exten => _.,n,set(actualfrom=${cut(me_1,@,1)}) exten => _.,n,messagesend(${actualfrom},servicecenter) exten => _.,n,hangup() exten => _.,n,hangup()

315 오픈소스기반 VoIP 서비스구축매뉴얼 A11.3. Asterisk Web User Interface A AsteriskNOW (1) AsteriskNOW는리눅스운영체제, Asterisk, Asterisk Web UI가포함되어있는패키지임 CentOS 6.4 기반, Asterisk Web UI인 FreePBX (Open source) 포함 AsteriskNOW 설치이미지 (iso) 를다운받은후설치 ( ownloads) A Digium Asterisk GUI (1) Asterisk Subversion 으로부터 Asterisk GUI 다운로드및설치 Subversion 설치 (root 권한필요 ) $> sudo apt-get install subversion Asterisk GUI 다운로드 (Stable version 2.0) $> svn checkout Asterisk GUI 빌드환경설정 $>./configure $> make Asterisk GUI 빌드 Asterisk GUI 설치 (root 권한필요 ) $> sudo make install Asterisk GUI 를실행하기위한 Asterisk 설정점검 --- Checking Asterisk configuration to see if it will support the GUI --- * Checking for http.conf: OK * Checking for manager.conf: OK * Checking if HTTP is enabled: OK * Checking if HTTP static support is enabled: OK * Checking if manager is enabled: FAILED -- Please be sure you have 'enabled = yes' -- in /etc/asterisk/manager.conf make: *** [checkconfig] Error 1 $> make checkconfig 모든사항이 OK 가되도록안내된지시에따라 Asterisk 설정을변경

316 오픈소스기반 VoIP 서비스구축매뉴얼 (2) Asterisk GUI를사용하기위한 Asterisk 설정변경 $> sudo vi /etc/asterisk/http.conf enabled=yes bindaddr=<asterisk IP 주소 > enablestatic=yes $> sudo vi /etc/asterisk/manager.conf enabled=yes webenabled=yes bindaddr=<asterisk IP 주소 > [admin] 관리자 ID secret = < 관리자비밀번호 > ; 관리자비밀번호 read = system,call,log,verbose,command,agent,config ; 읽기권한 write = system,call,log,verbose,command,agent,config ; 쓰기권한 (3) Asterisk GUI에서 Asterisk 설정파일에접근하고수정할수있도록환경설정 (root 계정이나 sudo 명령으로 Asterisk 실행시생략가능 ) Asterisk를위한새로운사용자생성및비밀번호지정 $> sudo useradd -m asterisk $> sudo passwd asterisk Asterisk 관련디렉토리및파일의소유자 / 그룹변경 $> chown -R asterisk:asterisk /etc/asterisk/ /var/lib/asterisk /usr/share/asterisk /usr/sbin/asterisk Asterisk 설정파일들의권한변경 (rw-r r--) $> chmod 644 /etc/asterisk/* 새로생성한 asterisk 사용자로 Asterisk 시작 $> su asterisk $> /usr/sbin/asterisk vvvc (4) 웹브라우저를통해 Asterisk GUI 접속 IP 주소 >:8088/static/config/index.html

317 오픈소스기반 VoIP 서비스구축매뉴얼 A Digium Asterisk GUI 를사용한 Asterisk 설정 (1) Outgoing Calling Rules a. 내선에서사용할 Calling rule 설정 - Call Rule Name : 규칙이름 - Pattern : 발신내선번호패턴지정 * 패턴규칙 _ : Pattern matching 식별자 X : 0 ~ 9 Z : 1 ~ 9 N : 2 ~ 9 [1248] : 1,2,4,8. : Wildcard * 패턴예 _Z00 : 100, 200, 300,, 900 _[6]XXX : 6000 ~ Destination : 수신지지정 - Custom : 사용자지정 ( 예 ) Dial(SIP/${EXTEN},60) : SIP 사용자인발신내선번호 (${EXTEN}) 로다이얼, 60초간수신대기

318 오픈소스기반 VoIP 서비스구축매뉴얼 (2) Dial Plans a. Outgoing calling rule과 Local context rule을포함하는새로운 Dial plan 생성 - DialPlan Name : Dial plan 이름 - Include Outgoing Calling Rules : 이전슬라이드에서생성한규칙선택 - Include Local Contexts : 추가로포함시킬다른 Context 선택 (3) Users a. 생성한 Dial plan을사용하는새로운사용자생성 - Extension : 내선번호 - CallerID Name : 사용자이름 - CallerID Number : Login ID - DialPlan : 해당사용자를위해생성한 Dial plan 지정 - Voic Access PIN code : 보이스메일핀코드설정 - SIP : SIP 사용자임을지정 ( 필수 ) - Codec Preference : 선호 Codec 우선순위설정 - SIP/IAX Password : 비밀번호설정 - NAT : SIP 클라이언트가 NAT 네트워크환경에서동작함을설정 * WiFi AP를사용할경우반드시설정 - DTMF Mode : 다이얼톤방식지정

319 오픈소스기반 VoIP 서비스구축매뉴얼 A11.4. VoIP Client A SIP 클라이언트 (1) 안드로이드기반 VoIP 클라이언트 ( 오픈소스 ) a. Linphone Video (Belledonne Communications) Version (2013년 7월 15일기준최신버전 ) 윈도우, 리눅스, 안드로이드, ios 운영체제지원 Google Play 스토어를통해설치 b. Sipdroid (I-P-TEL GMBH) Version 3.1 beta (2013년 7월 15일기준최신버전 ) Google Play 스토어를통해설치 c. CSipSimple (Regis Montoya) Version (2013년 7월 15일기준최신버전 )

320 오픈소스기반 VoIP 서비스구축매뉴얼 Google Play 스토어를통해설치 (2) 리눅스기반 VoIP 클라이언트 ( 오픈소스 ) a. Linphone (Belledonne Communications) Ubuntu 운영체제 : apt-get 명령을이용하여설치 $> sudo apt-get install linphone A Linphone 설정 (1) 새로운 SIP 계정을설정하기위해서우측하단의 Settings 메뉴선택

321 오픈소스기반 VoIP 서비스구축매뉴얼 (2) SIP ACCOUNTS 의 Account Setup Assistant 선택 (3) Welcome 화면에서 Let s go 선택

322 오픈소스기반 VoIP 서비스구축매뉴얼 (4) linphone.org 계정이아닌 Asterisk 를사용하여직접구축한 PBX 시스템을사용 할것이므로 I already have a SIP account 선택 (5) 미리등록된테스트계정의 Login ID, 비밀번호, Asterisk 서버주소를입력하면 LinPhone 설정이완료됨

323 오픈소스기반 VoIP 서비스구축매뉴얼 (6) SIP 계정의 Registered 상태를확인한후테스트번호 9999 로연결하여 Asterisk 서버와연결테스트

324 오픈소스기반 VoIP 서비스구축매뉴얼 A11.5. 참고문헌 [1] Asterisk: [2] Linphone: [3] OpenSIPS: [4] David Duffett, "Is Asterisk Suitable for Business Critical Applications?," UC EXPO, [5] Russell Bryant, Lief Madsen, and Jim Van Meggelen, Asterisk: The Definitive Guide 4th Edition, O REILLY

325 미래네트워크연구시험망실증시험과제 A12. VoIP 품질보장기법설계서 Copyright C 2013 계명대학교컴퓨터네트워크연구실 All right reserved 사전승인없이본내용의전부또는일부에대한복사, 전재, 배포, 사용을금합니다. 계명대학교

326 VoIP 품질보장기법설계서 제 / 개정이력 버전 날짜 작성자성명 제 / 개정사항 비고 주홍택, 권동우 최초작성 주홍택, 권동우 VoIP 서비스품질측정, 참고문헌수정

327 VoIP 품질보장기법설계서 A12.1. VoIP 서비스품질지표 VoIP 서비스의품질지표는 Call Setup Quality와 Call Quality로분류할수있다. Call Setup Quality는호성공률 (Call Setup Success Rate, CSSR) 과호중단율 (Call Drop Rate, CDR) 로판단한다. 호성공률은 VoIP 통화연결설정의성공률을의미하며, 한국정보통신기술협회 (Telecommunications Technology Associations, TTA) 의표준안에따라 95% 이상이보장되도록권고하고있다. 호중단율은음성통화중간에통화가끊어지는비율을의미하는것으로 5% 이하가되도록관리해야한다 [1, 2]. Call Quality는실제통화시의음성품질을의미하는것으로, ITU-T P.830 표준에제정된바와같이사람에의해직접적으로측정하는 Mean Opinion Score (MOS) 평가방법을사용하여측정할수있다. 하지만이방법은시간이많이소요되고정확한측정을위한실험통제에어려움이있기때문에 ITU-T G.107 표준안의 E-Model을사용하여 MOS를예측한다. E-Model에의해산출되는최종값인 R은다음과같이계산된다. R = Ro Is Id Ie + A (1) Ro는기본신호대잡음비를나타내고, Is는음량및측음에의한품질저하를나타낸다. Id는지연에의한품질저하를의미하며, Ie는저품질코덱에의해유발되는품질저하를나타낸다. A는모바일통신과같은편리성이주관적품질에끼치는영향을고려한값이다. 산출된 R 값의범위는 0~100이다. E-Model에의해계산된 R 값은다음식에의해 MOS-Conversational Quality Estimated (MOS-CQE) 값으로변환될수있다. MOS-CQE 값의범위는 1~4.5이다 [3]. MOS-CQE = (2) 1 (R < 0) R + R (R-60)(100-R) (0 < R < 100) 4.5 (R > 100) 표 A12.1은 R 값과 MOS-CQE 값의관계와사용자만족도를나타낸표이다. TTA 표준안에의해서 R 값의평가결과는 70 이상을권고하고있다. 이외에도단방향종단간지연시간이 Call Quality에영향을미칠수있으며 150ms 이하가되도록권고하고있다 [2, 4]

328 VoIP 품질보장기법설계서 표 A12.1. R-value와 MOS-CQE의품질범주 R-value MOS-CQE Speech Transmission Quality Category User Satisfaction Best Very satisfied High Satisfied Medium Some users dissatisfied Low Many users dissatisfied Poor Nearly all users dissatisfied A12.2. VoIP 서비스대역폭 VoIP 대역폭점유량은사용되는음성코덱에의해결정된다. 코덱대역폭은식 (3) 에 의해계산되어지며표 A12.2 는코덱별대역폭점유량을나타낸다 [5]. Total packet size = (L2 header) + (IP/UDP/RTP header) + (Voice payload size) - L2 header: Ethernet, Multilink Point-to-Point Protocol (MP), Frame Relay Forum (FRF).12 Codec bit rate = (Codec sample size) / (Codec sample interval) PPS = (Codec bit rate) / (Voice payload size) Bandwidth per channel = (Total packet size) * (PPS) Total Bandwidth = (Bandwidth per channel) * (Number of channels) (3) 표 A12.2. 코덱별대역폭점유량비교 Codec Information Bandwidth Calculations Codec Bitrate (Kbps) Codec Sample Size (Bytes) Codec Sample Interval (ms) Mean Opinion Score (MOS) Voice Payload Size (Bytes) Voice Payload Size (ms) Packets Per Second (PPS) Bandwidth Ethernet (Kbps) G G G G G G G G.722_64k ilbc_mode_ NA ilbc_mode_ NA

329 VoIP 품질보장기법설계서 A12.3. VoIP 서비스품질측정 Call Setup Quality와 Call Quality는다양한 VoIP 오픈소스소프트웨어를통해서측정할수있다. 그림 A12.1은 mvoip 통화품질의측정방법을도식화한것으로, VoIP 서비스의 Call Setup Quality를측정하기위해서 SIP 테스트도구인 mitester for SIP [6] 와 SIPp [7] 를사용하고, Call Quality 측정을위해서 VoIPmonitor [8] 와 pjsip-perf [9] 를사용한다. 표 A12.3은 VoIP 서비스품질측정을위한오픈소스소프트웨어에대한설명을나타낸다. 측정된모든품질평가결과는 mvoip Quality of Experience (QoE) Measurement Agent가종합하여수집한다. 그림 A12.1. mvoip 음성통화품질측정 Open Source VoIP monitor mitester for SIP SIPp pjsip-perf 표 A12.3. VoIP 서비스품질측정을위한오픈소스소프트웨어 Description Analyze quality of VoIP call based on network parameters - delay variation and packet loss according to ITU-T G.107 E-model which predicts quality on MOS scale An automated SIP testing tool designed and developed to take care of the complex pre-deployment testing of SIP applications easily A free test tool / traffic generator for the SIP protocol SIP transaction and call performance measurement tool 또한, VoIP 음성통화의품질을측정하기위해서는오디오라우터가필요하다. 품질 측정시, 변화하는주변의잡음을통제하기위해서실험을위해준비된별도의음성 WAV 파일을재생하고오디오라우터를통해서 mvoip 클라이언트인 Linphone 으로 음성신호를전송 (redirect) 한다. 오디오라우터로는 Jack [10] 과 Soundflower [11] 등 이있다. 이와같은방법을사용하여네트워크의상태를정확히반영하는음성통화

330 VoIP 품질보장기법설계서 품질을측정할수있다. 위와같은연구내용을바탕으로, 모바일 VoIP 서비스를운용중인네트워크구조와네트워크상태에따른최적화된음성코덱을선택함으로서 VoIP 서비스의품질을보장할수있다. A12.4. 관련연구 Kim과 Choi [12] 는무선환경에서다양한 VoIP 코덱의성능을비교하기위해 Perceptual Evaluation of Speech Quality (PESQ) 를측정하였다. VoIP 코덱성능을측정하기위해서 NIST Net 네트워크에뮬레이터로네트워크를구성하고리눅스시스템에서오디오라우터인 Jack을사용하여 VoIP 애플리케이션으로음성신호를전송하여실험을수행하였다. 실험결과, Skype가패킷지연과패킷손실에가장강건한결과를보였고, 상용서비스를제외한코덱중에서는 Speex 코덱이패킷손실 10% 이하일때강건하고, ilbc 코덱이네트워크혼잡상황에서매우강건한결과를보였다. Ng 등 [13] 은유선과무선으로구성된네트워크에서 VoIP 애플리케이션의적응적인코덱전환의성능을측정하였다. VoIP 클라이언트간의 SIP 연결을맺고패킷손실률이특정임계값 (16%) 이상일때 PCMU와 GSM 코덱사이의전환이평균 MOS 증가에효과를나타냄을보였다. 코덱전환은 SIP의 RE-INVITE 메시지내의 Session Description Protocol (SDP) 을사용해서이루어졌다. 이실험을위해서실제네트워크에 SIP Proxy 서버를설치하고 SIP 클라이언트는무선으로연결하였다. 또한네트워크혼잡상황을재현하기위해서네트워크트래픽에뮬레이터가무선네트워크상에서동작되도록구성하였다. Bohge와 Renwanz [14] 는네트워크시뮬레이터인 OMNeT++ 상에서동작하는 VoIP 트래픽생성및평가도구를구현하였다. 이도구를사용해서사운드비트율, 채널지연, 채널오류 (Bit Error Probability, BEP), 채널데이터전송률에따른 PESQ 값을측정하는방법을제시하였다

331 VoIP 품질보장기법설계서 A12.5. 참고문헌 [1] 모바일 VoIP 품질측정방법, 한국정보통신기술협회, Dec [2] 인터넷전화서비스품질평가절차서, 한국정보통신기술협회, 19 Jan [3] L. Ding and R. A. Goubran, Speech Quality Prediction in VoIP Using the Extended E-Model, Proc. IEEE Global Telecommunications Conference (GLOBECOM 03), Vol.7, 1-5 Dec. 2003, pp [4] ITU-T G.107, The E-model: a Computational Model for Use in Transmission Planning, Dec [5] Cisco Systems, Voice Over IP Per Call Bandwidth Consumption [Online]. A v a i l a b l e : ae2.shtml [6] mitester for SIP [Online]. Available: [7] SIPp [Online]. Available: [8] VoIPmonitor [Online]. Available: [9] pjsip-perf [Online]. Available: [10] Jack [Online]. Available: [11] Soundflower [Online]. Available: [12] K. Kim and Y. J. Choi, Performance Comparison of Various VoIP Codec in Wireless Environments, Proc. ACM International Conference on Ubiquitous Information Management and Communication (ICUIMC 11), Seoul, Korea, Feb. 2011, pp [13] S. L. Ng, S. Hoh, and D. Singh, Effectiveness of Adaptive Codec Switching VoIP Application over Heterogeneous Networks, Proc. International Conference on Mobile Technology, Application and Systems, Guangzhou, China, Nov. 2005, pp [14] M. Bohge and M. Renwanz, A Realistic VoIP Traffic Generation and Evaluation Tool for OMNeT++, Proc. International Workshop on OMNeT++, Mar

332 미래네트워크연구시험망실증시험과제 A13. EFN 과 SDN 을이용한진화된 MVNO 서비스아키텍처설계서 Copyright C 2013 고려대학교데이터통신및네트워크연구실 All right reserved 사전승인없이본내용의전부또는일부에대한복사, 전재, 배포, 사용을금합니다. 고려대학교

333 EFN 과 SDN 을이용한진화된 MVNO 서비스아키텍처설계서 제 / 개정이력 버전날짜작성자성명제 / 개정사항비고 조충호, 김세진최초작성

334 EFN 과 SDN 을이용한진화된 MVNO 서비스아키텍처설계서 A13.1. 서론 본기술문서는기업형펨토셀네트워크 (Enterprise Femtocell Network, EFN) 에서소프트웨어정의네트워킹 (Software Defined Networking, SDN) 을이용하여가상이동통신망사업자 (Mobile Virtual Network Operator, MVNO) 서비스를제공하는진화된네트워크아키텍처를설명한다. A 연구배경 최근스마트폰과태블릿등의다양한모바일장치들이급속도로확산되면서모바일데이터트래픽도급격히증가하여, 이동통신망사업자 (Mobile Network Operator: MNO) 들은사업자망 (Core network) 의과부하를예방하기위한대책이필요한실정이다. 2013년 2월 Cisco에서발표한보고서에따르면, 모바일데이터의월사용량이 2012년에 0.9 Exabytes (EB) 에서 2017년에는 11.2EB로약 12배이상증가하며, 연평균성장률 (CAGR) 은 66% 에달할것으로예상하고있다 [ 그림 A13.1]. 그림 A13.1. 전세계모바일데이터트래픽추이및모바일장치유형별비중 (Cisco, ) 2012 년에는 Laptop 이스마트폰의트래픽발생량을앞서고있지만, 2017 년까지 스마트폰 (67.5%) 이전체트래픽발생양의 2/3 를차지하고태블릿 (11.7%) 과 M2M(5.1%) 등의트래픽비중이크게증가될것으로예상된다

335 EFN 과 SDN 을이용한진화된 MVNO 서비스아키텍처설계서 이와같이다양한모바일장치들이발생시키는모바일트래픽을 MNO가사업자망으로수용하기에는네트워크과부하문제뿐만아니라서비스품질 (Quality of Service: QoS) 을보장하는데도어려움이있어시급한대책이필요한실정이다. 따라서, 전세계 MNO 들은사업자망으로집중되는모바일트래픽을분산시키기위 한모바일트래픽우회망기술도입에관심을집중하고있다. 그림 A13.2. 전세계셀룰러트래픽과우회망 (offload) 트래픽비중 (Cisco, ) 그림 A13.2는스마트폰시장성장률과 Wi-Fi를이용한인터넷이용률, 그리고기타분석결과등을기반으로전세계셀룰러트래픽과우회망 (Offload) 트래픽비중을분석한결과이다. 2012년우회망트래픽은 33% 에서 2017년 46% 까지증가할것으로예상된다. 빠른전송률의장점을보유한 Wi-Fi는일반가정집과빌딩, 그리고핫스팟지역에서이미오래전부터우회망기술로사용되었지만, 보안이취약하고이동성을보장하지못하는단점이있다. 따라서, 펨토포럼 (Femto Forum) 은 3GPP와협력하여셀룰러주파수대역에서빠른전송률, 이동성, 그리고보안을강화한초소형이동통신기술인펨토셀표준을 2009년에완성하였다. 그리고, 현재국내주요 MNO 3사를포함한전세계다수의 MNO 사업자들은모바일트래픽을분산하고, 양질의서비스를고객에게제공하기위해펨토셀과와이파이활용에투자를높이고있다

336 EFN 과 SDN 을이용한진화된 MVNO 서비스아키텍처설계서 현재, 포화된이동통신시장에서증가하는고객의가계통신비, MNO의이동통신인프라확충에따른 CAPEX/OPEX, 그리고 MVNO의통신망임대료등을절감하면서, 모바일트래픽의 QoS를보장할수있는차세대유 / 무선통신기술개발이시급히요구된다. 최근스몰셀포럼 (Smallcell Forum) 에서발표된자료에따르면약 81% 의모바일트래픽이실내환경에서발생하고있으며, 3GPP와펨토포럼 ( 현재는스몰셀포럼으로개명 ) 은펨토셀네트워크를이용하여실내모바일사용자의 QoS 보장및접근망의모바일트래픽오프로드를고려중이다. 하지만, 펨토셀네트워크아키텍처는 FAP가수신한모바일데이터를인터넷을통해 MNO 사업자망으로전송하여트래픽부하가집중되는구조를갖는다. 즉, MNO는증가하는모바일트래픽을수용하기위해인프라를확충해야만하며, 이에따른 CAPEX/OPEX는고객과 MVNO에게전가될것으로예상된다. 방송통신위원회는 MVNO의모바일서비스를활성화시켜 MNO와경쟁을유도함으로써, 고객의선택권을확대하고가격경쟁을이끌어내소비자에게돌아가는통신비용부담을줄이려는움직임을보이고있다. 그러나, 신규서비스부족과국내주요 MNO 3사의독점으로영국, 네덜란드, 스칸디나비아등의 MVNO가성공한유럽국가들과달리국내시장에서성장하지못하고있다. 따라서, MVNO에게저렴한통신망임대료를기반으로신규서비스를창출할수있는기회를제공하여, MNO와경쟁시킬뿐만아니라 MNO의불필요한이동통신인프라확충으로인한 CAPEX/OPEX 를절감할수있는차세대통신기술개발이시급하다. 또한, 이와같은 MNO, MVNO, 그리고고객이모두윈-윈할수있는기술개발및테스트베드구축을위해국가적인차원에서적극적인지원이필요하다. A 연구범위 본기술문서는 EFN 환경에서 SDN 을이용하여 MVNO 서비스를제공하기위한진 화된네트워크아키텍처를설계한다. 이를위해아래와같은내용들을포함한다. MVNO, EFN, 모바일트래픽오프로드등의관련기술개요 : 먼저, MVNO의개요와현재서비스중인다양한 MVNO의종류를알아보고, RFN 보다더유용하게이용될것으로예상되는 EFN에대해서소개한다. 이후, 펨토망에서모바일트래픽오프로드를위한 3GPP의표준화동향을알아본다

337 EFN 과 SDN 을이용한진화된 MVNO 서비스아키텍처설계서 EFN에서 SDN을이용한진화된 MVNO 서비스아키텍처설계 : EFN에서 SDN을이용하여 MVNO 서비스를제공하기위한진화된네트워크아키텍처를설계하고, 네트워크를구성하는각구성요소의기능에대해서소개한다. 모바일트래픽오프로드방법및프로세스 : 앞에서설계한진화된 MVNO 서비스아키텍처에서모바일트래픽의 QoS 보장및사업자망의부하감소를위한다양한모바일트래픽오프로드방법들을소개하고, 모바일트래픽이오프로드되는프로세스를알아본다

338 EFN 과 SDN 을이용한진화된 MVNO 서비스아키텍처설계서 A13.2. 관련기술개요 A 가상통신망사업자 (MVNO) 먼저, MNO 와 MVNO 의개요는아래와같다. 이동통신망사업자 (Mobile Network Operator: MNO) : MNO는한정된무선주파수자원을일정기간동안사용하는조건으로거대한금액을지불하고계약한후, 이동통신서비스를제공하는사업자를의미한다. 우리나라에는 SK, KT, 그리고 LGU+ 가 MNO에해당된다. 또한, 각 MNO는구입한무선주파수를이용하여고객들에게서비스를제공하기위해, 전국에통신시설및서비스센터를설치 / 운영한다. 따라서, MNO는주파수대여료, 통신시설설치 / 관리비용, 마케팅비용, 그리고지역서비스센터유지등으로인해통화요금을책정하게되고, 고객들은비교적높은통신비용을부담하게된다. 가상이동통신망사업자 (Mobile Virtual Network Operator, MVNO) : MVNO는이동통신서비스를제공하기위해필수적인무선주파수자원을보유하지않고, MNO의무선주파수자원및통신시설을대여하여독자적인이동통신서비스를제공하는사업자를의미한다. MVNO가탄생하게된배경은, 이동통신서비스의경우유선과는달리유한자원인주파수를이용해야하므로시장에진입할수있는사업자의수가현실적으로제한되어있다. 그러나통신시장의경쟁을활성화하기위해서는지속적으로신규사업자의시장진입을통한시장의자극이필요하다. 따라서주파수의제한을받지않고, 무선통신시장에신규사업자의진입과유사한효과를확보할수있는방안중의하나로 MVNO가지속적으로관심을받고있다. MVNO 는 MNO와같이이동통신서비스를위한비용이많이필요하지않기때문에, 고객에게부담시키는통신비용이낮아진다. 그림 A13.3은모바일네트워크가상화를이용한 MVNO 서비스모델을나타낸다. 물리적인유무선네트워크를가상화를이용하여분리하고, MVNO와같은서비스제공자들은자신들의서비스에맞게네트워크를임대하여서비스를제공한다

339 EFN 과 SDN 을이용한진화된 MVNO 서비스아키텍처설계서 그림 A13.3. 네트워크가상화를이용한 MVNO 서비스모델 MVNO는모바일서비스의종류또는 QoS 요구조건에따라표 A13.1 과같이분류할수있다. Light MVNO는 MNO로부터 Radio spectrum, Home location register (HLR), 그리고 Mobile switching center (MSC) 까지임대하여사용하며, 모바일서비스를처음시작하거나모바일서비스규모가적은 MVNO 들에게적합하다. 반면, Full MVNO는 Radio spectrum 을제외한모든모바일서비스제공을위한구성요소를별도로소유하고있는 MVNO를나타낸다. 따라서, Full MVNO는장기간서비스를제공하거나대량의모바일트래픽을관리해야하는 MVNO 에게적합하다. Service provider Enhanced serv. provider Light MVNO Full MVNO Radio spectrum MNO MNO MNO MNO Home location register (HLR) Mobile switching center (MSC) 표 A13.1. MNO 와다양한종류의 MVNO MNO MNO MNO MVNO MNO MNO MNO MVNO Service platforms MNO MNO MVNO MVNO SIM branding MNO MVNO MVNO MVNO

340 EFN 과 SDN 을이용한진화된 MVNO 서비스아키텍처설계서 Billing MNO or MVNO MVNO MVNO MVNO Customer care MNO or MVNO MNO or MVNO MVNO MVNO Tariff and product development Brand visibility to customer MNO MVNO MVNO MVNO MNO MVNO MVNO MVNO Customer ownership MNO MVNO MVNO MVNO A 기업형펨토셀네트워크 (EFN) 펨토셀은 2007년초에국제표준화단체 3GPP의표준화아이템으로제안되었으며, 2009년 4월펨토포럼및광대역포럼 (Broadband Forum) 과의협력을통해 3GPP 펨토셀표준을공식발표하였다. CDMA 기술의표준화단체인 3GPP2 또한 2010년 3월에 cdma 200 1x 및 EV-DO 주파수엑세스기술을포함한펨토셀의포괄적규격을발표한바있으며, 2011년 11월에는펨토포럼과 cdma 2000 펨토셀과스몰셀배치에대한사업자가이드를발간하였다. 그림 A13.4는 3GPP의펨토셀네트워크아키텍처를나타낸다. 그림 A GPP 펨토셀네트워크아키텍처 하지만, 초기펨토셀네트워크기술과표준은일반적인가정환경에 1~2개의펨토기지국 (Femtocell Access Point: FAP) 이설치되는 RFN에적합하였고, 매크로셀과펨토셀사이의간섭제어및자원할당에대한연구가주로진행되었다. 이후, 펨토셀기술및표준에적극참여한펨토포럼은현재스몰셀포럼으로이름

341 EFN 과 SDN 을이용한진화된 MVNO 서비스아키텍처설계서 을바꾸고, 다양한펨토셀시나리오 (Residential, Enterprise, Metro, 그리고 Rural femtocells) 를제시하며 3GPP 와함께진화된펨토셀기술을준비하고있다. 그림 A13.5 는스몰셀포럼의다양한펨토셀시나리오를나타낸다. 그림 A13.5. 스몰셀포럼이진행중인다양한펨토셀시나리오 펨토셀네트워크의표준화기구별동향은 3GPP WCDMA 계열의 Home Node-B 라는이름으로 2007년 3월표준화가시작되었으며, LTE/UMTS 공통및개별항목을정의하였다. 개별항목은측정 / 핸드오버, 구조 / 기능 / 이동성, RF/ 인터페이스, 보안, 가입자관리 / 인증및위치관리, 인식, 프로토콜등이다. 3GPP2 CDMA 계열은 2007년 5월스프린트, 퀄컴, LG사등이참석하여 Work item (WI) 을선정하였다. 개별항목은 Network architecture 완료, Requirements 표준마무리, 펨토-피코애플리케이션등이다. WiMAX 계열은 2008년 3월에하와이미팅에서승인을받은후, 2009년 12월에펨토셀 ( 와이브로 ) 네트워크구조및프로토콜에대한표준화 (TTAK.KO ) 를완료하였다. 그리고, m은펨토셀의 Mobility, Interference, Synchronization, SON 등다양한기술적인문제를다루고있다. 표 A13.2는각표준화기구별펨토셀표준화동향을나타낸다. 국내에서는한국정보통신기술협회 (TTA) 와방송통신위원회 (KCC) 를중심으로펨토셀에대한표준화연구가진행되고있다. TTA에서는이동통신기술위원회 (TG) 7 산하 IMT WiBro 프로젝트그룹 (PG) 702 산하서비스및네트워크작업반 (WG) 7022에서옥내용펨토표준에대한요구사항을정의하고있으며, 기술보고서 < 휴대인터넷서비스및네트워크요구사항 > 에펨토셀

342 EFN 과 SDN 을이용한진화된 MVNO 서비스아키텍처설계서 요구사항을추가하여개정하고, 현재핸드오버기능, idle 모드기능, self-optimization & auto-configuration 기능등에대한표준화를추진중이다. TTA 포럼사업의일환으로 2008년에활동하던펨토셀포럼이 FMC 포럼에서개명되어 IEEE/WiMAX, ITU, MNI, 3GPP/3GPP2, 응용비즈니스등다섯개분과로구성되어표준화를진행중이다. TTA는 WiBro 펨토셀네트워크구성을세가지 ASN Profile Type(Profile A: Centralized Model/Profile B: OneBox Model/Profile C: Distributed Model) 중에펨토셀단독형 (ASN Profile B) 또는펨토 ACR 연결형 (ASN profile C) 동시수용이가능하도록표준화하고있다. 표 A13.2. 펨토셀표준화기구별동향 옥내용휴대인터넷서비스를위해펨토셀서비스 ( 가정용휴대인터넷, 반경 30m) 와피코셀서비스 ( 기업용휴대인터넷, 반경 100m) 를구분하고, 펨토셀간핸드오버는지원하지않으며, 옥외용휴대인터넷기지국과의핸드오버및피코셀과피코셀간, 피코셀과옥외망과의핸드오버를지원하도록규격화하고있다. 또한, GPS 미수신에

343 EFN 과 SDN 을이용한진화된 MVNO 서비스아키텍처설계서 대처하기위한별도의수단으로논의중이며, 이밖에도인증, 보안, 망관리에대한 연구가논의중이다. A GPP 모바일트래픽오프로드기술표준화동향 3GPP는모바일트래픽오프로드기술표준화를위해펨토셀, WLAN, 그리고 Policy aspects 측면에서표 A13.3과같이진행중이며, 본기술문서에서는펨토셀관련표준인 LIPA, SIPTO, 그리고 LIMONET 등을주로알아본다. 3GPP는 Rel-9에서펨토기지국 H(e)NB에대한표준을완료하였고, Rel-10에서펨토망에서발생하는모바일트래픽을우회시키기위한 LIPA 와 SIPTO 표준을진행하였다. Rel-9 와 10은주로거주형펨토망 (Residential Femto Network: RFN) 을목표로하였으며, 다수의 FAP가밀집되어배치되는 EFN 환경에서모바일트래픽오프로드및모바일사용자이동성까지고려하는 LIPA Mobility and SIPTO at the Local Network (LIMONET) 표준을현재 Rel-12 에서진행중이다. LIPA 와 SIPTO 는상대노드 (Correspondent Node, CN) 의위치에따라모바일트래픽을사업자망으로전송하지않고오프로드시키는기술을의미한다. 즉, CN이내부망에위치할경우 FAP에설치된 Local Gateway (L-GW) 가 LIPA 를이용하여모바일트래픽을내부에서처리한다. 반면, 모바일사용자가인터넷트래픽을발생시킬경우, FAP는 SIPTO를이용하여사업자망이아닌인터넷으로직접전송하여사업자망의부하를감소시킨다. LIMONET은 FAP가밀집된 EFN 환경에서모바일사용자의 FAP-to-FAP 이동성관리와 L-GW가 EFN 내부의모바일트래픽을내부에서처리하는트래픽오프로드를목표로한다. 표 A13.3. 모바일트래픽오프로드를위한 3GPP 표준화기술동향 Rel-8 Rel-9 Rel-10 Rel-11 Rel-12 Femto H(e)NB LIPA SIPTO LIMONET WLAN Seamless Handover MAPCON, IFOM, NSWO, SMOG SaMOG, LOBSTER WLAN_NS, FS_SaMOG, FS_NBIFOM, FS_WORM, etc

344 EFN 과 SDN 을이용한진화된 MVNO 서비스아키텍처설계서 Policy aspects ANDSF ANDSF-ISRP DIDA, BBAI OPIIS, P4C LIPA: Local IP Access SIPTO: Selected IP Traffic Offload LIMONET: LIPA Mobility and SIPTO at the Local Network MAPCON: Multi Access PDN Connectivity IFOM: IP Flow Mobility NSWO: Non-Seamless WLAN Offload SMOG: S2b Mobility based on GTP SaMOG: S2a Mobility based on GTP and WLAN Access LOBSTER: Location-Based Selection of gateway for WLAN WLAN_NS: WLAN Network Selection for 3GPP Terminals WORM: Optimized Offloading to WLAN in 3GPP RAT mobility NBIFOM: Network-based IP Flow Mobility ANDSF: Access Network Discovery and Selection ISRP: Inter-System Routing Policy DIDA: Data Identification in ANDFS OPIIS: Operator Policies for IP Interface Selection BBAI: BroadBand Forum Access Interworking P4C: PCC control for supporting fixed broadband access networks 3GPP는 Rel-9에서펨토기지국 H(e)NB에대한표준을완료하였고, Rel-10에서펨토망에서발생하는모바일트래픽을우회시키기위한 LIPA 와 SIPTO 표준을진행하였다. Rel-9 와 10은주로거주형펨토망 (Residential Femto Network: RFN) 을목표로하였으며, 다수의 FAP가밀집되어배치되는 EFN 환경에서모바일트래픽오프로드및모바일사용자이동성까지고려하는 LIPA Mobility and SIPTO at the Local Network (LIMONET) 표준을현재 Rel-12 에서진행중이다. LIPA 와 SIPTO 는상대노드 (Correspondent Node, CN) 의위치에따라모바일트래픽을사업자망으로전송하지않고오프로드시키는기술을의미한다. 그림 A13.6은 3GPP의 LIPA 와 SIPTO 를위한펨토셀네트워크아키텍처를나타낸다. 각펨토기지국에 L-GW를설치하고, L-GW는 LIPA와 SIPTO를이용하여모바일트래픽을우회시킨다

345 EFN 과 SDN 을이용한진화된 MVNO 서비스아키텍처설계서 Residential / Enterprise network LIPA L-GW H(e)NB Backhaul H(e)NB -GW Mobile Operator Core Network UE 그림 A GPP 의 LIPA 와 SIPTO 를위한펨토셀네트워크아키텍처 모바일사용자와 CN이모두내부망에위치할경우, FAP에설치된 Local Gateway (L-GW) 가 LIPA 를이용하여모바일트래픽을내부에서처리한다. 그림 A13.7은전형적인펨토셀네트워크와 HeNB가 LIPA를이용하여모바일트래픽을우회시키는두가지모델의트래픽흐름을나타낸다. 그림 A13.7-(b) 는 L-GW가없는전형적인펨토셀네트워크모델이며, 동일한 HeNB에연결된두개의모바일사용자가통신하는경우에도모바일트래픽이사업자망까지전송된후다시 CN까지돌아온다. 반면, 그림 A13.7-(c) 는 HeNB가 LIPA를이용하여동일한 HeNB에연결된두개의모바일사용자의모바일트래픽을내부에서처리하여사업자망의부하를감소시킨다. 그림 A13.7. 전형적인방범과 LIPA 를이용한방법의모바일트래픽흐름 모바일사용자와인터넷트래픽을발생시킬경우, FAP 에설치된 Local Gateway

346 EFN 과 SDN 을이용한진화된 MVNO 서비스아키텍처설계서 (L-GW) 는 SIPTO 를이용하여모바일트래픽을사업자망이아닌인터넷으로바로 전송한다. 그림 A13.8 은 HeNB 가 SIPTO 를이용하여모바일트래픽을우회시키는방 법을나타낸다. 그림 A13.8. SIPTO를이용한모바일트래픽우회방법 LIMONET은 FAP가밀집된 EFN 환경에서모바일사용자의 FAP-to-FAP 이동성관리와 L-GW가 EFN 내부의모바일트래픽을내부에서처리하는트래픽오프로드방법이다. 그림 A13.9는펨토기지국이밀집된 EFN 환경에서하나의 L-GW가다수의펨토기지국에대한이동성관리및간섭제어를제공하는네트워크아키텍처를나타낸다

347 EFN 과 SDN 을이용한진화된 MVNO 서비스아키텍처설계서 PDN PDN L-GW L-GW H(e)NB H(e)NB H(e)NB H(e)NB H(e)NB Local H(e)NB network Local H(e)NB network 그림 A13.9. 펨토기지국이밀집된 EFN 환경에서 LIMONET 을이용한이동성 관리및간섭제어 그림 A13.10 은 HeNB 와독립된 L-GW 를이용하여 LIMONET 서비스를제공하기 위한아키텍처와모바일사용자의이동에따른이동성관리예를나타낸다. SGi L-GW Sxx S5 SeGW X2 HeNB S1-U S1-MME HeNB GW S1-U SGW Uu S1-MME S11 UE MME (a) Stand-alone L-GW architecture

348 EFN 과 SDN 을이용한진화된 MVNO 서비스아키텍처설계서 L-GW H(e)NB H(e)NB H(e)NB H(e)NB UE UE UE UE (b) LIPA mobility with stand-alone L-GW 그림 A LIMONET 을위한독립된 L-GW 아키텍처와이동성관리예 즉, 그림 A13.10-(a) 에서 L-GW 가 H(e)NB 와독립되어위치하며, 그림 A13.10-(b) 와같이 L-GW 는 LIMONET 을이용하여 H(e)NB 사이의핸드오버를관리한다

349 EFN 과 SDN 을이용한진화된 MVNO 서비스아키텍처설계서 A13.3. EFN 과 SDN 을이용한진화된 MVNO 서비스아키텍처설계 A 진화된 MVNO 서비스아키텍처설계 본항에서는펨토기지국이밀집된 EFN 환경에서 SDN을이용하여보다효율적으로 MVNO 서비스를제공할수있는진화된 MVNO 서비스아키텍처를설계한다. 본기술문서에서는 Full MVNO 모델보다다양한고려사항이요구되는 Light MVNO 아키텍처를고려한다. 그림 A13.11 은진화된 MVNO 서비스아키텍처를나타낸다. 그림 A MNO 와 MVNO 의모바일트래픽오프로드아키텍처 먼저, 밀집된펨토기지국이설치된 EFN 은사업자망인 EPC 까지 SDN 가상망자원을예약하여모바일트래픽을전송한다. 이를위해, EFN의내부망과외부망이연결되는 Gateway 를 Openflow 기반진화된 Gateway (Open Enhanced Gateway, Open EGW) 를설치한다. 이후, Open EGW 는 3GPP의 LIPA, SIPTO, 그리고 LIMONET 를이용하여효율적으로모바일트래픽을오프로드시켜사업자망의부하를감소시킬뿐만아니라, HeNB 설치에따른초기설정및이웃한펨토기지국간간섭을고려한무선자원관리 (Radio Resource Management, RRM) 까지수행한다. 또한, 사업자망인 EPC는 MME, HSS(MNO와 MVNO가독립됨 ), S-GW, P-GW, 그리고 HeNB-Management Server (HeNB-MS) 로구성된다. SDN Controller는

350 EFN 과 SDN 을이용한진화된 MVNO 서비스아키텍처설계서 EPC 내부또는인터넷망에위치할수있으며, Open EGW 부터사업자망전체의가상망을제어한다고가정한다. 즉, Open EGW부터 Open HeNB-GW 까지의가상망자원을예약하여 QoS를보장하며모바일트래픽을사업자망까지전송할뿐만아니라, 사업자망내부에서도가상망자원을예약하여모바일트래픽을전송한다. 그리고, HeNB-MS는 RFN에위치한독립된펨토기지국을관리하는동시에 EFN을구성하는밀집된펨토기지국들을관리하는 Open EGW 까지관리한다. EFN 환경에위치한모바일사용자들은자신이 MNO 또는 MVNO 가입자임에관계없이모바일서비스를제공받으며, 독립된 HSS가모바일사용자를인증하고각모바일사용자별과금을부과한다. A 진화된 MVNO 서비스아키텍처구성요소 EFN 구성요소 그림 A EFN 구성요소 Open EGW HeNB-MS (Initial setup, RRM) L-GW (LIPA, SIPTO, LIMONET) Open HeNB HUE (MNO, MVNO)

351 EFN 과 SDN 을이용한진화된 MVNO 서비스아키텍처설계서 HeNB-GW and EPC 구성요소 SeGW MME HSS (MNO, MVNO) S-GW P-GW HeNB-MS Controller SDN Controller 그림 A Open HeNB-GW 와 EPC 구성요소

352 EFN 과 SDN 을이용한진화된 MVNO 서비스아키텍처설계서 A13.4. 모바일트래픽오프로드방법및 프로세스 본절에서는 A13.3 절에서소개한진화된 MVNO 서비스아키텍처를기반으로다양 한모바일트래픽오프로드방법및프로세스를소개한다. A 모바일트래픽오프로드방법 A13.3절에서소개한진화된 MVNO 서비스아키텍처를이용한모바일트래픽오프로드방법은모바일사용자의위치에따라다양하게고려될수있다. 즉, 모바일사용자가 HUE ( 펨토기지국과연결 ) 또는 MUE (MBS와연결 ) 임에따라모바일트래픽오프로드방법사용유 / 무가결정된다. 모바일사용자가 EFN 내부에위치 ( 모바일사용자 =FUE) 모바일사용자가매크로셀커버리지에위치 ( 모바일사용자 =MUE) 또한, EFN의 Open EGW는 EPC의 MME와협력하여 CN의위치를확인하고, CN의위치에 Open FCS 는 LIPA, SIPTO, 그리고 Core network 으로전송하는방법중에서선택한다. 이후, 선택된방법에따라 Openflow controller는 CN까지최적경로설정및가상망자원을예약한다. CN이 EFN 내부에위치 (CN=FUE) CN이매크로셀커버리지에위치 (CN=MUE) CN이인터넷망에위치한서버또는 PC 그림 A13.14 는모바일사용자와 CN 의위치에따라선택가능한모바일트래픽 오프로드방법에대한예를나타낸다

353 EFN 과 SDN 을이용한진화된 MVNO 서비스아키텍처설계서 그림 A CN 의위치에따라선택가능한모바일트래픽오프로드방법에대한예 모바일사용자가 MUE일경우, 모바일트래픽은 Open MBS를경유하여 EPC 로전송된다. 모바일사용자가 HUE(MNO/MVNO) 일경우, CN의위치에따라 L-GW 는 LIPA, SIPTO, 그리고 EPC로모바일트래픽을전송하게된다. 즉, Open EGW는 MME와 CN의 IP 주소를확인한후, CN 의 IP 주소가 EFN 내부 IP인경우에는 LIPA를이용하고인터넷망에위치할경우에는 SIPTO를이용하여모바일트래픽을오프로드한다. 만약, CN이 EPC에연결되었거나 MBS에연결된 MUE일경우에는 EPC 망으로전송한다. HeNB-MS 는밀집된펨토기지국사이의간섭과 HUE 의 SINR 을고려하여간섭제어및전송파워를제어하여무선채널을할당하여, EFN의시스템성능을향상시킬수있다. 그림 A13.15 는 CN 의위치에따라 Open EGW 가 MME (HSS) 와협력하여모바 일트래픽오프로드방법을선택하는플로우를나타낸다

354 EFN 과 SDN 을이용한진화된 MVNO 서비스아키텍처설계서 그림 A CN 의위치에따른모바일트래픽오프로드선택방법 모바일트래픽오프로드방법은 CN의위치뿐만아니라모바일트래픽의종류 (Voice, Real-time video, Non-real-time video, Web, , etc) 에따라선택할수있다. 그림 A13.16 은 CN의위치와모바일트래픽의종류에따라 Open EGW 가 MME (HSS) 와협력하여모바일트래픽오프로드방법을선택하는플로우를나타낸다

355 EFN 과 SDN 을이용한진화된 MVNO 서비스아키텍처설계서 그림 A CN 과모바일트래픽의종류에따른모바일트래픽오프로드방법선택 A MVNO 모바일트래픽오프로드프로세스 Open EGW 와 MME (HSS) 가 A13.4.1항에서소개한알고르즘을이용하여모바일트래픽오프로드방법을선택하면, SDN Controller 는최적경로설정및가상망자원을예약하여모바일트래픽을전송한다. 본기술문서에서는 MVNO 모바일사용자의모바일트래픽만오프로드시키는시나리오를가정한다. 즉, MNO는자신의 EPC 를최대한활용하고, MVNO는 MNO 인프라임대료절감및모바일사용자의통신비부담감소를목적으로모바일트래픽을오프시킨다. 또한, 모바일트래픽오프로드환경을구축하는테스트베드에서원활한동작을위해 SIPTO를이용한모바일트래픽오프로드는 HeNB-GW에서수행함을가정한다. 즉, EFN 환경에서 LIPA를이용한모바일트래픽오프로드는 Open EGW가수행하며, CN이인터넷망에위치하는경우에모바일트래픽은 HeNB-GW로터널링을이용하여전송된후 EPC 내부로전송되지않고 CN으로바로전송된다

356 EFN 과 SDN 을이용한진화된 MVNO 서비스아키텍처설계서 그림 A13.17 은전형적인펨토망아키텍처에서 MNO 사용자인증절차및 Internet 트래픽전송프로세스를나타낸다. 그림 A 전형적인펨토망아키텍처에서 MNO 사용자인증절차및 Internet 트래픽전송프로세스 MNO HUE는모바일서비스이용을위해사용자인증을요청한다. MNO MME/HSS 는 HUE의사용자인증및연결수락메시지를전송하고, HUE 부터 P-GW까지인터넷트래픽전송을위해 EPC bearer를설정한다. 이후, MNO HUE가발생시키는모든모바일인터넷트래픽은 HeNB를통해 P-GW까지전송된후, CN까지인터넷망을이용하여전송된다

357 EFN 과 SDN 을이용한진화된 MVNO 서비스아키텍처설계서 그림 A13.18 은전형적인펨토망아키텍처에서 MVNO 사용자인증절차및 Internet 트래픽전송프로세스를나타낸다. 그림 A 전형적인펨토망아키텍처에서 MVNO 사용자인증절차및 Internet 트래픽전송프로세스 MVNO HUE는모바일서비스이용을위해사용자인증을요청한다. 먼저, MNO MME/HSS 가 HUE의사용자정보를확인한후, HUE 정보를찾지못할경우는 MVNO MME/HSS 에게인증을요청한다. MVNO MME/HSS 가자신의 MVNO HUE의사용자인증을수행한후, 연결수락메시지를펨토기지국과 HUE에게전송하는동시에 HUE부터 P-GW까지인터넷트래픽전송을위해 EPC bearer를설정한다. 이후, MVNO HUE가발생시키는모든모바일인터넷트래픽은 HeNB를통해 P-GW까지전송된후, CN까지인터넷망을이용하여전송된다

358 EFN 과 SDN 을이용한진화된 MVNO 서비스아키텍처설계서 앞에서가정한 MNO의정책에따라진화된아키텍처에서도 MNO의모바일인터넷트래픽은오프로드되지않고, 그림 A13.17 의전형적인펨토망아키텍처에서전송되는방법과동일하게전송된다. 반면, 진화된아키텍처에서 MVNO HUE의모바일인터넷트래픽은효율적으로오프로드시킨다. 그림 A13.19는 MVNO HUE의모바일인터넷트래픽을오프로드하는프로세스를나타낸다. 그림 A 진화된아키텍처에서 MVNO 모바일사용자인증절차및 Internet 트래픽 오프로드프로세스 MVNO HUE는모바일서비스이용을위해사용자인증을요청한다. 먼저, MNO MME/HSS 가 HUE의사용자정보를확인한후, HUE 정보를찾지못할경우는 MVNO MME/HSS 에게인증을요청한다. MVNO MME/HSS 가자신의 MVNO HUE의사용자인증을수행한후, 연결수락메시지를 EGW에게전송하는동시에 HUE부터 HeNB-GW까지인터넷트래픽전송을위해 bearer를설정한다. 이후, MVNO HUE가발생시키는모든모바일인터넷트래픽은 HeNB를통해 HeNB-GW 까지전송된후, CN까지인터넷망을이용하여전송된다

359 미래네트워크연구시험망실증시험과제 A14. MVNO 서비스를위한구성요소 들의역할및동작절차설명서 Copyright C 2013 고려대학교데이터통신및네트워크연구실 All right reserved 사전승인없이본내용의전부또는일부에대한복사, 전재, 배포, 사용을금합니다. 고려대학교

360 MVNO 서비스를위한구성요소들의역할및동작절차설명서 제 / 개정이력 버전날짜작성자성명제 / 개정사항비고 조충호, 김이강최초작성

361 A14.1. 개요 A 목적 본문서는 개방형모바일네트워크테스트베드기술실증시험 과제의 모바일네트워크기술커뮤니티형성및협력실증시험 부분의모바일네트워크플랫폼기반 MVNO 서비스구현을위해필요한요소를도출하고, 이를기반으로 시스템설계및세부기능 을정의한문서이다. 또한, 본문서는 MVNO 서비스아키텍처설계연구 를기반으로주요요소들을시스템단위로분리하고, 해당시스템들의기능을정리하며, 실제서비스를구현할수있도록프로그래밍관점에서작성된문서이다. 본문서는개발자에게시스템의구현범위와가정사항을제시하고, 기기술된역할및동작절차를설명하여모바일네트워크플랫폼기반 MVNO 서비스의구현을하기위한주요도구로서목적을지닌다. A 범위 본문서는 모바일네트워크플랫폼기반 MVNO 서비스구현 을위한시스템설계및동작절차를설명하는자료이다. 시스템구축을위한기초자료로서, 개발자가시스템을구현함에있어필요한기능들을모듈단위로소개 / 설명한다. 따라서본문서에서는시스템구현에사용하는함수와같은소스코드단위까지의세부적인설명은제공하지않는다 ( 일부모듈단위로기능에대한설명이불가할경우, 소스코드단위의설명을첨부한다 )

362 MVNO 서비스를위한구성요소들의역할및동작절차설명서 A 용어및약어 용어 EFN SDN MVNO MMO FCS RRM HeNB-GW MME HSS S-GW P-GW EPC VM IMSI MMC MNC NS3 GTP-U 설명 Entriprise Femto Network Software Defined Networking Mobile Virtual Network Operator Mobile Network Operator Femtocell Control Server Radio Resource Management Home evolved Node B-Gateway Mobility Management Entity Home Subscriber Server Serving-Gateway PDN(Packet Data Network) Gateway Evolved Packet Core Virtual Machine International Mobile Subscriber Identity Mobile Country Codes Mobile Networt Codes Network Simulator3 GPRS Tunnelling Protocol-U

363 MVNO 서비스를위한구성요소들의역할및동작절차설명서 A14.2. MVNO 서비스제공을위한전체시스템소개 본절에서는 모바일네트워크플랫폼기반 MVNO 서비스구현 이라는목표달성을위해개발자의이해를돕고자구현하자고하는전체 MVNO 서비스시스템에대한대략적인소개를한다. 먼저 MVNO 서비스 라함은별정통신사업자를통해이동통신서비스를제공받는것으로, 알뜰폰 이란이름으로일반인들에게알려진서비스이다. MVNO 서비스 는특정사업자가이동통신사업을하기위해서는많은자본과설비가필요시되어시장의진입장벽이높은문제를완화하고자도입된방식이다. MVNO 서비스 는기존의이동통신사로부터유 / 무선망에대한회선을임대 ( 이동통신사의 Core 망공유 ) 받고, MVNO 사업자는별도로가입자를유치하여기존의이동통신과동일한서비스를제공한다. 본연구를통해개발하고자하는 MVNO 서비스시스템 은일반적으로사용자가 MVNO를통해제공받는이동통신서비스를모두제공하기위한것이아니다. 현재모바일네트워크진화로인해발생되고있는이동통신사 Core 망의부하문제를해결하기위한방법으로, 이동통신사의 Core 망을공유하고있는 MVNO 사용자의트래픽을인터넷으로우회하여부하를경감하기위한기술을개발하는것이고, 이것이본 MVNO 서비스시스템 의개발목표이다. 또한본 MVNO 서비스시스템 은기존의 MVNO 사업자와같이넓은영역을서비스하는것이아닌사용자의트래픽의우회효과측면과고객의가계통신비입장에서유리한펨토셀네트워크환경을기반으로 MVNO 서비스환경을구축한다. 다만펨토셀은가정에독립된형태로구축되는것을기본으로하는데, 본시스템은최근많이도입되고있는기업형펨토망 (Enterprise Femto Network: EFN) 을도입하여구축한다. 기업형펨토망은건물 ( 비지니스빌딩, 병원, 백화점, 공항등 ) 내에여러개의펨토셀이밀집된환경이기때문에별도의모바일트래픽관리를위한기능도추가로구축되어야한다. 본시스템구축에있어오픈네트워크를지향하기때문에전체네트워크의관리는 SDN Controller에의해이루어지며, 특히기업형펨토망의트래픽전달기능의중심에있는 HeNB-GW는 SDN Controller와의통신을통해트래픽우회기능을수행하게된다

364 MVNO 서비스를위한구성요소들의역할및동작절차설명서 그림 A14.1. MVNO 서비스를위한시스템개념도그림 A14.1은 MVNO 서비스를위한시스템 의구성의예를나타낸다. l 빌딩환경에다수의 HeNB가설치된 EFN 환경과무선자원관리기능을수행하는 FCS Emulator l SDN Controller와연동을통해 MVNO 모바일트래픽을우회하는 HeNB-GW l MVNO 서비스를위한 MNO Core 망구성요소를 OpenStack cloud Server에구축 l 각사용자에의해발생된트래픽의목적지가될외부서버 (Upload Server) FCS Emulator에서사용자생성후, 각사용자별로인증신호를발생하여전송한다. HeNB-GW는이를 EPC로전달하고, EPC내에 MME에서 HSS정보를이용해사용자가 MVNO인지 MNO인지를판단하여알려준다. 각각인증결과를수신한사용자는자신이전송하고자하는데이터트래픽을발생하여전송하고, HeNB-GW는이를수신한후, 수신한트래픽이 MNO 사용자의트래픽이면이를 EPC로전송하여외부서버로전달되도록한다. 반면 HeNB-GW에서수신한트래픽이 MVNO 사용자의트래픽이면 HeNB-GW 와 SDN Controller의연동을통해우회로를설정하여외부서버로전달되도록한다. 본시스템은위에서설명한바와같이 MVNO 사용자에게트래픽우회서비스를제공하기위한것이며, 보다구체적인내용은다음절을통해각기능구조단위로설명하도록한다. 그림 A14.2 는본시스템이최종적으로구현될시스템환경을나타낸다. EFN 환경이 총 2 곳인고려대와경희대에구축되고, 경희대의 Cloud Server 의 VM 에 MVNO 서비스

365 MVNO 서비스를위한구성요소들의역할및동작절차설명서 를위한 EPC 기능을경량화하여구축된다. 또한경희대와고려대외별도의장소에외부 서버를두어 SDN Controller 의관리하에서트래픽의흐름을확인할수있도록한다. 그림 A14.2. 모바일네트워크플랫폼기반 MVNO 서비스의전체적인시스템환경

366 MVNO 서비스를위한구성요소들의역할및동작절차설명서 A14.3. MVNO 서비스를위한구성요소별역할정의 본절에서는이전절에서소개한 모바일네트워크플랫폼기반 MVNO 서비스 를구현하기위해각시스템구성요소별로나누어역할정의한내용을설명한다. 추가적으로시스템구성요소별세부기능과구현에따른제약사항등을설명한다. 본절에서시스템역할정의를소개하는순서는 FCS Emulator, HeNB-GW, MNO/MVNO Server poll, 외부서버순이다 FCS Emulator 역할 FCS Emulator의주요기능은가상의빌딩에다수의 HeNB가설치된 EFN 환경설정, EFN의무선자원을관리와무선자원에따른데이터트래픽전송이다. 앞선기능들을수행하기위해 FCS Emulator는 Enterprise Femto Unit (EFU), Femto Control Unit (FCU), Communication Unit (CU) 의모듈로구성된다. 본시스템구축에있어 FCS Emulator를이용하는것은실제펨토셀장비를설치하여서비스를제공하는것이현실적으로어렵기때문이다. 그이유는펨토셀장비의도입에있어금전적인부분의문제가우선이고, 다음으로펨토셀장비가무선자원을이용하는기술이기때문에주파수자원을사용시이동통신사와의협조가어렵기때문이다. 또한차선책으로최근많은연구부분에서도입되고있는오픈소스기반네트워크프로젝트를도입해구축할수있으나, 펨토셀연구에대한오픈소스기반네트워크프로젝트가아직은존재하지않기때문에, 펨토셀을가상으로구축해서비스를제공하는형태인 Emulator를제작하게되었다. Emulator를통한시스템의제작에있어신뢰성을확보및구현의편리성보장하기위해 NS3의 log-normal distribution Random Number Generator() 와같은함수들을사용하였다. 아래그림 A14.3 은 FCS Emulator 를기능단위로나타낸모듈구성도이다. 먼저 EFU 는 FCS Emulator 의전체환경을설정하는부분으로, 가상의빌딩을생성하고, 빌딩의실내

367 MVNO 서비스를위한구성요소들의역할및동작절차설명서 환경, 빌딩내 HeNB 수와위치, HeNB 를이용하는사용자를생성하는 에뮬레이터환경 설정모듈 로이루어져있다. 에뮬레이터환경설정모듈 은빌딩의가로, 세로, 높이및층수정보를기반으로가상의빌딩을생성하고, 건물내각층마다동일한수의 HeNB를설치한다. HeNB 설치시, 건물내좌표정보와설치높이등을고려한다. 이와같은과정을통해 EFN 환경이 Emulator를통해가상으로만들어지며, 다음으로만들어진 EFN을사용할사용자단말기 (User Equipment: HUE) 를생성한다. HUE의생성시, HUE가생성되는건물내좌표와 HUE의식별코드인 IMSI와같은정보가할당된다. 그림 A14.3. FCS Emulator 의모듈별구성도 IMSI 는전세계적으로이동통신가입자를식별할수있는특별한 ID 로해당포맷은아 래그림 A14.4 와같이 PLMN ID 와 MSIN 으로구성된다. PLMN(Pulbic Land Mobile Network) ID 는모바일이동통신사의고유구분코드이며, MCC(Mobile Country Codes)

368 MVNO 서비스를위한구성요소들의역할및동작절차설명서 와 MNC(Mobile Network Codes) 의조합으로이루어진다. MSIN 은해당통신사업자내에 서가입자를식별할수있는유일한 ID 다. 그림 A14.4. IMSI Format 본시스템에서는 MNO 1개사업자와 MVNO 3개사업자를가정하였고, 각사업자별식별코드인 MNC valhue를아래표 A14.1과같이정의하여사용한다. MCC valhue는 한국 이기때문에 450 을사용하며, MSIN은임의값을생성하여할당한다. 이렇게생성된 IMSI 정보를이용해이후 HUE의사업자식별및인증에이용한다. 표 A14.1. 시스템에서사용하는 MNC 다음으로 FCU(Femto Contol Unit) 는 EFU에서설정된환경정보를기반으로무선자원할당기법을적용하여각 HUE별전송률을할당하는모듈이다. 가상의빌딩에설치된 HeNB에인접하게발생된 HUE들과의좌표정보를활용해거리정보를획득하고, 이를바탕으로경로손실을계산및인접 HeNB과다른 HUE로의간섭등을계산하여각 HUE 별전송률을할당한다

369 MVNO 서비스를위한구성요소들의역할및동작절차설명서 또한빌딩내많은 HeNB가존재하기때문에 HeNB 간에선택할수있는무선자원을효율적으로배정하기위한별도의무선자원할당기법이존재한다. 기본적으로는 HeNB 의전송파워의조절을통한자원할당기법을적용하며, 추가적인무선자원할당기법이개발될경우, 선택적으로무선자원할당기법을적용할수있도록구성한다. 마지막으로 Communication Unit은 FCS Emulator에서다른시스템구성요소로특정정보및데이터를전송하기위한모듈이다. EFU로부터생성된 HUE가사업자인증을받을수있도록 HUE의 ISMI 정보를 MNO/MVNO Server Poll의 MME로전송하는기능과인증을거친후 Ack 정보를수신하는기능, 사업자인증을받은사용자가데이터트래픽을생성해목적지인외부서버로전송하는기능을제공한다. Communication Unit에서데이터트래픽을외부서버로전송할때, 각 HUE는 FCU로부터할당된전송률을반영해전송속도를조정하게된다. Communication Unit은위의 2가지다른전송목적에따라실제전송하는프로토콜또한다르게구현된다. 전송프로토콜에대한부분은전송기능을위주로구성된다음절에서보다자세한설명을하도록한다. FCS Emulator의본래기능은아니지만, 연구과제의수행에있어 FCS Emulator에서생성된 HeNB나사용자및사업자별트래픽정보를모니터링할수있도록해야한다. 이를제공하기위해 FCS Emulator의정보를저장하는데이터베이스와이를웹으로표현하기위한웹서버를별로도구성한다. 아래표 A14.2와 A14.3은 FCS Emulator 모니터링을위한데이터베이스의구조를표현하며, 표 A14.2는웹모니터링프로그램접근시인증을위한데이터베이스구조이고, 표 A14.3은사용자별접속된펨토셀의 ID, IMSI, 전송률, 시간등의정보를저장해웹모니터링에사용하는데이터베이스의구조를나타낸다. 본시스템의주요부분이아니기때문에모니터링을제공하기에필요한최소한의요소만고려하여구성한다

370 MVNO 서비스를위한구성요소들의역할및동작절차설명서 표 A14.2. 웹프로그램접속인증을위한 DB 표 A14.3. FCS Emulator 웹모니터링을위한 DB A HeNB-GW 역할 HeNB-GW는펨토셀관련표준에서 HeNB로부터들어오는패킷을이동통신사 Core 망인 EPC로전달하는기능을수행하는것으로정의되어있다. 본과제를통해개발하고자하는시스템의 HeNB-GW도표준과동일하게 FCS Emulator로부터전달된패킷을수신하고이를 EPC로전달하는펨토셀표준의기본기능을제공한다. 추가적으로본시스템의목적인 EPC의부하분산을위해서 HeNB-GW가추가적인기능을담당한다. FCS Emulator로부터수신된패킷의사업자를기준으로하여, MNO 사업자에게서비스제공받는 HUE는 EPC로트래픽을전달하고, MVNO 사업자를통해서비스를제공받는 HUE는우회망을통해트래픽을전달하는기능이다. 이를위해전체네트워크토폴로지를관장하고있는 SDN Controller와의연계가필요하다. 다만펨토셀표준에따르면, 일반이동통신서비스인셀룰러망과달리 HeNB로부터 HeNB-GW까지의사이구간은인터넷으로연결되어져있기때문에보안상의문제가야기되어, 이를해결하고자해당구간에 IPSec을적용하고있다. 본시스템의구축에있어 IPSec은기타의이슈이며, SDN 기반의오픈네트워크를구축하는측면에서금년도과제에서는터널링과관련된부분은다루지않기로결정하여해당부분은고려하지않는다. 또한아래그림 A14.5의 EPS Bearer는 LTE Macrocell의데이터전송 Bearer 이다

371 MVNO 서비스를위한구성요소들의역할및동작절차설명서 HUE의인증후, 기지국에서부터 EPC까지 Bearer가생성되고해당경로가터널링을통해패킷이전달된다. 그러나본연구과제에서구현된시스템은 HUE의서비스사업자에따라전달경로가다르기때문에 Bearer를 EPC까지설정하지않고그전단계인 HeNB-GW까지 Bearer를생성하는모델을제안하고적용한다. 위에서언급한바와마찬가지로 Bearer 또한일종의터널링이기때문에본시스템에서실제로해당부분을구현시고려하지않고수신된패킷을다음시스템노드로전달하는부분을구현하는것으로대체한다. 그림 A14.5. LTE Macro/HeNB Bearer 아래그림 A14.6은 HeNB-GW를기능단위로나타낸모듈구성도이다. 먼저패킷분류모듈은 FCS Emulator로부터전달된패킷을수신하여 HeNB-GW의기능을수행할수있도록도와주는기능이다. 앞서언급한바와같이 FCS Emulator는인증정보와데이터트래픽의두개의다른패킷을전송하기때문에이들을확인해 HeNB-GW가 사용자인증정보전달모듈 과 데이터트래픽전달모듈 의실행을선택할수있게된다

372 MVNO 서비스를위한구성요소들의역할및동작절차설명서 그림 A14.6. HeNB-GW 의모듈별구성도 HeNB-GW는기본적으로패킷을전달하는기능을수행하기때문에이를 SDN 환경에서제어하기위해 SDN의가상스위치기능을담당하는 Open vswitch를 HeNB-GW에포팅해야한다. 이를통해 HeNB-GW의각물리적인포트가 SDN Controller의관리하에다른 path를할당받을수있다. 패킷분류모듈은 SDN Controller와통신을통해인증및데이터트래픽과같은다른패킷을물리적으로다른 path를통해전송할수있도록 HeNB-GW의할당된 path정보를 SDN Contoller에게확인받고, 새로운 path의할당을요청하는기능을제공한다. 예를들어, HeNB-GW가인증정보를전달할경우에는반드시 EPC의 MME로전달하기때문에, SDN Contoller에해당 path는 HeNB-GW의특정 ethernet 포트로부터 MME 특정포트까지전달되도록고정되어져있다. 패킷분류모듈은수신된패킷을확인해해당고정된 path로인증정보를전달하도록 사용자인증정보전달모듈 에게해당 path 정보를알려준다. HeNB-GW가데이터트래픽을전달할경우에는 EPC의 S-GW를통해목적지로가느냐 또는 HeNB-GW에서바로우회하여목적지로가느냐 에따라서로다른 path를할당받아야한다. 이를위해패킷분류모듈은각 HUE가인증과정을거칠때, 추후데이터트래픽전송을대비해 MNO 사업자를위한 S-GW로의 path 존재유무를 SDN Controller에게요청하고, 해당 path가 SDN Controller에존재한다면 S-GW까지 path정

373 MVNO 서비스를위한구성요소들의역할및동작절차설명서 보를 데이터트래픽전달모듈 에게알려데이터트래픽의전달을돕는다. 마찬가지로 MVNO 사업자를위한우회경로의 path 존재유무를패킷분류모듈이 SDN Controller 에게요청하고 MNO와동일한절차를수행하여 데이터트래픽전달모듈 의기능을돕는다. 아래그림 A14.7의 LTE Femtocell Architecture를나타내며, 이때 HUE의인증정보는 HeNB-GW로부터 EPC내의 MME로패킷을전달하고, 데이터트래픽은 HeNB-GW에서 EPC내의 S-GW로패킷을전달한다. 이때인증정보, 즉 Control Signal이되며이는 S1-MME Interface를사용한다. 또데이터트래픽은 S1-U Interface를사용한다. 그림 A14.7. LTE Femtocell Architecture 아래그림 A14.8은 LTE Femtocell의 Protocol Stack을나타내며, 위의 Control Plane에서는 S1-AP Protocol을사용하고, 아래의 Data Plane에서는 GTP-U Protocol을사용한다

374 MVNO 서비스를위한구성요소들의역할및동작절차설명서 그림 A14.8. LTE Femtocell Protocol Stack ( 위 :Control Plane, 아래 : User Plane) 사용자인증정보전달모듈은 FCS Emulator로부터전달된 HUE 인증정보를전달하는기능을하며이는펨토셀표준의 Control Plane에해당한다. Control Signal의전송은위의그림 A14.7, A14.8을통해알수있듯이, S1-MME Interface를통해 S1-AP를사용하며 S1-AP는전달을위해전달계층 Protocol인 SCTP를통해패킷을처리한다. 따라서사용자인증정보전달모듈은패킷분류모듈로부터받은 MME 까지의 path정보를바탕으로 SCTP를통해패킷을전달하는기능을수행한다. 데이터트래픽전달모듈은 FCS Emulator로부터전달된데이터트래픽을전달하는기능을하며이는펨토셀표준의 Data Plane에해당된다. Data Plan의전송은위의그림 A14.7, A14.8을통해알수있듯이, GTP-U를통해목적지까지전달된다. 따라서데이터트래픽전달모듈은패킷분류모듈로부터사업자별로목적지까지의다른 path정보를받아 GTP-U를통해패킷을전달하는기능을수행한다. 데이터트래픽전달모듈에서사용되는 GTP-U를구현함은본시스템을구축하는데있어많은시간과노력이요하는작업이기때문에, 현실적으로어려움이따른다. 따라서

375 MVNO 서비스를위한구성요소들의역할및동작절차설명서 본시스템에서는 GTU-U 의전달계층 Protocol 인 UDP 를활용해패킷전달하며, 이때 GTP-U 헤더를구조체로생성하고 HUE 의 IP 패킷에일부로포함시켜 GTU-U 패킷의전 달을표현하였다. 그림 A14.9 는 GTP-U 패킷의전달예시를표현하였다. 그림 A14.9. GTP-U 패킷전달예시

376 MVNO 서비스를위한구성요소들의역할및동작절차설명서 A MNO/MVNO Server Pool 역할 MNO/MVNO Server Pool의주요기능은이동통신사 LTE 기반 EPC를대체하는것이다. LTE 기반 EPC는 MME, HSS, PCRF, S-GW, P-GW, AAA 등많은노드들로구성되어져있고, 이들을연결하기위한 Interface와전달 Protocol이존재한다. 본연구의 MVNO 서비스시스템의구현에있어 EPC를실제로구축하는것은현실적으로불가능하다. WCDMA(3G) 의 OSMOGGSN, OSMSGSN과같은오픈소스기반의프로젝트가존재해이들을서로연동하는방법을통해구축하는방법도하나의경우일수있으나, LTE EPC관련오픈소스프로젝트는현재존재하지않기때문에이방법을사용할수없다. 따라서본시스템에서는위와같은문제로인해 EPC의전체가아닌연구에필요한 EPC 구성요소만을선정해에뮬레이터형태로구현한다. 구현이필요시되는 EPC의구성요소는 HUE의사업자인증을위한 Control Signal 처리를담당하는부분과 MNO 사업자로부터서비스받는 HUE의데이터트래픽을 Core 망내에서전달하는부분이다. Control Signal 처리하는부분은 EPC의 MME와 HSS이며, 데이터트래픽을전달하는부분은 S-GW와 P-GW이다. 아래그림 A14.10은 MNO/MVNO Server Pool의모듈구성도를나타낸다. 먼저 MME 는 SCTP를통해 HeNB-GW를거쳐전달된 HUE의 IMSI 인증정보를수신한다. 수신된인증정보의전달경로는 SDN Controller로부터미리정해진 path를사용한다. MME는 HUE 의 IMSI 정보를통한사업자확인을위해 HSS내의 MVNO User 가입자정보및 MNO User 가입자정보와의일치여부를확인한다. 일치여부에따라해당 HUE가 MNO 사업자또는 MVNO 사업자에가입되어있는지를판단한다. 사업자의확인이이루어지면다시 MME는사업자확인정보를자신이 HUE로부터 IMSI를수신받았던동일한 path로서전달한다. HSS는가입자정보관리이외에서비스 Profile 관리 (QoS등급정보, 우선순위, 최대사용가능대역폭등 ) 를수행하는 LTE의중앙데이터베이스이다. 본 MVNO 서비스구축에있어 MME는 bearer나 QoS관리, 이동성등의기능을수행하지않기때문에 HSS는사업자별사용자인증을위한데이터베이스만을구축한다

377 MVNO 서비스를위한구성요소들의역할및동작절차설명서 그림 A MNO/MVNO Server Pool 의모듈구성도 본연구에서구축하는 S-GW/P-GW는 EPC에서외부망 (Internet) 으로전달되는데이터트래픽을처리하는노드이다. 실제 EPC의 S-GW/P-GW의기능은핸드오버관리및단말의 IP할당, HUE별서로다른 QoS 정책적용등많은기능들을수행한다. 앞서언급한바와같이 EPC 구성요소의기능을 MVNO 서비스구현이라는측면으로축약하여필요한기능만을수행하도록구성함으로, S-GW/P-GW는 MNO 사용 HUE의데이터트래픽의 Anchor Point 역할만을구현한다. HeNB-GW로부터 MNO HUE의생성한데이터를트래픽을전달받으면이를 S-GW가수신하고, 이를다시 P-GW로전달해외부망에있는외부서버로전송하는기능을수행한다. 반면 MVNO HUE는 MNO/MVNO Server Pool과관계없이이전단계인 HeNB-GW에서외부망으로우회하여전송되기때문에 EPC의부하를줄이게된다

378 MVNO 서비스를위한구성요소들의역할및동작절차설명서 A 외부서버역할 외부서버는 FCS Emulator에서생성된 HUE 데이터트래픽의목적지에해당하는부분이다. 외부서버는별도의기능은존재하지않고 MNO와 MVNO HUE 데이터트래픽을최종적으로수신하는데이터트래픽수신모듈만을가진다. 이때수신이완료된트래픽의전달속도를계산하여관리하는기능도제공한다. 다음그림 A14.11은외부서버의모듈구성도이다. 그림 A 외부서버의모듈구성도

379 MVNO 서비스를위한구성요소들의역할및동작절차설명서 A14.4. MVNO 서비스를위한구성요소별 역할에따른동작절차 본절에서는이전절에서소개한 모바일네트워크플랫폼기반 MVNO 서비스 를구현하기위해각시스템구성요소별로나누어모듈별동작절차를설명한다. 시스템구성요소별동작절차를살펴보기에앞서먼저전체시스템의동작절차를살펴본다. 본연구를통해개발되는시스템은 MNO HUE의트래픽은 EPC로, MVNO HUE 트래픽은외부망으로우회하여 EPC의부하를줄이고자한다. 따라서 HUE가 MNO 사업자소속인지 MVNO 사업자소속인지에따라동작절차가달라진다. 다음그림 A14.12는본시스템의전체동작절차중 MVNO HUE일경우를나타낸다. 그림 A MVNO 서비스시스템의동작절차 (MVNO HUE 의경우 ) HUE 가생성후, 인증정보를 SDN Controller 에서미리정해진 Path 로전달하고, 이를 먼저 MNO MME/HSS 가수신하고일치여부확인한다. MVNO 사용자기때문에 MNO 에

380 MVNO 서비스를위한구성요소들의역할및동작절차설명서 서일치하지않고 MVNO MME/HSS를통해인증이성공된다. 인증이확인되면 HeNB-GW로인증성공여부전달하고이를 HUE에게까지알린다. 이로서사업자인증절차는마감된다. 다음은데이터트래픽전송절차로, 인증을마친 MVNO HUE들은각자 FCS Emulator로부터결정된자신의전송률을기반으로트래픽을외부서버로전송한다. HeNB-GW로전달된데이터트래픽은외부서버로의경로가존재하는지유무를알아보기위해 SDN Controller에게경로경로를요청한다. HeNB-GW의요청에대한 SDN Controller의응답으로수신된 path info를통해외부서버로가는경로의존재유무파악한다. 해당경로가기존에존재한다면, 그경로를사용하여외부서버로 HUE의데이터트래픽을우회해전달하며, 해당경로가기존에존재하지않는다면 SDN Controller 에게새로운경로를생성해줄것을요청하고이에대한응답으로새로운 path info를수신하여해당경로를통해외부서버로데이터트래픽을전송한다. 본연구의핵심인 MVNO HUE의트래픽우회를보여주기위해위의동작절차를설명하였으며, MNO HUE의트래픽은 HeNB-GW에서 SDN Controller에게할당받은경로를통해 S-GW/P-GW로트래픽을전달하고, 마지막으로외부서버에트래픽이도달하는절차를보인다. MNO HUE의동작절차는앞서언급한바와같이 MVNO HUE의유사하므로, 생략하도록한다. 본절에서는위의그림 A14.12와같이전체시스템에대한대략적인동작절차가아닌시스템구성요소의세부동작절차를소개하도록하며, 그순서는 FCS Emulator, HeNB-GW, MNO/MVNO Server poll, 외부서버순이다. A FCS Emulator 동작절차 다음그림 A14.13은 FCS Emulator의모듈별진행시나리오를나타낸다. 사각형모양은 FCS Emulator에서구현될모듈을의미하고, 원기둥모형은데이터를의미하는데이는 FCS Emulator와동일한환경내에있는별도의데이터베이스에저장된다 ( 데이터베이스의구조는앞절에서설명하였기때문에여기서는생략한다 )

381 MVNO 서비스를위한구성요소들의역할및동작절차설명서 그림 A FCS Emulator의모듈별동작절차에뮬레이터환경데이터, 에뮬레이터환경설정모듈은 EFU에해당하고, 펨토셀자원할당기능은 FCU에해당하며, 통신모듈이 Communication 모듈에해당한다. EFU에서사용할건물환경변수, HeNB개수, 파워, wall loss 와같은환경변수를하나의파일로만들어에뮬레이터의메인부분에서해당파일을접근해사용한다. 에물레이터의메인부분은가상의빌딩생성및 HeNB의배치, HUE를생성하고이때 HUE에각각 IMSI도할당한다. 해당정보를 FCS 에뮬레이터모니터링을위해별도의데이터베이스에저장한다. 환경설정이완료되면, HUE별무선자원을할당하여각각데이터트래픽을전송에사용할전송률을계산한다. 이역시에뮬레이터메인부분에서별도의파일로만들어진무선자원할당모듈을호출해계산이이루어지며, 계산시필요한변수정보는에뮬레이터환경데이터파일을통해얻는다. 각 HUE별전송률정보또한 FCS 에뮬레이터모니터링을위해데이터베이스에저장한다. 위의두과정을거치면 NS3를통한가상의 EFN 구축은완료된다. 이제는가상의 EFN 구축을통해얻어진 HUE의인증과데이터트래픽전송만이남아있다. 우선적으로 HUE가사업자로부터인증을받아야하므로, 통신모듈을통해 IMSI를전송한다. A14.3.1항에서도언급하였듯이, 인증정보는 Control signal이며이는 S1-MME의 SCTP를통해 HeNB-GW로전달된다. 인증과정을거친후, 인증요청에대한응답이돌아올때까지 FCS Emulator는대기한다. 인증을마친후각 HUE별로사업자가선정되면, HUE는데이터트래픽을 HeNB-GW로전송한다. 모든 HUE의전송이완료후목적지인

382 MVNO 서비스를위한구성요소들의역할및동작절차설명서 외부서버가수신을완료하면, 각사용자별로전송속도를 FCS Emulator의화면에로그정보로서보여주고, FCS Emulator를초기화한다. 여기서초기화는 FCS Emulator의작동종료가아닌다음 FCS Emulator 동작을위한대기를의미하며, 키보드입력에반응해위의 FCS Emulator의동작을반복수행한다. A HeNB-GW 동작절차 다음그림 A14.14은 HeNB-GW의동작절차를순서도로나타낸것이다. HeNB-GW의주요기능은인증정보전달과데이터트래픽의전달이다. 두전달기능은전달프로토콜을서로 SCTP와 UDP로다르게사용하므로, 패킷분류모듈을통해이를판단한다. 수신된패킷이 SCTP라면이는인증정보를주고받는 Control Signal 임을알수있다. 또한수신된패킷이인증을받아야하는정보인지, 이미인증을받고응답한정보인지를판단하여야 HeNB-GW가전달할목적지가정해진다. 이를위해수신된패킷 Source IP를분석하여 FCS Emulator라면, 사용자인증정보전달모듈을통해 MME로전달한다. 그반대의경우는 FCS Emulator로인증요청응답정보를전달한다. 패킷분류모듈에서수신된패킷이 UDP라면이는데이터트래픽전송을의미한다. 데이터트래픽전송에있어 MNO HUE와 MVNO HUE간의전달경로가본시스템에서다르기때문에이를먼저분류하며, MNO HUE의트래픽은 EPC로전달되기때문에기존에이미할당된 Data Path를사용한다. 이때 HeNB-GW에서 S-GW/P-GW를목적지로하여데이터트래픽을전달한다. MVNO HUE의데이터트래픽은외부서버까지 SDN Controller 관리하에있는외부망을통해전달되어야하므로, 해당 Path 존재유무가무엇보다중요하다. 따라서우선적으로 SDN Controller에게 http포멧의메시지를통해 Data path info 전체를요청한다. 이를수신한 SDN Controller는전체 Data path info를 HeNB-GW로전송하는데, XML 형식으로전달된다. HeNB-GW의패킷분류모듈이수신한 XML데이터를파싱하여외부서버로가는 Path 정보를확인한다. 이미외부서버로가는 Path가생성되어져있다면해당 Path를사용해데이터트래픽을전달한다. 아직외부서버로가는 Path가생성되어있지않는다면 SDN Controller에요청해외부서버로의 Path 생성한다. SDN Controller는외부서버로의 Path 생성후, HeNB-GW에게응답메시지를보내며, 이를수신한 HeNB-GW는새롭게만들

383 MVNO 서비스를위한구성요소들의역할및동작절차설명서 어진 Path 를통해데이터트래픽을전달한다. 그림 A HeNB-GW 의동작절차

384 MVNO 서비스를위한구성요소들의역할및동작절차설명서 A MNO/MVNO Server Pool 동작절차 다음그림 A14.15은 MNO/MVNO Server Pool의동작절차를순서도로나타낸것이다. MNO/MVNO Server Pool도 HeNB-GW와마찬가지로인증정보와데이터전달기능을담당하기때문에 SCTP와 UDP를모두사용한다. 그래서수신된패킷의 SCTP 유무를확인해사업자인증정보인지, 데이터전송인지를판단한다. 사업자인증정보의경우, MME가수신한 IMSI를 MNO의 HSS 데이터베이스와비교하여일치하는 HUE의존재를확인한다. 일치하는정보가발견된다면, 해당 HUE는 MNO 사업자에서비스를받는것으로확인되고이를다시 HUE에게알릴수있도록응답정보를전송한다. MNO HSS에서일치하는정보가발견되지않는다면, MNO 사업자에등록된것이아니므로, MVNO HSS 데이터베이스와비교해일치하는 HUE 정보확인한다. MNO와마찬가지로확인된요청응답정보를해당 HUE에게전송한다. 데이터트래픽전송의경우, MNO 사업자에게서비스받는 HUE이고 MVNO와마찬가지로외부서버로데이터트래픽을전달해야하기때문에 EPC 내부의노드를지나외부서버로전달된다. 이때 GTP-U 프로토콜을내부에서사용하는 IP정보를 UDP에실어보내고이를 GTP-U 포멧으로감싸는형태를취하기때문에 GTP-U 헤드의추가가기존패킷에이루어져야한다. 이과정이후데이터트래픽이 EPC 내부의노드인 S-GW에서 P-GW로전달되는데, EPC에서 Internet으로전달되는모든패킷은 P-GW를거쳐야하기때문이다. 데이터트래픽을수신한 P-GW는최종목적지인외부서버로데이터트래픽을전달한다

385 MVNO 서비스를위한구성요소들의역할및동작절차설명서 그림 A MNO/MVNO Server Pool 의동작절차

386 MVNO 서비스를위한구성요소들의역할및동작절차설명서 A 외부서버동작절차 다음그림 A14.16은외부서버의동작절차를순서도로나타낸것이다. 외부서버는각사업자 HUE에서생성한데이터트래픽의최종목적지기능만을수행하기때문에, 사업자별분류후, 데이터수신기능만담당한다. 그림 A MNO/MVNO Server Pool 의동작절차

387 미래네트워크연구시험망실증시험과제 A15. EFN 간섭제어방법과 MVNO 가상망자원관리방법 설명서 Copyright C 2013 고려대학교데이터통신및네트워크연구실 All right reserved 사전승인없이본내용의전부또는일부에대한복사, 전재, 배포, 사용을금합니다. 고려대학교

388 EFN 간섭제어방법과 MVNO 가상망자원관리방법설명서 제 / 개정이력 버전날짜작성자성명제 / 개정사항비고 조충호, 김세진, 김이강최초작성 조충호, 김세진실험결과및분석추가

389 EFN 간섭제어방법과 MVNO 가상망자원관리방법설명서 A15.1. 서론 본기술문서는기업형펨토셀네트워크 (Enterprise Femtocell Network, EFN) 에서무 선간섭제어방법과 MVNO 가상망자원관리방법을설명한다. A 연구배경 최근스마트폰과태블릿등의다양한모바일장치들이급속도로확산되면서모바일데이터트래픽도급격히증가하여, 이동통신망사업자 (Mobile Network Operator: MNO) 들은사업자망 (Core network) 의과부하를예방하기위한대책이필요한실정이다. 2013년 2월 Cisco에서발표한보고서에따르면, 모바일데이터의월사용량이 2012년에 0.9 Exabytes (EB) 에서 2017년에는 11.2EB로약 12배이상증가하며, 연평균성장률 (CAGR) 은 66% 에달할것으로예상하고있다 [ 그림. A15.1] [1][2]. 그림 A15.1. 전세계모바일데이터트래픽추이및모바일장치유형별비중 (Cisco, ) 2012년에는 Laptop이스마트폰의트래픽발생량을앞서고있지만, 2017년까지스마트폰 (67.5%) 이전체트래픽발생양의 2/3를차지하고태블릿 (11.7%) 과 M2M(5.1%) 등의트래픽비중이크게증가될것으로예상된다. 이와같이다양한모바일장치들이발생시키는모바일트래픽을 MNO가사업자망으로수용하기에는네트워크과부하문제뿐만아니라서비스품질 (Quality of Service: QoS) 을보장하는데도어려움이있어시급한대책이필요한실정이다

390 EFN 간섭제어방법과 MVNO 가상망자원관리방법설명서 따라서, 전세계 MNO 들은사업자망으로집중되는모바일트래픽을분산시키기위 한모바일트래픽우회망기술도입에관심을집중하고있다 [3]. 그림 A15.2. 전세계셀룰러트래픽과우회망 (offload) 트래픽비중 (Cisco, ) 그림 A15.2 는스마트폰시장성장률과 Wi-Fi를이용한인터넷이용률, 그리고기타분석결과등을기반으로전세계셀룰러트래픽과우회망 (Offload) 트래픽비중을분석한결과이다. 2012년우회망트래픽은 33% 에서 2017년 46% 까지증가할것으로예상된다. 빠른전송률의장점을보유한 Wi-Fi는일반가정집과빌딩, 그리고핫스팟지역에서이미오래전부터우회망기술로사용되었지만, 보안이취약하고이동성을보장하지못하는단점이있다. 따라서, 펨토포럼 (Femto Forum) 은 3GPP와협력하여셀룰러주파수대역에서빠른전송률, 이동성, 그리고보안을강화한초소형이동통신기술인펨토셀표준을 2009년에완성하였다 [4]. 또한, 현재국내주요 MNO 3사를포함한전세계다수의 MNO 사업자들은모바일트래픽을분산하고, 양질의서비스를고객에게제공하기위해펨토셀과와이파이활용에투자를높이고있다. 현재, 포화된이동통신시장에서증가하는고객의가계통신비, MNO의이동통신인프라확충에따른 CAPEX/OPEX, 그리고 MVNO의통신망임대료등을절감하면서, 모바일트래픽의 QoS를보장할수있는차세대유 / 무선통신기술개발이시급히요구된다. 최근스몰셀포럼 4) 에서발표된자료에따르면약 81% 의모바일트래픽이실내

391 EFN 간섭제어방법과 MVNO 가상망자원관리방법설명서 환경에서발생하고있으며, 3GPP와스몰셀포럼은펨토셀네트워크를이용하여실내모바일사용자의 QoS 보장및접근망의모바일트래픽오프로드를고려중이다 [5][6]. 하지만, 펨토셀네트워크아키텍처는펨토기지국 (Home enhanced Node B, HeNB) 이수신한모바일트래픽을인터넷을경유하여 MNO 사업자망으로전송하여트래픽부하가집중되는구조를갖는다. 즉, MNO는증가하는모바일트래픽을수용하기위해인프라를확충해야만하며, 이에따른 CAPEX/OPEX는고객과 MVNO에게전가될것으로예상된다. 방송통신위원회는 MVNO의모바일서비스를활성화시켜 MNO와경쟁을유도함으로써, 고객의선택권을확대하고가격경쟁을이끌어내소비자에게돌아가는통신비용부담을줄이려는움직임을보이고있다. 그러나, 신규서비스부족과국내주요 MNO 3사의독점으로영국, 네덜란드, 스칸디나비아등의 MVNO가성공한유럽국가들과달리국내시장에서성장하지못하고있다. 따라서, MVNO에게저렴한통신망임대료를기반으로신규서비스를창출할수있는기회를제공하여, MNO와경쟁시킬뿐만아니라 MNO의불필요한이동통신인프라확충으로인한 CAPEX/OPEX 를절감할수있는차세대통신기술개발이시급하다. 또한, 이와같은 MNO, MVNO, 그리고고객이모두윈-윈할수있는기술개발및테스트베드구축을위해국가적인차원에서적극적인지원이필요하다. A 연구범위 본기술문서는 EFN 환경에서무선간섭제어방법과 MVNO 가상망자원관리방법 을설명한다. 이를위한연구의범위는다음과같다. EFN, 펨토셀네트워크간섭제어및자원할당방법, MVNO 등의관련기술개요 : 먼저, EFN의개요및표준화동향에대해서알아보고, 펨토셀네트워크에서간섭제어및자원할당방법에대한연구동향을소개한다. 이후, MVNO의개요와현재서비스중인다양한 MVNO의종류를소개한다. 4) 스몰셀포럼 (Smallcell Forum): 펨토포럼으로활동하다가 2012 년스몰셀포럼으로개명함. 펨토포럼에서진행하던펨토셀표준화활동및연구를확장하여다양한환경에서사용할수있는스몰셀표준및연구를진행중

392 EFN 간섭제어방법과 MVNO 가상망자원관리방법설명서 EFN에서간섭제어및자원할당방법 : 현재까지연구된펨토셀네트워크에서간섭제어방법들을분석한후, EFN 시스템성능향상을위한 2단계간섭제어및유동적자원할당방법을소개한다. 즉, 1단계에서그래프컬러링알고리즘을이용하여펨토셀간섭을고려한펨토셀그룹핑알고리즘을설명하고, 2단계에서 EFN 시스템성능을향상시키기위한유동적자원할당방법을소개한다. MVNO 가상망자원관리방법 : 또한, EFN에서발생하는모바일인터넷트래픽은일반적으로 MNO 사업자망까지전송된후, 인터넷망으로전송된다. 하지만, 본연구에서는 EFN에서 MNO 사업자망까지가상망자원을예약하여전송하는방법을이용한다. 또한, SDN Controller가 EFN과 MNO 사업자망사이의트래픽전송을위해할당하는가상망자원예약량이부족할경우, 적응적으로 EFN 펨토기지국에게무선자원을할당하는시스템의성능을분석한다

393 EFN 간섭제어방법과 MVNO 가상망자원관리방법설명서 A15.2. 관련기술및연구동향 A 기업형펨토셀네트워크 (EFN) 펨토셀은 2007년초에국제표준화단체 3GPP의표준화아이템으로제안되었으며, 2009년 4월펨토포럼및광대역포럼 (Broadband Forum) 과의협력을통해 3GPP 펨토셀표준을공식발표하였다 [4][7]. CDMA 기술의표준화단체인 3GPP2 또한 2010년 3월에 cdma x 및 EV-DO 주파수엑세스기술을포함한펨토셀의포괄적규격을발표한바있으며, 2011년 11월에는펨토포럼과 cdma 2000 펨토셀이함께스몰셀배치에대한사업자가이드를발간하였다. 그림 A15.3 은 3GPP의펨토셀네트워크아키텍처를나타낸다. 그림 A GPP 펨토셀네트워크아키텍처 하지만, 초기펨토셀네트워크기술과표준은일반적인가정환경에 1~2개의펨토기지국이설치되는주거형펨토셀네트워크 (Residential Femtocell Network, RFN) 에적합하였고, 매크로셀과펨토셀사이의간섭제어및자원할당에대한연구가주로진행되었다. 이후, 펨토셀기술및표준에적극참여한펨토포럼은현재스몰셀포럼으로이름을바꾸고, 다양한펨토셀시나리오 (Residential, Enterprise, Metro, 그리고 Rural usage cases) 를제시하며 3GPP와함께진화된펨토셀기술을준비중이다. 그림 A15.4 는다양한펨토셀시나리오를나타내는예이다

394 EFN 간섭제어방법과 MVNO 가상망자원관리방법설명서 그림 A15.4. 다양한펨토셀시나리오 펨토셀네트워크의표준화기구별동향은 3GPP WCDMA 계열의 Home Node-B 라는이름으로 2007년 3월표준화가시작되었으며, LTE/UMTS 공통및개별항목을정의하였다. 개별항목은측정 / 핸드오버, 구조 / 기능 / 이동성, RF/ 인터페이스, 보안, 가입자관리 / 인증및위치관리, 인식, 프로토콜등이다. 3GPP2 CDMA 계열은 2007년 5월스프린트, 퀄컴, LG사등이참석하여 Work Item (WI) 을선정하였다. 개별항목은 Network architecture 완료, Requirements 표준마무리, 펨토-피코애플리케이션등이다. WiMAX 계열은 2008년 3월에하와이미팅에서승인을받은후, 2009년 12월에펨토셀 ( 와이브로 ) 네트워크구조및프로토콜에대한표준화 (TTAK.KO ) 를완료하였다. 그리고, m은펨토셀의 Mobility, Interference, Synchronization, SON 등다양한기술적인문제를다루고있다. 표 A15.1 은각표준화기구별펨토셀표준화동향을나타낸다

395 EFN 간섭제어방법과 MVNO 가상망자원관리방법설명서 표 A15.1. 펨토셀표준화기구별동향 국내에서는한국정보통신기술협회 (TTA) 와방송통신위원회 (KCC) 를중심으로펨토셀에대한표준화연구가진행되고있다. TTA에서는이동통신기술위원회 (TG) 7 산하 IMT WiBro 프로젝트그룹 (PG) 702 산하서비스및네트워크작업반 (WG) 7022에서옥내용펨토표준에대한요구사항을정의하고있으며, 기술보고서 < 휴대인터넷서비스및네트워크요구사항 > 에펨토셀요구사항을추가하여개정하고, 현재핸드오버기능, idle 모드기능, self-optimization & auto-configuration 기능등에대한표준화를추진중이다. TTA 포럼사업의일환으로 2008년에활동하던펨토셀포럼이 FMC 포럼에서개명되어 IEEE/WiMAX, ITU, MNI, 3GPP/3GPP2, 응용비즈니스등다섯개분과로구성되어표준화를진행중이다. TTA는 WiBro 펨토셀네트워크구성을세가지 ASN Profile Type(Profile A: Centralized Model/Profile B: OneBox Model/Profile C: Distributed Model) 중에펨토셀단독형 (ASN Profile B) 또는펨토 ACR 연결형 (ASN

396 EFN 간섭제어방법과 MVNO 가상망자원관리방법설명서 profile C) 동시수용이가능하도록표준화하고있다. 옥내용휴대인터넷서비스를위해펨토셀서비스 ( 가정용휴대인터넷, 반경 30m) 와피코셀서비스 ( 기업용휴대인터넷, 반경 100m) 를구분하고, 펨토셀간핸드오버는지원하지않으며, 옥외용휴대인터넷기지국과의핸드오버및피코셀과피코셀간, 피코셀과옥외망과의핸드오버를지원하도록규격화하고있다. 또한, GPS 미수신에대처하기위한별도의수단으로논의중이며, 이밖에도인증, 보안, 망관리에대한연구가논의중이다. A 펨토망에서간섭제어및자원할당방법 펨토셀네트워크에서간섭제어와자원할당방법은 3GPP와펨토포럼이 2009년펨토셀표준화문서를완성한이후부터꾸준히연구되고있는해결해야할가장중요한연구이슈이다 [8]-[9]. 하지만, 펨토셀네트워크에서연구된초기간섭제어방법은매크로셀과펨토셀사이의간섭을완화하는 RFN 환경을주로고려하였으며, 최근스몰셀포럼에서다양한펨토셀시나리오를제시한후부터 EFN에서간섭제어방법에대한연구가진행되고있다. 펨토셀네트워크의간섭제어방법은아래의두가지측면에서고려되고있다. MBS와 HeNB 사이의간섭제어 (Cross-tier interference) [10]-[13] EFN에서 HeNB 사이의간섭제어 (Co-tier interference) [14]-[16] Co-tier interference 를고려한채널할당문제는 NP-Hard 문제에해당되며, 현재그래프컬러링알고리즘과게임이론등을이용한논문이활발하게연구되고있다. A 가상통신망사업자 (MVNO) 먼저, MNO 와 MVNO 의개요는아래와같다. 이동통신망사업자 (Mobile Network Operator: MNO) : MNO는한정된무선주파수자원을일정기간동안사용하는조건으로거대한금액을지불하고계약한후, 이동통신서비스를제공하는사업자를의미한다. 우리나라에는 SK, KT, 그리고 LGU+ 가 MNO에해당된다. 또한, 각 MNO는구입한무선주파수를이용하여고객들에게서비스를제공하기위해, 전국에통신시설및서비스센터를설치 / 운영한다. 따라서, MNO는주파수대여료, 인프라설치 / 관리비용, 마케팅비용, 그리고지역서비스센터유지등으로인해통화요금을책

397 EFN 간섭제어방법과 MVNO 가상망자원관리방법설명서 정하게되고, 고객들은이동통신서비스를제공받기위해비교적높은통신비용 을부담하게된다. 가상이동통신망사업자 (Mobile Virtual Network Operator, MVNO) : MVNO는이동통신서비스를제공하기위해필수적인무선주파수자원을보유하지않고, MNO의무선주파수자원및통신시설을대여하여독자적인이동통신서비스를제공하는사업자를의미한다. MVNO가탄생하게된배경은, 이동통신서비스의경우유선과는달리유한자원인주파수를이용해야하므로시장에진입할수있는사업자의수가현실적으로제한되어있다. 그러나통신시장의경쟁을활성화하기위해서는지속적으로신규사업자의시장진입을통한시장의자극이필요하다. 따라서주파수의제한을받지않고, 무선통신시장에신규사업자의진입과유사한효과를확보할수있는방안중의하나로 MVNO가지속적으로관심을받고있다. MVNO는 MNO와같이이동통신서비스를위한비용이많이필요하지않기때문에, 고객에게부담시키는통신비용이낮아진다. 그림 A15.5 는모바일네트워크가상화를이용한 MVNO 서비스모델을나타낸다. 물리적인유무선네트워크를가상화를이용하여분리하고, MVNO와같은서비스제공자들은자신들의서비스에맞게네트워크를임대하여서비스를제공한다. 그림 A15.5. 네트워크가상화를이용한 MVNO 서비스모델

Microsoft PowerPoint - 2-3_홍충선(경희대)_개방형모바일테스트베드

Microsoft PowerPoint - 2-3_홍충선(경희대)_개방형모바일테스트베드 개방형모바일네트워크테스트베드 2013. 12.17 경희대학교홍충선 목차 연구목표연구수행내용세부연구수행내용 KOREN 적용시나리오결언 2 1. 연구목표 1. 2. 연구수행내용 3. 세부연구수행내용 4. KOREN 적용시나리오 5. 결언 3 연구개요및연구목표 오픈소스소프트웨어기반모바일네트워크플랫폼개발및테스트베드구축오픈소스기반 WiFi 네트워크플랫폼구축오픈소스기반

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

Snort Install Manual Ad2m VMware libnet tar.gz DebianOS libpcap tar.gz Putty snort tar.gz WinSCP snort rules 1. 첫번째로네트워크설정 1) ifconf

Snort Install Manual Ad2m VMware libnet tar.gz DebianOS libpcap tar.gz Putty snort tar.gz WinSCP snort rules 1. 첫번째로네트워크설정 1) ifconf Snort Install Manual Ad2m VMware libnet-1.1.5.tar.gz DebianOS libpcap-1.1.1.tar.gz Putty snort-2.8.6.tar.gz WinSCP snort rules 1. 첫번째로네트워크설정 1) ifconfig 명령어로현재 IP를확인해본다. 2) vi /etc/network/interfaces 네트워크설정파일에아래와같이설정을해준다.

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

Network seminar.key

Network seminar.key Intro to Network .. 2 4 ( ) ( ). ?!? ~! This is ~ ( ) /,,,???? TCP/IP Application Layer Transfer Layer Internet Layer Data Link Layer Physical Layer OSI 7 TCP/IP Application Layer Transfer Layer 3 4 Network

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

서현수

서현수 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

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

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

품질검증분야 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

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

1. 안드로이드개발환경설정 안드로이드개발을위해선툴체인을비롯한다양한소프트웨어패키지가필요합니다 툴체인 (Cross-Compiler) 설치 안드로이드 2.2 프로요부터는소스에기본툴체인이 prebuilt 라는이름으로포함되어있지만, 리눅스 나부트로더 (U-boot)

1. 안드로이드개발환경설정 안드로이드개발을위해선툴체인을비롯한다양한소프트웨어패키지가필요합니다 툴체인 (Cross-Compiler) 설치 안드로이드 2.2 프로요부터는소스에기본툴체인이 prebuilt 라는이름으로포함되어있지만, 리눅스 나부트로더 (U-boot) 1. 안드로이드개발환경설정 안드로이드개발을위해선툴체인을비롯한다양한소프트웨어패키지가필요합니다. 1.1. 툴체인 (Cross-Compiler) 설치 안드로이드 2.2 프로요부터는소스에기본툴체인이 prebuilt 라는이름으로포함되어있지만, 리눅스 나부트로더 (U-boot) 만별도로필요한경우도있어툴체인설치및설정에대해알아봅니다. 1.1.1. 툴체인설치 다음링크에서다운받을수있습니다.

More information

13Åë°è¹é¼Ł

13Åë°è¹é¼Ł 이면은빈공간입니다. National Statistics White Paper 2012 National Statistics White Paper ii _ STATISTICS KOREA 2012 _ iii 2012 National Statistics White Paper 1 26 2 27 3 28 4 29 5 30 6 31 7 32 8 33 9 34 10 35

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

운영체제실습_명령어

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

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

iOS ÇÁ·Î±×·¡¹Ö 1205.PDF

iOS ÇÁ·Î±×·¡¹Ö 1205.PDF iphone ios 5 DEVELOPMENT ESSENTIALS Copyright 2011 Korean Translation Copyright 2011 by J-Pub. co. The Korean edition is published by arrangement with Neil Smyth through Agency-One, Seoul. i iphone ios

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

TTA Journal No.157_서체변경.indd

TTA Journal No.157_서체변경.indd 표준 시험인증 기술 동향 FIDO(Fast IDentity Online) 생체 인증 기술 표준화 동향 이동기 TTA 모바일응용서비스 프로젝트그룹(PG910) 의장 SK텔레콤 NIC 담당 매니저 76 l 2015 01/02 PASSWORDLESS EXPERIENCE (UAF standards) ONLINE AUTH REQUEST LOCAL DEVICE AUTH

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

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

<목 차 > 제 1장 일반사항 4 I.사업의 개요 4 1.사업명 4 2.사업의 목적 4 3.입찰 방식 4 4.입찰 참가 자격 4 5.사업 및 계약 기간 5 6.추진 일정 6 7.사업 범위 및 내용 6 II.사업시행 주요 요건 8 1.사업시행 조건 8 2.계약보증 9 3

<목 차 > 제 1장 일반사항 4 I.사업의 개요 4 1.사업명 4 2.사업의 목적 4 3.입찰 방식 4 4.입찰 참가 자격 4 5.사업 및 계약 기간 5 6.추진 일정 6 7.사업 범위 및 내용 6 II.사업시행 주요 요건 8 1.사업시행 조건 8 2.계약보증 9 3 열차운행정보 승무원 확인시스템 구축 제 안 요 청 서 2014.6. 제 1장 일반사항 4 I.사업의 개요 4 1.사업명 4 2.사업의 목적 4 3.입찰 방식 4 4.입찰 참가 자격 4 5.사업 및 계약 기간 5 6.추진 일정 6 7.사업 범위 및 내용 6 II.사업시행 주요 요건 8 1.사업시행 조건 8 2.계약보증 9 3.시운전 및 하자보증 10

More information

APOGEE Insight_KR_Base_3P11

APOGEE Insight_KR_Base_3P11 Technical Specification Sheet Document No. 149-332P25 September, 2010 Insight 3.11 Base Workstation 그림 1. Insight Base 메인메뉴 Insight Base Insight Insight Base, Insight Base Insight Base Insight Windows

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

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

2005 2004 2003 2002 2001 2000 Security Surveillance Ubiquitous Infra Internet Infra Telematics Security Surveillance Telematics Internet Infra Solutions Camera Site (NETWORK) Monitoring & Control

More information

°í¼®ÁÖ Ãâ·Â

°í¼®ÁÖ Ãâ·Â Performance Optimization of SCTP in Wireless Internet Environments The existing works on Stream Control Transmission Protocol (SCTP) was focused on the fixed network environment. However, the number of

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

untitled

untitled Content Ⅰ. 기본방향 1. 목 적 3 2. 적용범위 3 Ⅱ. 사회복지관 운영 1. 사회복지관의 정의 7 2. 사회복지관의 목표 7 3. 사회복지관의 연혁 7 4. 사회복지관 운영의 기본원칙 8 Ⅲ. 사회복지관 사업 1. 가족복지사업 15 2. 지역사회보호사업 16 3. 지역사회조직사업 18 4. 교육 문화사업 19 5. 자활사업 20 6. 재가복지봉사서비스

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

Microsoft Word - NAT_1_.doc

Microsoft Word - NAT_1_.doc NAT(Network Address Translation) 1. NAT 개요 1 패킷의 IP 헤더의수신지주소, 발신지주소또는그주소를다른주소로변경하는과정 2 NAT기능을갖는장치를 NAT-BOX라함 ( 시스코라우터, 유닉스시스템, 윈도우의호스트혹은몇개의다른시스템일수있기때문에이렇게지칭하기도함 ) 3 NAT 기능을갖는장치는일반적으로스텁도메인 (Stub-domain)

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

UDP Flooding Attack 공격과 방어

UDP Flooding Attack 공격과 방어 황 교 국 (fullc0de@gmail.com) SK Infosec Co., Inc MSS Biz. Security Center Table of Contents 1. 소개...3 2. 공격 관련 Protocols Overview...3 2.1. UDP Protocol...3 2.2. ICMP Protocol...4 3. UDP Flood Test Environment...5

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

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

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

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

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

Contributors: Myung Su Seok and SeokJae Yoo Last Update: 09/25/ Introduction 2015년 8월현재전자기학분야에서가장많이쓰이고있는 simulation software는다음과같은알고리즘을사용하고있다.

Contributors: Myung Su Seok and SeokJae Yoo Last Update: 09/25/ Introduction 2015년 8월현재전자기학분야에서가장많이쓰이고있는 simulation software는다음과같은알고리즘을사용하고있다. Contributors: Myung Su Seok and SeokJae Yoo Last Update: 09/25/2015 1. Introduction 2015년 8월현재전자기학분야에서가장많이쓰이고있는 simulation software는다음과같은알고리즘을사용하고있다. 2. Installation 2.1. For Debian GNU/Linux 국내에서사용되는컴퓨터들의

More information

1. efolder 시스템구성 A. DB B. apache - mod-perl - PHP C. SphinxSearch ( 검색서비스 ) D. File Storage 2. efolder 설치순서 A. DB (MySQL) B. efolder Service - efolder

1. efolder 시스템구성 A. DB B. apache - mod-perl - PHP C. SphinxSearch ( 검색서비스 ) D. File Storage 2. efolder 설치순서 A. DB (MySQL) B. efolder Service - efolder Embian efolder 설치가이드 efolder 시스템구성 efolder 설치순서 Installation commands 1. efolder 시스템구성 A. DB B. apache - mod-perl - PHP C. SphinxSearch ( 검색서비스 ) D. File Storage 2. efolder 설치순서 A. DB (MySQL) B. efolder

More information

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D313939392D382E687770>

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

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

ARMBOOT 1

ARMBOOT 1 100% 2003222 : : : () PGPnet 1 (Sniffer) 1, 2,,, (Sniffer), (Sniffer),, (Expert) 3, (Dashboard), (Host Table), (Matrix), (ART, Application Response Time), (History), (Protocol Distribution), 1 (Select

More information

1. GigE Camera Interface를 위한 최소 PC 사양 CPU : Intel Core 2 Duo, 2.4GHz이상 RAM : 2GB 이상 LANcard : Intel PRO/1000xT 이상 VGA : PCI x 16, VRAM DDR2 RAM 256MB

1. GigE Camera Interface를 위한 최소 PC 사양 CPU : Intel Core 2 Duo, 2.4GHz이상 RAM : 2GB 이상 LANcard : Intel PRO/1000xT 이상 VGA : PCI x 16, VRAM DDR2 RAM 256MB Revision 1.0 Date 11th Nov. 2013 Description Established. Page Page 1 of 9 1. GigE Camera Interface를 위한 최소 PC 사양 CPU : Intel Core 2 Duo, 2.4GHz이상 RAM : 2GB 이상 LANcard : Intel PRO/1000xT 이상 VGA : PCI x

More information

PowerPoint Presentation

PowerPoint Presentation Data Protection Rapid Recovery x86 DR Agent based Backup - Physical Machine - Virtual Machine - Cluster Agentless Backup - VMware ESXi Deploy Agents - Windows - AD, ESXi Restore Machine - Live Recovery

More information

- i - - ii - - iii - - iv - - v - - vi - - vii - - viii - - ix - - x - - xi - - xii - - xiii - - xiv - - xv - - xvi - - xvii - - xviii - - xix - - xx - - xxi - - xxii - - xxiii - - xxiv - - 3 - - 4 -

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

AGENDA 01 02 03 모바일 산업의 환경변화 모바일 클라우드 서비스의 등장 모바일 클라우드 서비스 융합사례

AGENDA 01 02 03 모바일 산업의 환경변화 모바일 클라우드 서비스의 등장 모바일 클라우드 서비스 융합사례 모바일 클라우드 서비스 융합사례와 시장 전망 및 신 사업전략 2011. 10 AGENDA 01 02 03 모바일 산업의 환경변화 모바일 클라우드 서비스의 등장 모바일 클라우드 서비스 융합사례 AGENDA 01. 모바일 산업의 환경 변화 가치 사슬의 분화/결합 모바일 업계에서도 PC 산업과 유사한 모듈화/분업화 진행 PC 산업 IBM à WinTel 시대 à

More information

Intra_DW_Ch4.PDF

Intra_DW_Ch4.PDF The Intranet Data Warehouse Richard Tanler Ch4 : Online Analytic Processing: From Data To Information 2000. 4. 14 All rights reserved OLAP OLAP OLAP OLAP OLAP OLAP is a label, rather than a technology

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 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

1,000 AP 20,000 ZoneDirector IT 5, WLAN. ZoneFlex AP ZoneDirector. WLAN. WLAN AP,,,,,,., Wi-Fi. AP. PSK PC. VLAN WLAN.. ZoneDirector 5000 WLAN L

1,000 AP 20,000 ZoneDirector IT 5, WLAN. ZoneFlex AP ZoneDirector. WLAN. WLAN AP,,,,,,., Wi-Fi. AP. PSK PC. VLAN WLAN.. ZoneDirector 5000 WLAN L 1,000 AP 20,000 ZoneDirector 5000. IT 5, WLAN. ZoneFlex AP ZoneDirector. WLAN. WLAN AP,,,,,,., Wi-Fi. AP. PSK PC. VLAN WLAN.. WLAN LAN Ruckus Wireless (ZD5000),, WLAN. 20,000 2,048 WLAN ZD5000 1,000 ZoneFlex

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

놀이동산미아찾기시스템

놀이동산미아찾기시스템 TinyOS를이용한 놀이동산미아찾기시스템 윤정호 (mo0o1234@nate.com) 김영익 (youngicks7@daum.net) 김동익 (dongikkim@naver.com) 1 목차 1. 프로젝트개요 2. 전체시스템구성도 3. Tool & Language 4. 데이터흐름도 5. Graphic User Interface 6. 개선해야할사항 2 프로젝트개요

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

<5BC6EDC1FD5DBEEEBEF7C0CCC1D6B3EBB5BFC0DAC0CEB1C7BBF3C8B2BDC7C5C2C1B6BBE7C3D6C1BEBAB8B0EDBCAD28BAB8C0CCBDBABEC6C0CC292E687770>

<5BC6EDC1FD5DBEEEBEF7C0CCC1D6B3EBB5BFC0DAC0CEB1C7BBF3C8B2BDC7C5C2C1B6BBE7C3D6C1BEBAB8B0EDBCAD28BAB8C0CCBDBABEC6C0CC292E687770> 어업 이주노동자 인권상황 실태조사 2012년도 국가인권위원회 인권상황 실태조사 연구용역보고서를 제출합니다 2012. 10. 연구수행기관 한양대학교 글로벌다문화연구원 연구책임자 오경석 연 구 원 이한숙 김사강 김민정 류성환 윤명희 정정훈 연구보조원 최상일 이 보고서는 연구용역수행기관의 결과물로서, 국가인권위원회의 입장과 다를 수 있습니다 연구요약 이 연구는 연근해

More information

USB 케이블만을이용한리눅스 NFS 개발환경 (VirtualBox) 최초작성 : 2010 년 10 월 21 일 작성자 : 김정현 수정내용 최초작성 by 김정현 스크립트추가, 설명보충 by 유형목 1. VritualBox

USB 케이블만을이용한리눅스 NFS 개발환경 (VirtualBox) 최초작성 : 2010 년 10 월 21 일 작성자 : 김정현 수정내용 최초작성 by 김정현 스크립트추가, 설명보충 by 유형목 1. VritualBox USB 케이블만을이용한리눅스 NFS 개발환경 (VirtualBox) 최초작성 : 2010 년 10 월 21 일 작성자 : 김정현 수정내용 2010. 10. 21. 최초작성 by 김정현 2010. 10. 24. 스크립트추가, 설명보충 by 유형목 1. VritualBox 설정 Windows 환경에서 VirtualBox 를설치한다음게스트 OS 로우분투리눅스를사용하는경우,

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

歯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

<BEC6BFF4BCD2BDCCBAB8B0EDBCAD28C3D6C1BE29303831302E687770>

<BEC6BFF4BCD2BDCCBAB8B0EDBCAD28C3D6C1BE29303831302E687770> 동아시아역내 일본자동차산업의 아웃소싱 시장 분석을 통한 국내자동차부품기업의 진출방안 연구 2008. 8. 29. 한일산업기술협력재단 연구 참여자 책임연구자: 김도훈(한일산업기술협력재단 일본기업연구센터 연구위원) 연 구 자: 오재훤(메이지대학 국제일본학부 준교수) 연 구 자: 김봉길(도야마대학 경제학부 교수) 연 구 자: 정성춘(대외경제정책연구원 일본팀장) 연

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

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

PowerPoint Presentation

PowerPoint Presentation 오에스아이소프트코리아세미나세미나 2012 Copyright Copyright 2012 OSIsoft, 2012 OSIsoft, LLC. LLC. PI Coresight and Mobility Presented by Daniel Kim REGIONAL 세미나 SEMINAR 세미나 2012 2012 2 Copyright Copyright 2012 OSIsoft,

More information

Solaris System Administration

Solaris System Administration Dynamips 를이용한 Cisco Router 와 Switch 가상화 1. Dynamips 소개 2. Dynamips win32용설치 3. Dynamips에서지원하는장비 4. Dynamips에서지워하는모듈 5. NET file 구조 6. Dynamips를이용한 LAB 구축 7. IPv6 address 구조 8. IPv6 RIP Router 구성하기 Dynamips

More information

Web Application Hosting in the AWS Cloud Contents 개요 가용성과 확장성이 높은 웹 호스팅은 복잡하고 비용이 많이 드는 사업이 될 수 있습니다. 전통적인 웹 확장 아키텍처는 높은 수준의 안정성을 보장하기 위해 복잡한 솔루션으로 구현

Web Application Hosting in the AWS Cloud Contents 개요 가용성과 확장성이 높은 웹 호스팅은 복잡하고 비용이 많이 드는 사업이 될 수 있습니다. 전통적인 웹 확장 아키텍처는 높은 수준의 안정성을 보장하기 위해 복잡한 솔루션으로 구현 02 Web Application Hosting in the AWS Cloud www.wisen.co.kr Wisely Combine the Network platforms Web Application Hosting in the AWS Cloud Contents 개요 가용성과 확장성이 높은 웹 호스팅은 복잡하고 비용이 많이 드는 사업이 될 수 있습니다. 전통적인

More information

사물인터넷비즈니스빅뱅_내지_11차_160421.indd

사물인터넷비즈니스빅뱅_내지_11차_160421.indd 사물인터넷 빅뱅 2016. 연대성 All Rights Reserved. 초판 1쇄 발행 2016년 4월 29일 지은이 연대성 펴낸이 장성두 펴낸곳 제이펍 출판신고 2009년 11월 10일 제406 2009 000087호 주소 경기도 파주시 문발로 141 뮤즈빌딩 403호 전화 070 8201 9010 / 팩스 02 6280 0405 홈페이지 www.jpub.kr

More information

슬라이드 1

슬라이드 1 사용 전에 사용자 주의 사항을 반드시 읽고 정확하게 지켜주시기 바랍니다. 사용설명서의 구성품 형상과 색상은 실제와 다를 수 있습니다. 사용설명서의 내용은 제품의 소프트웨어 버전이나 통신 사업자의 사정에 따라 다를 수 있습니다. 본 사용설명서는 저작권법에 의해 보호를 받고 있습니다. 본 사용설명서는 주식회사 블루버드소프트에서 제작한 것으로 편집 오류, 정보 누락

More information

본문서는 초급자들을 대상으로 최대한 쉽게 작성하였습니다. 본문서에서는 설치방법만 기술했으며 자세한 설정방법은 검색을 통하시기 바랍니다. 1. 설치개요 워드프레스는 블로그 형태의 홈페이지를 빠르게 만들수 있게 해 주는 프로그램입니다. 다양한 기능을 하는 플러그인과 디자인

본문서는 초급자들을 대상으로 최대한 쉽게 작성하였습니다. 본문서에서는 설치방법만 기술했으며 자세한 설정방법은 검색을 통하시기 바랍니다. 1. 설치개요 워드프레스는 블로그 형태의 홈페이지를 빠르게 만들수 있게 해 주는 프로그램입니다. 다양한 기능을 하는 플러그인과 디자인 스마일서브 CLOUD_Virtual 워드프레스 설치 (WORDPRESS INSTALL) 스마일서브 가상화사업본부 Update. 2012. 09. 04. 본문서는 초급자들을 대상으로 최대한 쉽게 작성하였습니다. 본문서에서는 설치방법만 기술했으며 자세한 설정방법은 검색을 통하시기 바랍니다. 1. 설치개요 워드프레스는 블로그 형태의 홈페이지를 빠르게 만들수 있게

More information

Intro to Servlet, EJB, JSP, WS

Intro to Servlet, EJB, JSP, WS ! Introduction to J2EE (2) - EJB, Web Services J2EE iseminar.. 1544-3355 ( ) iseminar Chat. 1 Who Are We? Business Solutions Consultant Oracle Application Server 10g Business Solutions Consultant Oracle10g

More information

<31332DB9E9C6AEB7A2C7D8C5B72D3131C0E528BACEB7CF292E687770>

<31332DB9E9C6AEB7A2C7D8C5B72D3131C0E528BACEB7CF292E687770> 보자. 이제 v4.6.2-1 로업데이트됐다. 그림 F-15의하단처럼 msfupdate를입력해 root @bt:~# msfudpate 그림 F-16 과같이정상적으로업데이트가진행되는것을볼수있다. 이후에는 msfupdate를입력하면최신업데이트모듈과공격코드를쉽게유지할수있다. 그림 F-16 msfupdate의진행확인 G. SET 업데이트문제해결 백트랙을기본설치로운영을할때에는

More information

Microsoft PowerPoint - 02_Linux_Fedora_Core_8_Vmware_Installation [호환 모드]

Microsoft PowerPoint - 02_Linux_Fedora_Core_8_Vmware_Installation [호환 모드] 리눅스 설치 Vmware를 이용한 Fedora Core 8 설치 소프트웨어실습 1 Contents 가상 머신 실습 환경 구축 Fedora Core 8 설치 가상 머신 가상 머신 가상 머신의 개념 VMware의 설치 VMware : 가상 머신 생성 VMware의 특징 실습 환경 구축 실습 환경 구축 Fedora Core 8 설치 가상 머신의 개념 가상 머신 (Virtual

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Install the PDI on CentOS 2013.04 G L O B E P O I N T 1 Ⅰ linux 구성 II Pentaho Install 2013, Globepoint Inc. All Rights Reserved. 2 I. Linux 구성 2013, Globepoint Inc. All Rights Reserved. 3 IP 설정 1. 설정파일

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

<49534F20323030303020C0CEC1F520BBE7C8C4BDC9BBE720C4C1BCB3C6C320B9D7204954534D20BDC3BDBAC5DB20B0EDB5B5C8AD20C1A6BEC8BFE4C3BBBCAD2E687770>

<49534F20323030303020C0CEC1F520BBE7C8C4BDC9BBE720C4C1BCB3C6C320B9D7204954534D20BDC3BDBAC5DB20B0EDB5B5C8AD20C1A6BEC8BFE4C3BBBCAD2E687770> ISO 20000 인증 사후심사 컨설팅 및 ITSM 시스템 고도화를 위한 제 안 요 청 서 2008. 6. 한 국 학 술 진 흥 재 단 이 자료는 한국학술진흥재단 제안서 작성이외의 목적으로 복제, 전달 및 사용을 금함 목 차 Ⅰ. 사업개요 1 1. 사업명 1 2. 추진배경 1 3. 목적 1 4. 사업내용 2 5. 기대효과 2 Ⅱ. 사업추진계획 4 1. 추진체계

More information

DBMS & SQL Server Installation Database Laboratory

DBMS & SQL Server Installation Database Laboratory DBMS & 조교 _ 최윤영 } 데이터베이스연구실 (1314 호 ) } 문의사항은 cyy@hallym.ac.kr } 과제제출은 dbcyy1@gmail.com } 수업공지사항및자료는모두홈페이지에서확인 } dblab.hallym.ac.kr } 홈페이지 ID: 학번 } 홈페이지 PW:s123 2 차례 } } 설치전점검사항 } 설치단계별설명 3 Hallym Univ.

More information

업데이트일 : Server CIP 기능가이드 목차서비스소개 CIP 사용방법 Inter-AZ 신청방법 CIP 고객 VM 설정방법 서비스소개 본문서는 KT ucloud server 의부가기능인 Cloud Internal Path ( 이하 CIP 이라함

업데이트일 : Server CIP 기능가이드 목차서비스소개 CIP 사용방법 Inter-AZ 신청방법 CIP 고객 VM 설정방법 서비스소개 본문서는 KT ucloud server 의부가기능인 Cloud Internal Path ( 이하 CIP 이라함 업데이트일 : 2015.09.17 Server CIP 기능가이드 목차서비스소개 CIP 사용방법 Inter-AZ 신청방법 CIP 고객 VM 설정방법 서비스소개 본문서는 KT ucloud server 의부가기능인 Cloud Internal Path ( 이하 CIP 이라함 ) 를사용하는방법에대해문서화합니다. 목적 본문서는 KT ucloud biz 의 CIP 기능을사용할수있도록포탈에서신청,

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

Portal_9iAS.ppt [읽기 전용]

Portal_9iAS.ppt [읽기 전용] Application Server iplatform Oracle9 A P P L I C A T I O N S E R V E R i Oracle9i Application Server e-business Portal Client Database Server e-business Portals B2C, B2B, B2E, WebsiteX B2Me GUI ID B2C

More information

레드햇과 오픈스택 Feb, 2014 Kim Yong Ki Solution Architect Red Hat Korea RED HAT ENTERPRISE LINUX OPENSTACK PLATFORM 2014

레드햇과 오픈스택 Feb, 2014 Kim Yong Ki Solution Architect Red Hat Korea RED HAT ENTERPRISE LINUX OPENSTACK PLATFORM 2014 레드햇과 오픈스택 Feb, 2014 Kim Yong Ki Solution Architect Red Hat Korea Index WHY - WHAT - HOW - WHERE - WHO - WHEN - 왜 오픈스택이 필요한가 오픈스택은 무엇인가 오픈스택은 어떻게 작동하는가 오픈스택은 어디에서 사용될까 누가 오픈스택을 만들었는가 우리는 언제 오픈스택을 사용할 수

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

<BAD2B9FDBAB9C1A620BAB8B0EDBCAD5FC5EBC7D55F76657230345FB9DFB0A3BBE7C6F7C7D45F33C2F720B1B3C1A428B1D7B8B22020C3DFC3E2292E687770>

<BAD2B9FDBAB9C1A620BAB8B0EDBCAD5FC5EBC7D55F76657230345FB9DFB0A3BBE7C6F7C7D45F33C2F720B1B3C1A428B1D7B8B22020C3DFC3E2292E687770> 2014 저작권 보호 연차보고서 nnual eport on Copyright rotection 2014 저작권 보호 연차보고서 nnual eport on Copyright rotection 발간사 올해 초 안방극장을 휘어잡은 드라마 별에서 온 그대 는 독특한 소재와 한류스타의 완벽한 연기로 대한민국을 넘어 중국과 일본 등 아시아에 다시금 한류 열풍을 불러일으켰습

More information

IPAK 윤리강령 나는 _ 한국IT전문가협회 회원으로서 긍지와 보람을 느끼며 정보시스템 활용하 자. 나는 _동료, 단체 및 국가 나아가 인류사회에 대하여 철저한 책임 의식을 가진 다. 나는 _ 활용자에 대하여 그 편익을 증진시키는데 최선을 다한다. 나는 _ 동료에 대해

IPAK 윤리강령 나는 _ 한국IT전문가협회 회원으로서 긍지와 보람을 느끼며 정보시스템 활용하 자. 나는 _동료, 단체 및 국가 나아가 인류사회에 대하여 철저한 책임 의식을 가진 다. 나는 _ 활용자에 대하여 그 편익을 증진시키는데 최선을 다한다. 나는 _ 동료에 대해 IPAK 윤리강령 나는 _ 한국IT전문가협회 회원으로서 긍지와 보람을 느끼며 정보시스템 활용하 자. 나는 _동료, 단체 및 국가 나아가 인류사회에 대하여 철저한 책임 의식을 가진 다. 나는 _ 활용자에 대하여 그 편익을 증진시키는데 최선을 다한다. 나는 _ 동료에 대해서 도의와 성실과 지식을 바탕으로 서로 우애하고 경애한다. 나는 _ 단체와 국가에 대해서 그

More information

Sena Device Server Serial/IP TM Version

Sena Device Server Serial/IP TM Version Sena Device Server Serial/IP TM Version 1.0.0 2005. 3. 7. Release Note Revision Date Name Description V1.0.0 2005-03-7 HJ Jeon Serial/IP 4.3.2 ( ) 210 137-130, : (02) 573-5422 : (02) 573-7710 email: support@sena.com

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

°æÁ¦Àü¸Á-µ¼º¸.PDF

°æÁ¦Àü¸Á-µ¼º¸.PDF www.keri.org i ii iii iv v vi vii viii ix x xi xii xiii xiv xv 3 4 5 6 7 8 9 10 11 12 13 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 47 48 49 50 51 52 53

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

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

CLX8380_KR.book

CLX8380_KR.book 이 사용설명서와 제품은 저작권법에 의해 보호되어 있습니다. 삼성전자 ( 주 ) 의 사전 서면 동의 없이 사용설명서 및 제품의 일부 또는 전체를 복사, 복제, 번역 또는 전자매체나 기계가 읽을 수 있는 형태로 바꿀 수 없습니다. 이 사용설명서와 제품은 표기상의 잘못이나 기술적인 잘못이 있을 수 있으며 사전 통보 없이 이러한 내용들이 변경될 수 있습니다. CLX-8380ND,

More information

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다. Eclipse 개발환경에서 WindowBuilder 를이용한 Java 프로그램개발 이예는 Java 프로그램의기초를이해하고있는사람을대상으로 Embedded Microcomputer 를이용한제어시스템을 PC 에서 Serial 통신으로제어 (Graphical User Interface (GUI) 환경에서 ) 하는프로그램개발예를설명한다. WindowBuilder:

More information

<4D F736F F F696E74202D FB5A5C0CCC5CDC5EBBDC5B0FA20B3D7C6AEBFF6C5A9205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D FB5A5C0CCC5CDC5EBBDC5B0FA20B3D7C6AEBFF6C5A9205BC8A3C8AF20B8F0B5E55D> 2011 년봄학기데이터통신 Chapter 01 데이터통신과네트워크 1 순서 1. 데이터통신과네트워크의개념 2. 컴퓨터네트워크의유형 3. 네트워크표준화 4. 인터넷표준화활동 5. 유무선네트워크의발전및진화 Copyright(c)2011 by Hyun-Ho Choi 2 Section 01 데이터통신과네트워크의개념 데이터통신 (Data Communication) 두개이상의통신장치사이에서전송미디어

More information

PowerPoint Presentation

PowerPoint Presentation NETGEAR PoE/PoE+ Switch June 5, 2018 NETGEAR Switch Portfolio Full Managed Smart Managed Plus Click & Easy-Mount Smart Managed Plus - Light L2 Features - Web-Managed Insight Managed Smart Cloud - Easy

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

시스코 무선랜 설치운영 매뉴얼(AP1200s_v1.1)

시스코 무선랜 설치운영 매뉴얼(AP1200s_v1.1) [ Version 1.3 ] Access Point,. Access Point IP 10.0.0.1, Subnet Mask 255.255.255.224, DHCP Client. DHCP Server IP IP,, IP 10.0.0.X. (Tip: Auto Sensing Straight, Cross-over.) step 1]. step 2] LAN. step

More information

<4D6963726F736F667420576F7264202D2032303133303330385FB1E2BCFAB5BFC7E2BAD0BCAE2DB8F0B9D9C0CF20B3D7C6AEBFF6C5A92DC3D6BFCF2E646F6378>

<4D6963726F736F667420576F7264202D2032303133303330385FB1E2BCFAB5BFC7E2BAD0BCAE2DB8F0B9D9C0CF20B3D7C6AEBFF6C5A92DC3D6BFCF2E646F6378> 2013-03-08 모바일 네트워크 기술 동향 모바일 네트워크의 개념과 기본적인 배경 지식에 대해 소개하고, 최근 업계 동향을 살펴봄 목차 1. 모바일 네트워크 개요...2 2. 3G 네트워크 기술 소개...4 3. LTE-A 최신 동향...7 최완, wanne@etri.re.kr ETRI 차세대콘텐츠연구소 콘텐츠서비스연구실 ETRI 차세대콘텐츠연구소 콘텐츠서비스연구실

More information

시스템을 제공한다는 특징이 있다. ONOS[4]는 성능, 확장성, 가용성을 중시하는 분산형 SDN 컨트롤러이 며 편의성 있는 Web GUI 와 SDN 컴포넌트 단위의 계층 구조를 통해 어플리케이션을 개발하고 컨트롤 러에 탑재할 수 있는 기능들을 제공한다. 하지만 ONO

시스템을 제공한다는 특징이 있다. ONOS[4]는 성능, 확장성, 가용성을 중시하는 분산형 SDN 컨트롤러이 며 편의성 있는 Web GUI 와 SDN 컴포넌트 단위의 계층 구조를 통해 어플리케이션을 개발하고 컨트롤 러에 탑재할 수 있는 기능들을 제공한다. 하지만 ONO DPI 를 이용한 SDN 트래픽 매니지먼트 시스템 정세연 O, 이도영, 최준묵, 홍원기 포항공과대학교 컴퓨터공학과 {jsy0906, dylee90, juk909090, jwkhong} @postech.ac.kr 요 약 Software-Defined Networking (SDN)은 네트워크 분야에서 주목받는 연구 분야의 하나로써 그 기본 개념 및 목적은 네트워크를

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

(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

[ 네트워크 1] 3 주차 1 차시. IPv4 주소클래스 3 주차 1 차시 IPv4 주소클래스 학습목표 1. IP 헤더필드의구성을파악하고요약하여설명할수있다. 2. Subnet ID 및 Subnet Mask 를설명할수있고, 각클래스의사용가능한호스트수와사설 IP 주소및네트

[ 네트워크 1] 3 주차 1 차시. IPv4 주소클래스 3 주차 1 차시 IPv4 주소클래스 학습목표 1. IP 헤더필드의구성을파악하고요약하여설명할수있다. 2. Subnet ID 및 Subnet Mask 를설명할수있고, 각클래스의사용가능한호스트수와사설 IP 주소및네트 3 주차 1 차시 IPv4 주소클래스 학습목표 1. IP 헤더필드의구성을파악하고요약하여설명할수있다. 2. Subnet ID 및 Subnet Mask 를설명할수있고, 각클래스의사용가능한호스트수와사설 IP 주소및네트워크주소와 브로드캐스트주소를설명할수있다. 학습내용 1 : IP 헤더필드구성 1. Network Layer Fields 2. IP 헤더필드의구성 1)

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

슬라이드 제목 없음

슬라이드 제목 없음 2006-09-27 경북대학교컴퓨터공학과 1 제 5 장서브넷팅과슈퍼넷팅 서브넷팅 (subnetting) 슈퍼넷팅 (Supernetting) 2006-09-27 경북대학교컴퓨터공학과 2 서브넷팅과슈퍼넷팅 서브넷팅 (subnetting) 하나의네트워크를여러개의서브넷 (subnet) 으로분할 슈퍼넷팅 (supernetting) 여러개의서브넷주소를결합 The idea

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