2002 년한국멀티미디어학회추계학술발표논문집 VLSM을이용한효율적인서브넷 IP주소할당법 김동학*, 천성권**, 우매리*, 김종근* * 영남대학교컴퓨터공학과 ** 가톨릭상지대학컴퓨터정보계열 e-mail: donghak@yumail.ac.kr Effective subnet IP address allocation by using VLSM Dong Hak Kim*, Seong Kwon Cheon**, Mary Wu*, Chong Gun Kim* * Dept. of Computer Engineering, YeungNam University ** Division of Computer Information, Catholic Sangji College 요 약 IPv4 주소를네트워크에할당하어사용할때많은주소공간이낭비되고있다. 인터넷의규모가급성장하면서 IP 주소의고갈과더불어이런낭비를줄이는것은매우중요한일이다. IP 주소를효율적으로사용하기위해 VLSM(Variable Length Subnet Mask) 의기술이도입되었는데, 이는하나의네트워크내에서여러개의서브넷마스크를사용하여서로다른규모의서브넷을생성해서사용하는기법이다. 그러나, 여러개의서브넷마스크와서로다른규모의서브넷들이한네트워크내에존재하는것은네트워크설계나관리상에많은어려움도있다. 본논문에서는 VLSM을사용할수있는환경에서각서브넷에규모에맞는 IP 주소를할당하도록하여, IP 주소낭비를최대한으로줄이고관리측면에서도더욱효과적인기법을제안한다. 1. 서론 현재 IPv4 주소체계는 5개의주소클래스를사용하여네트워크규모나용도에대응되도록설계되었다. 이러한주소체계는인터넷의초기단계에는문제가없었으나, 인터넷의규모가급성장하면서여러가지약점이드러나고있다. 현재 IP 주소체계의가장큰약점은주소가부족함에도불구하고 IP 주소의낭비가많다는것이다. IP 주소낭비를줄이기위해 VLSM(Variable Length Subnet Mask) 을사용한주소할당기법이제안되었다. -1-
이것은네트워크내에서브넷을생성할때단일서브넷마스크를사용하는것이아니라여러 개의서브넷마스크를사용해서서로다른 IP주소크기의서브넷들을생성함으로써주소공 간낭비를줄이게한다. 그러나, VLSM은여러개의서브넷마스크를사용하기때문에서브 넷팅과정이매우복잡하고, 관리차원에서도 IP 주소충돌이발생할가능성이있고, 동일한 주소영역을포함하는서브넷들이생성되는둥의문제점들을일으킨다. 또한복잡하여많은 관리자는서브넷마스크와서브넷팅을회피하는경향이있다. 본논문은 VLSM 기술기반으로더효율적인서브넷팅를통하여주소공간낭비를줄이고, 생성되는서브넷들에대한효과적인관리기법을제시한다. 논문의구성은 2장에서관련연 구를소개하고, 3 장은제안하는알고리즘에대해서설명하고, 마지막으로 4장에서결론및 향후연구과제를제시한다. 2. 관련연구 2.1 IPv4 주소체계현재인터넷은 32 비트의 IP 주소체계를사용하고있으며, IP주소는또네트워크식별자 (netid) 와호스트식별자(hostid) 로구별된다. 네트워크식별자는자신이포함되어있는네트워크를나타내고, 호스트식별자는네트워크내각각의호스트혹은라우터들을나타낸다. 네트워크를지정하는데사용되는주소비트의수와호스트를지정하는데사용되는주소비트의수는주소의 prefix 길이에따라변할수있다. prefix길이를결정하는방법은주소클래스를사용하여바이트단위로결정하는방법과 CIDR(Classless inter-domain Routing) 주소마스크를사용해서비트단위로결정하는두가지방법이있다. CIDR주소를적는표기법은 address/prefix-length 이고, prefix-length 는주소의네트워크부분의비트수이다. 호스트주소 165.229.192.33과마스크 255.255.0.0은 165.229.192.33/16 라고적는다. 여기서 165.229 는네트워크주소, 192.33은호스트 ID 를나타낸다. [RFC 1878] 에는 32개의사용가능한모든prefix 값이나열되어있다. 2.2 서브넷마스크와서브넷 IP 주소체계는네트워크부분과호스트부분으로나눈다. 그러나, 이두단계의계층구조만을 이용해현재복잡하고다양한네트워크구성에적응하기에충분하지못하다. 예를들어, B 클래스주소를가진기관은 6만 5천여개의호스트를가진큰네트워크를하나의네트워크 로사용하게되므로, 서브넷의개념을도입하지않으면, 모든호스트는같은레벨로존재하 게된다. 이런문제를해결하기위해하나의네트워크를여러개의서브넷(subnet) 이라는작은네트 워크로나누는서브넷팅방법이있다. 서브넷은서브넷마스크(Subnet Mask) 에의해서생 성된다. 서브넷마스크는일반주소마스크와비슷한포맷을가지게된다. 32비트의형태를 가지면서연속되는 1인비트와연속되는 0 인비트의조합으로구성된다. IP주소와서브넷 마스크를비트마스킹을수행함으로써서브넷팅이수행되는데, 앞쪽의연속적인 1인비트부 분은서브넷식별자(subnetid) 를생성한다, 그리고, 뒤쪽연속적인 0인부분은새롭게지정 된호스트식별자(hostid) 를나타낸다. -2-
여기서, 보통서브넷식별자가모두 0이나모두 1인두서브넷은사용하고있지않고있으나, RFC 1812 Requirement for IP Version 4 Routers에서는이런두서브넷은합법적이고모든라우터가지원해야한다고명시했으며, 현재라우터들도거의모두지원하고있다. 그림 1은 B클래스 IP 주소를서브넷마스크 255.255.255.0을적용해서서브넷팅하는과정을보여준다. 그림 1 서브넷마스크를사용한비트마스킹 현재대부분의 A 클래스나 B 클래스주소를할당받은기관은내부적으로서브넷팅을수행해서여러개의서브넷으로나누어사용한다. 그러나, 하나의서브넷마스크를사용하므로크기가모두동일하다. 즉, 서브넷당호스트수는동일하다. 2.3 VLSM(Variable Len8th Subnet Mask) 한네트워크내에단일서브넷마스크를사용하는것이아니라여러개의서브넷마스크를사용하는기술을 VLSM(Variable length Subnet Mask) 이라한다. 이기술을사용하여하나의네트워크에서서로다른주소크기를가지는서브넷을생성할수있다. 그림 2 다양한주소크기가필요한서브넷예 그림 2는 B 클래스네트워크내에 VLSM을이용해서다양한주소크기에서브넷을할당하는예를보여준다. -3-
그림에서서브넷 123,, 은라우터와라우터사이 Point-to-Point 시리얼연결이기에두개 의 IP 주소가필요하므로, 서브넷마스크 255.255.255.252를적용해서서브넷주소와브로 드캐스트주소를포함한 4 개의호스트가들어있는작은서브넷을생성시켜할당한다. 그리 고, 서브넷 4에는서브넷마스크 255.255.255.128을적용시켜호스트수가 128개인서브 넷을할당하고, 서브넷 5는 255.255.255.129를적용해서호스트수가 256개인서브넷을 할당한다. 표 1 3개의서브넷마스크를사용한서브넷팅 표 1 은 165.229.0.0인 B 클래스네트워크에 3개의서브넷마스크를적용해서서브넷팅한것이다. 네트워크 165.229.0.0를서브넷마스크 255.255.192.0 를사용하여서브넷팅하면, 165.229.0.0, 165.229.64.0, 165.229.128.0, 165.229.192.0 4 개의서브넷을생성한다. 그리고, 서브넷마스크 255.255.224.0 를사용하여서브넷팅하면, 165.229.0.0, 165.229.32.0, 165.229.64.0, 165.229.96.0, 165.229.128.0, 165.229,160.0, 165.229.192.0, 165.229.224.0 8 개의서브넷을생성한다. 마찬가지로서브넷마스크 255.255.240.0를사용하여서브넷팅하면, 165.229.0.0, 165.229.8.0 등 32 개의서브넷을생성한다. 그러나, IP 주소들이서로충돌되지않기위해, 표 1 에서서브넷마스크 255.255.192.0를적용해서생성된서브넷중 165.229.0.0 를이미사용했다면, 서브넷마스크 255.255.224.0에의해생성된서브넷중 165.229.0.0와 165.229.32.0 를사용해서는안된다. 그리고서브넷마스크 255.255.240.0에의해생성된서브넷중 165,229.0.0로부터 165.229.56.0까지의 8개의서브넷들도모두사용할수없다. 다시말해서, 각각의서로다른서브넷마스크를적용한서브넷들을동시에사용하려면, 사용하는서브넷들사이서로충돌되는주소가있어서는안된다. 그러므로, 네트워크내사용하는서브넷마스크가많으면많을수록서브넷생성과정이나관리상에서많은문제점을초래하게된다. 일반적으로 VLSM을사용하여서브넷을구성할때서브넷마스크를보통 3개에서 5 개를초과하지않는다. 이렇게단몇개의서브넷마스크를 사용하는경우 IP 주소낭비문제를어느정도해결하긴했지만, VLSM의기능을최대한 -4-
활용하지는못하고있다. 3 효율적인서브넷할당알고리즘제안 본논문에서제안하는알고리즘은위에서제시되는문제점들을극복하면서, 사용가능한서브넷마스크들을모두다도입해서 IP 주소낭비를최대한줄이는방안을제시한다. 먼저. 각각의서브넷마스크에의해생성될수있는모든서브넷들의정보들을데이터베이스로만들어둔다. 그리고, 매번서브넷을할당할때마다그정보를추출하고, 다음에다른서브넷마스크를사용하는서브넷들을찾아가면서할당한서브넷과 IP충돌이있는서브넷이있다면 사용불가 라고표기를해둔다. 그림 3 서브넷마스크에의해생성되는서브넷정보 그림 3는 B 클래스네트워크를예제로각각의서브넷마스크에의해생성되는서브넷정보를간략하게보여준다. 처음 NIC 로부터할당받은클래스 B 네트워크는그림과같이서브넷마스크가 255.255.0.0 이고전체를하나의네트워크로사용한다고볼수있다. 그리고, 만약서브넷마스크를 255.255.128.0로적용한다면 2개의서브넷으로분할해서사용할수있고, 서브넷마스크를 255.255.192.0로적용한다면 4개의서브넷으로분할해서사용할수있다. 마찬가지로서브넷마스크를 255.255.255.252로적용한다면 4개의호스트주소가들어있는서브넷을16384 개로분할해서사용할수있다. 그림 4 서브넷할당 1단계 -5-
그림 4와같이만약서브넷마스크 255.255.224.0를사용하는서브넷을할당했다면서브넷마스크 255.255.192.0, 255.255.128.0, 255.255.0.0 를사용하는처음서브넷들은모두 사용불가 라고표기를해준다. 그리고, 서브넷마스크 255.255.240.0를사용하는처음두서브넷도사용할수없고서브넷마스크 255.255.248.0를사용하는처음네개의서브넷도사용할수없다. 마찬가지로, 서브넷마스크 255.255.255.252를사용하는처음 1024 개의서브넷까지모두찾아가면서 사용불가 라고표기를해준다. 그림 5 서브넷할당 2단계 그림 6 서브넷할당 3단계 그림 5는계속해서서브넷마스크가 255.255.192.0인서브넷을하나더할당한결과를보여주고, 그림 6은서브넷마스크가 255.255.240.0 인서브넷 4개더할당한결과를보여주고있다. 각각의서브넷이갖고있어야할정보는아래몇개의필드들이있다. 서브넷마스크, 서브넷주소. 호스트시작주소와끝주소. 브로드캐스트주소, 할당여부 ( allot = 0 or 1 ), 사용여부 ( use = 0 or 1 ). -6-
초기화에서각각의서브넷필드들을미리입력해준다. 서브넷마스크, 서브넷주소, 호스트시작주소와끝주소, 브로드캐스트주소를먼저입력해두고, 할당여부는변수 allot 하나를두고값이 0 이면할당가능한서브넷으로, 1 이면이미할당한서브넷으로한다. 사용여부도하나의변수 use를사용해서 0 이면사용가능한서브넷으로, 1이면이미사용된것으로정의한다. 초기 allot 값과 use 값은할당가능하고사용가능한값으로모두 0 으로셋팅한다. 매번서브넷을할당할때마다먼저사용할서브넷마스크를계산한다. 그리고, 해당서브넷마스크를사용하는서브넷들중에서 use 값을체크해가면서그값이 0이면해당서브넷정보를추출해서할당하고 allot값과 use 값을모두 1 로반환한다. 그리고, 윗단계즉, 서브넷마스크의 CIDR 값이작은서브넷들중에서할당한서브넷의네트워크주소와같은서브넷들을찾아 use의값을 1 로반환한다. 그리고, 아랫단계서브넷들도찾아가면서서브넷주소가같은서브넷으로부터시작해서브로드캐스트주소가같아질때까지의연속되는서브넷들을찾아서 use의값을모두 1 로반환한다. 각서브넷들의초기화가끝난후매번서브넷들을할당하는과정을알고리즘으로표현하면다음과같다. 1) 사용할서브넷당호스트수에의해서브넷마스크계산 2) 해당서브넷마스크를사용하는서브넷들중 If ( use == 0) allot=1; use=1; 해당서브넷 DB 호출; 윗단계서브넷 : If ( identify network address ) use=1; 아랫단계서브넷 : if ( identify network address ) do { use=1; } while ( identify broadcast address ); 제안하는알고리즘에의해서브넷을할당하는경우에주소낭비문제를대대로줄일수있다. 그리고, 기존의몇개만의서브넷마스크를도입해서서브넷들을한꺼번에분할해서사용하는것보단, 원할때마다서브넷을생성시킴으로써불필요한고정크기서브넷이미리생성되는것을방지할수있고, 고정된크기가아닌원하는호스트수만큼의서브넷생성이가능하므로편리하다. 그리고서브넷을할당할땐시작하는 IP주소로부터차례로할당하기때문에남은사용가능한 IP 주소를쉽게확인할수가있고, 새로생성할수있는서브넷의최대호스트수를알수가있다. 그러나, 네트워크내사용되는서브넷마스크의수가많으므로기존의단일혹은적은수의서브넷마스크를사용하는경우와대비해서라우팅이훨씬복잡해지는경향이있다. 또한네트워크내다양한크기의서브넷들이동시에존재하므로각서브넷의정보에대한관리를철저히해야만에러가생겼을경우에복구가쉽게이루어질수있다. 4. 결론및향후과제 -7-
본논문에서는 VLSM 을이용한효율적인서브넷할당알고리즘을제안하였다. VLSM을사용하여네트워크에서브넷팅을수행할때 IP주소낭비를최대한줄이면서관리자들이보다쉽게서브넷팅을수행하기위한방법론을제시했다. 이러한서브넷팅에따른네트워크효율성평가와네트워크관리시스템의실제구현등의연구과제가추후수행되어야한다. 참고문헌 [1] Craig Hunt, "TCP/IP Network Adminstration", O'reilly, 1999 [2l Robert Wright. "IP Routing Primer", Cisco Press, 1998 [3] Karanjit S, Siyan 지음, 이도희옮김, "TCP/IP 완전정복" 정익사, 1997년 [4] T. Pummill, B. Manning. "http://www.ietf.org/rfc/rfc1878.txt" RFC1878, December 1995 [5] F. Baker, Editor. Cisco Systems "http://www.ietf.org/rfc/rfc1812.txt" RFC1812, June 1995 [6] J. Mogul, J. Postel,"http://www.ietf.org/rfc/rfc0950.txt" RFC0950, August 1985 [6] Ciso Tip Guide, "http://forum.kjist.ac.kr/data/router_10.html" [7] Avantages du VLSM, "http://ariane.rio.net/textes/routage/chap3.htm" [8] CIDR, "http://user.chollian.net/~son6971/internet_address/ch5/ch5.htm" -8-