> For the complete documentation index, see [llms.txt](https://krjaeh0.gitbook.io/j-log/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://krjaeh0.gitbook.io/j-log/network/routing-and-switching/routing.md).

# Routing

## 라우팅(Routing)이란?

* 데이터 패킷을 목적지까지 최적의 경로를 찾아 전달하는 과정
* 네트워크 내에서 패킷이 어떻게 이동할지 결정하는 기술

{% hint style="info" %}
✔ **네트워크 장치(라우터, 게이트웨이)가 경로를 결정하여 패킷을 전달**

✔ **라우팅 테이블(Routing Table)에 기반하여 목적지까지 가장 효율적인 경로 선택**

✔ **정적(Static) 또는 동적(Dynamic) 라우팅 방식 사용 가능**
{% endhint %}

***

## 라우팅의 주요 기능

| 기능             | 설명                                       |
| -------------- | ---------------------------------------- |
| 경로 설정          | 목적지까지 최적의 경로를 선택                         |
| 패킷 전달          | 패킷을 다음 네트워크 장치로 전달                       |
| 라우팅 테이블 관리     | 네트워크 경로 정보를 저장하고 업데이트                    |
| 동적 라우팅 프로토콜 사용 | RIP, OSPF, BGP 등의 프로토콜을 사용하여 경로를 자동으로 학습 |

***

## 라우팅 과정 (Routing Process)

{% stepper %}
{% step %}

### 송신 장치에서 패킷 생성

송신 장치(Source Device)에서 패킷을 생성합니다.
{% endstep %}

{% step %}

### 라우터에서 라우팅 테이블 조회

라우터(Router)는 라우팅 테이블을 조회하여 목적지 정보를 확인합니다.
{% endstep %}

{% step %}

### 최적 경로 선택 및 패킷 전달

라우터는 여러 경로를 비교하여 최적의 경로를 선택하고 다음 홉으로 패킷을 전달합니다.
{% endstep %}

{% step %}

### 목적지 네트워크 도달 및 최종 장치 전달

패킷이 목적지 네트워크에 도달하면 최종 장치에 패킷을 전달합니다.
{% endstep %}
{% endstepper %}

* 라우터는 각 목적지로 가는 여러 경로를 비교하여 최적의 경로를 선택합니다.
* 최적의 경로는 홉 수(Hop Count), 대역폭(Bandwidth), 지연 시간(Delay) 등을 기준으로 결정됩니다.

***

## 라우팅의 종류

| 라우팅 방식 | 설명                      | 장점                         | 단점                   |
| ------ | ----------------------- | -------------------------- | -------------------- |
| 정적 라우팅 | 네트워크 관리자가 수동으로 경로를 설정   | <p>보안성이 높다.<br>관리가 쉽다.</p> | 경로 변경 시 수동 조정이 필요하다. |
| 동적 라우팅 | 라우터가 자동으로 경로를 학습 및 업데이트 | 네트워크 변화에 자동으로 적응한다.        | 프로토콜 오버헤드가 발생한다.     |

### 정적 라우팅(Static Routing)

* 네트워크 관리자가 직접 경로를 설정하는 방식으로 라우팅 테이블 관리
* 변경이 거의 없는 작은 네트워크(사무실 등)에 많이 사용된다.
* 경로 변경이 발생하면 수동 조정이 필요하다.
* 보안성이 높고 네트워크 부하가 적다. (네트워크 활성 여부를 확인하기 위한 Hello Packet을 공유할 필요가 없음)

{% code title="Static route example" %}

```bash
ip route add 192.168.2.0/24 via 192.168.1.1
# 192.168.2.0 네트워크로 가는 경로를 192.168.1.1을 통해 설정
```

{% endcode %}

### 동적 라우팅(Dynamic Routing)

* 라우터가 자동으로 네트워크 상태를 분석하고 경로를 업데이트하는 방식
* 대규모 네트워크(기업, ISP)에서 사용
* 네트워크 변화(장애, 경로 변경)에 자동으로 적응한다.
* 라우팅 프로토콜을 사용하여 경로를 학습 및 업데이트 한다.
* 라우터 간의 지속적인 정보 교환(Hello Packet)으로 최적 경로 유지

사용되는 동적 라우팅 프로토콜:

| 프로토콜                                                         | 유형       | 특징                              | 주 용도                |
| ------------------------------------------------------------ | -------- | ------------------------------- | ------------------- |
| <p>RIP<br>(Routing Information Protocol)</p>                 | 거리 벡터 방식 | 홉 수(Hop Count) 기준, 최대 15 홉 제한   | 작은 네트워크 (사무실, 가정 등) |
| <p>OSPF<br>(Open Shortest Path First)</p>                    | 링크 상태 방식 | 대규모 네트워크에서 사용, 최단 경로 우선 알고리즘    | 기업 네트워크             |
| <p>EIGRP<br>(Enhanced Interior Gateway Routing Protocol)</p> | 하이브리드 방식 | Cisco 전용 프로토콜, 거리 벡터 + 링크 상태 방식 |                     |
| <p>BGP<br>(Border Gateway Protocol)</p>                      | 외부 라우팅   | 인터넷 백본에서 사용, ISP 간 경로 최적화       | ISP, 인터넷            |

***

## 라우팅 테이블 (Routing Table)

* 각 목적지 네트워크로 가는 최적 경로를 저장하는 데이터베이스
* 라우터는 패킷을 전송할 때 라우팅 테이블을 참조하여 어디로 보낼지 결정한다.

예제 라우팅 테이블:

```
Destination     Gateway         Interface
192.168.1.0     0.0.0.0         eth0
192.168.2.0     192.168.1.1     eth1
0.0.0.0         192.168.1.254   eth0 (Default Route)
```

* 목적지 주소(Destination)에 따라 적절한 게이트웨이(Gateway)로 패킷 전송

***

## 라우팅과 스위칭 차이

| 구분    | 라우팅(Routing)           | 스위칭(Switching)            |
| ----- | ---------------------- | ------------------------- |
| 목적    | 패킷을 최적 경로로 전달          | LAN 내에서 데이터 프레임 전달        |
| 기반 주소 | IP 주소 기반 (네트워크 계층, L3) | MAC 주소 기반 (데이터 링크 계층, L2) |
| 장비    | 라우터(Router)            | 스위치(Switch)               |
| 주 사용처 | WAN, 인터넷 통신            | LAN 내부 통신                 |

***

## 실무에서 자주 헷갈리는 포인트

### “물리적으로 연결”과 “라우팅 가능”은 다르다

* 라우터 간 케이블 연결만으로는 통신이 안 된다.
* 라우팅 테이블에 목적지 경로(또는 디폴트 라우트)가 있어야 한다.

### 양방향 경로가 있어야 한다

* A → B로 가는 경로만 추가하면 보통 “편도”가 된다.
* B → A(역방향) 경로도 있어야 왕복 통신이 된다.

### 호스트의 기본 게이트웨이(Default gateway)를 확인한다

* 게이트웨이가 없으면 라우팅이 구성돼도 패킷이 밖으로 못 나간다.

### DTE / DCE (시리얼 환경에서의 용어)

* **DTE**: 데이터 단말(일반적으로 라우터/호스트 등 종단).
* **DCE**: 회선/클럭 제공 장비(CSU/DSU 등).
* 테스트 환경에서는 “시리얼 DCE 케이블” 한쪽이 **클럭(clock rate)** 을 제공한다.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://krjaeh0.gitbook.io/j-log/network/routing-and-switching/routing.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
