BGP Deployment & Scalability

Slides:



Advertisements
Similar presentations
© 2009 Cisco Systems, Inc. All rights reserved. Cisco Public Presentation_ID 1 BGP Diverse Paths draft-ietf-grow-diverse-bgp-paths-dist-02 Keyur Patel.
Advertisements

Technical Aspects of Peering Session 4. Overview Peering checklist/requirements Peering step by step Peering arrangements and options Exercises.
BGP Scaling Techniques Scalable Infrastructure Workshop AfNOG 2010.
BGP Scaling Techniques 1. Original BGP specification and implementation was fine for the Internet of the early 1990s – But didn’t scale Issues as the.
1 © 2001, Cisco Systems, Inc. All rights reserved. ISP Workshops BGP Deployment & Scalability Mike Pennington Network Consulting Engineer Cisco Systems,
1 Copyright  1999, Cisco Systems, Inc. Module10.ppt10/7/1999 8:27 AM BGP — Border Gateway Protocol Routing Protocol used between AS’s Currently Version.
Border Gateway Protocol Ankit Agarwal Dashang Trivedi Kirti Tiwari.
© J. Liebeherr, All rights reserved 1 Border Gateway Protocol This lecture is largely based on a BGP tutorial by T. Griffin from AT&T Research.
Border Gateway Protocol Autonomous Systems and Interdomain Routing (Exterior Gateway Protocol EGP)
Fundamentals of Computer Networks ECE 478/578 Lecture #18: Policy-Based Routing Instructor: Loukas Lazos Dept of Electrical and Computer Engineering University.
1 Interdomain Routing Protocols. 2 Autonomous Systems An autonomous system (AS) is a region of the Internet that is administered by a single entity and.
Best Practices for ISPs
BGP Scaling Techniques Philip Smith E2 Workshop, AfNOG 2006.
1 Network Architecture and Design Routing: Exterior Gateway Protocols and Autonomous Systems Border Gateway Protocol (BGP) Reference D. E. Comer, Internetworking.
S ufficient C onditions to G uarantee P ath V isibility Akeel ur Rehman Faridee
CS Summer 2003 Lecture 4. CS Summer 2003 Route Aggregation The process of representing a group of prefixes with a single prefix is known as.
The Border Gateway Protocol (BGP) Sharad Jaiswal.
Computer Networking Lecture 10: Inter-Domain Routing
More on BGP Check out the links on politics: ICANN and net neutrality To read for next time Path selection big example Scaling of BGP.
Ion Stoica October 2, 2002 (* this presentation is based on Lakshmi Subramanian’s slides) EE 122: Inter-domain routing – Border Gateway Protocol (BGP)
Routing and Routing Protocols
© 2009 Cisco Systems, Inc. All rights reserved.ROUTE v1.0—6-1 Connecting an Enterprise Network to an ISP Network Configuring and Verifying Basic BGP Operations.
© 2009 Cisco Systems, Inc. All rights reserved. ROUTE v1.0—6-1 Connecting an Enterprise Network to an ISP Network Considering the Advantages of Using BGP.
Lecture Week 3 Introduction to Dynamic Routing Protocol Routing Protocols and Concepts.
Border Gateway Protocol(BGP) L.Subramanian 23 rd October, 2001.
BGP Attributes and Path Selections
Introduction to BGP 1. Border Gateway Protocol A Routing Protocol used to exchange routing information between different networks – Exterior gateway protocol.
1 © 2000, Cisco Systems, Inc. Session # Presentation_ID Border Gateway Protocol.
TCOM 515 Lecture 6.
© 2009 Cisco Systems, Inc. All rights reserved. ROUTE v1.0—6-1 Connecting an Enterprise Network to an ISP Network BGP Attributes and Path Selection Process.
1 Interdomain Routing (BGP) By Behzad Akbari Fall 2008 These slides are based on the slides of Ion Stoica (UCB) and Shivkumar (RPI)
CS 3700 Networks and Distributed Systems Inter Domain Routing (It’s all about the Money) Revised 8/20/15.
Scaling iBGP. BGP iBGP –Internal BGP –BGP peering between routers in same AS –Goal: get routes from a border router to another border router without losing.
Chapter 9. Implementing Scalability Features in Your Internetwork.
© 2001, Cisco Systems, Inc. A_BGP_Confed BGP Confederations.
BGP4 - Border Gateway Protocol. Autonomous Systems Routers under a single administrative control are grouped into autonomous systems Identified by a 16.
Border Gateway Protocol (BGP) W.lilakiatsakun. BGP Basics (1) BGP is the protocol which is used to make core routing decisions on the Internet It involves.
More on Internet Routing A large portion of this lecture material comes from BGP tutorial given by Philip Smith from Cisco (ftp://ftp- eng.cisco.com/pfs/seminars/APRICOT2004.
T. S. Eugene Ngeugeneng at cs.rice.edu Rice University1 COMP/ELEC 429/556 Introduction to Computer Networks Inter-domain routing Some slides used with.
CCNA 2 Week 6 Routing Protocols. Copyright © 2005 University of Bolton Topics Static Routing Dynamic Routing Routing Protocols Overview.
1 7-Jan-16 S Ward Abingdon and Witney College Dynamic Routing CCNA Exploration Semester 2 Chapter 3.
© 2005 Cisco Systems, Inc. All rights reserved. BGP v3.2—6-1 Scaling Service Provider Networks Scaling IGP and BGP in Service Provider Networks.
Route Selection Using Policy Controls
© 2005 Cisco Systems, Inc. All rights reserved. BGP v3.2—5-1 Customer-to-Provider Connectivity with BGP Connecting a Multihomed Customer to a Single Service.
Text BGP Basics. Document Name CONFIDENTIAL Border Gateway Protocol (BGP) Introduction to BGP BGP Neighbor Establishment Process BGP Message Types BGP.
Routing and Routing Protocols CCNA 2 v3 – Module 6.
1 QOS ©2000, Cisco Systems, Inc. BGP MED Churn Daniel Walton
Working at a Small-to-Medium Business or ISP – Chapter 6
CS 3700 Networks and Distributed Systems
Connecting an Enterprise Network to an ISP Network
Boarder Gateway Protocol (BGP)
Border Gateway Protocol
BGP 1. BGP Overview 2. Multihoming 3. Configuring BGP.
CS 3700 Networks and Distributed Systems
Border Gateway Protocol
Dynamic routing Routing Algorithm (Dijkstra / Bellman-Ford) – idealization All routers are identical Network is flat. Not true in Practice Hierarchical.
Explaining BGP Concepts and Terminology
BGP supplement Abhigyan Sharma.
Lixin Gao ECE Dept. UMASS, Amherst
Module Summary BGP is a path-vector routing protocol that allows routing policy decisions at the AS level to be enforced. BGP is a policy-based routing.
Cours BGP-MPLS-IPV6-QOS
Dynamic Routing and OSPF
COS 561: Advanced Computer Networks
COS 561: Advanced Computer Networks
Working at a Small-to-Medium Business or ISP – Chapter 6
COMP/ELEC 429/556 Introduction to Computer Networks
BGP Interactions Jennifer Rexford
BGP Instability Jennifer Rexford
Computer Networks Protocols
BGP Route Reflectors and Confederation
Presentation transcript:

BGP Deployment & Scalability Mike Pennington Network Consulting Engineer Cisco Systems, Denver

Basic BGP Review

Border Gateway Protocol Routing Protocol used to exchange routing information between networks exterior gateway protocol RFC1771 work in progress to update draft-ietf-idr-bgp4-17.txt Currently Version 4 Runs over TCP

BGP Path Vector Protocol Incremental Updates Many options for policy enforcement Classless Inter Domain Routing (CIDR) Widely used for Internet backbone Autonomous systems

Path Vector Protocol BGP is classified as a path vector routing protocol (see RFC 1322) A path vector protocol defines a route as a pairing between a destination and the attributes of the path to that destination. 12.6.126.0/24 207.126.96.43 1021 0 6461 7018 6337 11268 i AS Path

AS-Path Sequence of ASes a route has traversed Loop detection Apply policy AS 200 AS 100 170.10.0.0/16 180.10.0.0/16 180.10.0.0/16 300 200 100 170.10.0.0/16 300 200 AS 300 AS 400 150.10.0.0/16 180.10.0.0/16 300 200 100 170.10.0.0/16 300 200 150.10.0.0/16 300 400 AS 500

AS-Path loop detection 170.10.0.0/16 180.10.0.0/16 140.10.0.0/16 500 300 170.10.0.0/16 500 300 200 AS 300 140.10.0.0/16 180.10.0.0/16 is not announced to AS100 as AS500 sees that it is originated from AS100, and that AS100 is the neighbouring AS – loop detection in action AS 500 180.10.0.0/16 300 200 100 170.10.0.0/16 300 200 140.10.0.0/16 300

Autonomous System (AS) Collection of networks with same routing policy Single routing protocol Usually under single ownership, trust and administrative control

BGP Basics AS 100 AS 101 AS 102 BGP speakers are called peers Peering

BGP General Operation Learns multiple paths via internal and external BGP speakers Picks the best path and installs in the forwarding table Policies applied by influencing the best path selection

External BGP Peering (eBGP) AS 100 AS 101 C B Between BGP speakers in different AS Should be directly connected Do not run an IGP between eBGP peers

Internal BGP Peering (iBGP) AS 100 D A B E Topology independent Each iBGP speaker must peer with every other iBGP speaker in the AS

Internal BGP (iBGP) BGP peer within the same AS Not required to be directly connected iBGP speakers need to be fully meshed they originate connected networks they do not pass on prefixes learned from other iBGP speakers

BGP Attributes

What Is an Attribute? Describes the characteristics of prefix Next Hop AS Path ... ... ... MED Describes the characteristics of prefix Transitive or non-transitive Some are mandatory

AS-Path Sequence of ASes a route has traversed Loop detection Apply policy AS 200 AS 100 170.10.0.0/16 180.10.0.0/16 180.10.0.0/16 300 200 100 170.10.0.0/16 300 200 AS 300 AS 400 150.10.0.0/16 180.10.0.0/16 300 200 100 170.10.0.0/16 300 200 150.10.0.0/16 300 400 AS 500

Next Hop Next hop to reach a network 150.10.1.1 150.10.1.2 AS 200 A B AS 300 150.10.0.0/16 150.10.0.0/16 150.10.1.1 160.10.0.0/16 150.10.1.1 Next hop to reach a network Usually a local network is the next hop in eBGP session AS 100 160.10.0.0/16 20

Next Hop (continued) IGP should carry route to next hops Recursive route look-up Unlinks BGP from actual physical topology Allows IGP to make intelligent forwarding decision

Local Preference AS 100 AS 200 AS 300 AS 400 160.10.0.0/16 D E A B C 500 800 E A B AS 400 160.10.0.0/16 500 > 160.10.0.0/16 800 C

Local Preference Local to an AS – non-transitive local preference set to 100 when heard from neighbouring AS Used to influence BGP path selection determines best path for outbound traffic Path with highest local preference wins

Multi-Exit Discriminator (MED) AS 200 C 192.68.1.0/24 2000 192.68.1.0/24 1000 A B 192.68.1.0/24 AS 201

Multi-Exit Discriminator Inter-AS – non-transitive metric reset to 0 on announcement to next AS Used to convey the relative preference of entry points determines best path for inbound traffic Comparable if paths are from same AS IGP metric can be conveyed as MED

MED & IGP Metric set metric-type internal enable BGP to advertise a MED which corresponds to the IGP metric values changes are monitored (and re-advertised if needed) every 600s bgp dynamic-med-interval <secs>

Community BGP attribute Used to group destinations Represented as two 16bit integers Each destination could be member of multiple communities Community attribute carried across AS’s Useful in applying policies

Community ISP 2 AS 400 ISP 1 AS 300 AS 100 AS 200 X E D C A B 200.10.0.0/16 160.10.0.0/16 300:1 170.10.0.0/16 300:1 E AS 400 200.10.0.0/16 300:9 D ISP 1 AS 300 C 160.10.0.0/16 300:1 170.10.0.0/16 300:1 A B AS 100 AS 200 160.10.0.0/16 170.10.0.0/16

BGP Deployment Guidelines

Recommended BGP commands for everyone ip bgp-community new-format no auto-summary no synchronization bgp deterministic-med Whatever you do, use of deterministic-med MUST be consistent in your Autonomous System.

Other serious considerations For public peering: filter EBGP routes inbound and outbound Block your own address space inbound Block RFC 1918 space (inbound and outbound) Block DSUA space (inbound and outbound): http://www.ietf.org/internet-drafts/draft-manning-dsua-08.txt Use prefix-lists for route-filtering when possible (easier to read than ACLs)

Other serious considerations If you carry a default in the IGP, your BGP next-hops ALWAYS resolve (generally not good) bgp bestpath compare-routerid Restores RFC-compliant path selection; OFF by default to reduce update churn, use with discretion If you have a large BGP network, consider techniques in the next section

BGP Scaling Techniques

BGP Scaling Techniques How to scale iBGP mesh beyond a few peers? How to implement new policy without causing flaps and route churning? How to reduce the overhead on the routers?

BGP Scaling Techniques Dynamic reconfiguration Peer groups Route flap damping Route reflectors

Soft Reconfiguration Problem: Hard BGP peer clear required after every policy change because the router does not store prefixes that are denied by a filter Hard BGP peer clearing consumes CPU and affects connectivity for all networks Solution: Soft-reconfiguration

Soft Reconfiguration discarded peer normal BGP in process accepted table received and used BGP table received peer BGP out process

Soft Reconfiguration New policy is activated without tearing down and restarting the peering session Per-neighbour basis Use more memory to keep prefixes whose attributes have been changed or have not been accepted

Configuring Soft reconfiguration router bgp 100 neighbor 1.1.1.1 remote-as 101 neighbor 1.1.1.1 route-map infilter in neighbor 1.1.1.1 soft-reconfiguration inbound ! Outbound does not need to be configured ! Then when we change the policy, we issue an exec command clear ip bgp 1.1.1.1 soft [in | out]

Managing Policy Changes clear ip bgp <addr> [soft] [in|out] <addr> may be any of the following x.x.x.x IP address of a peer * all peers ASN all peers in an AS external all external peers peer-group <name> all peers in a peer-group

Route Refresh Capability Facilitates non-disruptive policy changes No configuration is needed No additional memory is used Requires peering routers to support “route refresh capability” – RFC2918 clear ip bgp x.x.x.x in tells peer to resend full BGP announcement

Soft Reconfiguration vs Route Refresh Use Route Refresh capability if supported find out from “show ip bgp neighbor” uses much less memory Otherwise use Soft Reconfiguration

Peer Groups Without peer groups iBGP neighbours receive same update Large iBGP mesh slow to build Router CPU wasted on repeat calculations Solution – peer groups! Group peers with same outbound policy Updates are generated once per group

Peer Groups - Advantages Makes configuration easier Makes configuration less prone to error Makes configuration more readable Lower router CPU load iBGP mesh builds more quickly Members can have different inbound policy Can be used for eBGP neighbours too!

Configuring Peer Group router bgp 100 neighbor ibgp-peer peer-group neighbor ibgp-peer remote-as 100 neighbor ibgp-peer update-source loopback 0 neighbor ibgp-peer send-community neighbor ibgp-peer route-map outfilter out neighbor 1.1.1.1 peer-group ibgp-peer neighbor 2.2.2.2 peer-group ibgp-peer neighbor 2.2.2.2 route-map infilter in neighbor 3.3.3.3 peer-group ibgp-peer ! note how 2.2.2.2 has different inbound filter from peer-group !

Route Flap Damping Route flap Going up and down of path or change in attribute BGP WITHDRAW followed by UPDATE = 1 flap eBGP neighbour going down/up is NOT a flap Ripples through the entire Internet Wastes CPU Damping aims to reduce scope of route flap propagation

Route Flap Damping (Continued) Requirements Fast convergence for normal route changes History predicts future behaviour Suppress oscillating routes Advertise stable routes Implementation described in RFC2439

Operation Add penalty (1000) for each flap Exponentially decay penalty Change in attribute gets penalty of 500 Exponentially decay penalty half life determines decay rate Penalty above suppress-limit do not advertise route to BGP peers Penalty decayed below reuse-limit re-advertise route to BGP peers penalty reset to zero when it is half of reuse-limit

Operation Penalty Time 4000 Suppress limit 3000 2000 Reuse limit 1000 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 1000 2000 3000 4000 Time Penalty Suppress limit Network Announced Re-announced Not Announced

Operation Only applied to inbound announcements from eBGP peers Alternate paths still usable Controlled by: Half-life (default 15 minutes) reuse-limit (default 750) suppress-limit (default 2000) maximum suppress time (default 60 minutes)

Configuration Fixed damping Selective and variable damping router bgp 100 bgp dampening [<half-life> <reuse-value> <suppress-penalty> <maximum suppress time>] Selective and variable damping bgp dampening [route-map <name>] route-map <name> permit 10 match ip address prefix-list FLAP-LIST set dampening [<half-life> <reuse-value> <suppress-penalty> <maximum suppress time>] ip prefix-list FLAP-LIST permit 192.0.2.0/24 le 32

Operation Care required when setting parameters Penalty must be less than reuse-limit at the maximum suppress time Maximum suppress time and half life must allow penalty to be larger than suppress limit

Configuration Examples -  Examples -  bgp dampening 30 750 3000 60 reuse-limit of 750 means maximum possible penalty is 3000 – no prefixes suppressed as penalty cannot exceed suppress-limit Examples -  bgp dampening 30 2000 3000 60 reuse-limit of 2000 means maximum possible penalty is 8000 – suppress limit is easily reached

Configuration Examples -  Examples -  bgp dampening 15 500 2500 30 reuse-limit of 500 means maximum possible penalty is 2000 – no prefixes suppressed as penalty cannot exceed suppress-limit Examples -  bgp dampening 15 750 3000 45 reuse-limit of 750 means maximum possible penalty is 6000 – suppress limit is easily reached

Maths! Maximum value of penalty is Always make sure that suppress-limit is LESS than max-penalty otherwise there will be no route damping

Selective damping based on Variable damping Enhancements Selective damping based on AS-path, Community, Prefix Variable damping recommendations for ISPs http://www.ripe.net/docs/ripe-229.html Flap statistics show ip bgp neighbor <x.x.x.x> [dampened-routes | flap-statistics]

Scaling iBGP mesh n=1000  nearly half a million ibgp sessions! 13 Routers  78 iBGP Sessions! Avoid n(n-1)/2 iBGP mesh n=1000  nearly half a million ibgp sessions! Two solutions Route reflector – simpler to deploy and run Confederation – more complex, corner case benefits

Route Reflector: Principle A AS 100 B C

Route Reflector AS 100 Clients Reflectors Reflector receives path from clients and non-clients Selects best path If best path is from client, reflect to other clients and non-clients If best path is from non-client, reflect to clients only Non-meshed clients Described in RFC2796 Clients Reflectors A B C AS 100

Route Reflector Topology Divide the backbone into multiple clusters At least one route reflector and few clients per cluster Route reflectors are fully meshed Clients in a cluster could be fully meshed Single IGP to carry next hop and local routes

Route Reflectors: Loop Avoidance Originator_ID attribute Carries the RID of the originator of the route in the local AS (created by the RR) Cluster_list attribute The local cluster-id is added when the update is sent by the RR Cluster-id is router-id (address of loopback) Do NOT use bgp cluster-id x.x.x.x

Route Reflectors: Redundancy Multiple RRs can be configured in the same cluster – not advised! All RRs in the cluster must have the same cluster-id (otherwise it is a different cluster) A router may be a client of RRs in different clusters Common today in ISP networks to overlay two clusters – redundancy achieved that way  Each client has two RRs = redundancy Now we’re recommending against putting redundant RRs in the same cluster, what is the new strategy? Simple leave the Cluster Ids as assigned by the router, and choose the best RR to provide redundancy for a client, as long as you following the “physical topology” rule.

Route Reflector: Benefits Solves iBGP mesh problem Packet forwarding is not affected Normal BGP speakers co-exist Multiple reflectors for redundancy Easy migration Multiple levels of route reflectors

Configuring a Route Reflector router bgp 100 neighbor 1.1.1.1 remote-as 100 neighbor 1.1.1.1 route-reflector-client neighbor 2.2.2.2 remote-as 100 neighbor 2.2.2.2 route-reflector-client neighbor 3.3.3.3 remote-as 100 neighbor 3.3.3.3 route-reflector-client

62