1400-1500 20170928 Snijders Recent Bgp Innovations v1 · PDF file•...

51
Recent BGP Innova.ons for Opera.onal Challenges Job Snijders job@n?.net NANOG 71, San Jose 1

Transcript of 1400-1500 20170928 Snijders Recent Bgp Innovations v1 · PDF file•...

Page 1: 1400-1500 20170928 Snijders Recent Bgp Innovations v1 · PDF file• BGP&speakers&thatannounce&routes&and/or&acceptroutes,&withoutexplicitly&being& configured&to&do&so ... FreeBSD

Recent  BGP  Innova.ons  for    Opera.onal  Challenges    

Job  Snijders  job@n?.net  

NANOG  71,  San  Jose   1  

Page 2: 1400-1500 20170928 Snijders Recent Bgp Innovations v1 · PDF file• BGP&speakers&thatannounce&routes&and/or&acceptroutes,&withoutexplicitly&being& configured&to&do&so ... FreeBSD

Ba?le  of  Opera.ons  2016  -­‐  2017  

2  NANOG  71,  San  Jose  

Page 3: 1400-1500 20170928 Snijders Recent Bgp Innovations v1 · PDF file• BGP&speakers&thatannounce&routes&and/or&acceptroutes,&withoutexplicitly&being& configured&to&do&so ... FreeBSD

Background  •  There’s  been  increased  par.cipa.on  by  operators  in  the  IETF  recently  to  standardize  solu.ons  to  opera.onal  challenges  with  BGP  –  IDR  (Inter-­‐Domain  Rou.ng)  Working  Group  –  GROW  (Global  Rou.ng  Opera.ons)  Working  Group  

•  Several  RFCs  have  been  published,  and  several  I-­‐Ds  are  in  the  standardiza.on  process  –  Operators  and  implementers  are  working  on  solu.ons  together  in  the  WGs  

•  This  presenta.on  provides  an  overview  of  some  of  the  recent  innova.ons  in  BGP  

•  It’s  never  too  late  to  par.cipate,  join  the  IDR  and  GROW  mailing  lists!  –  h?ps://www.ie[.org/wg/  

NANOG  71,  San  Jose   3  

Page 4: 1400-1500 20170928 Snijders Recent Bgp Innovations v1 · PDF file• BGP&speakers&thatannounce&routes&and/or&acceptroutes,&withoutexplicitly&being& configured&to&do&so ... FreeBSD

Agenda  

NANOG  71,  San  Jose   4  

Security  Performance  

RFC  8212:                                        Apply  secure  EBGP  policy  defaults  

RFC  7999:    Signal  des.na.on-­‐based  blackholing  

dra>-­‐ie@-­‐grow-­‐bgp-­‐gshut:  Reduce  packet  loss  through  coopera.on  

dra>-­‐ie@-­‐grow-­‐bgp-­‐session-­‐culling:  Reduce  packet  loss  through  correct  procedures  

Safety  

BGP  

Management  RFC  8092:              Signal  large  communi.es  with  32-­‐bit  ASNs  

RFC  8203:            Send  freeform  message  with  BGP  shutdown  

CoordinaKon  

Page 5: 1400-1500 20170928 Snijders Recent Bgp Innovations v1 · PDF file• BGP&speakers&thatannounce&routes&and/or&acceptroutes,&withoutexplicitly&being& configured&to&do&so ... FreeBSD

RFC  7999  “BLACKHOLE  Community”  

•  Security  problem:  DoS  a?acks  or  unwanted  traffic  comes  into  your  AS  and  fills  your  transit  links  

•  You  can  block  it  at  your  AS  borders,  but  that  s.ll  wastes  transit  capacity  •  Solu.on:  new  op.onal  well-­‐known  community  to  signal  des.na.on-­‐based  blackholing  

NANOG  71,  San  Jose   5  

AS  64496   AS  64511  

DoS  A?ack  Des.na.on  

Page 6: 1400-1500 20170928 Snijders Recent Bgp Innovations v1 · PDF file• BGP&speakers&thatannounce&routes&and/or&acceptroutes,&withoutexplicitly&being& configured&to&do&so ... FreeBSD

RFC  7999  “BLACKHOLE  Community”  

•  Adver.se  prefix  with  BLACKHOLE  community  (65535:666)  •  Peer  AS  honors  community  and  drops  traffic  to  this  prefix  •  Remove  BLACKHOLE  community  when  the  a?ack  is  over  

NANOG  71,  San  Jose   6  

AS  64496   AS  64511  

DoS  A?ack  Des.na.on  

Prefix  with  BLACKHOLE  NO_EXPORT  Communi.es  

X  

Page 7: 1400-1500 20170928 Snijders Recent Bgp Innovations v1 · PDF file• BGP&speakers&thatannounce&routes&and/or&acceptroutes,&withoutexplicitly&being& configured&to&do&so ... FreeBSD

Usage  Guidelines  

•  You  have  the  choice  to  accept  and  honor,  or  to  ignore  the  community  

•  Usage  must  be  agreed  on  first  between  two  ASs,  and  route  policies  must  be  configured  

•  You  should  strip  the  community  if  you  aren’t  using  it  •  Propaga.on  should  be  limited  to  the  neighboring  AS  only,  add  the  NO_ADVERTISE  or  NO_EXPORT  community    

•  Prefix  length  is  typically  as  specific  as  possible,  /32  for  IPv4  or  /128  for  IPv6  

NANOG  71,  San  Jose   7  

Page 8: 1400-1500 20170928 Snijders Recent Bgp Innovations v1 · PDF file• BGP&speakers&thatannounce&routes&and/or&acceptroutes,&withoutexplicitly&being& configured&to&do&so ... FreeBSD

