1. Introduction to OSPF Fault Detection using BFD
- BFD failure detection timers는 OSPF failure detection mechanisms보다 시간제한이 짧으므로 더 빠른 감지를 제공
- 일반적으로 route convergence를 높이기 위해 OSPF hello 및 dead interval 조절보다 BFD failure detection timers를 사용
- OSPF failure detection timer는 s 단위이지만 BFD failure detection timers는 ms 단위
- juniper의 BFD failure detection timers는 adaptive이며 더 빠르거나 느리게 조정 가능
- ex) 인접 장비 간 BFD가 실패될 경우 더 높은 값에 적응(즉, 타이머가 더 느리게 감지)
- neighbor가 BFD timer에 대해 설정된 값보다 더 높은 값으로 협상 가능
- 15s 동안 BFD session flap이 세 번 이상 발생할 때 더 높은 값에 적응
- back-off algorithm은 local BFD 인스턴스가 session flap의 원인인 경우 receive interval을 두 배로 늘리고 remote BFD 인스턴스가 session flap의 원인인 경우 transmit interval이 두 배 증가
- "clear bfd adaptation" 명령어로 BFD interval timer를 설정한 값으로 복원
- "clear bfd adaptation" 명령어는 traffic flow에 영향 발생 불가
- BFD는 system resource를 소비하는 intensive protocol
- routing engine based session일 경우 100ms 미만, distributed BFD session일 경우 10ms 미만의 BFD에 대한 minimum interval을 지정하면 예상치 못한 BFD flapping 발생 가능
- routing engine based session일 경우 BFD minimum interval을 100ms 미만으로, distributed BFD session일 경우 minimum interval을 10ms로 지정 가능
- 많은 수의 BFD session이 있는 대규모 네트워크일 경우 routing engine-based sessions의 경우 최소 300ms, distributed BFD session의 경우 최소 100ms의 간격으로 지정
- NSR 구성 후 routing engine switchover event 중에 BFD session이 계속 유지되도록 하려면 routing engine based sessions에 대해 minimum interval을 2500ms로 지정
- NSR 구성이 없으면 routing engine based sessions의 minimum interval은 100ms
- NSR을 구성한 distributed BFD session의 경우 minimum interval 권장 사항은 변경되지 않으며 네트워크 구축에만 의존
2. OSPF Fault Detection using BFD Configuration 구성도
1) OSPF Fault Detection using BFD Configuration 구성도

