SPF 알고리즘을 계산하기 위한 Timer는 종류가 많은 것 같지만, 하나씩 살펴보면 내용이 비슷하고 어렵지 않다는 것을 알 수 있다. 먼저 어떠한 것들이 있는지 ‘timer’ 명령어를 통해 살펴보면 다음과 같다.

LSA

  ‘timer lsa’ 뒤에 옵션은 arrival 밖에 없고 0초에서 600초 까지 설정할 수 있는데, Default 값은 1초로 설정되어 있다. 이는 Neighbor들에게 LSA를 받고 동일 LSA에 대한 Update 정보를 얼마동안 무시할 것인가를 설정하는 것이다. 네트워크 경로가 다중 경로로 구성된 경우, 동일한 LSA를 여러 Neighbor에게 받을 수 있는데 LSA의 LSA ID, LSA Type, Advertising Router ID가 동일한 경우 최초 LSA를 Update 받은 후 설정된 시간동안 무시하게 된다.

Pacing

time pacing flood {5-100 msec}

  정확한 의미는 LSA를 전달하기 위해 LSA가 Queue안에 머물러 있는 시간을 의미하며 Default 값은 33ms로 설정되어 있다. 일반적으로 전달할 LSA가 많은 경우 하나의 LSA를 전달한 후에 다음 LSA를 전달하는데 걸리는 시간의 의미로 사용된다.

time pacing lsa-group {10-1800 sec}

  Link의 변화가 없어도 30분에 한번씩 LSA를 Flooding 한다는 것을 우리는 이미 알고 있다. 이때, LSA를 Flooding 하는 방법이 Original Refreshing, Individual Refreshing, Group Pacing으로 3가지 방법이 있다.

방법 설 명
Original Refreshing 30분에 한번씩 Flooding 하는 시간을 동기화하여 한번에 Flooding 함
Individual Refreshing 30분에 한번씩 각 장비가 독립적으로 Flooding 함
Group Pacing 30분의 시간을 분할하여 LSA들을 일정한 주기로 Flooding 함

  시스코는 Default로 Group Pacing 방법을 사용하며 240초 동안의 LSA들을 모아서 한번에 Flooding 하는 방법을 사용한다.

[원본 : http://blog.ine.com/2009/12/31/tuning-ospf-performance]

time pacing retransmission {5-200 msec}

  LSU Packet을 전달하고 LSAck Packet을 받지 못한 경우 재전송을 하게 되는데, 혹시나 LSA들을 33ms 마다 전송하는 것이 Neighbor의 장비 성능 문제로 처리를 못하여 LSAck Packet이 보내지 못하는 것일 수도 있다. 그래서, 재전송할 때는 보다 천천히 보낼 필요가 있는데 그 시간을 설정하기 위한 것으로 Default 값은 Flood의 2배인 66ms로 설정되어 있다.

Throttle

time throttle lsa {First Delay : 0-600000 msec} {Minimum Delay : 1-600000 msec} {Maximum Delay : 1-600000 msec}

  하나의 장비에 Link 정보가 자주 변경되는 경우, 너무 주자 LSA를 전달하지 않도록 하기 위해서 OSPF 라우팅 프로토콜은 5초 안에는 새로운 LSA를 만들지 않는다는 것을 설명한 적이 있다.

  이것을 5초로 지정하지 않고, throttle(조절값)를 가지고 컨트롤할 때 사용하며 옵션 내용은 다음과 같다.

방법 설 명
First Delay (Start Interval) 이벤트 발생 후 처음 LSA를 만들기 위한 대기 시간
Minimum Delay (Increment) 연속적으로 이벤트가 발생하는 경우 다음 LSA를 만들기 위해 추가되는 시간
Maximum Delay (Max_wait) 다음 LSA를 만들기 위해 대기하는 최대 시간

  2초에 한번씩 이벤트가 발생한다고 가정하고, Default 상태에서 어떻게 되는지 확인해 보자.

  Event 1 : Interface fa0/0 Down

  Event 2 : Interface fa0/1 Down

  Event 3 : Interface fa0/2 Down

  Event 4 : Interface fa0/3 Down

  Event 5 : Interface fa0/0 Up

  Event 6 : Interface fa0/1 Up

  Event 7 : Interface fa0/2 Up

  Event 8 : Interface fa0/3 Up

  설정 값을 바꾼후 LSA 생성 정보가 어떻게 바뀌는지 확인해 보자.

  2초에 한번씩 이벤트가 발생한다고 가정하고, 현재 상태에서 어떻게 되는지 확인해 보자.

  – 1번 LSA = 최초 이벤트 발생 후 1000ms 후에 생성 (First Delay)

  – 2번 LSA = 1번 LSA 생성 후 3000ms 후에 생성 (Minimum Delay)

  – 3번 LSA = 2번 LSA 생성 후 3000ms + 3000ms = 6000ms 후에 생성 (기존 Delay + Minimum Delay)

  – 4번 LSA = 3번 LSA 생성 후 6000ms + 3000ms = 9000ms 후에 생성 (기존 Delay + Minimum Delay)

  – 5번 LSA = 4번 LSA 생성 후 9000ms 후에 생성 (Maximum Delay 이상으로는 올라가지 않음)

  Maximum Delay 동안 이벤트가 발생하지 않으면 Delay 정보가 초기화 되어 다시 First Delay 부터 시작한다.

time throttle spf {First Delay : 0-600000 msec} {Minimum Delay : 1-600000 msec} {Maximum Delay : 1-600000 msec}

  OSPF 라우팅 프로토콜은 너무 자주 SPF 알고리즘을 수행하지 않기 위해서 일정한 시간동안 받은 LSA들이 모아서 한꺼번에 SPF 알고리즘을 수행한다.

방법 설 명
Initial SPF schedule delay 새로운 LSA을 받은 후 SPF 알고리즘을 수행하기 위해 대기하는 시간
Minimum Hold time (Increment) 다음 SPF 알고리즘을 수행하기 위해 추가되는 대기 시간
Maximum Wait time (Max_wait) 다음 SPF 알고리즘을 수행하기 위해 대기하는 최대 시간

  이 값을 Throttle 값을 변경한 후 2초에 한번씩 새로운 LSA를 받는다고 가정했을 때 다음과 같이 동작한다.

  LSA와 마찬가지로 Maximum Delay 까지 Delay 값은 증가하게 되며, Maximum Delay 동안 새로운 LSA가 들어오지 않으면 다시 Initial SPF schedule delay부터 다시 시작하게 된다.

  시스코에서는 Default로 설정된 값을 변경하지 않는 것을 권장하지만, 보다 빠른 컨버젼스 타임이 필요한 망에서는 이 값을 낮게 설정하여 사용하고 있다. 현업에서 엔지니어나 컨설턴트로 활동하면서 한번도 높게 설정해 본적은 없지만, 장비의 성능이 좋지 않거나 네트워크 정보가 너무 자주 변경되는 경우라면 값을 높여서 설정하는 것도 한가지 방법일 것이다.