Security  Guidelines  

•  You  should  only  accept  and  honor  the  BLACKHOLE  community  if  – The  prefix  is  covered  by  an  equal  or  shorter  prefix  that  the  neighboring  AS  is  authorized  to  adver.se  

– You  both  agreed  to  honor  the  BLACKHOLE  community  on  the  par.cular  BGP  session  

•  Route  policies  must  be  explicitly  configured  to  drop  traffic  with  the  BLACKHOLE  community,  it  does  not  happen  automagically  

NANOG  71,  San  Jose   8  

Page 9: 1400-1500 20170928 Snijders Recent Bgp Innovations v1 · PDF file• BGP&speakers&thatannounce&routes&and/or&acceptroutes,&withoutexplicitly&being& configured&to&do&so ... FreeBSD

Agenda  

NANOG  71,  San  Jose   9  

Security  Performance  

RFC  8212:                                        Apply  secure  EBGP  policy  defaults  

RFC  7999:    Signal  des.na.on-­‐based  blackholing  

dra>-­‐ie@-­‐grow-­‐bgp-­‐gshut:  Reduce  packet  loss  through  coopera.on  

dra>-­‐ie@-­‐grow-­‐bgp-­‐session-­‐culling:  Reduce  packet  loss  through  correct  procedures  

Safety  

Management  RFC  8092:              Signal  large  communi.es  with  32-­‐bit  ASNs  

RFC  8203:            Send  freeform  message  with  BGP  shutdown  

CoordinaKon  

BGP  

Page 10: 1400-1500 20170928 Snijders Recent Bgp Innovations v1 · PDF file• BGP&speakers&thatannounce&routes&and/or&acceptroutes,&withoutexplicitly&being& configured&to&do&so ... FreeBSD

RFC  8212  “Default  External  BGP  (EBGP)  Route  Propaga.on  Behavior  without  Policies”  

NANOG  71,  San  Jose   10  

Page 11: 1400-1500 20170928 Snijders Recent Bgp Innovations v1 · PDF file• BGP&speakers&thatannounce&routes&and/or&acceptroutes,&withoutexplicitly&being& configured&to&do&so ... FreeBSD

Opponents  Argued  

•  “We  can’t  change  defaults”  •  “It  can’t  be  done”  •  ”It  will  break  everything  we  love  and  know”  •  Customers  don’t  read  release  notes  – And  don’t  test  whether  the  sooware  boots  •  And  deploy  new  sooware  absolutely  everywhere  at  once  

–  And  don’t  follow  NANOG  /  NLNOG  /  RIPE  /  Community  mailing  lists  »  And  don’t  talk  to  each  other  

•  …..  

NANOG  71,  San  Jose   11  

Page 12: 1400-1500 20170928 Snijders Recent Bgp Innovations v1 · PDF file• BGP&speakers&thatannounce&routes&and/or&acceptroutes,&withoutexplicitly&being& configured&to&do&so ... FreeBSD

Puzzle  Time:  What  does  this  configura.on  do?  

NANOG  71,  San  Jose   12  

router bgp 64499 ! neighbor 192.0.2.1 remote-as 64555 neighbor 192.0.2.1 description Upstream 1 ! neighbor 192.0.2.5 remote-as 65444 neighbor 192.0.2.5 description Upstream 2 !

Page 13: 1400-1500 20170928 Snijders Recent Bgp Innovations v1 · PDF file• BGP&speakers&thatannounce&routes&and/or&acceptroutes,&withoutexplicitly&being& configured&to&do&so ... FreeBSD

Puzzle  Answer:  Lateral  AS-­‐AS-­‐AS  Leak  

NANOG  71,  San  Jose   13  

AS  64555   AS  64500  

AS  64499  

Page 14: 1400-1500 20170928 Snijders Recent Bgp Innovations v1 · PDF file• BGP&speakers&thatannounce&routes&and/or&acceptroutes,&withoutexplicitly&being& configured&to&do&so ... FreeBSD

RFC  8212  in  a  Nutshell  

NANOG  71,  San  Jose   14  

Page 15: 1400-1500 20170928 Snijders Recent Bgp Innovations v1 · PDF file• BGP&speakers&thatannounce&routes&and/or&acceptroutes,&withoutexplicitly&being& configured&to&do&so ... FreeBSD

Post-­‐RFC  8212  implica.on  (hypothe.cal)  

NANOG  71,  San  Jose   15  

route-map implicit-deny-all deny 1 ! router bgp 64499 ! neighbor 192.0.2.1 remote-as 64555 neighbor 192.0.2.1 description Upstream 1 neighbor 192.0.2.1 route-map implicit-deny-all in neighbor 192.0.2.1 route-map implicit-deny-all out ! neighbor 192.0.2.5 remote-as 65444 neighbor 192.0.2.5 description Upstream 2 neighbor 192.0.2.5 route-map implicit-deny-all in neighbor 192.0.2.5 route-map implicit-deny-all out

Page 16: 1400-1500 20170928 Snijders Recent Bgp Innovations v1 · PDF file• BGP&speakers&thatannounce&routes&and/or&acceptroutes,&withoutexplicitly&being& configured&to&do&so ... FreeBSD

Advantages  of  RFC  8212  

