08. 패킷 전달과 라우팅 프로토콜

b4failrise ㅣ 2021. 7. 24. 00:52

송수신자와 중간 장치들이 패킷을 어떻게 처리하는지, 직접과 간접 전달 2가지 방법으로 나누어 살펴본다. 그리고 라우팅테이블에 대해 알아보며 현재 많이 사용되어지는 거리벡터 라우팅에 대해 학습한다.

패킷의 전달

패킷을 송신자와 수신자 그리고 중간 장치들이사이에서 어떻게 처리하는지 살펴보고 전달하는 방법인 직접전달과 간접전달에 대해 학습한다.

패킷의 처리

  • 인터넷은 여러 네트워크의 연결로 구성
    • 송신지에서 목적지까지의 경로가 여럿 존재
  • 네트워크 계층은 여러 네트워크를 통한 패킷 전달 문제를 해결
  • 패킷 처리를 3개로 구분함. 송신자, 중간장치, 수신자
    • 송신자의 네트워크 계층은 패킷을 생성
      • 패킷이 너무 크다면 단편화가 발생
      • 목적지에 패킷을 전달하기 위해 라우팅 테이블을 참조
      • 어느 경로를 통해서 최종 목적지까지 전달하는 것이 가장 좋은지 best path를 결정해야 하는데, 이때 참조하는 것이 라우팅 테이블이다.
        • 라우팅은 송신지에서 목적지까지 가는 여러 개의 경로 중에 어느 하나를 선택하는 과정을 라우팅이라고 한다. 이때 참조하는 테이블이 바로 라우팅 테이블이다.
        • 라우팅 테이블에는 목적지까지 도달하기 위한 다음 경로가 적혀 있음.
    • 목적지의 네트워크 계층은 주소를 확인하여 자신에게 온 패킷인지 검사
      • IP패킷의 헤더들을 검사, 헤더의 목적지 주소가 맞으면 나머지 작업을 처리함
      • 단편화된 패킷을 받는다면, 단편들을 모아서 하나의 온전한 패킷으로 조립
    • 스위치나 라우터와 같은 중간장치들은 패킷을 라우팅
      • 패킷이 도착하면 라우팅 테이블을 검사하고 보내야 하는 인터페이스(포트)를 확인
      • 라우팅이라는 것을 전문적으로 처리해주는 장치를 라우터라고 부른다.
      • 라우터들이 라우팅 테이블에 기반해서 패킷을 전달하는 역할을 한다.

패킷 전달 방식 및 라우팅 테이블 구성 종류

  • 패킷의 전달은 직접 전달간접 전달로 나뉨
    • 직접 전달(direct delivery): 패킷의 최종목적지가 전달자와 동일한 네트워크 상에 있을 경우
    • 간접 전달(indirect delivery): 패킷이 최종목적지에 전달될 때까지 라우터에서 라우터로 전달
      • 이웃 노드 명시(Next-hop method)
        • 가장 기본이되는 방법
        • 라우팅 테이블은 전체 경로상의 라우터를 명시하지 않고 다음 라우터만을 명시
        • A->R1->R2->B 와 같이 모든 경로를 명시하는 것이 아니라(모두 명시할 수는 있음) A는 R1만 명시
        • 그 다음 경로는 다음 라우터가 보장한다고 가정
      • 네트워크 주소 명시(Network-specific method)
        • 네트워크 주소만 명시하는 것이 일반적
        • 동일한 네트워크에 연결된 컴퓨터들을 하나하나 모두 명시하는 것이 아니라 목적지 네트워크 주소만 명시
        • 192.168.10.20의 경우, 192.168.10.0 으로 네트워크 주소만 라우팅 테이블에 등록
        • 이렇게 하면 호스트 주소를 등록하는 것보다 라우팅 테이블 사이즈를 크게 줄일 수 있음(동일한 네트워크에 속한 여러 사용자들의 네트워크 경로는 비슷하다고 보기 때문)
      • 호스트 주소 명시(Host-specific method)
        • 라우팅 테이블에 목적지 컴퓨터 주소를 직접 명시 가능
        • 컴퓨터 주소를 라우팅 테이블에 갖는 것이 비효율적 그러나 특별한 목적이 있는 경우 포함 가능
          • 특정 컴퓨터가 특정 라우터를 거치기 원할 경우
        • 보통은 관리자가 직접 입력
        • 라우터에는 네트워크 주소 명시 라우팅 테이블과 호스트 주소 명시 라우팅 테이블이 모두 존재하는데, 호스트 주소 명시 라우팅 테이블이 우선권을 갖는다.
      • 디폴트 지정(Default method)
        • 인터넷에 있는 모든 목적지를 지정할 수 없으므로 지정된 목적지 이외의 모든 지역을 지정하는 라우팅 엔트리를 디폴트라고 함(보통 네트워크 주소가 0.0.0.0 으로 표기된다.)
        • 다음 그림에선 R2가 디폴트 라우터
        • PC방, 집에서 내부에 다양한 컴퓨터들이 보통 하나의 라우터를 거쳐서 나감. 이외에는 다른 경로가 없음. 이처럼 외부 인터넷을 나갈 때와 같은 경우 특정 라우터를 거쳐서 나가라고 디폴트로 지정함.
        • 디폴트 라우터, 디폴트 게이트웨이

