# 서브넷 마스크, 게이트웨이

## 서브넷 마스크

#### 서브넷 마스크란

* 서브넷 마스크는 [비클래스 주소 IP](https://jmxx219.gitbook.io/cs/ip#classful-vs-classless)의 표기 방법이다.
* IP를 표기할 때 네트워크 ID의 길이를 표시한다.
  * 네트워크 ID 길이로 네트워크 크기(호스트 개수)를 결정한다.
  * 네트워크 ID 길이가 없으면 네트워크 ID를 알 수 없다.

![](https://blog.kakaocdn.net/dn/wlC3O/btrGunHvF4V/F7KCksOtkt3lyakXVbmeXk/img.jpg)<br>

#### 서브넷 마스크 표기법

* 프리픽스 표기법: `/prefix-size` 표시
  * ex: `3.25.169.250/24`
* 이진 표기법: 프리픽스 비트를 모두 `1`로 표시
  * ex: `1111 ... 1111 00000000`
* DDN 표기법: 이진 서브넷 마스크를 DDN으로 표시
  * ex: `255.255.255.0`

<br>

#### 네트워크 주소 계산

IP 주소와 서브넷 마스크가 주어지면 네트워크 주소를 알 수 있다.

IP 주소가 `200.100.11.1/23`으로 주어졌을 때, 아래와 같은 정보를 얻을 수 있다.

* 네트워크 주소 : `200.100.10.0/23`
* 브로드캐스트 주소: `200.100.11.255/23`
* 최대 호스트 개수 : 510개( `200.100.10.1`\~`200.100.11.254`)

\
![](https://velog.velcdn.com/images/dragonappear/post/a07183fd-28e6-4e82-bc02-dcd6d81c0774/image.png)<br>

## 게이트웨이

#### 게이트웨이란

* 컴퓨터 네트워크에서 서로 다른 통신망, 프로토콜을 사용하는 네트워크 간의 통신을 가능하게 하는 컴퓨터나 소프트웨어를 두루 일컫는 용어
* 즉 다른 네트워크로 들어가는 관문(입구) 역할을 하는 네트워크 포인트이다.
  * 쉽게 예를 들자면 해외여행을 들 수 있는데 해외로 나가기 위해서 꼭 통과해야 하는 공항이 게이트웨이와 같은 개념이다.
  * 우리 주변에서 쉽게 볼 수 있는 게이트웨이는 공유기다.
* 외부 네트워크와 연결된 네트워크는 반드시 기본 게이트웨이가 하나 이상 존재한다.
  * 기본 게이트웨이는 해당 네트워크에서 가장 상위의 라우팅 테이블을 가지고 있는 라우터와 연결된 게이트웨이를 말한다.

<br>

#### 게이트웨이가 필요한 이유

동일한 네트워크에 있는 호스트 간 통신은 직접 통신을 하면 되기 때문에 통신 방법이 단순하다. 그러나, 서로 다른 네트워크에 있는 호스트 간 통신은 통신 경로가 아주 방대해지고 복잡하다.

![](https://velog.velcdn.com/images/dragonappear/post/23995da5-36fe-4538-aeac-7f0e50efd804/image.png)<br>

통신 경로를 단순화하고, 연결 회선을 효율적으로 관리하기 위해서 다수의 호스트들을 여러 그룹으로 나누고, 각 그룹의 호스트들은 한 지점에 공통적으로 접속하게 하여, 각 그룹의 공통된 지점을 다시 서로 연결하면 다수 간의 통신 경로가 매우 단순화된다.

![](https://velog.velcdn.com/images/dragonappear/post/d2c1d797-10e6-4c5d-9f87-55dfe749847a/image.png)

즉, 게이트웨이는 네트워크의 복잡한 연결을 단순화하고 효율적으로 관리하기 위해서 사용한다.

<br>

#### 게이트웨이 의미와 주소

네트워크를 주택에 비유하면 각 방은 호스트에 해당되고, 대문은 게이트웨이에 해당된다.

![](https://velog.velcdn.com/images/dragonappear/post/e4d33bac-51c5-4abb-bd62-af872abc4ac5/image.png)

각 방을 구분하기 위해서는 방 번호가 필요한데, 각 방에 할당된 방 번호는 IP 주소라 할 수 있다.

![](https://velog.velcdn.com/images/dragonappear/post/c60e9384-6179-403d-9c0f-192a9edafc76/image.png)

대문 주소에도 IP 주소가 부여되고 그것이 게이트웨이 주소이다.

<br>

#### 게이트웨이와 라우터의 차이점

* 라우터는 패킷이 목적지까지 도달하는데 최적의 경로로 라우팅, 포워딩을 한다.
* 게이트웨이는 다른 네트워크로 통하는 출입구 역할을 한다.

*이렇게 둘을 오해하는 이유는 공유기가 라우팅 뿐만 아니라 NAT, 방화벽, 게이트웨이, 스위칭 기능 등 복합 통신 기기여서 둘을 서로 구분하지 않고 편의상 혼용하여 사용하기 때문에 발생한다고 생각된다.*

![](https://velog.velcdn.com/images/dragonappear/post/d1398b15-67b6-464c-870e-f1b679b68ad0/image.png)<br>

## NAT

#### NAT(Network Address Translation)

* 사설 네트워크에 연결된 호스트의 사설 IP 주소와 공인 IP 주소 변환 프로토콜
* 인터넷에 접속할 때만 공인 IP 주소 사용하여 IP 주소를 절약할 수 있다.
  * [\[IPv4 주소 고갈 문제해결 >논리적 확장 방안 > NAT\] 스터디 내용](https://jmxx219.gitbook.io/cs/ip#ipv4internet-protocol-version-4)
* 호스트의 IP 주소 외부 노출 방지한다.

<br>

#### NAT 동작

![](https://t1.daumcdn.net/cfile/tistory/997692415FC8801E1D)

1. 사용자(사설 IP 주소: `10.10.10.10`)가 목적지(공인 IP 주소: `20.20.20.20`)으로 패킷 전송
2. NAT 장비에서 사용자가 보낸 패킷 수신 후 공인 IP 주소(`11.11.11.11`)로 변경한 후, NAT 테이블에 기록
3. NAT 장비에서 출발지 IP 주소를 공인 IP 주소(`11.11.11.11`)로 변경해 목적지로 전송
4. 요청을 수신한 목적지 웹 서버에서 공인 IP 주소(`11.11.11.11`)로 응답
5. 웹 서버로부터 응답 패킷을 수신한 NAT 장비에서 자신의 NAT 테이블에서 목적지 IP 주소에 대한 출발지 IP 주소(`10.10.10.10`) 확인
6. NAT 장비에서 목적지 IP 주소를 `10.10.10.10`로 변경해 목적지로 전송하여 사용자는 최종적으로 패킷을 수신

<br>

## Ref

* <https://lamarr.dev/networkingbeginner/2020/03/22/09.html>
* <https://ko.wikipedia.org/wiki/%EA%B2%8C%EC%9D%B4%ED%8A%B8%EC%9B%A8%EC%9D%B4>
* <https://m.blog.naver.com/kangyh5/223175392071>
* <https://zigispace.net/1107>