- 본 글은 OSPF timer보다 빠른 OSPF fault detection을 위해 bfd를 설정하는 것이 목표
- bfd의 자세한 이론이나 동작 테스트는 차후 진행할 예정
2) 테스트 장비
- Emulator : EVE-NG
- OS : Juniper vMX 23.1R1.8
3. OSPF Fault Detection using BFD Configuration
1) Interface and OSPF Configuration
더보기
< vMX1 : Interface and OSPF 설정 >
set interfaces ge-0/0/1 unit 0 family inet address 1.1.2.1/24
set interfaces lo0 unit 0 family inet address 1.1.1.1/32
set routing-options router-id 1.1.1.1
set protocols ospf area 0.0.0.0 interface lo0.0
set protocols ospf area 0.0.0.0 interface ge-0/0/1.0 interface-type p2p
< vMX2 : Interface and OSPF 설정 >
set interfaces ge-0/0/0 unit 0 family inet address 1.1.2.2/24
set interfaces lo0 unit 0 family inet address 2.2.2.2/32
set routing-options router-id 2.2.2.2
set protocols ospf area 0.0.0.0 interface lo0.0
set protocols ospf area 0.0.0.0 interface ge-0/0/0.0 interface-type p2p
2) BFD Configuration
< vMX1 : BFD 설정 >
set protocols ospf area 0.0.0.0 interface ge-0/0/1.0 bfd-liveness-detection minimum-receive-interval 1000
set protocols ospf area 0.0.0.0 interface ge-0/0/1.0 bfd-liveness-detection multiplier 5
set protocols ospf area 0.0.0.0 interface ge-0/0/1.0 bfd-liveness-detection transmit-interval minimum-interval 1000
set protocols ospf area 0.0.0.0 interface ge-0/0/1.0 bfd-liveness-detection full-neighbors-only
< vMX2 : BFD 설정 >
set protocols ospf area 0.0.0.0 interface ge-0/0/0.0 bfd-liveness-detection minimum-receive-interval 1000
set protocols ospf area 0.0.0.0 interface ge-0/0/0.0 bfd-liveness-detection multiplier 5
set protocols ospf area 0.0.0.0 interface ge-0/0/0.0 bfd-liveness-detection transmit-interval minimum-interval 1000
set protocols ospf area 0.0.0.0 interface ge-0/0/0.0 bfd-liveness-detection full-neighbors-only
- "minimum-receive-interval" 명령어로 minimum receive interval을 지정
- "transmit-interval minimum-interval" 명령어로 minimum transmit interval을 지정
- "multiplier" 명령어로 BFD session down으로 선언되는 누락된 BFD 패킷 수를 구성
- "full-neighbors-only" 명령어로 neighbor state가 "full"인 neighbor에 대해서만 BFD session을 구성
root@vMX1> show bfd session detail
Detect Transmit
Address State Interface Time Interval Multiplier
1.1.2.2 Up ge-0/0/1.0 5.000 1.000 5
Client OSPF realm ospf-v2 Area 0.0.0.0, TX interval 1.000, RX interval 1.000
Session up time 00:11:11, previous down time 00:00:40
Local diagnostic None, remote diagnostic None
Remote state Up, version 1
Session type: Single hop BFD
1 sessions, 1 clients
Cumulative transmit rate 1.0 pps, cumulative receive rate 1.0 pps
| field | description |
| address | ● neighbor IP address |
| status | ● BFD session status를 의미하며 up, down, init, failing 종류가 존재 |
| interface | ● BFD session이 활성화된 local interface |
| detect time | ● BFD control packet을 감지하는 데 사용되는 negotiated time interval |
| transmit interval | ● BFD control packet을 전송하는 데 사용하는 시간 |
| multiplier | ● detection time을 결정하기 위해 time interval 곱해지는 수 |
| client | ● BFD session이 활성화된 프로토콜 또는 프로세스 |
| tx interval | ● BFD control packet을 전송하는 데 사용하는 interval |
| rs interval | ● BFD control packet을 전송하는 데 사용하는 interval |
| local diagnostic | ● BFD session failing에 대한 local diagnostic 정보 ● None - no diagnostic ● CtlExpire - control detection time expired ● EchoExpire - echo detection time expired ● NbrSignal - neighbor signalled session down ● FwdPlaneReset - forwarding plane reset ● PathDown - path down ● ConcatPathDown - concatenated path down ● AdminDown - administratively down |
| remote diagnostic | ● BFD session failing에 대한 remote diagnostic 정보 ● type은 local diagnostic과 동일 |
| remote status | ● remote 장비의 BFD packet이 수신되었는지 보고 |
| cumulative transmit rate | ● all active session에서 초당 전송된 BFD control packet의 총 수 |
| cumulative receive rate | ● all active session에서 초당 수신된 BFD control packet의 총 수 |
'Network > OSPF' 카테고리의 다른 글
| OSPF Configuration(Juniper Configuration) (0) | 2025.11.03 |
|---|---|
| OSPF Routing Policy (0) | 2025.11.01 |
| OSPF Virtual Link Configuration(Juniper vMX) (0) | 2025.10.28 |
| OSPF Route Summary Configuration(Juniper vMX) (0) | 2025.10.26 |
| LSA Flooding Type in OSPF Domain (0) | 2025.10.24 |
| Number of Flooding by LSA Type in OSPF domain (0) | 2025.10.22 |
| OSPF NSSA Configuration(Juniper vMX) (0) | 2025.10.20 |
| OSPF Stub Configuration(Juniper vMX) (0) | 2025.10.18 |