Top Banner
Reinforcing the Kitchen Sink. Aligning Error Handling in BGP-4 with Modern Network Requirements. Rob Shakir ([email protected]) Netnod Autumn Meeting 2011
22

Reinforcing the Kitchen Sink - Aligning BGP-4 Error Handling with Modern Network Requirements

May 12, 2015

Download

Documents

Rob Shakir

An update on the IETF BGP error handling work, given at Netnod\'s Autumn meeting 2011.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Reinforcing the Kitchen Sink - Aligning BGP-4 Error Handling with Modern Network Requirements

Reinforcing the Kitchen Sink. Aligning Error Handling in BGP-4 with

Modern Network Requirements. Rob Shakir ([email protected]) Netnod Autumn Meeting 2011

Page 2: Reinforcing the Kitchen Sink - Aligning BGP-4 Error Handling with Modern Network Requirements

Extending BGP-4: “iBGP” Across an L3VPN

L3VPNCE1 CE2PE1 PE2

VIRTUAL iBGP

eBGP eBGP

LOCAL_PREFAS_PATH

...LOCAL_PREF

AS_PATH...

ATTR_SETLOCAL_PREF

AS_PATH...

PACKED UNPACKED

Customer sees iBGP attributes despite the fact the UPDATE passed through eBGP in the SP L3VPN Topology.

Neat – looks like a useful extension to me!

Page 3: Reinforcing the Kitchen Sink - Aligning BGP-4 Error Handling with Modern Network Requirements

DFZ, meet ATTR_SET…

L3VPN

INTERNETDFZ

AS64512ASBR

INTERNETROUTING TABLE

AS65535ASBR

LOCAL_PREFAS_PATH

...

ATTR_SET

ATTR_SET intended in an VPNv4 context! But it was leaked to the DFZ…

JunOSUPSTREAM

AS

UPDATEATTR_SET

ATTR_SET is not valid

in this context!

NOTIFICATION

Page 4: Reinforcing the Kitchen Sink - Aligning BGP-4 Error Handling with Modern Network Requirements

IPv4 Unicast

A familiar story?

AS4_PATH RIPE NCC/Duke

Experimental AS_HOPLIMIT

All of these are new or unrecognised attributes! But...

Page 5: Reinforcing the Kitchen Sink - Aligning BGP-4 Error Handling with Modern Network Requirements

IPv4 Unicast IPv6 Unicast

A familiar story?

AS4_PATH RIPE NCC/Duke

Experimental AS_HOPLIMIT

All of these are new or unrecognised attributes! But...

Page 6: Reinforcing the Kitchen Sink - Aligning BGP-4 Error Handling with Modern Network Requirements

IPv4 Unicast MPLS L3VPN (VPNv[46])

IPv6 Unicast

A familiar story?

AS4_PATH RIPE NCC/Duke

Experimental AS_HOPLIMIT

All of these are new or unrecognised attributes! But...

Page 7: Reinforcing the Kitchen Sink - Aligning BGP-4 Error Handling with Modern Network Requirements

IPv4 Unicast MPLS L3VPN (VPNv[46])

IPv6 Unicast MPLS PWE3

(L2VPN)

A familiar story?

AS4_PATH RIPE NCC/Duke

Experimental AS_HOPLIMIT

All of these are new or unrecognised attributes! But...

Page 8: Reinforcing the Kitchen Sink - Aligning BGP-4 Error Handling with Modern Network Requirements

IPv4 Unicast MPLS L3VPN (VPNv[46])

IPv6 Unicast MPLS PWE3

(L2VPN) VPLS PE

Membership

A familiar story?

AS4_PATH RIPE NCC/Duke

Experimental AS_HOPLIMIT

All of these are new or unrecognised attributes! But...

Page 9: Reinforcing the Kitchen Sink - Aligning BGP-4 Error Handling with Modern Network Requirements

IPv4 Unicast MPLS L3VPN (VPNv[46])

