00. 서론
개인용 홈서버 환경을 구성하면서, SSH 연결을 위해 고정IP 설정을 할 일이 있었다.
그런데 고정IP 설정을 하려고 했더니 서브넷마스크, 게이트웨이 뭐 이런것들도 설정을 해야 한다더라,,
사실 서브넷마스크 용어는 많이 들어봤어도, 자세하게는 이해하지 않고 그냥 다른 블로그에서 설정하라는 숫자대로만 생각없이 적었었다.
그래도 이제는 개념 정리를 해야할 필요를 느껴서 이렇게 공부한 내용을 포스팅한다.
01. IP 주소
개념
우선 IP주소는 모두가 알다시피 각 컴퓨터를 구분하기 위한 고유 번호이다.
우리는 이 IP주소를 활용해서, 다른 특정한 PC에 접근할 수도 있고, 내 PC에 접근한 상대방들을 IP주소를 통해 구분할 수 있다.
컴퓨터의 명령프롬프트에 ipconfig
라고 치면 해당 컴퓨터의 IP 주소를 확인할 수 있다.

IPv4 vs IPv6
IP 주소는 크게IPv4
, IPv6
2가지 종류가 있다.
IPv4
우선 IPv4
는 예전부터 전통적으로 사용하던 방식이다.
IPv4에서는 4개의 숫자뭉텅이로 각 PC를 특정하는 방식이다.
- ex: 192.168.0.1
하지만 현대에 와서 매우 많아진 PC들 때문에, 할당 가능한 IP주소의 수가 모자라지기 시작했다. 그래서 등장한 것이 IPv6 방식이다.
IPv6IPv6
에서는 6개의 숫자뭉텅이로 PC를 구분한다.
뭐,,, 그렇다.
- ex: fe80::283d:d081:7516:8f31%15
뭐 그래도 아직까지는, 우리가 일반적으로 IP주소라고 이야기하면 떠올리는 주소는 IPv4 방식이다.
그런 의미로 밑에서는 IPv4 방식에 대해서 설명하겠다.
이진수로 변환해보기
우선 알고 넘어가야 할 부분이 몇가지 있다.
- IPv4 방식의 주소는 32bit 크기를 가진다.
- IPv4 방식의 주소는 크게 4개의 정수로 이루어진다.
자 한번 봐보자
192.168.0.1 의 IP 주소를 가지고 예시를 들어보겠다.
- IPv4 방식은 크게 4개의 숫자로 이루어져있다.
- 위의 경우라면은 192 / 168 / 0 / 1로 구분된 것을 볼 수 있다.
- IPv4 방식의 주소는 32bit 크기를 가진다.
- 그런데 그 32bit를 4개의 정수로 나누면 8 - 8 - 8 - 8 로 나눠진다.
- 즉 IPv4의 각 정수는 8bit의 크기를 가진다.
- 이 말인 즉슨, 각 정수는 0~255 의 크기 범위를 가진다.
- 위 IP주소의 각 정수를 8bit로 변환해보자.
- 192: 1100 0000
- 168: 1010 1000
- 0: 0000 0000
- 1: 0000 0001
- 즉 위 IP는 아래처럼 표현할 수도 있다.
- 11000000.10101000.00000000.00000001
네트워크 아이디 vs 호스트 아이디
위에서 IP주소는 32bit로 표현 가능한 것을 배웠다.
그런데 저 32bit는 네트워크 아이디 부분과, 호스트 아이디 부분으로 구분지을 수 있다.
만약 우리 집에 1개의 공유기를 설치하여 이용하는 상황을 생각해보자.
우리는 1개의 공유기를 가지고 노트북, 스마트폰, 태블릿, 데스크탑 등 여러개의 PC기기를 통해 인터넷을 연결할 수 있다.
이 상황에서, 각 기기들은 같은 네트워크로 연결되어있다.
이때 같은 네트워크로 연결된 각 기기들은 동일한 네트워크 주소를 가진다.

