해당 글은 VSFe 깃허브 레포를 참고하여 작성한 글입니다. (아래 출처에 표기)
✅ 서브넷 마스크와, 게이트웨이에 대해 설명해 주세요.
▶ 서브넷 마스크
서브넷 마스크: IP 주소를 네트워크 주소와 호스트 주소로 나누는 데 사용되는 값이다.
- 네트워크 주소: 네트워크에 속한 모든 호스트(단말)를 포함하는 네트워크 자체를 지칭하는 주소이다.
- 호스트 주소: 같은 네트워크 내에 각 호스트(단말)를 구분하기 위한 주소이다.
IP 주소와 관련된 자세한 설명은 여기를 참고하면 좋을 것 같다.
🔽 필요성
- IP 주소에서 네트워크 주소와 호스트 주소를 구분하는 경계점이 고정되어 있지 않다. 서브넷 마스크를 사용하면 필요한 호스트 IP 개수에 따라 네트워크 크기를 다르게 할당할 수 있도록 하여, IP 주소의 낭비를 방지할 수 있다.
🔽 규칙
- 서브넷 마스크는 네트워크와 호스트 부분을 구분하기 위해 32비트로 구성된다.
- 이진수에서 '1'은 네트워크 주소를, '0'은 호스트 주소를 나타낸다.
8비트 | 8비트 | 8비트 | 8비트 | ||
A 클래스 | IP 주소 | 네트워크 | 호스트 | 호스트 | 호스트 |
기본 서브넷 마스크 | 255 | 0 | 0 | 0 | |
이진수 표현 | 11111111 | 00000000 | 00000000 | 00000000 | |
B 클래스 | IP 주소 | 네트워크 | 네트워크 | 호스트 | 호스트 |
기본 서브넷 마스크 | 255 | 255 | 0 | 0 | |
이진수 표현 | 11111111 | 11111111 | 00000000 | 00000000 | |
C 클래스 | IP 주소 | 네트워크 | 네트워크 | 네트워크 | 호스트 |
기본 서브넷 마스크 | 255 | 255 | 255 | 0 | |
이진수 표현 | 11111111 | 11111111 |
11111111 | 00000000 |
과거에는 IP 주소를 구분할 때 클래스(class) 개념을 사용했다. IP 주소는 A, B, C, D, E의 클래스로 구분되며, 클래스에 따라 할당되는 IP 주소의 개수와 역할이 다르다.
- A 클래스: 네트워크.호스트.호스트.호스트 (약 16,000,000개)
- B 클래스: 네트워크.네트워크.호스트.호스트 (약 65,000개)
- C 클래스: 네트워크.네트워크.네트워크.호스트 (약 250개)
- D 클래스: 멀티캐스트용
- E 클래스: 실험용, 일반적으로는 사용되지 않음
이러한 클래스 기반의 IP 주소 체계를 클래스풀(classful)이라고 한다. 반면, 현재는 클래스 개념을 버리고 더 유연한 클래스리스(classless) 기반의 주소 체계를 사용하고 있으며, 이 클래스리스 체계에서 네트워크와 호스트를 나누는 역할을 하는 것이 서브넷 마스크라고 한다.
🔽 예시
IP 주소 | 102.4.31.57 |
서브넷 마스크 | 255.255.255.0 |
- 네트워크 주소: 102.4.31.0
- 호스트 주소: 0.0.0.57
▶ 게이트웨이
게이트웨이: 네트워크 장치(일반적으로 라우터)가 다른 네트워크로 트래픽을 전달하는 출입구 역할을 하는 장치이다. 라우터는 공인 IP와 사설 IP 둘 다 가질 수 있는데, 이때 라우터가 가지는 사설 IP가 바로 게이트웨이이다. 게이트웨이는 내부 네트워크와 외부 네트워크(예: 인터넷) 간의 트래픽을 관리한다.
- 예: 컴퓨터 1에서 카카오톡 메시지를 보낸다고 하면, 컴퓨터는 데이터를 라우터(공유기)의 게이트웨이 주소로 보낸다. 라우터는 이 데이터를 받아서 외부 네트워크의 목적지(카카오톡) 서버로 전송한다.
공인 IP, 사설 IP와 관련된 자세한 설명은 여기를 참고하면 좋을 것 같다.
✅ NAT에 대해 설명해 주세요.
▶ NAT(Network Address Translation)
NAT(Network Address Translation): 내부 네트워크의 사설 IP 주소를 공인 IP 주소로 변환하여, 내부 네트워크의 장치들이 외부 네트워크(인터넷)와 통신할 수 있도록 하는 기술이다. 일반적으로 게이트웨이(일반적으로 라우터)에서 사용하는 기술이다.
🔽 역할
- IP 주소 절약: 내부 네트워크에서 사용하는 사설 IP 주소를 공인 IP 주소로 변환하여, 여러 장치가 하나의 공인 IP주소를 공유하여 인터넷에 연결할 수 있게 한다.
- 보안 강화: 외부에서 내부 네트워크의 개별 장치에 직접 접근할 수 없게 하고, 내부 네트워크의 IP 주소를 숨기는 역할을 한다.
🔽 작동 방식
- 공유기에 연결된 각 컴퓨터는 사설 IP 주소를 할당받는다.
- 컴퓨터가 웹사이트에 접속하려고 하면, 게이트웨이 주소를 가진 공유기(라우터)에게 신호를 보낸다.
- 공유기는 요청을 받은 내부 IP 주소를 기록한다.
- 사설 IP 주소는 외부 네트워크에서 직접 접속할 수 없으므로, 공유기는 이 사설 IP를 공인 IP로 변환한다.
- 공유기는 변환된 공인 IP 주소를 사용해 외부의 웹사이트에 요청을 전송한다.
- 해당 웹사이트는 이 요청을 처리한 후, 응답을 공인 IP 주소로 다시 보낸다.
- 공유기는 받은 응답을 다시 사설 IP 주소로 변환하여, 원래 요청을 보낸 컴퓨터로 전달한다.
✅ 서브넷 마스크의 표현 방식에 대해 설명해 주세요.
- 도트 10진수 표기법: 서브넷 마스크를 10진수로 된 4개의 값으로 점(.)으로 구분하여 표현한다.
- 예: 255.255.255.0 (이진수로는 11111111.11111111.11111111.00000000)
- CIDR 표기법 (Classless Inter-Domain Routing): 서브넷 마스크를 네트워크 주소 뒤에 슬래시(/)와 함께 네트워크 부분의 비트 수로 표현한다.
- 예: 192.168.1.0/24 (여기서 /24는 서브넷 마스크의 첫 24비트가 네트워크 부분을 나타낸다는 의미로, 255.255.255.0과 동일)
✅ 그렇다면, 255.0.255.0 같은 꼴의 서브넷 마스크도 가능한가요?
이론적으로 가능하지만, 일반적인 서브넷 마스크 규칙에 맞지 않기 때문에 비표준적인 설정이다.
- 표준 서브넷 마스크는 연속된 1과 0으로 구성되어야 한다.
- 예: 255.255.255.0은 연속된 1(네트워크 부분)과 연속된 0(호스트 부분)으로 구성된다.
📍 문제 출처
Tech-Interview / 03-NETWORK.md
📍 참고 자료
'Programming > Network' 카테고리의 다른 글
[Network] XSS, CSRF (1) | 2024.08.27 |
---|---|
[Network] 멀티플렉싱, 디멀티플렉싱 (0) | 2024.08.26 |
[Network] 로드밸런서 (0) | 2024.08.26 |
[Network] 라우팅, 포워딩 (0) | 2024.08.25 |
[Network] Stateless, Connectionless (0) | 2024.08.18 |