본문 바로가기
Network

[L3] IP주소(IPv4) / 서브넷 마스크

by MachineJW 2022. 11. 28.

 

네트워크에 접속하려 할 때 기본이 되는 것들

IP 주소 체계

OSI 7계층에서 주소를 갖는 계층은 2계층과 3계층이다.
2계층은 물리적인 MAC 주소를 사용하고, 3계층은 논리적인 IP주소를 사용한다.

우리가 흔히 사용하는 IP주소는 32비트 크기의 정보량을 갖는 IPv4 주소이다.
IP 는 IPv4, IPv6 두 가지 체계가 사용되고 IPv6는 128비트의 정보량을 갖는다.
지금은 IPv4 주소 체계를 기반으로 설명한다.

192.168.0.1

1100000. 10101000. 00000000. 0000001

IPv4의 표기는 8비트씩 끊어서 10진수로 4자리를 표현한다. (8비트 * 4 = 32비트)
이때 끊은 단위를 '옥텟' 이라고 하고, .으로 구분한다.
하나의 옥텟에는 10진수 0~255까지의 값을 표현한다.

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

192.168.0.1 -> 네트워크 주소 / 호스트 주소

IP주소는 네트워크 주소와 호스트 주소로 구별된다.

네트워크 주소 호스트들을 모은 네트워크를 지칭하는 주소, 네트워크 주소가 동일한 네트워크를 로컬 네트워크라고 한다.
호스트 주소 하나의 네트워크 내에 존재하는 호스트를 구분하기 위한 주소

IP주소의 네트워크 주소와 호스트 주소를 구분하는 방법은 2가지 이다.

1. 클래스 구분법

클래스 구분 구분 구분 구분
A 클래스 '0' 네트워크 주소 호스트 주소 호스트 주소 호스트 주소
B 클래스 '10' 네트워크 주소 네트워크 주소 호스트 주소 호스트 주소
C 클래스 '110' 네트워크 주소 네트워크 주소 네트워크 주소 호스트 주소
D 클래스 '1110' 멀티캐스트 멀티캐스트 멀티캐스트 멀티캐스트

A 클래스는 2진수로 표현했을때, 첫번째 옥텟이 0으로 시작하는 것을 말한다. 즉 00000000(2)~01111111(2) 까지의 범위로 10진수로 0(10)~127(10) 까지의 범위가 된다. 즉 첫번째 옥텟이 0~127이면 A클래스로 로써 첫번째 옥텟이 네트워크 주소이고 나머지 3개가 호스트 주소가 된다.
127만 예외로 자기 자신을 의미하는 루프백 주소로 예약 되어 있다. (ex. 127.0.0.1)
B 클래스는 첫번째 옥텟이 '10' 으로 시작하고, C클래스는 첫번째 옥텟이 '110'으로 시작한다.
위 클래스 기법의 범위를 토대로 IP 주소의 범위를 나타내면 다음과 같다.
D클래스는 예외로 멀티캐스트 전용 IP 주소로 예약되어 있다.

클래스 IP 주소의 범위
A 클래스 1~127.0.0.0 (127.0.0.0 루프백 주소) /
B 클래스 128~191.0.0.0
C 클래스 192~223.0.0.0
D 클래스 224~239.0.0.0 (멀티캐스트 전용)

 

2. 서브넷 마스크 구분법

현재 IP주소의 네트워크 주소와 호스트 주소의 구분은 서브넷 마스크로 구분 한다.
서브넷 마스크를 사용하면, 위의 클래스 구분이 필요 없지만, 그래도 과거의 방법을 남기어 클래스 기법과 서브넷 마스크를 같이 사용한다.
즉, 클래스 기법 + 서브넷 마스크의 혼용

192.168.0.1 (10)

AND 마스크 연산 (둘다 1이여야 1)

255.255.255.0 (10)

192.168.0.0 -> 네트워크 주소

IP주소를 이진수로 나타내어 AND 연산(마스크 연산) 한 것이 네트워크 주소이다.
즉, 서브넷 마스크는 IP주소의 네트워크 주소와 호스트 주소를 구분 짓는 구분자 이다.
서브넷 마스크와 AND 연산을 통해 해당 IP 주소의 네트워크 주소만 뽑아낸다.