•  Consistency  across  pla[orms  &  vendors  •  Explicit  configura.on  (‘grep’  suddenly  is  useful  again)  •  Handover  between  personnel  is  easier  as  we  don’t  have  to  guess  

•  Protects  the  Default-­‐Free  Zone  (EBGP  is  a  shared  resource)  

NANOG  71,  San  Jose   16  

Page 17: 1400-1500 20170928 Snijders Recent Bgp Innovations v1 · PDF file• BGP&speakers&thatannounce&routes&and/or&acceptroutes,&withoutexplicitly&being& configured&to&do&so ... FreeBSD

What  This  Means  •  BGP  speakers  that  announce  routes  and/or  accept  routes,  without  explicitly  being  

configured  to  do  so,  are  no  longer  compliant  with  the  core  BGP  specificaKon  •  Current  list  of  vendors  that  need  to  do  some  work  

–  Cisco  IOS  –  Cisco  IOS  XE  –  Cisco  NX-­‐OS  –  Arista  EOS  –  Juniper  Junos  OS  –  Brocade  Ironware  –  BIRD  –  OpenBGPD  –  Nokia  SR  OS  –  Others…  (we’re  keeping  track  here  h?ps://github.com/bgp/RFC8212)  

NANOG  71,  San  Jose   17  

Page 18: 1400-1500 20170928 Snijders Recent Bgp Innovations v1 · PDF file• BGP&speakers&thatannounce&routes&and/or&acceptroutes,&withoutexplicitly&being& configured&to&do&so ... FreeBSD

Usage  Guidelines  

•  Start  to  implement  a  rou.ng  policy  with  secure  EBGP  defaults  now  –  It’s  the  right  thing  to  do  and  now  is  a  good  .me  to  start  

•  Keep  an  eye  out  for  when  your  BGP  implementa.ons  change  their  default  behavior  – Check  release  notes  and  documenta.on  

•  Following  these  steps  will  ensure  you  are  prepared  in  advance  

NANOG  71,  San  Jose   18  

Page 19: 1400-1500 20170928 Snijders Recent Bgp Innovations v1 · PDF file• BGP&speakers&thatannounce&routes&and/or&acceptroutes,&withoutexplicitly&being& configured&to&do&so ... FreeBSD

Agenda  

NANOG  71,  San  Jose   19  

Security  Performance  

RFC  8212:                                        Apply  secure  EBGP  policy  defaults  

RFC  7999:    Signal  des.na.on-­‐based  blackholing  

dra>-­‐ie@-­‐grow-­‐bgp-­‐gshut:  Reduce  packet  loss  through  coopera.on  

dra>-­‐ie@-­‐grow-­‐bgp-­‐session-­‐culling:  Reduce  packet  loss  through  correct  procedures  

Safety  

Management  RFC  8092:              Signal  large  communi.es  with  32-­‐bit  ASNs  

RFC  8203:            Send  freeform  message  with  BGP  shutdown  

CoordinaKon  

BGP  

Page 20: 1400-1500 20170928 Snijders Recent Bgp Innovations v1 · PDF file• BGP&speakers&thatannounce&routes&and/or&acceptroutes,&withoutexplicitly&being& configured&to&do&so ... FreeBSD

Needed  RFC  1997  Style  Communi.es,  but  Larger  

•  We  knew  we’d  run  out  of  16-­‐bit  ASNs  eventually  and  came  up  with  32-­‐bit  ASNs  

•  RIRs  started  alloca.ng  32-­‐bit  ASNs  by  request  in  2007,  no  dis.nc.on  between  16-­‐bit  and  32-­‐bit  ASNs  now  

•  However,  you  can’t  fit  a  32-­‐bit  value  into  a  16-­‐bit  field  

•  Can’t  use  na.ve  32-­‐bit  ASNs  with  RFC  1997  communi.es  

•  Needed  an  Internet  rou.ng  communi.es  solu.on  for  32-­‐bit  ASNs  for  almost  10  years  

•  Parity  and  fairness  so  everyone  can  use  their  globally  unique  ASN  

NANOG  71,  San  Jose   20  

Page 21: 1400-1500 20170928 Snijders Recent Bgp Innovations v1 · PDF file• BGP&speakers&thatannounce&routes&and/or&acceptroutes,&withoutexplicitly&being& configured&to&do&so ... FreeBSD

RFC  8092  “BGP  Large  Communi.es  A?ribute”  

•  Idea  progressed  rapidly  from  incep.on  in  March  2016  

•  First  I-­‐D  in  September  2016  to  RFC  publica.on  on  February  16,  2017  in  just  seven  months  

•  Final  standard,  plus  a  number  of  implementa.on  and  tools  developed  as  well  

•  Network  operators  can  test  and  deploy  the  new  technology  now  

NANOG  71,  San  Jose  Cake  and  photo  courtesy  of  the  NTT  Communica.ons  NOC.  

21  

Page 22: 1400-1500 20170928 Snijders Recent Bgp Innovations v1 · PDF file• BGP&speakers&thatannounce&routes&and/or&acceptroutes,&withoutexplicitly&being& configured&to&do&so ... FreeBSD

Geung  Started  With  Large  Communi.es  •  2018  is  the  year  of  large  BGP  communi.es  

–  Prepara.on,  tes.ng,  training  and  deployment  can  take  weeks,  months  or  even  over  a  year  –  Start  the  work  now,  so  you  are  ready  when  customers  want  to  use  large  communi.es  

•  Lots  of  resources  are  available  to  help  network  operators  learn  about  large  communi.es  at  h?p://largebgpcommun.es.net/  –  BGP  speaker  implementa.ons  –  Analysis  and  ecosystem  tools  –  Presenta.ons  (h?p://largebgpcommuni.es.net/talks/)  –  Documenta.on  for  each  implementa.on  –  Configura.on  examples  (h?p://largebgpcommuni.es.net/examples/)  –  RFC  8195  provides  examples  and  inspira.on  for  network  operators  to  use  large  communi.es  

NANOG  71,  San  Jose   22  

Page 23: 1400-1500 20170928 Snijders Recent Bgp Innovations v1 · PDF file• BGP&speakers&thatannounce&routes&and/or&acceptroutes,&withoutexplicitly&being& configured&to&do&so ... FreeBSD

BGP  Speaker  Implementa.on  Status  

NANOG  71,  San  Jose   23  

Implementa.on   Sooware   Status   Details  

Arista   EOS   Planned   Feature  Requested  BUG169446  

Brocade   IronWare   Planned   First  Half  of  2018  

Brocade   SLX-­‐OS   Planned   First  Half  of  2018  

Cisco   IOS  XE   Planned   IOS  XE  16.9.1  (FCS  July  2018)  (source)  

Cisco   IOS  XR   ✔  Done!   Beta  (perhaps  in  6.3.2  for  real?)  

cz.nic   BIRD   ✔  Done!   BIRD  1.6.3  (commit)  

ExaBGP   ExaBGP   ✔  Done!   PR482  

FreeRangeRou.ng   frr   ✔  Done!   Issue  46  (commit)  

Juniper   Junos  OS   ✔  Done!   Junos  OS  17.3R1  

Nokia   SR  OS   Planned   SR  OS  16.0.R1  

nop.hu   freeRouter   ✔  Done!      

OpenBSD   OpenBGPD   ✔  Done!   OpenBSD  6.1  (commit)  

OSRG   GoBGP   ✔  Done!   PR1094  

rtbrick   Fullstack   ✔  Done!   FullStack  17.1  

Quagga   Quagga   ✔  Done!   Quagga  1.2.0  (875)  

Ubiqui.   EdgeOS   Planned   Internal  Enhancement  Requested  

Page 24: 1400-1500 20170928 Snijders Recent Bgp Innovations v1 · PDF file• BGP&speakers&thatannounce&routes&and/or&acceptroutes,&withoutexplicitly&being& configured&to&do&so ... FreeBSD

Tools  and  Ecosystem  Implementa.on  Status  

NANOG  71,  San  Jose   24  

Implementa.on   Sooware   Status   Details  DE-­‐CIX   pbgpp   ✔  Done!   PR16  

FreeBSD   tcpdump   ✔  Done!   PR213423  

INEX   Bird’s  Eye   ✔  Done!   1.1.0  (commit)  

Marco  d’Itri   zebra-­‐dump-­‐parser   ✔  Done!   PR3  

OpenBSD   tcpdump   ✔  Done!   OpenBSD  6.1  (patch)  

pmacct.net   pmacct   ✔  Done!   PR61  

RIPE  NCC   bgpdump   ✔  Done!   Issue  41  (commit)  

tcpdump.org   tcpdump   ✔  Done!   PR543  (commit)  

Yoshiyuki  Yamauchi   mrtparse   ✔  Done!   PR13  

Wireshark   Wireshark   ✔  Done!   Wireshark  2.4.0  (patch)  

Visit  h?p://largebgpcommuni.es.net/implementa.ons/  for  the  Latest  Status  

Page 25: 1400-1500 20170928 Snijders Recent Bgp Innovations v1 · PDF file• BGP&speakers&thatannounce&routes&and/or&acceptroutes,&withoutexplicitly&being& configured&to&do&so ... FreeBSD

Agenda  

NANOG  71,  San  Jose   25  

Security  Performance  

RFC  8212:                                        Apply  secure  EBGP  policy  defaults  

RFC  7999:    Signal  des.na.on-­‐based  blackholing  

dra>-­‐ie@-­‐grow-­‐bgp-­‐gshut:  Reduce  packet  loss  through  coopera.on  

dra>-­‐ie@-­‐grow-­‐bgp-­‐session-­‐culling:  Reduce  packet  loss  through  correct  procedures  

Safety  

Management  RFC  8092:              Signal  large  communi.es  with  32-­‐bit  ASNs  

RFC  8203:            Send  freeform  message  with  BGP  shutdown  

CoordinaKon  

BGP  

Page 26: 1400-1500 20170928 Snijders Recent Bgp Innovations v1 · PDF file• BGP&speakers&thatannounce&routes&and/or&acceptroutes,&withoutexplicitly&being& configured&to&do&so ... FreeBSD

Communica.on  can  be  a  Challenge  

NANOG  71,  San  Jose   26  

Page 27: 1400-1500 20170928 Snijders Recent Bgp Innovations v1 · PDF file• BGP&speakers&thatannounce&routes&and/or&acceptroutes,&withoutexplicitly&being& configured&to&do&so ... FreeBSD

h?ps://labs.ripe.net/Members/cteusche/bgp-­‐meets-­‐cat  27  NANOG  71,  San  Jose  

Page 28: 1400-1500 20170928 Snijders Recent Bgp Innovations v1 · PDF file• BGP&speakers&thatannounce&routes&and/or&acceptroutes,&withoutexplicitly&being& configured&to&do&so ... FreeBSD

RFC  8203    “BGP  Administra.ve  Shutdown  Communica.on”  

•  Coordina.on  problem:  you  shutdown  your  BGP  session  and  your  peers  don’t  know  why    

•  Solu.on:  add  a  freeform  message  embedded  in  the  BGP  NOTIFICATION  message  when  the  session  is  shutdown  

NANOG  71,  San  Jose   28  

AS  64496   AS  64511  X   Probably  Didn’t  Read  Maintenance  No.ce  ?  Maintenance   ?  

?  

Page 29: 1400-1500 20170928 Snijders Recent Bgp Innovations v1 · PDF file• BGP&speakers&thatannounce&routes&and/or&acceptroutes,&withoutexplicitly&being& configured&to&do&so ... FreeBSD

RFC  8203    “BGP  Administra.ve  Shutdown  Communica.on”  

•  Message  can  be  up  to  128  bytes  long  •  UTF-­‐8  is  supported  too:  💩𐀌𐀧𐀻𐀾𐁎𐁏𐁞𐁟𐁠𐁡𐁢𐁣𐁤𐁥𐁦𐁧𐁨𐁩𐁪𐁫𐁬𐁭𐁮𐁯𐁰𐁱𐁲𐁳𐁴𐁵𐁶𐁷𐁸𐁹𐁺𐁻𐁼𐁽𐁾𐁿𐃻𐃼𐃽𐃾𐃿𐄃𐄄𐄅𐄆𐄴𐄵𐄶𐆋𐆌𐆍𐆎𐆏𐆜𐆝𐆞𐆟𐆠𐆡𐆢𐆣𐆤𐆥𐆦𐆧𐆨𐆩𐆪𐆫𐆬𐆭𐆮𐆯𐆰𐆱𐆲𐆳𐆴𐆵𐆶𐆷𐆸𐆹𐆺𐆻𐆼𐆽𐆾𐆿𐇀𐇁𐇂𐇃𐇄𐇅𐇆𐇇𐇈𐇉𐇊𐇋𐇌𐇍𐇎𐇏𐇾𐇿𐈀𐈁𐈂𐈃𐈄𐈅𐈆𐈇𐈈𐈉𐈊𐈋𐈌𐈍𐈎𐈏𐈐😍😡👭😺👬  

NANOG  71,  San  Jose   29  

☺  💡

AS  64496   AS  64511  X  Maintenance  

NOTIFICATION  Cease  "[TICKET-­‐1-­‐1438367390]  sooware  upgrade;  back  in  2  hours”  

Page 30: 1400-1500 20170928 Snijders Recent Bgp Innovations v1 · PDF file• BGP&speakers&thatannounce&routes&and/or&acceptroutes,&withoutexplicitly&being& configured&to&do&so ... FreeBSD

Usage  Guidelines  

Sender  •  Send  “Administra.ve  Shutdown”  

message  for  maintenance  that  is  going  to  take  some  period  of  .me    

•  Send  “Administra.ve  Reset”  message  for  maintenance  that  is  for  a  short  .me,  for  example  to  reset  a  peer  or  to  reboot  a  router  

•  Include  a  .cket  or  reference  number  and  make  the  message  as  informa.ve  as  possible  

 

Receiver  •  Log  messages  to  logging  systems  •  Reference  .cket  number  in  email  or  

other  no.fica.ons  for  more  details  

NANOG  71,  San  Jose   30  

Page 31: 1400-1500 20170928 Snijders Recent Bgp Innovations v1 · PDF file• BGP&speakers&thatannounce&routes&and/or&acceptroutes,&withoutexplicitly&being& configured&to&do&so ... FreeBSD

OpenBGPD  Example  Sender:  [job@kiera ~]$ bgpctl neighbor 165.254.255.24 down "[TICKET-1-1438367390] we are upgrading to openbsd 6.1, be back in 30 minutes” [job@kiera ~]$

Receiver:    Jan 8 19:28:54 shutdown bgpd[50719]: neighbor 165.254.255.26: received notification: Cease, administratively down Jan 8 19:28:54 shutdown bgpd[50719]: neighbor 165.254.255.26: received shutdown reason: "[TICKET-1-1438367390] we are upgrading to openbsd 6.1, be back in 30 minutes"

NANOG  71,  San  Jose   31  

Page 32: 1400-1500 20170928 Snijders Recent Bgp Innovations v1 · PDF file• BGP&speakers&thatannounce&routes&and/or&acceptroutes,&withoutexplicitly&being& configured&to&do&so ... FreeBSD

Implementa.on  Status  

NANOG  71,  San  Jose   32  

Implementa.on   Sooware   Status  cz.nic   BIRD   Unknown  

Cisco   IOS  XR   Unknown  

ExaBGP   ExaBGP   ✔  Done!  

FreeRangeRou.ng   frr   ✔  Done!  

OSRG   GoBGP   ✔  Done!  

Juniper   Junos  OS   Unknown  

Nokia   SR  OS   Unknown  

OpenBSD   OpenBGPD   ✔  Done!  

OSRG   GoBGP   ✔  Done!  

pmacct.net   pmacct   ✔  Done!  

tcpdump.org   tcpdump   ✔  Done!  

Wireshark   Dissector   ✔  Done!  

Page 33: 1400-1500 20170928 Snijders Recent Bgp Innovations v1 · PDF file• BGP&speakers&thatannounce&routes&and/or&acceptroutes,&withoutexplicitly&being& configured&to&do&so ... FreeBSD

Agenda  

NANOG  71,  San  Jose   33  

Security  Performance  

RFC  8212:                                        Apply  secure  EBGP  policy  defaults  

RFC  7999:    Signal  des.na.on-­‐based  blackholing  

dra>-­‐ie@-­‐grow-­‐bgp-­‐gshut:  Reduce  packet  loss  through  coopera.on  

dra>-­‐ie@-­‐grow-­‐bgp-­‐session-­‐culling:  Reduce  packet  loss  through  correct  procedures  

Safety  

Management  RFC  8092:              Signal  large  communi.es  with  32-­‐bit  ASNs  

RFC  8203:            Send  freeform  message  with  BGP  shutdown  

CoordinaKon  

BGP  

Page 34: 1400-1500 20170928 Snijders Recent Bgp Innovations v1 · PDF file• BGP&speakers&thatannounce&routes&and/or&acceptroutes,&withoutexplicitly&being& configured&to&do&so ... FreeBSD

Two  Types  of  Maintenance    

Voluntary  Shutdown  (YOU)  •  You  take  ac.on  before  maintenance  to  

reroute  traffic  and  minimize  the  impact  

Ø  You  use  BGP  shutdown  communica.on  Ø  You  use  graceful  BGP  session  

shutdown  

Involuntary  Shutdown  (other  folks)  •  Maintenance  on  lower  layer  network  

breaks  end-­‐to-­‐end  path,  but  link  stays  up  

•  BGP  sessions  only  go  down  aoer  hold  .mer  expires  

•  Could  blackhole  traffic  during  this  .me  un.l  traffic  is  rerouted  

Ø  Your  network  provider  uses  BGP  culling  

NANOG  71,  San  Jose   34  

Page 35: 1400-1500 20170928 Snijders Recent Bgp Innovations v1 · PDF file• BGP&speakers&thatannounce&routes&and/or&acceptroutes,&withoutexplicitly&being& configured&to&do&so ... FreeBSD

When  does  blackholing  happen  with  vanilla  shutdown?  

•  Lack  of  an  alterna.ve  route  on  some  routers  •  Transient  rou.ng  inconsistency  •  A  route  reflector  may  only  propagate  its  best  path  

•  The  backup  ASBR  may  not  adver.se  the  backup  path  because  the  nominal  path  is  preferred  

 Admi?edly,  the  above  scenarios  usually  are  short  periods  of  blackholing,  but  why  accept  that  if  they  can  easily  be  prevented?  

ASBR  

RR  

ASBR  

Peer  

1)  Shutdown  (cease)  

2)  withdraw  3)  New  path  

