Skip to main content
QUICK REVIEW

[논문 리뷰] Flexible failure detection and fast reroute using eBPF and SRv6

Mathieu Xhonneux, Olivier Bonaventure|arXiv (Cornell University)|2018. 10. 24.
Software-Defined Networks and 5G참고 문헌 10인용 수 10
한 줄 요약

이 논문은 Linux에서 eBPF 기반의 고속 장애 감지 및 SRv6 TI-LFA 고속 재루팅 메커니즘을 제안하며, 저지연, 고내구성 모니터링을 위해 커널 영역에서 실행하는 것을 활용한다. CPU 부하 상황에서도 10ms 이내의 장애 감지 성능을 달성하며, 스케줄러 저항성과 인터럽트 기반 처리로 인해 사용자 영역 BFD 구현보다 뛰어나며, 처리량 저하율은 8%에 불과하다.

ABSTRACT

Segment Routing is a modern variant of source routing that is being gradually deployed by network operators. Large ISPs use it for traffic engineering and fast reroute purposes. Its IPv6 dataplane, named SRv6, goes beyond the initial MPLS dataplane, notably by enabling network programmability. With SRv6, it becomes possible to define transparent network functions on routers and endhosts. These functions are mapped to IPv6 addresses and their execution is scheduled by segments placed in the forwarded packets. We have recently extended the Linux SRv6 implementation to enable the execution of specific eBPF code upon reception of an SRv6 packet containing local segments. eBPF is a virtual machine that is included in the Linux kernel. We leverage this new feature of Linux 4.18 to propose and implement flexible eBPF-based fast-reroute and failure detection schemes. Our lab measurements confirm that they provide good performance and enable faster failure detections than existing BFD implementations on Linux routers and servers.

연구 동기 및 목표

  • 고성능을 요구하는 Linux 라우터에서 CPU 부하가 높은 상황에서 사용자 영역 BFD 데몬의 성능 한계를 해결하기 위해.
  • Linux 커널에서 eBPF와 SRv6를 활용해 융통성 있고 저비용의 장애 감지 및 고속 재루팅을 가능하게 하기 위해.
  • 사용자 영역 BFD와 비교해 구성 복잡성을 줄이고 내구성을 향상시키기 위해 모니터링 로직을 커널으로 이관하기 위해.
  • 커널 기반 eBPF 기능이 사용자 영역 데몬보다 더 빠르고 신뢰성 있는 장애 감지를 달성할 수 있음을 입증하기 위해.
  • 응용 계층 프로토콜에 의존하지 않는 경량이고 통합된 솔루션을 제공해 라이브니스 모니터링 및 고속 재루팅을 구현하기 위해.

제안 방법

  • End.BPF 훅을 사용해 커널 영역에서 직접 사용자 정의 네트워크 기능을 실행할 수 있도록 Linux SRv6에 eBPF 지원을 확장한다.
  • 프로브 타임스탬프를 추적하고 타임아웃을 감지함으로써 링크의 가용성을 모니터링하는 BPF 기반 슬레이브 기능을 구현한다.
  • 시스템 스케줄링 대신 커널 수준의 인터럽트를 사용해 장애 감지를 트리거함으로써 지연을 줄이고 반응성을 향상시킨다.
  • eBPF 기반 장애 감지 기능을 SRv6 TI-LFA와 통합해 고속 재루팅을 가능하게 하며, 구성에 의존하지 않는 백업 경로를 제공한다.
  • 지속적인 상태 저장을 위해 eBPF 맵을 사용하고, 패킷 조작 및 봉투 처리를 위해 BPF 헬퍼 함수를 활용한다.
  • CPU 부하를 통제한 실험 환경에서 기존 BFD 및 bird의 사용자 영역 구현과의 성능 비교를 위해 솔루션을 구현한다.

실험 결과

연구 질문

  • RQ1CPU 부하 상황에서 커널 영역 eBPF 기반 장애 감지 기능이 사용자 영역 BFD 데몬보다 낮은 감지 지연과 더 높은 내구성을 달성할 수 있는가?
  • RQ2고시스템 부하 상황에서 eBPF 기반 모니터링의 성능이 기존 BFD 대비 얼마나 떨어지는가?
  • RQ3eBPF와 SRv6의 통합이 추가 네트워크 상태나 구성 없이 효율적이고 융통성 있는 고속 재루팅을 가능하게 하는가?
  • RQ4Linux 커널에서 장애 감지 및 TI-LFA 재루팅을 위한 eBPF 프로그램을 실행할 경우 성능 저하율은 어느 정도인가?
  • RQ5응용 계층 프로토콜에 의존하지 않고도 최소한의 커널 영역 구현으로 BFD 유사 기능을 달성할 수 있는가?

주요 결과

  • eBPF 기반 슬레이브 기능은 10ms 프로브 간격과 30ms 감지 시간 조건에서 고도의 CPU 부하 상황에서도 완벽한 장애 감지를 달성했으며, 사용자 영역 BFD 구현은 실패했다.
  • 시스템 스케줄러 풀링 대신 인터럽트 기반 처리를 통해 지연을 줄이고 신뢰성을 향상시켰다.
  • 강력한 타이머를 사용함으로써 eBPF 기반 장애 감지 기능은 10ms 이내의 감지 시간을 달성했으며, 기존 BFD 구현보다 뛰어난 성능을 보였다.
  • eBPF를 사용한 SRv6 TI-LFA는 정상 운영 시 8%의 처리량 저하율을 보였고, 활성 재루팅 시에는 25%였으며, 대부분의 저하율은 SRH 봉투 처리에서 기인했다.
  • eBPF 슬레이브 기능은 단 150줄의 코드로 구성되어 있어 커널 영역에서 경량이고 고성능의 모니터링을 완전히 실현할 수 있음을 입증했다.
  • 해당 솔루션은 비대칭 모니터링을 가능하게 하며, 마스터는 프로브를 전송하고 슬레이브는 응용 계층 프로토콜 없이 커널 영역에서 실행된다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.