-> 블로그 이전

[Network] 네트워크 계층 : 계층적 라우팅

2022. 2. 27. 14:43Major`/컴퓨터 네트워크

계층적 라우팅 (Hierarchical Routing)

- 지금까지의 라우팅은 아래의 특정 조건을 가정으로 기술되었다

  • 모든 라우터가 동일
  • 하나의 네트워크를 기준

- 그러나 인터넷은 네트워크의 네트워크이고 모든 라우터는 당연히 동일하지 않다


현실 세계의 라우팅 문제

1. 확장 (Scale)

- 인터넷상에는 6억개 이상의 Host들이 존재한다

  • 따라서, 모든 목적지를 Routing Table에 저장할 수 없다 (너무 많기 때문)

 

▶ LS (Link-State)

- 모든 라우터들이 서로에게 자신의 LS를 브로드캐스팅한다

  • 이러면 각 Router간의 Link 비용을 굉장히 많이 사용하게 된다 :: 비효율적

- 원래 목표인 "user들의 Data 교환"보다 Data 교환을 하기 위한 Router끼리의 정보 교환이 더 많이 발생하게 된다

 

▶ DV (Distance-Vector)

- 라우팅 루프가 굉장히 많이 발생 / 자신의 DV가 굉장히 길어진다

 

>> 최종적으로 라우팅 테이블의 크기를 감당하지 못한다

 

2. 관리 자치권 (Administrative Autonomy)

- 인터넷에는 여러 네트워크들이 집합적으로 모여있고 각 네트워크마다 관리자가 다를것이다

  • 각 네트워크를 담당하는 관리자들은 "자신의 네트워크 정보"들을 다른 네트워크에 굳이 알릴 필요가 없다

- 따라서, 각 네트워크 관리자들은 자신의 방식대로 자신의 네트워크를 관리하기를 원한다


자치 시스템 (AS : Autonomous System)

- 라우터들을 영역으로 그룹화시켜서 그룹별로 관리하는 시스템이다

  • 각 그룹들을 AS라고 부른다

- 같은 AS는 같은 라우팅 알고리즘으로 구현이 된다

  • Link-State Routing Algorithm && Distance-Vector Routing algorithm

 

게이트웨이 라우터 (Gateway Router)

- 각각의 AS들은 자신의 AS내의 Network Edge에 존재하는 게이트웨이 라우터를 통해서 연결이 된다

  • AS ~ 외부 AS에 패킷을 전달하는 라우터이다

Region1의 게이트웨이 라우터는 1B, 1C이다

  • 1B는 Region 2의 게이트웨이 라우터인 2A와 연결이 되어 있다
  • 1C는 Region 3의 게이트웨이 라우터인 3B와 연결이 되어 있다

상호 연결된 AS (Interconnected ASes)

인트라 AS 라우팅 프로토콜

- AS 내부에서 각 Router끼리 동작하는 라우팅 알고리즘

 

인터 AS 라우팅 프로토콜

- 이웃 AS에 도달할 수 있는지 정보 파악 + 해당 정보를 AS내의 모든 라우터에게 전달하는 기능 수행

- 두 AS 간의 통신에 관여한다

  • 이 때, 통신하는 두 AS는 같은 인터 AS 라우팅 프로토콜을 수행해야 한다

 

※ AS 5 기준

- 우리는 그림을 통해서 각 AS의 연결 상태를 알고 있지만 초기에는 각 AS에서 어느 AS으로 갈 수 있는지 모른다

 

(1) AS 5에서 밖으로 패킷을 보내려고 한다

1. 이 때, AS 5는 AS 4, AS 2와 연결되있는 것을 이미 파악한 상태이다

2. 그리고 AS 4, AS 2를 통해서 어느 AS으로 갈 수 있는지 파악해야 한다

  • 이 때, AS 5의 게이트웨이 라우터(5A, 5C)AS 4의 게이트웨이 라우터(4A), AS 2의 게이트웨이 라우터(2D)와 서로 통신을 통해서 AS 2,4를 경유해서 도달할 수 있는 목적지를 파악해야 한다 :: 게이트웨이 라우터간의 통신
    • 각 게이트웨이 라우터간의 통신을 통해서 "AS 3, AS 1"으로 도달할 수 있다는 정보를 파악했다

3. 게이트웨이 라우터 5A, 5C는 얻은 정보를 본인 AS내의 라우터들에게 전파해줘야 한다 :: 5B, 5E, 5D에게 전파

4. 따라서, AS 5내에 있는 모든 라우터들은 AS2, AS4를 경유해서 어디로 도달할 수 있는지 전부 알게 된다

 

>> 이러한 역할을 인터-AS 라우팅 프로토콜이 수행한다


Example) 라우터 1d의 포워딩 테이블 설정

1. AS1의 G-R(1c, 1b)는 AS2의 G-R(2a)하고 AS3의 G-R(3a)와의 통신을 통해서 경유해서 도달할 수 있는 목적지를 학습한다 :: 인터-AS 라우팅 프로토콜

2. AS1의 G-R(1c, 1b)는 학습한 정보들을 본인 AS내의 라우터들에게 전파한다 (1a, 1d에게 전파) :: 인터-AS 라우팅 프로토콜

3. 학습을 통해서 "서브넷 X는 AS3을 경유해서 갈 수 있구나"라고 알 수 있다

4. 라우터 1d는 최종적으로 인트라-AS 라우팅 정보를 통해서 "인터페이스 I가 1c로 가는 최소비용 경로구나"라고 알고 인터페이스 I를 결정한다

 

>> 1d의 포워딩 테이블은 (x, I)로 설정되었다


Example) 다수의 AS중 선택

- AS1이 인터-AS 라우팅 프로토콜을 통해서 "서브넷 X로는 AS2, AS3를 경유해서 갈 수 있구나"라고 파악했다

- 물론 AS내의 라우터들에게 이 정보를 전파하였다

- 라우터 1d의 포워딩 테이블을 설정하기 위해서, "목적지 X에 패킷을 전달하기 위해서 어느 게이트웨이(1c? 1b?)로 전달해야 할까"를 결정해야 한다

>> 이 결정 또한 인터-AS 라우팅 프로토콜이 수행하는 작업이다

 

핫포테이토 라우팅 (Hot Potato Routing)

- 두 라우터 중에서 현재 라우터에서 가장 가까운 라우터로 패킷을 보내는 라우팅 기법

  • 자신의 AS 상에서 경로이득(자원의 최소 사용)을 최우선으로 생각한다

- 각 게이트웨이 라우터까지의 최단경로릇 너택한다

>> 이것은 인트라-AS 라우팅 프로토콜을 통해서 판별한다