라우팅 프로토콜

라우팅 테이블이 무엇인지, 라우팅 프로토콜이 무엇인지에 대해 살펴보며,
라우팅 프로토콜에서 자율시스템의 의미에 대해 알아본다.
그리고 현재 많이 사용되어지는 거리벡터, 링크상태, 경로 벡터 중에 거리벡터 라우팅에 대해 학습한다.

라우팅 테이블과 라우팅 프로토콜

  • 라우팅은 패킷을 전달하기 위한 경로를 선택하는 과정
  • 이를 전문적으로 수행하는 장치가 라우터
  • 이 라우터들은 라우팅 프로토콜을 이용해서 라우팅 테이블을 생성
  • 패킷을 전달할 때 라우팅 테이블을 기준으로 전달하기 때문에 중요
  • 라우팅 테이블을 만드는 애가 라우팅 프로토콜.
  • 사람이 전혀 개입 안 하는건 아님 -> 정적 라우팅 테이블

라우팅 테이블 구성

  • 라우팅 테이블은 정적 혹은 동적으로 구성
  • 정적 라우팅(static routing) 테이블은 직접 입력
    • 일반적인 경우는 아님
    • 특별한 목적으로 네트워크 운영관리자들이 수동으로 작업
    • 자동으로 갱신될 수 없으며, 보통 호스트 컴퓨터에서 사용
    • LAN에 접속된 호스트는 외부 인터넷으로 접속하는 출구가 하나이기 때문에 동적으로 구성할 필요성이 없음
  • 동적 라우팅(dynamic routing) 테이블은 경로를 주기적으로 갱신(대표적으로 RIP, OSPF, BGP가 존재)
    • 일반적
    • 테이블에 들어가 있는 엔트리(목적지주소, next hop)가 주기적으로 자동으로 삭제, 변경, 추가

경로 설정

  • 두 가지 경로설정이 존재 - 유니캐스트, 멀티캐스트
  • 유니캐스트와 멀티캐스트에서 사용되는 라우팅 프로토콜, 라우팅 테이블이 따로 존재한다.
  • 유니캐스트 라우팅 프로토콜에 기반이 되는 거리벡터, 링크상태, 경로벡터 라우팅은 멀티캐스트에도 활용된다.

유니캐스트 라우팅 프로토콜

  • 일반적인 라우팅 프로토콜로 송수신이 모두 하나임
  • 유니캐스팅에서 사용되는 라우팅, 라우팅 프로토콜, 라우팅 테이블이 존재
  • 경로를 선택하기 위해 어떻게 라우팅 정보를 교환하여 라우팅 테이블을 구축할 것인가를 명시

