보안개구리

OSPF(Open Shortest Path First) 라우팅(1) (Neighbor, Router ID) 본문

IT/네트워크

OSPF(Open Shortest Path First) 라우팅(1) (Neighbor, Router ID)

보안개구리 2024. 6. 14. 11:29

 이번 시간에는 OSPF에 대하여 알아보도록 하겠습니다.

 OSPF는 다이나믹 라우팅 프로토콜로 내부용 라우팅 프로토콜이면서 링크 스테이트 알고리즘을 사용합니다.

 RIP와 IGRP를 배운 후여서 다들 아시겠지만 당연히 다이나믹 라우팅 프로토콜일 것이고 내부용 라우팅 프로토콜이란 AS 내부에서의 통신을 말합니다.

 그리고 드디어 처음으로 링크 스테이트 알고리즘을 사용하는 라우팅 프로토콜이 나왔는데 링크 스테이트 알고리즘은 단순히 거리와 방향만을 가지고 목적지까지의 경로를 알아내는 디스턴스 벡터와 달리 SPF라는 알고리즘을 이용하여 가장 빠른 경로를 찾습니다.

 자세한 것은 링크 스테이트 시간에 배웠으니 넘어가도록 하고 그러면 우리가 알고 있는 RIP와 비교하면서 OSPF의 특징들을 하나하나 알아보도록 하겠습니다. 

 

 먼저 Convergence Time입니다.

 컨버전스 타임은 라우터 간의 서로 정보를 주고받는데 걸리는 시간으로 RIP의 경우는 30초마다 업데이트를 한다고 했었는데 OSPF의 경우는 하나의 라우터가 모든 정보를 알고 있기 때문에 RIP보다 빠른 속도를 갖습니다.

 OSPF는 Area라는 개념을 사용하여 전체 네트워크를 작은 영역으로 나누어 대규모 네트워크에 적당하며 빠르고 효율적인 네트워크 관리가 가능해집니다.

 

 다음으로는 예전에 배운 VLSM 지원 여부입니다.

 아시다시피 RIP와 IGRP의 경우는 VLSM을 지원하지 않는다고 했으나 OSPF의 경우 VLSM을 지원합니다.

 그에 따라 IP 주소를 효과적으로 사용할 수 있을 뿐만 아니라 라우팅 테이블을 줄이는 효과도 있습니다.

 

 다음은 네트워크 크기 제한입니다.

 RIP의 경우는 최대 홉 카운트가 15라 했었는데 OSPF의 경우는 홉 카운트의 제한이 없습니다.

 또한 홉 카운트만을 따지는 RIP와 달리 여러 가지 상황과 여건을 고려하여 경로를 정하기 때문에 훨씬 빠르고 정교한 경로를 선택할 수 있습니다.

 

 정리하자면 OSPF는 대규모 네트워크에서 효율적인 굉장히 정교한 표준 라우팅 프로토콜입니다.

 이러한 OSPF는 토폴로지에서 적용되는데 Broadcast Multiaccess Topology, Point-to-Point Topology, NBMA Topology가 있습니다.

 브로드캐스트는 네트워크에 두 개 이상의 라우터가 연결되는 경우를 말합니다.

 포인트 투 포인트의 경우는 1:1 방식의 토폴로지를 말하는데 한 쌍의 라우터만 존재하며 전용선 같은 것이 해당합니다.

 마지막으로 NBMA의 경우는 브로드캐스트와 마찬가지로 하나의 네트워크에 두 개 이상의 라우터가 연결되나 브로드캐스트 능력은 가지고 있지 않으며 X.25, 프레임 릴레이가 여기에 해당합니다.

 

 자 그러면 다음으로는 Neighbor의 개념에 대해서 알아보겠습니다.

 OSPF 라우터는 주위에 있는 OSPF 라우터를 찾아 자신의 데이터베이스 안에 저장하는데 이런 주위의 라우터들을 Neighbor라고 합니다.

 Neighbor를 찾기 위해서 OSPF 라우터는 Hello 패킷을 보내는데 이 때 라우터 ID도 같이 나가게 됩니다.

 여기서 라우터 ID는 OSPF에서 서로를 구분하게 해 주는데 보통 라우터 IP 주소 중 제일 높은 주소를 사용합니다.

 

 자 라우터 A가 존재하는데 라우터 A는 자신과 연결된 라우터 중 OSPF 라우터를 찾으려고 합니다.

 그러면 위에 말씀드린 것처럼 Hello 패킷을 보내는데 자신과 연결된 라우터 중 어떤 라우터가 Neighbor인 줄 모르기 때문에 모든 OSPF 라우터에게 패킷을 보냅니다.

 이때 브로드캐스트가 아닌 멀티캐스트 주소 224.0.0.5를 이용하여 헬로 패킷을 보냅니다.

 여기서 224.0.0.5라는 주소는 OSPF로 동작하는 라우터만 수신합니다.

 자 그래서 멀티캐스트 주소에 헬로 패킷을 보내면 헬로 패킷을 받은 라우터들이 라우터 A를 Neighbor List에 넣게 되는데 이 과정을 Init이라고 합니다.

 그 후 라우터 A에게 자신들의 정보를 유니캐스트로 보내줍니다.

 

 요약하자면 라우터 A가 멀티캐스트 주소 224.0.0.5로 헬로 패킷을 보냄(이 주소는 OSPF 라우터만 수신함) -> 헬로 패킷을 받은 라우터는 라우터 A를 Neighbor List에 넣게 됨(이 과정을 Init 과정이라고 함) -> 헬로 패킷을 받은 라우터들은 라우터 A에게 유니캐스트를 통해 자신들의 정보를 보내줌 이 3 과정을 거치게 됩니다.

 

 여기서 헬로 패킷은 위에서 설명드린 Router ID 뿐만 아니라 다른 중요한 정보들도 들어있는데 HellO/dead intervals, Area-ID, Authentication password, Stub area flag 등등 여러 정보가 들어있습니다.                          

 적어도 위에 있는 정보들은 같아야 Neighbor로 인정을 해줍니다.

 

 자 이번에는 라우터 ID에 대하여 알아보겠습니다.

 말씀드렸다시피 라우터 ID는 OSPF에서 서로를 구분하게 해 주며 보통 라우터 IP 주소 중 제일 높은 주소를 사용한다고 했습니다.

 예를 들어 라우터 A의 Ethernet 0번은 10.10.1.1이고 Ethernet 1번은 10.20.1.1이고 Serial 0번은 192.123.123.1입니다.

 자 그러면 당연히 숫자가 가장 큰 Serial 0번의 주소가 라우터 ID가 됩니다.

 하지만 만약에 Serial 0 인터페이스가 불안정하여 계속하여 다운된다면 그때마다 라우터 ID가 바뀌게 됩니다.

 라우터 A의 라우터 ID가 바뀐다면 그만큼 OSPF 라우터들도 정보를 수정해야 하기 때문에 당연히 라우터 ID는 안정적인 인터페이스를 사용해야 합니다.

 따라서 라우터 ID를 사용하기 위해 Loopback 인터페이스를 사용합니다.

 OSPF에서 Loopback 인터페이스를 사용하면 그 IP 주소의 높낮이에 관계없이 무조건 Loopback 주소가 라우터 ID가 되는데 Loobpack 인터페이스는 다운되는 인터페이스가 아니기 때문에 라우터 ID가 바뀔 염려가 없습니다.

 다만 이미 라우터 ID가 설정된 라우터의 라우터 ID를 Loopback 주소로 바꾸고 싶다면 라우터를 재부팅하거나 OSPF 라우팅 프로토콜을 내렸다가 다시 올려야 합니다.

 

 이번 시간에는 OSPF의 기본 개념과 라우터 ID에 대해서 알아봤는데다음 시간에는 이번 시간에 이어서 OSPF에 대하여 더 알아보도록 하겠습니다.

 

*정리*

OSPF는 다이나믹 라우팅 프로토콜이면서 내부용 프로토콜이면서 링크 스테이트 알고리즘을 사용한다

 

Area라는 개념을 사용하여 전체 네트워크를 작은 영역으로 나누어 대규모 네트워크에 적당하며 빠르고 효율적인 네트워크 관리가 가능해지며 VLSM을 지원하며 홉 카운트에 제한이 없는 표준 프로토콜이다.

 

Neighbor란 OSPF 라우터는 주위에 있는 OSPF 라우터를 찾아 자신의 데이터베이스 안에 저장하는데 이런 주위의 라우터들을 말한다

 

라우터 A가 멀티캐스트 주소 224.0.0.5로 헬로 패킷을 보냄

-> 헬로 패킷을 받은 라우터는 라우터 A를 Neighbor List에 넣게됨

-> 헬로 패킷을 받은 라우터들은 라우터 A에게 유니캐스트를 통해 자신들의 정보를 보냄

 

라우터 ID는 라우터의 주소 중 간장 큰 주소를 사용한다