BGP Report

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 85

Implementing BGP

Explaining BGP Concepts and Terminology


Using BGP to Connect to the Internet

Connecting to two or more ISPs to increase the following:


• Reliability: If one ISP or connection fails, there is still Internet
access.
• Performance: Path selection to common Internet destinations is
better.
Example: Default Routes from All Providers
Default Routes from All Providers and
Partial Table
Example: Full Routes from All Providers
BGP Autonomous Systems

• An AS is a collection of networks under a single technical


administration.
• IGPs operate within an AS.
• BGP is used between autonomous systems.
• Exchange of loop-free routing information is guaranteed.
BGP Path-Vector Routing

• IGPs announce networks and describe the metric to reach


those networks.
• BGP announces paths and the networks that are reachable at
the end of the path. BGP describes the path by using
attributes, which are similar to metrics.
• BGP allows administrators to define policies or rules for how
data will flow through the autonomous systems.
BGP Routing Policies

BGP can support any policy conforming to the hop-


by-hop (AS-by-AS) routing paradigm.
BGP Characteristics

• BGP is most appropriate when at least one of the following conditions exists:
– An AS allows packets to transit through it to reach other autonomous
systems (for example, it is a service provider).
– An AS has multiple connections to other autonomous systems.
– Routing policy and route selection for traffic entering and leaving the AS
must be manipulated.
• BGP is not always appropriate. You do not have to use BGP if you have one of
the following conditions:
– Limited understanding of route filtering and BGP path-
selection process
– A single connection to the Internet or another AS
– Lack of memory or processor power to handle constant
updates on BGP routers
BGP Characteristics (Cont.)

BGP is a path-vector protocol with the following


enhancements over distance vector protocols:
• Reliable updates: runs on top of TCP (port 179)
• Incremental, triggered updates only
• Periodic keepalive messages to verify TCP connectivity
• Rich metrics (called path vectors or attributes)
• Designed to scale to huge internetworks (for example, the
Internet)
BGP Databases

• Neighbor table
– List of BGP neighbors
• BGP table (forwarding database)
– List of all networks learned from each neighbor
– Can contain multiple paths to destination networks
– Contains BGP attributes for each path
• IP routing table
– List of best paths to destination networks
BGP Message Types

BGP defines the following message types:


• Open
– Includes hold time and BGP router ID
• Keepalive
• Update
– Information for one path only
(could be to multiple networks)
– Includes path attributes and networks
• Notification
– When error is detected
– BGP connection closed after message is sent
Implementing BGP

• Explaining EBGP and IBGP


Peers = Neighbors

• A “BGP peer,” also known as a “BGP neighbor,” is a specific


term that is used for BGP speakers that have established a
neighbor relationship.
• Any two routers that have formed a TCP connection to
exchange BGP routing information are called BGP peers or
BGP neighbors.
External BGP

• When BGP is running between neighbors that belong to


different autonomous systems, it is called EBGP.
• EBGP neighbors, by default, need to be directly connected.
Internal BGP

• When BGP is running between neighbors within the same


AS, it is called IBGP.
• The neighbors do not have to be directly connected.
IBGP in a Transit AS (ISP)

• Redistributing BGP into an IGP (OSPF in this example) is not


recommended.
• Instead, run IBGP on all routers.
IBGP in a NonTransit AS

By default, routes learned via IBGP are never propagated to other


IBGP peers, so they need full-mesh IBGP.
Routing Issues If BGP Not on in All Routers
in Transit Path

• Router C will drop the packet to network 10.0.0.0. Router C is not


running IBGP; therefore, it has not learned about the route to
network 10.0.0.0 from router B.
• In this example, router B and router E are not redistributing BGP
into OSPF.
Implementing BGP

• Configuring Basic BGP Operations


BGP Commands
Router(config)#
router bgp autonomous-system
Router(config-router)#

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


remote-as autonomous-system

neighbor {ip-address | peer-group-name} shutdown

neighbor {ip-address | peer-group-name} update-source


interface-type interface-number

neighbor {ip-address | peer-group-name} ebgp-multihop [ttl]


BGP Issues with Source IP Address

• When creating a BGP packet, the neighbor statement defines


