라우팅 프로토콜

라우팅은 패킷을 전달하기 위한 경로를 선택하는 과정. 라우팅을 해주는 장치가 라우터이고, 라우터는 라우팅 프로토콜을 사용하여 라우팅 테이블을 생성함.

동적 라우팅

일반적으로는 동적 라우팅 테이블로 구성. 사람의 개입 없이 라우팅 프로토콜이 자동적으로 테이블의 목적지 주소와 이웃 노드 (next hop)를 갱신해 줌.

라우팅 프로토콜의 종류

 

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

  • 일반적인 라우팅 프로토콜로 목적지가 하나
  • 경로를 선택하기 위해 어떻게 라우팅 정보를 교환하여 라우팅 테이블을 구축할 것인가를 명시
  • 송수신 모두 하나의 시스템

 

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

  • 목적지가 동일 그룹에 속한 여러 호스트가 될 수 있음
  • 브로드캐스팅과 다른점은 브로드캐스팅은 송신자는 하나이고 수신자는 나머지 전부이고, 멀티 캐스트는 수신자가 특정 몇명 (한명이 될수도 있고, 나머지 전부 다 될 수 있음).

유니캐스트용 라우팅 테이블과 멀티캐스트용 라우팅 테이블이 따로 존재.

Autonomous System (자율 시스템)

라우팅 프로토콜은 최적의 라우팅 경로를 찾기 위해 라우팅 테이블에 저장 된 정보를 라우터끼리 통신하여 데이터를 주고받음. 이때 많은 트래픽이 발생하고, 라우팅 테이블의 정보가 외부로 유출될 수 있어서 AS(자율 시스템)을 도입. AS는 AS 넘버를 가지고 있고 같은 AS 넘버를 가진 라우터끼리만 라우팅 정보를 주고받음.

AS에서는 AS 간 통신하는 프로토콜(EGP)과 AS 내부에서 라우팅 정보를 주고받는 프로토콜(IGP)이 따로 존재.

 

내부 게이트웨이 프로토콜 (Interior gateway protocol)

AS 내부에서 사용되는 라우팅 프로토콜. AS 내부에서는 하나 또는 여러 개의 라우팅 프로노콜을 사용할 수 있다.

 

RIP 프로토콜

Distance Vector (Bellman-Ford) 알고리즘을 사용한 Intradomain 프로토콜. 해당 알고리즘을 사용하는 프로토콜로 RIPv1/v2, IGRP가 존재

 

Distance Vector 라우팅 작동 방식

  • 기본적인 알고리즘은 자신과 이웃한 노드에게 자신이 어떤 노드에 연결되어있는지 알려주는 방식으로 작동.
  • A노드는 B에게 자신이 E와 F라는 노드와 연결되어있다고 알려줌.
  • B노드는 A에게 자신이 C라는 노드와 연결돼있다고 알려 줌.
  • A는 B나 F를 통해 C로 갈 수 있다는 것을 알게 되고, 이중 어느 곳이 더 최적화되어있는지를 전달받은 정보를 통해 계산하여 경로를 찾아냄.

OSPF (Open Shortest Path First)

Link state 알고리즘을 사용한 Intradomain 프로토콜

 

Link State 라우팅 작동 방식

모든 노드가 전체 네트워크에 대한 구성도를 만들어서 경로를 구하는 방식. 모든 노드가 동일한 구성도를 가지고 자신을 기준으로 다익스트라 알고리즘을 사용해서 최단경로를 구한다. 네트워크에 변화가 생기면 각 노드는 네트워크 구성도를 갱신.

  • 전달되는 정보는 Distance Vector과 동일. 자신이 어떤 노드에 연결되었는지, 전달하는데 얼마큼의 비용이 드는지를 전달한다. 이때, 이 정보를 이웃한 노드에만 전달하는 것이 아닌 모든 노드에 전달한다. 이때 모든 노드에 정보를 전달할 때 Flooding을 사용한다.

  • Flooding이란 데이터가 들어온 포트를 제외한 모든 포트에 데이터를 전송하는 것을 의미한다.
  • 전달받은 데이터를 통해 전체 네트워크 토폴로지에 대한 테이블을 만든다. 이때 만들어진 테이블은 모든 라우터가 가지고 있다.

