crossorigin="anonymous"> $(function(){ $('.article_view').find('table').each(function (idx, el) { $(el).wrap('
') }); $('img[alt="N"]').each(function(){ $(this).replaceWith('

N

') }); });

새소식

고수만/네트워크

IP주소와 CIDR에 대하여

  • -

누군가에서 사이더에 대해서 질문을 받았을 때 굉장히 당황한 적이 있다.

'어디서 들어봤는데 그게 뭐지?' 

CIDR는 

Classless Inter-Domain Routing 의 약자로 클래스 없는 도메인 라우팅 기법이라는 뜻이다.

그럼... 원래는 클래스가 있었다는 뜻인가?

그렇다! 기본적인 IP주소 체계는 클래스를 나누어 주소를 구현하였다.

 

여기서 IP주소에 대해서 알아야 하는데 IP주소(인터넷 프로토콜 주소)는 MAC Address를 기반으로 한 네트워크 주소이다.

일상생활로 생각해보면 각자의 집주소로 정도로 생각하면 될듯하다.

 

이러한 IP주소는 여러 버전 중에 ipv4는 인터넷 프로토콜의 4번째 판이며 전세계가 쓰기 시작한 첫번째 인터넷 프로토콜이다.

현재는 IPv6가 대중화 되고 있다?(아직 대부분은 IPv4 사용 중)

 

대표적인 차이는 지원하는 주소의 수다.

IPv4는 32비트로 이루어진 숫자로 2의 32승만큼의 주소를 제공하였다. 그러나 매우매우 큰 수인 2의 32승의 주소도

부족하게 되었다. 왜냐하면 한 사람당 핸드폰이나 pc를 하나만 있는게 아닌것 처럼 많은 기기들이 네트워크가 대중화되어

보급되었고 그만큼 많은 주소가 필요해졌기 떄문이다.

 

이런 한계성 때문에 등장한 것이 IPv6이고 128비트를 지원 2의 128승의 수 만큼 주소를 지원한다.

심심하면 2의 128을 계산해보길 바란다. 너무 큰수라 일반적으로 사실상 무한하게 제공한다는 이야기가 나온다.

 

아무튼 ipv4의 32비트 주소체계는 이렇게 쓰인다

 

00000000 . 00000000 . 00000000 . 00000000 (총 32비트)

 

이는 2진수로 10진수로 나타나면 0.0.0.0 으로 나타낸다

8비트씩 나누어 표시하고 .으로 나눈다.

8비트는 옥텟이라고 부르며 십진수로 255까지 표현가능하다.

근데 왜 255일까? 2의 8승이 256이다 ㅎㅎ

0~255까지 표현하여 256개 표현이 가능하기 때문이다.

즉 0.0.0.0 부터 255.255.255.255 까지 표현이 가능하다는 것이다.

 

0.0.0.0(사람이 읽는 것= 10진수) = 00000000 . 00000000 . 00000000 . 00000000 (기계가 읽는 것 = 2진수)

 

이해가 되는가?  이 부분들이 네트워크 부와 호스트 부로 나뉘게 되는데

그 전에 언급하고 넘어 갈 것이 있다.

 

공인IP와 사설IP이다.

  • Network Address:그룹(네트워크 를 식별하기 위한)
  • Host Address: 개인(네트워크의 호스트 컴퓨터를 식별하기 위한 것)

공인 IP와 사설 IP는 이름 그대로 공인된 주소와 사설 주소를 의미하는데

쉽게 설명하자면 우리는 모두 KT나 SKT, LG와 같은 인터넷 프로바이더를 이용하여 인터넷에 가입하여

접속한다.

 

이런 인터넷 프로바이더는 공인IP를 제공하여 준다. IP가 전세계가 쓰기 떄문에 세계엔 무수히 많은 인터넷 프로바이더가 존재할 것이다.

각 프로바이더는 공인IP를 제공받어 우리에게 제공하는데 이걸로는 우리가 소유한 많은 디바이스를 커버할 수 없다.

따라서 우리는 공인된 주소에서 다시 사설IP를 제공 받아 쓰는 것이다.

 

참고로 네이버에 공인 ip를 치면 내가 부여받은 공인 ip를 볼수 있다. ㅎㅎ

 

이런 느낌이다.

 

쉽게 생각해보면 여러분이 kt를 통해 라우터(공유기)를 설치하면 공인 아이피 하나를 배당받고 그 공유기에 여러 기기를 연결하여

사용하면 사설 ip를 받아 사용하는 것이다.

 

다시 이야기로 돌아오면

ip주소는 네트워크 부와 호스트 부로 나뉘게 된다.

 

기존의 원래 방식을 이용하여 클래스 별로 나누게 되면 

 

  • A Class0xxxxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx
    Network Address Host Address Host Address Host Address
  • B Class10xxxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx
    Network Address Network Address Host Address Host Address
  • C Class110xxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx
    Network Address Network Address Network Address Host Address

 

이런 식으로 나뉘게 된다. 

 

즉  A 클래스는 첫번쨰 8자리까지 네트워크 주소로 쓰이고 나머지 24자리를 호스트 부로 할당하여 제공이 가능하다.

B는 16자리까지 네트워크 주소 16자리는 호스트 부로 사용이가능

C는 24자리 네트워크 8자리 호스트 부

D와E 는 멀티캐스트 용과 연구 용으로 언급하지 않겠다.

 

그런데 이렇게 클래스별로 나누면 누가 보아도 유동성이 부족해 보인다. 

네크워크 주소는 계층적으로 네트워크가 어느곳을 거처 올 것인가의 정보를 포함하고 있고 호스트 부는 각각 제공되는 부분이 되는데

결국 제공되어야 하는 호스트부가 클래스에 고정되어 정해지기 때문에 낭비가 심했다고 한다.

 

그래서 우리는 뒤에 cidr를 붙여 어디까지를 네트워크 주소부로 볼 것인가의 개념을 추가하게 되었다.

 

 

위의 주소를 보자

143.7.65.203를 보여주고 있다.

여기에 뒤에다 사이더 값을 부여해주면 어디까지 호스트 부로 쓸수 있는지를 알수 있게 되는 것이다.

143.7.65.203/22라고 하면 앞에서부터 22번쨰 비트까지는 네트워크 주소로 사용되고 위에 표시된 10자리는 호스트 부로

할당되어 사용될 수 있는 것이다.

 

만약 143.7.65.203/10으로 한다면? 앞자리 10까지만 네트워크로 사용하고 나머지를 호스트부로 사용할 것이다.

클래스로 정하여 네크워크를 나누는 것보다 훨씬 유동성이 있어졌다.

 

이렇게 우리는 ip주소가 어떻게 이루어져 있는지 알수 있게 되었다

흔히 ip주소를 찾을 떄 커맨드 창이나 터미널에 ipconfig를 쳐서 화면을 보게 되기도 하고

아니면 인터넷 문제가 생겨 인터넷 업자에게 전화를 걸어 해결을 요청할 때

이것저것 하면서 ip정보를 보게 된다.

거기서 보는 IP주소는 그냥 부여된것이 아니라 이러한 내용들이 숨어있다는 것을

 

알아두자. 

 

 

 

 

 

 

VPC의CIDR블록의 사용이유와 설정방법 | DevelopersIO

VPC를 처음 만들기 시작하면 CIDR block을 설정하시오 라는 칸이 있습니다. 처음 이부분에 막혀서 VPC를 생성하지 못하고 있으신 분이 있다면 이 글을 보면 도움이 될것이라고 생각합니다.

dev.classmethod.jp

 

 

[네트워크] CIDR이란?(사이더 란?)

오늘은 CIDR에 대해서 설명해보도록 하겠습니다. 네트워크 설계를 하면서 가장 많이 접하게 될 개념이 CIDR입니다. 사이더라고 부릅니다. CIDR의 full name은 Classless Inter-Domain Routing 으로 클래스 없는

kim-dragon.tistory.com

 

 

IPv4 - 위키백과, 우리 모두의 백과사전

IPv4는 인터넷 프로토콜의 4번째 판이며, 전 세계적으로 사용된 첫 번째 인터넷 프로토콜이다. 과거에 인터넷에서 사용되는 유일한 프로토콜이였으나 오늘날에는 IPv6이 대중화되었다. IETF RFC 791(1

ko.wikipedia.org

 

Contents