Steady  announce  

Steady  announce  

NANOG  71,  San  Jose   35  

Page 36: 1400-1500 20170928 Snijders Recent Bgp Innovations v1 · PDF file• BGP&speakers&thatannounce&routes&and/or&acceptroutes,&withoutexplicitly&being& configured&to&do&so ... FreeBSD

Graceful  Shutdown  triggers  “path  hun.ng”  

ASBR  

RR  

ASBR  

Peer  

1)  Signal  “lower  LOCAL_PREF”  4)  shutdown  session  (cease)  

2)  ANNOUNCE  with  LP=0  3)  Receive  New  path  from  RR  

Steady  announce  

•  Ini.ated  by  the  operator  on  the  router  before  maintenance  by  sending  the  GRACEFUL_SHUTDOWN  well-­‐known  community  (65535:0  as  per  IANA)  

•  Receiving  EBGP  peer  sets  LOCAL_PREFERENCE  to  0  and  selects  paths  to  route  traffic  away  from  the  ini.ator,  (similar  to  seung  overload  in  an  ISIS)  

•  When  BGP  session  goes  down,  minimizes  impact  to  traffic  because  alternate  paths  have  already  been  installed  

NANOG  71,  San  Jose   36  

Page 37: 1400-1500 20170928 Snijders Recent Bgp Innovations v1 · PDF file• BGP&speakers&thatannounce&routes&and/or&acceptroutes,&withoutexplicitly&being& configured&to&do&so ... FreeBSD