외부 게이트웨이 프로토콜 (Exterior gateway protocol)

AS 간 사용되는 라우팅 프로토콜. AS 간에는 반드시 하나의 라우팅 프로토콜만 사용한다. 대표적으로 BGP가 있다.

 

BGP (Border Gateway protocol)

Path Vector 라우팅을 사용하는 Interdomain 프로토콜.

 

Path Vector 라우팅 작동 방식

일반적인 라우팅 방식은 A라는 목적지에 가려고 할 때 데이터를 전달하는 노드에서 다음 노드(next-hop)만 명시하는 방법이지만, Path Vector는 경로를 모두 지정

사용 목적

  • Policy Routing (정책 라우팅) : 사용자가 경로를 설정 하므로써 거쳐가면 안되는 노드에 접근 하지 않을 수 있음
  • Loop Prevention (루프 방지)

 

멀티캐스팅

같은 그룹에 속한 노드들에게만 패킷을 보내야 함으로 그룹을 관리하는 프로토콜과 패킷을 그룹에 속해있는 노드들에게 전송하는 프로토콜 2개로 나뉘어 있다.

 

IGMP (Internet Group Management Protocol)

  • 그룹에 속한 시스템들의 가입과 탈퇴를 관리
  • 멀티캐스팅 라우팅 프로토콜이 아닌 그룹에 대한 관리만을 담당
  • IGMP는 로컬에서만 작동한다. 라우터와 호스트사이에서만 작동. 라우터와 라우터 사이에서 작동하는 것은 멀티캐스팅 라우팅 프로토콜.

 

IGMP 메시지

그룹의 멤버가 현재 그룹 내에 존재하는지 확인하기 위해 메시지를 보내 응답이 오는지 확인한다. 응답이 없을 시 라우터는 해당 멤버가 그룹 내에 존재하지 않는 것으로 판단하고, 멀티캐스트 패킷을 해당 멤버에게 전송하지 않는다. 존재하는지 체크하는 메시지는 Query라 하고, 그 응답을 report라 한다.

  • Query message: 라우터가 특정 멀티캐스트 그룹이 존재하는지 확인할 경우에 사용. Gerneral query message는 모든 그룹의 구성원들에게 보내져서 어떤 호스트가 그룹에 속해있는지 확인할 때 사용.
  • Report message: 호스트가 쿼리 메시지에 대한 응답. 응답하지 않을 시 라우터는 해당 호스트를 라우터 DB에서 제거

 

멀티캐스트 라우팅

송신자 기반 트리 (Source-based)

송신자를 중심으로 트리를 만드는 방식.

 

프로토콜 종류

  • DVMRP (Distance Vector Multicast Rounting Protocol): RIP와 같은 거리 벡터 라우팅 방식을 기반으로 동작
  • MOSPF (Multicast OSPF) : OSPF와 같은 Lin k State 방식을 기반으로 동작
  • PIM-DM: RIP나 OSPF를 둘 다 사용. 어떤걸 사용해도 상관없이 사용 할 수 있도록 만든 프로토콜

 

그룹 공유 트리 (Group-shared tree)

각 라우터가 그룹별로 최적 경로를 구성하지 않고, 센터 코어 혹은 랑데부 라우터만 그룹에 대한 최적 경로 구성. 동일한 틀히를 각 그룹이 하나씩 가지면서 이를 공유

  • 임의의 라우터가 멀티캐스트 패킷을 받음
  • 유니캐스트 패킷으로 캡슐화 하여 코어 라우터에 전달
  • 코어 라우터가 멀티캐스트 패킷을 전달

'네트워크' 카테고리의 다른 글

전송 프로토콜, TCP, UDP  (0) 2023.08.28
패킷 라우팅  (0) 2023.08.01
주소매핑과 네트워크 에러 보고  (0) 2023.07.27
DHCP와 NAT  (0) 2023.07.21
IP 주소, 서브넷, 가변길이 주소 지정  (0) 2023.07.19