Введение
Протокол обнаружения неисправностей двунаправленное обнаружение переадресации (BFD) — это сетевой протокол, используемый для обнаружения неисправностей между двумя маршрутизаторами или коммутаторами, соединенными каналом связи. Он обеспечивает обнаружение неисправностей с минимальной нагрузкой даже на физических средах, которые не поддерживают обнаружение сбоев, таких как Ethernet, виртуальные каналы, туннели и MPLS-маршруты с коммутацией меток. BFD устанавливает сессию между двумя конечными точками по определенному каналу связи. Если между двумя системами существует несколько каналов связи, можно установить несколько сессий BFD для мониторинга каждого из них. Сессия устанавливается посредством трехстороннего обмена данными и завершается аналогичным образом. Для сессии может быть включена аутентификация с использованием простого пароля, MD5 или SHA1. BFD не имеет механизма обнаружения, поэтому сессии должны быть явно настроены между конечными точками. BFD может использоваться с различными базовыми транспортными механизмами и уровнями и работает независимо от них. Следовательно, он должен быть инкапсулирован используемым транспортом. Например, мониторинг MPLS LSP включает в себя передачу установления сессии в пакетах LSP Ping. Протоколы, поддерживающие установку смежности, такие как OSPF, IS-IS, BGP или RIP, также могут использоваться для инициализации сессии BFD. Эти протоколы могут использовать BFD для получения более быстрых уведомлений о неисправных каналах связи, чем это было бы возможно с использованием собственного механизма поддержания связи протокола. Сессия может работать в одном из двух режимов: асинхронном и по запросу. В асинхронном режиме обе конечные точки периодически отправляют друг другу пакеты Hello. Если определенное количество этих пакетов не получено, сессия считается разорванной. В режиме по запросу после установления сессии пакеты Hello не обмениваются, предполагается, что конечные точки имеют другой способ проверки связи друг с другом, например, на базовом физическом уровне. Однако любой хост по-прежнему может отправлять пакеты Hello при необходимости. Независимо от используемого режима, любая конечная точка также может инициировать функцию Echo. При активации этой функции отправляется поток пакетов Echo, которые другая конечная точка возвращает отправителю через свою плоскость переадресации. Это используется для проверки пути переадресации на удаленной системе.
Bidirectional Forwarding Detection (BFD) is a network protocol that is used to detect faults between two routers or switches connected by a link. It provides low overhead detection of faults even on physical media that doesn't support failure detection of any kind, such as Ethernet, virtual circuits, tunnels and MPLS label switched paths. BFD establishes a session between two endpoints over a particular link. If more than one link exists between two systems, multiple BFD sessions may be established to monitor each one of them. The session is established with a three way handshake, and is torn down the same way. Authentication may be enabled on the session. A choice of simple password, MD5 or SHA1 authentication is available. BFD does not have a discovery mechanism; sessions must be explicitly configured between endpoints. BFD may be used on many different underlying transport mechanisms and layers, and operates independently of all of these. Therefore, it needs to be encapsulated by whatever transport it uses. For example, monitoring MPLS LSPs involves piggybacking session establishment on LSP Ping packets. Protocols that support some form of adjacency setup, such as OSPF, IS IS, BGP or RIP may also be used to bootstrap a BFD session. These protocols may then use BFD to receive faster notification of failing links than would normally be possible using the protocol's own keepalive mechanism. A session may operate in one of two modes: asynchronous mode and demand mode. In asynchronous mode, both endpoints periodically send Hello packets to each other. If a number of those packets are not received, the session is considered down. In demand mode, no Hello packets are exchanged after the session is established; it is assumed that the endpoints have another way to verify connectivity to each other, perhaps on the underlying physical layer. However, either host may still send Hello packets if needed. Regardless of which mode is in use, either endpoint may also initiate an Echo function. When this function is active, a stream of Echo packets is sent, and the other endpoint then sends these back to the sender via its forwarding plane. This is used to test the forwarding path on the remote system.
Стандартизация
В июне 2011 года процесс стандартизации протокола BFD перешел на стадию Proposed Standard. RFC 5880 определяет протокол BFD, включая обнаружение отказов MPLS LSP, мониторинг связности через несколько сетевых участков и поддержку IPv4 и IPv6. В RFC 5881 также описана работа BFD в сочетании с протоколами Open Shortest Path First (OSPF) и IS-IS.