37
Changed made by MF on 29/10/04 Delete Change Add All slides Obtained Geoff Huston’s review – done on 26/10/2004 Obtained Doc Team’s proof read - done on 26/10/2004 Change notification was sent by MF on 29/10/2004

Changed made by MF on 29/10/04 Delete Change Add –All slides Obtained Geoff Huston’s review – done on 26/10/2004 Obtained Doc Team’s proof read - done

  • View
    217

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Changed made by MF on 29/10/04 Delete Change Add –All slides Obtained Geoff Huston’s review – done on 26/10/2004 Obtained Doc Team’s proof read - done

Changed made by MF on 29/10/04

• Delete

• Change

• Add

– All slides

Obtained Geoff Huston’s review – done on 26/10/2004

Obtained Doc Team’s proof read - done on 26/10/2004

Change notification was sent by MF on 29/10/2004

Page 2: Changed made by MF on 29/10/04 Delete Change Add –All slides Obtained Geoff Huston’s review – done on 26/10/2004 Obtained Doc Team’s proof read - done

How to use the BGP community attribute

Page 3: Changed made by MF on 29/10/04 Delete Change Add –All slides Obtained Geoff Huston’s review – done on 26/10/2004 Obtained Doc Team’s proof read - done

Overview

• Review of routing policy– Routing preference – current common

practices– Impact to routing system load

• Allocations vs advertisements

• Review of community attribute– “no_export” usage

• Case studies

• Conclusion

Page 4: Changed made by MF on 29/10/04 Delete Change Add –All slides Obtained Geoff Huston’s review – done on 26/10/2004 Obtained Doc Team’s proof read - done

Review of routing policy

• Routing preferences can be expressed via routing policy:– How can you direct incoming traffic to your site

in a way that does not overload any single link?– How can you put VoIP traffic in a high capacity,

low delay link and put other traffic on cheaper links?

– Minimise your costs by maximising your use of links with the lowest unit cost?

– Set up primary and backup links with dynamic failover?

Page 5: Changed made by MF on 29/10/04 Delete Change Add –All slides Obtained Geoff Huston’s review – done on 26/10/2004 Obtained Doc Team’s proof read - done

Routing preferences – common practices

• Advertise specifics as well as aggregates

• Use selective advertising of specifics to create preferred primary paths

• Use AS prepending to make relative AS path lengths a primary path selector

• Any impact to routing system load?

Page 6: Changed made by MF on 29/10/04 Delete Change Add –All slides Obtained Geoff Huston’s review – done on 26/10/2004 Obtained Doc Team’s proof read - done

Routing system load

• More specifics and AS path prepending:– are coarse-grained tools– impose a load on the global inter-domain

routing system

• How big is this imposed overhead?

Page 7: Changed made by MF on 29/10/04 Delete Change Add –All slides Obtained Geoff Huston’s review – done on 26/10/2004 Obtained Doc Team’s proof read - done

What is going on?

• Global routing table size is steadily growing– How fast is it growing?– What is the major cause of the growth?– What can we do to suppress the growth?

Suppressing growth of the global routing table is in everyone’s best interest!

Page 8: Changed made by MF on 29/10/04 Delete Change Add –All slides Obtained Geoff Huston’s review – done on 26/10/2004 Obtained Doc Team’s proof read - done

Global routing table growth

Reference: http://bgp.potaroo.net/ last updated 22/10/04

Page 9: Changed made by MF on 29/10/04 Delete Change Add –All slides Obtained Geoff Huston’s review – done on 26/10/2004 Obtained Doc Team’s proof read - done

Allocations vs advertisements

• RIRs made 4506 IPv4 allocations (Jan 2003 – Feb 2004)

– 3641 allocations announced– 865 allocations not yet announced

• 10904 routing advertisements used to span the 3641 allocations– 2938 advertisements precisely match the

RIR allocation– 7966 advertisements are more specific

advertisements of 1206 RIR allocations

Reference: “Allocation vs advertisements” presented by Geoff Huston at APNIC 17http://www.apnic.net/meetings/17/docs/sigs/routing/routing-pres-huston-allocvsannouncement.pdf

Page 10: Changed made by MF on 29/10/04 Delete Change Add –All slides Obtained Geoff Huston’s review – done on 26/10/2004 Obtained Doc Team’s proof read - done

Less specific announcements

Announced

3641

Not announced

865

10904 routingAnnouncements

Advertisements that

matched the RIR

allocations: 2938

More specific advertisements of 1206 RIR allocations :

7966

4506 allocations made by RIRs

Page 11: Changed made by MF on 29/10/04 Delete Change Add –All slides Obtained Geoff Huston’s review – done on 26/10/2004 Obtained Doc Team’s proof read - done

