본문 바로가기
네트워크

네트워크 정리 18. 목적지 주소에 기반을 둔 포워딩 (Forwarding Based On Destination Address)

by 호놀롤루 2022. 4. 14.

1. 개요

포워딩은 라우터로 들어온 패킷을 테이블을 참조해서 목적지로 향하도록 보내는 것을 말한다.

인터넷은 링크(네트워크)의 조합으로 구성되기 때문에 패킷은 다음 홉(최종 목적지나 다음 라우터)으로
전달하는 행위가 라우팅이다.

이 포워딩의 종류에 대해서 알아보려 한다.

 

 

2. 설명

2-1. 종류 설명

크게 2가지 종류로 나눌 수 있다.

목적지 주소에 기반을 둔 포워딩, 레이블 기반의 포워딩, 상세하게 분류하면

  • 목적지 주소에 기반을 둔 포워딩 (Forwarding Based On Destination Address)
    - 주소 집단화 (Address Aggregation)
    - 가장 긴 마스크 매칭 (Longest Mask Matching)
    - 계층적 라우팅 (Hierarchical Routing)
    - 지리적 라우팅 (Geographical Routing)
    - 포워딩 테이블 검색 알고리즘 (Forwarding Table Search Algorithms)

  • 레이블 기반의 포워딩 (Forwarding Based on Label)
    - MPLS (Multi Protocol Label Switching)
    - 새로운 헤더 (A New Header)
    - 계층적 교환 (HIerarchical Routing)

이번 포스팅에선 목적지 주소에 기반을 둔 포워딩을 다 정리해보려 한다.

 

 

2-2. 목적지 주소에 기반을 둔 포워딩 (Forwarding Based On Destination Address)

  • 일반적을 사용되고 있는 방식이다.
  • 포워딩을 위해 포워딩 테이블을 가진 호스트나 라우터가 필요하다.
  • 호스트가 전송할 패킷이 있거나, 라우터가 포워딩할 패킷을 수신할 경우, 포워딩 테이블을
    참조하여 패킷을 전달할 다음 홉을 찾는다.
  • Classless Addressing의 경우, prefix가 짧은 순서 (suffix가 긴 순서, 더 큰 네트워크)로
    포워딩 테이블이 생성된다. 그 이유는 더 큰 네트워크에 포함되어 있다면, 뒤에 건 볼 필요도 없기
    때문이다.
  • 테이블을 다 뒤져봤는데 매핑되는 게 없으면 default로 설정되어 있는 홉으로 이동한다.

 

 

2-3. 주소 집단화 (Address Aggregation)

  • Classless Addressing을 사용할 경우, 특정 블록에서 서브 네트워크를 만들면, 그 서브 네트워크는
    블록에서 파생된 것이니, 다 붙어있다.
  • 그러니 처리할 때도, 붙어있는 주소끼리 처리하는 게 주소 집단화 포워딩이다.

 

 

2-4. 가장 긴 마스크 매칭 (Longest Mask Matching)

  • 마스크의 길이는 서픽스(suffix)의 길이로 결정된다. 서픽스가 길수록 마스크도 길어지는데,
    마스크가 가장 긴 주소를 먼저 매칭하게 되면, 해당하는 것을 신속하게 걸러낼 수 있으니
    이상한 위치로 전달되는 것을 막을 수 있다.

 

 

2-5. 계층적 라우팅 (Hierarchical Routing)

  • 라우팅 테이블이 커지는 문제를 해결하기 위해 라우팅 테이블에 계층구조를 도입한 것이다.
  • 큰 블록이 할당되었을 경우, 모든 경로를 한 포워딩 테이블에 적으면, 포워딩 테이블이 길어지고
    매칭시간도 길어질 것이다.
  • 그래서 계층별로 따로 포워딩 테이블을 가지게 하면 되는 것이다.
  • 간단한 예시로, 대한민국 국민들의 전화번호를 한 전화번호부에 적어놓으면, 말도 안되게 긴
    전화번호부가 만들어질 것이다.
    그런데 이걸, 행정구역별로 나눠서, 동네까지 나누고, 전체 전화번호부에는 행정구역별로 찾는 방법만
    적어놓는다면, 사용하기 편한 전화번호부를 만들 수 있다.

  • /24 크기의 블록을 받으면, /26 크기의 4개의 서브네트워크로 바꾸고, /26 크기의 네트워크를
    /30 크기의 16개의 서브 네트워크로 나누면, /24 크기의 블록의 포워딩 테이블엔 /26 크기의
    네트워크 4개의 주소와 경로만 적으면 된다.
    /26 크기의 주소는 각각 16개의 /30 크기 서브 네트워크의 주소와 경로만 가지면 된다.

 

 

2-6. 지리적 라우팅 (Geographical Routing)

  • 포워딩 테이블의 크기를 줄이기 위해, 지역별로 구분하는 라우팅 개념이다.
  • 먼저 전체 주소 공간을 작은 수의 큰 블록들로 나누고, 대륙별로 (아시아, 유럽, 아메리카, 아프리카 등)
    블록을 할당한다.
  • 아시아가 아닌, 외부의 ISP(인터넷 서비스 제공자)의 라우터들은 아시아로 가는 패킷의 경로가
    하나만 있으면 된다.
  • 유럽의 경우, 유럽이 아닌 외부의 ISP의 라우터가 유럽으로 패킷을 보낼 경우, 유럽으로 가는 경로가
    하나만 있으면 된다.

 

2-7. 포워딩 테이블 검색 알고리즘 (Forwarding Table Search Algorithms)

  • 정렬 알고리즘을 사용해서 탐색 시간을 줄이는 방법이다.
  • O(logN)의 시간복잡도를 가지지만(한 번 검색할 때마다 반씩 줄어듬), 해당되는 게 없는 default일
    경우, 모두 뒤져봐야 한다는 단점이 있다.

댓글