TIL 05. 라우터의 역할과 동작

* 라우터?

  • 라우터? - L3계층에서 동작하는 장비로, 이름처럼 경로를 지정해 주는 장비다. 서로 다른 네트워크 간에 통신할 때 필수로 있어야 하는 장비다.

라우터? L3 스위치?

  • 스위치는 대표적인 L2 계층 장비지만 라우터처럼 L3 계층에서 동작하는 L3 스위치라고 부르는 장비도 많이 사용되고 있다.
  • 기존에는 1) 라우터는 소프트웨어로 구현 / 스위치는 하드웨어로 구현 2) 다양한 기능의 라우터 / 패킷을 빨리 보내는데 최적화된 스위치 2가지 형태로 많이 구분했었지만, 최근에는 기술의 발달로 L3 스위치는 실질적으로 라우터와 구분짓기 어려운 부분이 있다. 즉, 굳이 구분하지 않고 라우터의 유사한 지칭 형태로 보면 된다.


1. 라우터 역할

1) 경로 지정

  • (1) 경로 정보 얻기와 (2) 얻은 경로 정보로 패킷을 포워딩하기 이 2가지는 라우터의 가장 중요한 역할이다. 경로 지정과 관련된 동작 방식에 대해선 하단에 서술하겠다.

2) 브로드캐스트 컨트롤

  • L3 라우터는 L2 계층의 스위치와 상이한 특징이 있다. 바로 패킷의 도착지 주소를 모를 때의 대응 방식이다. 스위치는 어딘가에 존재할지 모를 장비와의 통신을 위해 브로드캐스트 패킷을 플러딩해 연결된 모든 포트에 전송한다. 이에 비해 라우터는 패킷을 원격지로 보내는 것을 목표로 개발됐기에, 분명한 도착지 정보가 있을 때만 통신을 허락한다. 따라서 도착지 주소가 없으면 패킷을 바로 버리는 특징을 가지고 있다.
  • 라우터는 멀티캐스트 정보를 습득하지 않고 브로드캐스트 패킷을 전달하지 않는다. 이 기능으로 브로드캐스트가 다른 네트워크로 전파되는 것을 막을 수 있으며, 이를 브로드캐스트 컨트롤 / 멀티캐스트 컨트롤이라 한다.

3) 프로토콜 변환

  • 라우터는 서로 다른 프로토콜로 구성된 네트워크를 연결하는 역할을 수행하기도 한다. 현대의 네트워크는 이더넷으로 거의 통합된 환경이라 이 역할은 많이 줄어들었지만, 과거의 네트워크는 LAN과 WAN에서 사용하는 프로토콜이 전혀 다르고, 완전히 구분된 공간 이었기에 LAN과 WAN은 서로 변환하는 기술이 있어야만 원격지 네트워크와 통신이 가능했다. 이러한 변환 역할을 라우터가 담당했었다.

2. 라우터의 동작 방식

  1. 경로 정보 정리
  2. 경로 정보 기반의 패킷에 대한 경로 지정

2-1) 라우팅 테이블과 홉-바이-홉

라우터는 경로 지정을 위해 경로 정보를 모아 라우팅 테이블을 만든다. 라우팅 테이블에는 아래와 같은 정보가 포함된다. 1. 목적지 주소 1. 넥스트 홉 IP 주소, 나가는 로컬 인터페이스 (선택 가능)

라우팅 테이블 정보를 기반으로 인접한 라우터까지 경로를 지정하면 그 인접한 라우터에서 최적의 경로를 다시 파악한 후 패킷을 포워딩하는 방식을 취한다. 이 방식은 네트워크를 한 단계씩 뛰어넘는다는 의미로 **홉-바이-홉(Hop-by-Hop) 라우팅**이라 부르고, 그 인접한 라우터를 넥스트 홉(Next Hop)이라 부른다.