IPv6 Unicast MPLS PWE3

(L2VPN) VPLS PE

Membership M-VPN MDT Membership

A familiar story?

AS4_PATH RIPE NCC/Duke

Experimental AS_HOPLIMIT

All of these are new or unrecognised attributes! But...

Page 10: Reinforcing the Kitchen Sink - Aligning BGP-4 Error Handling with Modern Network Requirements

IPv4 Unicast MPLS L3VPN (VPNv[46])

IPv6 Unicast MPLS PWE3

(L2VPN) VPLS PE

Membership M-VPN MDT Membership

Link TE for Alto

A familiar story?

AS4_PATH RIPE NCC/Duke

Experimental AS_HOPLIMIT

All of these are new or unrecognised attributes! But...

Page 11: Reinforcing the Kitchen Sink - Aligning BGP-4 Error Handling with Modern Network Requirements

IPv4 Unicast MPLS L3VPN (VPNv[46])

IPv6 Unicast MPLS PWE3

(L2VPN) VPLS PE

Membership M-VPN MDT Membership

Link TE for Alto The kitchen sink?

A familiar story?

AS4_PATH RIPE NCC/Duke

Experimental AS_HOPLIMIT

All of these are new or unrecognised attributes! But...

Page 12: Reinforcing the Kitchen Sink - Aligning BGP-4 Error Handling with Modern Network Requirements

IPv4 Unicast MPLS L3VPN (VPNv[46])

IPv6 Unicast MPLS PWE3

(L2VPN) VPLS PE

Membership M-VPN MDT Membership

Link TE for Alto The kitchen sink?

A familiar story?

AS4_PATH RIPE NCC/Duke

Experimental AS_HOPLIMIT

All of these are new or unrecognised attributes! But...

BGP is the “generic, scalable signalling mechanism” for IP/MPLS networks.

Page 13: Reinforcing the Kitchen Sink - Aligning BGP-4 Error Handling with Modern Network Requirements

Protecting Networks from BGP Failures (Today)

BGPSPEAKER

A

BGPSPEAKER

B

TCP/BGP SESSION 1 - AFI 1

TCP/BGP SESSION 2- AFI 2

BGPSPEAKER

A

BGPSPEAKER

B

UPDATE

BGPSPEAKER

A

BGPSPEAKER

B

NOTIFICATION

Multi-Session BGP - either kludged (lo4, lo6…), or pre-standard! (Implemented and on-by-default in 12.2(33)SRC+)

Page 14: Reinforcing the Kitchen Sink - Aligning BGP-4 Error Handling with Modern Network Requirements

Problems with Multi-Session… INTERNET

PE

INTERNETPE

INTERNETPE

INTERNETPE

INTERNETPE

INTERNETPE

INTERNETRR

IPv4

IPv6

“Internet” Networks BCP: IPv4 Unicast over IPv4 transport. IPv6 Unicast over IPv6 transport.

(or 6PE over IPv4 transport)

“VPN” Networks BCP: VPNv4 over IPv4 transport.

L3VPN

VPNv4

L3VPNPE

L3VPNRR

L3VPNPE

L3VPNPE

L3VPNPE

L3VPNPE

L3VPNPE

RT 1:1RT 1:2RT 1:3

All routes (or topologies) are affected due to a single error

within their <AFI,SAFI>!

Page 15: Reinforcing the Kitchen Sink - Aligning BGP-4 Error Handling with Modern Network Requirements

What are the requirements for the protocol?

When an invalid UPDATE is received, stop sending NOTIFICATION.

If we lose UPDATE contents, have a way to recover the RIB.

If we must restart a session, don’t cause a forwarding outage.

Have better ways to monitor errors in UPDATE messages.

(Stretched out to 8,500 words in draft-ietf-grow-ops-reqs-for-bgp-error-handling…)

Page 16: Reinforcing the Kitchen Sink - Aligning BGP-4 Error Handling with Modern Network Requirements

