해당 글은 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 주소를 숨기는 역할을 한다.

🔽 작동 방식

  1. 공유기에 연결된 각 컴퓨터는 사설 IP 주소를 할당받는다.
  2. 컴퓨터가 웹사이트에 접속하려고 하면, 게이트웨이 주소를 가진 공유기(라우터)에게 신호를 보낸다.
  3. 공유기는 요청을 받은 내부 IP 주소를 기록한다.
  4. 사설 IP 주소는 외부 네트워크에서 직접 접속할 수 없으므로, 공유기는 이 사설 IP를 공인 IP로 변환한다.
  5. 공유기는 변환된 공인 IP 주소를 사용해 외부의 웹사이트에 요청을 전송한다.
  6. 해당 웹사이트는 이 요청을 처리한 후, 응답을 공인 IP 주소로 다시 보낸다.
  7. 공유기는 받은 응답을 다시 사설 IP 주소로 변환하여, 원래 요청을 보낸 컴퓨터로 전달한다.

 

 

✅ 서브넷 마스크의 표현 방식에 대해 설명해 주세요.

  1. 도트 10진수 표기법: 서브넷 마스크를 10진수로 된 4개의 값으로 점(.)으로 구분하여 표현한다.
    • 예: 255.255.255.0 (이진수로는 11111111.11111111.11111111.00000000)
  2. 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
soeun2537