라우팅(Routing)은 네트워크에서 패킷이 목적지까지 이동하기 위한 최적의 경로를 설정하고 전송하는 과정.
라우팅을 수행하는 장치는 라우터(Router)이며, 네트워크 계층의 대표 장치로 L3 스위치라고도 부른다.
라우팅은 송신지에서 수신지까지의 논리적 경로를 선택하는 과정으로, 네트워크 간 통신의 핵심 구성 요소.
일반 가정에서 사용하는 공유기 또한 라우터 기능을 포함하며, 내부 네트워크(사설 IP)와 외부 네트워크(공인 IP)를 연결하는 역할을 수행한다.
패킷이 여러 라우터를 거쳐 전송될 때 각 라우터를 통과하는 과정을 홉(Hop) 이라 하며, 홉 수는 경로 효율성을 평가하는 주요 지표로 사용된다.
라우팅의 핵심 구성 요소는 라우팅 테이블(Routing Table).
라우팅 테이블은 특정 목적지까지 패킷을 전달하기 위한 정보의 집합으로, 각 항목은 다음 정보를 포함한다.
| 항목 | 설명 |
|---|---|
| Destination | 목적지 네트워크 주소 |
| Subnet Mask | 네트워크 범위를 구분하는 마스크 |
| Next Hop | 다음 라우터의 IP 주소 |
| Interface | 패킷이 나가는 네트워크 인터페이스 |
| Metric | 경로의 비용 또는 우선순위 |
라우팅 테이블에 존재하지 않는 목적지로의 패킷은 디폴트 라우트(Default Route) 를 통해 전송된다.
디폴트 라우트는 0.0.0.0/0으로 지정하며, 일반적으로 외부 네트워크(인터넷)로 나가기 위한 기본 게이트웨이 경로로 설정된다.
라우팅은 정적 라우팅(Static Routing) 과 동적 라우팅(Dynamic Routing) 으로 구분된다.
(1) 정적 라우팅
관리자가 직접 라우팅 테이블을 구성하는 방식.
소규모 네트워크에서 안정적인 경로를 유지할 때 적합하지만, 네트워크 변화에 자동으로 대응하지 못한다.
구성이 단순하다는 장점이 있으나, 확장성과 유지보수 측면에서 한계가 존재한다.
(2) 동적 라우팅
라우터 간에 정보를 교환하여 라우팅 테이블을 자동으로 생성하고 갱신하는 방식.
대규모 네트워크 환경에서 효과적이며, 장애 발생 시 우회 경로를 선택할 수 있다.
동적 라우팅에서는 라우터들이 라우팅 프로토콜(Routing Protocol) 을 통해 정보를 주고받는다.
동적 라우팅 프로토콜은 내부와 외부의 구분에 따라 IGP(Interior Gateway Protocol) 과 EGP(Exterior Gateway Protocol) 로 나뉜다.
| 구분 | 프로토콜 | 특징 |
|---|---|---|
| IGP | RIP, OSPF, EIGRP | 자율 시스템(AS) 내부 통신 담당 |
| EGP | BGP | 자율 시스템(AS) 간 통신 담당 |
(1) IGP — 내부 라우팅 프로토콜
RIP (Routing Information Protocol)
거리 벡터 기반(distance vector) 알고리즘을 사용
경로의 효율성을 홉 수(hop count) 로 평가
홉 수가 15를 초과하면 도달 불가능한 네트워크로 간주
주기적으로 전체 라우팅 테이블을 이웃 라우터와 교환하여 갱신
RIP는 구현이 단순하지만, 네트워크가 커질수록 트래픽이 증가하고 수렴 속도가 느려지는 단점이 존재.
OSPF (Open Shortest Path First)
링크 상태 기반(link-state) 라우팅 프로토콜
각 라우터가 네트워크 구조를 그래프 형태의 데이터베이스로 저장
대역폭을 기반으로 메트릭(metric)을 계산하여 최단 경로를 선택
대역폭은 링크가 처리할 수 있는 데이터의 최대 용량을 나타내므로,
대역폭이 클수록 더 많은 데이터를 빠르게 전송할 수 있음.
따라서 대역폭이 큰 링크일수록 낮은 Cost 값을 부여하여
최단 경로 탐색 시 우선순위를 높임.
즉, 단순한 홉 수가 아니라 링크의 품질(전송 속도, 지연 등)을 고려
네트워크 토폴로지 변경 시 자동으로 라우팅 테이블 갱신
OSPF는 대규모 네트워크를 효율적으로 관리하기 위해 네트워크를 Area 단위로 분할한다.
각 Area의 경계에는 ABR(Area Border Router) 가 존재하며, 내부 Area와 백본 Area를 연결한다.
ABR은 Area 간 트래픽이 오가는 경로에 위치한 라우터로, 관리자가 토폴로지 상 경계 노드로 지정한다.
ABR은 OSPF에서 두 개 이상의 Area에 인터페이스를 가지는 라우터를 의미함.
즉, 특정 라우터가 어떤 Area에 속하는지에 따라 자동으로 역할이 정해짐. Area는 교집한인건가?
(2) EGP — 외부 라우팅 프로토콜
BGP (Border Gateway Protocol)
자율 시스템(AS, Autonomous System) 간 라우팅을 담당
BGP 라우터를 피어(Peer) 또는 BGF(Border Gateway Function) 라우터라 부름
피어 간의 연결을 피어링(Peering) 이라 함
BGP는 단순한 거리 기반 판단 대신 정책 기반 라우팅(Policy-Based Routing) 을 사용한다.
즉, 경로의 홉 수보다 AS 경로(AS Path), 정책, 선호도(Local Preference) 등을 기준으로 최적 경로를 결정한다.
각 AS는 내부적으로 IGP(OSPF, IS-IS 등)를 사용하지만,
서로 다른 AS 간에는 정책 기반 라우팅이 필요함.
이때 BGP를 통해 외부 AS와 라우팅 정보를 교환하며,
이러한 역할을 수행하는 라우터를 BGF 혹은 BGP Gateway Router라 부름.
BGP 선정 기준
외부 AS와 직접 피어링할 수 있는 네트워크 경계에 위치해야 함.
충분한 BGP 세션 처리 능력과 라우팅 테이블 용량을 가져야 함.
일반적으로 네트워크 관리자가 정책적으로 지정함.
경로 선택 시, 만약 자신의 AS 번호가 경로 내에 포함되어 있다면 순환(Loop)으로 간주하고 해당 경로를 폐기한다.
이는 BGP가 다른 AS를 통해 자신의 네트워크로 돌아오는 루프를 방지하기 위함이다.
또한 단순히 짧은 경로보다 안정성과 정책을 우선시하기 때문에, 홉 수가 많더라도 실제로는 더 신뢰할 수 있는 경로가 선택될 수 있다.
(더 짧은 경로라도 홉 수가 많을 수 있는 이유)
BGP는 경로를 선택할 때 AS Path(거치는 AS의 순서)를 주요 속성 중 하나로 사용함.
일반적으로 AS Path가 짧을수록 선호되지만, 항상 물리적 거리나 지연이 짧다는 의미는 아님.
물리적 경로와 논리적 경로의 불일치:
AS Path는 논리적 경로(경로 상의 AS 식별자)를 나타내며,
실제 물리적 네트워크 상의 홉 수(IP 레벨의 라우터 수)와는 다름.
예를 들어, 한 AS 내부의 경로가 복잡할 경우,
짧은 AS Path라도 실제 IP 홉 수는 더 많을 수 있음.
라우팅은 네트워크 통신의 핵심 구조이며, 인터넷의 전체 트래픽이 유지되는 기반.
라우팅 테이블의 효율적 설계와 적절한 프로토콜 선택은 통신 효율성, 복원력, 보안성을 모두 좌우한다.
대규모 분산 시스템이나 클라우드 환경에서는 내부 노드 간 통신의 최적화를 위해 IGP, 외부 인터넷 연결을 위해 EGP가 함께 사용된다.
IP(Internet Protocol)가 제공하는 네트워크 계층은 기본적으로 신뢰할 수 없는 통신과 비연결형 통신을 수행하는 한계가 존재.
이를 극복하기 위해 전송 계층(Transport Layer) 은 신뢰성 있는 통신과 연결형 통신을 제공하며, 포트 번호를 통해 특정 프로세스를 식별 가능.
신뢰할 수 없는 통신
데이터그램 전송 중 패킷 손실, 순서 변경, 중복 발생 가능.
전송 성공 여부를 확인하거나 재전송하지 않음.
최선형 전달(Best-effort Delivery)
네트워크 계층은 가능한 한 패킷을 목적지까지 전달하려 시도하지만,
성공 보장은 없음.
예: IP는 패킷 손실 가능, 순서 보장은 전송 계층에서 처리.
비연결형 통신(Connectionless Communication)
데이터를 독립적인 패킷 단위로 전송하며, 송신 전 수신과 연결을 설정하지 않음.
패킷 순서나 도착 여부를 확인하지 않음. UDP가 대표적.
연결형 통신(Connection-oriented Communication)
송신과 수신 간 연결을 먼저 설정하고, 순서 보장과 오류 복구를 수행.
TCP가 대표적이며 신뢰성 있는 데이터 전송을 제공.
장점 비교
| 구분 | 장점 |
|---|---|
| 비연결형 | 전송 속도 빠름, 헤더 크기 작음, 효율적 |
| 연결형 | 데이터 신뢰성 확보, 순서 유지 가능 |
전송 계층은 IP의 한계를 보완하여 연결형 통신과 신뢰성 있는 데이터 전송을 제공.
TCP(Transmission Control Protocol)
연결형 통신 제공
패킷 순서 보장, 손실 복구, 흐름 제어 수행
UDP(User Datagram Protocol)
비연결형 통신 제공
빠른 전송이 필요할 때 사용, 오류 제어 없음
포트(Port)
전송 계층은 IP 주소만으로는 프로세스를 식별할 수 없으므로, 포트 번호를 사용하여 특정 어플리케이션 프로세스를 지정.
송신지 포트, 수신지 포트 모두 포함
16비트로 표현 가능, 범위: 0~65535
| 포트 범위 | 설명 | 예시 |
|---|---|---|
| 0~1023 | 잘 알려진 포트(Well-known) | HTTP(80), HTTPS(443) |
| 1024~49151 | 등록된 포트(Registered) | 특정 서비스 등록용 |
| 49152~65535 | 동적/사설 포트(Dynamic/Private) | 임시 연결용 |
IP 주소와 포트 번호를 결합하면 특정 호스트 내 특정 프로세스를 식별 가능.
일반적으로 IP주소:포트번호 형식으로 사용.
NAT
사설 IP 주소를 공인 IP 주소로 변환하여 외부 네트워크와 통신할 수 있도록 함.
NAT 변환 테이블 사용
내부 네트워크의 모든 주소를 공인 IP와 1:1로 매칭하기 어렵기 때문에, 포트 번호를 달리하여 다수 내부 주소를 동일 공인 IP에 매핑
포트포워딩(Port Forwarding)
외부에서 들어오는 패킷을 특정 내부 호스트와 포트로 전달하도록 미리 설정하는 기능
공인 IP를 공유하는 환경에서, 수신지 IP를 내부 호스트로 결정하기 위해 사용
외부 클라이언트가 접속 요청 시, NAT 테이블과 포트포워딩 설정을 참고하여 특정 서버로 전달
ICMP는 IP와 함께 사용되며 네트워크 상태 정보 및 오류 메시지 전달 기능 제공.
주요 기능:
목적지 도달 불가 메시지(Destination Unreachable)
패킷 TTL(Time To Live) 초과 시 알림
Echo Request/Reply를 통한 네트워크 상태 확인(Ping)
특징: 데이터 전송 자체가 목적이 아니라 제어와 진단 목적.
네트워크 계층 IP는 신뢰 불가, 비연결형 통신 제공
전송 계층 TCP/UDP는 신뢰성과 연결성 제공, 포트를 통해 프로세스 식별
NAT은 사설 IP와 공인 IP 간 변환, 포트포워딩은 특정 내부 호스트 지정
ICMP는 네트워크 상태 진단 및 오류 전달
IP와 포트 번호 결합을 통해 특정 호스트 및 프로세스 간 정확한 데이터 전송 가능