Analysis of statistics

• Advertising more specific /24 address prefixes within an allocated address block – This is the predominant form of advertising a

split allocation block in fragments– Many of these more specific advertisements

appear to be local

• One fifth of allocations are fragmented in this fashion– On average there are 6.6 additional

advertisements of fragments of the address block

Page 12: Changed made by MF on 29/10/04 Delete Change Add –All slides Obtained Geoff Huston’s review – done on 26/10/2004 Obtained Doc Team’s proof read - done

Limits to routing

• The routing system does not have infinite capacity

• Too many routing entries will cause widespread routing failure

• How many is too many?– We don’t know precisely– We will know when we see widespread

routing failure, but by then it will be too late!

Page 13: Changed made by MF on 29/10/04 Delete Change Add –All slides Obtained Geoff Huston’s review – done on 26/10/2004 Obtained Doc Team’s proof read - done

What can we do?

• Look after the routing system– Use aggregate routing announcements

wherever possible– Use explicit signalling to transmit policy

preferences – community attributes– Limit the propagation of more specific routes to

the local domain where they will have their effect – community attributes

• Effective use of the BGP community attribute – will reduce unnecessary announcements of

fragmented prefixes

Page 14: Changed made by MF on 29/10/04 Delete Change Add –All slides Obtained Geoff Huston’s review – done on 26/10/2004 Obtained Doc Team’s proof read - done

Review of community attribute

• A BGP route object (a unit of routing information carried by BGP) is composed of:– IP prefix value and prefix size– An AS-path attribute– Nexthop IP address– Community attribute (optional)

Note: A BGP route object is different to an IRR route object

Page 15: Changed made by MF on 29/10/04 Delete Change Add –All slides Obtained Geoff Huston’s review – done on 26/10/2004 Obtained Doc Team’s proof read - done

Review of community attribute

• Community attribute:– are an optional component of a BGP route

object– are a way for a route advertiser to signal to a

route receiver some additional information about the BGP route object

– may be bilateral or transitive– are intended to:

• alter the way the receiver makes decisions about forwarding

• alters the further propagation of the BGP route object– improve the capability of BGP speaker to

describe the policy intention regarding distribution of routing information

Page 16: Changed made by MF on 29/10/04 Delete Change Add –All slides Obtained Geoff Huston’s review – done on 26/10/2004 Obtained Doc Team’s proof read - done

BGP community attribute

• Optional transitive variable length attribute of a BGP route object

• 32 bit value– Format = asn:n

• asn = 1 – 65,535• n = 1 - 65,536

– Standards-defined valueshttp://www.iana.org/assignments/bgp-well-known-communities

– Commonly agreed values• Agreed value by a community• Amongst ISPsFor example: http://info.us.bb.verio.net/routing.html

Page 17: Changed made by MF on 29/10/04 Delete Change Add –All slides Obtained Geoff Huston’s review – done on 26/10/2004 Obtained Doc Team’s proof read - done

RFC 1997

• Specifies the BGP community attribute• Community

– a means to specify a property of a BGP route object that affects the interpretation or manipulation of the BGP route object

• Communities are attached to a unit of BGP routing information by a BGP speaker

• Communities are received by the BGP listener:– Communities may be left attached– Stripped off such routing information– Translated to another community

RFC1997

Page 18: Changed made by MF on 29/10/04 Delete Change Add –All slides Obtained Geoff Huston’s review – done on 26/10/2004 Obtained Doc Team’s proof read - done

Example of using communities

• A transit AS may allow its customers to selectively determine how a route is readvertised by the transit provider:– A customer can associate community values

with each route object to limit the extent to which the route is readvertised by the transit provider

– The customer controls the transit service

Community Action

0 ReAdvertise to all regions

100 ReAdvertise in Asia

101 ReAdvertise in North America

102 ReAdvertise in Western Europe

103 Readvertise in Eastern Europe

Page 19: Changed made by MF on 29/10/04 Delete Change Add –All slides Obtained Geoff Huston’s review – done on 26/10/2004 Obtained Doc Team’s proof read - done

Some well-known communities

• NO_EXPORT– All routes received carrying a community

attribute containing this value MUST NOT be advertised to EBGP peers

• NO_ADVERTISE – All routes received carrying a community

attribute containing this value MUST NOT be advertised to any BGP peers (internal and external)

Page 20: Changed made by MF on 29/10/04 Delete Change Add –All slides Obtained Geoff Huston’s review – done on 26/10/2004 Obtained Doc Team’s proof read - done

How does “no_export” work?

AS1192.168.1.0/24

Community = no_export

AS2

AS3

A B C

D

