요즘IT
위시켓
최근 검색어
전체 삭제
최근 검색어가 없습니다.

오늘날, 거의 대다수의 가정집에 설치되어 있는 유무선 공유기를 하나의 LAN이라고도 볼 수 있습니다. 그럼 세상에는 얼마나 많은 네트워크가 존재하는 걸까요? 과연 이 모든 네트워크에 할당할 주소는 충분히 존재할까요?

회원가입을 하면 원하는 문장을
저장할 수 있어요!

다음

회원가입을 하면
성장에 도움이 되는 콘텐츠를
스크랩할 수 있어요!

확인

개발

IP 주소의 역사와 서브넷 마스크의 탄생

년차,
어떤 스킬
,
어떤 직무
독자들이 봤을까요?
어떤 독자들이 봤는지 궁금하다면?
로그인

오늘날, 거의 대다수의 가정집에 설치되어 있는 유무선 공유기를 하나의 LAN이라고도 볼 수 있습니다. 그럼 세상에는 얼마나 많은 네트워크가 존재하는 걸까요? 과연 이 모든 네트워크에 할당할 주소는 충분히 존재할까요?

 

이번 글에서는 이전까지 5회차에 걸쳐 요즘IT에 연재했던 ‘엄청 쉬운 네트워크 이야기’ 시리즈의 부록으로 IP 주소의 역사를 알아보며, 여기에 필수적으로 등장하는 서브넷 마스크도 함께 알아보겠습니다. 이번 글에서의 IP는 IPv4를 뜻한다는 것을 미리 알려드립니다.

 

앞서 연재한 ‘엄청 쉬운 네트워크 이야기’ 시리즈는 다음과 같습니다. 시리즈를 읽고 오신 분들은 네트워크의 기본 흐름에 대해 익숙해지셨을 거라고 생각하는데요, 글에서 IP 주소에 대해 언급은 많이 했지만 자세히 소개하지는 못해 이번 글에서 더 설명해보려고 합니다. 이전 글을 읽고 오시면 이번 글을 읽는 데 도움이 되실 겁니다.

 

‘엄청 쉬운 네트워크 이야기’ 시리즈 다시 보기

 

IP 주소의 역사

IP 주소는 0 ~ 255의 숫자를 표현할 수 있는 8비트(bits, =1byte)를 온점(.)으로 구분한 4개, 총 4바이트(bytes)로 구성되어 있습니다.

 

IP 주소
그림 1-1. IP 주소 모습 (Internet Protocol Specification) <출처: 작가>

 

4바이트가 표시할 수 있는 숫자의 총 개수는 약 42억 개입니다. 현재 세계 인구에 비해서 엄청 적은 숫자입니다만, 1980년대에 IP가 만들어질 시절에는 충분하다고 생각했습니다.

 

네트워크 주소와 호스트 주소

IP를 만들 당시, 사람들은 42억 개의 주소를 어떻게 사용할지 고민했습니다. 0.0.0.1 부터 차례대로 0.0.0.2, 0.0.0.3···. 이렇게 IP 주소를 할당했을까요? 물론 아닙니다. IP가 나온 초창기에는 IP 주소를 아래와 같이 단순하게, 네트워크 주소와 실제 사용 가능한 호스트 주소(남는 번호rest number, 로컬주소local address 등으로도 불림)로 나누었습니다.

 

네트워크 주소, 호스트 주소
그림 1-2. 네트워크 주소, 호스트 주소 <출처: 작가>

 

네트워크 주소하나의 LAN을 말하는 것입니다. 그러니까 초창기에는 LAN이 고작 8비트만큼, 최대 256개(0~255)였다는 것입니다. 이때 네트워크 주소는 초창기 IP의 설계가 인터넷의 시초인 아파넷(ARPANET)에 맞춰져 있었던 만큼, 소수의 사용처만 있었기 때문입니다. 또한 256개의 네트워크는 각각 24비트 개수, 약 167만 개의 컴퓨터들이 식별될 수 있었습니다.

 

인터넷의 시초, ARPANET의 Network 구성도
그림 1-3. 인터넷의 시초, ARPANET의 Network 구성도, 타원형이 네트워크 주소 대역을 말한다. <출처: Wikipedia>

 

클래스풀 네트워크(Classful Network, 분류화된 네트워크)

미국이 연구를 목적으로 연구소, 대학교를 연결시킨 최초의 인터넷, 아파넷(ARPANET)미국 내에서 이루어졌습니다. 초기에는 네트워크로 연결시킬 기관들이 많지 않았기 때문에 네트워크 주소 개수가 256개 정도면 충분했을지 모릅니다. 그러나 연결되는 기관, 기업이 많아지고 네트워크가 점차적으로 늘어남에 따라 주소 개수가 부족해지는 현상이 빠른 시일 내에 발생하게 되었습니다.

 

