Programming/Network

[Network] 라우팅, 포워딩

soeun2537 2024. 8. 25. 16:29
해당 글은 VSFe 깃허브 레포를 참고하여 작성한 글입니다. (아래 출처에 표기)

 

 라우터 내의 포워딩 과정에 대해 설명해 주세요.

  1. 패킷 수신: 라우터는 네트워크 인터페이스를 통해 패킷을 수신한다.
  2. 헤더 분석: 수신한 패킷의 IP 헤더를 분석하여 목적지 IP 주소를 확인한다.
  3. 포워딩 테이블 조회: 라우터는 목적지 IP 주소와 일치하는 항목을 찾기 위해 포워딩 테이블을 조회한다.
  4. 적절한 인터페이스 선택: 포워딩 테이블에 기반하여 패킷을 어떤 인터페이스로 보내야 할지를 결정한다. 선택된 인터페이스는 다음 홉으로 패킷을 전송한다.
  5. 패킷 전송: 패킷이 결정된 인터페이스를 통해 다음 홉으로 전송된다.
홉(Hop): 데이터 패킷이 출발지에서 목적지로 이동하는 동안 거쳐가는 각 네트워크 장치(주로 라우터 또는 스위치)

 

 

✅ 라우팅과 포워딩의 차이는 무엇인가요?

라우팅

라우팅(Routing): 네트워크 경로를 결정하는 과정이다. 라우터는 네트워크 상의 여러 가능한 경로 중에서 패킷을 목적지까지 보내기 위해 가장 적합한 경로를 선택한다.

🔽 과정

  1. 라우팅 테이블 구축: 라우터는 다양한 라우팅 프로토콜을 사용하여 네트워크의 경로 정보를 수집하고, 이를 바탕으로 라우팅 테이블을 만든다.
  2. 경로 선택: 라우팅 테이블을 참고하여 패킷을 목적지로 보내기 위한 최적의 경로를 선택한다.
라우팅 프로토콜: 라우터 간 정보를 교환하고, 최적의 경로를 결정하기 위해 사용하는 규칙과 절차의 집합이다.

 

 포워딩

포워딩(Forwarding): 패킷을 실제로 전달하는 과정이다.

🔽 과정

  1. 패킷 수신: 라우터는 네트워크 인터페이스로 들어오는 패킷을 수신한다.
  2. 포워딩 테이블 조회: 수신한 패킷의 목적지 IP 주소에 따라 포워딩 테이블을 조회한다.
  3. 적절한 인터페이스로 전송: 포워딩 테이블에서 지정된 인터페이스를 통해 패킷을 다음 홉(다음 라우터나 최종 목적지)으로 전송한다.

 

 라우팅과 포워딩의 차이점

  라우팅(Routing) 포워딩(Forwarding)
정의 네트워크에서 데이터 패킷을 목적지까지 전달하기 위한 최적의 경로를 결정하는 과정 라우팅에서 결정된 경로에 따라 패킷을 실제로 전달하는 과정
기능 네트워크의 전체 구조와 다양한 경로를 고려하여, 패킷을 전송하기에 가장 적합한 경로를 선택 라우터가 수신한 패킷을 포워딩 테이블을 참조하여 적절한 출력 인터페이스로 전송
수행 계산과 논리적인 결정이 필요하므로, 라우터의 소프트웨어(운영체제 및 라우팅 프로토콜)에서 실행 라우팅 테이블을 기반으로 패킷을 실제 전송하는 작업으로, 라우터의 하드웨어에서 수행
결과 라우팅 테이블 생성 패킷을 목적지까지 전달하기 위해 다음 홉으로 전송
주기 네트워크 환경이 변화할 때 또는 주기적으로 수행 패킷이 도착할 때마다 실시간으로 수행

 

 라우팅과 포워딩 예시

라우팅(Routing) 예시
포워딩(Forwarding) 예시

내비게이션을 설정할 때, 전체적인 관점에서 가장 효율적인 경로를 결정하는 것이 라우팅이고, 그 경로를 따라 이동하면서 특정 구간에서 어디로 갈지를 결정하는 것이 포워딩이다.

 

 

✅ 라우팅 알고리즘에 대해 설명해 주세요.