위의 클래스 기법에 따른 서브넷 마스크는 다음과 같다.

클래스 서브넷 마스크
A 클래스 255.0.0.0
B 클래스 255.255.0.0
C 클래스 255.255.255.0
D 클래스 255.255.255.255

서브네팅

조금 어려운 개념이다. (설명은 잘 못한다....)
서브네팅은 서브넷 마스크를 활용하여 논리적인 네트워크 분할을 통해 낭비되는 호스트 주소 없이 골고루 분배하기 위해 사용한다.
서브네팅은 서브넷 마스크에서 호스트 주소를 사용한다.
C 클래스의 192.168.0.1 서브넷은 255.255.255.0 이다.
0은 호스트 주소 부분인데 2진수로 이 호스트 부분의 맨앞 자리를 11로 지정하면
11111111.11111111.11111111.11000000 (2) 이된다.
다시 10진수로 변환하면 이 서브넷 마스크는 255.255.255.192 (10) 이 된다.
이 해당 서브넷 마스크를

192.168.0.1 ~ 192.168.0.255의 IP 주소와 AND 마스크 연산을 해보면

192.168.0.0
192.168.0.64
192.168.0.128
192.168.0.192

4가지의 네트워크 주소를 얻을 수 있고,IP주소가 논리적으로 4개로 분배됬다는 것이다.

호스트주소에서 2진수 첫째자리부터 n개를 서브넷팅을 할때마다 2^n 만큼의 네트워크 주소가 나온다.
ex) 11100000 -> 2^3 = 8 개의 네트워크 주소

회사에 A,B,C,D 부서가 있다고 가정하고 각 부서마다 60개 정도의 호스트를 사용한다고 했을때,
255.255.255.192로 서브네팅 된 서브넷 마스크를 사용하여 IP의 호스트 주소를 각각 나누어 192.168.0.0~192.168.63까지는 A부서
192.168.0.64~192.168.0.127 까지는 B부서
192.168.0.128~192.168.0.191까지는  C부서
192.168.0.192~192.168.0.255까지는 D부서

(IP주소에서 가장 첫번째 주소는 네트워크주소이고 가장 마지막 주소는 브로드캐스트 전용 주소로 사용된다.)
이런식의 분배가 가능해진다!

실제 서브네팅의 예. 공인IP가 서브네팅 되어있다

 

공인IP와 사설IP

공인IP는 WAN 통신망에서 사용하는 IP주소이고, 사설IP는 보통 공유기나 NAT 장비를 통한 LAN 통신망에서 사용되는 IP 주소이다.
공인IP는 전 세계에서 유일한 하나의 IP 이며, 우리가 인터넷 사업자로(KT,LG,SK)부터 돈을 내고 이 인터넷망의 공인IP를 할당 받게 된다.
공유기는 하나의 공인IP(WAN)를 NAT(네트워크주소변환) 기술을 사용하여 사설IP(LAN)으로 바꾼다.
즉 외부 WAN에서 보여지는 IP주소와 실제 내부의 IP주소가 달라지게 된다.
이는 IPv4의 주소고갈 문제와 외부IP와 내부IP를 다르게 하여 내부 네트워크의 보안문제를 해결한다.
그래서 공유기를 통한 IP 주소의 범위가 C클래스 중에서 사설IP 범위인 192.168.0.0~192.168.255.255 에 속하는 것이다.

공유기의 사설IP
출처: https://yohanpro.com/posts/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-IP%EC%A3%BC%EC%86%8C%EC%9D%98%20%EA%B5%AC%EC%A1%B0/

사설IP로 사용할 수 있는 범위도 클래스별로 정의되어있다.

'Network' 카테고리의 다른 글

[L3 ~ L4] 공유기(공유기 개요, 역할, NAT)  (0) 2022.12.15
[L2] MAC 주소  (1) 2022.12.01
LAN, MAN, WAN  (0) 2022.11.26
[L1] 모뎀 (Modem)  (0) 2022.11.26
[L1] 케이블 (전송매체)  (0) 2022.11.22