[네트워크] Routing Protocol

1. 라우팅 테이블 (Routing Table)

3계층 장비인 라우터는 데이터 패킷이 목적지 네트워크까지 갈 수 있도록 전달한다.

라우터의 라우팅 테이블에는 목적지 IP 주소에 따라 어느 포트로 패킷을 보내야할지에 대한 정보가 저장되어있다.

간단히 표현하자면 다음과 같은 형식이다.

Routing Protocol Dst IP Addr Port
R (RIP) 10.5.1.20 / 8 F0/1
O (OSPF) 10.10.2.120 / 8 F0/2
D (EIGRP) 10.16.3.2 / 8 F0/3

각 라우팅 프로토콜 알고리즘에 목적지에 가기 위해 어떤 경로가 최적경로인지 판단하여 라우팅 테이블에 기록하게 된다.

만약 목적지에 대한 경로정보가 라우팅 테이블에 없다면 패킷을 폐기한다.

2. 라우팅 프로토콜 (Routing Protocol)

먼저 정적 라우팅 (Static Routing) 과 동적 라우팅 (Dynamic Routing) 으로 나눌 수 있다.

1) 정적 라우팅 (Static Routing)

정적 라우팅은 관리자가 라우팅 테이블에 직접 설정한 경로이다. 하지만 관리자가 수많은 네트워크에 대한 정보를 라우팅 테이블에 직접 입력하는 것은 사실상 불가능하다.

2) 동적 라우팅 (Static Routing)

동적 라우팅은 라우팅 프로토콜에 의해 가장 최적이라고 판단된 경로에 맞추어 자동으로 라우팅 테이블을 기록한다.

RIP, EIGRP, OSPF, BGP 등이 있으며, 각각 사용되는 최적 경로 판단 방법과 특징이 다르다.

RIP (Routing Information Protocol)

RIP는 UDP 520번 포트를 통해 정보를 전달하고, AD 값은 120이다. 기본적으로 자동축약(auto-summary)이 적용된다.

자신과 이웃란 라우터의 라우팅 테이블 정보로 경로를 탐색하는 Distance Vector 알고리즘을 사용한다.

설정이 간단하며, 메모리 자원을 적게 사용하기 때문에 소규모 네트워크에서 효율적이다.

하지만 RIP는 회선 속도나 delay에 따른 cost는 생각하지 않고 오로지 Hop (몇개의 라우터를 거치는지)만 고려하여 최적 경로를 판단한다.

네트워크의 속도를 고려하지 않기 때문에 비효율적인 경로로 패킷을 전달할 가능성이 있다. 최대 Hop Count가 15로 거리가 짧기 때문에

소규모 네트워크에서 주로 사용된다.

또한 토폴로지 변화에 상관 없이 자신의 라우팅 테이블 전체를 인접 라우터들에게 30초 (default값)마다 전송하기 때문에 쓸모없는 트래픽이 발생한다. 이로 인해 Convergence Time 이 느리며, Count to Infinity 현상이 발생한다.

EIGRP (Enhanced Interior Gateway Routing Protocol)

Cisco 라우터 전용 프로토콜이다. IP 프로토콜 88번을 사용하고, AD값은 내부(Internal)의 경우 90이며 외부(External)의 경우 170이다.

내부, 외부는 AS (Autonomous System) 이라는 단위로 구성된다. AS는 하나의 네트워크 관리자에 의해 관리되는 라우터의 집단이다.

EIGRP는 인접한 라우터끼리 주기적으로 Hello 패킷을 송수신하는데, 이 패킷의 정보를 보고 neighbor인지 아닌지 판단한다.

Hello 패킷에서 아래 4가지 정보가 일치해야 서로를 neighbor 로 간주한다.

1) AS 번호 2) K 상수값 3 )EIGRP 암호 4) 출발지 주소와 수신한 인터페이스의 서브넷 길이

