반응형

 

안녕하세요. 오늘은 IP 주소체계와 클래스에 대해 알아보려고 합니다.

 

먼저 IP주소란? 흔히 알고있는 ip주소의 정의는 인터넷상에 있는 컴퓨터의 고유한 주소로, 이 주소를 바탕으로 인터넷상의 한 컴퓨터에서 다른 컴퓨터로 데이터를 주고받을 수 있습니다.

 

이 IP 주소는 크게 IPv4(IP버전4), IPv6(IPv6)로 나뉩니다.

 

IPv4는 X.X.X.X의 형태입니다. 각 X에는 0부터 255까지의 숫자가 올 수 있기 때문에 총 IP주소의 개수는 256를 네번 곱한 약 43억개로 이용할 수 있습니다. 현 시점 전 세계 인구가 70억정도인 점을 감안해볼 때, IPv4의 주소체계는 수량적으로 한계가 있습니다. 그렇기 때문에 미리 대비를 하여 새롭게 만든 주소체계가 바로 IPv6입니다. 이미 오래 전부터 대비가 되어 있었지만 아직도 우리는 IPv4를 사용하고 있습니다. 기술이 발달해서 제한적인 버전4의 주소체계 내에서도 IP를 구분할 수 있는 방법들이 생겨서, 기존의 주소체계를 유지할 수 있게 되었습니다. 버전6으로 넘어가지 않는 이유는 여러이유가 있겠지만, 이미 만들어진 전 세계의 주소체계를 전부 다 옮기기에 가장 큰 문제는 바로 '돈'입니다. 새로운 체계를 사용하기 위해선 장비도 새로 바꿔야 하고 시간적으로나 경제적으로 많은 자원이 필요하기 때문에 기존의 방식을 사용하고 있습니다.

 

어쨋거나 IPv4를 사용함에 있어서 약 43억개나 되는 IP주소를 체계없이 사용하게 된다면 많은 혼란이 올 것입니다. 그렇기 때문에 클래스 주소 체계의 필요성이 대두됩니다.

 

 


 

 

IP주소의 클래스는 총 A~E클래스로 나뉩니다. 각 클래스는 네트워크 구분자와 호스트 구분자로 구성되어 있습니다.

 

* 네트워크 구분자 : 처음 비트를 구분자로 사용(X.X.X.0)

  클래스A(X.0.0.0) : 8비트, 클래스B(X.X.0.0) : 16비트, 클래스C : 24비트(X.X.X.0)

 

* 호스트 구분자 : 네트워크 구분자로 할당되지 않은 나머지 부분

  각 네트워크에 연결된 단말기를 구분하는 역할을 함.

 


 

https://wogh8732.tistory.com/30

 

 

인터넷 주소체계는 인터넷 망에서 컴퓨터간의 통신을 위한 유일한 논리적인 주소를 의미합니다. 숫자를 이용해서 32비트의 주소 체계를 사용합니다. 위의 표에서 범위를 보면서 이해할 수 있습니다. X.X.X.X라는 ip 주소가 있다고 했을 때 하나의 X는 1byte, 즉 8bit입니다. 그렇기 때문에 이진수 표현들을 각각 계산해놓은 범위가 0~126, 128~191과 같은 범위로 정리되어 있습니다.

 

전공자들이나 시험을 보는 사람들은 이걸 다 외어야 하나, 실무에서 쓸 때가 있을까? 하는데, 처음 시작하는 8비트에 따라서 무슨 클래스인지 구분이 가능합니다. 이 구분은 실무에 들어가서 고객사에 방문하거나 IP주소를 확인할 때 무슨 클래스에 있는지 확인정도는 할 수 있어야한다고 합니다.

 

연구실에서 무작정 우분투를 써야만 했을 때 ifconfig를 쳤을 경우 ip주소가 공인IP인지 사설IP인지 헷갈리고 개념이 안 잡히는 적이 너무 많았는데, 이번에 공부를 하면서 그 차이점도 알게 되었습니다. 10으로 시작하는 경우, 192로 시작하는 경우에 따라서 공인/사설 ip로 구분하는 줄만 알았는데 그게 아니어서 정리해봤습니다.

 

 

* 공인IP

