본문 바로가기

[네트워크] 8강 패킷의 라우팅

출처  성균관대학교 안성진 교수님, [KMOOC 강의] 네트워크의 기초, "08. 패킷 전달과 거리벡터 라우팅"

 

라우팅

라우팅이란 패킷을 전달하기 위한 경로를 선택하는 과정이다.
라우터는 라우팅을 하는 장치이고, 라우팅 테이블은 패킷을 라우팅을 할 때 참조되는 테이블로 라우팅 프로토콜을 이용하여 만든 것이다.

 

패킷 전송에 참여하는 파트

패킷의 전송 과정에 참여하는 송신자, 수신자 그리고 그 사이의 네트워크 장치들은 다음과 같이 패킷을 처리한다.

송신자

  • 송신자의 네트워크 계층은 패킷을 생성한다.
  • 패킷이 너무 크다면 단편화 fragmentation을 진행한다.
  • 목적지에 패킷을 전달하기 위해 라우팅 테이블을 참조한다. 라우팅 테이블에는 목적지 IP주소로 가는 경로가 나와 있다.

수신자

  • 목적지의 네트워크 계층은 패킷 헤더의 주소를 확인하여 해당 패킷이 자신에게 온 패킷인지 검사한다.
  • 단편화된 패킷을 받는다면 단편들을 모아서 하나의 온전한 패킷으로 조립한다.

중간 장치

  • 스위치나 라우터와 같은 중간장치들은 패킷을 라우팅한다.
  • 중간 장치에 패킷이 도착하면 라우팅 테이블을 검사하여 어디로 보내야 하는지 확인한다.

패킷 전달 방식

패킷의 전달은 직접 전달과 간접 전달로 나뉜다.

직접 전달

  • 패킷의 최종 목적지가 전달자와 동일한 네트워크상에 있음

간접 전달

  • 패킷이 최종 목적지에 전달될 때까지 라우터에서 라우터로 전달함

라우팅 테이블 구성 원칙

1. Next-hop method 이웃 노드 명시

라우팅 테이블은 전체 경로상의 라우터를 명시하지 않고 다음 라우터만을 명시한다.

 

2. 네트워크 주소 명시 Network-specific method

주소는 네트워크 파트와 호스트 파트로 이루어져 있는데 라우팅 테이블에는 호스트 주소는 생략하고 네트워크 주소만 등록한다.

호스트 주소 명시Host-specific method
경우에 따라 네트워크 관리자가 패킷이 어떤 라우터를 꼭 거쳐가도록 설정하는 경우도 있다.
디폴트 지정 Default method
외부 인터넷 나갈 때는 항상 기본으로 설정된 라우터를 거쳐가도록 설정할 수도 있다.

 

라우팅 테이블의 구성

라우팅 테이블은 정적 혹은 동적으로 구성한다.

 

정적 라우팅 테이블

  • 일반적인 경우는 아님
  • 보통 사람이 직접 입력
  • 자동으로 갱신될 수 없으며, 보통 호스트 컴퓨터에서 사용함
  • LAN에 접속된 호스트는 외부 인터넷으로 접속하는 출구가 하나로 되어 있어 동적으로 구성할 필요가 없음

동적 라우팅 테이블

  • 사람의 개입 없이 라우팅 프로토콜이 경로를 주기적으로 갱신함
  • 대표적인 프로토콜로 RIP, OSPF, BGP가 존재함

내부 게이트웨이 프로토콜과 외부 게이트웨이 프로토콜

하나의 AS 내에서 라우팅 테이블을 주고받는 프로토콜과 외부 AS와 주고받는 프로토콜이 따로 있다.

 

자율 시스템 (AS, Autonomous System)

라우터들은 라우팅(목적지까지의 경로 설정)을 위해 라우팅 테이블들을 주고받는데, 이때 트래픽이 발생한다.
AS는 어떤 라우터까지 라우팅 테이블을 주고받을지 범위를 지정한다. 같은 AS를 가진 라우터끼리만 라우팅 테이블을 주고받는다.
AS는 하나의 기관 내부를 나타낸 것으로, 네트워크와 라우터의 집합으로 구성된다.

 

내부 게이트웨이 프로토콜 Interior Gateway Protocol, IGP

  • 자율 시스템 내부에서 사용되는 라우팅 프로토콜
  • IS-IS, OSPF, iGRP, EIGRP, RIP
  • 사용하는 알고리즘에 따라 크게 두 개로 나눌 수 있다.
    • 거리 벡터 알고리즘: RIP, IGRP
    • 링크 상태 알고리즘: OSPF

외부 게이트웨이 프로토콜 Exterior Gateway Protocol, EGP

  • 자율 시스템 간에 사용되는 라우팅 프로토콜
  • 기관 내에서는 여러 프로토콜을 쓸 수 있지만 AS간에는 통일되어 있어야 하기 때문에 프로토콜이 하나로 지정되어 있다: BGP

라우팅 알고리즘

거리 벡터 알고리즘

두 노드 사이 최소 비용 경로는 최소 거리라고 보는 알고리즘이다. 벨먼 포드 알고리즘을 사용한다.

각 라우터는 자신의 정보를 이웃 라우터와 공유한다.

 

링크 상태 라우팅

각 라우터들은 전체 네트워크에 대한 구성도 (토폴로지)를 구축해서 파악을 하고 있다. 

각 라우터들이 전체 네트워크 구성도를 그리기 위해서는 인접한 노드들로부터 정보를 수집해야 한다. 링크 상태 라우팅에서는 내가 가진 이웃 노드들 정보를 AS 내 전체 라우터와 주고받는다. 이를 기반으로 각 노드는 라우팅 테이블을 구축한다. (트래픽이 많이 발생하는 구조이다.) 라우터 간에 정보를 주기적으로 주고받을 필요는 없고 링크 상태에 변화가 발생하게 될 때 정보를 공유한다.

Flooding이라는 기법을 사용해서 전체 라우터에게 정보를 보낸다.

전체 네트워크 구성도를 파악한 상태에서 각 라우터는 자기 자신으로부터 최종 목적지까지 가는 경로 중 가장 좋은 경로 - 모든 노드로부터의 최단 경로를 구한다. 이때 다익스트라의 최단 경로 알고리즘을 사용한다.

대표 프로토콜은 OSPF (Open Shortest Path First)이다.

 

경로 벡터 라우팅 Path Vector Routing

라우팅 테이블에 목적지까지의 경로가 모두 명시되어 있다. 경로는 AS의 리스트로 표현한다.

AS 간, 즉 도메인 간 통신에 사용되는 BGP (Border Gateway Protocol)가 사용하는 방법이다. 현재 사용되는 버전은 BGP4이다.

 

사용 이유

  • 루프 방지를 위해 사용한다. 데이터 수신 시 라우터가 자신의 AS 목적지 경로 항목에 있는지 확인하고, 만약 있으면 Loop에 포함됐으므로 해당 데이터는 무시한다.
  • 정책 라우팅을 위해 사용한다. A 회사와 B 회사, 또는 A 국가와 B 국가 사이에서 패킷을 주고받는데 중간에 다른 회사나 국가의 자원을 사용하게 되는 경우가 있다. 이를 방지하기 위해 최적의 경로라고 하더라도 정책에 반대되면 그 경로와 목적지를 무시한다.