개발자공부일기
라우터와 라우팅 본문
라우터와 라우팅(동적 라우팅, 정적 라우팅)
라우터란?
라우터는 둘 이상의 패킷 전환 네트워크 또는 서브네트워크를 연결하는 장치입니다.라우터는 데이터 패킷을 의도한 IP주소로 전달하여 이러한 네트워크 간의 트래픽을 관리하고, 여러 장치가 동일한 인터넷 연결을 사용할 수 있도록 하는 등, 두 가지 주요 기능을 제공합니다.
라우터에는 여러 유형이 있지만, 대부분의 라우터는 근거리 통신망(LAN)과 광역 네트워크(WAN)간에 데이터를 전달합니다.LAN은 특정 지리적 영역으로 제한된, 연결된 장치 그룹입니다.LAN에는 일반적으로 단일 라우터가 필요합니다.
반면, WAN은 넓은 지리적 영역에 분산된 대규모 네트워크입니다. 예를 들어, 전국의 여러 위치에서 운영되는 대규모 조직 및 회사는 각 위치에 대해 별도의 LAN이 필요하며, 이 LAN은 다른 LAN과 연결되어 WAN을 형성합니다. WAN은 넓은 영역에 분산되어 있으므로 여러 라우터와 스위치가 필요한 경우가 많습니다.
라우터는 IP 주소를 기반으로 데이터를 전달하며, 이는 MAC 주소를 사용하는 스위치와 구분됩니다.
라우터의 동작 원리
- 데이터 수신
라우터는 다른 장치(클라이언트, 스위치 등)로부터 데이터 패킷을 수신합니다. - 패킷 분석
패킷의 헤더를 확인하여 목적지 IP 주소를 분석합니다. - 라우팅 테이블 참조
라우터는 내부에 저장된 라우팅 테이블을 참조하여 패킷을 어디로 보내야 할지 결정합니다.- 라우팅 테이블: 목적지 주소와 해당 주소로 가기 위한 최적 경로를 기록한 표.
- 테이블은 정적 라우팅(수동 설정) 또는 동적 라우팅(라우팅 프로토콜에 따라 자동 업데이트)으로 관리됩니다.
- 경로 선택 및 전달
가장 효율적인 경로를 선택한 후 패킷을 다음 홉(next hop)으로 전달합니다.- 다음 홉(next hop): 패킷이 전달되는 다음 라우터나 네트워크 장치.
- TTL(Time To Live) 확인
패킷이 무한히 전송되는 것을 방지하기 위해 TTL(이 패킷이 생존가능한 총 시간) 값을 확인하며, 0이 되면 패킷을 폐기합니다.
라우터의 다른 종류들
무선 라우터: 무선 라우터는 이더넷 케이블을 사용하여 모뎀에 연결합니다.바이너리 코드의 패킷을 무선 신호로 변환하여 데이터를 배포한 다음 안테나를 사용하여 무선으로 브로드캐스트합니다.무선 라우터는 LAN을 설정하지 않습니다. 대신, 무선 통신을 사용하여 여러 장치를 연결하는 무선 근거리 통신망(WLAN)을 만듭니다.
유선 라우터: 무선 라우터와 마찬가지로 유선 라우터도 이더넷 케이블을 사용하여 모뎀에 연결합니다.그런 다음 별도의 케이블을 사용하여 네트워크 내의 하나 이상의 장치에 연결하고, LAN을 만들며, 해당 네트워크 내의 장치를 인터넷에 연결합니다.
소규모 LAN용 무선 및 유선 라우터 외에도 특정 기능을 제공하는 특수 유형의 라우터가 많이 있습니다.
코어 라우터: 가정 또는 소규모 회사 LAN 내에서 사용되는 라우터와 달리 코어 라우터는 네트워크 내에서 대량의 데이터 패킷을 전송하는 대기업 및 사업체에서 사용합니다.코어 라우터는 네트워크의 "코어"에서 작동하며 외부 네트워크와 통신하지 않습니다.
에지 라우터: 코어 라우터는 대규모 네트워크 내에서 데이터 트래픽만 관리하는 반면, 에지 라우터는 코어 라우터 및 외부 네트워크 모두와 통신합니다.에지 라우터는 네트워크의 "에지"에 있으며경계 게이트웨이 프로토콜(BGP)을 사용하여 다른 LAN 및 WAN과 데이터를 송수신합니다.
가상 라우터: 가상 라우터는 표준 하드웨어 라우터와 동일한 기능을 수행하는 소프트웨어 애플리케이션입니다.가상 라우터 이중화 프로토콜(VRRP)을 사용하여 기본 및 백업 가상 라우터를 설정할 수 있습니다.
라우터의 동작 과정 3번을 보면 라우팅 태이블이니 동적/정적 라우팅같은 용어들이 나온다 이제 이걸 자세히 알아보자.
라우팅
라우팅은 네트워크에서 경로를 선택하는 프로세스입니다. 컴퓨터 네트워크는 노드라고 하는 여러 시스템과 이러한 노드를 연결하는 경로 또는 링크로 구성됩니다. 상호 연결된 네트워크에서 두 노드 간의 통신은 여러 경로를 통해 이루어질 수 있습니다. 라우팅은 미리 정해진 규칙을 사용하여 최상의 경로를 선택하는 프로세스입니다.
라우팅은 네트워크 통신의 효율성을 높입니다. 네트워크 통신 장애가 발생하면 웹 사이트 페이지가 로드될 때까지 사용자가 기다리는 시간이 길어집니다. 또한 웹 사이트 서버에서 많은 수의 사용자를 처리하지 못해 서버의 작동이 중단될 수 있습니다. 라우팅은 네트워크가 정체 없이 최대한 많은 용량을 사용할 수 있도록 데이터 트래픽을 관리함으로써, 네트워크 장애를 최소화해 줍니다.
라우팅의 작동
라우터는 내부 라우팅 테이블을 참조하여 네트워크 경로를 따라 패킷을 라우팅하는 방법을 결정합니다. 라우팅 테이블에는 패킷이 라우터가 담당하는 모든 대상에 도달하기 위해 택해야 하는 경로가 기록됩니다. 열차 승객이 어떤 열차를 타야 할지 결정하기 위해 참조하는 열차 시간표를 생각해보세요. 라우팅 테이블도 이와 비슷하지만, 기차가 아닌 네트워크 경로를 위한 것입니다.
라우터는 다음과 같은 방식으로 작동합니다. 라우터가 패킷을 수신하면 열차 차장이 승객의 티켓을 확인하여 어떤 열차를 타야 하는지 결정하는 방식과 같이 패킷의 헤더*를 읽어 가려는 목적지를 확인합니다. 그런 다음 라우팅 테이블의 정보를 기반으로 패킷을 라우팅할 위치를 결정합니다.
라우터는 수백만 개의 패킷을 대상으로 초당 수백만 번의 작업을 수행합니다. 패킷이 목적지로 이동할 때 각기 다른 라우터에 의해 여러 번 라우팅될 수 있습니다.
라우팅 테이블은 정적일 수도 있고 동적일 수도 있습니다. 정적 라우팅 테이블은 변경되지 않습니다. 네트워크 관리자는 정적 라우팅 테이블을 수동으로 설정합니다. 이에 따라 기본적으로 관리자가 테이블을 수동으로 업데이트하지 않는 한 데이터 패킷이 네트워크를 통과하면서 택하는 경로가 설정됩니다.
동적 라우팅 테이블은 자동으로 업데이트됩니다. 동적 라우터는 다양한 라우팅 프로토콜을 사용하여 최단 경로와 가장 빠른 경로를 결정합니다. 또한 Google 지도, Waze, 기타 GPS 서비스가 과거 주행 성능 및 현재 운전 조건을 기반으로 최상의 주행 경로를 결정하는 방식과 유사하게 패킷이 목적지에 도달하는 데 걸리는 시간을 기반으로 이러한 결정을 내립니다.
동적 라우팅에는 더 많은 컴퓨팅 성능이 필요하며, 이것은 소규모 네트워크에서 정적 라우팅에 의존할 수 있는 이유이기도 합니다. 그러나 중간 규모 및 대규모 네트워크의 경우 동적 라우팅이 훨씬 더 효율적입니다.
*패킷 헤더는 패킷에 첨부된 작은 데이터 묶음으로, 우편물 외부에 찍힌 포장 전표와 같이 패킷의 출처, 향하는 위치 등 유용한 정보를 제공합니다.
동적 라우팅과 정적 라우팅
정적 라우팅(Static Routing)
정적 라우팅은 관리자가 수동으로 라우터의 라우팅 테이블에 경로를 추가하고, 직접 유지보수하는 방식입니다. 이 방식은 작은 네트워크에서 간단하고 안정적이지만, 네트워크 변화에 민감하지 않아 대규모 환경에서는 비효율적입니다.
특징
구성 및 유지관리
초기 설정: 관리자가 모든 경로를 직접 입력해야 합니다.
예: ip route 192.168.1.0 255.255.255.0 192.168.2.1
위 명령은 192.168.1.0 네트워크로 데이터를 보내기 위해 192.168.2.1 라우터를 경유하도록 설정합니다.
효율성
- 설정된 경로만 사용하므로 네트워크 계산 부하가 없습니다.
- 네트워크 규모가 작을 경우 효율적이지만, 큰 네트워크에서는 경로 변경이나 장애 처리에 비효율적입니다.
보안
- 외부로부터의 자동 경로 업데이트가 없으므로 라우팅 테이블이 조작될 가능성이 적습니다.
- 라우팅 정보 교환이 없기 때문에 프로토콜 기반의 공격에 노출되지 않습니다.
라우팅 테이블
- 관리자가 설정한 고정 경로만 포함됩니다.
- 동적으로 경로를 추가하거나 제거하지 않습니다.
장점
- 설정이 간단하고 네트워크 자원이 적게 사용됩니다.
- 자동 프로토콜로 인해 발생하는 네트워크 트래픽이 없습니다.
- 잘못된 경로로 패킷이 전송될 가능성이 적습니다.
단점
- 네트워크 구조 변경 시 모든 라우터를 수동으로 수정해야 하므로 관리가 어렵습니다.
- 장애 발생 시 대체 경로를 자동으로 찾지 못합니다.
동적 라우팅(Dynamic Routing)
동적 라우팅은 라우팅 프로토콜을 사용해 라우터가 경로 정보를 스스로 학습하고, 네트워크 상태에 따라 라우팅 테이블을 자동으로 업데이트하는 방식입니다. 대규모 네트워크에서 효율적이며, 장애 발생 시 자동으로 대체 경로를 찾아 가용성을 높입니다.
특징
- 구성 및 유지관리
- 초기 설정: 동적 라우팅 프로토콜을 설정해야 하며, 프로토콜마다 설정 방법이 다릅니다.
예: OSPF의 경우 라우터 간 영역(Area)을 설정하고 네트워크를 정의해야 합니다. - 변경 관리: 네트워크 변경 시 라우터 간 경로 정보를 자동으로 교환하여 라우팅 테이블을 업데이트합니다.
- 적합한 환경: 대규모 네트워크, 자주 변경되는 네트워크 구조에 적합합니다.
- 초기 설정: 동적 라우팅 프로토콜을 설정해야 하며, 프로토콜마다 설정 방법이 다릅니다.
- 효율성
- 네트워크의 실시간 상태를 반영하므로 장애가 발생해도 대체 경로를 자동으로 찾을 수 있습니다.
- 대규모 환경에서 라우터 간의 정보 교환이 효율적입니다.
- 라우팅 프로토콜 사용
- 거리 벡터 알고리즘:
라우터가 인접 라우터로부터 거리 정보를 주기적으로 수집하여 경로를 업데이트합니다.
예: RIP (Routing Information Protocol) - 링크 상태 알고리즘:
네트워크 전체의 토폴로지 정보를 기반으로 최단 경로를 계산합니다.
예: OSPF (Open Shortest Path First) - 경로 벡터 알고리즘:
자율 시스템 간의 경로 정보를 기반으로 경로를 설정합니다.
예: BGP (Border Gateway Protocol)
- 거리 벡터 알고리즘:
- 라우팅 테이블
- 라우팅 프로토콜을 통해 동적으로 경로 정보를 학습하고 업데이트합니다.
- 경로의 상태가 바뀌면 실시간으로 반영됩니다.
장점
- 네트워크 상태 변화에 자동으로 적응합니다.
- 장애가 발생하면 대체 경로를 자동으로 선택하여 가용성을 높입니다.
- 대규모 네트워크 환경에서 관리가 간편합니다.
단점
- 초기 설정이 복잡하며, 라우터의 계산량과 메모리 사용량이 증가합니다.
- 라우팅 프로토콜로 인한 네트워크 트래픽이 증가할 수 있습니다.
- 잘못된 라우팅 정보가 학습되면 문제를 유발할 수 있습니다.
주요 라우팅 프로토콜
네트워킹에서 프로토콜은 연결된 모든 컴퓨터가 데이터를 이해할 수 있도록 데이터 형식을 지정하는 표준화된 방법입니다. 라우팅 프로토콜은 네트워크 경로를 식별하거나 알리는 데 사용되는 프로토콜입니다.
다음과 같은 프로토콜은 데이터 패킷이 인터넷을 통해 길을 찾아가는 데 도움이 됩니다.
IP: 인터넷 프로토콜(IP)은 각 데이터 패킷의 원본과 대상을 지정합니다.라우터는 각 패킷의 IP 헤더를 검사하여 패킷을 보낼 위치를 식별합니다.
BGP( Border Gateway Protocol ): 경로 벡터 알고리즘 (BGP) 라우팅 프로토콜은 어떤 네트워크에서 어떤 IP주소를 제어하고 어떤 네트워크가 서로 연결되는지 알리는 데 사용됩니다.(이러한 BGP 알림을 수행하는 대규모 네트워크를 자율시스템이라고 합니다.)BGP는 동적 라우팅 프로토콜입니다.
아래 프로토콜은 AS 내에서 패킷을 라우팅합니다.
OSPF( Open Shortest Path First ): 링크 상태 알고리즘 (OSPF) 프로토콜은 일반적으로 네트워크 라우터에서 패킷을 대상으로 보내는 데 사용할 수 있는 가장 빠르고 짧은 경로를 동적으로 식별하는 데 사용됩니다.
RIP( Routing Information Protocol ): 거리 벡터 알고리즘 (RIP)은 "홉 수"를 사용하여 한 네트워크에서 다른 네트워크로의 최단 경로를 찾습니다. 여기서 "홉 수"는 패킷이 도중에 통과해야 하는 라우터 수를 의미합니다.(패킷이 한 네트워크에서 다른 네트워크로 이동하는 경우 이를 "홉"이라고 합니다.)
다른 내부 라우팅 프로토콜에는 EIGRP(주로 Cisco 라우터와 함께 사용하기 위한 향상된 내부 게이트웨이 라우팅 프로토콜) 및 IS-IS(중간 시스템에서 중간 시스템으로)가 포함됩니다.
'TIL(Today I Learned)' 카테고리의 다른 글
OSI전송 계층 (0) | 2024.12.18 |
---|---|
OSI 네트워크 계층 (0) | 2024.12.17 |
DNS, 3-way Handshake, SSL/TLS (0) | 2024.12.12 |
IP란? (0) | 2024.12.11 |
CDN이란? (0) | 2024.12.10 |