ecsimsw

네트워크 / IP 주소가 부족하진 않을까? 본문

네트워크 / IP 주소가 부족하진 않을까?

JinHwan Kim 2021. 1. 17. 23:27

IP 주소가 부족하진 않을까?

2018년 말 기사를 보니, 010으로 시작하는 휴대폰 번호의 80% 이상이 이미 사용되어 고갈 시를 대비하고 있다고 한다.

 

IP주소도 비슷하다. 엄청난 양의 노드가 생겼고, 앞으로는 더 많이 생길 것이다. 그렇게 되면 IP 주소가 부족하진 않을까? 

 

 

서브넷팅

IPv4 주소는 네트워크 주소와 호스트 주소로 영역이 분리되어 있다. 32비트 중 일부는 네트워크 영역, 일부는 호스트 영역인 것이다. 이를 서브넷팅이라고 한다. 한 네트워크에 속하는 호스트의 개수를 줄여 라우팅 정보를 줄이기 위함이다.

 

다음과 같은 상황을 생각해보자.

 

한 택배 회사가 배송지를 분담하려고 한다. 지금까지는 '시', '구' 단위로만 택배를 처리해야 했다. 지금까지는 그렇게 불만이 없었는데, 어느 날 어떤 구가 발전되면서, 그 구를 담당하는 배달원이 처리해야 하는 주소가 2배로 늘었다.

 

다른 구를 담당하는 배달원보다 훨씬 일이 많아진 배달원은 불만을 제기하지만 '시', '구'로만 나눠온 택배 회사 입장에서는 방법이 없다. 이때 한 사원이 아이디어를 냈다. 구를 좀 더 쪼개서 대리점을 만들면 안 될까요? 

 

 

네트워크 영역을 택배 허브, 호스트 영역을 배달 주소지라고 생각해보자. 허브의 배송 영역을 '시'에서 '구'로 변경한다면, 허브 수는 늘어나고, 한 허브에서 전달해야 하는 주소의 개수를 줄일 수 있다.

 

서브넷팅도 이와 같다. 네트워크 영역과 호스트 영역을 조절하여 한 라우터에서 처리할 정보의 양을 조절한다. 네트워크 영역을 넓히면 위 예시처럼 네트워크의 개수는 많아지고, 한 네트워크에 속하는 주소는 적어진다.

 

반대로 네트워크 영역을 좁히면, 네트워크 개수는 적어지고, 한 네트워크에 속하는 주소가 많아지는 대규모 네트워크가 된다. 

 

 

 

클래스 도입

그렇다면 이 두 영역을 어떻게 나누는 것이 가장 효율적일까.

 

클래스가 도입되기 이전에는 단순히 앞 8개 비트는 네트워크 영역, 나머지는 호스트 영역이었다. 그럴 수 있었던 것이 이때는 적은 수의 대규모 네트워크 밖에 없었다. 앞서 설명한 것처럼, 이때는 네트워크 영역을 줄여 네트워크 개수는 적게 하지만, 호스트 영역을 많이 잡아 포함된 노드가 크도록 했다. (소수의 대규모 네트워크) 

 

하지만 네트워크가 많아지고, 이것으로 네트워크를 모두 표현할 수 없었다. 그래서 네트워크 개수와 호스트 개수의 필요에 따라 아래처럼 클래스를 나눴다. 

 

클래스를 나누는 방법은 위 표가 전부이다. 최상단 비트가 0이면 클래스 A이고, 이때는 네트워크 영역을 8비트만으로 하여 영역을 구분한다. 최상단 비트가 1, 다음 비트가 0이라면 이는 클래스 B를 의미하고 이때는 네트워크 영역을 16비트로 한다. 클래스 C도 방법은 마찬가지다.

 

예를 들면 01011010.10000101.11110001.10100011 이라면 이는 클래스 A로 01011010이 네트워크 영역, 나머지가 호스트 영역이 되는 것이다.

 

 

이렇게 나눌 경우 위 표 같은 네트워크 수와 호스트 수를 갖게 된다. 많은 호스트가 필요한 경우는 값이 비싼 클래스A를 사용하는 것이고, 호스트가 비교적 덜 필요한 곳에서는 값이 싼 클래스C를 사용하는 것이다. 

 

8비트만으로 네트워크 주소를 표현했던 이전보다 훨씬 더 많은 네트워크 수를 할당할 수 있게 되었다. 불필요한 호스트 낭비도 많이 줄일 수 있었다.

 

그래도 아직 부족했다. 만약 사용하는 주소가 240개뿐이라 클래스 C를 사용했던 회사가 기기가 많아져 255개가 되면 어떻게 될까? 비싸고 65000개까지 절대 필요 없겠지만 그 회사는 클래스 B를 사용해야만 한다. 대부분의 경우에서 클래스 B가 사용되었고, 16,384개뿐인 클래스 B는 금방 소진되었다.

 

그래서 CIDR가 등장하게 되었다.

 

 

CIDR (Classless Inter-Domain Routing)