Usage  Guidelines  •  To  support  receiving  graceful  shutdown,  update  your  rou.ng  policy  to  – Match  the  GRACEFUL_SHUTDOWN  well-­‐known  community  (65535:0)  –  Set  the  LOCAL_PREF  a?ribute  to  a  low  value,  like  0  

•  To  send  graceful  shutdown,  update  your  rou.ng  policy  to  –  Send  the  GRACEFUL_SHUTDOWN  well-­‐known  community  (65535:0)  before  you  start  maintenance  

– When  ingress  traffic  from  the  peer  has  stopped,  start  maintenance  and  use  BGP  shutdown  communica.on  

–  Remove  the  GRACEFUL_SHUTDOWN  well-­‐known  community  when  you  are  done  

NANOG  71,  San  Jose   37  

Page 38: 1400-1500 20170928 Snijders Recent Bgp Innovations v1 · PDF file• BGP&speakers&thatannounce&routes&and/or&acceptroutes,&withoutexplicitly&being& configured&to&do&so ... FreeBSD

Configura.on  Example  –  Simple  to  Implement  

NANOG  71,  San  Jose   38  

route-policy AS64497-ebgp-inbound if community matches-any (65535:0) then set local-preference 0 endif

end-policy ! router bgp 64496

neighbor 2001:db8:1:2::1 remote-as 64497 address-family ipv6 unicast send-community-ebgp