멀티캐스트 라우팅 프로토콜

  • 멀티캐스트 그룹이에 속해있는 다수의 컴퓨터들이 받는 것
  • 목적지가 동일 그룹에 속한 여러 호스트가 될 수 있음

자율 시스템(Autonomous System)

  • 하나의 기관 내부를 나타낸 것으로 네트워크와 라우터의 집합으로 구성된 것으로 라우팅 테이블의 정보를 주고받는 범위를 지정하여 지정한 범위 내에서 라우팅 테이블 정보를 주고받는 것
  • 동잃ㄴ 관리 영역에 속해있는 라우터들은 동일한 AS 넘버를 갖게 되고 동일한 AS넘버를 갖고 있는 애들끼리만 서로 라우팅 테이블을 주고 받는다.
  • 라우터들이 라우팅 테이블을 주고 받는 범위를 정하기 위해 도입한 시스템
    • 학교, 회사의 라우팅 테이블 정보가 전 세계에 다 돌아다니진 않는다. 그걸 바라지도 않는다.
    • 학교, 회사 내에서만 라우팅 테이블이 주고받아져야 하고, 회사가 있으면 그 회사 내에서만 라우팅 테이블이 주고받아져야 된다.
    • 이러한 영역이 지정되야 할텐데 이를 해결하기 위한 것이 AS
    • 인터넷은 AS들이 서로 연결되어 있는 구조
  • 하나의 라우팅 프로토콜이 전체 인터넷에서 통용되지 않음
  • AS는 하나의 기관 내부를 나타낸 것으로 네트워크와 라우터의 집합을 구성
  • 라우팅 프로토콜은 내부 게이트웨이 프로토콜과 외부 게이트웨이 프로토콜로 구분

내부 게이트웨이 프로토콜(interior gateway protocol:IGP):

  • 자율 시스템 내부에서 사용되는 라우팅 프로토콜(IS-IS, OSPF, IGRP, EIGRP, RIP 등)
  • 각 AS는 여러 라우팅 프로토콜을 사용해도 무관

외부 게이트웨이 프로토콜(exterior gateway protocol:EGP):

  • 자율 시스템 간에 사용되는 라우팅 프로토콜, BGP가 이에 속함
  • AS간에는 반드시 하나의 라우팅 프로토콜만 사용

라우팅 프로토콜 종류

1. 거리벡터라우팅(Distance Vector Routing)

  • 두 노드 사이의 최소 비용 경로는 최소거리를 갖는 경로
    • 경로를 계산하기 위해서 Bellman-Ford 알고리즘을 사용
  • 거리 벡터 라우팅을 사용하는 프로토콜로 RIPv1/v2, IGRP(Interior Gateway Routing Protocol) 존재
    • BGP(Border Gateway Protocol)도 거리 벡터 라우팅과 개념상 유사함 - 벨만 포드 알고리즘을 사용
알고리즘의 동작
  • 각 라우터는 자신의 정보를 이웃 라우터와 공유
    • 전체 AS에 대한 정보를 공유
    • 이웃 라우터하고만 공유
    • 주기적으로 공유
  • 처음에는 이웃 라우터 건너편의 라우터 정보를 알지 못함. 주기적으로 이웃 라우터의 정보를 받으면서 AS 전체 정보를 얻게 되고 최적의 경로를 구하게 됨
  • 코스트는 속도, , 밀리는 구간이 될 수도 있음
  • A의 입장에서 보면 자기가 C로부터 어떤 정보를 수신하게 되면 자기 테이블과 비교해서 업데이트
    • A-C 코스트인 2값을 전부 C로부터 받은 테이블에 더해줌. 이것과 기존 테이블을 비교