the destination IP address and the outbound interface
defines the source IP address.
• When a BGP packet is received for a new BGP session, the
source address of the packet is compared to the list of
neighbor statements:
– If a match is found, a relationship is established.
– If no match is found, the packet is ignored.
• Make sure that the source IP address matches the address
that the other router has in its neighbor statement.
Next-Hop Behavior
• Router A advertises
network 172.16.0.0 to
router B in EBGP, with
a next hop of 10.10.10.3.
• Router B advertises
172.16.0.0 in IBGP to
router C, keeping 10.10.10.3
as the next-hop address.

Router(config-router)#
neighbor {ip-address | peer-group-name} next-hop-self

• In BGP, the next hop does not mean the next router; it means the IP address
to reach the next AS.
• For EBGP, the default next hop is the IP address of the neighbor router that
sent the update.
• For IBGP, the BGP protocol states that the next hop advertised by EBGP
should be carried into IBGP.
Example: next-hop-self Configuration
Using a Peer Group
Router(config-router)#
neighbor peer-group-name peer-group

• This command creates a peer group.

Router(config-router)#
neighbor ip-address peer-group peer-group-name

• This command defines a template with parameters set for a group


of neighbors instead of individually.
• This command is useful when many neighbors have the same
outbound policies.
• Members can have a different inbound policy.
• Updates are generated once per peer group.
• Configuration is simplified.
Example: Using a Peer Group

Router C Without a Peer Group


router bgp 65100
neighbor 192.168.24.1 remote-as 65100
Router C Using a Peer Group
neighbor 192.168.24.1 update-source Loopback 0
neighbor 192.168.24.1 next-hop-self router bgp 65100
neighbor 192.168.24.1 distribute-list 20 out neighbor internal peer-group
neighbor 192.168.25.1 remote-as 65100 neighbor internal remote-as 65100
neighbor 192.168.25.1 update-source Loopback 0 neighbor internal update-source Loopback 0
neighbor 192.168.25.1 next-hop-self neighbor internal next-hop-self
neighbor 192.168.25.1 distribute-list 20 out neighbor internal distribute-list 20 out
neighbor 192.168.26.1 remote-as 65100 neighbor 192.168.24.1 peer-group internal
neighbor 192.168.26.1 update-source Loopback 0 neighbor 192.168.25.1 peer-group internal
neighbor 192.168.26.1 next-hop-self neighbor 192.168.26.1 peer-group internal
neighbor 192.168.26.1 distribute-list 20 out
BGP network Command
Router(config-router)#
network network-number [mask network-mask] [route-map
map-tag]

• This command tells BGP what network to advertise.


• Use the network network-number command to permit BGP to
advertise a network if it is present in the IP routing table.
• The command does not activate the protocol on an interface.
• Without a mask option, the command advertises classful networks. If
a subnet of the classful network exists in a routing table, the classful
address is announced.
• With the mask option, BGP looks for an exact match in the local
routing table before announcing the route.
Example: BGP network Command
Router(config-router)#
network 192.168.1.1 mask 255.255.255.0

• The router looks for exactly 192.168.1.1/24 in the routing table, but
cannot find it, so it will not announce anything.

Router(config-router)#
network 192.168.0.0 mask 255.255.0.0

• The router looks for exactly 192.168.0.0/16 in the routing table.


• If the exact route is not in the table, you can add a static route to
null0 so that the route can be announced.
ip route 198.168.0.0 255.255.0.0 null0
BGP Synchronization
Synchronization rule: Do not use or advertise to an
external neighbor a route learned by IBGP until a
matching route has been learned from an IGP
• Ensures consistency of information throughout the AS
• Safe to have it off only if all routers in the transit path in the AS are
running full-mesh IBGP; off by default in Cisco IOS software release
12.2(8)T and later
Router(config-router)#
no synchronization
• Disables BGP synchronization so that a router will advertise routes in
BGP without learning them in an IGP
Router(config-router)#
synchronization

• Enables BGP synchronization so that a router will not advertise


routes in BGP until it learns them in an IGP
Example: BGP Synchronization

• If synchronization is on, then:


