[ACSA 교육#36] 라우팅 프로토콜

라우팅 프로토콜에 배우기에 앞서 우리는 AS(Autonomous System)을 이해할 필요가 있습니다.
Autonomous System은 관리 도메인 하에 있는 라우터들의 모음이라고 할 수 있습니다.
즉, ISP(인터넷 서비스 공급업체)는 자체적으로 내부 네트워크를 소유하고 있습니다. 그리고 ISP는 그 네트워크 내의 라우터까지 관리하는 자율권(Autonomy)를 갖고 있습니다. 이것이 바로 AS(Autonomous System) 입니다.
또한, 각 기업들도 자신들의 네트워크를 갖고 관리하기도 합니다. 이것 역시도 AS(Autonomous System)가 됩니다.

AS 내부에서 패킷을 라우팅하기 위해서 각 회사는 IGP(Interior Gateway Protocol)을 사용합니다.
IGP는 AS 내부에서 실행되는 단순한 라우팅 프로토콜입니다.
IGP의 예로는 RIP(Routing Information Protocol), IS-IS(Intermediate System-Intermediate System), 그리고 OSPF(Open Shortest Path First)가 있습니다.
각각의 기업은 자신들에게 적합한 IGP를 선택하여 사용하게 됩니다.

각 기업은 ISP 회선을 통해 인터넷에 연결합니다. 그리고 각각의 ISP는 고유한 AS 번호를 갖고 있습니다.
기업들은 자신의 AS와 ISP의 AS사이를 라우팅하고자 합니다. 이렇게 엔터프라이즈 환경에서 AS간 라우팅을 위해서는 EGP(Exterior Gateway Protocol)이 필요합니다.
현재 사용 중인 유일한 EGP는 BGP(Border Gateway Protocol)입니다.

아래 그림을 예로 들어 IGP와 EGP를 비교해볼까요?

그림에서 ISP는 AS 200이라는 시스템에 3개의 라우터 장치를 갖고 있습니다.
또한, 회사 1(Company 1)은 AS 100이라는 AS를 갖고 있고 라우터와 멀티 레이어 스위치를 갖고 있습니다.

회사 1에서 보면 멀티 레이어 스위치와 라우터간 네트워크 정보를 교환하여 AS 내부의 모든 경로를 찾고 각 네트워크에 도달하기 위한 최적의 경로를 선택합니다. 이것이 IGP(Interior Gateway Protocol)입니다.

그리고 회사 1은 외부와 통신이 필요합니다. 인터넷 통신을 위해서 ISP와 외부로 나가는 경로를 확인합니다.
AS 번호를 통해 서로 경로 정보를 교환합니다. 이것이 EGP(Exterior Gateway Protocol)가 됩니다.

Distance Vector Routing Protocol

초기에 IP 정보를 교환하기 위해 고안된 방법은 Distance Vector 알고리즘을 사용하는 것이었습니다.

각 라우터는 각각의 네트워크로부터 거리와 방향(또는 벡터)를 알리고, 패킷은 해당 네트워크에 도달하기 위해 이동합니다. 여기서 거리는 “Hop”의 수로 측정됩니다.

위 그림의 예시에서, R3 장치가 네트워크 10.0.3.0/24에 도달하기 위해 필요한 홉(hop) 수는 몇일까요?
답은.. 0 개입니다. R3 장치에 해당 네트워크가 직접 연결되어 있기 때문이죠.

그럼 R3가 패킷을 10.0.3.0/24로 보내기 위한 벡터 또는 방향은 무엇일까요?
바로 포트 1번(port #1)입니다.

즉, R3에서 목적지 네트워크 10.0.3.0/24의 호스트로 가기 위해서는 로컬 포트 1번을 통해 패킷을 전달해야 하는 것이죠.

여기서 만약 RIP나 RIPv2와 같은 프로토콜을 사용한다면, R3는 거리와 벡터 정보를 R2에 알려줍니다.
R2는 이 정보를 수신하고 “목적지 10.0.3.0/24 네트워크는 R3를 통해서 가야하고, R3와 해당 네트워크는 0 홉 떨어져 있다. 그러면 난 목적지 네트워크와 1 홉 떨어져 있다.”라고 이해합니다. 거기에 추가로 목적지 네트워크로 가기 위해서는 로컬 포트 24번에서 10.0.2.1로 패킷을 전달해야 하는 것도 알게 됩니다.

여기서 다시 R2는 자신의 정보(거리와 백터)를 R1에게 알려줍니다.
R1은 목적지 10.0.3.0/24 네트워크에 도달하기 위해서는 목적지와 1 홉 떨어져 있는 R2로 통해 가야 하고, 그럼 자신(R1)과는 2 홉 떨어져 있게 된다는 사실을 알게 됩니다. 또한 2 홉 떨어져 있는 목적지 네트워크로 가기 위해서는 R1는 로컬 포트 24번에서 10.0.1.1로 패킷을 전달해야 한다는 것도 인지하게 됩니다.

Distance Vector 라우터는 전체적인 네트워크 토폴로지를 인식하지 못합니다. 각 라우터는 자신과 직접 연결된 라우팅 피어만 인식하게 됩니다. 이것은 작업을 단순화하지만, 동시에 아래와 같이 제한이 생기게 됩니다.

  • 느린 컨버전스(수렴): 장애가 발생할 경우, 네트워크 크기나 복잡성, 아키텍처에 따라 새롭게 라우팅 경로가 조정되는데 많은 시간이 걸릴 수 있습니다.
  • 제한된 확장성: 각 라우터는 다른 라우터에서 15 홉 이상 떨어져 있을 수 없습니다.

※ 상대적으로 복잡하지 않은 아키텍처에도 수십 또는 수백 개의 라우터를 가질 수 있습니다.

Distance Vector를 사용하는 라우팅 프로토콜에는 RIP(Routing Information Protocol), RIPv2(RIP version 2), 그리고 RIPng(RIP Next Generation) 등이 있습니다. RIP과 RIPv2는 라우팅 장치 간에 교환되는 메시지를 보호하기 위한 보안 기능을 지원하지 않습니다.

따라서, 제한된 확장성과 성능, 보안적인 이유로 ArubaOS-CX는 Distance Vector 프로토콜을 지원하지 않습니다.
대신 보다 강력한 Link State 라우팅 프로토콜을 지원합니다.

Link State Routing Protocol

Link State 라우팅 프로토콜은 Distance Vector 프로토콜의 한계와 단점을 해결합니다.

Link State 프로토콜을 실행하는 라우터는 전체 네트워크 토폴로지에 대한 정보를 갖고 있습니다. 이러한 방식은 보다 정교한 Dijkstra 알고리즘을 사용하여 라우팅 테이블을 독립적으로 계산하기 때문에 모든 네트워크 대상에 대해서 가장 적합 경로를 선택할 수 있게 합니다.

Link State 프로토콜을 사용하는 것으로는..
IPv4에서 사용되는 OSPFv2(Open Shortest Path First version 2)와 IPv6에서 사용되는 OSPFv3, 그리고 IS-IS(Intermediate System-Intermediate System)이 있습니다.

IS-IS보다는 실제로 OSPF를 많이 사용하기 때문에 다음 포스팅에서는 OSPF를 집중적으로 다뤄보겠습니다.

Link State 프로토콜은 Distance Vector 프로토콜에 비해 더 빠른 수렴(컨버전스) 시간을 제공합니다. 그리고 확장성에 있어서도 장점을 갖고 있습니다.

몇 년 전만 하더라도 OSPF와 같은 프로토콜은 RIP와 같은 프로토콜보다 더 많은 CPU, 메모리 및 대역폭을 사용한다는 단점이 있었습니다. 하지만, 라우터는 수 년동안 더 많은 기능들을 제공하도록 발전해왔고 보다 효율적인 네트워크 아키텍처를 설계할 수 있는 능력을 갖추게 되었습니다.
그래서 요즘에는 이러한 우려사항이 크게 줄어 들었습니다.

ArubaOS-CX 멀티 레이어 스위치는 오늘날의 네트워크 요구사항을 충족하도록 설계되어 있습니다.
“show capacity ospfv2” 명령어를 통해 이러한 정보를 확인할 수 있습니다.

Switch-6300# show capacities ospfv2
System Capacities: Filter OSPFv2
Capacities Name                                                    Value
--------------------------------------------------------------------------
Maximum number of OSPFv2 areas configurable in the system          128
Maximum number of OSPFv2 interfaces configurable in the system     128
Maximum number of OSPFv2 interfaces per area in the system         128
Maximum number of OSPFv2 neighbors allowed across all VRFs         128
Maximum number of OSPFv2 processes supported across each VRF       1
Maximum number of routes in OSPFv2 supported across all VRFs       64000

오늘은 지난 포스팅에 이어 라우팅에 대해 좀 더 알아보았습니다.
지난 포스팅에는 Static 라우팅 프로토콜에 대해 알아보았다면, 오늘은 Dynamic 라우팅 프로토콜에 대해서 알아보았습니다.

실제로 필드에서는 OSPF와 BGP 프로토콜을 가장 많이 사용합니다.
따라서 다음 포스팅은 OSPF에 대해서 집중적으로 다뤄보도록 하겠습니다.