route-policy AS64497-ebgp-inbound in

ip community-list standard gshut 65535:0 ! route-map ebgp-in permit 10 match community gshut set local-preference 0

Arista/Brocade/IOS/Quagga/FRR  IOS  XR  

community "gshut" members "65535:0" policy-statement "ebgp-in" entry 10 from community "gshut" exit action accept local-preference 0 exit exit exit

Nokia  

Page 39: 1400-1500 20170928 Snijders Recent Bgp Innovations v1 · PDF file• BGP&speakers&thatannounce&routes&and/or&acceptroutes,&withoutexplicitly&being& configured&to&do&so ... FreeBSD

GRACEFUL_SHUTDOWN  signals:  

“Hello  everyone,  if  you  consider  this  path  your  ‘best  path’,  please  start  considering  this  path  the  ’worst  path’  

and  if  you  find  anything  be<er  install  that  into  your  FIB.  This  path  will  disappear  within  a  few  minutes.”  

NANOG  71,  San  Jose   39  

Operators  known  to  honor  the  graceful_shutdown  well-­‐known  community:    •  NTT  Communica.ons  (AS  2914)  •  GTT  (AS  3257)  •  Github  (AS  36459)  •  Nordunet  (AS  2603)  •  Coloclue  (AS  8283)  •  Amsio  (AS  8315)  •  BIT  (AS  12859)  •  …  you?  J  

Page 40: 1400-1500 20170928 Snijders Recent Bgp Innovations v1 · PDF file• BGP&speakers&thatannounce&routes&and/or&acceptroutes,&withoutexplicitly&being& configured&to&do&so ... FreeBSD