– Routers A, C, and D would not use or advertise the route to
172.16.0.0 until they receive the matching route via an IGP.
– Router E would not hear about 172.16.0.0.
• If synchronization is off (the default), then:
– Routers A, C, and D would use and advertise the route that they
receive via IBGP; router E would hear about 172.16.0.0.
– If router E sends traffic for 172.16.0.0, routers A, C, and D
would route the packets correctly to router B.
Example: BGP Configuration

1. RouterB(config)# router bgp 65000

2. RouterB(config-router)# neighbor 10.1.1.2 remote-as 64520

3. RouterB(config-router)# neighbor 192.168.2.2 remote-as 65000

4. RouterB(config-router)# neighbor 192.168.2.2 update-source Loopback 0

5. RouterB(config-router)# neighbor 192.168.2.2 next-hop-self

6. RouterB(config-router)# network 172.16.10.0 mask 255.255.255.0

7. RouterB(config-router)# network 192.168.1.0

8. RouterB(config-router)# network 192.168.3.0

9. RouterB(config-router)# no synchronization
BGP States

When establishing a BGP session, BGP goes through the following


states:
1. Idle: Router is searching routing table to see whether a route exists to reach the
neighbor.
2. Connect: Router found a route to the neighbor and has completed the three-way
TCP handshake.
3. Open sent: Open message sent, with the parameters for the BGP session.
4. Open confirm: Router received agreement on the parameters for establishing
session.
– Alternatively, router goes into active state if no response to open message
1. Established: Peering is established; routing begins.
BGP Established and Idle States

• Idle: The router in this state cannot find the address of the
neighbor in the routing table. Check for an IGP problem. Is
the neighbor announcing the route?
• Established: The established state is the proper
state for BGP operations. In the output of the show ip bgp
summary command, if the state column has a number, then
the route is in the established state. The number is how
many routes have been learned from this neighbor.
BGP Active State

Active: The router has sent an open packet and is


waiting for a response. The state may cycle between
active and idle. The neighbor may not know how to
get back to this router because of the following
reasons:
• Neighbor does not have a route to the source IP address of
the BGP open packet generated by this router.
• Neighbor is peering with the wrong address.
• Neighbor does not have a neighbor statement for this router.
• AS number is misconfiguration.
BGP Neighbor Authentication
Router(config-router)#

neighbor {ip-address | peer-group-name} password string

• BGP authentication uses MD5.


• Configure a key (password); router generates a message
digest, or hash, of the key and the message.
• Message digest is sent; key is not sent.
• Router generates and checks the MD5 digest of every
segment sent on the TCP connection. Router authenticates
the source of each routing update packet that it receives
Ways to trigger an update
Hard reset
Router#clear ip bgp *
Router#clear ip bgp [neighbor-address]
Soft Reset
Soft Reset Outbound
Router#clear ip bgp {*|neighbor-address} [soft out]
Soft Reset Inbound
Router(config-router)#neighbor [ip-address] soft-
reconfiguration inbound
Router#clear ip bgp {*|neighbor-address} soft in
Route Refresh: Dynamic Inbound Soft Reset
Router#clear ip bgp {*|neighbor-address} [soft in | in]
Route Reflectors

• Provide additional control to allowrouter to


advertise (reflect) iBGP learned routes to other
iBGP peers
• Method to reduce the size of the iBGP mesh
Route Reflectors

• Once the best path is selected:


• From non-client reflect to all clients
• From client → reflect to all non-clients
• AND other clients
• From eBGP peer → reflect to all clients and non-clients
Implementing BGP

• Selecting a BGP Path


BGP Path Attributes

• BGP metrics are called path attributes.


• Characteristics of path attributes include:
– Well-known versus optional
– Mandatory versus discretionary
– Transitive versus nontransitive
– Partial
Well-Known Attributes

• Well-known attributes
– Must be recognized by all compliant BGP implementations
– Are propagated to other neighbors
• Well-known mandatory attributes
– Must be present in all update messages
• Well-known discretionary attributes
– May be present in update messages
Optional Attributes

• Optional attributes
– They are recognized by some implementations (could be private);
but expected not to be recognized by all BGP routers.
– Recognized optional attributes are propagated to other neighbors
based on their meaning.
• Optional transitive attributes
– If not recognized, marked as partial and propagated to other
neighbors
• Optional nontransitive attributes
– Discarded if not recognized
BGP Attributes

