IP 주소란?
IP(Internet Protocol) 주소는 인터넷에 연결된 모든 디바이스에 할당되는 고유 주소로, 네트워크 주소와 호스트 주소로 구성되어 있다. 이는 네트워크 세계에서 내 장치의 주소라고 할 수 있으며, 실제 집 주소처럼 ~시 ~구와 같은 주소( 네트워크 주소) 와 ~아파트 x동, x호와 같은 주소 (호스트 주소)로 구성된다고 볼 수 있다.
192 . 168 . 0 . 25
11000000 . 10101000 . 00000000 . 0011001
네트워크 주소 호스트 주소
네트워크 주소는 8비트.8비트.8비트.8비트 의 구조로 되어 있으며, 네트워크 주소 부분, 호스트 주소 부분을 할당하는 방법에 따라 클래스풀 / 클래스리스 주소 체계로 나눌 수 있다.
클래스풀 주소 체계
IP 주소에서 네트워크 주소와 호스트 주소를 구분하는 범위는 유동적일 수 있는데, 네트워크 주소를 중심으로 IP 주소를 분류하는 방법이 클래스풀 주소체계 이다.
즉, 네트워크 크기를 가변적으로 조정하여 호스트 주소 부분 역시 유동적으로 변하도록 할 수 있고 아래와 같은 종류가 있다.
- A 클래스
네트워크 앞 주소는 0 으로 시작하고, 8비트만 사용. [0xxxxxxx].[xxxxxxxx].[xxxxxxxx].[xxxxxxxx]
이론상으로 2의 7승 개(맨 앞의 1이 고정이기 때문에)의 네트워크 주소가 존재할 수 있고
2의 24승 개의 호스트 주소가 존재할 수 있다.
10진수로 표현하면 최소값 0.0.0.0 부터 최대값 127.255.255.255 의 주소를 할당할 수 있다. - B 클래스
네트워크 앞 주소는 10 로 시작하고, 총 16비트 사용. [10xxxxxx].[xxxxxxxx].[xxxxxxxx].[xxxxxxxx]
A클래스에 비해 할당 가능한 호스트 주소의 수가 줄어들었다.
할당 가능한 네트워크 주소는 2 의 14승 ( 16개 -2개, 10이 고정되어 있으므로)개, 호스트는 주소는 2의 16승 개 할당 가능.
10진수로 표현하면 최소값 128.0.0.0 부터 최대값 191.255.255.255 의 주소를 할당할 수 있다. - C 클래스
네트워크 앞 주소는 110 로 시작하고, 총 24 비트 사용. [110xxxxx].[xxxxxxxx].[xxxxxxxx].[xxxxxxxx]
호스트는 총 2의 8승 개(256 개) 할당이 가능하고, 네트워크는 2의 21승 (24-3)개 할당 가능하다.
10진수로 표현하면 최소값 192.0.0.0 부터 최대값 223.255.255.255 의 주소를 할당할 수 있다. - 호스트 주소가 전부 0인 IP 주소와, 호스트 주소가 전부 1인 IP 주소는 특정 용도로 사용되기 때문에, 이론상 가능한 설정 가능 호스트 주소의 갯수에서 -2 개 씩 해주면 실제 할당 가능한 주소의 갯수가 나온다.
클래스리스 주소 체계
앞서 본 것과 같이 클래스풀 주소체계를 사용하여 할당 가능한 호스트 주소의 갯수가 가변적으로 변하는 것을 통해, 내가 설정하고 싶은 네트워크의 호스트의 수를 판단하여 어떤 클래스 주소 체계로 선택할지 결정할 수 있다. 하지만 호스트의 수가 300개라고 한다면 약 50개의 차이로 C 클래스 주소체계를 사용할 수 없기 때문에 B 클래스 주소 체계를 사용하게 된다.
이렇게 되면 B 클래스의 호스트 주소 갯수 2의 16승 개 (65,354) - 300 개 = 65,054 개의 IP 주소가 낭비되는 결과를 초래한다.
따라서 클래스풀 주소 체계보다 유동적이고 정교하게 네트워크 주소를 구획하는 방법이 클래스리스 주소체계 이다.
하지만 클래스리스 주소 체계는 클래스를 이용하지 않는다. 따라서, 네트워크 주소와 호스트 주소를 구분하는 지점이 임의이므로 서브넷 마스크를 통해 네트워크 주소와 호스트 주소를 구분할 수 있다.
- 서브넷 마스크
IP 주소 상에서 네트워크 주소는 1, 호스트 주소는 0으로 표기한 비트열.
IP 주소와의 AND 연산으로 네트워크 주소와 호스트 주소를 구분해낼 수 있다.
서브넷 마스크를 통해 클래스를 원하는 크기로 더 잘게 쪼개서 사용하는 것을 서브넷팅 이라고 한다.
A 클래스 서브넷 마스크 = 255.0.0.0 (11111111.00000000.00000000.00000000)
B 클래스 서브넷 마스크 = 255.255.0.0 (11111111.11111111.00000000.00000000)
C 클래스 서브넷 마스크 = 255.255.255.0 (11111111.11111111.11111111.00000000)
CIDR 표기법으로 IP주소/서브넷 마스크의 1의 갯수 로 표현할 수 있다. (192.168.0.25/25)
ex1) 192.168.219.103 주소를 서브넷 마스크를 사용하여 네트워크 주소와 호스트 주소 구분하기
- 192.168.219.103 는 192 로 시작하기 때문에 C 클래스의 주소 체계라는 것을 알 수 있다.
- B 클래스의 서브넷 마스크는 255.255.0.0 (11111111.11111111.11111111.00000000) 이다.
- 192 (11000000) . 168 (10101000) . 219 (11011011) . 103 ( 1100111 ) 과 B 클래스 서브넷 마스크를 And 연산한다.
IP 주소 11000000.10101000.11011011.01100111
서브넷 마스크 11111111.11111111.11111111.00000000
And 연산 11000000.10101000.11011011.00000000
192.168.219.103 을 서브넷 마스크로 연산한 결과 192.168.219.0 이 나왔고 이는, 192.168.291 까지가 네트워크의 주소이고 0~255 까지 가 호스트 주소로 할당될 수 있다는 결과를 보여준다.
ex2) CRID 표기법 으로 표기된 192.168.219.103/25 주소를 서브넷 마스크를 사용하여 네트워크 주소와 호스트 주소 구분하기
- 표기법에 의하면 서브넷의 1의 갯수가 25개 라는 것을 알 수 있으므로 서브넷 마스크는 11111111.11111111.11111111.10000000 임을 알 수 있다.
- 아이피 주소와 서브넷 마스크를 AND 연산 한다
IP 주소 11000000.10101000.11011011.01100111
서브넷 마스크 11111111.11111111.11111111.10000000
And 연산 11000000.10101000.11011011.00000000
192.168.219.103 을 서브넷 마스크로 연산한 결과 192.168.219.0 이 나왔다. 이 역시 네트워크 주소는 192.168.219 부분이고
호스트 주소는 192.168.219.0 ~ 192.168.219.255 까지 할당 가능하다는 것을 알 수 있다.
마무리
내가 공부하면서 네트워크의 주소가 10진수와 2진수가 계속해서 나오기 때문에 빨리빨리 계산 해보기 위해서 직접 만든 진수 변환기와 서브넷 마스크 계산기의 파이썬 파일을 공유하는걸로 포스팅을 마무리 하겠다.
'네트워크 공부 & 실습 > 네트워크 실습' 카테고리의 다른 글
| 💻 [리눅스] USB 연결하여 마운트 하기 (0) | 2025.01.27 |
|---|---|
| 🛜 [네트워크] AWS EC2 에 SSH 프로토콜로 접속 및 파일 전송하기 (0) | 2025.01.23 |
| 🛜 [네트워크] SSH 프로토콜을 이용하여 랩탑으로 데스크탑에 접속하기 (0) | 2025.01.22 |
| [포트포워딩] 로컬에서 진행중인 프로젝트에 다른 기기로 접속하기-2 (0) | 2024.12.26 |
| [동일한 Wi-Fi 접속] 로컬에서 진행중인 프로젝트에 다른 기기로 접속하기-1 (0) | 2024.12.25 |