Message Processing Complexities.

In stream processing, not all errors are created equal.

MARKER

HEADER: MSG LEN = 128

TOTAL PATH ATTRIBUTES LEN = 2000

MP_REACH_NLRI

COMMUNITY

AS_PATH

If we have length discrepancies – this can mean that we can’t accurately locate path attributes.

“Critical” error – no safe NLRI extraction.

MARKER

HEADER: MSG LEN = 128

TOTAL PATH ATTRIBUTES

MP_REACH_NLRI

COMMUNITY

AS4_PATH: (65535) 1273 5413 29636

Invalid attribute contents – we can parse the message, but something is malformed.

“Semantic” error – we know exactly which NLRI are contained.

Page 17: Reinforcing the Kitchen Sink - Aligning BGP-4 Error Handling with Modern Network Requirements

Handling “Critical” Errors.

UPDATE

FIB

RIB

FIB

RIB

RTR A RTR B

FIB

RIB

FIB

RIB

RTR A RTR BNOTIFICATION

OPENRTR A RTR BERROR GR

OPENERROR GR

FIB

RIB

FIB

RIB

RTR A RTR BOPEN

STALE!

STALE!

Received UPDATE

invalid - cannot extract NLRI.

DATAIP

DATAIP

Re-use existing graceful-restart functionality to maintain forwarding on NOTIFICATION.

Page 18: Reinforcing the Kitchen Sink - Aligning BGP-4 Error Handling with Modern Network Requirements

Handling “Semantic” Errors.

Erroneous advertisement interpreted as withdrawl of the NLRI.

ROUTE REFRESH

RTR A RTR B DST 192.0.2.0/24IP

Null0

RTR A RTR BRE-REQUEST

ROUTES

ONE-TIME ORF

RTC

RTR A RTR B

UPDATEADVERTISE

192.0.2.0/24

Received UPDATE

invalid - but concerns

192.0.2.0/24

RTR A RTR BUPDATE

WITHDRAW 192.0.2.0/24 via RTR A

Page 19: Reinforcing the Kitchen Sink - Aligning BGP-4 Error Handling with Modern Network Requirements

Making errors visible to the NOC…

BGPROUTER

NOTIFICATIONOSS SNMP/SYSLOG

BGP to 192.0.2.1 is down -

NOTIFICATION received (3/4)

NOC

Today, an error with a BGP session is very visible to a NOC!

Without NOTIFICATION, we need a new way to signal an error occurred…

BGPROUTER

BGPROUTER

UPDATEOSS SNMP/

SYSLOGNOC

MUPNLRI:192.0.2.0/24192.168.0.0/16

OPERATIONAL

Local system generated invalid

UPDATE - 192.0.2.0/24 and 192.168.0.0/16 withdrawn by

1.2.3.4

Page 20: Reinforcing the Kitchen Sink - Aligning BGP-4 Error Handling with Modern Network Requirements

So, where next?

Requirements are being pushed in the IETF GROW WG – Please review them!

Numerous drafts in progress in the IDR working group – solutions work.

New error handling mechanisms proposed in JUNOS, IOS, TiMOS…

Feature request these mechanisms with your vendors of choice!

Page 21: Reinforcing the Kitchen Sink - Aligning BGP-4 Error Handling with Modern Network Requirements

Questions?

Thanks (especially to Netnod!)

Page 22: Reinforcing the Kitchen Sink - Aligning BGP-4 Error Handling with Modern Network Requirements

Further interest?

I’m always happy to discuss operational issues, and thoughts on solutions! Rob Shakir <[email protected]>

+44(0)207 100 7532

Relevant IETF Working Groups: Global Routing Operations WG – GROW:

http://tools.ietf.org/wg/grow Inter-domain Routing – IDR: http://tools.ietf.org/wg/idr

Mailing lists at:

http://www.ietf.org/mailman/listinfo/