그래서 IP의 분류를 좀 더 세분화하였습니다. 하나의 네트워크가 167만 개의 호스트 주소를 다 소비할 수 없었기에 IP 주소의 낭비가 심했기 때문이죠. 이를 분류화된 네트워크라 하여, 클래스풀 네트워크(Classful Network)라 불렀는데요. 아래와 같이 A, B, C 클래스로 분류하였습니다.

 

클래스풀 네트워크(Classful Network)
그림 2-1. 네트워크 주소가 세분화된 클래스풀 네트워크(Classful Network) <출처: RFC 791>

 

그림 2-1를 이해하지 않으셔도 좋습니다. 네트워크 대역에 따라, 호스트 주소의 개수가 다릅니다만, 256개만 존재했던 네트워크가 대략 153만 개(A, B, C Network Number 개수의 합)로 늘어났다는 것만 기억하시면 됩니다.

 

클래스풀 네트워크는 앞의 MSB만을 확인하면 IP가 나와 동일한 네트워크에 속해 있는지 판단하기에 아주 효율적이었습니다. A클래스는 첫 번째 비트가 0, B클래스는 두 번째 비트가 0, C클래스는 세 번째 비트가 0이므로 판단하기가 정말 쉬웠습니다.

 

그러나 이 또한 전 세계적으로 확장되어가는 네트워크 개수를 따라가기에는 역부족이었습니다. 수많은 기업이 각자의 네트워크를 형성하며, 대부분 B클래스를 사용하기 시작하면서부터 부족함이 가시화됐습니다.

 

초창기 IP는 NIC(Network Information Center)에 의해 할당되고 있었는데, A클래스는 호스트 주소는 많으나 네트워크의 개수가 128개에 불과해서, 국가단위의 운영에 사용되었고, C클래스는 기업마다 네트워크를 할당해 줄 수 있을 만큼 네트워크 주소의 개수(147만 개)는 충분했으나, 호스트 주소(256개)가 너무 적어 만족스럽지 않았기 때문입니다.

 

NIC(Network Information Center)
그림 2-2. 대부분의 회사를 만족시키기에는 B클래스 밖에 없었다. <출처: 작가, 이미지: flaticon.com>

 

이렇게 모든 기업이 B클래스만 사용하게 되었던 것은 클래스풀 네트워크라는 분류체계의 한계였던 것이지요. 1000명의 사원수를 가진 기업에게 A, B, C 클래스 중, B클래스를 할당할 수밖에 없는 것은 당연한 일이었습니다. 이렇게 1000개의 호스트 주소만 사용하게 되면, 나머지 약 6만 4천개의 IP 주소 낭비가 발생합니다만, 그렇다고 사원 수가 1000명인 기업 65곳이 모여 하나의 네트워크를 사용할 수는 없었을 것입니다.

 

CIDR(Classless Inter-Domain Routing)과 서브넷 마스크(Subnet Mask)

앞서 언급한 IP 주소의 낭비를 해결하기 위해 나온 기술이 바로 CIDR서브넷 마스크(Subnet Mask)입니다. 네트워크 주소를 A, B, C와 같이 클래스로 나누어 고정적으로 사용할 것이 아니라, 네트워크 주소에 대한 범위만을 정하고, 그 안에서 자유롭게 네트워크를 분할하여 사용할 수 있도록 만든 방법입니다.

 

CIDR 서브넷 마스크(Subnet Mask)
그림 3-1. 글로벌, 특수목적 네트워크 주소 블록 <출처: RFC3330>

 

클래스리스(Classless. 분류화 되지 않은)라는 의미와 같이 더 이상 A, B, C와 같이 분류하지 않겠다는 의미입니다. 또한 라우팅(Routing)이라는 단어가 들어가는 이유는, 결국 네트워크 주소 경계를 나눠주는 라우터(Router) 간의 통신에 필요한 기술이기 때문입니다.

 

즉, 각 라우터는 자신이 관리하는 네트워크 주소를 가지고 있으며, 인접한 라우터에게 자신이 관리하는 네트워크의 목록을 서로 교환하는 시스템이 반드시 필요하다는 의미입니다. 그래서 모든 라우터에는 네트워크 주소와 서브넷 마스크가 함께 저장되어 있는 라우팅 테이블이라는 것이 존재하는 것입니다.

 

그러면 이제, IP 주소를 보고 네트워크 주소와 호스트 주소의 구분이 가능하여야 할 것입니다. 그래서 서브넷 마스크(네트워크를 구분 지을 수 있는 마스크)라 부르는 IP 뒤에 ‘/’ 슬래시로 표기함과 동시에 숫자를 적어서 어느 비트 영역까지가 네트워크 주소인지를 판별할 수 있는 방법이 나오게 됐습니다. 클래스풀 네트워크에서 MSB가 고정되어 있었던 것과는 달리, 유연한 주소 할당이 가능하게 된 것이죠.

 

IP 주소 역사
그림 3-2. 10.10.1.32/27 네트워크에 속하는 IP주소인지 판별하는 그림 <출처: Wikipedia>

 

