![[네트워크 이론] 네트워크 계층 - 라우팅(Routing)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdfYVrW%2FbtsNo84Z9RC%2Fa14vhvgYiWK52ChYChtNYk%2Fimg.png)
이글은 혼자 공부하는 네트워크(저자 : 강민철)의 책과 강의 내용을 개인적으로 정리하는 글임을 알립니다.
- 라우터의 핵심 기능은 패킷이 이동할 최적의 경로를 설정한 뒤 해당 경로로 패킷을 이동시키는 것이다.
- 이를 라우팅이라고 한다.
- 라우팅 테이블이 만들어지는 방법과 프로토콜에 따라 라우팅을 분류하면 아래 그림과 같이 표현할 수 있다.
라우터와 라우팅 테이블
라우터
네트워크 계층의 장비로 라우터만 알아도 큰 무리가 없을 정도로, 라우터는 네트워크 계층의 핵심 기능을 담당한다.
사실 L3 스위치라고 부르는 장치도 네트워크 계층의 대표 장치이기는 하지만, 오늘날 라우터와 L3 스위치는 기능상 상당 부분 유사하므로 엄밀히 구분하지 않는 경우가 많다.
라우터는 허브나 스위치보다 높은 계층에 속하는 장치이므로 기능적으로는 사실상 여러 분이 사용하는 컴퓨터와 매우 유사하다.
Note
- 일반적으로 가정 환경에서는 공유기가 라우터의 역할을 대신한다.
- 이런 점에서 공유기를 홈 라우터(home router)라고 부르기도 한다.
= 사실 공유기는 라우터 기능뿐만 아니라 NAT 기능, DHCP 서버 기능, 보안을 위한 방화벽 기능 등 다양한 장치의 기능이 합축된 네트워크 장비라고 볼 수 있다.
멀리 떨어져 있는 호스트 간의 통신 과정에서 패킷은 서로에게 도달하기까지 여러 라우터를 거쳐서 다양한 경로로 이동할 수 있다.
전송한 패킷은 여러 대의 라우터를 깡충깡충 거치듯이 수신지까지 이동하는 셈이다.
- 이처럼 라우팅 도중 패킷이 호스트와 라우터 간에, 혹은 라우터와 라우터 간에 이동하는 하나의 과정을 홉(hop)이라고 부른다.
- 즉, 패킷은 ‘여러 홉을 거쳐’ 라우팅될 수 있는 것이다.
라우팅 테이블
라우팅의 핵심은 라우터가 저장하고 관리하는 라우팅 테이블이다.
라우팅 테이블은 특정 수신지까지 도달하기 위한 정보를 명시한 일종의 표와 같은 정보이다.
라우터는 라우팅 테이블을 참고하여 수신지까지의 도달 경로를 판단한다.
라우팅 테이블에 포함된 정보는 라우팅 방식에 따라, 호스트의 환경에 따라 달라질 수 있다.
하지만 공통적인 정보이자 핵심적인 정보로는 수신지 IP 주소와 서브넷 마스크, 다음 홉이 있고,
이외에도 라우팅 테이블에 명시되는 대표적인 정보로 네트워크 인터페이스와 메트릭이 있다.
- 수신지 IP 주소와 서브넷 마스크: 최종적으로 패킷을 전달할 대상을 의미한다.
- 다음 홉: 최종 수신지까지 가기 위해 다음으로 거쳐야 할 호스트의 IP 주소나 인터페이스를 의미한다.
게이트웨이라고 명시되기도 한다. - 네트워크 인터페이스: 패킷을 내보낼 통로이다.
인터페이스(NIC) 이름이 직접적으로 명시되거나, 인터페이스에 대응하는 IP 주소가 명시되기도 한다. - 메트릭: 해당 경로로 이동하는 데에 드는 비용을 의미한다.
흔히 매장에서 같은 류의 물건을 살 때 더 저렴한 물건을 선택하는 것과 같다.
일상에서 가성비가 좋은 물품이 선호되듯, 라우터가 라우팅 테이블에 있는 경로 중 패킷을 내보낼 경로를 선택할 때도 메트릭이 낮은 경로를 선호한다.
예를 들어 아래 표와 같은 라우팅 테이블이 있다고 가정해 보겠다.
- 이는 수신지가 192.168.2.0/24 (호스트 IP 주소 범위 192.168.2.1~192.168.2.254)인 패킷은 eth0(인터페이스)를 통해 192.168.2.1(게이트웨이)로 전송하라는 것을 의미한다.
디폴트 라우트
패킷 내의 수신지 IP 주소가 라우팅 테이블에 있는 수신지 IP 주소, 서브넷 마스크 항목과 완벽하게 합치되는 경우가 있지만, 그렇지 않은 경우도 있다.
다시 말해 라우팅 테이블에 없는 경로로 패킷을 전송해야 할 때가 있다. 이 경우 기본적으로 패킷을 내보낼 경로를 설정하여 해당 경로로 패킷을 내보낼 수 있다.
이 기본 경로를 디폴트 라우트라고 한다. 디폴트 라우트는 모든 IP 주소를 의미하는 0.0.0.0/0로 명시한다.
예를 들어 수신지 IP 주소가 1.2.3.4인 패킷의 경우, 다음 라우팅 테이블에서 다른 어떤 항목과도 합치되지 않으므로 설정된 디폴트 라우트, 즉 eth2를 통해 192.168.0.1로 전송된다.
기본 게이트웨이는 호스트가 속한 네트워크 외부로 나아가기 위한 첫 번째 경로이고, 일반적으로 라우터 주소를 의미하는 경우가 많다.
여기서 기본 게이트웨이로 나아가기 위한 경로가 디폴트 라우트인 셈이다.
가령 네트워크 내부 호스트 A가 네트워크 외부 호스트 B에게 패킷을 전달해야 한다고 가정해 보자.
- A의 라우팅 테이블에 B에 이르는 경로가 따로 없을 경우, A는 우선 패킷을 라우터(기본 게이트웨이)에 전달해야 할 것이다.
- 이를 위해 A는 라우터 주소인 기본 게이트웨이를 디폴트 라우트로 삼는다.
- 그럼 A는 라우팅 테이블에 따로 수신지 경로가 등록되어 있지 않은 패킷들은 기본적으로 라우터에게 전달하게 되는 것이다.
핵심은 라우팅을 해 주는 네트워크 장비인 라우터는 라우팅 테이블을 통해 패킷을 수신지까지 전달할 수 잇다는 점이고, 라우팅 테이블 안에는 네트워크상의 특정 수신지까지 도달하기 위한 정보들이 담겨있다는 점이다.
정적 라우팅과 동적 라우팅
라우팅 테이블을 만드는 방법은 크게 두 가지 방법이 있다.
정적 라우팅
- 정적 라우팅은 사용자가 수동으로 직접 채워 넣은 라우팅 테이블의 항목을 토대로 라우팅되는 방식이다.
- 예를 들어 다음과 같이 라우팅 테이블 항목을 다루는 명령어가 있다.
- 이처럼 수동으로 구성된 라우팅 테이블 항목을 통해 수행되는 라우팅을 정적 라우팅이라 표현한다.
다음 예시는 모두 10.0.0.0/24로 향하는 패킷을 192.168.1.1 게이트웨이로 라우팅하는 명령어이다.
동적 라우팅
- 네트워크의 규모가 커지고 관리해야 할 라우터가 늘어나면 정적 라우팅만으로는 관리가 버겁다.
- 수동으로 라우팅 테이블 항목을 입력해야 하는 정적 라우팅의 특성상 입력 실수가 발생할 수도 있다.
- 또한 설령 실수 없이 입력했다고 할지라도 라우팅되는 경로상에 예상치 못한 문제가 생길 수 있다.
- 이때 사용할 수 있는 방식이 바로 동적 라우팅이다.
- 동적 라우팅은 자동으로 라우팅 테이블 항목을 만들고, 이를 이용하여 라우팅하는 방식을 의미한다.
- 이러한 이유로 동적 라우팅을 하면 라우팅 테이블 항목이 수시로 변할 수 있다.
그렇다면 동적 라우팅은 어떻게 자동으로 라우팅 테이블 항목을 만드는 것일까?
모든 라우터는 특정 수신지까지 도달하기 위한 최적의 경로를 찾아 라우팅 테이블에 추가하려 노력한다.
이를 위해 라우터끼리 서로 자신의 정보를 교환하게 되는데, 이 과정에서 사용되는 프로토콜이 바로 동적 라우팅 프로토콜이다.
AS(Autonomous System)
동일한 라우팅 정책으로 운용되는 라우터들의 집단 네트워크인 AS(Autonomous System)가 있다.
한 회사나 단체에서 관리하는 라우터 집단을 AS라고 생각해도 좋다.
AS마다 인터넷상에서 고유한 AS 번호(ASN; Autonomous System Number)가 할당된다.
AS 번호는 사설 IP 주소처럼 사설 AS 번호도 있지만, 일반적으로 AS 번호를 칭할 때는 고유한 번호를 일컫는 경우가 많다.
- 한 AS 내에는 다수의 라우터가 있다.
- 라우터들은 AS 내부에서만 통신할 수도 있고, AS 외부와 통신할 수도 있다.
- AS 외부와 통신할 경우, AS 경계에서 AS 내부로 통신을 주고받을 수 있는 AS 경계 라우터 (ASBR; Autonomous System Boundary Router)라는 특별한 라우터를 이용한다.
라우팅 프로토콜
라우팅 프로토콜은 라우터끼리 자신들의 정보를 교환하며 패킷이 이동할 최적의 경로를 찾기 위한 프로토콜이다.
라우팅 프로토콜은 크게 AS 내부에서 수행되느냐, AS 외부에서 수행되느냐에 따라 종류를 나눌 수 있다.
IGP(Interior Gateway Protocol) : AS 내부에서 라우팅하는 프로토콜
EGP(Exterior Gateway Protocol) : AS 외부에서 라우팅 하는 프로토콜
IGP
대표적인 IGP로는 RIP(Routing Information Protocol)과 OSPF(Open Shortest Path First)가 있다.
- 이 프로토콜들은 최적의 경로를 선정하는 과정에서 거리 벡터가 사용되느냐, 링크 상태가 사용되느냐로 구분할 수 있다.
- RIP는 거리 벡터를, OSPF는 링크 상태를 사용하는 라우팅 프로토콜이다.
RIP
RIP는 거리 벡터 기반의 라우팅 프로토콜이다.
여기서 거리 벡터 라우팅 프로토콜이란 이름 그대로 거리를 기반으로 최적의 경로를 찾는 라우팅 프로토콜을 의미한다.
그리고 여기서 말하는 거리는 패킷이 경유한 라우터의 수(=홉의 수)를 의미한다.
- RIP는 인접한 라우터끼리 경로 정보를 주기적으로 교환하며 라우팅 테이블을 갱신한다.
- 이를 통해 라우터는 특정 수신지에 도달하기까지의 홉 수를 알 수 있다.
- 그리고 특정 수신지까지 도달하기 위해 '홉 수가 가장 적은 경로'를 최적의 경로라고 판단한다.
- 그렇기에 홉 수가 적을수록 라우팅 테이블 상의 메트릭 값도 작아진다.
OSPF
OSPF는 링크 상태 라우팅 프로토콜이다.
네트워크는 그래프의 형태를 띠며, 노드와 간선(링크)으로 이루어져 있다.
OSPF는 이러한 링크 정보를 비롯한 현재 네트워크의 상태를 그래프의 형태로 링크 상태 데이터베이스(LSDB; Link State DataBase)에 저장한다.
링크 상태 데이터베이스에는 라우터들의 연결 관계, 연결 비용 등 현재 네트워크의 상태를 그래프로 표현하기 위한 데이터가 저장되어 있다.
라우터는 이 링크 상태 데이터베이스를 기반으로 현재 네트워크 구성을 마치 지도처럼 그린 뒤에 최적의 경로를 선택한다.
즉, 라우터를 노드라 생각하고 그래프 자료구조를 만들어서 최단거리 알고리즘을 통해서 최적의 경로를 구하는 것이다.
참고
- OSPF에서는 최적의 경로를 결정하기 위해 대역폭을 기반으로 메트릭을 계산한다.
- 대역폭이 높은 링크일수록 메트릭이 낮은 경로로 인식한다.
또한 라우터 간에 경로 정보를 주기적으로 교환하며 라우팅 테이블을 갱신하는 RIP과 달리, OSPF는 네트워크의 구성이 변경되었을 때 라우팅 테이블이 갱신된다.
네트워크 구성이 변경될 때마다 라우팅 테이블이 갱신된다면, 네트워크의 규모가 매우 커졌을 때는 링크 상태 데이터베이스에 모든 정보를 저장하기가 어렵다.
최적의 경로를 갱신하는 연산 부담도 커질 수 있다.
- 이에 OSPF에서는 AS를 에어리어(area)라는 단위로 나누고, 구분된 에어리어 내에서만 링크 상태를 공유한다.
- 에어리어에는 위 그림처럼 번호가 부여되어 있으며, 에어리어 경계에 있는 ABR(Area Border Router)이라는 라우터가 에어리어 간의 연결을 담당한다.
EGP:BGP
대표적인 EGP로는 BGP(Border Gateway Protocol)가 있다.
BGP는 AS 간의 통신에서 사용되는 대표적인 프로토콜로, 엄밀하게는 AS 간의 통신이 ‘가능한’ 프로토콜이다.
따라서 BGP로 AS 내부의 라우터 간 통신도 가능하다.
- eBGP(external BGP) : AS 간의 통신을 위한 BGP
- iBGP(internal BGP) : AS 내부의 통신을 위한 BGP
AS 간에 정보를 주고받기 위해서는 AS 내에서 eBGP를 사용하는 라우터(이하 BGP 라우터)가 하나 이상 있어야 하고,
또 다른 AS의 BGP 라우터와 연결되어야 한다.
이 연결은 BGP 라우터 간에 BGP 메시지를 주고받음으로써 이루어지는데, BGP 메시지를 주고받을 수 있도록 연결된 BGP 라우터를 피어(peer)라고 정의한다.
즉, 다른 AS와의 BGP 연결을 유지하기 위해서는 BGP 라우터끼리 연결되어 피어가 되어야 한다.
이렇게 피어 관계가 되도록 연결되는 과정을 피어링(peering)이라 한다.
'네트워크 > 네트워크 이론' 카테고리의 다른 글
[네트워크 이론] 네트워크 계층 - IP 주소 체계 (0) | 2025.04.17 |
---|---|
[네트워크 이론] 네트워크 계층 - IP 및 ARP 개념 (0) | 2025.04.16 |
[네트워크 이론] 물리 계층 및 데이터링크 계층 (1) | 2025.04.16 |
[네트워크 이론] 미시적으로 보는 네트워크 (1) | 2024.10.17 |
[네트워크 이론] 거시적으로 보는 네트워크 (2) | 2024.10.16 |