192.168.0.1 주소의 경우에는, 일반적으로 24bit까지가 네트워크 아이디 부분이고, 뒤의 8bit가 호스트 아이디 부분이다.
- 만약 192.168.0.XX 의 IP주소를 가지는 기기가 있다면, 이 또한 같은 공유기를 사용하고 있는 기기일 것이다.
02. 서브넷 마스크
앞에서 IP주소는 네트워크 아이디와 호스트 아이디로 구분된다고 설명했다.
그런데 여기서 주의할 점은, 네트워크 아이디의 길이는 임의로 설정 가능하다는 점이다.
즉 IP주소의 어디까지가 네트워크 아이디 영역이고, 어디부터가 호스트 아이디 부분인지를 따로 알려주는 방법이 필요하다.
그리고 그 역할을 하는 것이 바로 서브넷 마스크이다.
2진수로 파해치기
위에서 IPv4 방식의 주소는 32bit, 즉 2진법으로 표현될 수 있다는 것을 배웠다.
서브넷 마스크는 이 이진법을 사용해서 설정 할 수 있다.
- 서브넷 마스크도 32bit의 크기를 가진다.
- 네트워크 ID 부분은 1로 표기한다.
- 호스트 ID 부분은 0으로 표기한다.
192.168.0.2* 의 경우를 살펴보자.
- 저 IP주소를 이진법으로 표현하면 11000000.10101000.00000000.00000001 이다.
- 일반적으로 네트워크 아이디는 24bit까지다.
- 서브넷 마스크에서, 네트워크 아이디 영역, 즉 24bit 까지는 1로 이루어진다.
- 나머지 호스트 아이디 영역은 0으로 채운다.
즉 저 경우의 서브넷 마스크는 11111111.11111111.11111111.00000000 이 된다.
이를 다시 10진법으로 변환하면, 255.255.255.0 이 된다.
네트워크 아이디는 꼭 8자리 단위로 맞출 필요 없다.
즉 서브넷 마스크는 11111111.11111111.11110000.00000000 과 같이 설정할 수 있다.
- 이런 경우는 10진법으로 변환하면, 255.255.240.0 이 된다.
다른 표기 방법
위에서 설명한 방식으로 서브넷 마스크를 표기하자니, 쓸데없이 길다.
그래서 그냥 IP주소 옆에 네트워크 아이디의 bit 크기를 적기도 한다.
예를 들어보자.
- IP주소(192.168.0.1), 서브넷마스크(255.255.255.0)
- **192.168.0.1/24
- IP주소(192.168.0.1), 서브넷마스크(255.255.240.0)
- **192.168.0.1/22
'Back End > 서버 지식' 카테고리의 다른 글
[CI/CD] CI/CD 개념과 GitHub Actions 기초(1) (5) | 2024.10.03 |
---|---|
SSH의 개념과 통신 과정 (0) | 2024.09.21 |
대칭키와 비대칭키 (0) | 2024.09.21 |
컨테이너(Container)와 도커(Docker)의 개념 (1) | 2024.09.20 |
00. 서론
개인용 홈서버 환경을 구성하면서, SSH 연결을 위해 고정IP 설정을 할 일이 있었다.
그런데 고정IP 설정을 하려고 했더니 서브넷마스크, 게이트웨이 뭐 이런것들도 설정을 해야 한다더라,,
사실 서브넷마스크 용어는 많이 들어봤어도, 자세하게는 이해하지 않고 그냥 다른 블로그에서 설정하라는 숫자대로만 생각없이 적었었다.
그래도 이제는 개념 정리를 해야할 필요를 느껴서 이렇게 공부한 내용을 포스팅한다.
01. IP 주소
개념
우선 IP주소는 모두가 알다시피 각 컴퓨터를 구분하기 위한 고유 번호이다.
우리는 이 IP주소를 활용해서, 다른 특정한 PC에 접근할 수도 있고, 내 PC에 접근한 상대방들을 IP주소를 통해 구분할 수 있다.
컴퓨터의 명령프롬프트에 ipconfig
라고 치면 해당 컴퓨터의 IP 주소를 확인할 수 있다.