공인ip는 전 세계에서 유일하게 쓸 수 있는 ip입니다. 그렇지만 ip주소체계에서 모든 기기에 할당하기에는 개수가 부족하죠. 한 사람당 컴퓨터를 2대이상 가지고 있는 경우도 있으니까요. 한 사람당 하나의 ip주소로 할당하기에는 컴퓨터, 태블릿pc, 노트북, 핸드폰 등 인터넷이 가능한 모든 기기에 ip주소가 사용되기에 문제가 됩니다.

 

이러한 ip주소 부족 문제를 해결하기 위해서 등장한 것이 바로 사설ip입니다.

 

 

* 사설IP

한 네트워크에 속한 사용자들끼리만 인식할 수 있는 임시ip주소를 사설ip라고 합니다. 같은 네트워크 내에서 홈페이지를 만들어 서비스 또는 파일 주고받기도 가능하지만 이 네트워크망을 벗어나면 사설 ip주소를 그대로 사용할 수가 없습니다.

 

예를들어 한 회사에서 사용하고 있던 192.168.100.3이라는 주소의 ip가 외부에 나가게 되면 그대로 사용할 수 없게됩니다. 그 대신 회사 공인 ip주소 일련번호를 붙여서 사용할 수 있습니다. (ex. 192.168.100.3:34001) 이런 식으로 뒤에 일련번호를 붙입니다. 여기서 34001은 사용중이던 컴퓨터에 대한 고유번호로, 회사에 설치된 장비에 기억됩니다.

 

반대로 외부 네트워크에서 내부 네트워크로 들어오게 될 경우도 있는데, 위에서 언급한 회사에 설치된 장비를 통해 다시 사설 ip로 변환하는 작업이 필요합니다. 공인ip로 탈바꿈하는 과정에 NAT(Network Address Translation)라는 기술을 쓰게되는데 이 부분도 함께 공부해보면 좋을 것 같습니다.

 

사설ip의 장점은 같은 네트워크를 사용하는 수십, 수백명의 사람들이 하나의 공인 ip로 인터넷을 쓸 수 있게되는 점입니다. 현재 우리는 흔히 쓰고있는 공유기라는 장치를 통해서 이 방법을 이용하고 있습니다.

 

 


 

 

* 특수 IP 주소 목록

다음으로는 특수IP주소 목록에 대한 설명입니다. 이걸 진작 인식하고 있었더라면 회사에서 ip설정할 때 고생을 덜 했을 것 같다는 생각이 드네요. A부터 E까지의 클래스가 있는데, 거의 A~C까지의 클래스를 주로 사용하기는 합니다. 그 클래스 안에서도 사설ip주소로 사용하거나 특수한 목적으로 사용하는 ip주소에 대한 범위가 정해져있는데, 이 부분을 알고있으면 나중에 내가 이용하고 있는 이 ip주소가 사설주소인지 공인 주소인지 쉽게 알아볼 수 있습니다.

 

- 0.0.0.0~0.255.255.255

어떠한 클래스에도 소속되어 있지 않고 특정 ip주소 대역을 지정하는 데 사용합니다. 0으로 시작하는 주소는 아예 안 쓴다고 보면 됩니다.

 

- 10.0.0.0~10.255.255.255

위의 표에서 보시면 1~127까지는 클래스 A에 속한다는 것을 알 수 있습니다. 그런데 10으로 시작하는 ip주소는 그 안에 속하기는 하나, 사설ip주소로만 사용하는 주소입니다. 저는 처음에 이 10으로 시작하는 주소가 공인ip주소인 줄 알고 우리 회사에서 B클래스 ip주소를 사용하는건가? 돈이 많나? 라고 생각했었습니다. 여러분들은 이런 착오는 하지 않으시길 ㅎㅎ..

 

- 127.0.0.0~127.255.255.255

마찬가지로 127로 시작하는 ip주소는 클래스 A에 속하지만 자신의 컴퓨터와 관련된 목적으로만 사용하는 주소입니다. 이 중에서도 127.0.0.1이라는 주소는 항상 자기 자신의 컴퓨터를 가리키는 역할을 하며, 이것을 loopback이라고 말합니다. 리눅스에서 ifconfig 입력 후 확인되는 lo:로 시작하는 정보에 보면 항상 127.0.0.1이라고 적혀있는 것을 볼 수 있었는데, 이 lo가 '로'가 아닌 'loopback'이라는 것에 대해 처음 알게 되었습니다 ㅠㅠ..유레카

 

