360 likes | 575 Views
Introduction to Inter-Domain Routing. Refs: (a) Courtesy of Teng Fei/Prof. Lixin Gao, ECE Umass (b) http://www.research.att.com/~griffin/sigcomm2001_bgp_tutorial/abstract.html. The Internet Looks Like?. Subnetting. 16. 2. 14. CLASS “B” e.g. Company. Host-ID. 10. Net ID. 16. 16.
E N D
Introduction to Inter-Domain Routing Refs: (a) Courtesy of Teng Fei/Prof. Lixin Gao, ECE Umass (b)http://www.research.att.com/~griffin/sigcomm2001_bgp_tutorial/abstract.html
Subnetting 16 2 14 CLASS “B” e.g. Company Host-ID 10 Net ID 16 16 2 14 2 14 e.g. Site 0000 1111 Host-ID Host-ID 10 Net ID 10 Net ID Subnet ID (20) Subnet Host ID (12) Subnet ID (20) Subnet Host ID (12) 16 16 2 14 2 14 e.g. Dept Host-ID 10 Net ID 1111011011 Host-ID 10 Net ID 000000 Subnet ID (26) Subnet Host ID (6) Subnet ID (22) Subnet Host ID (10)
142.12/19 Classless Interdomain Routing (CIDR) Addressing • The IP address space is broken into line segments. • Each line segment is described by a prefix. • A prefix is of the form x/y where x indicates the prefix of all addresses in the line segment, and y indicates the length of the segment. • e.g. The prefix 128.9/16 represents the line segment containing addresses in the range: 128.9.0.0 … 128.9.255.255. 128.9.0.0 65/8 128.9/16 0 232-1 216 128.9.16.14
Hierarchical Routing • Why? • Scalability • Administrative Autonomy • Solution • Autonomous Systems (ASs) • identified by unique AS numbers
BGP-Border Gateway Protocol • Inter-domain routing (EGP) • Distance Vector (Path Vector) • Build on the top of TCP (port 179) • Policy based Defined in RFC 1771
How Does BGP Work? • Between Two BGP Routers • BGP peers/neighbors • form one TCP connection • BGP session • BGP Routing information are exchanged • prefix/AS path/etc.
eBGP and iBGP • eBGP • BGP running between two different ASs • iBGP • BGP running within the same AS • An AS has multiple BGP speakers and provides transit service • Distribute routing info among BGP routers • minor but important difference with eBGP
Complete BGP illustration eBGP AS100 AS300 RtA RtD iBGP RtB RtC AS200
Example of iBGP session AS300 AS100 RtD RtA IGP Loopback IF 150.212.1.1 RtB RtC 134.18.50.22 AS200
BGP Messages • Open • Update • Notification • Keepalive TCP connection always established throughout the BGP session
Open Messages • The first message sent after TCP established • Each peer identify itself to each other • Negotiate protocol version/parameters • Security (optional)
Open Message Format Version (1 octet) My Autonomous System (2 octet) Hold Time (2 octet) BGP identifier (4 octet) Optional Parameter Length (1 octet) Optional parameters (variable length)
Update Message • Primary message used in a BGP • advertises(announce) a prefix to BGP neighbors/withdraw a previously advertised message • Encourage multiple prefixes in a single Update
Notification Message • Used when error(s) happen(s) • TCP will be closed immediately after notification is sent • Indicates the remote system why BGP was terminated
Keepalive Message • Confirm the connection is still active • rate depend on the hold timer negotiated by open message and update message frequency • A common header with no other data
BGP Routing Tables Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path * 3.0.0.0 12.123.1.234 0 7018 80 i * 12.123.45.252 0 7018 80 i * 12.123.199.239 0 7018 80 i * 12.123.145.124 0 7018 80 i *> 12.123.1.236 0 7018 80 i * 12.123.133.124 0 7018 80 i * 4.0.0.0 12.123.45.252 0 7018 1 i * 12.123.199.239 0 7018 1 i * 12.123.9.241 0 7018 1 i * 12.123.13.241 0 7018 1 i *> 12.123.5.240 0 7018 1 i * 12.123.142.124 0 7018 1 i
BGP attributes • AS-path attribute • Origin attribute • BGP Nexthop attribute • Weight Attribute • Local preference attribute • Metric attribute • Community attribute
AS-Path Attribute • A list of AS numbers that a route has traversed in order to reach a destination • Whenever a route update pass through a new AS, the AS number is prepended • AS numbers are listed in order • If the AS number is already in the update, the route is dropped.
AS-PATH Attribute Example 170.10.0.0 AS200 AS100 RtD RtA RtC RtA advertise 170.10.0.0 to RtC, AS-PATH: 100 RtB advertise 170.10.0.0 to RtC, AS-PATH: 300, 100 RtC advertise 170.10.0.0 to RtD, AS-PATH: 300, 100 RtB AS300
Origin Attribute • Mandatory attribute • Defines the origin of the path information • three typical values • “i”: IGP, interior to the originating AS • “e”: EGP, learnt via exterior gateway protocol • “?”: incomplete, unknown or via others
Origin Attribute Example ip route 190.10.0.0 255.255.0.0 null 0 RtA RtB 190.10.50.1 150.10.30.1 175.10.40.2 170.10.20.1 AS100 iBGP 170.10.20.2 RtE RtA -> 170.10.0.0: 300 i RtA -> 190.10.50.0: i RtE -> 150.10.0.0: 100 i RtE -> 190.10.0.0: 100 ? AS300 170.10.0.0
Nexthop Attribute • The next hop IP address that is to use to reach destination • For eBGP, always the directly connected neighbor’s interface • For iBGP, the nexthop advertised by eBGP should be carried through into iBGP
Nexthop Attribute Example 150.10. 0.0 RtA RtB 190.10.50.1 150.10.30.1 175.10.40.2 170.10.20.1 iBGP AS100 170.10.20.2 RtC RtC advertise 170.10.0.0 to RtA, Nexthop 170.10.20.2 RtA advertise 170.10.0.0 to RtB, Nexthop 170.10.20.2 AS300 170.10.0.0
How does BGP select a route? • Little information available about other domains • Based on policies rather than optimality • Decisions (local) based on local preference
Weight Attribute • Cisco implementation • Assigned locally to indicate a router to choose best exit path • Does not propagate through router updates • Higher weight is preferred • Default is 0
Weight Attribute Example 175.10.0.0 AS4 190.10.0.0 170.10.0.0 RtA RtB AS100 AS200 175.10.0.0 175.10.0.0 W=200 W=100 RtC RtA will be chosen AS300
Local Preference Attribute • Indicate the AS about which exit is preferred • Exchanged among routers in the same AS through updates • Higher value is preferred • Default value is 100
Local Preference Example 175.10.0.0 AS4 190.10.0.0 170.10.0.0 RtA RtB AS100 AS200 175.10.0.0 Set locPref=200 Set locPref=150 All traffic in AS 300 will be directed to RtD RtC RtD AS300
Metric Attribute • Also called Multi_exit_discriminator • Exchanged between AS, but not carried through • Low value of a metric is more preferred • Default value is 0 • Unless specified, router only compare metrics for paths from the same neighbor AS
Metric Attribute Example Set Metric = 0 AS400 AS100 RtA RtB Set Metric = 200 RtA will pick RtC as the best route Set Metric = 120 RtC RtD AS300
Community Attribute • Optional attribute • Transitive between ASs • A label/string that attach to the prefixes • Aggregate prefixes into groups • So as to apply routing decisions
BGP policies Decide exactly ONE best path BGP router Decision Process Export policy Import policy Receive routes for prefixes from multiple neighbors Filter out unwanted routes, and manipulate the attributes of remaining routes Manipulate attributes of the best route, influence neighbor's choice, or decide whether to advertise the route to neighbors
Decision Process • Highest local preference • Shortest AS path • eBGP over iBGP • Lowest IGP metric • Lowest router id
Problems Of BGP • Convergence issue • Scalability issue
Summary • Inter-domain routing • Route selection is done based on policies rather than optimality • Policies are encoded into local preferences