지금까지 네트워크를 공부해 오신 여러분들이라면 위의 그림을 이해하실 수 있을 것입니다.  10.10.1.44와 10.10.1.90 2개의 IP가 10.10.1.32/27 네트워크에 속하는지를 판별하는 그림입니다. 이러한 CIDR과 서브넷 마스크를 이용한다면 클래스풀 네트워크의 B클래스로 할당할 수 있는 네트워크 주소의 한계IP의 낭비를 해결할 수 있을 것입니다. 예를 들어, 1000개의 IP 주소가 필요한 기업에 IP를 할당하고자 하면, 클래스풀에서는 B클래스에 해당하는 네트워크 주소 “128.0.0.0/16” 개수 49,151개밖에 할당할 수 없었습니다.

 

Classful Network B클래스
그림 3-3. Classful Network B클래스 <출처: 작가>

 

하지만 클래스리스한 서브넷 마스크 “0.0.0.0/22”로 할당하면 4,194,304개의 네트워크 주소와 1024개의 호스트 주소를 딱 맞게 사용할 수 있는 것입니다.

 

CIDR, Subnet Mask로 할당 가능한 IP 범위
그림 3-4. CIDR, Subnet Mask로 할당 가능한 IP 범위 <출처: 작가>

 

 

IP관리 기구

IP를 클래스풀 네트워크 시절에는 NIC(Network Information Center)에서 관리하였다면, CIDR로 변경되는 시점에서는 미국 정부와 계약하여, IP 주소의 할당을 중앙관리화하는 인터넷 할당 번호 관리 기구(Internet Assigned Numbers Authority, IANA)가 있었습니다.

이후에는 국제적인 관리 체제를 위해, DNS와 함께 IP주소 할당을 관리하는 국제 인터넷 주소 관리 기구(Internet Corporation for Assigned Names and Numbers, ICANN)로 바뀌고, 다시 IANA가 운영은 하되 ICANN에서 감독을 하는 등, IP 주소를 관리하는 기관에도 많은 변화가 있었습니다.

 

지금은 모든 네트워크 주소에 대한 할당을 한곳에서 할 수는 없으니, 이를 각 지역(국가, 단체, ISP)에 사용 가능한 네트워크 대역을 주어서 관리하도록 하고 있습니다. 우리나라의 대표적인 인터넷 서비스 제공 사업자(Internet Service Provider, ISP)로는 KT, SK브로드밴드, LG U+ 등 많은 곳이 존재하는데, IP주소가 필요한 경우 이러한 ISP에 의해 할당받고 있습니다.

 

 

결론

앞서 살펴본 이야기들로는, 네트워크가 발전함에 따라 IP 주소의 빠른 고갈을 근본적으로 해결할 수 없습니다. 그러나 이미 전 세계가 연결되어 사용되고 있는 IPv4를 한순간에 없애고, 새로운 네트워크 주소 체계로 변화할 수도 없습니다. 그래서 IPv4 주소의 고갈을 기술적으로 해결하기 위해 공인IP, 사설IP, 이를 이용한 NAT(Network Address Translation)와 같은 IP와 포트번호를 이용하여 사설망을 구축하는 방법이 사용되었고, 근본적인 IP주소의 개수를 해결하고자 IPv6가 나타나는 등 현재진행형으로 다양한 시도가 진행되고 있습니다.

 

이 글을 쓴 목적은 “왜 우리는 사설망, NAT과 같은 기술을 사용할까? 모든 컴퓨터가 중복되지 않는 IP 주소를 할당받으면 필요 없는 것이 아닌가?”라는 물음에서 시작되었습니다.

 

서브넷 마스크라는 단어를 들어보았고, 이는 네트워크를 나누는데 사용한다 정도만 알고 계셨다면, 이 글을 통해, “왜 서브넷 마스크라는 방법이 등장했는가”에 대한 궁금증을, 조금이라도 해결하셨으면 하는 바람입니다. 읽어주셔서 감사합니다.

 

요즘IT의 모든 콘텐츠는 저작권법의 보호를 받는 바, 무단 전재와 복사, 배포 등을 금합니다.

좋아요

댓글

공유

공유

댓글 1
백앤드 웹 개발자
76
명 알림 받는 중

작가 홈

백앤드 웹 개발자
76
명 알림 받는 중
궁금한 내용이 있으면 이해가 될 때 까지 파고드는 5년차 백앤드 개발자입니다.

좋아요

댓글

스크랩

공유

공유

지금 회원가입하고,
요즘IT가 PICK한 뉴스레터를 받아보세요!

회원가입하기
요즘IT의 멤버가 되어주세요! 요즘IT의 멤버가 되어주세요!
요즘IT의 멤버가 되어주세요!
모든 콘텐츠를 편하게 보고 스크랩해요.
모든 콘텐츠를 편하게 보고 스크랩 하기
매주 PICK한 콘텐츠를 뉴스레터로 받아요.
매주 PICK한 콘텐츠를 뉴스레터로 받기
로그인하고 무료로 사용하기