• BGP attributes include the following:


• AS path *
• Next-hop *
• Origin *
• Local preference
• MED
• Others

* Well-known mandatory attribute


AS Path Attribute

• A list of autonomous
systems that a route has
traversed:
– For example, on router
B, the path to 192.168.1.0

is the AS sequence
(65500, 64520).
• The AS path attribute is
well-known, mandatory.
Next-Hop Attribute

• The IP address of the next


AS to reach a given
network:
• Router A advertises network
172.16.0.0 to
router B in EBGP, with a
next hop of 10.10.10.3.
• Router B advertises
172.16.0.0 in IBGP to
router C, keeping 10.10.10.3
as the next-hop address.
• The next-hop attribute is
well-known, mandatory.
Origin Attribute

• IGP (i)
– network command
• EGP (e)
– Redistributed from EGP
• Incomplete (?)
– Redistributed from IGP or static
• The origin attribute informs all autonomous systems in
the internetwork how the prefixes were introduced into
BGP.
• The origin attribute is well-known, mandatory.
Local Preference Attribute

• Paths with highest local preference value are preferred:


• Local preference is used to advertise to IBGP neighbors about how to leave their AS.
• The local preference is sent to IBGP neighbors only (that is, within the AS only).
• The local preference attribute is well-known and discretionary.
• Default value is 100.
MED Attribute

• The paths with the lowest MED (also


called the metric) value are the most
desirable:
– MED is used to advertise
to EBGP neighbors
how to exit their
AS to reach networks owned
by this AS.
• The MED attribute is optional and
nontransitive.
Weight Attribute (Cisco Only)

Paths with the highest weight value are preferred


• Weight not sent to any BGP neighbors; local to this
router only
BGP Path Selection

• The BGP forwarding table usually has multiple paths from which to
choose for each network.
• BGP is not designed to perform load balancing:
– Paths are chosen because of policy.
– Paths are not chosen based on bandwidth.
• The BGP selection process eliminates any multiple paths through
attrition until a single best path is left.
• That best path is submitted to the routing table manager process and
evaluated against the methods of other routing protocols for reaching
that network (using administrative distance).
• The route from the source with the lowest administrative distance is
installed in the routing table.
Route Selection Decision Process

• Consider only (synchronized) routes with no AS loops and a valid next


hop, and then:
1. Prefer highest weight (local to router).
2. Prefer highest local preference (global within AS).
3. Prefer route originated by the local router (next hop = 0.0.0.0).
4. Prefer shortest AS path.
5. Prefer lowest origin code (IGP < EGP < incomplete).
6. Prefer lowest MED (exchanged between autonomous systems).
7. Prefer EBGP path over IBGP path.
8. Prefer the path through the closest IGP neighbor.
9. Prefer oldest route for EBGP paths.
10. Prefer the path with the lowest neighbor BGP router ID.
11. Prefer the path with the lowest neighbor IP address.
Implementing BGP

• Using Route Maps to Manipulate Basic


BGP Paths
BGP Is Designed to Implement Policy
Routing

BGP is designed for manipulating routing paths.


Changing BGP Local Preference For All
Routes

Local preference is used in these ways:


• Within an AS between IBGP speakers
• To determine the best path to exit the
AS to reach an outside network
• Set to 100 by default; higher values preferred
Router(config-router)#
bgp default local-preference value
• This command changes the default local preference value.
• All routes advertised to an IBGP neighbor have the local preference
set to the value specified.
Local Preference Case Study

What is the best path for router C to 65003, 65004, and 65005?
Router C BGP Table with Default Settings
RouterC# show ip bgp
BGP table version is 7, local router ID is 3.3.3.3
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
* i172.16.0.0 172.20.50.1 100 0 65005 65004 65003 i
*>i 192.168.28.1 100 0 65002 65003 i
*>i172.24.0.0 172.20.50.1 100 0 65005 i
* i 192.168.28.1 100 0 65002 65003 65004 65005 i
*>i172.30.0.0 172.20.50.1 100 0 65005 65004 i
* i 192.168.28.1 100 0 65002 65003 65004i