라우팅 알고리즘: 네트워크에서 데이터 패킷을 목적지까지 가장 효율적으로 전달하기 위해 최적의 경로를 선택하는 방법 또는 절차를 의미한다.

 

 라우팅 알고리즘의 유형

  • 정적 라우팅(Static Routing)
    • 설명: 정적 라우팅은 네트워크 관리자가 수동으로 라우팅 테이블에 경로를 설정하는 방식이다. 경로가 고정되어 있으며, 네트워크 환경이 변하더라도 경로가 자동으로 변경되지 않는다.
    • 장점: 간단하고 예측이 가능하며, 소규모 네트워크에서 유용하다.
    • 단점: 네트워크 환경이 변경되면 수동으로 경로를 수정해야 하므로, 대규모 네트워크에서는 비효율적일 수 있다.
  • 동적 라우팅(Dynamic Routing)
    • 설명: 동적 라우팅은 라우터들이 라우팅 프로토콜을 사용하여 서로 정보를 교환하고, 네트워크의 상태에 따라 자동으로 라우팅 테이블을 갱신하는 방식이다.
    • 장점: 네트워크의 변화에 유연하게 대응할 수 있으며, 대규모 네트워크에서 매우 효율적이다.
    • 단점: 더 복잡하고, 라우터 간의 정보 교환으로 인한 오버헤드가 발생할 수 있다.

 

 동적 라우팅 알고리즘의 종류

  • 거리 벡터 라우팅(Distance Vector Routing)
    • 설명: 각 라우터는 인접한 라우터들로부터 받은 거리 정보를 사용하여 경로를 결정한다.
    • 장점: 구현이 간단하다.
    • 단점: 네트워크 규모가 커질수록 성능 저하되고, 루프가 발생할 가능성이 있다.
  • 링크 상태 라우팅(Link State Routing)
    • 설명: 네트워크 내 모든 라우터들이 서로 링크 상태 정보를 교환하여 전체 네트워크 구조를 파악하고, 각 라우터가 최단 경로를 계산한다.
    • 장점: 네트워크 상태 변화에 빠르게 대응하며, 대규모 네트워크에서도 효율적이다.
    • 단점: 구현이 복잡하고, 초기 구동 시간이 오래 걸릴 수 있다.
  • 경로 벡터 라우팅(Path Vector Routing)
    • 설명: 라우터 간의 경로 정보와 네트워크 정책을 기반으로 최단 경로를 계산한다.
    • 장점: 구현이 간단하고, 작은 네트워크에서는 빠른 수렴이 가능하다.
    • 단점: 대규모 네트워크에서는 수렴 시간이 오래 걸리거나, 라우팅 루프가 발생할 수 있다.
거리: 라우팅에서 목적지까지의 비용을 의미한다. 예를 들어, 라우터 A에서 목적지 B까지의 거리가 3홉이라고 하면, A에서 B까지 패킷이 3개의 중간 라우터를 거친다는 것을 의미한다.
경로: 출발지에서 목적지까지 패킷이 지나가는 실제 네트워크 장치들의 순서를 의미한다. 예를 들어, 경로가 [AS1, AS2, AS3]이라고 하면, 패킷이 AS1, AS2, AS3을 순차적으로 거쳐 목적지에 도달하는 것을 의미한다.

 

 

✅ 포워딩 테이블의 구조에 대해 설명해 주세요.

 포워딩 테이블(Forwarding Table)

  • 넷마스크: 네트워크 주소의 범위를 나타내는 서브넷 마스크이다.
  • 목적지 네트워크 주소: 패킷의 목적지 IP 주소를 식별한다.
  • 다음 홉: 패킷이 전달되어야 할 다음 목적지의 IP 주소이다.
  • 출력 인터페이스: 패킷을 다음 홉으로 전달하기 위해 사용되는 라우터의 네트워크 인터페이스이다.

 

 라우팅 테이블과 포워딩 테이블의 차이점

많은 글에서 라우팅 테이블과 포워딩 테이블이 구분 없이 사용되곤 한다. 그러나 정확히 말하면, 라우팅 테이블과 포워딩 테이블은 명확히 구분된다. 예를 들어, Riverbed(OPNET) Modeler에서는 라우팅 테이블이 각 라우팅 프로토콜에 의해 생성되고 관리되는 정보인 반면, 포워딩 테이블은 이 라우팅 테이블의 정보를 기반으로 IP 계층에서 생성되고 관리된다.

위 그림처럼 라우팅 테이블과 포워딩 테이블은 완전히 분리된 상태로 저장되며, 서로 다른 역할을 한다. 하지만 대부분의 경우, 포워딩 테이블에는 라우팅 테이블에 저장된 내용과 동일한 정보가 저장되기 때문에, 이 둘을 혼용하여 사용하는 경우가 많다.

 

 

📍 문제 출처

Tech-Interview / 03-NETWORK.md

 

📍 참고 자료