AS1 advertises 192.168.1.0/24 to AS2 with community attribute no_export

AS2 will propagate the route within AS2but will not send this route to AS3 or any other external AS

Reference: http://www.cisco.com/univercd/cc/td/doc/cisintwk/ito_doc/bgp.htm

Page 21: Changed made by MF on 29/10/04 Delete Change Add –All slides Obtained Geoff Huston’s review – done on 26/10/2004 Obtained Doc Team’s proof read - done

How does “no_advertise” work?

AS1 AS2

AS3

A B C

D

192.168.1.0/24Community = no_advertise

AS1 advertises 192.168.1.0/24 to AS2 with community attribute no_advertise

Router B in AS2 will not advertise this route to any other router

Reference: http://www.cisco.com/univercd/cc/td/doc/cisintwk/ito_doc/bgp.htm

Page 22: Changed made by MF on 29/10/04 Delete Change Add –All slides Obtained Geoff Huston’s review – done on 26/10/2004 Obtained Doc Team’s proof read - done

Example 1: community attribute “no_export” usage

AS 2 AS 1

ISP

AS 4

Customer of AS1

Customer of AS2

community NO_EXPORT

AS2 only announces aggregated routes to AS1 (no need to announce AS4’s two /24s to EBGP peers)

How can AS2 express such policy in RPSL?

2 of /24 assignments out of AS2’s address block

Page 23: Changed made by MF on 29/10/04 Delete Change Add –All slides Obtained Geoff Huston’s review – done on 26/10/2004 Obtained Doc Team’s proof read - done

aut-num: AS2import: from AS1 accept ANYimport: from AS4 accept AS4 export: to AS1 action community {NOT_EXPORT}; announce ANY AND NOT {0.0.0.0/0} AND NOT fltr-bogonsexport: to AS4 announce ANY AND NOT {0.0.0.0/0} AND NOT fltr-bogons

Example of community attribute usage in IRR

Page 24: Changed made by MF on 29/10/04 Delete Change Add –All slides Obtained Geoff Huston’s review – done on 26/10/2004 Obtained Doc Team’s proof read - done

Cisco command to use community attribute

• To display and parse BGP communities in a format of AA:NN (in global configuration mode)

Router# configure terminalRouter (config)# ip bgp-community new formatRouter (config)# exit

To create community list Ip community-list community-list-number {permit | deny} community-number

Reference: http://www.cisco.com/warp/public/459/bgp-toc.pdf

Page 25: Changed made by MF on 29/10/04 Delete Change Add –All slides Obtained Geoff Huston’s review – done on 26/10/2004 Obtained Doc Team’s proof read - done

How does “no_export” work?

192.168.1.0/24

AS1192.168.1.0/24

Community = no_export

AS2

AS3

A B C

D

192.168.1.0/24Community = no_export

AS1 advertises 192.168.1.0/24 to AS2 with community attribute no_export

AS2 will propagate the route within AS2 but will not send this route to AS3 orany other external AS

3.3.3.3

3.3.3.1

2.2.2.2

Reference: http://www.cisco.com/univercd/cc/td/doc/cisintwk/ito_doc/bgp.htm

Page 26: Changed made by MF on 29/10/04 Delete Change Add –All slides Obtained Geoff Huston’s review – done on 26/10/2004 Obtained Doc Team’s proof read - done

Example of Cisco command to use no_exportroute-map communitymap match ip address 1 set community no-export

• Even if we set the community attribute, this attribute will not be sent to neighbors by default. – In order to send the attribute to our neighbor we have to use the

following:

neighbor {ip-address|peer-group-name} send-community

Example: Router A

router bgp 1 neighbor 3.3.3.1 remote-as 2 neighbor 3.3.3.1 send-community neighbor 3.3.3.1 route-map communitymap out

Reference: http://www.cisco.com/en/US/tech/tk365/tk80/technologies_tech_note09186a00800c95bb.shtml

Page 27: Changed made by MF on 29/10/04 Delete Change Add –All slides Obtained Geoff Huston’s review – done on 26/10/2004 Obtained Doc Team’s proof read - done

Cisco command for no_export

RouterA#

router bgp 1

network 192.168.1.0

neighbor 3.3.3.1 remote-as 2

neighbor 3.3.3.1 send-community

neighbor 3.3.3.1 route-map SET_NO_EXPORT out

!

access-list 1 permit 192.168.1.0 0.255.255.255

route-map SET_NO_EXPORT permit 10

match ip address 1

set community no_export

Reference: http://www.cisco.com/warp/public/459/aggregation.pdf

Page 28: Changed made by MF on 29/10/04 Delete Change Add –All slides Obtained Geoff Huston’s review – done on 26/10/2004 Obtained Doc Team’s proof read - done