drao-­‐ie[-­‐grow-­‐bgp-­‐session-­‐culling    “Mi.ga.ng  Nega.ve  Impact  of  Maintenance  through  

BGP  Session  Culling”  

•  Performance  problem:  maintenance  on  lower  layer  network  breaks  path,  but  link  stays  up  

•  Solu.on:  network  provider  applies  Layer  4  ACLs  to  block  BGP  control  plane  traffic  while  links  are  up  

•  Routers  con.nue  to  forward  traffic  un.l  hold  .mer  expires,  no  blackholing  

NANOG  71,  San  Jose   40  

BGP  is  up  Un.l  Hold  Timer  Expires  

BGP  is  up  Un.l  Hold  Timer  Expires  

AS  64496   AS  64511  Layer  2  Network  X  

Maintenance  Link  up  Traffic  is  Dropped  

Link  up  Traffic  is  Dropped  

Page 41: 1400-1500 20170928 Snijders Recent Bgp Innovations v1 · PDF file• BGP&speakers&thatannounce&routes&and/or&acceptroutes,&withoutexplicitly&being& configured&to&do&so ... FreeBSD

drao-­‐ie[-­‐grow-­‐bgp-­‐session-­‐culling    “Mi.ga.ng  Nega.ve  Impact  of  Maintenance  through  

BGP  Session  Culling”  

•  Lower  layer  network  provider  applies  Layer  4  ACLs  to  block  BGP  control  plane  traffic  before  maintenance  starts  

•  Data  plane  con.nues  to  forward  •  When  BGP  hold  .mer  expires,  BGP  chooses  a  new  path  •  Then  lower  layer  network  starts  maintenance,  and  removes  ACLs  when  maintenance  is  

complete  

NANOG  71,  San  Jose   41  

BGP  is  up  Un.l  Hold  Timer  Expires  

BGP  is  up  Un.l  Hold  Timer  Expires  

AS  64496   AS  64511  Layer  2  Network  X  

Maintenance  ACL  Blocks  BGP  Traffic  is  Forwarded  

ACL  Blocks  BGP  Traffic  is  Forwarded  

Page 42: 1400-1500 20170928 Snijders Recent Bgp Innovations v1 · PDF file• BGP&speakers&thatannounce&routes&and/or&acceptroutes,&withoutexplicitly&being& configured&to&do&so ... FreeBSD

“Involuntary  Teardown”  Usage  Guidelines  

•  ACLs  are  only  applied  to  TCP/179  on  directly  connected  IP  addresses  – Mul.hop  BGP  control  plane  traffic  is  permi?ed  – Data  plane  traffic  is  permi?ed  

•  ACLs  are  applied  to  IPv4  and  IPv6  IP  addresses  •  Maintenance  is  started  when  data  plane  traffic  has  stopped  or  dropped  significantly  

•  ACLs  are  removed  aoer  maintenance  

NANOG  71,  San  Jose   42  

Page 43: 1400-1500 20170928 Snijders Recent Bgp Innovations v1 · PDF file• BGP&speakers&thatannounce&routes&and/or&acceptroutes,&withoutexplicitly&being& configured&to&do&so ... FreeBSD

Availability  Overview  

•  Shipping  now:  – Graceful  Shutdown  – BGP  Session  Culling  – BLACKHOLE  Community  

•  ParKally  available:  – Large  BGP  Communi.es  – Shutdown  Communica.on  – EBGP  Secure  Defaults  

NANOG  71,  San  Jose   43  

Page 44: 1400-1500 20170928 Snijders Recent Bgp Innovations v1 · PDF file• BGP&speakers&thatannounce&routes&and/or&acceptroutes,&withoutexplicitly&being& configured&to&do&so ... FreeBSD

Call  to  Ac.on    

NANOG  71,  San  Jose   44  

Page 45: 1400-1500 20170928 Snijders Recent Bgp Innovations v1 · PDF file• BGP&speakers&thatannounce&routes&and/or&acceptroutes,&withoutexplicitly&being& configured&to&do&so ... FreeBSD

Your  BGP  Sooware  Suppliers  

•  Ask  them  to  support  the  following  RFCs  now,  even  if  it’s  already  listed  on  their  roadmap  – RFC  8092  BGP  Large  Communi.es  – RFC  8203  BGP  Administra.ve  Shutdown  Communica.on  – RFC  8212  Default  EBGP  Route  Propaga.on  Behavior  without  Policies  

•  When  you  write  a  Request  For  Proposals  (RFP),  make  sure  these  three  items  are  on  the  checklist  

•  Vote  with  your  wallet  

NANOG  71,  San  Jose   45  

Page 46: 1400-1500 20170928 Snijders Recent Bgp Innovations v1 · PDF file• BGP&speakers&thatannounce&routes&and/or&acceptroutes,&withoutexplicitly&being& configured&to&do&so ... FreeBSD

Your  Peers,  Transit  Providers  &  IXPs:  •  Ask  your  transit  providers  to  support  –  RFC  7999  BLACKHOLE  Community  (des.na.on-­‐based  blackholing)  

•  Ask  your  transit  providers  &  peers  to  support  –  drao-­‐ie[-­‐grow-­‐bgp-­‐gshut  Graceful  BGP  session  shutdown  –  drao-­‐ie[-­‐grow-­‐bgp-­‐session-­‐culling  Voluntary  Shutdown  BCP    

•  Ask  IXPs  to  apply  BGP  culling  (or  equivalent)  during  maintenance  –  drao-­‐ie[-­‐grow-­‐bgp-­‐session-­‐culling  (Involuntary  Shutdown  BCP)  -­‐  Mi.ga.ng  Nega.ve  Impact  of  Maintenance  through  BGP  Session  Culling  

•  When  you  write  a  Request  For  Proposals  (RFP),  make  sure  these  three  items  are  on  the  checklist.  PUT  THIS  IN  RFPs!  

•  Vote  with  your  wallet  

NANOG  71,  San  Jose   46  

Page 47: 1400-1500 20170928 Snijders Recent Bgp Innovations v1 · PDF file• BGP&speakers&thatannounce&routes&and/or&acceptroutes,&withoutexplicitly&being& configured&to&do&so ... FreeBSD

Your  Network  

•  Update  your  rou.ng  policy  –  Assume  Secure  EBGP  defaults  –  BLACKHOLE  well-­‐known  community  (65535:666)  –  GRACEFUL_SHUTDOWN  well-­‐known  community  (65535:0)  –  Large  communi.es  –  Document  and  publish  it  

•  Add  coordina.on  and  performance  improvements  to  your  maintenance  procedures  –  Shutdown  communica.on  and  BGP  graceful  shutdown  –  Follow  BGP  session  culling  BCP  

NANOG  71,  San  Jose   47  

Page 48: 1400-1500 20170928 Snijders Recent Bgp Innovations v1 · PDF file• BGP&speakers&thatannounce&routes&and/or&acceptroutes,&withoutexplicitly&being& configured&to&do&so ... FreeBSD

Movie  Credits  (contributors  to  RFC  7999,  8092,  8195,  8203,  8212)  

Acee  Lindem    Adam  Chappell    Adam  Davenport  Adam  Roach  Adam  Simpson    Alexander  Azimov  Alvaro  Retana    Arjen  Zonneveld  Arnold  Nipper    Barry  O'Donovan  Ben  Maddison    Bertrand  Duvivier  Bill  Fenner    Brad  Dreisbach    Brian  Dickson    Bruno  Decraene  Chris.an  Seitz    Christoph  Dietzel  Christopher  Morrow  Dale  Worley  David  Farmer    David  Freedman  Donald  Smith    Duncan  Lockwood  Eduardo  Ascenco  Reis  Gaurab  Raj  Upadhaya  Geoff  Huston    Gert  Doering  Greg  Hankins    Greg  Skinner    Grzegorz  Janoszka  Gunter  van  de  Velde  Ian  Dickinson    Ignas  Bagdonas    Jakob  Heitz    James  Bensley  Jan  Baggen    Jared  Mauch    Jay  Borkenhagen  Jeff  Haas  Jeff  Tantsura    Jeffrey  Haas    Joe  Provo    Joel  Jaeggli  Joel  M.    Halpern  John  Heasley    John  Scudder    Jonathan  Stewart  Julian  Seifert    Jussi  Peltola    Kay  Rechthien    Keyur  Patel  Kris.an  Larsson    Linda  Dunbar    Lou  Berger    Mach  Chen  Marco  Davids    Marco  Marzeu    Mark  Schouten    Markus  Hauschild  Mar.jn  Schmidt    Mar.n  Millnert    Mikael  Abrahamsson  Nabeel  Cocker  Nick  Hilliard    Niels  Bakker    Paul  Hoogsteder  Peter  Hessler  Peter  van  Dijk    Petr  Jiran    Pier  Carlo  Chiodi  Randy  Bush  Remco  van  Mook  Richard  Hartmann  Richard  Steenbergen  Rob  Shakir  Robert  Raszuk    Ruediger  Volk    Russ  White    Saku  Yu  Sander  Steffann    Shane  Amante    Shawn  Morris    Shyam  Sethuram  Sriram  Ko.kalapudi  Stefan  Plug    Stewart  Bryant    Susan  Hares  Terry  Manderson  Teun  Vink    Theodore  Baschak  Thomas  King  Thomas  Mangin    Tom  Daly    Tom  Petch    Tom  Scholl  Warren  Kumari    Wesley  Steehouwer  Will  Hargrave    Wim  Henderickx  Yordan  Kritski    Richard  Turkbergen  Job  Snijders  

NANOG  71,  San  Jose   48  

Page 49: 1400-1500 20170928 Snijders Recent Bgp Innovations v1 · PDF file• BGP&speakers&thatannounce&routes&and/or&acceptroutes,&withoutexplicitly&being& configured&to&do&so ... FreeBSD

         

Reuse  of  this  slide  deck  is  permiZed  and  encouraged!  

NANOG  71,  San  Jose   49  

Presenta.on  created  by:  

Greg  Hankins  Nokia  [email protected]  @greg_hankins  

Job  Snijders  NTT  Communica.ons  job@n?.net  @JobSnijders  

Page 50: 1400-1500 20170928 Snijders Recent Bgp Innovations v1 · PDF file• BGP&speakers&thatannounce&routes&and/or&acceptroutes,&withoutexplicitly&being& configured&to&do&so ... FreeBSD

Bonus  slides  

NANOG  71,  San  Jose   50  

Page 51: 1400-1500 20170928 Snijders Recent Bgp Innovations v1 · PDF file• BGP&speakers&thatannounce&routes&and/or&acceptroutes,&withoutexplicitly&being& configured&to&do&so ... FreeBSD

The  Science  Behind  Shuung  Down  BGP  Sessions  

•  Avoiding  disrup.ons  during  maintenance  opera.ons  on  BGP  sessions:  h?ps://inl.info.ucl.ac.be/system/files/ucl-­‐o-­‐bgp-­‐shutdown-­‐inl.pdf  (August  2008)  

•  Requirements  for  the  Graceful  Shutdown  of  BGP  Sessions  h?ps://tools.ie[.org/html/rfc6198  (April  2011)  

NANOG  71,  San  Jose   51