ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • NCP(NAVER CLOUD SERVICE)로 클라우드 서비스 시작하기 - 0 (IP, Network Class, CIDR, Subnet 복습)
    Dahum Library/Web & Network 2024. 2. 14. 00:06

    NCP에서 클라우드 서비스를 이용하려면 먼저 VPC(Virtual Private Cloud)를 구축해야한다.

    VPC는 쉽게말하면 NCP라는 네이버에서 제공하는 거대 컴퓨터 네트워크망 안에서 고객에게 제공하는 프라이빗한 가상의 네트워크 공간을 말한다. 

     

    콘솔에서 VPC 생성 버튼을 누르면 아래와 같은 팝업에서 내가 사용할 네트워크의 이름과 IP주소 범위를 입력하게끔 나온다.

     

    여기서 VPC이름은 그냥 내가 사용할 이름을 입력하면 되고 IP 주소 범위는 내가 사용할 네트워크의 규모에 따라 적절히 입력해주어야 한다.

     

    사실 여기서부터 벌써 당황했는데 학부때 배웠던게 가물가물해서 다시 찾아본 내용을 덧붙인다...-_-;;

     

     

    IP(Internet Prococol)

    흔히들 말하는 IP는 (Internet Protocol)을 의미하고 '프로토콜'이란 규약을 말한다. 즉, '인터넷'이란 통신을 하기 위한 규칙이 IP이다. 또 우리가 알고있는 '인터넷'이라는 네트워크들의 연결체 안에서 각각의 기기가 갖고 있는 ID값을 IP주소(Internet Protocol Address)라고 한다. 흔히 우편물을 보내려면 그 집의 주소가 있어야 하고 이 때 '그 집의 주소'에 해당하는 역할을 하는게 IP주소라고 한다.

     

     

    Network Class

    다시, 인터넷(Internet)이란 이름에서 알 수 있듯이(Inter-net) '네트워크를 잇는 네트워크'이다. 인터넷은 '네트워크'라는 통신기기들의 연결체의 집합이다. 그리고 네트워크의 규모는 다양하기 때문에 규모에 따라 네트워크를 몇개의 클래스로 나눈것이 네트워크 클래스이다.

     

    그럼 왜 네트워크를 이렇게 클래스로 나누어놨냐?!

    생각해보자. 'IP주소'라는 통신기기가 인터넷에 참여하기 위한 고유 식별정보는 32비트로 이루어져있다.(xxx.xxx.xxx.xxx 형태는 사람이 인식하기 쉽게 바꾸어 놓은 형태)그럼 IP주소의 한도값은 2^32 = 4,294,967,296개인데, 처음 컴퓨터 네트워크가 만들어졌을 당시엔 이 숫자가 충분하다 생각했을지 몰라도 지금은 컴퓨터 뿐 아니라 핸드폰, IoT기기 등으로 인해 이 숫자는 턱없이 부족하게 됐다. 때문에 주민등록번호처럼 새로운 통신기기가 생산될 때마다 새로운 IP주소를 할당하는 대신 네트워크별로 할당할 수 있는 IP주소의 범위를 나누어주고 관리를 위임하는 형태가 되었다. 이를 서브넷팅이라고 한다. (subnet + ing). 구글 검색시 나오는 많은 블로그에서 서브넷과 서브넷 마스크 개념을 모호하게 표현하고 있어 확실히 정립하고자 한다. 서브넷, 서브넷팅은 말그대로 네트워크의 하위 네트워크를 지칭하거나 하위 네트워크로 나누는 것을 의미한다.(서브넷 마스크는 아래에 기술한다)

     

    그러니까 인터넷은 처음엔 '네트워크간의 네트워크'가 아니라 전체 통신기기들간의 하나의 네트워크가 맞았지만 점차 규모가 커지게 되면서 하위 네트워크를 가지는 계층구조로 발전했다 볼 수 있겠다. 그래서 처음엔 IP주소를 새로운 기기마다 할당했다면 그 후로는 점차 '네트워크'에 할당하게 됐다.

    그림1
    그림2. n은 네트워크, h는 호스트

     

    위의 그림1을 보면 Class A에 해당하는네트워크는 그림2에 따라 2^24개의 통신기기를 물고있을 수 있는 네트워크 인것이다. 그리고 Class A에는 이러한 네트워크가 256개가 있다. 반대로 Class C에 해당하는 네트워크는 2^8개의 기기만 가질 수 있고, 이러한 네트워크가 2^21개가 있는 것이다. 그래서 학교나 공공기관, 대기업같이 큰 규모의 네트워크는 상위 클래스의 IP주소를 할당받고 그 네트워크 하위에 많은 수의 호스트에 IP주소를 할당할 수 있도록 하고 규모가 작은 네트워크는 하위 클래스의 IP주소를 할당받게 되는 식이다.

     

     

    CIDR(Classless Inter-Domain Routing)

    만약 내가 네트워크를 구성하려고 하는데 이 네트워크는 2^8+1(=257)개의 컴퓨터로 구성되어야 한다. 그럼 어떤 클래스의 IP주소를 할당받아야 할까? C Class는 최대 256개만 할당할 수 있으니 B클래스의 IP주소를 할당받아야 할것이다. 그러나 이 순간 65,279개의 IP주소 자원이 낭비가 된다. (B Class의 IP주소 갯수는 2^16=65,536, 내가 필요한 IP주소 갯수는 257 --> 65536-257=65,279)

    이처럼 네트워크를 클래스별로 나누는건 사실 너무나 비효율적이다. 그래서 현재는 이러한 방식으로 네트워크를 나누지 않는다.

     

    이런 비효율이 발생하는 이유는 네트워크 클래스가 8비트 단위로 나누어지기 때문이다. C클래스가 너무 작으면 그보다 몇만개가 더 많은 B클래스로 가야하고 B클래스가 너무 적으면 이보다 1600만개가 더 많은 A클래스 네트워크로 가야한다;;;; (그림2 참조) 그럼 가장 쉽게 생각할 수 있는 대안은 네트워크에 할당할 비트수를 8개 단위가 아니라 더 작은 단위로 나누는 것이다. 이렇게 네트워크 클래스 단위로 네트워크를 나누지 않고 IP주소의 비트 한자리 한자리를 네트워크 프리픽스로 사용하여 더 작은 단위로 하위 네트워크로 나누는걸 서브넷팅(sub+net+ing) 그리고 그 하위 네트워크를 서브넷(sub+net)이라고 한다.

     

     

    Subnet과 Subnet Mask

    IP주소는 8자리 단위로 해당 네트워크의 클래스를 알 수 있다. 만약 192.168.0.0이란 주소가 있다면 앞의 두자리(192.168)은 B클래스의 네트워크 프리픽스, 뒤의 두자리(0.0)이 호스트를 나타내게 된다. 만약 어떤 기업의 본사가 192.168.0.0 이라는 네트워크 IP를 할당받았고, 두 개의 계열사에 반반씩 하위 네트워크로 잘라 나누어 주고 싶다면 어떻게 해야할까? 이런 서브넷팅을 위해 고안된 도구가 바로 서브넷마스크(subnet mask)이다. 

    그림 3

    그림 3 첫 행을 보면 오른쪽의 192.168.5.130 이란 IP주소를 2진법으로 나타내면 왼쪽과 같고, 그 아래 행에는 서브넷마스크라는 것이 있는데 이건 네트워크 프리픽스는 1로, 호스트부는 0으로 표기하여 IP주소와 AND 연산을 하기 위한 비트마스크이다.

    그림에 따르면 위의 192.168.5.130은 네트워크 프리픽스 길이가 24개인데, 원래 192.xxx 로 시작하는 IP주소는 B클래스이고 B클래스의 네트워크 프리픽스는 16자리 아니었나?? 기존 네트워크 클래스 방식을 따르자면 그렇지만 CIDR 방식으로 네트워크 프리픽스를 늘려버린 것이다. 그리고 이렇게 네트워크 프리픽스를 늘리는 행위는 곳 네트워크를 나누는 행위가 된다. 192.168.0.0이라는 네트워크 IP를 할당 받았을 때, 을 프리픽스로 하고 2^16(65,536)개의 호스트를 가질 수 있는 네트워크 1개(192.168.0.0 ~ 192.168.255.255)를 네트워크 프리픽스를 24개까지 늘림으로써, 이 네트워크 내에 2^8(256)개의 하위 네트워크가 만들어졌고(192.168.0.0 ~ 192.168.255.0), 각각의 네트워크는 256개의 호스트를 가지게 되는것이다.(192.168.xxx.0 ~ 192.168.xxx.255)

    그림 4

    위의 그림 4를 보면 아까전의 예시처럼 서브넷 마스크의 길이가 깔끔하게 8자리 단위가 아니라 26개인것을 볼 수 있다. 이를 IP주소와 AND연산을 시키면 네트워크 프리픽스가 192.168.5.128이 된다. 사실상 여기서부터는 옥텟으로 봤을 때 접두사의 의미가 사라진다.(바이너리로 봐야한다) 일단 서브넷 마스크의 1이 26자리니까 IP주소의 26자리까지는 네트워크를 표기하게 되고, 나머지 6자리는 호스트를 표기하게 된다. 따라서 이 네트워크는 192.168.5.128부터 2^6(64)개의 호스트를 가지게 된다. 그럼 192.168.5.191까지가 이 네트워크 범위이고 192.168.5.192부터는 다른 네트워크인것이다..!!

    그림 5

    그림 5를 보면 이렇게 CIDR방식으로 서브넷팅한 IP주소를 표기하는 방법이 나오는데, 맨 왼쪽 열의 주소들처럼 옥텟 IP주소를 적고 그 뒤에 '/[네트워크 프리픽스의 길이]'를 적어주는 식이다.

     

     

     

     

    이상으로 흐릿했던 IP주소 대역에 대해 살짝 복습하고 정리해봤다.. 새삼 학부때 배운거 정말 많이 까먹었구나 싶었다..

    NCP 이용하면서 네트워크를 직접 구성하다보면 잊었던것도 많이 복기하고 새로운것도 많이 배우게 될 것 같아 기대가 된다. 꼭 어떤 서비스를 잘 런칭하지 않더라도... 나머지 NAT, SSL VPN, Routing Table 구성 등도 차례차례 정리해서 올려야겠다.

    'Dahum Library > Web & Network' 카테고리의 다른 글

    Servlet Container란?  (0) 2020.03.15
    서버(Server) 제대로 알기  (0) 2020.03.14
    HTTP 제대로 알기  (0) 2020.03.13
    Servlet이란?  (0) 2020.02.11
    [정보보안]SSL(Secret Socket Layer)의 원리  (0) 2019.07.10

    댓글

Designed by Tistory.