거리벡터라우팅의 대표 프로토콜, RIP 특징
  • 현재 가장 많이 사용되는 라우팅 프로토콜
  • 거리벡터 프로토콜을 사용
  • 소규모 동종의 네트워크(자율시스템) 내에서 효율적인 방법
  • 최대 홉수를 15로 제한하므로, 15이상의 경우는 도달할 수 없는 네트워크를 의미하며, 이것은 대규모 네트워크에서는 RIP를 사용할 수 없음을 나타냄
  • 라우팅 정보를 30초마다 네트워크 내의 모든 라우터에 알리며, 180초 이내에 새로운 라우팅 정보가 수신되지 않으면 해당 경로를 이상 상태로 간주함

2. 링크상태 라우팅

  • 모든 노드가 전체 네트워크에 대한 구성도를 만들어서 경로를 구함(모든 라우터들이 전체 토폴로지가 어떻게 생겼는지 그림)
    • 각 노드는 다른 모든 노드로부터 최단 경로를 구함
    • 각 노드는 다익스트라의 최단 경로 알고리즘을 사용하여 라우팅 테이블을 구축
      • 전체 네트워크의 구성도를 그리기 위해서는 이웃에 관한 정보를 전체 라우터들과 공유(거리벡터 라우팅과 다른 부분)
    • 네트워크에 변화가 생기면(링크 상태 등) 각 노드는 네트워크 구성도 갱신
      • 링크상태 라우팅은 전체 네트워크는 주기적으로 구성도를 갱신하지 않는다.
  • OSPF(Open Shortest Path First) 라우팅 프로토콜은 링크 상태 라우팅 방법을 사용
알고리즘의 동작
  • 각 라우터는 인터넷의 전체 그림을 그려야 함
    • 이웃에 관한 정보를 공유
    • 모든 라우터와 공유
    • 변화가 발생하면 정보를 공유
  • 전달하는 방식
  • 링크 상태 데이터베이스
링크상태 라우팅의 대표 프로토콜, OSPF 특징
  • 경로 수(Hop)에 제한이 없으므로 대규모 네트워크에서 많이 사용되는 라우팅 프로토콜
  • 멀티캐스팅 지원
  • 라우팅 정보에 변화가 있을 때에 변화된 정보만 네트워크 내의 모든 라우터에 알림 -> 네트워크 변화에 민첩하게 대응한다.
  • RIP의 한계를 극복하기 위해 IETF에서 고안한 것으로 네트워크의 변화가 있을 때만 갱신하므로 대역을 효과적으로 사용할 수 있는 라우팅 프로토콜
  • 다익스트라 알고리즘을 사용한다.

3. 경로 벡터 라우팅(Path Vector Routing)

개념
  • BGP(Border Gateway Protocol)은 자율 시스템 간의 라우팅 프로토콜
    • 현재 사용되는 버전은 BGP4(EGP를 보완해서 나온 것)
    • 경로 벡터 라우팅 방법을 사용
    • 라우팅 테이블에 목적지까지의 경로가 명시(보통은 Next-hop만 명시)
    • 경로는 자율 시스템의 리스트로 표현
목적
  • 루프 방지
    • 데이터 수신 시 라우터가 자신의 자율 시스템이 목적지 경로 항목에 있는지를 확인
    • 만약 포함되어 있다면 Loop에 포함됐으므로 해당 데이터는 무시
  • 정책 라우팅
    • 경로 벡터 라우팅을 통해 쉽게 구현 가능
    • 데이터 수신 시 라우터는 경로를 확인 가능
    • 경로 확인 시 등록된 자율시스템 중 일부가 정책에 반대되면 그 경로와 목적지를 무시
      • 과거에 우리나라에서 발생한 트래픽이 미국까지 거치는 경우가 발생함.
      • 또한 A-B간에 주고 받는 트래픽이 C를 거쳐서 C의 네트워크 자원을 사용하는 문제가 발생함
      • 이러한 의도하지 않은 경로를 차단하기 위해서 사용
경로벡터 라우팅의 대표 프로토콜, BGP 특징
  • 자율 시스템 간의 라우팅 프로토콜로, EGP의 단점을 보완하기 위해 만들어짐
  • 초기에 BGP 라우터들이 연결될 때에는 전체 경로 제어표(테이블)를 교환하고, 이후에는 변화된 정보만을 교환함