• By default, BGP selects the shortest AS path as the best (>) path.
• In AS 65001, the percentage of traffic going to 172.24.0.0 is 30%, 172.30.0.0 is 20%, and 172.16.0.0 is 10%.
• 50% of all traffic will go to the next hop of 172.20.50.1 (AS 65005), and 10% of all traffic will go to the next hop of
192.168.28.1 (AS 65002).
• Make traffic to 172.30.0.0 select the next hop of 192.168.28.1 to achieve load sharing where both external links
get approximately 30% of the load.
Route Map for Router A
Router A configuration
router bgp 65001
neighbor 2.2.2.2 remote-as 65001
neighbor 3.3.3.3 remote-as 65001
neighbor 2.2.2.2 remote-as 65001 update-source loopback0
neighbor 3.3.3.3 remote-as 65001 update-source loopback0
neighbor 192.168.28.1 remote-as 65002
neighbor 192.168.28.1 route-map local_pref in
!
access-list 65 permit 172.30.0.0 0.0.255.255
!
route-map local_pref permit 10
match ip address 65
set local-preference 400
!
route-map local_pref permit 20
Router C BGP Table with Local Preference
Learned
RouterC# show ip bgp
BGP table version is 7, local router ID is 3.3.3.3
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
* i172.16.0.0 172.20.50.1 100 0 65005 65004 65003 i
*>i 192.168.28.1 100 0 65002 65003 i
*>i172.24.0.0 172.20.50.1 100 0 65005 i
* i 192.168.28.1 100 0 65002 65003 65004 65005
i
* i172.30.0.0 172.20.50.1 100 0 65005 65004 i
*>i 192.168.28.1 400 0 65002 65003 65004i
• Best (>) paths for networks 172.16.0.0/16 and 172.24.0.0/16 have not changed.
• Best (>) path for network 172.30.0.0 has changed to a new next hop of 192.168.28.1 because the
next hop of 192.168.28.1 has a higher local preference, 400.
• In AS 65001, the percentage of traffic going to 172.24.0.0 is 30%, 172.30.0.0 is 20%, and 172.16.0.0
is 10%.
• 30% of all traffic will go to the next hop of 172.20.50.1 (AS 65005), and 30% of all traffic will go to
the next hop of 192.168.28.1 (AS 65002).
Changing BGP MED for All Routes
• MED is used when multiple paths exist between two autonomous
systems.
• A lower MED value is preferred.
• The default setting for Cisco is MED = 0.
• The metric is an optional, nontransitive attribute.
• Usually, MED is shared only between two autonomous
systems that have multiple EBGP connections with each other.

Router(config-router)#
default-metric number

• MED is considered the metric of BGP.


• All routes that are advertised to an EBGP neighbor are set to the
value specified using this command.
BGP Using Route Maps and the MED
Route Map for Router A

Router A’s Configuration:


router bgp 65001
neighbor 2.2.2.2 remote-as 65001
neighbor 3.3.3.3 remote-as 65001
neighbor 2.2.2.2 update-source loopback0
neighbor 3.3.3.3 update-source loopback0
neighbor 192.168.28.1 remote-as 65004
neighbor 192.168.28.1 route-map med_65004 out
!
access-list 66 permit 192.168.25.0.0 0.0.0.255
access-list 66 permit 192.168.26.0.0 0.0.0.255
!
route-map med_65004 permit 10
match ip address 66
set metric 100
!
route-map med_65004 permit 100
set metric 200
Route Map for Router B

Router B’s Configuration:


router bgp 65001
neighbor 1.1.1.1 remote-as 65001
neighbor 3.3.3.3 remote-as 65001
neighbor 1.1.1.1 update-source loopback0
neighbor 3.3.3.3 update-source loopback0
neighbor 172.20.50.1 remote-as 65004
neighbor 172.20.50.1 route-map med_65004 out
!
access-list 66 permit 192.168.24.0.0 0.0.0.255
!
route-map med_65004 permit 10
match ip address 66
set metric 100
!
route-map med_65004 permit 100
set metric 200
MED Learned by Router Z
RouterZ# show ip bgp
BGP table version is 7, local router ID is 122.30.1.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*>i192.168.24.0 172.20.50.2 100 100 0 65001 i
* i 192.168.28.2 200 100 0 65001 i
* i192.168.25.0 172.20.50.2 200 100 0 65001 i
*>i 192.168.28.2 100 100 0 65001 i
* i192.168.26.0 172.20.50.2 200 100 0 65001 i
*>i 192.168.28.2 100 100 0 65001 i
• Examine the networks that have been learned from AS 65001 on Router Z in AS 65004.
• For all networks: Weight is equal (0); local preference is equal (100); routes are not originated in this AS;
AS path is equal (65001); origin code is equal (i).
• 192.168.24.0 has a lower metric (MED) through 172.20.50.2 (100) than 192.168.28.2 (200).
• 192.168.25.0 has a lower metric (MED) through 192.168.28.2 (100) than 172.20.50.2 (200).
• 192.168.26.0 has a lower metric (MED) through 192.168.28.2 (100) than 172.20.50.2 (200).
BGP in an Enterprise
Troubleshooting

