스터디/CS 스터디

[네트워크] 라우팅

제이온 (Jayon) 2021. 12. 7.

cs-study에서 스터디를 진행하고 있습니다.

사전 개념

라우팅이란

라우팅은 경로 정보를 기반으로 현재의 네트워크에서 다른 네트워크로 최적의 경로를 통해 데이터를 전송하는 기법이다.

 

라우터란

라우터는 라우팅을 능동적으로 수행하는 장치이다.

 

라우팅 프로토콜이란

라우터 간 통신 방식을 규정하는 통신 규약이다. 자세한 프로토콜은 아래에서 설명한다.

 

라우팅 정보

라우팅 결정에 이용하는 정보는 크게 토폴로지, 트래픽 부하, 링크 비용, 메시지, 라우팅 테이블이 있다.

 

토폴로지

Untitled

 

네트워크 요소를 물리적으로 연결하는 방식을 의미한다.

 

트래픽 부하

특정 라우터에 트래픽이 많이 몰려 있을 경우, 다른 라우터로 경로를 안내하여 네트워크의 성능을 높일 수 있다.

 

링크 비용 (라우팅 메트릭)

홉 수 (거쳐가야 하는 지점의 개수), 비용, 지연, 처리율 등과 같은 변수를 참조하여 최적의 라우팅 경로를 계산한다.

 

메시지

라우터끼리 라우팅을 위해 주고 받는 정보를 의미한다.

 

라우팅 테이블

라우팅 테이블은 패킷을 목적지로 전달하기 위해 참조하는 테이블이다. 위와 같은 라우팅 계산에 필요한 요소를 기반으로 라우팅 프로토콜을 통해 계산된 라우팅 정보를 저장한다.

 

Untitled

 

위 그림과 같이 호스트 A가 호스트 B와 통신하고 싶다고 목적지 IP 주소를 라우팅 테이블에게 알려주면, 라우팅 테이블은 여러 경로 중 호스트 B로 전달하기 위한 최적의 경로(10.0.0.0/8)를 선택한다.

 

라우팅 방식

라우팅 방식은 크게 정적 라우팅 방식과 동적 라우팅 방식으로 나뉜다.

 

정적 라우팅 방식

  • 네트워크 관리자가 패킷의 경로를 임의로 결정하여 수동으로 구성하는 라우팅 방식이다.
  • 장점
    • 라우터의 부하를 경감할 수 있다.
    • 복잡한 계산이 필요 없으므로 빠른 라우팅이 가능하다.
  • 단점
    • 관리자가 관리해야 할 부분이 많아진다.
    • 네트워크 환경 변화를 고려하지 않는다.
    • 정해진 경로 상에서 장애가 발생할 경우, 네트워크 전체 이용에 장애가 발생할 수 있다.
    • 네트워크의 규모가 커지면 수동으로 추가하기 위해 시간이 많이 든다.

 

 

netstat -r 명령어를 통해 현재 PC의 라우팅 테이블을 확인할 수 있고, 정적 라우팅 방식의 경우 이 라우팅 테이블을 하나 하나 조작하여 경로를 입력해 주어야 한다.

 

동적 라우팅 방식

  • 라우터가 라우팅 프로토콜에 의한 계산에 따라 스스로 라우팅 경로를 결정하는 방식이다.
  • 장점
    • 작업 부담이 없고, 항상 최신 라우팅 정보를 유지할 수 있다.
    • 네트워크 환경 변화를 고려한다.
  • 단점
    • 라우터의 부하가 크다.

 

이해를 돕기 위한 예시

현우가 마트에서 장을 보고 싶다.
이때 A마트는 비싸고 멀고, B마트는 싼데 멀고, C마트는 싸고 가깝다.
C마트에 가서 장을 보려고 하였으나, C마트가 하필 휴점일이었다.
그래서 철수는 고민 끝에 B마트에서 장을 보았다.

 

동적 라우팅 방식은 위 예시처럼 C마트가 휴점일이라는 환경 변화를 고려할 수 있고, 그에 따라 동적으로 경로를 결정한다. 상황에 따라 A마트가 될 수 있고, B마트가 될 수 있는데 이것은 라우팅 프로토콜에 따라 다르게 계산된다.

 

라우팅 프로토콜

Untitled

 

AS (Autonomous System)

인터넷은 각 기관이나 단체가 독립적으로 운영하는 네트워크들이 라우터에 의해 연결된 복잡한 네트워크이다. 이와 같이 독립적인 네트워크를 자율 시스템 (AS: Autonomous System)이라고 부르는데 그 특성은 아래와 같다.

 

  • AS 내의 라우터는 서로 동일한 라우팅 프로토콜을 사용한다.
  • AS 내의 네트워크와 라우터는 한 조직에 의해 관리된다.

 

하나의 AS 내에 있는 라우터 간에 라우팅 정보 교환을 위해 사용되는 프로토콜을 IGP (Interior Gateway Protocol)이라고 부르고, 다른 AS에 속하는 라우터 간에 라우팅 정보 교환을 위해 사용되는 프로토콜을 EGP (Exterior Gateway Protocol)라고 부른다.