IPv4 vs IPv6
IP 주소는 크게IPv4
, IPv6
2가지 종류가 있다.
IPv4
우선 IPv4
는 예전부터 전통적으로 사용하던 방식이다.
IPv4에서는 4개의 숫자뭉텅이로 각 PC를 특정하는 방식이다.
- ex: 192.168.0.1
하지만 현대에 와서 매우 많아진 PC들 때문에, 할당 가능한 IP주소의 수가 모자라지기 시작했다. 그래서 등장한 것이 IPv6 방식이다.
IPv6IPv6
에서는 6개의 숫자뭉텅이로 PC를 구분한다.
뭐,,, 그렇다.
- ex: fe80::283d:d081:7516:8f31%15
뭐 그래도 아직까지는, 우리가 일반적으로 IP주소라고 이야기하면 떠올리는 주소는 IPv4 방식이다.
그런 의미로 밑에서는 IPv4 방식에 대해서 설명하겠다.
이진수로 변환해보기
우선 알고 넘어가야 할 부분이 몇가지 있다.
- IPv4 방식의 주소는 32bit 크기를 가진다.
- IPv4 방식의 주소는 크게 4개의 정수로 이루어진다.
자 한번 봐보자
192.168.0.1 의 IP 주소를 가지고 예시를 들어보겠다.
- IPv4 방식은 크게 4개의 숫자로 이루어져있다.
- 위의 경우라면은 192 / 168 / 0 / 1로 구분된 것을 볼 수 있다.
- IPv4 방식의 주소는 32bit 크기를 가진다.
- 그런데 그 32bit를 4개의 정수로 나누면 8 - 8 - 8 - 8 로 나눠진다.
- 즉 IPv4의 각 정수는 8bit의 크기를 가진다.
- 이 말인 즉슨, 각 정수는 0~255 의 크기 범위를 가진다.
- 위 IP주소의 각 정수를 8bit로 변환해보자.
- 192: 1100 0000
- 168: 1010 1000
- 0: 0000 0000
- 1: 0000 0001
- 즉 위 IP는 아래처럼 표현할 수도 있다.
- 11000000.10101000.00000000.00000001
네트워크 아이디 vs 호스트 아이디
위에서 IP주소는 32bit로 표현 가능한 것을 배웠다.
그런데 저 32bit는 네트워크 아이디 부분과, 호스트 아이디 부분으로 구분지을 수 있다.
만약 우리 집에 1개의 공유기를 설치하여 이용하는 상황을 생각해보자.
우리는 1개의 공유기를 가지고 노트북, 스마트폰, 태블릿, 데스크탑 등 여러개의 PC기기를 통해 인터넷을 연결할 수 있다.
이 상황에서, 각 기기들은 같은 네트워크로 연결되어있다.
이때 같은 네트워크로 연결된 각 기기들은 동일한 네트워크 주소를 가진다.

192.168.0.1 주소의 경우에는, 일반적으로 24bit까지가 네트워크 아이디 부분이고, 뒤의 8bit가 호스트 아이디 부분이다.
- 만약 192.168.0.XX 의 IP주소를 가지는 기기가 있다면, 이 또한 같은 공유기를 사용하고 있는 기기일 것이다.
02. 서브넷 마스크
앞에서 IP주소는 네트워크 아이디와 호스트 아이디로 구분된다고 설명했다.
그런데 여기서 주의할 점은, 네트워크 아이디의 길이는 임의로 설정 가능하다는 점이다.
즉 IP주소의 어디까지가 네트워크 아이디 영역이고, 어디부터가 호스트 아이디 부분인지를 따로 알려주는 방법이 필요하다.
그리고 그 역할을 하는 것이 바로 서브넷 마스크이다.
2진수로 파해치기
위에서 IPv4 방식의 주소는 32bit, 즉 2진법으로 표현될 수 있다는 것을 배웠다.
서브넷 마스크는 이 이진법을 사용해서 설정 할 수 있다.
- 서브넷 마스크도 32bit의 크기를 가진다.
- 네트워크 ID 부분은 1로 표기한다.
- 호스트 ID 부분은 0으로 표기한다.
192.168.0.2* 의 경우를 살펴보자.
- 저 IP주소를 이진법으로 표현하면 11000000.10101000.00000000.00000001 이다.
- 일반적으로 네트워크 아이디는 24bit까지다.
- 서브넷 마스크에서, 네트워크 아이디 영역, 즉 24bit 까지는 1로 이루어진다.
- 나머지 호스트 아이디 영역은 0으로 채운다.
즉 저 경우의 서브넷 마스크는 11111111.11111111.11111111.00000000 이 된다.
이를 다시 10진법으로 변환하면, 255.255.255.0 이 된다.
네트워크 아이디는 꼭 8자리 단위로 맞출 필요 없다.
즉 서브넷 마스크는 11111111.11111111.11110000.00000000 과 같이 설정할 수 있다.
- 이런 경우는 10진법으로 변환하면, 255.255.240.0 이 된다.
다른 표기 방법
위에서 설명한 방식으로 서브넷 마스크를 표기하자니, 쓸데없이 길다.
그래서 그냥 IP주소 옆에 네트워크 아이디의 bit 크기를 적기도 한다.
예를 들어보자.
- IP주소(192.168.0.1), 서브넷마스크(255.255.255.0)
- **192.168.0.1/24
- IP주소(192.168.0.1), 서브넷마스크(255.255.240.0)
- **192.168.0.1/22
'Back End > 서버 지식' 카테고리의 다른 글
[CI/CD] CI/CD 개념과 GitHub Actions 기초(1) (5) | 2024.10.03 |
---|---|
SSH의 개념과 통신 과정 (0) | 2024.09.21 |
대칭키와 비대칭키 (0) | 2024.09.21 |
컨테이너(Container)와 도커(Docker)의 개념 (1) | 2024.09.20 |