• Sessions are not established


• No IP reachability
• Incorrect configuration
• Peering addresses
• OPEN parameters
Troubleshooting

• Is the remote-as assigned correctly?


• Verify IP connectivity
• check the routing table
• use ping/trace to verify two way reachability
• inspect for ACLs in the path to the neighbor
• Is the remote router configured for BGP?
Troubleshooting

• Missing routes
• No iBGP full mesh
• Filters: routes are not received/sent
• Determine which filters are appliedto the BGP
session
• show ip bgp neighbors x.x.x.x
Example: show ip bgp Command

RouterA# show ip bgp


BGP table version is 14, local router ID is 172.31.11.1
Status codes: s suppressed, d damped, h history, * valid, > best, i -
internal, r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 10.1.0.0/24 0.0.0.0 0 32768 i
* i 10.1.0.2 0 100 0 i
*> 10.1.1.0/24 0.0.0.0 0 32768 i
*>i10.1.2.0/24 10.1.0.2 0 100 0 i
*> 10.97.97.0/24 172.31.1.3 0 64998 64997 i
* 172.31.11.4 0 64999 64997 i
* i 172.31.11.4 0 100 0 64999 64997 i
*> 10.254.0.0/24 172.31.1.3 0 0 64998 i
* 172.31.11.4 0 64999 64998 i
* i 172.31.1.3 0 100 0 64998 i
r> 172.31.1.0/24 172.31.1.3 0 0 64998 i
r 172.31.11.4 0 64999 64998 i
r i 172.31.1.3 0 100 0 64998 i
*> 172.31.2.0/24 172.31.1.3 0 0 64998 i
<output omitted>

Displays networks from lowest to highest


Summary

• The BGP local preference attribute can be changed to manipulate the best-path decision
process, either for all routes or for selected routes using route maps.
– Higher local preference values are preferred.
– Local preference is used only between IBGP speakers within the same AS.
• The MED values can be changed to manipulate packets
returning to an AS, either for all routes or for selected routes, using route maps.
– Lower MED values are preferred.
– The MED is sent to EBGP neighbors; those routers propagate the MED within their AS.
The routers within the AS use the MED but do not pass it on to the next AS.
• Routers in a typical enterprise BGP implementation multihome to two ISPs and pass default
routes to other routers within the enterprise.
Module Summary

• BGP is a path-vector routing protocol that allows routing


policy decisions at the AS level to be enforced.
• BGP forms EBGP relationships with external neighbors and
IBGP with internal neighbors. All routers in the transit path
within an AS must run fully meshed IBGP.
• When BGP is properly configured, it will establish a neighbor
relationship, set the next-hop address, set the source IP
address of a BGP update, and announce the networks to
other BGP routers.
• BGP performs a multistep process when selecting the best
path to reach a destination.
• BGP can manipulate path selection to affect the inbound and
outbound traffic policies of an AS. Route maps can be
configured to manipulate the local preference and MED BGP
attributes.
Summary

• If your network is multihomed—has more than one


connection to the Internet—then using BGP to connect to
your ISPs may be appropriate.
• Multihoming options include having each ISP pass these:
– Only a default route
– A default route and provider-owned specific routes
– All routes
• BGP is the external routing protocol used between
autonomous systems. Forwarding is based on policy and not
on best path.
Summary (Cont.)

• BGP routers exchange network reachability information