위 택배 예시를 다시 들겠다.

 

사원의 아이디어로 '구'별로 대리점을 두기로 했다. 그런데 대리점 크기가 다 제각각이다. 큰 대리점의 경우 1000개의 주소까지 처리가 가능한데 반해, 작은 지점의 경우 100개도 관리가 어렵다고 한다.

 

각각 지점이 담당하는 구가 지금까진 100을 넘기지 않았다가 이번에 건물 하나가 더 생겨 100을 넘겨버렸다. 작은 지점은 과분한 양에 배송 지연이 발생했고, 바로 구역을 담당하는 큰 지점은 직원들이 너무 한가하여 월급이 낭비되는 상황이다. 

 

사장은 골머리가 앓을 것이다. 그렇다고 큰 지점과 작은 지점을 바꿀 수 도 없는 상황이니 말이다.

 

그때 똑똑한 사원이 다시 아이디어를 냈다. 좀 유동적으로 구역을 정하면 어떨까요.

 

 

CIDR는 이렇게 네트워크 영역과 호스트 영역 길이를 고정적으로 지정하는 것이 아닌, 가변 길이로 주소를 묶는다.

 

네트워크 상황과, 호스트 필요에 보다 적합하게 네트워크 영역과 호스트 영역을 나눌 수 있다. 그리고 그 나누는 영역을 서브넷 마스크로 표시한다. 이전에는 클래스 별로 영역별 비트 수가 지정되어 있지만, CIDR은 그 비트 수를 조절할 수 있다는 말이다. 

 

255개의 주소가 필요한 회사가 클래스 C는 사용할 수 없어 어쩔 수 없이 주소 개수가 65,534인 클래스 B를 사용해야 했다면, CIDR로 주소를 가변적으로 묶어 호스트 영역을 9비트로 하면 호스트 수 512개로 낭비를 줄일 수 있는 것이다.

 

 

 

NAT (Network Address Translation)

NAT는 내부 IP (사설 IP) 주소와 외부 IP (공인 IP) 주소를 달리하는 방식이다.

 

예를 들면 한 회사에서 사용하는 모든 기기에 주소를 주는 것이 아니라, 회사에 주소를 주고, 회사에 속한 기기는 상대 주소를 주는 것이다.

 

아래 그림처럼, NAT를 사용하기 전에는 모든 사원의 PC에 공인 IP 주소를 할당해야 했지만, NAT 사용 후에는 변환기에서 이를 private IP로 변환해줘 변환기에만 공인 IP 주소가 할당되어 있으면 된다.

 

가장 쉽게 접할 수 있는 NAT 변환기 역할을 하는 기기가 바로 공유기이다.

 

 

 

 

 

DHCP (Dynamic Host Configuration Protocol)

한 대학교에서 학생들의 편의를 위해 임시 배송지를 만들어 주고자 한다. 모든 학생에게 각각의 택배함을 배정하고 그 주소를 OO대학 OO과 OO학번 OOO으로 하였다. 

 

 

좋은 취지였으나, 택배함에 너무 많은 돈이 들어갔고, 너무 많은 주소에 택배 기사도 한 번에 택배함 위치를 찾기 어려워졌다. 학생들도 가끔 이용하지 매일 이용하진 않았다. 배달 기사가 한 번 방문할 때 많아야 5개의 택배뿐이었다.

 

보다 못한 재정실 직원이 임시 보관함 아이디어를 냈다. 임시 보관함을 10개만 만들고 학생이 필요할 때마다 칸을 배정주는 것이다.

 

신청 학생에 한 해 택배함을 임시로 지정해주면 그 주소로 택배를 받을 수 있었다. 한 번 배송에 많아야 5개니 10개의 임시 보관함이면 충분했다.

 

 

 

택배함을 IP 주소에 비유했다. DHCP는 이렇게 동적으로 주소를 할당하는 방법을 말한다.

 

IP 주소를 일정 시간 동안만 클라이언트에 '임대'하여 실제 IP 주소의 개수보다 더 많은 사용자를 처리할 수 있도록 한다. 따라서 DHCP는 사용자들이 자주 바뀌고, 짧은 시간만 임시로 사용하는 환경에서 유용하다. 

 

사용자 명단을 작성하고 보관함을 배정해주는 학과 사무실은 DHCP 서버가 그 역할을 대신한다. DHCP 서버는 임시 호스트에게 일정 기간 동안 IP 주소를 임대하고, 호스트의 사용에 따라 임대 기간을 연장해준다.

 

이렇게 DHCP를 사용하는 것도 IP주소 고갈 문제의 해결 방안이 된다.

 

 

IPv6

IP주소의 길이를 기존 IPv4의 32비트 주소에서 128비트 주소로 늘려 주소 고갈 문제를 해결한다. 1994년 국제 인터넷 표준화 기구에서 채택하였지만, 아직 IPv6 사용량은 적은 편이며 실생활 대부분은 IPv4 프로토콜로 작동되고 있다. 

 

Comments