이번 포스트에서는 네트워크에 접속하는 모든 장비들이 통신하기 위한 물리적 주소인 MAC 주소에 대해 알아본다.
IP(Internet Protocol) 주소란?
- 3계층(Network Layer)에서 통신을 위해 할당된 논리 주소
- 변경 가능한 논리 주소임
IP 주소 체계
IP 주소에는 레벨이 있다. 그룹을 의미하는 네트워크 주소와 호스트 주소로 나뉜다.
- 네트워크 주소: 호스트들을 모은 네트워크를 지칭하는 주소. 네트워크 주소가 동일한 네트워크를 로컬 네트워크라고 함.
- 호스트 주소: 하나의 네트워크 내에 존재하는 호스트를 구분하기 위한 주소
우리가 흔희 사용하는 IP 주소는 32비트인 IPv4 주소다. 참고로 IPv6는 128비트다.
클래스 개념
IP 주소 체계는 필요한 호스트 IP 개수에 따라 네트워크의 크기를 다르게 할당할 수 있는 클래스(Class) 개념을 도입했다. 클래스에 따라 네트워크와 호스트 주소를 구분하는 옥텟의 위치가 다르다. 이 구분자를 서브넷 마스크라고 한다.
- A 클래스: 약 1,600만 개. 첫 번째 옥텟에 네트워크 주소와 호스트 주소를 나누는 구분자가 있음
- B 클래스: 약 6만 5천개. 두 번째 옥텟에 네트워크 주소와 호스트 주소를 나누는 구분자가 있음
- C 클래스: 250개. 세 번째 옥텟에 네트워크 주소와 호스트 주소를 나누는 구분자가 있음
클래스풀과 클래스리스
위에서 설명한 클래스 기반의 IP 주소 체계를 클래스풀이라고 부르고 클래스 개념을 적용하지 않는 체계를 클래스리스 라고 부른다. 인터넷이 상용화되면서 인터넷에 연결되는 호스트 숫자가 폭발적으로 증가하면서 기존 클래스풀 기반의 주소 체계는 확장성과 효율성을 모두 잡는 좋은 주소 체계였지만 기하급수적으로 늘어나는 IP 주소 요구를 감당하기에는 너무 부족했다. 그 첫 번째 단기 대책으로 나온게 클래스리스, CIDR(Classless Inter-Domain Routing)기반의 주소 체계다. 두 번째 중기 대책은 NAT와 사설 IP 주소, 세 번째 장기 대책은 차세대 IP인 IPv6이다. 현재 우리가 사용하는 주소 체계다.
클래스풀은 맨 앞자리 숫자만 보면 자연스럽게 이 주소가 어느 클래스에 속해 있는지 구분할 수 있었다.
- A 클래스: 앞 옥텟의 주소가 0~127의 범위임. A 클래스 사용할 수 있는 주소는 1.0.0.0 ~ 126.255.255.255
- B 클래스: 앞 옥텟의 주소가 128~191의 범위임
- C 클래스: 앞 옥텟의 주소가 192~223의 범위임
- D 클래스: 앞 옥텟의 주소가 224~239의 범위임
하지만 클리스리스 기반의 주소 체계는 어디까지가 네트워크 주소이고 어디까지가 호스트 주소인지 구별을 할 수 없기 때문에 서브넷 마스크(Subnet Mask)
를 이용해 구분자를 사용한다.
- 255: 네트워크
- 0: 호스트
현재 대부분의 PC에서 아래와 같이 서브넷 마스크를 확인할 수 있다.
서브네팅
부여된 주소를 더 잘게 쪼개기 위해 원래 클래스풀 단위의 네트워크보다 더 쪼개 사용하는 것이다. 현대 클래스리스 네트워크의 가장 큰 특징이라고 할 수 있다. 대부분 2진수 비트단위로 쪼개며 그렇기 때문에 어떤 IP 범위가 내가 속한 네트워크이고 어떤 IP 범위가 원격지 네트워크인지 판단하기 어렵다.
공인 IP와 사설 IP
- 공인 IP: 인터넷에 접속하기 위한 전 세계에서 유일한 식별자
- 사설 IP: 개인적으로 네트워크를 구성한 주소(공유기)
- NAT(Network Address Translation)을 활용한 공유기가 대표적임
- 다른 곳에서 사용하는 공인 IP를 내부에서 사설 IP로 사용할 경우, 겹치는 곳으로의 접근이 불가능함
- 그래서 공유기에서 가장 많이 사용하는 기본 IP가 192.168.0.1임(공인 IP와 겹치지 않기 위함)
- 모바일 디바이스에서 가장 많이 사용하는 테더링용 IP는 192번대 사설 IP와 겹치지 않기 위해 172.x.x.x 를 사용
다른 기관에서 사용하는 공인 IP를 회사 내부에서 사용하면 접속이 불가능하다.
⇒ C회사에서 A회사로 접속을 시도할 경우 C회사 서버는 A회사의 서버가 같은 네트워크에 존재한다고 판단해서 A회사 서버인 20.0.0.20과 통신하기위해 브로드캐스트한다. 실제로는 인터넷 구간을 거쳐서 원격지과 통신 시도를 서로 인식해야하지만, 같은 네트워크로 판단하기에 정상적인 통신이 불가능하다.
ref
IT 엔지니어를 위한 네트워크 입문(고재성, 이상훈 지음)을 읽고 정리한 포스트입니다.
Previous
‘[Network] MAC 주소’ -> Previous
Next
‘[Network] TCP와 UDP -> Next