(*) 넥스트 홉 지정 방식
  1. 다음 라우터의 IP를 지정하는 방법(넥스트 홉의 IP 주소)
  2. 라우터의 나가는 인터페이스를 지정하는 방법
  3. 라우터의 나가는 인터페이스와 다음 라우터의 IP를 동시에 지정하는 방법

또한 라우터는 패킷을 포워딩하기 위한 경로를 선택할 때 출발지는 고려하지 않는다. 단지 패킷이 갖고 있는 목적지 주소와 라우터의 라우팅 테이블만을 비교해 어느 경로로 포워딩할지 결정한다. 그래서 라우팅 테이블을 만들 때 위와 같이 1. 목적지 주소, 2. (선택가능) 넥스트 홉 IP 주소 또는 나가는 로컬 인터페이스 정보만을 가지고 라우팅 테이블을 만드는 것이다.


참고 지식

(**) TTL - Time To Live

극단적인 상황일 수도 있지만, 실제 운영되던 사이트가 갑자기 없어지는 경우가 발생할 수 있고, 이런 경우 대안 경로를 찾다가 순간적으로 마주보는 두 대의 라우터의 넥스트 홉이 각각 상대방으로 구성되어 패킷이 두 라우터 사이에서 무제한으로 오가는 경우가 생길 수 있다. 만일 패킷이 영구적으로 사라지지 않는다면 네트워크에 사라지지 않는 유령 패킷이 넘쳐날 것이다.

위와 같은 상황을 방지하고자 TTL(Time to Live) 라는 수명값을 가지고 있고, 이 값이 0이 되면 네트워크 장비에서 해당 패킷은 버려지게 된다. TTL은 실제 초와 같은 시간이 아니라 홉을 지칭하며, 하나의 홉을 지날 때마다 TTL 값이 1씩 줄어든다.


2-2) 라우팅

라우터가 경로 정보를 얻는 방법은 매우 다양하지만 다음 3가지 방법으로 크게 구분 가능하다.

  1. 다이렉트 커넥티드
  2. 스태틱 라우팅
  3. 다이나믹 라우팅

(1) 다이렉트 커넥티드
  • IP 주소를 입력할 떄 사용된 IP 주소와 서브넷 마스크로 해당 IP 주소가 속한 네트워크 주소 정보를 알 수 있다. 이 정보로 라우터나 PC에서는 해당 네트워크에 대한 라우팅 테이블을 자동으로 만들며, 이러한 경로 정보를 다이렉트 커넥티드라 부른다.
  • 다이렉트 커넥티드로 생성되는 경로 정보는 인터페이스(라우터에 접속 가능한 포트 - Ethernet / Serial 포트가 대표적이다.)에 IP를 설정하면 자동 생성되는 정보라 강제로 삭제 불가하다는 특징이 있다. 해당 네트워크 설정을 삭제하거나 네트워크 인터페이스가 비활성화되어야만 자동으로 사라진다.

(2) 스태틱 라우팅
  • 네트워크 관리자가 목적지 네트워크와 넥스트 홉을 라우터에 직정 지정해 경로 정보를 입력하는 것을 스태틱 라우팅(Static Routing)이라 한다. 경로를 직접 지정하는 만큼 라우팅 정보를 매우 직관적으로 설정, 관리할 수 있다. 스태틱 라우팅은 다이렉트 커넥티드처럼 연결된 인터페이스 정보가 삭제되거나 비활성화되면 연관된 스태틱 라우팅 정보다 자동 삭제된다. 하지만, 물리 인터페이스가 아닌 논리 인터페이스는 물리 인터페이스가 비활성화 되도 함께 비활성화 되지 않는 경우가 있어 사라지지 않을 수 있다는 것을 염두에 둬야한다.