- 169.254.0.0~169.254.255.255

ip를 따로 지정하지 않은 상태에서 ip 자동 구성이 실패했을 때 사용한다고 합니다. 이것은 일하면서 접해본 적은 없네요.

 

- 172.16.0.0~172.31.255.255

클래스 B에 속하지만 사설 ip주소로만 사용합니다.

 

- 192.168.0.0~192.168.255.255

클래스 C에 속하지만 사설 ip주소로만 사용합니다. 192.168.~는 자주 봤던 ip주소 유형인데, 거의 왠만한 곳에 다 있는 공유기에서 이 주소형태를 주로 띈다고 들었던 것 같습니다.

 

사실 처음에는 클래스별로 공인ip와 사설ip가 나뉘는 것인가? 하는 생각이 있었는데, 각각의 개념을 정리하고 나서 보니 각 클래스 내에서도 사설ip 대역으로 사용하는 주소가 있다는 사실을 새롭게 정립하게 되었습니다. 특수형태의 ip주소 목록에는 또 아래와 같은 주소들이 있습니다.

 

-255.255.255.255

이 주소는 제한된 브로드캐스트라는 의미를 갖는 ip주소입니다.

 

-클래스D와 클래스E에 해당하는 주소

공인ip 주소로 사용되지 않고, 표에서 알 수 있듯 각각의 용도가 따로 있습니다.

 

* 모든 클래스 내의 ip주소 범위 중 공인ip주소로 사용이 불가능한 ip주소 3가지

아래의 주소는 이미 fix된 주소이기 때문에 공인ip주소로 사용할 수 없습니다.

 - 가장 첫 번째 ip주소 : 네트워크 주소

 - 가장 마지막 ip주소 : 브로드캐스트 주소

 - gateway 주소

 

 

* 서브넷 마스크

서브넷 마스크도, 고정ip설정을 할 일이 있어서 공부를 했었다가 개념이 잘 안잡혔던 기억이 납니다. ip주소 뒤에 /26이라는 게 적혀있어서 뭔지 하나도 몰랐는데 이번에 알게되었네요.

 

A~E까지 총 5개의 클래스로 구분되는 이 IP주소 체계만으로는 IP주소를 세분화하여 관리하기 불가능합니다. 그렇기 때문에 IP의 낭비를 줄이기 위해 등장한 개념이 바로 서브넷 마스크입니다.

 

서브넷 마스크는 클래스 A, B, C에서 호스트 부분을 다시 서브넷과 호스트로 구분하는 역할을 합니다. 클래스 C로 예를 들어보도록 하겠습니다.

 

 

출처 : CCCR

 

클래스 C에서 마지막 8비트의 호스트 부분을 2비트, 6비트로 구분하였습니다. 제가 지난번에 헷갈렸던 /26 의 의미는 무엇일까? 맨 위에있는 첫번째 사진에서 보면 이러한 것을 '블록'이라고 표현합니다. 의미가 궁금하여 알아보았는데, ip주소 뒤에 그렇게 적혀있는 건 바로 0과 1로 구성된 부분을 1비트라고 봤을 때, 맨 왼쪽부터 서브넷마스크가 있는 부분까지가 26비트로 구성되어있기 때문이었습니다.

 

서브넷 마스크의 ip주소를 오로지 숫자로 적으면 netmask, /26이나 /18과 같은 형태로 적으면 prefix라고 표현할 수 있습니다. 서브넷 마스크에 대한 개념은 실제 문제를 풀어보거나 깊게 이해하기 위해 더 공부해야 할 개념인 것 같아 기회가 되면 다시한 번 정리해서 개념을 잡아봐야겠네요. 마지막으로 아래의 디폴트 서브넷 마스크도 참고로 알아두시면 좋을 것 같습니다.

 

 

* 디폴트 서브넷 마스크

- 클래스A : 255.0.0.0

- 클래스B : 255.255.0.0

- 클래스C : 255.255.255.0

 

이건 고정ip 설정할 때 써봤던 기억이 있는데, 그 때는 감으로 255.255.255.0 이런 식으로 표현해서 때려 맞췄지만 다음에 설정할 일이 있다면 클래스에 맞게 설정할 수 있을 것 같습니다^^

 

 

반응형

+ Recent posts