ISSN 2383-630X(Print) / ISSN 2383-6296(Online) Journal of KIISE, Vol. 42, No. 11, pp. 1441-1451, 2015. 11 http://dx.doi.org/10.5626/jok.2015.42.11.1441 사물인터넷디바이스를위한 DNS 네임자동설정의설계및구현 (Design and Implementation of DNS Name Autoconfiguration for Internet of Things Devices) 이세준 정재훈 (Sejun Lee) (Jaehoon Jeong) 요약최근가장주목받고있는연구분야중하나인사물인터넷 (Internet of Things, IoT) 은네트워크에연결된매우많은디바이스를통해사용자에게다양한서비스를제공하는것을목표로한다. IoT 환경에서 IoT 디바이스는매우많은개수가사용되는데각 IoT 디바이스에대한 DNS(Domain Name System) 네임을일일이수동으로설정하는것은비효율적이다. 따라서본논문에서는 IPv6 기반의 IoT 환경에서 IoT 디바이스의 DNS 네임을자동으로생성하고관리하는 DNS Name Autoconfiguration (DNSNA) 이라는기법을제안한다. DNS 네임을생성및등록하는과정에서 Internet Engineering Task Force(IETF) 에서재정된표준프로토콜을이용한다. 본기법은유니캐스트로 DNS 서버를통해 IoT 디바이스의 DNS 네임을 IPv6 주소로레졸루션 (Resolution) 하기때문에멀티링크네트워크환경에서는기존의멀티캐스트기반의 mdns(multicast DNS) 기법보다트래픽을적게발생시킨다. 따라서본기법은멀티홉으로구성된 IoT 네트워크에서 mdns 보다더적합하다. 본논문은제안한기법의디자인과스마트홈과스마트로드에서의서비스시나리오를설명한다. 또한본논문은스마트그리드환경에서구현및테스트에대하여설명한다. 키워드 : IPv6, 사물인터넷, 디바이스, DNS, 자동설정, 이웃탐색 Abstract As one of the most spotlighted research areas, these days, the Internet of Things (IoT) aims to provide users with various services through many devices. Since there exist so many devices in IoT environments, it is inefficient to manually configure the domain name system (DNS) names of such devices. Thus, for IPv6-based IoT environments, this paper proposes a scheme called the DNS Name Autoconfiguration (DNSNA) that autoconfigures an IoT device s DNS name and manages it. In the procedure for generating and registering an IoT device s DNS name, the standard protocols of the Internet Engineering Task Force (IETF) are used. Since the proposed scheme resolves an IoT device s DNS name into an IPv6 address in unicast through a DNS server, it generates less traffic than multicast-based mdns (Multicast DNS) which is a legacy DNS application for the DNS name service in the smart home. Thus, the proposed scheme is more appropriate in multi-hop IoT networks than 본연구는교육부의재원으로지원을받아수행된산학협력선도대학 (LINC) 육성사업 [2015-A-0002-010113] 과 2014년도정부 ( 미래창조과학부 ) 의재원으로한국연구재단의지원을받아수행된기초연구사업 [2014R1A1A1006438] 과미래창조과학부및정보통신기술진흥센터의정보통신 방송연구개발사업 [R0166-15-1041, 중앙집중제어기반네트워크보안기술표준개발 ] 의일환으로수행하였음 학생회원 : 성균관대학교전자전기컴퓨터공학 prosejun14@gmail.com 정회원 : 성균관대학교인터랙션사이언스학과교수 (Sungkyunkwan Univ.) pauljeong@skku.edu (Corresponding author 임 ) 논문접수 : 2015년 8월 18일 (Received 18 August 2015) 논문수정 : 2015년 9월 9일 (Revised 9 September 2015) 심사완료 : 2015년 9월 9일 (Accepted 9 September 2015) CopyrightC2015 한국정보과학회ː 개인목적이나교육목적인경우, 이저작물의전체또는일부에대한복사본혹은디지털사본의제작을허가합니다. 이때, 사본은상업적수단으로사용할수없으며첫페이지에본문구와출처를반드시명시해야합니다. 이외의목적으로복제, 배포, 출판, 전송등모든유형의사용행위를하는경우에대하여는사전에허가를얻고비용을지불해야합니다. 정보과학회논문지제42권제11호 (2015. 11)
1442 정보과학회논문지제 42 권제 11 호 (2015. 11) mdns. This paper explains the design of the proposed scheme and its service scenarios, such as smart home and smart road. It also explains the implementation and testing of the proposed scheme in the smart grid. Keywords: IPv6, internet of things, device, DNS, autoconfiguration, neighbor discovery 1. 서론 Internet of Things(IoT) 는최근가장주목받고있는인터넷관련기술로스마트디바이스와의연동을통해주변센서로부터수집된정보를가공및처리하여다양한서비스를제공한다 [1]. 미국의시장조사기관인가트너는 2014년도에발표한 Hype Cycle에서향후 5년에서 10년정도가장유망한미래의기술로 IoT를선정했고, 2018년도까지 80억 IoT 디바이스가증가해서총 160억 IoT 디바이스가존재할것이라고발표했다 [2]. IPv4는인터넷주소고갈이라는한계점이있어서이를극복하기위한기술로 IPv6 인터넷프로토콜이등장하였다 [3]. IoT 기술은많은분야에적용되며네트워킹기능을포함한 IoT 디바이스가증가함에따라차세대인터넷프로토콜인 IPv6를통해 IoT 디바이스관리를효율적으로할수있다. 한편, Domain Name System (DNS) 은사용자가 IP 주소를쉽게기억할수있는문자열로대응시키는서비스로써인터넷에연결된개체에대한 IP 주소와 DNS 네임을관리한다 [4]. 하지만 IoT 환경에서 IoT 디바이스에대한 DNS 네임을일일이수동으로설정하는것은매우번거로운일이다. 이를해결하는방안으로애플 (Apple Inc.) 에서개발한봉주르 (Bonjour) 는제로콘프 (Zeroconf) 를구현한소프트웨어인 multicast Domain Name System(mDNS) 를통해 DNS 네임을자동으로부여하고도메인네이밍서비스를지원한다 [5]. mdns에서각노드는자신의 DNS 서버를운영하며자신의 DNS 네임에대한쿼리를요청하는노드에게 IP 주소를전달해준다. 봉주르에서제공해주는네이밍은같은로컬안에사용중인기기들의 DNS 네임과그에대응하는 IPv4 또는 IPv6 주소를특별한보안키없이보여주기때문에프라이버시에문제가있다. 기본적으로멀티캐스트기반으로 DNS 네임레졸루션 (Resolution) 을수행하므로네트워크에많은트래픽을발생시킨다. 또한센서와같이 Duty Cycling을통해슬립모드 (Sleep Mode) 에있는디바이스는 DNS 네임쿼리에응답하지않을수도있다. 이와같이 mdns 는멀티홉으로구성된 IP 네트워크와 Duty Cycling을하는센서와같은 IoT 디바이스를위한네이밍서비스로는적합하지않다. 이러한 IoT DNS 네이밍서비스를제공하기위해본논문은 IPv6의이웃탐색프로토콜 (Neighbor Discovery, ND)[6] 기반의단순하고효과적인 IoT 디바이스를위 한 DNS Name Autoconfiguration(DNSNA) 이라는기법을제안한다. ND의라우터광고 (Router Advertisement, RA) 메시지는 DNS Search List(DNSSL)[7] 옵션을통해멀티캐스트로 IoT 디바이스에게링크가해당되는도메인정보인 DNS Suffix를제공한다. IoT 디바이스는이렇게전달받은 DNS Suffix에디바이스정보를 ( 예, Device Category, Device Model 및 Unique ID) 결합하여 DNS 네임을생성한다. IoT 디바이스는생성된 DNS 네임이현재링크에서유일한지검사한다. 차후에현재링크의라우터는 Node Information(NI) Query[8] 를통해링크에있는 IoT 디바이스의 DNS 네임과대응하는 IPv6 주소를수집한다. 라우터는수집하는 IoT 디바이스의 DNS 정보는 DNS 동적갱신 (Dynamic Update)[9] 을통해도메인을관리하는 DNS 서버에게등록한다. 이러한등록절차를통해특정네트워크내의 IoT 디바이스의 DNS 정보는 DNS 서버에등록되어있기때문에어떤노드가다른노드의 DNS 네임의 IPv6 주소를알고싶을때는기존의 DNS 레졸루션과동일하게유니캐스트로 DNS 서버에게 DNS 쿼리를전송한다. 이와같이유니캐스트기반의네임레졸루션이가능하므로 mdns보다적은트래픽으로네임레졸루션을수행한다. 아울러노드가 DNS 서버를통해 IoT 디바이스에대한 DNS 네임정보를참조하므로 IoT 디바이스가슬립모드에있을때도해당 IoT 디바이스에대한 DNS 네임을확인및제어를할수있다. 따라서제안하는기법은규모가큰네트워크뿐만아니라규모가작은네트워크에서도 IoT 디바이스도메인관리를효과적으로할수있다. 본논문은다음과같이구성된다. 2장에서는본제안하는기법에관련된선행연구에대한내용을다룬다. 3 장에서는제안하는기법에대한프로토콜을설명하고, 4 장에서는실제네트워크에서테스트결과를분석한후기존의다른기법과비교분석을한다. 마지막으로 5장에서는결론및향후연구에대해논의한다. 2. 관련연구 ND는 IPv6 호스트가자신의디폴트게이트웨이를찾거나, IPv6 주소를링크계층의주소로변환하는일을할수있게하는 IPv6 기본프로토콜이다. ND는 Internet Control Message Protocol(ICMPv6) 메시지 [10] 를통해동작하고 ND는 IPv6 호스트의 IPv6 주소자동설정
사물인터넷디바이스를위한 DNS 네임자동설정의설계및구현 1443 (Autoconfiguration) 을가능하게한다. Autoconfiguration은 Router Solicitation(RS) 및 RA를통해수행한다. RS는새로운네트워크영역에노드가연결될때해당서브넷을관리하는라우터에신속하게 RA 메시지전송을요청하는메시지로노드의인터페이스가이용가능상태가되면 RS를통해라우터에 RA 메시지를즉시전송하도록요청한다. RA는라우터가 RS 메시지에대한응답으로 RA 메시지를전송하거나멀티캐스팅이가능할경우주기적으로해당서브넷에위치한노드에라우터자신의존재를알리기위해라우터의링크로컬 (Link Local) 주소와네트워크프리픽스 (Prefix) 정보를담은 RA 메시지를전송한다. RA 메시지는 DNS 레졸루션을수행하는 Recursive DNS Server(RDNSS) 주소를포함하는 RDNSS 옵션과링크를포함하는네트워크의 DNS 도메인을포함하는 DNSSL를포함하는 DNSSL 옵션을전달할수있다 [7]. 애플에서개발한봉주르는 DNS 네이밍및서비스디스커버리를제공하는제로콘프소프트웨어이다 [11]. 봉주르를이용하면로컬네트워크상에서애플기기등을검색및등록할수있으며, 기기들이제공하는서비스를알수있다. 봉주르는 mdns[5] 을이용해서로컬네트워크에참여한기기들의 DNS 네임을기기또는사용자 ID와 DNS Suffix를기반으로자동생성하여 DNS 네이밍서비스를제공한다. mdns는각노드는자신의 DNS 서버를데몬형태로운영하며자신의 DNS 네임에대한쿼리를요청하는노드에게자신의 DNS 네임에대한 IP 주소를전달해준다. 하지만 mdns는기본적으로멀티캐스트기반으로네임레졸루션을수행하므로네트워크에많은트래픽을발생시키므로멀티홉으로구성된네트워크에서는부적합하다. 또한인터넷에연결된디바이스가항상동작하는경우에만 DNS 네임요청메시지에응답할수있고에너지절약을위해슬립모드를지원하는 IoT 디바이스에사용되기에는부적합하다. 또한제공하는 DNS 네임이평문 (Plaintext) 으로공개되므로디바이스의정보가쉽게공유되므로의료기기와같은 IoT 디바이스를위한네이밍서비스를위해서는적합하지않다. 봉주르는 DNS Service Discovery(DNS-SD) [12] 을이용해서서비스타입을설정하여특정기기의서비스검색을가능하도록했다. DNS-SD는등록된기기의서비스목록과포트를제공한다. DNS의 Pointer Record(PTR) 을이용해서사용자가요청할서비스타입을설정한다. 형식은 <Service>.<Domain> 이며 Service는언더바 (_) 로시작하여서비스이름을나타내며, Domain 은특정서비스안에서사용되는도메인을나타낸다. 위와같이서비스타입을설정하고멀티캐스트로각기기를검색하면, 해당하는기기는자신의서비스타입을 <Instance>.<Service>.<Domain> 형식으로반환한다. Instance 는사용자가알아보기쉽게고유한이름을나타낸다. [13] 은이동애드혹네트워크 (Mobile Ad-hoc Network, MANET) 환경에서 DNS 네이밍서비스를제공한다. 노드의 DNS 네임을자동으로설정하기위해네트워크인터페이스의 MAC 주소를 EUI-64(64-bit Extended Unique Identifier) 변환하여, 사용자또는디바이스 ID 와 MANET을위한 DNS Suffix( 예, adhoc) 를이용해 DNS 네임을자동생성및유일성을검증한다. 하지만 EUI-64 기반의 DNS 네임은일반사용자들이이해하기어렵고, 다른디바이스들이이러한 DNS 네임을통해유용한정보를얻을수없다. 이와반면에본논문이제안하는 DNSNA 는디바이스정보 ( 예, Device Type과 Device Model) 을기반으로 DNS 네임을생성하므로 DNS 네임만으로디바이스의기본적인정보를파악할수있다. 3. DNSNA 네이밍시스템본논문은향후증가하는 IoT 디바이스의 DNS 네임관리를위해 IPv4 주소고갈의문제점이있어 IPv6 주소기반을두어 IoT 디바이스관리를위한도메인네이밍시스템을제안한다. 그림 1은응용분야인한예로스마트그리드환경에서의도메인네이밍시스템의아키텍처를보여준다. 과거에는전력사업자가고객에게전력을공급한전력량을기록한미터기를읽기위해방문검침을한다. 수많은미터기있는환경에서는방문검침은비효율적이다. 현재는전력망에정보통신기술을접목해무선으로미터기를읽는기술이개발되었다. 그림 1 과같이 IPv6/6lo[14]/Wi-SUN[15] 을통해미터기의전력량을수집하여미터기를효율적으로관리할수있다. 스마트그리드환경에서댁내에설치된 IoT 디바이스인수많은미터기의 IP주소를이해및기억하기쉽게하기위해서 DNS 네임이필요하다. 본논문에서는 IoT 디바이스의 DNS 네임을자동으로생성및등록하고관리하는방법을제안한다. 3.1 DNS 네임의형태본논문에서제안하는 DNS 네임은그림 2와같은형태를지닌다. DNS 네임은호스트네임과도메인네임이결합한 FQDN(Fully Qualified Domain Name) 형태로점 (.) 으로구분되며, 그림 2와같이총 4개의문자열로구성되어있다 [16]. unique_id는서브넷에존재하는동일한모델 ( 예, 냉장고모델인 samsung_rh269lp) 에대해시리얼번호를가지는고유식별자 ( 예, refrigerator1) 를의미한다. device_ model은 IoT 디바이스를제조한제조사또는판매자가제공하는디바이스모델 ( 예, samsung_rh269lp) 을말한다. 디바이스모델은제품을생산한제조사의이름이
1444 정보과학회논문지제 42 권제 11 호 (2015. 11) 그림 1 스마트그리드환경에서의도메인네이밍시스템아키텍쳐 Fig. 1 The Architecture of Domain Naming in the Smart Grid 그림 2 DNS 네임형태 Fig. 2 DNS Name Format 그림 3 위치정보를포함한 DNS 네임형태 Fig. 3 DNS Name Format with Location Information 포함될수있다. device_category는 IoT 디바이스의카테고리 ( 예, refrigerator) 를나타낸다. domain_name은 IoT 디바이스가갖는네트워크도메인의 DNS Suffix ( 예, home) 를의미한다. 응용분야에따라 DNS 네임을구성하는요소의순서는그림 2와다를수있다. 디바이스모델및디바이스카테고리는사전에 IoT 디바이스에저장된정보에해당한다. 고유식별자는 DNS 네임생성과정에서 IoT 디바이스가생성하는정보이다. IoT 디바이스의개체수가많을경우그림 2와같은 DNS 네임형태정보만으로는 IoT 디바이스를구분하기어려울수있다. 이경우 DNS 네임은 IoT 디바이스의위치정보라는추가적인정보를포함할수있다. 장치의구별가능성과는관계없이 DNS 네임에포함되는위치정보는새로운정보를사용자에게제공할수있다. 위치정보가포함된 DNS 네임의예는그림 3과같다. 그림 3의 DNS 네임은그림 2의 DNS 네임에 location_ of_device가추가되었다. location_of_device는 IoT 디바이스의위치정보를의미한다. 위치정보는 IoT 디바이스가사전에미리획득한것을전제로한다. 위치정보는다음과같이다양한방법으로수집할수있다. IoT 디바이스가 GPS 수신기와같이위치추적장치가 있다면 GPS 좌표와같은절대적인좌표정보를사용할수있다. IoT 디바이스가가속도센서 (Accelerometer), 자이로스코드센서 (Gyroscope), 지자기센서 (Magnetometer) 등을내장하고있다면특정기준지점을기준으로 IoT 디바이스가이동하여위치한지점에대한상대적인위치정보를생성할수있다. 특정영역에이미일정한위치정보를보유하고있는다른 IoT 디바이스나장치가있다고가정하면, IoT 디바이스는무선통신을통해통신가능한거리에특정 IoT 디바이스가있다는것을알수있다. 따라서 IoT 디바이스는주변에있는다른장치의위치정보를참조하여자신의위치를대략추정할수있다. 3.2 도메인네이밍시스템의동작본절에서는도메인네이밍시스템의동작과정을설명한다. 첫번째는 IoT 디바이스가네트워크에최초로접속하고 DNS 네임을자동으로생성하여유일성을테스트하는단계를설명한다. 두번째는 IoT 디바이스가 DNS 네임을생성한후에라우터가 NI Query 프로토콜 [8] 을이용해서 DNS 네임을수집하여 DNS 동적갱신 [9] 을통해 DNS 서버에등록하는단계를설명한다. 세번째는사용자가스마트폰같은클라이언트장치를
사물인터넷디바이스를위한 DNS 네임자동설정의설계및구현 1445 이용해 DNS 서버로부터 IoT 디바이스의 DNS 네임목록을가져와 IoT 디바이스를제어하는단계를설명한다. 3.2.1 IoT 디바이스의 DNS 네임생성그림 4는 IoT 디바이스 ( 냉장고 ) 의 DNS 네임생성과정을기술한다. IoT 디바이스는서브넷에접속되었을때서브넷을관장하는라우터를통해 DNSSL 옵션을 IPv6 표준에따른 RA 또는 Dynamic Host Configuration Protocol(DHCP)[17] 을통해수신한다. DNSSL 은 IoT 디바이스가 DNS 네임을등록하는과정에서사용하는 DNS 도메인리스트를포함한다. IPv6 호스트인 IoT 디바이스는수신한 DNSSL 옵션이유효하다면그림 2와같이자신의 DNS 네임 (refrigerator1.samsung_rh269lp. refrigerator.kitchen.home) 을생성한다. 냉장고의 DNS 네임중 refrigerator1 은같은모델의디바이스를구별하기위한고유식별자이고, samsung_rh269lp 는제조사이름을포함하는디바이스모델이고, refrigerator 는디바이스카테고리, home 은 DNS Suffix에해당한다. IoT 디바이스는생성한 DNS 네임이서브넷에서유일한 DNS 네임인지확인하는것이바람직하다. 이러한 DNS 네임의유일성보장을위해서 IoT 디바이스는생성한 DNS 네임을링크로컬범위의멀티캐스트주소를생성하고이주소에해당되는멀티캐스트그룹에조인해서다른 IoT 디바이스가동일한 DNS 네임을사용하고자할때중복검사과정에응답하여동일한 DNS 네임이사용되는것을방지할수있다. DNS 네임에해당되는멀티캐스트주소는 IPv6 멀티캐스트프리픽스인 ff02::/16 을이용하고, 네트워크인터페이스 ID에해당하는하위 64 비트를위해 DNS 네임에대한 MD5 해싱값 128 비트중에서 Most Significant Bit(MSB) 를포함하는상위 64 비트를취한다. 새로운 DNS 네임을생성한 IoT 디바이스는다음과같이 ND 프로토콜에따라 DNS 네임에대한중복검사를수행할수있다. IoT 디바이스는 IPv6 멀티캐스트주소 (Multicast Address) 로주소중복검사 (Duplicate Address Detection, DAD) 을수행할수있다 [18]. DNS 네임이중복된경우 IoT 디바이스는종전의 DNS 네임에서디바이스의고유식별자를새로운식별자로변경한새로운 DNS 네임을생성하고, 새로운 DNS 네임에대한중복검사를수행한다. IoT 디바이스가서브넷에서중복되지않은 DNS 네임을생성했다고확인해야 DNS 네임생성과정이종료된다. 3.2.2 IoT 디바이스의 DNS 네임등록 3.2.1절에서 IoT 디바이스는 DNS 네임생성및서브넷에서의 DNS 네임중복성검사에대해설명했다. 본절에서는 IoT 디바이스의 DNS 네임을 DNS 서버에등록하는과정을설명한다. 사용자는클라이언트장치를이용해서 DNS 서버에있는 IoT 디바이스의 DNS 네임을보고제어하기위해 DNS 서버는서브넷에있는 IoT 디바이스의 DNS 네임을관리해야한다. 그림 5는 IoT 디바이스의 DNS 네임등록과정을나타내고있다. 우선, 서브넷을관장하는라우터는해당서브넷의네트워크에연결된 IoT 디바이스의 DNS 네임및대응하는 IPv6 주소를수집한다. 라우터는 ICMPv6 기반의 NI 프로토콜의 NI Query를이용하여 IoT 디바이스에 DNS 네임을묻는다 [8]. 이과정은종래 NI 프로토콜에서새로운 NI Query 타입이필요하다. 즉, 새로운 NI 타입에대한새로운코드가정의되어야한다. IoT 디바이스는 NI Query에대한응답으로자신의 DNS 네임및 IPv6 주소를포함하는 NI Reply를랜덤한지연시간이후에라우터에게전달한다. 라우터는서브넷에있는 IoT 디바이스들의 DNS 네임및 IPv6 주소를수집한다. 수집이끝나면 DNS 동적갱신 (Dynamic Update)[9] 을통해 DNS 서버에전송하고, DNS 서버는모든 IoT 디바이스의 DNS 네임및 IPv6 주소를로컬저장소에저장한다. 그림 4 IoT 디바이스의 DNS 네임생성 Fig. 4 IoT Device DNS Name Generation 그림 5 IoT 디바이스의 DNS 네임등록 Fig. 5 IoT Device DNS Name Registration
1446 정보과학회논문지제 42 권제 11 호 (2015. 11) 3.2.3 클라이언트장치를이용한 IoT 디바이스의관리 3.2.2절에서는 DNS 서버에 IoT 디바이스의 DNS 네임및 IPv6 주소를저장하는방법을설명했다. 본절에서는사용자가 DNS 서버로부터해당서브넷에있는 IoT 디바이스의 DNS 네임목록을불러와서제어및모니터링을하는방법을설명한다. 사용자는스마트폰및태블릿 PC와같은클라이언트장치를통해 IoT 디바이스에대한정보를확인하거나, IoT 디바이스를제어할수있다. 클라이언트장치는 DNS 서버에접속하여네트워크에존재하는 IoT 디바이스에대한 DNS 네임을획득한다. 그림 6에서는클라이언트장치가 IoT 디바이스를제어하는과정이다. 클라이언트장치는 DNS 서버로부터네트워크에존재하는다수의 IoT 디바이스들에대한 DNS 네임을획득한다. 그림 6 은 IPv6 호스트인스마트냉장고를예로보여주고있으 며클라이언트장치를이용해냉장고의정보를확인하거나, 냉장고의동작 ( 예, 식품의유통기한, 부족한식재료확인 ) 을제어및모니터링을할수있다. 3.3 DNS 네임의보안성애플에서개발한봉주르 [11] 의네이밍방법은보안키없이사용자에게네이밍정보를그대로전달해주기때문에개인정보유출에문제가발생될수있다. 따라서본논문에서는 DNS 네임의메시지전달은보안성을유지하기위한다양한사용방법을제안한다. 개인정보유출을막기위해위치와관련된 DNS 네임은공유키또는공개키를이용하여암호화할수있다. 예를들어 smart_ tv1.living_room.home이라는 DNS 네임은암호화되어 smart_tv1.xxx.home과같이암호화될수있다. xxx는 living_room에대해암호화된문자열이며, home에대한 root 권한을갖고있는사용자는공유키또는개인키로암호화된위치정보인 living_room을복호화할수있다. 4. DNSNA 서비스디스커버리 그림 6 클라이언트장치를이용한 IoT 디바이스관리 Fig. 6 Using client machine for management 본논문은 DNS 서버를관리함으로써 DNS 네임을효율적으로관리하며규모에제약을받지않고작거나큰규모의 IoT 환경에서 DNS 네이밍및서비스디스커버리를제공한다. 본절에서는제안기법을통해서비스디스커버리를설명한다. 4.1 스마트로드에서의네이밍서비스 IoT 디바이스가이동하는스마트로드환경에서의 DNS 네이밍서비스를설명한다. 그림 7은스마트로드에서 IoT 디바이스의 DNS 네임생성및등록은 3.2절과 그림 7 스마트로드에서의 IoT 디바이스들을위한 DNS 네이밍서비스 Fig. 7 DNS Naming Service for IoT Devices in the Smart Road
사물인터넷디바이스를위한 DNS 네임자동설정의설계및구현 1447 (a) Text-based IoT Device List (b) Graphic-based IoT Device Display 그림 8 DNS 네이밍서비스기반의 IoT 디바이스관리 Fig. 8 Management of IoT Devices based on the DNS Naming Service 같이동일한과정으로수행할수있다. 스마트로드에서 Car1 차량은루프무선통신기능을제공하는카메라 (Camera1) 로부터 DNSSL 옵션을통해 road 라는도메인정보를수신한다. Car1 차량은고유식별자를결합해서 car1. Volkswnagen_beetle16.car.road라는유일한 DNS 네임을생성하고각 IoT 디바이스 ( 루프디텍터, 신호제어기, 노변기지국 (Road-Side Unit, RSU)[19], 차량 ) 에주소중복검사를수행한다. 만약중복된 DNS 네임이생성되면다른고유식별자로 DNS 네임을생성한다. 다음으로카메라 (Camera1) 는 NI Query 프로토콜을이용하여차량의 DNS과 IPv6 주소를수집하여 DNS 서버에등록한다. 그림 7에서스마트로드의관리자는클라이언트장치를통해서 Traffic Light2를관리하는것을보여주고있다. 이러한시스템을통해기본교통자료수집및분석 ( 예, 교통량, 차량속도, 도로점유율 ), 교통정보의실시간전송, 교통사고경보신호, 교통사고인식을수행할수있으며스마트로드환경에서각 IoT 디바이스들을쉽게관리할수있다. 4.2 DNS 네이밍서비스기반의 IoT 디바이스관리사용자는 IoT 디바이스의상태를확인할수있고, 각 IoT 디바이스를제어및모니터링할수있다. 그림 8(a) 은사용자는 AllSeen Alliance 프로토콜 [20] 을이용하여태블릿 PC를이용해댁내에배치된 IoT 디바이스의 DNS 네임을볼수있다. 보다진보된형태로그림 8(b) 는태블릿 PC를통해댁내에배치된 IoT 디바이스들의종류및위치를화면에보여주고있다. 이러한서비스를위해서는 IoT 디바이스의위치정보를파악하는위치측정 (Localization) 서비스를통해가능하다 [21]. 본논문의 DNS 네이밍서비스는위치측정서비스와결합하여그림 8(b) 와같이그래픽기반의 IoT 디바이스디스플레이를통해동일한 IoT 디바이스모델 ( 예, 에어콘 ) 이라도위치정보를통해사용자가쉽게구분하여관리할수있게할 수있다. 또한로봇청소기 (Robot Cleaner) 의위치도실시간적으로파악하여관리할수있다. 5. 구현및실험본논문에서는제안한기법의검증을위해실제게이트웨이및저스펙의사양을가진임베디드 IoT 디바이스 2개를사용해서구현및실험을했다. 게이트웨이 (Gateway) 와미터기 (Meter) 에대한상세사양은표 1 과같다. 그림 9는게이트웨이의환경설정을나타낸것으로게이트웨이에서는미터기의주소자동설정기능을지원하기위해라우터광고데몬 (Router Advertisement Daemon, radvd) 을실행하며, 광고주기설정값은 MinRtrAdv- Interval은 600 sec, MaxRtrAdvInterval은 1800 sec으로설정하였고 RDNSS 옵션은 2001:2c8::1로설정, DNSSL 옵션은 secter1.grid로설정했다. 그림 10은게이트웨이가주기적으로 RA 메시지를미터기에게전송한다. Meter1, Meter2는 DNSSL 옵션인 secter1.grid를받고유일한 DNS 네임을생성한다. 그림 11은두개의미터기들이 DNS 네임을생성해서주소중복검사를통해 DNS 네임의중복여부를검사한다. 주소중복검사는 MD5 알고리즘을이용했으며각미터기들이멀티캐스트로로컬링크안에있는주변장표 1 실험에사용된게이트웨이와미터기의사양 Table 1 Specification of Gateway and Meter used in the Experiment (a) Gateway (b) Meter OS Linux FreeRTOS CPU ARM Cortex-A5 ARM Cortex-M4 RAM DDR2 256Mbyte 64k-byte embedded SRAM Flash Memory 256Mbyte 256/512Kbytes
1448 정보과학회논문지제 42 권제 11 호 (2015. 11) 그림 9 라우터광고데몬설정 Fig. 9 Configuration of Router Advertisement Daemon 그림 10 라우터광고 Fig. 10 Router Advertisement 그림 11 DNS 네임의주소중복검사 Fig. 11 Duplicate Address Detection for DNS Names
사물인터넷디바이스를위한 DNS 네임자동설정의설계및구현 1449 그림 12 DNS 네임수집을위한 Node Information 쿼리메시지 Fig. 12 Node Information Query for DNS Name Collection 그림 13 DNS 네임수집을위한 Node Information Reply 메시지 Fig. 13 Node Information Reply for DNS Name Collection 치들에게그주소의사용가능여부를알기위해 Neighbor Solicitation(NS) 메시지를보내서중복된주소가있는검사한다. 만약미터기가 Neighbor Advertisement(NA) 메시지를받으면같은 DNS 네임을사용하고있다고인식하고다른 DNS 네임을사용한다. 그림 12는게이트웨이가 DNS 네임을수집하기위해서 NI Query를미터기에게메시지를보낸다. ICMPv6 의 NI Query는타입 139로정의되어있다 [8]. 그림 13은 NI Query를받은미터기가이에대한응답하기위해게이트웨이에게 NI Reply를보낸다. ICMPv6
1450 정보과학회논문지제 42 권제 11 호 (2015. 11) 표 2 DNSNA 와 mdns 의비교 Table 2 Comparison of DNSNA and mdns Approaches DNSNA mdns Packet Forwarding Unicasting Multicasting Authoritative DNS Server Yes No (host itself is server) Naming Scope Global, Local Local Target Networks Small, Large Small Target Devices IoT Devices Apple Products Code Size Hundreds lines Thousands lines The Number of Messages for DNS Name Resolution Resource Usage (CPU, Memory, Energy) Small Big 의 NI Reply는타입 140로정의되어있다 [8]. 게이트웨이는각미터기들의 DNS 네임을수집한다. 끝으로제안하는기법인 DNSNA의구현물과 mdns 의비교는표 2와같다. DNSNA는 IoT 디바이스가자동으로 DNS 네임을생성및등록하는과정에서유니캐스트로메시지를전달한다. 따라서 DNS 관련트래픽이적게발생하고, DNS 서버를통해 IoT DNS 네임을효율적으로관리한다. 그러므로 DNSNA는네트워크규모에제약을받지않고작거나큰규모의네트워크에적용이가능하다. 또한실제코드라인수는 mdns 기법은수천라인이지만제안하는기법 DNSNA는비교적간단하여수백라인이다. 따라서 DNSNA는 IoT 디바이스 DNS 네이밍을위한개발오버헤드가 mdns보다훨씬작다. 그림 14는다중링크네트워크환경에서제안하는기법과 mdns 기법에대해 DNS 네임레졸루션에대해발생하는네트워크트래픽을비교분석한다. 제안하는기법의경우유니캐스트기반으로클라이언트노드가해당노드의 DNS 네임및 IPv6 주소를얻으려면해당망을관리하는 DNS 서버로부터정보를얻을수있다. (1) (1) 번수식은클라이언트노드 n c 에서 DNS Server n t 까지의홉거리 (Hop Distance), 즉패스링크개수이다. 그림 14에서최대홉거리는 m 이라고가정한다. 본시나리오에서는노드 n c 가 DNS 네임에대해레졸루션을하고자할때, 노드 n c 는 DNS Server n t 까지 DNS Query를전송하면, 그림 14(a) 와같이 m 개의 DNS Query 에대한패킷을발생된다. 또한 DNS Server는이에상응하는 DNS Reply를노드 n c 에게전송하면, 그림 14(a) 와같이 m 개의 DNS Reply에대한패킷을발생된다. 따라서 Worst Case 발생패킷수는 O(2m) 이다. 이와반면에 mdns가 DNS 네임레졸루션에이용될때는그림 14(b) 와같이 DNS Query는네트워크모두링크로멀티캐스트되므로발생하는패킷수는네트워크링크개수인 E 이다. 또한 DNS Query를받은 Target Node n t 는 DNS Reply를노드 n c 로유니캐스트로전송한다. 따라서발생하는패킷수는두노드사이의홉거리인 m 이다. 따라서, Worst Case 발생패킷수는 O( E +m) 이다. 사용되는 CPU, Memory, Energy는 DNS 패킷수에비례한다. 따라서제안하는 DNSNA는 CPU, Memory 및에너지소모측면에서 mdns보다더효과적임을예측할수있다. (a) DNS Name Resolution at DNSNA (b) DNS Name Resolution at mdns 그림 14 다중링크네트워크환경에서 DNSNA 기법과 mdns 기법의트래픽비교 Fig. 14 Comparison between DNSNA & mdns for Traffic in a Multi-link Network
사물인터넷디바이스를위한 DNS 네임자동설정의설계및구현 1451 6. 결론 본논문에서는 IoT 디바이스의 DNS 네임을자동으로생성하고관리하는기법을제안하였다. 제안하는기법은 IoT 디바이스의증가하는추세로 IPv4의주소고갈의문제점에대응하여 IPv6 주소체계기반의 DNS 네이밍서비스에적합하다. 본논문은 DNS 네임을생성및등록하는과정에서는 IETF에서재정된프로토콜을이용했다. 이때유니캐스트로메시지를전달하여트래픽이적으며, DNS 서버를관리함으로써사용자는 DNS 서버로부터 IoT 디바이스의 DNS 네임목록을보고제어및모니터링을할수있다. 또한, 저사양 IoT 디바이스에적합하며댁내, 스마트그리드, 사무실, 쇼핑몰, 물류창고와같은거대한공간에서사용될수있다. 향후연구로제안하는기법인 DNSNA와 mdns를시뮬레이션에서구현해서대규모 IoT 네트워크환경에서의네임레졸루션을위해발생하는트래픽을정량적으로비교분석할예정이다. 또한 DNSNA와 mdns를스마트그리드노드에서운영할때소요되는에너지양도분석할예정이다. 아울러스마트폰, 태블릿 PC, 로봇청소기와같이이동성이있는 IoT 디바이스의 DNS 네이밍서비스를위한구현을할예정이다. References [1] J. Gubbi, R. Buyya, S. Marusic, and M. Palaniswami, "Internet of Things (IoT): A Vision, Architectural Elements, and Future Directions," Future Generation Computer Systems, Vol. 29, No. 7, pp. 1645-1660, Sep. 2013. [2] Gartner's 2014 Hype Cycle [Online]. Available: http:// www.gartner.com/newsroom/id/2819918 [3] S. Deering, R. Hinden, "Internet Protocol, Version 6 (IPv6) Specification," IETF RFC 2460, Dec. 1998. [4] P. Mockapetris, "Domain Names - Implementation and Specification," IETF RFC 1035, Nov. 1987. [5] S. Cheshire and M. Krochmal, "Multicast DNS," IETF RFC 6762, Feb. 2013. [6] T. Narten, E. Nordmark, W. Simpson, and H. Soliman, "Neighbor Discovery for IP version 6 (IPv6)," IETF RFC 4861, Sep. 2007. [7] J. Jeong, S. Park, L. Beloeil, and S. Madanapalli, "IPv6 Router Advertisement Options for DNS Configuration," IETF RFC 6106, Nov. 2010. [8] M. Crawford and B. Haberman, "IPv6 Node Information Queries," IETF RFC 4620, Aug. 2006. [9] P. Vixie, S. Thomson, Y. Rekhter, and J. Bound, "Dynamic Updates in the Domain Name System (DNS UPDATE)," IETF RFC 2136, Apr. 1997. [10] A. Conta, S. Deering, and M. Gupta, "Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification," IETF RFC 4443, Mar. 2006. [11] Apple Bonjour [Online]. Available: https://developer.apple.com/bonjour [12] S. Cheshire and M. Krochmal, "DNS-Based Service Discovery," IETF RFC 6763, Feb. 2013. [13] Jaehoon Jeong, Jungsoo Park, Hyounglun Kim and Kishik Park, "Name Service in IPv6 Mobile Ad-hoc Network," ICOIN 2003, Feb. 2003. [14] C. Bormann, "6LoWPAN-GHC: Generic Header Compression for IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs)," IETF RFC 7400, Nov. 2014. [15] Wi-SUN Allicance for Wireless and Smart Utility Networks (IEEE 802.15.4g) [Online]. Available: http:// www.wi-sun.org [16] P. Mockapetris, "Domain Names - Concepts and Facilities," IETF RFC 1034, Nov. 1987. [17] R. Droms, "DNS Configuration options for Dynamic Host Configuration Protocol for IPv6 (DHCPv6)," IETF RFC 3646, Dec. 2003. [18] S. Thomson, T. Narten, and T. Jinmei, "IPv6 Stateless Address Autoconfiguration," IETF RFC 4862, Sep. 2007. [19] A. Abdrabou and W. Zhuang, "Probabilistic Delay Control and Road Side Unit Placement for Vehicular Ad Hoc Networks with Disrupted Connectivity," IEEE Journal on Selected Areas in Communications, Vol. 29, No. 1, pp. 129-139, Jan. 2011. [20] AllSeen Alliance. A Leading Internet of Things Initiative [Online]. Available: https://allseenalliance.org [21] J. Jun, Y. Gu, L. Cheng, J. Sun, T. Zhu, and J. Niu, "Social-Loc: Improving Indoor Localization with Social Sensing," ACM SenSys, Nov. 2013. 이세준 2014년목포해양대학교정보통신공학 ( 학 사 ). 2014년 현재성균관대학교전자전 기컴퓨터공학 ( 석사과정 ). 관심분야는사 물인터넷, 차량네트워크, 사이버물리시 스템 정재훈 1999년성균관대학교정보공학 ( 학사 ). 2001 년서울대학교컴퓨터공학과 ( 석사 ). 2009 년 University of Minnesota 컴퓨터공학과 ( 박사 ). 2001년 2004년한국전자통신연구원연구원. 2010년 2012년 Brocade Communications 소프트웨어엔지니어. 2012년 현재성균관대학교인터랙션사이언스학과조교수. 관심분야는사이버물리시스템, 사물인터넷, 차량네트워크