called path vectors, made up of path attributes. The path-
vector information includes a list of the full path of BGP AS
numbers necessary to reach a destination network.
• A router running BGP keeps its own tables to store BGP
information that it receives from and sends to other routers,
including a neighbor table, a BGP table (also called a
forwarding database or topology database), and an IP
routing table.
• There are four BGP message types: open, keepalive, update,
and notification.
Summary

• The key terms to describe relationships between routers running


BGP are as follows:
– BGP speaker, or BGP router
– BGP peer, or neighbor
– IBGP and EBGP
• EBGP neighbors are directly connected routers in different
autonomous systems.
• IBGP neighbors are routers in the same AS that are reachable by
static routes or a dynamic internal routing protocol.
• All routers in the transit path within an AS should run
fully meshed IBGP.
Example: show ip bgp neighbors Command
RouterA#sh ip bgp neighbors
BGP neighbor is 172.31.1.3, remote AS 64998, external link
BGP version 4, remote router ID 172.31.2.3
BGP state = Established, up for 00:19:10
Last read 00:00:10, last write 00:00:10, hold time is 180, keepalive
interval is 60 seconds
Neighbor capabilities:
Route refresh: advertised and received(old & new)
Address family IPv4 Unicast: advertised and received
Message statistics:
InQ depth is 0
OutQ depth is 0
Sent Rcvd
Opens: 7 7
Notifications: 0 0
Updates: 13 38
<output omitted>
Example: BGP Active State
Troubleshooting

AS number misconfiguration:
– At the router with the wrong remote AS number:
%BGP-3-NOTIFICATION: sent to neighbor 172.31.1.3
2/2 (peer in wrong AS) 2 bytes FDE6
FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF 002D 0104
FDE6 00B4 AC1F 0203 1002 0601 0400 0100 0102 0280
0002 0202 00
– At the remote router:
%BGP-3-NOTIFICATION: received from neighbor
172.31.1.1 2/2 (peer in wrong AS) 2 bytes FDE6
Example: BGP Peering

RouterA# show ip bgp summary


BGP router identifier 10.1.1.1, local AS number 65001
BGP table version is 124, main routing table version 124
9 network entries using 1053 bytes of memory
22 path entries using 1144 bytes of memory
12/5 BGP path/bestpath attribute entries using 1488 bytes of memory
6 BGP AS-PATH entries using 144 bytes of memory
0 BGP route-map cache entries using 0 bytes of memory
0 BGP filter-list cache entries using 0 bytes of memory
BGP using 3829 total bytes of memory
BGP activity 58/49 prefixes, 72/50 paths, scan interval 60 secs

Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd

10.1.0.2 4 65001 11 11 124 0 0 00:02:28 8


172.31.1.3 4 64998 21 18 124 0 0 00:01:13 6
172.31.11.4 4 64999 11 10 124 0 0 00:01:11 6
Example: BGP Neighbor Authentication
Example: show ip bgp rib-failure Command

RouterA# show ip bgp rib-failure


Network Next Hop RIB-failure RIB-NH Matches
172.31.1.0/24 172.31.1.3 Higher admin distance n/a
172.31.11.0/24 172.31.11.4 Higher admin distance n/a