IGP는 한 AS 내의 모든 라우터에서 동작하는 데 비해, EGP는 AS와 AS가 연결되는 관문 역할의 몇 개 라우터에서 동작한다.

 

Untitled

 

IGP (Interior Gateway Protocol)

하나의 AS 내에 있는 라우터 간에 라우팅 정보 교환을 위해 사용되는 프로토콜이며, 크게 Distance Vector 프로토콜과 Link-State Vector 프로토콜로 나뉜다.

 

EGP (Exterior Gateway Protocol)

다른 AS에 속하는 라우터 간에 라우팅 정보 교환을 위해 사용되는 프로토콜이며, 대표적으로 Path Vector 프로토콜이 있다.

 

Distance Vector

  • 이웃 라우터의 주기적 갱신 정보로 라우팅 테이블을 반영하여 경로를 결정하는 프로토콜
  • 목적지까지 도달하는 데 필요한 거리와 방향만 라우팅 테이블에 기록
  • 분산 벨만 포드 알고리즘으로 구현이 가능
  • 홉 개수가 적은 소규모 네트워크에서 사용이 용이함

 

이해하기 쉬운 예시

A산은 정상으로 가는 길이 3가지가 있다.
1번 표지판에는 "정상까지 2km"
2번 표지판에는 "정상까지 1.6km"
3번 표지판에는 "정상까지 2.4km"

물론 2번 길을 가다가 중간에 새롭게 5, 6, 7번 표지판으로 나와서 길을 선택하라고 할 수 있지만,
현재로서 빠른 길을 2번인 것은 자명하다.

 

분산 벨만 포드 알고리즘 예시

Untitled

 

위 그림에서 6번 노드가 목적지라고 가정하자. 그러면 각 노드에 대해 초기 상태를 적용하면 다음과 같다.

 

Untitled

 

-1은 어디로 가야할 지 정하지 못했다는 뜻이고, 무한은 거리를 모른다는 뜻이다. 즉 Node(x, y)에 대해 x는 다음에 가야 할 노드의 번호 (방향), y는 목적지까지의 최단 거리를 의미한다.

이제 목적지에서 거꾸로 생각해서 노드를 갱신할 수 있다. 노드 6에 연결되어 있는 것은 3, 5번이므로 해당 노드를 갱신한다.

 

UntitledUntitled

 

그러면 3번과 5번 노드의 라우팅 테이블 변화가 생겼으므로 인접한 노드는 정보 교환을 시도한다. 1, 2, 4번 노드가 변화된다.

 

Untitled

 

마찬가지로 계속 인접 노드끼리 최단 거리를 비교하다 보면 최종적으로 다음과 같은 라우팅 테이블을 얻게 된다.

 

Untitled

 

알고리즘 시간은 아니므로 자세한 내용은 출처를 참고하길 바란다.

 

장점과 단점

  • 장점: 인접한 노드끼리 정보를 주고 받으므로 전체 토폴로지를 몰라도 최단 경로를 설정이 가능
  • 단점: 변화가 없더라도 일정 주기마다 의무적으로 인접 노드 간 변화가 생겼는지 확인해야 함

 

Distance Vector Protocol을 활용하는 프로토콜

  • RIP (Routing Information Protocol)
  • IGRP (Interior Gateway Routing Protocol)

 

Link State Protocol

  • 각 라우터마다 갈 수 있는 모든 라우터의 최단 경로를 라우팅 테이블에 기록
  • 다익스트라 알고리즘으로 구현이 가능
  • 홉 수가 많은 중/대형 네트워크에서 사용이 용이함

 

다익스트라 알고리즘 예시

Untitled

 

구현 방식은 다들 잘 알고 있을 것이라 생각하여, 자세한 내용은 생략한다. 링크 상태 프로토콜도 위와 같은 방식으로 각 라우터마다 갈 수 있는 모든 라우터의 최단 경로를 라우터 테이블에 기록한다.

 

장점과 단점

  • 장점: 라우팅 정보가 변경되면, 바뀐 라우팅 정보만 전파하므로 네트워크 트래픽 발생량이 감소
  • 단점: 복잡한 구조로 경로 설정이 구현되므로 주소 배분이나 장치 설정의 어려움이 발생

 

Link State Protocol을 활용하는 프로토콜

  • EIGRP (Enhanced Interior Gateway Routing Protocol)
  • OSRF (Open Shortest Path First)

 

Distance Vector Protocol vs Link State Protocol

Untitled

 

Path Vector Protocol

Distance Vector + Link State

 

자율 시스템 (AS)간 사용하는 프로토콜로, 이름에서 알 수 있듯이 최종 목적지까지 path를 이용하여 라우팅하는 프로토콜이다. 거리에 대한 처리 과정이 생략되고, 관리하는 라우팅 정보에는 목적지 네트워크의 AS만 저장한다. 거리 벡터의 장점인 간단한 정보만을 저장하여 메모리/CPU 부담이 적고, 링크 상태 방식의 장점인 변화가 있는 경우에만 테이블을 교환한다.

 