(3) 다이나믹 라우팅
  • (2) 스태틱 라우팅은 관리자가 변화가 적은 네트워크에서 네트워크를 손쉽게 관리할 수 있는 방법이지만, 규모가 큰 네트워크에서는 스태틱 라우팅만으로는 관리가 어렵다. 스태틱 라우팅은 라우터 너머의 다른 라우터의 상태 정보를 파악할 수 없어 라우터 사이의 회선이라 라우터에 장애가 발생하면, 장애 상황을 파악하고 대체 경로로 패킷을 보낼 수 없기 때문이다.
  • 스태틱 라우팅의 단점을 보완하고자 나온 대안이 다이나믹 라우팅이다. 라우터끼리 자신이 알고 있는 경로 정보나 링크 상태 정보를 교환해 전체 네트워크 정보를 학습한다. 각 라우터에서는 자신이 광고할 네트워크를 선언한다는 특징이 있다.

토폴로지 테이블

라우터가 수집한 경로 정보, 원시 데이터(Raw Data)를 토폴로지 테이블이라 하고 이 정보들 중 최적의 경로를 저장하는 테이블을 라우팅 테이블이라 한다.



3. 스위칭

  • 패킷이 들어와 라우팅 테이블을 참조하고 최적의 경로를 찾아 라우터 외부로 포워딩하는 작업을 스위칭이라 한다.

  • 패킷 포워딩 작업 시, 완전히 매치되는 경로 정보가 없을 경우 롱기스트 프리픽스 매치(Longest Prefix Match) 기법을 사용해 경로 정보 중 가장 가까운 경로를 선택해 포워딩한다.

롱기스트 프리픽스 매치 (LPM) 라우팅 테이블에서 가장 좋은 항목(경로)을 찾는 알고리즘을 롱기스트 프리픽스 매치(LPM)나 프리픽스 렝스 매치(Maximum Prefix Length Match)라고 한다.


* 스위칭 우선 순위
  • 라우팅 테이블은 가장 좋은 경로 정보만 모아둔 핵심 정보이다. 일반적인 경로 정보를 모아둔 토폴로지 테이블에서 좋은 경로 정보의 우선 순위는 경로 정보를 받은 방법과 거리를 기준으로 정한다.
  • 목적지 네트워크 정보가 동일한 서브넷을 사용하는 경우, 정보를 얻은 소스에 따라 가중치를 정한다. 이 가중치 값은 크게 3 종류로 나눌 수 있다.
    1. 내가 갖고 있는 네트워크 (다이렉트 커넥티드)
    2. 내가 경로를 직접 지정한 네트워크 (스태틱 라우팅)
    3. 경로를 전달받은 네트워크 (다이나믹 라우팅)

  • 기본적인 우선순위는 미리 정해져 있지만, 필요에 따라 관리자가 우선순위를 조정해 라우팅 경로를 조정할 수 있다. 이런 우선순위를 AD(Administrative Distance, 관리 거리)라고 부르며 라우터 생산업체마다 AD 값이 조금씩 다르다.
라우팅별 가중치 값(시스코 장비 기준) - AD
우선순위 기본 디스턴스
0 Connected Interface (다이렉트 커넥티드)
1 Static Route (스태틱 라우팅)
20 External BGP
110 OSPF
115 IS-IS
120 RIP
200 Internal BGP
255 Unknown

  • 경로 정보를 얻은 소스가 같아 가중치 값이 동일한 경우에는 코스트(Cost) 값으로 우선순위를 정한다. 코스트 값까지 동일한 경우엔 ECMP(Equal-Cost Multi-Path) 기능으로 동일한 코스트값을 가진 경로 값 정보를 모두 활용해 트래픽을 분산한다. 코스트 값은 일종의 거리를 나타내는 값으로 라우팅 프로토콜마다 기준이 다르다.


** 전체적인 우선순위 정리

  • 라우터의 라우팅, 스위칭 역할을 하나로 묶어 다시 설명하면 우선순위는 다음과 같다.
라우팅 우선순위 정리
우선순위 구분 적용 방법
1 롱기스트 매치 스위칭
2 AD (관리 거리) 라우팅
3 코스트 라우팅
4 부하 분산 (ECMP) 라우팅