정보통신 랩

BFD : 라우터 간 양방향 경로 장애를 빠르게 감지하는 프로토콜 본문

정보통신

BFD : 라우터 간 양방향 경로 장애를 빠르게 감지하는 프로토콜

sidefill 2026. 10. 15. 17:53
반응형

BFD(Bidirectional Forwarding Detection, 양방향 포워딩 감지)는 인접한 두 장비가 세션을 맺고 제어 패킷을 짧은 주기로 주고받으며, 둘 사이 경로의 장애를 빠르게 감지하는 프로토콜입니다. 이 글에서는 BFD의 필요성과 동작 원리, 주요 기술과 특징, OSPF Hello와의 차이를 정리합니다.

1. 주제

BFD(Bidirectional Forwarding Detection, 양방향 포워딩 감지)

2. 개요

OSPF(Open Shortest Path First)나 IS-IS 같은 라우팅 프로토콜은 Hello 패킷으로 이웃 장비의 장애를 감지합니다. 그런데 Hello 방식은 감지 시간을 세밀하게 줄이는 데 한계가 있습니다. 예를 들어 OSPF는 Hello를 10초마다 보내고 40초(Dead Interval) 동안 상대의 Hello가 오지 않으면 장애로 판단하는 설정이 대표적이며, RFC 5882는 OSPF의 최소 감지 시간을 2초 수준으로 설명합니다.

장애 감지가 늦어지면 그 시간 동안 패킷이 장애 구간으로 계속 전달되어 서비스가 끊깁니다. 이를 개선하기 위해 라우팅 프로토콜과 별개로 동작하며 짧은 감지 시간과 낮은 오버헤드를 목표로 하는 BFD가 도입되었습니다(RFC 5880).

3. 개념

  • 두 시스템 사이 양방향 경로의 장애를 빠르게 감지해 경로 상태만 알려 주는 자문형(advisory) 프로토콜로, OSPF 같은 클라이언트 프로토콜이 이를 받아 자체 방식으로 처리함

4. 개념도

BFD 동작 개념도: OSPF Hello와 BFD 제어 패킷 교환, 링크 장애 감지 후 OSPF에 통보하는 순서

5. 주요기술

기술 내용
세션 설정
(3-way handshake)
세션 상태는 Down, Init, Up, AdminDown이며, 3단계 핸드셰이크로 양쪽 장비가 상대의 상태를 확인하며 세션을 만들고 종료함
타이머 협상과
감지 시간
Desired Min TX Interval과 Required Min RX Interval로 송수신 간격을 협상함. 수신 측은 상대가 알려 준 Detect Mult(감지 배수)에 협상된 간격을 곱해 감지 시간을 계산하고, 그 시간 동안 패킷이 오지 않으면 장애로 판단함
동작 모드 Asynchronous 모드는 제어 패킷을 주기적으로 교환하는 기본 모드임. Demand 모드는 필요할 때만 확인하고, Echo 기능은 상대가 되돌려 주는 패킷으로 전달 경로를 확인함
전송 방식
(단일 홉)
제어 패킷은 UDP 목적지 포트 3784를 사용하고, 출발지 포트는 49152~65535 범위임. 인증을 쓰지 않으면 TTL(Hop Limit) 255로 보내고 수신 시 255가 아니면 폐기하여 직접 인접한 장비의 패킷만 받음

매체, 데이터 프로토콜, 라우팅 프로토콜에 독립적으로 동작함

6. 주요특징

특징 내용
독립성 특정 라우팅 프로토콜이나 매체에 종속되지 않고 동작하며, OSPF·IS-IS 등 여러 프로토콜이 공통으로 사용함
고속 감지 라우팅 프로토콜의 Hello보다 짧은 감지 시간을 목표로 함
경량 고정 헤더 24바이트의 가벼운 제어 패킷을 사용하여 낮은 오버헤드를 지향함
세션 공유 같은 상대와 같은 경로에 대해 여러 프로토콜이 BFD를 쓰더라도 하나의 BFD 세션을 공유함

7. OSPF Hello와 BFD 비교

구분 OSPF Hello BFD
감지 대상 라우팅 엔진 사이의 경로 전달 엔진 사이의 양방향 경로
판단 기준 Dead Interval 동안 Hello를 받지 못하면 장애로 판단 Detect Mult × 협상된 간격 동안 제어 패킷을 받지 못하면 장애로 판단
감지 시간 기본 설정에서 40초 안팎(Hello 10초, Dead 40초), 최소 2초 수준 Hello 방식보다 훨씬 짧은 감지 시간을 목표로 함
적용 범위 OSPF 안에서만 사용 프로토콜에 독립적이며 여러 프로토콜이 공유
장애 후 처리 Dead Interval이 지나면 OSPF가 해당 이웃을 사용 불가로 처리 BFD가 Down을 알리면 OSPF가 해당 neighbor를 종료하고 경로를 다시 계산

8. 기술동향·개선사항·활용

  • 고가용성이 필요한 네트워크에서 장애 시 서비스 중단을 줄이기 위해 OSPF, IS-IS 등과 연동하여 사용함
  • BFD 송신 간격을 지나치게 짧게 설정하면 혼잡과 오탐(정상 경로를 장애로 판단)이 생길 수 있어 운영자가 적절히 설정해야 함

용어 설명

  • OSPF(Open Shortest Path First) : 네트워크 안에서 최단 경로를 계산해 경로를 정하는 라우팅 프로토콜
  • IS-IS(Intermediate System to Intermediate System) : OSPF와 비슷하게 링크 상태로 경로를 계산하는 라우팅 프로토콜
  • Hello 패킷(Hello Packet) : 이웃 장비가 살아 있는지 확인하려고 주기적으로 보내는 패킷
  • Dead Interval : 이 시간 동안 이웃의 Hello가 오지 않으면 장애로 판단하는 기준 시간
  • 자문형(advisory) 프로토콜 : 경로 상태만 알려 주고 이후 처리는 연동된 프로토콜이 맡는 방식
  • Desired Min TX Interval·Required Min RX Interval : BFD 장비가 보내고 싶은 최소 간격과 받을 수 있는 최소 간격
  • Detect Mult(Detect Multiplier, 감지 배수) : 협상된 간격에 곱해 감지 시간을 정하는 값
  • Asynchronous·Demand·Echo : BFD의 동작 모드로, 제어 패킷을 주기적으로 교환하거나(Asynchronous) 필요할 때만 확인하거나(Demand) 되돌려 받은 패킷으로 경로를 확인함(Echo)
  • TTL(Time To Live) : 패킷이 거칠 수 있는 장비 수의 한계를 나타내는 값
  • 오탐(False Positive) : 정상인 경로를 장애로 잘못 판단하는 일

참고 출처

  • RFC 5880, Bidirectional Forwarding Detection (BFD) (IETF)
  • RFC 5881, Bidirectional Forwarding Detection (BFD) for IPv4 and IPv6 (Single Hop) (IETF)
  • RFC 5882, Generic Application of Bidirectional Forwarding Detection (BFD) (IETF)
  • Juniper Networks, Configuring OSPF Timers (Junos 문서)
반응형