원리

경로 벡터 라우팅은 AS를 대신하여 동작하는 대표 노드 한 개가 있다고 가정하고, 이를 speaker 노드라고 부른다. speaker 노드는 라우팅 테이블을 생성하고, 이것을 이웃한 AS의 speaker 노드에게 알린다.

 

Untitled

 

각 speaker 노드는 AS 내부에서 단지 노드의 도달 여부만 알 수 있다. 위 그림은 4개의 AS에 있는 각 speaker 노드의 초기 테이블을 보여주고 있다.

 

Path Vector Protocol을 활용하는 프로토콜

  • BGP (Border Gateway Protocol)

 

출처

 

예상 면접 질문 및 답변

라우팅이란?

라우팅은 경로 정보를 기반으로 현재의 네트워크에서 다른 네트워크로 최적의 경로를 통해 데이터를 전송하는 기법이다.

 

라우팅 테이블이란?

라우팅 테이블은 패킷을 목적지로 전달하기 위해 참조하는 테이블이다. 토폴로지, 트래픽 부하 여부, 링크 비용, 메시지 등과 같은 라우팅 계산에 필요한 요소를 기반으로 라우팅 프로토콜을 통해 계산된 라우팅 정보를 저장한다.

 

정적 라우팅 방식에 대해 설명하라.

  • 네트워크 관리자가 패킷의 경로를 임의로 결정하여 수동으로 구성하는 라우팅 방식이다.
  • 장점
    • 라우터의 부하를 경감할 수 있다.
    • 복잡한 계산이 필요 없으므로 빠른 라우팅이 가능하다.
  • 단점
    • 관리자가 관리해야 할 부분이 많아진다.
    • 네트워크 환경 변화를 고려하지 않는다.
    • 정해진 경로 상에서 장애가 발생할 경우, 네트워크 전체 이용에 장애가 발생할 수 있다.
    • 네트워크의 규모가 커지면 수동으로 추가하기 위해 시간이 많이 든다.

 

동적 라우팅 방식에 대해 설명하라.

  • 라우터가 라우팅 프로토콜에 의한 계산에 따라 스스로 라우팅 경로를 결정하는 방식이다.
  • 장점
    • 작업 부담이 없고, 항상 최신 라우팅 정보를 유지할 수 있다.
    • 네트워크 환경 변화를 고려한다.
  • 단점
    • 라우터의 부하가 크다.

 

이해를 돕기 위한 예시

현우가 마트에서 장을 보고 싶다.
이때 A마트는 비싸고 멀고, B마트는 싼데 멀고, C마트는 싸고 가깝다.
C마트에 가서 장을 보려고 하였으나, C마트가 하필 휴점일이었다.
그래서 철수는 고민 끝에 B마트에서 장을 보았다.

동적 라우팅 방식은 위 예시처럼 C마트가 휴점일이라는 환경 변화를 고려할 수 있고, 그에 따라 동적으로 경로를 결정한다. 상황에 따라 A마트가 될 수 있고, B마트가 될 수 있는데 이것은 라우팅 프로토콜에 따라 다르게 계산된다.

 

라우팅 프로토콜에 대해 아는 대로 설명하라.

라우팅 프로토콜은 정적 프로토콜과 동적 프로토콜로 나눌 수 있다.

여기서 동적 프로토콜은 자율 시스템 (AS) 내부에서만 사용하면 IGP 프로토콜, AS 간의 외부 통신이 필요하면 EGP 프로토콜로 다시 나뉜다.

IGP 프로토콜은 거리 벡터 프로토콜과 링크 상태 프로토콜로 나눌 수 있으며, 소규모 네트워크는 경로 벡터 프로토콜을 사용하고 중/대규모 네트워크는 링크 상태 프로토콜을 사용한다.

EGP 프로토콜은 경로 벡터 프로토콜을 주로 사용하며, 대표적으로 이를 활용한 BGP 프로토콜이 있다.

 

거리 벡터 프로토콜이란?

  • 이웃 라우터의 주기적 갱신 정보로 라우팅 테이블을 반영하여 경로를 결정하는 프로토콜
  • 목적지까지 도달하는 데 필요한 거리와 방향만 라우팅 테이블에 기록
  • 분산 벨만 포드 알고리즘으로 구현이 가능
  • 홉 개수가 적은 소규모 네트워크에서 사용이 용이함

 

링크 상태 프로토콜이란?

  • 각 라우터마다 갈 수 있는 모든 라우터의 최단 경로를 라우팅 테이블에 기록
  • 다익스트라 알고리즘으로 구현이 가능
  • 홉 수가 많은 중/대형 네트워크에서 사용이 용이함

 

거리 벡터 프로토콜과 링크 상태 프로토콜의 차이

Untitled

댓글

추천 글