Juniper command for no_export

Bgp {local-as 1;

group test {type external;

passive;import bgp-in;peer-as 2;neighbor 3.3.3.1;}

}policy-options {

policy-statement bgp-in {term 10 {

from {protocol bgp;community example;

}then accept;

}term 20 {

then reject;}

community example members [ no-export] ;

Page 29: Changed made by MF on 29/10/04 Delete Change Add –All slides Obtained Geoff Huston’s review – done on 26/10/2004 Obtained Doc Team’s proof read - done

RFC 1998

• An application of BGP community attribute in multi-homing routing

• The first public documentation of the BGP community attribute in the ISP community– It shows how the community based

configuration can be used to replace the AS-based customization of the BGP "LOCAL_PREF" attribute

– it also represents a paradigm shift:• the potential for the customer to control its own routing

policy with respect to its service provider

RFC1998

Page 30: Changed made by MF on 29/10/04 Delete Change Add –All slides Obtained Geoff Huston’s review – done on 26/10/2004 Obtained Doc Team’s proof read - done

What do you need to do?

• ISP– Publishes multiple values of user-

settable communities– Filters incoming route announcements to

match them– Modifies route parameters accordingly

• Customer– Marks their announcements with wanted

communities

Page 31: Changed made by MF on 29/10/04 Delete Change Add –All slides Obtained Geoff Huston’s review – done on 26/10/2004 Obtained Doc Team’s proof read - done

Example of community value

1:20 Multihomed customers, preferred route (reduce local pref by 10)

1:30 Multihomed customers, backup route(increase local pref by 10)

1:40 Only local traffic, community set to “no-export”

1:50 Pre-pend 2 times to peers

Page 32: Changed made by MF on 29/10/04 Delete Change Add –All slides Obtained Geoff Huston’s review – done on 26/10/2004 Obtained Doc Team’s proof read - done

Example 2: community attribute usage in multi-homing case

AS 2 AS 1

ISP

AS 4

Customer of AS1

Customer of AS2

community 1:20

AS 3

If AS4 tag routes withcommunity 1:20 AS1 will reduce the BGP “LOCAL_PREF” by 10How can AS1 express such policy in RPSL?

2 of /24 assignments out of AS2’s address block

Page 33: Changed made by MF on 29/10/04 Delete Change Add –All slides Obtained Geoff Huston’s review – done on 26/10/2004 Obtained Doc Team’s proof read - done

Import policy of AS1

aut-num: AS1

import: from AS2 action pref=10; accept (AS2 or AS4) AND <^AS2+AS4*$> AND community (1:20)

import: from AS2 action pref=0; accept (AS2 or AS4) AND <^AS2+AS4*$>

import: from AS3 action pref=10; accept (AS3 or AS4) AND <^AS3+AS4*$> AND community(1:20)

import: from AS3 action pref=0; accept (AS3 or AS4) AND <^AS3+AS4*$>

Page 34: Changed made by MF on 29/10/04 Delete Change Add –All slides Obtained Geoff Huston’s review – done on 26/10/2004 Obtained Doc Team’s proof read - done

Common use of communities

• Customer control of readvertisement– Regional-based transit– Peering control

• Customer control of preferences– Primary / Backup preference for routes

• Supplier information to customer– Where the route object was learned– Relationship to supplier (peer, customer,

upstream)– Desired preference (primary / backup)

Page 35: Changed made by MF on 29/10/04 Delete Change Add –All slides Obtained Geoff Huston’s review – done on 26/10/2004 Obtained Doc Team’s proof read - done

Further reading

• Cisco Internet Protocol Journal– http://www.cisco.com/warp/public/759/ipj

_6-2/ipj_6-2_bgp_communities.html

• Using BGP Community Values to Control Routing Policy in Upstream Provider Network – http://www.cisco.com/en/US/tech/tk365/t

k80/technologies_configuration_example09186a00801475b2.shtml

Page 36: Changed made by MF on 29/10/04 Delete Change Add –All slides Obtained Geoff Huston’s review – done on 26/10/2004 Obtained Doc Team’s proof read - done

Conclusion

• Review your routes announcements– Are you announcing fragmented, more specific

prefixes unnecessarily?• If so, consider use of no_export

– Refer your router vendor’s manual to learn how to use the community attribute

• Your efforts will help to slow down the growth of the global routing table

• And you will have better control of your external relationships with your IP suppliers and customers– it will benefit your business positively

Page 37: Changed made by MF on 29/10/04 Delete Change Add –All slides Obtained Geoff Huston’s review – done on 26/10/2004 Obtained Doc Team’s proof read - done

Questions ?