아는 것도 있지만 이번 기회에 정리해두는게 좋을 것 같아서 기록한다.
정보처리기사 필기 공부할 때, "서브넷 마스크" 관련 문제가 있었는데 여기 나오네!

AWS 관련 용어들의 기본 개념
- 인바운드(Inbound): 외부에서 클라이언트의 요청이 AWS 서버(EC2 인스턴스)로 들어오는 트래픽.
- 아웃바운드(Outbound): AWS 서버가 처리한 요청을 외부로 내보내는 트래픽.
- 포트(Port): 컴퓨터 네트워크에서 특정 서비스나 애플리케이션을 식별하는 번호.
서버 애플리케이션은 각자 고유한 포트 번호를 사용하고, 프로토콜은 특정 포트를 사용하여 통신한다.
포트 범위는 0부터 65535까지 존재하며, 보안상 0~1023번 포트를 Well-known port라고 한다.
일반적으로 잘 알려진 서비스들이 Well-known 포트를 사용한다. - Source(출발지): 인바운드 트래픽의 경우, 요청을 보내는 외부 IP 주소를 의미한다.
예를 들어, 사용자가 웹사이트를 요청할 때 클라이언트의 IP가 Source가 된다. - Destination(목적지): 아웃바운드 트래픽의 경우, EC2 인스턴스가 데이터를 보내는 외부 목적지 IP이다.
예를 들어, EC2 인스턴스가 외부 서버나 인터넷에 데이터를 보낼 때 그 서버의 IP가 Destination이 된다.
💡 통신 과정을 종합하면,
1. 클라이언트가 source(클라이언트의 ip)를 통해서 서버에 인바운드 요청을 보낸다.
2. 서버가 요청을 처리한다.
3. 서버가 요청에 대한 처리 결과를 destination(ip)으로 아웃바운드 응답을 보낸다.
💡 자주 사용하는 포트와 서비스
- HTTP → 포트 80, 웹 트래픽을 처리하는 기본 포트
- HTTPS → 포트 443, 보안된 웹 트래픽을 처리
- SSH → 포트 22, 리눅스 서버에 원격 접속
- RDP → 포트 3389, 윈도우 서버에 원격 데스크탑 접속
- FTP → 포트 21, 파일 전송을 위한 프로토콜
- DNS → 포트 53, 도메인 이름 해석을 위한 서비스
- MySQL → 포트 3306, MySQL 데이터베이스 서비스
CIDR 표기법과 서브넷 주소
CIDR 표기법(Classless Inter-Domain Routing)은 IP 주소 범위를 정의하는 방법이다.
예를 들어, 192.168.1.0/24라는 서브넷은 192.168.1.0부터 192.168.1.255까지의 주소 범위를 의미한다.
이를 통해 특정 IP 대역을 지정하여 접속할 수 있는 범위를 제한할 수 있다.
- 서브넷(Subnet): IP 주소를 작은 단위로 나누는 것.
- 서브넷 마스크(Subnet Mask): IP 주소를 네트워크 부분과 호스트 부분으로 나누는 규칙.
앞선 예시였던 192.168.1.0/24에서
/24는 서브넷 마스크를 나타내며, 서브넷의 크기와 IP 주소 범위를 결정한다.
여기서 네트워크 주소는 192.168.1.0이다.
호스트 주소는 0이 있었던 위치에 0~254까지의 숫자가 올 수 있으니 192.168.1.1부터 192.168.1.254까지이다.
192.168.1.255는 브로드캐스트 주소이다.
- 네트워크 주소: 네트워크 ID, 네트워크의 전체 범위를 의미.
- 호스트 주소: 호스트 ID, 개별 장치 식별하기 위한 고유한 번호. 범위 안에 어디든 있을 수 있음.
- 브로드캐스트 주소: 네트워크 내 모든 장치에게 메시지 전송. 보통 범위의 맨 끝.
서브넷을 사용하는 이유
- 네트워크 분할: 트래픽의 효율성이 높아지고 네트워크 충돌을 줄일 수 있다.
- 보안 강화: 서브넷을 사용하면 각 서브넷 간에 접근 제어를 할 수 있어, 네트워크 보안이 강화된다.
- IP 주소 관리: 서브넷을 사용하면 한정된 IP 주소를 더 효율적으로 관리할 수 있다.
예를 들어, 대규모 네트워크에서는 서브넷을 통해 IP 주소 범위를 나누어 효율적으로 분배하고 관리할 수 있다.
IP 주소의 클래스와 범위
1993년부터 CIDR 표기법으로 IP를 할당하게 바뀌어서 클래스로 할당하는 방법은 지금은 사용하지 않지만, 서브네팅을 하기 위해서는 알아야 하는 개념이라고 해서 기록해본다.
IP 주소는 4개의 옥텟(자릿수)으로 구성되어 있고, 각 옥텟은 8비트로 이루어져 있다. (1옥텟 = 8비트)
A 클래스 | - 네트워크 아이디가 1개 옥텟 (8비트) - 범위: 0.0.0.0 ~ 127.255.255.255 (앞자리 0~127) - 서브넷 마스크: 255.0.0.0 - 호스트 주소 개수: 2^24-2=16,777,214개 |
B 클래스 | - 네트워크 아이디가 2개 옥텟 (16비트) - 범위: 128.0.0.0 ~ 191.255.255.255 (앞자리 128~191) - 서브넷 마스크: 255.255.0.0 - 호스트 주소 개수: 2^16-2=65,534개 |
C 클래스 | - 네트워크 아이디가 3개 옥텟 (24비트) - 범위: 192.0.0.0 ~ 223.255.255.255 (앞자리 192~223) - 서브넷 마스크: 255.255.255.0 - 호스트 주소 개수: 2^8-2=256개 |
이렇게 되면, C 클래스는 기본적으로 24비트에 호스트 주소 개수가 256개 밖에 안 되니까,
192.168.10.245라는 주소가 있다면 C 클래스의 범위에서 유일해서, 사용할 수 있는 주소가 제한적이게 된다.
그래서 서브넷과 서브네팅이라는 개념이 생겨났다.
☞ C 클래스에서 서브네팅을 해서 네트워크를 쪼개면,
192.168.10.245라는 하나의 주소를 24비트, 23비트 등 여러 네트워크 범위 안에서 사용할 수 있게 된다.
클래스에 따른 서브넷 마스크(비트)는 기본적으로 상단의 그래프처럼 되어있다.
하지만 IP 주소가 반드시 저런 방식으로 구성되는 것은 아니다.
예를 들어, B 클래스는 기본적으로는 서브넷 마스크가 255.255.0.0이라서 16비트지만,
앞자리(첫번째 옥텟) 128~191의 범위 안에서 23자리가 고정되어 있다면, 23비트를 가진 IP주소가 있을 수 있다!
IP주소 A,B,C클래스 및 서브넷에 대한 이해
IP주소의 총 개수 : 4,294,967,296계산 방법 : 256 * 256 * 256 * 256 문제점 : 처음 이 체계를 만들때는 40억개면 충분 할 것이라 생각했지만, 지금 기준엔 너무나도 모자람이 한정된 자원을 체계적으로 잘
raisonde.tistory.com
https://realsalmon.tistory.com/3
[AWS] EC2 인스턴스와 SSH를 연결할 때 "Connection timed out" 에러
어제까지만 해도 SSH에 잘 접속되던게 갑자기 되지 않았다. Connection timed out..? 해결법 : 인스턴스 보안그룹의 인바운드 규칙을 수정하자 1. EC2 > 인스턴스 > 보안 > 보안 그룹 선택 2. Edit inbound rules
realsalmon.tistory.com
🌐 IP 클래스 · 서브넷 마스크 · 서브넷팅 계산법 💯 총정리
아이피(IP) 정리 IP(Internet Protocol) 란 인터넷에 연결되어 있는 모든 장치들(컴퓨터, 서버 장비, 스마트폰 등)을 식별할 수 있도록 각각의 장비에게 부여되는 고유 주소이다. 아이피(ip)는 일반적으
inpa.tistory.com
'💾 Backend > PHP, Cloud' 카테고리의 다른 글
간단한 php 문법 (0) | 2024.11.27 |
---|---|
php 실행을 위한 툴 설치 (Apache, Tomcat) (0) | 2024.11.26 |