OpenStack2013.03.01 21:39

클라우드 컴퓨팅이라고 하는 오픈소스 프로젝트인 "오픈스택(openstack)을 하다보면 네트워크 개념을 빼 놓을래야 빼 놓을수가 없다. 늘 항상 따라 나오는 개념이 바로 Network이다. 난 클라우드 컴퓨팅을 하면서, 늘 Network가 어려웠다. 그래서, 오늘은 그중에서도 Network Range에 대한 이야기를 써 보려고 한다. 다른 사람들도 나와 같은 어려움을 겪고 있을 것이기 때문에,... 하지만, 그 누구도 이런것 쯤은 다 알고 있는 개념이라고 생각을 하고 있고, 그 누구도 물어보지도 않고, 가르쳐주지도 않는다. 그래서, 오늘 터득하게 된 이 개념을 다른 사람들과 공유하고자 한다. 물론 내가 올린 글에 틀린 부분도 있을수 있겠지만 말이다.


오픈스택에서 네트워크를 설정하는 방법은 두가지가 있다. 

하나는 Nova-network을 사용해서 설정하는 방법, 또 다른 하나는 Quantum을 이용해서 설정하는 방법이다. 

이때 등장하는 용어 중에 Fixed IP Range와 Floating IP Range가 있다. 


Fixed IP Range

Virtual Instance를 생성할 때 할당해 주는 사설 IP 범위. 이 IP는 호스트 내부에서만 통신이 가능하다.


Floating IP Range 

Virtual Instance를 외부에서 접속할 수 있도록 할당해 주는 공인 IP 범위.



IP의 범위는 크게 다음과 같은 세가지 클래스로 구분이 된다.

 클래스 명

클래스 범위 

서브넷 마스크 

 서브넷마스크 Bit 수

호스트 Bit수 

사용가능 호스트 수 

 A Class

1.0.0.0 ~ 126.0.0.0 

255.0.0.0 

 8 Bit

24 Bit 

약 1,600 만개 

 B Class

127.0.0.0 ~ 191.0.0.0 

255.255.0.0 

 16 Bit

16 Bit 

약 65,000 개 

 C Class

192.0.0.0 ~ 223.0.0.0 

255.255.255.0 

 24 Bit

8 Bit 

 254 개


대표적으로 오픈스택을 설치할때 메뉴얼에 가장 많이 등장하는 Fixed Range 범위는 10.0.4.0/20,  10.0.0.0/24  이다. 

예제의 IP는 A Class에 해당되지만, 뒤에 나오는 /20은 서브네마스크 Bit 수를 의미하므로 B Class를 좀더 세분화했다고 할 수 있다. 


10.0.4.0 이라는 IP를 이진수로 표현하면 아래와 같다. 그런데 서브넷 마스크로 20 bit를 사용한다고 했으니 앞에서 부터 20 bit를 1로 채우면 그게 바로 서브네 마스크가 되는 것이다.


0000 1010 . 0000 0000 . 0000 0100 . 0000 0000  Network IP (10.0.4.0)

1111 1111 . 1111 1111 . 1111 0000 . 0000 0000  Subnet Mask (255.255.240.0)

-----------------------------------------  (And 연산)

0000 1010 . 0000 0000 . 0000 0000 . 0000 0000  Subnet (10.0.0.0)


여기서 사용되는 10.0.4.0의 서브넷 마스크는 255.255.240.0 이 되며, 서브넷은 10.0.0.0 이 된다. 

그리고, 호스트 IP 범위는 10.0.4.1 ~ 10.0.255.254 까지가 되는 것이다. 10.0.255.255는 왜 빼는거지? 10.0.255.255는 브로드캐스트용 주소라고 한다~!! 그렇게 되면 사용가능한 Network Size는 4,094 개가 되는 것이다.


그럼 이번에는 10.0.0.0/24 도 한번 더 해 볼까? /24는 서브넷 마스크 Bit수니까


0000 1010 . 0000 0000 . 0000 0000 . 0000 0000  Network IP (10.0.0.0)

1111 1111 . 1111 1111 . 1111 1111 . 0000 0000  Subnet Mask (255.255.255.0)

----------------------------------------- (And 연산)

0000 1010 . 0000 0000 . 0000 0000 . 0000 0000  Subnet (10.0.0.0)


10.0.0.0/24 의 네트워크 IP는 10.0.0.0 이고, 서브넷 마스크는 255.255.255.0, 서브넷은 10.0.0.0 이다.

이때 사용 가능한 호스트 IP 범위는 10.0.0.1 ~ 10.0.0.254 가 되며, 호스트 수는 254개이다.



이와 같은 공식을 거치면 우리가 할당해 주기 위한 Floating IP Range도 계산할 수 있다. 어렵게만 생각했던 네트워크 범위 할당 알고나니 별 것이 아니였다. 이젠 알고 쓰자~!!! ^^ 

Posted by 나리 짱!!! naleejang