Difference between revisions of "Cisco BFD"

From HackerNet
Jump to: navigation, search
Line 1: Line 1:
Bidirectional Forwarding Detection (RFC 5880) är ett protokoll som är framtaget för att snabbt kunna upptäcka problem med paketförmedling mellan två grannar. Det är från början utvecklat av Cisco och Juniper. Det är helt oberoende av vilken topologi, media eller routing-protokoll som används. Olika typer av kontrollplansprotokoll kan utnyttja BFD-protokollet för snabbare feldetektering. Genom snabb feldetektering kan olika kontrollplansprotokoll agera på ett problem snabbare. BFD är en viktig komponent för att sänka konvergenstider (recovery) inom ett nätverk. BFD har en gemensam interface-down-event-detection-mekanism som andra kontrollplansprotokoll kan utnyttja för sin feldetektering, t.ex. routingprotokoll och FHRPs. Samtidigt som det är mindre CPU-krävande än andra tekniker för feldetektering, t.ex. skicka och behandla Hello-paket.  
+
Bidirectional Forwarding Detection (RFC 5880) är ett protokoll som är framtaget för att snabbt kunna upptäcka problem med paketförmedling mellan två grannar. Det är från början utvecklat av Cisco och Juniper. Det är helt oberoende av vilken topologi, media eller routing-protokoll som används. Olika typer av kontrollplansprotokoll kan utnyttja BFD-protokollets feldetektering. Genom snabb feldetektering kan olika kontrollplansprotokoll agera på ett problem snabbare. BFD är en viktig komponent för att sänka konvergenstider (recovery) inom ett nätverk. Det har en gemensam interface-down-event-detection-mekanism som andra kontrollplansprotokoll kan utnyttja för sin feldetektering, exempel på sådana protokoll är diverse routingprotokoll, PIM och HSRP. Samtidigt som det är mindre CPU-krävande än andra tekniker för feldetektering, t.ex. det traditionella att skicka och behandla Hello-paket. BFD är alltid unicast.
 +
 
 +
==Konfiguration==
 +
BFD finns i version 0 och 1. Den största skillnaden är att version 1 stödjer echo mode, se nedan. Cisco IOS kör version 1 default och kan inte konfigureras att köra version 0, men är bakåtkompatibel med det ifall det kommer in v0-paket från någon annan. BFD kan köras i asynchronous mode eller demand mode men IOS sätter alltid Demand bit till 0.
 +
 
 +
'''Aktivera''' <br/>
 +
Ange tröskelvärden per interface. Dessa värden jämförs med andra sidan och de högsta värdena är de som gäller. (Den första 50 är min_tx)
 +
interface gi2
 +
  bfd interval 50 min_rx 50 multiplier 3
 +