자신과 neighbor 관계인 라우터와 Update 패킷을 통해 라우팅 정보를 교환하여 토폴로지 테이블을 형성한다. 이 테이블에는 자신에서 시작하여 목적지 네트워크까지 가는 Metric 값(FD, Feasible Distance)과 Next-hop 라우터에서 목적지 네트워크까지의 Metric 값(AD, Advertised Distance)이 저장된다. Metric 은 Bandwidth, Delay, Reliability, Load, MTU를 기준으로 계산된다.

목적지 네트워크까지 FD값이 가장 낮은 경로가 Successor(최적경로)로 선출되고 남아있는 경로 중 AD값이 Successor의 FD값보다 작은 경우 Feasible Successor(후속경로)로 선출된다. 기존 Successor에서 통신 에러가 발생하면 Feasible Successor가 새로운 Successor로 지정된다.

DUAL (Diffusing Update Algorithm) 을 사용하며, Convergence Time이 짧다.

또한 다른 라우팅 프로토콜과는 다르게 Unequal cost load balancing을 지원한다. 다음 두가지 조건을 만족해야 한다.

1) Feasible Successor를 통하는 경로여야 한다 2) FD2값이 (FD1 x variance) 값보다 적어야 한다.

EIGRP의 대표적인 문제점으로 SIA 현상이 있다. neighbor 에게 query 패킷을 보내고 응답을 받기 위해 기다리는 Active 상태가 길어지는 현상이다. 기본적으로 3분간 Reply를 기다리며, 만료시에는 neighbor 관계를 해제하게 된다. 관계가 해제된 후 다시 hello 패킷을 주고받으며 neighbor가 되고, 다시 query 패킷을 전송하면 neighbor 가 끊긴다. 이러한 과정을 반복하게 되어 네트워크가 불안정하게 된다. 한 지점에서 생긴 네트워크 장애가 멀리 떨어져 있는 곳까지 장애를 유발하게 되는 것이다.

SIA는 query 패킷이 너무 멀리까지 전달되어 생기는 현상이다. 즉, 전달 범위를 제한하면 SIA 현상을 방지할 수 있으며, 여기에는 4가지 방법이 있다.

1) 축약 2) 네트워크 차단 3) Stub Routing 4) 재분배

OSPF (Open Shortest Path First)

OSPF는 Link State 라우팅 프로토콜을 사용하며 AD값은 110이다. Dijkstra 알고리즘을 사용해 최적 경로를 계산하며, 라우터들의 포트들은 Area라는 단위로 묶인다. 하나의 Area에서 발생한 라우팅 정보나 에러는 다른 Area로 전송되지 않아 대규모 네트워크 관리에 적합하다. Area가 2개 이상일 경우 하나는 반드시 Area 0으로 설정해야 하며 이는 각 Area들을 연결하는 Backbone Area 가 된다.

Non-Backbone Area들은 Backbone Area에 물리적으로 연결되어야 한다. 하지만 그러지 못할 시에는 Virtual Link를 이용하여 연결되어져야 한다.

OSPF를 설정한 라우터들끼리 Hello 패킷을 교환하여 Neighbor 관계를 맺고, 이 중 라우팅 정보(LSA)를 교환하는 Neighbor를 Adjacent Neighbor라고 한다. Priority 값을 기준으로 DR (Designated Router)와 BDR (Backup Designated Router)를 선출한다. DR은 라우팅 업데이트의 중심이 되는 라우터이다. 네트워크에 변화가 생길 시 변화된 정보는 DR 에게만 전송되고, DR이 자신과 Neighbor 관계인 라우터들에게 정보를 전달한다. 이는 중복된 LSA와 ACK 발생을 없앤다.

OSPF에는 Stub Area라는 것이 있다. Stub Area는 외부 네트워크 정보를 모두 0.0.0.0 으로 축약하여 받는다. 즉, 그만큼 라우팅 테이블의 크기가 감소하여 네트워크 안정성과 라우팅 속도가 향상되고 장애처리가 쉬워진다는 장점이 있다. 기본적으로 Stub Area에는 ASBR(AS Boundary Router)가 존재할 수 없지만 NSSA (Not so Stub Area)의 경우 ASBR 을 설치할 수 있다.

카테고리:

업데이트:

댓글남기기