• Displays networks that are not installed in the RIB and the reason that
they were not installed
debug ip bgp updates Command
RouterA#debug ip bgp updates
Mobile router debugging is on for address family: IPv4 Unicast
RouterA#clear ip bgp 10.1.0.2
<output omitted>
*Feb 24 11:06:41.309: %BGP-5-ADJCHANGE: neighbor 10.1.0.2 Up
*Feb 24 11:06:41.309: BGP(0): 10.1.0.2 send UPDATE (format)
10.1.1.0/24, next 10.1.0.1, metric 0, path Local
*Feb 24 11:06:41.309: BGP(0): 10.1.0.2 send UPDATE (prepend, chgflags:
0x0) 10.1.0.0/24, next 10.1.0.1, metric 0, path Local
*Feb 24 11:06:41.309: BGP(0): 10.1.0.2 NEXT_HOP part 1 net
10.97.97.0/24, next 172.31.11.4
*Feb 24 11:06:41.309: BGP(0): 10.1.0.2 send UPDATE (format)
10.97.97.0/24, next 172.31.11.4, metric 0, path 64999 64997
*Feb 24 11:06:41.309: BGP(0): 10.1.0.2 NEXT_HOP part 1 net
172.31.22.0/24, next 172.31.11.4
*Feb 24 11:06:41.309: BGP(0): 10.1.0.2 send UPDATE (format)
172.31.22.0/24, next 172.31.11.4, metric 0, path 64999
<output omitted>
*Feb 24 11:06:41.349: BGP(0): 10.1.0.2 rcvd UPDATE w/ attr: nexthop
10.1.0.2, origin i, localpref 100, metric 0
*Feb 24 11:06:41.349: BGP(0): 10.1.0.2 rcvd 10.1.2.0/24
*Feb 24 11:06:41.349: BGP(0): 10.1.0.2 rcvd 10.1.0.0/24
Summary
• BGP is configured with the following basic BGP commands:
– router bgp autonomous-system
– neighbor ip-address remote-as autonomous-system
– network network-number [mask network-mask]
• The neighbor command activates a BGP session with a neighboring router.
• The neighbor shutdown command administratively shuts down a BGP neighbor.
• When creating a BGP packet, the neighbor statement defines the destination IP address and
the outbound interface defines the source IP address.
• When establishing a BGP session, BGP goes through the following states: idle, connect,
open sent, open confirm, and established.
• You can configure MD5 authentication between two BGP peers, meaning that each segment
sent on the TCP connection between the peers is verified.
• The show and debug commands are used to troubleshoot the BGP session.
Clearing the BGP Session

• When policies such as access lists or attributes are changed,


the change takes effect immediately, and the next time that a
prefix or path is advertised or received, the new policy is
used. It can take a long time for the policy to be applied to all
networks.
• You must trigger an update to ensure that the policy is
immediately applied to all affected prefixes and paths.
• Ways to trigger an update:
– Hard reset
– Soft reset
– Route refresh
Example: Origin Attribute

RouterA# show ip bgp


BGP table version is 14, local router ID is 172.31.11.1
Status codes: s suppressed, d damped, h history, * valid, > best, i -
internal, r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 10.1.0.0/24 0.0.0.0 0 32768 i
* i 10.1.0.2 0 100 0 i
*> 10.1.1.0/24 0.0.0.0 0 32768 i
*>i10.1.2.0/24 10.1.0.2 0 100 0 i
*> 10.97.97.0/24 172.31.1.3 0 64998 64997 i
* 172.31.11.4 0 64999 64997 i
* i 172.31.11.4 0 100 0 64999 64997 i
*> 10.254.0.0/24 172.31.1.3 0 0 64998 i
* 172.31.11.4 0 64999 64998 i
* i 172.31.1.3 0 100 0 64998 i
r> 172.31.1.0/24 172.31.1.3 0 0 64998 i
r 172.31.11.4 0 64999 64998 i
r i 172.31.1.3 0 100 0 64998 i
*> 172.31.2.0/24 172.31.1.3 0 0 64998 i
<output omitted>
Summary

• BGP metrics are called path attributes and describe the paths to reach each
network. These attributes are categorized as well-known mandatory, well-known
discretionary, optional transitive, and optional nontransitive.
• The AS path attribute is a well-known mandatory attribute that lists the AS
numbers that a route has traversed to reach a destination.
• The BGP next-hop attribute is a well-known mandatory attribute that indicates the
next-hop IP address to use to reach a destination.
• The origin attribute is a well-known mandatory attribute that defines the origin of
the path information.
• The local preference attribute is a well-known discretionary attribute that provides
an indication to routers in the AS about which path is preferred to exit the AS.
Summary (Cont.)

• The MED attribute, also called the metric, is an optional nontransitive


attribute that is an indication to EBGP neighbors about the preferred
path into an AS. The MED is sent to EBGP peers; those routers
propagate the MED within their AS. The routers within the AS use the
MED, but do not pass it on to the next AS.
• The weight attribute is an attribute that Cisco defines for the path
selection process. Routes with a higher weight are preferred when
multiple routes exist to the same destination.
• Paths for a network that are determined not to be the best are eliminated
from the selection criteria but are still kept in the BGP forwarding table in
case the best path becomes inaccessible.
• BGP follows a multiple-step process when selecting the best route to
reach a destination.

You might also like