Sedan måste man registrera det protokoll som ska dra nytta av BFD. Detta görs per protokoll, se t.ex. [[Cisco_HSRP#BFD|HSRP]], [[Cisco_OSPF#BFD|OSPF]] och [[Cisco_BGP#BFD|BGP]]. Det är på så sätt BFD får reda på vad andra sidan har för adress så ett grannskap är möjligt. Efter att detta är gjort drar BFD igång och upprättar grannskap.
 +
show bfd neighbors
 +
show bfd neighbors details | i Registered
 +
 
 +
'''Felsök'''
 +
debug bfd event
 +
debug bfd packet
  
 
===Echo mode===
 
===Echo mode===
Om andra sidan är långsam på att svara sätter BFD interfacet som down fast det inte är det. Vill man slippa detta kan man höja timers men då försvinner meningen med BFD. För att lösa det kan man använda Echo mode, då kommer inte BFD-paketen att gå till andra sidans CPU utan vända direkt på interfacet (i ASIC:en). Detta är default på Cisco-enheter. Eftersom echo-paket som inte påverkar CPUn används för feldetektering behövs inte BFD-kontrollpaketen skickas lika ofta. Detta går att ställa manuellt och påverkar inte hur ofta echos skickas.
+
Om andra sidan är långsam på att svara pga överlastad CPU sätter BFD interfacet som down fast det inte är det. Vill man slippa detta kan man höja timers men då försvinner meningen med BFD. För att lösa det kan man använda Echo mode, då kommer inte BFD-paketen att gå till andra sidans CPU utan vända direkt på interfacet (i ASIC:en). Detta är default på Cisco-enheter. Eftersom echo-paket som inte påverkar CPUn används för feldetektering behövs inte BFD-kontrollpaketen skickas lika ofta. Detta går att ställa manuellt och påverkar inte hur ofta echos skickas.  
 
  bfd slow-timers <msec>
 
  bfd slow-timers <msec>
 +
show bfd neighbors details | i echo
 +
BFD control packets är UDP från 49152 till 3784. Echo packets är UDP från 3785 till 3785 och fungerar endast single hop.
  
 
Stäng av echo mode på ett interface, inga BFD-echos skickas eller forwardas.
 
Stäng av echo mode på ett interface, inga BFD-echos skickas eller forwardas.
 
  no bfd echo
 
  no bfd echo
 +
''ip redirects behövdes stängas av förr för echo mode men det är inte ett krav längre.''
  
===Verifiera===
+
BFD kan köras i både mjukvara och hårdvara.
  show bfd neighbors
+
show bfd neighbors details | i Session Host
===Felsök===
+
show bfd neighbors hardware
  debug bfd event
+
 
  debug bfd packet
+
===Template===
 +
Man kan skapa en template som man sedan använder på alla interface. Då kan man använda authentication och dampening samt få stöd för microsekunder.
 +
  bfd-template single-hop BACKBONE
 +
  interval microseconds min-tx 50000 min-rx 50000 multiplier 3
 +
  authentication sha-1 keychain BFD
 +
  dampening 10 1000 1000 10
 +
 
 +
===Static routes===
 +
BFD går faktiskt att använda med static routes, man måste bara berätta vilken next-hop som ska monitoreras.
 +
  ip route static bfd gi2 1.1.1.1 [unassociate]
 +
  ip route 10.0.0.0 255.255.255.0 gi2 1.1.1.1
  
 
[[Category:Cisco]]
 
[[Category:Cisco]]

Revision as of 18:03, 30 April 2016

Bidirectional Forwarding Detection (RFC 5880) är ett protokoll som är framtaget för att snabbt kunna upptäcka problem med paketförmedling mellan två grannar. Det är från början utvecklat av Cisco och Juniper. Det är helt oberoende av vilken topologi, media eller routing-protokoll som används. Olika typer av kontrollplansprotokoll kan utnyttja BFD-protokollets feldetektering. Genom snabb feldetektering kan olika kontrollplansprotokoll agera på ett problem snabbare. BFD är en viktig komponent för att sänka konvergenstider (recovery) inom ett nätverk. Det har en gemensam interface-down-event-detection-mekanism som andra kontrollplansprotokoll kan utnyttja för sin feldetektering, exempel på sådana protokoll är diverse routingprotokoll, PIM och HSRP. Samtidigt som det är mindre CPU-krävande än andra tekniker för feldetektering, t.ex. det traditionella att skicka och behandla Hello-paket. BFD är alltid unicast.

Konfiguration

BFD finns i version 0 och 1. Den största skillnaden är att version 1 stödjer echo mode, se nedan. Cisco IOS kör version 1 default och kan inte konfigureras att köra version 0, men är bakåtkompatibel med det ifall det kommer in v0-paket från någon annan. BFD kan köras i asynchronous mode eller demand mode men IOS sätter alltid Demand bit till 0.

Aktivera
Ange tröskelvärden per interface. Dessa värden jämförs med andra sidan och de högsta värdena är de som gäller. (Den första 50 är min_tx)

interface gi2
 bfd interval 50 min_rx 50 multiplier 3

Sedan måste man registrera det protokoll som ska dra nytta av BFD. Detta görs per protokoll, se t.ex. HSRP, OSPF och BGP. Det är på så sätt BFD får reda på vad andra sidan har för adress så ett grannskap är möjligt. Efter att detta är gjort drar BFD igång och upprättar grannskap.

show bfd neighbors
show bfd neighbors details | i Registered

Felsök

debug bfd event
debug bfd packet

Echo mode

Om andra sidan är långsam på att svara pga överlastad CPU sätter BFD interfacet som down fast det inte är det. Vill man slippa detta kan man höja timers men då försvinner meningen med BFD. För att lösa det kan man använda Echo mode, då kommer inte BFD-paketen att gå till andra sidans CPU utan vända direkt på interfacet (i ASIC:en). Detta är default på Cisco-enheter. Eftersom echo-paket som inte påverkar CPUn används för feldetektering behövs inte BFD-kontrollpaketen skickas lika ofta. Detta går att ställa manuellt och påverkar inte hur ofta echos skickas.

bfd slow-timers <msec>
show bfd neighbors details | i echo

BFD control packets är UDP från 49152 till 3784. Echo packets är UDP från 3785 till 3785 och fungerar endast single hop.

Stäng av echo mode på ett interface, inga BFD-echos skickas eller forwardas.

no bfd echo

ip redirects behövdes stängas av förr för echo mode men det är inte ett krav längre.

BFD kan köras i både mjukvara och hårdvara.

show bfd neighbors details | i Session Host
show bfd neighbors hardware

Template

Man kan skapa en template som man sedan använder på alla interface. Då kan man använda authentication och dampening samt få stöd för microsekunder.

bfd-template single-hop BACKBONE
 interval microseconds min-tx 50000 min-rx 50000 multiplier 3
 authentication sha-1 keychain BFD
 dampening 10 1000 1000 10

Static routes

BFD går faktiskt att använda med static routes, man måste bara berätta vilken next-hop som ska monitoreras.

ip route static bfd gi2 1.1.1.1 [unassociate]
ip route 10.0.0.0 255.255.255.0 gi2 1.1.1.1