Text Box: Interior-Exterior BGP Routing

jaynejacobs@jaynejacobs.com
December 14, 2005

Interior-Exterior BGP Routing.. 4

BGP – Border Gateway Protocol: 4

BGP Features: [4]. 4

Interconnecting Autonomous Systems. 5

Routing Protocols. 5

Distance – Vector Protocols. 5

Link State Routing Protocol 6

Spanning Tree Protocol 7

The Role of IGP. 7

Interior Routing Protocols. 7

iBGP. 7

Logical mesh. 8

EBGP - Exterior Routing Protocol - BGPv4. 8

Stub AS. 8

Transit AS. 8

BGP Synchronization.. 8

BGP Peers. 8

Peer Negotiation. 9

BGP Speakers. 9

Filtering BGP Advertisements. 10

Filtering Techniques. 10

Update Messages. 11

Common Header. 12

BGP Message Header.. 12

Open Message.. 12

Version. 12

The Autonomous System Number (ASN) 12

Hold Time. 13

BGP Identifier. 13

Optional Parameter Length. 13

Optional Parameters. 13

Update Message.. 13

Total Path Attributes. 14

NLRI – Network Layer Reachability Information. 14

Four Categories of Attributes. 14

Path segment type.. 17

ORIGIN type.. 17

Well –Known Discretionary Attributes. 17

Optional Transitive. 18

Optional Non-Transitive. 18

Network Layer Reachability Information (NLRI) 19

NOTIFICATION.. 19

Error Type. 19

General Message Error Subcode Type. 19

OPEN Subcode Error Type. 20

UPDATE Subcode Error Type. 20

KEEPALIVE.. 20

Routing Information Bases for Route Selection.. 21

Decision Logic Flow... 22

BGP Configuration.. 23

Gathering System Information. 23

Internal Network Design.. 23

Network Devices. 23

Network Description. 24

Network Design Diagram.. 25

1. Enabling BGP on the routers. 26

Script: 27

Distribute List Configuration.. 28

Prefix List Configuration.. 28

Route Map Configuration.. 28

Match statements. 28

Set statements. 29

Preventing Route Flapping.. 30

Route Selection Attribute Configuration.. 30

Configuring Attributes. 31

Atomic Aggregate. 31

Weight 31

Local_Preference. 31

NBMA (FR) 31

MED.. 32

Remove BGP Configurations. 33

Reset the connection so that the new parameters will take effect. 33

Checking the Configuration.. 33

BGP  Show Command. 33

BGP Debug Command. 34

Appendix I. 35

RouterA Configuration[11] 35

APPENDIX II. 37

Router I Configuraiton and Confirmation Commands [11]. 37

APPENDIX III. 38

Router B Configuraiton and Confirmation Commands[11]. 38

APPENDIX IV.. 40

Switch Configuration and Confirmation Commands[11]. 40

Planning BGP Configuration.. 41

Reference: 42

 


Interior-Exterior BGP Routing

Jayne Jacobs – jaynejacobs@comcast.net

December 14, 2005

 

BGP – Border Gateway Protocol:

     

BGP is an Inter-domain routing protocol [2] used to interconnect independent enterprise networks. The Internet was built with many Autonomous Systems (ASs). An AS can consist of an entire corporate network with multiple locations (ASs) connecting to the network. [4]

 

 

 

 

 

 

 

                                       Figure1: Interconnecting Autonomous Systems

An AS uses BGP to advertise routes to an external network and learn reachability of other routes. BGP can also be used for scaling routes, policy implementation, and route optimization. BGP devices share routing information between Autonomous Systems for Inter-AS routing between ASs and Intra-AS routing within the AS. To accomplish this, BGP creates a list of the AS systems that a packet traverses with information about path cost and reachability. [4] However, BGP will not reduce congestion, [5] nor will it perform load-balancing. In fact, BGP will normally choose one interface. BGP will normally simply choose the best path based on the prefix with the shortest AS_PATH attribute.  [7] However, there are workarounds for load balancing parallel serial interfaces using loopback interfaces and the update-source and ebgp-multihop commands. [12]

BGP Features: [4]

BGP offers many advantages over distance vector protocols, and Link-state only protocols, as it is a hybrid with features from both. The following is a list of features of BGP:

      Classless Routing Protocol (supports CIDR)

      Route and AS path aggregation

      Can support  “hop-by-hop” routing, or incorporate rules for each AS.

      Reliable transport Protocol (TCP)

      Detects and prevents loops

      Prevent route flapping (path going up and down)

 


When is BGP Required?

1.      To send Traffic from one AS to get to another AS

2.      To manipulate flow of data traffic through inbound and outbound policy

3.      To connect two or more ISPs, NAPs, and exchange points [3]

4.      To connect a Multi-homing enterprise network with more than one AS in order to increase reliability of the network. [5]Multi-homing provides increased bandwidth and redundancy.

 

When is BGP not used?

1.      If it is too complex for the router memory capacity.

2.      For a single connection to the internet – only one ISP or external AS

3.      Not enough bandwidth for the data needed (routing tables)

 
Autonomous Systems Overview

 

An Autonomous System (AS) is a set of routing devices under one or more administrations that presents a common routing policy to the Internet. The Internet is built as a mesh of many ASs. There are Transit Autonomous Systems, and Stub Autonomous Systems. Some of the other terminology associated with BGP is listed below. It is important to understand the definitions when using BGP. The following list of terms is addressed in this report:

·         Internal BGP

·         External BGP

·         Routing Protocols

·         Ingress and Egress filtering

·         BGP Update Messages

·         BGP Peers

 

 

Interconnecting Autonomous Systems

           

Commercial networks connect to the Internet via tier-one providers such as Sprint, Quest, WorldCom/MCI, and UUNet. All interconnected enterprise networks, including ISPs, are identified by an ASN.  [1] Each Border Router is a member of only one AS.  Each AS has its own set of rules or policies about what routes to advertise from external ASs and Internal BGP neighbors. All destinations in the network must be reachable through one routing plan.                      

            An Autonomous System number consists of 16 bit integers. The range of available ASNs is from 1-65335, except from 64512 to 65535, which are reserved. RFC 1930 contains the Rules and Guidelines for ASNs. The Assigning authority for North America is the ARIN

 

Routing Protocols

 

Distance – Vector Protocols

The BGP distance metric is computed by counting the number of AS’s passed by the prefix (AS_PATH). This is why it is called an advanced distance –vector protocol. The metric is based on the hop count – including the destination. Most Distance – Vector protocols provide no support for Variable Length Subnet Masks VLSM and Classless Inter-domain Routing (CIDR)(Except for RIPv2). In addition they do not account for the data rate of the available link. Therefore, the protocol may choose a 128K ISDN route with 2 hops over a Broadband link with 3 hops.

RIP advertises the whole table every 30 seconds and has no formal neighbor relationships. The method of converging that RIP uses is impeded if the router fails to receive an update. In that case, the routers would not be notified of a topology change. Transferring a full route table causes CPU utilization to increase with the size of the routing table, as well as increased network congestion.

 

Link State Routing Protocol

It is important to use routing protocols that are scalable and not limited by hop count. That is to say, they accommodate growth. It is important to allow for growth and topology changes because of the tendency for a network to grow to capacity.

The advantage of the link-state protocols over the distance vector type is the count to infinity feature, which means – no hop count limit.  The protocol maintains link-state information about each interface and the nodes attached. Neighbors are immediately notified of topology changes. Beyond 10 seconds and a specified holdtime the link is considered down.

In this way, neighboring devices are continuously updated as to the status of the adjacent devices. Likewise, link state protocols reduce convergence time because changes are immediately updated with the status of all connected nodes until the information is propagated throughout the internetwork.

            The link-state network topology and best path determination is performed through a graph theory algorithm, like STP. Edgar Dijkstras link state algorithm creates a table with the best, loop-free network topology. Each link is represented by its cost to summarize the lowest total weighted value chosen as the best path.  Other advanced features include VLSM and CIDR and procedures for route calculation and advertisement based on fixed and configurable metrics.

 

            The feature summary is as follows:

      Formal Neighbor relationships

      Faster convergence

      Hello packets every 10 seconds

      Establish peering Router floods update out all interfaces

      Peering Sequence

      Send only updates – smaller message

      Saves CPU utilization and bandwidth.

      With no network changes – updates sent at specified intervals 30 min – 2 hrs.

      EIGRP – sends only changes

 

Update Sequence

1.      Neighbors receive an update

2.      Copy new information to the routing database

3.      Flood the update out all interfaces

4.      Then calculate new routing table.

 

This is repeated until the whole network is synchronized.

Spanning Tree Protocol

There must be a Layer 2 protocol such as spanning tree protocol inside of an AS to learn topology in order to insure a loop-free path. BGP information is used to build a graph of the AS tree to avoid loops and find the best path by enforcing routing policy [2]

The Role of IGP

 

Interior Routing Protocols (IGP) are used to discover connectivity among subnets for Intra-AS Routing [2]  IGP is also used to provide the Next-Hop routing information to the eBGP AS-Interconnect point. BGP IP Peers do not always have to be directly connected, but can be a learned route from IGP. IGP sessions have network statements only for routes learned from IGP, not from BGP (to avoid duplication)

Interior Routing Protocols

 

The following protocols are commonly used for IGP:

o   RIP Routing Information Protocol

o   IGRP  - Interior Gateway Routing Protocol

o   OSPF – Open Shortest Path First

o   EIGRP – Enhanced Interior Gateway Routing Protocol

 

iBGP

 All of the BGP peer routers in one AS use internal Border Gateway Protocol to exchange reachability information. All topology and route attributes that are received from eBGP, and internal routes that are advertised will be transferred using iBGP. The internal peers communicate via a loopback interface to insure greater reachability. [3] Loopback interfaces do not rely on any single interface to maintain up state.

When using multiple routes to a destination and redundant interfaces, an IGP is used to propagate all routes internally. A TCP Connection is established using the IGP routing protocol with a SYN-ACK-SYN handshaking routine. Route information is not advertised iBGP to iBGP to prevent inconsistent routes tables.

iBGP does have some scalability limitations to meshing BGP inside of the AS. [2] Routes learned from one iBGP neighbor will not be advertised to another iBGP neighbor. Therefore the iBGP network must me fully meshed with IGP. This can get to be a problem with large networks because the number of sessions required is n(n-1)/2. Route reflections and Confederations are used to over come these limitations though the definition of these features is beyond the scope of this report. It is important that all iBGP speakers peer with each other; therefore they must be configured in a full mesh configuration.


Logical mesh

 A logical mesh is achieved when all speaking devices have layer 3 reacheability. Then routing information can be exchanged between members of the mesh. Peers learn routes with one of the following methods:

o   A router uses an IGP to learn network topology

o   A default(static) route is created by the administrator

o   A directly connected network advertises a route

BGP must synchronize with IGP tables within the AS before advertising IGP topology. BGP learns other protocols, network statements through redistribution of IGP into a BGP. However redistribution can cause routing loops because routes can be learned from more than one source.

EBGP - Exterior Routing Protocol - BGPv4

 

     When BGP exchanges information with external ASs routers use External Border Gateway protocol (eBGP). A directly connected interface of another AS is used for the eBGP neighbor. The neighbor ASN will be different.

 

 

Stub AS

A Single-homed network with only one entry point and one exit point does not need to learn Internet routes. In fact it would not be advisable to configure a stub network with BGP for many reasons. BGP transfers the entire routing table upon convergence and this can tax router memory. In addition, the traffic generated from the messages and updates is not justifiable for a small-scale network. It is likely that a stub AS will only need static routes since it does not pass information from one AS to another or make routing decisions between two ASs.

 

Transit AS

An AS that passes routing data from one AS to another AS is called a Transit AS if it has two BGP speakers.[12] In contrast a Non-Transit AS may pass data from two ISPs but never between them.      However if a network uses multiple ASes to increase uptime reliability and load-balancing, a Transit AS may be needed.

BGP Synchronization

    

Internally iBGP Routers learn from an IGP before advertising transit information to eBGP routers. Redistributing routes from BGP into IGP would cause the memory to be overloaded quickly. It is not advisable to redistribute automatically as it can cause problems, and slow convergence. Synchronization should be turned off if all routers use BGP and run iBGP.

Command: RouterName(config-router)# no synchronization

 

BGP Peers

     Adjacent routers (BGP speakers) that maintain BGP TCP sessions to exchange routing information are called peers. These peer relationships enable BGP to immediately update topology changes because routers have a real-time status update of all BGP neighbors. Each time an update is sent the table version number is updated. All peers must have the same routing table version number. [12]

 

 

Peer Negotiation

BGP is used at the protocol and policy level. At the Protocol Level, BGP Protocol sessions run between peers (neighbors) over TCP. At the Policy level, peers establish relationships with the entire AS. It is possible to peer two ASs of the same status or peer an AS at one level with AS of higher level. Peers advertise customer routes to each other. They do not exchange all information in the routing table. When two BGP speakers are connected through TCP they are defined as peers or neighbors. [2]

Standard routing protocols send keepalive signals on a circuit not using TCP port 179. BGP uses TCP to maintain the connection with a KEEPALIVE type field in the packet header. There is no need to utilize fragmentation, retransmission, and other acknowledgment or sequencing schemes. The finite state machine process is used to form neighbor relationships. This process defines the states that the peers must pass through in setting up, maintaining, and closing a session. [4]

BGP Speakers

        A BGP speaker is defined as a router that is running BGP routing.[2] All BGP speakers must be peers  and have layer-3 reachability[2]. The ASs use eBGP for intra-AS routing with TCP to establish sessions and a topology map called the BGP tree. A speaker advertises routes [1] with neighboring speaking BGP devices [2] to relay network reachability information with AS system information of systems in the path. [2] Routes are considered valid until declared invalid by a message, or TCP session is lost.

Finite State Machine States

State 1: Idle

 

     Initially a BGP speaker will wait for a start event an will refuse connections.  After the start event, the speaker will initialize resources, and start the ConnectRetry timer and initiate a TCP session with the peer. For each retry the timer doubles to prevent flapping. Then the state changes to Connection.

 

State 2: Connection

 

     In the connection state, the speaker waits for the connection to be completed.  If the connection is not successful, the ConnectRetry timer restarts. If errors occur the connection is terminated and the state becomes Idle.

 

State 3: Active

#1: Identification from endpoints. The speaker is in the Active state while attempting the connection to the peer. If successful, an OPEN message is sent.

State 4: OpenSent

#2: Reply Received:       

State 5: OpenConfirm

      #3: Connection received and accepted by endpoints

State 6: Established

     #4: Send incremental UPDATE, NOTIFICATION and KEEPALIVE messages.

 

Filtering BGP Advertisements

     In order to block, permit, and give preference to routes BGP uses prefix lists and route maps. Distribute lists are used to filter inbound and outbound routing information between peers.

 

When routes are received by the speaker from neighbors or peers, the router creates policy to permit or deny routes. Policy is also established by manipulating BGP attributes. Then only routes that must be announced on the Internet are advertised. The best routes are then stored in the Loc-RIB. Egress Filtering is used to make decisions about what routes to advertise.

 

Filtering Techniques

Route Maps are used for ingress or egress filtering; they consist of a sequence of set and match statements. The match statements denote criterion used to establish the basis of the actions defined in the set statements to permit or deny routes. [12] If the match statement specifies an IP address for out going updates and the IP is contained in the update message, it can be denied based on the address, and not redistributed. However, Cisco IOS 11.2 and earlier do not allow filtering on the inbound using a match command for an IP address.

Route Maps are used to apply conditions to influence for injecting routes in and out of the BGP speaker. To create a route map use the following command:

route-map name {permit | deny } [sequence number]

o           name  - name of the route map

o           sequence number  - position of the condition (first position 10)

 

Distribute Lists – Filters only allow permit or deny for a route; they are tied to an access or prefix list.

To create a distribute list use the following command:

neighbor peer address distribute-list access list number [in|out]

 

Prefix lists – Like an access list; used to parse advertised information into a summary with a sequence number.

To crate a prefix list use the following command

ip prefix-list list-name [seq seq-value]{permit | deny} network/len [ge ge-value] [le le-value]

The BGP routes received from an eBGP are advertised to the border router and iBGP peers. Some ISPs filter routes; some do not. Ingress filtering is used to accept only those route advertisements from a specified source addresses.  (This is a security measure) [6]

 


Update Messages

 

 

 

 


BGPs pass much more information than IGPs. IGPs use prefix, metric, tagging, and a Shortest Path First algorithm. (Like OSPF) BGP carries many path attributes.  OSPF has even more complex attributes as listed below:

o   Intra-area,

o   Inter-area,

o   External status

o    

For BGP the following are the minimum set of attributes:

o   Source (ORIGIN)

o   Hop (AS_PATH)

                                                   

BGP sessions are established as reliable connection-oriented connections. BGP Communicates on TCP port 179 between endpoints, or BGP Peers, also called BGP neighbors.

Basic Steps to establish a BGP Session:

1.      Peers form a session.

2.      Peers share loop-free topology of ASs

3.      Periodic UPDATES and KEEPALIVE packets are exchanged at specified increments.

 


 

 

Common Header

 

 

Field
Contents
Size
 
Description

1

Marker

16 octets

2 bytes for security and synchronization Authentication of BGP messages

2

Length

2 octets

Size of BGP header and message 19 - 4096

3

Type

1 octet

(byte)

Type Value

Message type

Description

1

OPEN

Sent first after TCP session is established with any peers.

Identifies the AS of the router

Establish protocol Parameters

Determines timers for a session

Fields (After Common Header)

Version

1octet

AS#

2octets

 

Hold

Time

2octets

BGP Identifier

4octets

Optional

Paramet.

Length

1octets

Optional

Param.

(varies)

2

UPDATE

With-drawn

Routes

Length

2octets

With-drawn

 Routes (varies)

Total

Path

Attrib.

Length

2octets

Total

Path

Attrib. (varies)

Network Layer Reachability(varies)

3

NOTIFICATION

Sent if an error occurs during session: after message is sent it terminates the connection

Error Code

1octet

Error Subcode

1octet

Data

(varies)

4

KEEPALIVE

 

 

 

 

 

 

 

Figure 1:BGP Message Header

 


 

Open Message

 

This message is sent immediately after the TCP session is established. It is use to Identify the router ASN, number, protocol version and timers and BGP.

Version

 

BGP Version used by origin of OPEN message: used to negotiate highest common version supported by all routers. If the router does not use that version number the connection is refused by sending an error message, and the session is ended. Then the Origin router will revert to a lower version with a new session.

The Autonomous System Number (ASN)

    

The ASN is a unique identifier for the source AS. It is the ASN membership of sending BGP speaker router. [1] It is used to create the BGP tree. In order to connect to an external AS a system must be assigned an ASN from the designated authority of the local area.

 


Hold Time

 

The hold time field contains the sender’s hold-down timer settings.  The BGP speaker uses the lowest configured hold time and the value of the hold time field to calculate time between UPDATE and KEEPALIVE signals sent or the session will be closed. If the value is set to 0, no KEEPALIVES are sent. (This is not recommended because no notification is sent if connection lost.)

Otherwise the minimum value set on the router is at least 3 seconds. The neighboring router can reject the timer.

BGP Identifier

 

This field identifies the BGP speaker. The number must be unique.[1] The BGP Identifier is normally the highest loopback interface IP address on a router, or the highest IP address if there is no loopback interface. It is preferable to use a loopback address; therefore this should be configured when BGP is used. [2]

Optional Parameter Length

 

This field represents the length of Optional Parameter field- The value will be zero if there are none.

Optional Parameters

    

The list of optional parameters is declared here.

Parameter type

(1-octet)

Parameter Length

(1-octet),

Parameter value (variable)

 

 

 


 

Update Message

 

Sends the network topology new route, deleted routes, one change per message. UPDATE messages are sent periodically to deliver routing information to establish loop-free routing paths.

o   Local Routes

o   Topology Changes

o   Foreign Route

o   Withdrawn Routes Format  – A list of IP addresses prefixes of withdrawn routes.

 

 

 

 

 

This is a list of IP prefixes that the BGP speaker sends to notify its peers of a path that is down or cannot be accessed due to policy changes. BGP chooses the best path and puts it in the IP forwarding table. [7] The Best Path algorithm is used to choose the path that is written in the forwarding table. [9]


Total Path Attributes

    

This field is used to list the path attributes used in the UPDATE message to track routing information for filtering and routing decisions. The path attribute has the following format.

 

Type-2bytes

Attribute Flags - 1byte

Type code - 1byte

Length

Value

                 Figure 2: Path Attribute Format

 

NLRI – Network Layer Reachability Information

 

Bit

Attribute Type

1

ON = optional (all well known attributes must be passed on to peers)

OFF = well-known

2

ON = transitive (If the option is recognized it is passed to BGP neighbors)

OFF = non- transitive (ignored and not passed on)

3

ON = partial optional attribute/ must be passed on

OFF =well-known non- transitive/ not mandatory to pass on

4

ON = extended length bit; total length of attribute more than one octet (permits longer than 255 bytes)

OFF = length = one octet

 

    

Four Categories of Attributes

 

The attribute flags represent the following categories:

1.   Well-known mandatory; Must appear in all BGP updates/ advertised route and must be supported and propagated by all BGP implementations. [1] This attribute must be in the UPDATE message or the session will end. [2]

2.   Well-known discretionary – Recognized by all BGP devices, but not necessarily present in an UPDATE.

3.   Optional – transitive - For private BGP networks.  The attribute may not be recognized but it will be passed on to peers.

4.   Optional – non-transitive - Not passed on to the external network if it is not recognized.

 

Bit

0 – Optional bit

1 Transitive

2 Partial

3 Extended length

4

5

6

7

5.    

1 = optional

0 = well known

If an optional attribute is Transitive = 1

Non-transitive = 0

Partial = 1

 

Complete = 0

 

0 = 1byte

1 = 2 bytes

Not Used

Set to zero and ignored

Table 1: Flag Bits Well-known mandatory Attributes

 

Attribute

Type Code

Description

AS_PATH

2

Autonomous System Path – A varied length list of segments in an AS path that the message has traversed.

Path segment type (1-octet), length and value 

 

Fields modified by eBGP speakers, which advertise the route outside the local AS.  The eBGP adds its ASN to the end of the path vector in each field. Within its own ASN, the field is empty. iBGP routers ignore routes learned from iBGP peers. BGP is a path-vector protocol. For:

 

      AS_PATH with first path segment of AS_SEQUENCE; Append AS number to last part of sequence

      AS_PATH with first path segment of AS_SET; add new path segment with type of AS_SEQUENCE with its AS number in the sequence.

 

An eBGP router that originates a route includes its ASN in the AS_PATH of the UPDATE messages sent to other ASs. The field is empty when advertised to iBGP in the same ASN to avoid loops from conflicting routes

 

Sequence of AS numbers indicates the complete path. 

NEXT_HOP

3

IP address of next-hop border router if the interface is within the same subnet as the local and remote BGP speakers.  Listed in NLRI of UPDATE.

BGP speaker does not advertise address of a peer as NEXT_HOP of a route if the speaker is originating to that peer.

 

BGP Speaker does not install a route with itself as the next hop unless the NEXT_HOP_SELF configuration option is used. 

 

iBGP speaker advertises an internal BGP router as the next hop only when:

       the IP address of the iBGP border router is on the same subnet as  the local and remote BGP speakers.

      So a single router manages announcements on one subnet.

 

BGP Speaker advertises an external border router as next hop if:

       IP address of the next-hop router learned from a peer

      and the connected interface is on the same subnet as the local and remote BGP speakers.

ORIGIN

1

Tells the receiving BGP router of the BGP type of the source of the NLRI information. Origin Types Origin Types (Table ?) The originating AS creates the attribute.

    


 

Bit

Value

Path segment type

0

Non-defined

1

AS_SET - an unordered list of ASs the UPDATE message traversed

2

AS_SEQUENCE – ordered list of ASs UPDATE message traversed.

3

AS_CONFED_SET - unordered list of ASs in the local confederation the UPDATE message traversed

4

AS_CONFED_SEQUENCE -  ordered list of ASs in the local confederation the UPDATE message traversed

     Table 2: Path segment types

 

Bit
Value

ORIGIN type

0

IGP – Originating AS - learned about the NLRI from its own IGP

1

EGP – AS sending NLRI, first learned from an eBGP speaker

2

INCOMPLETE – NLRI from a static route. Redistributed route from IGP to BGP with an incomplete flag

     Table 3: Origin Types

 

Well –Known Discretionary Attributes

 

Attribute

Type Code

Description

LOCAL_PREF

5

Local Preference - with one AS, used only with iBGP

ATOMIC_AGGREGATE

6

      To inform BGP speaker of   policy routing for overlapping routes to indicate if a prefix is used. The router selects a route with a shorter subnet mask.

Table 5: Well-Known Discretionary Attributes

 

Optional Transitive

     Some implementations do not use these attributes; they are for private BGP networks. The message will still be propagated by all implementations. Those that do not recognize it will mark the message as a partial message.

 

Attribute

Type Code

Description

AGGREGATOR

7

6 octets: 2 for the ASN : 4 for the IP address of the AS and router that aggregated the message.

COMMMUNITY

8

      Routes that share a common property, used to simplify routing policy.  A route may belong to one or more communities. This attribute specifies these communities.  The length is variable.

      Current community 32 bits

      Two 16 bit fields

      First 16 bits; well-known community (the internet defined by IETF)

      Second 16 bits defined by the owning AS

Table 6: Optional Transitive Attributes

 


 

Optional Non-Transitive

Optional Non-Transitive attributes are private BGP attributes that are not passed on to the external network.

 

Attribute

Type Code

Description

MULTI_EXIT_DISC

4

MED – extensive route-selection component   also called the Inter-AS metric. Used to inform neighboring AS which link to use to receive traffic. It is used when to ASs are connected with many routers.

ORIGINATOR_ID

9

      To support the route-reflector to scale iBGP meshes.  4 Octets; Identifies the originator or a route passed to the iBGP mesh. The route will not be readvertised if it is learned from another source to peers that have already learned it.

CLUSTER_LIST

10

Varies in length - used to detect looping updates. Looping advertisements will be rejected.

MP_REACH_NLRI

14

Multiprotocol Reachable NLRI– For Multiprotocol Extentions of BGP. It identifies a new route in a specific address grouping other than IPv4.

MP_REACH_NLRI

15

Multiprotocol Unreachable NLRI – For Multiprotocol Extentions of BGP. It identifies a new route in a specific address grouping other than IPv4. The route is withdrawn.

 

Table 7: Optional Non-Transitive Attributes


Network Layer Reachability Information (NLRI)

 

This field enables support for CIDR. This is a list of prefixes to be updated. They all match attributes listed in the Path Attributes field. UPDATE messages can be used to withdraw several routes, but only one can be added. The prefix lengths apply to specific routes. A zero length represents a default route. The prefixes consist of a 1-octet length and a variable length.

    

NOTIFICATION

 

This error code message is sent to signify that an error has occurred during the BGP session.  After the message is sent, the connection is terminated.

 

Error Code - 2bytes

 

Error Subcode – 2 byte

Data

  Figure 3: Notification Format

 

Code

Error Type

1

Common header or general message error.

2

OPEN message error

3

UPDATE message error

4

Hold Time Expired error

OFF = length = one octet

5

Illegal event for current state(Finite State Machine Error)

6

All other errors

                 Table 8: Error Codes

 

 

Code

General Message Error Subcode Type

1

Connection not synchronized/marker field error

2

Message length error

3

Message type error

                 Table 9: Type 1 Error Subcodes

 


 

Code

OPEN Subcode Error Type

1

Version Number not supported

2

Peer AS  information error

3

Optional parameter error

4

Optional parameter not supported

 

5

Authentication Error

6

Unexpected Hold time

                 Table10: Subcode Error Type 2

 

Code

UPDATE Subcode Error Type

1

Path Attributes parsing error

2

Well-known Path Attributes not recognized

3

Well known Path Attributes missing

4

Attribute flag field, not recognized

 

5

Attribute length error

6

Incorrect ORIGIN Attribute

7

AS routing loop/ looping prefix  error

8

NEXT_HOP prefix error

9

Optional Attribute error

10

Prefix update : invalid network field

11

AS_PATH processing error

                 Table 11: Update Error Subcodes

 

KEEPALIVE

    

This message is used to check if the connection is active between peers. It has a fixed sized 19-byte header. It is sent to each peer after 1/3 of the hold time, and then the hold timer is reset.  If the UPDATE is not sent before the hold time expires, the KEEPALIVE is sent to maintain the connection. If the hold time is set to zero, KEEPALIVE no message will be sent.

 

Routing Information Bases for Route Selection

 

The RIB (Routing Information Base) segments BGP information about learned routes into three parts;

1.      An Adj-RIBs-In is created for each peer with information about BGP routes learned from the peer. The inbound policy engine uses this information to administer policy. If it is not filtered it is sent to the Loc-RIB.

Step #1: Routes are received from BGP peer

Step #2: Received routes are placed in Adj-RIBs-In 

Step #3: Routes are examined by inbound policy engine for filtering

Step #4: The inbound policy engine passes only allowed routes and drops all others.

Step #5: Permitted routes are placed in the Loc-RIB

 

2.      Then the router uses the Loc-RIB for local routing decisions. Routing information in the Loc-RIB is sent to the outbound policy engine to filter and handle routing information to be placed in the Adj-RIBs-out.

Step #6: The permitted routes are used to make routing decisions

Step #7: New routes are now sent to the outbound policy engine.

Step #8: Policy is applied to the routes in the outbound policy engine

Step #9: New routes that are not filtered by the outbound policy engine are sent to the Adj-RIBs-out

 

3.      An Adj-RIBs-out exists for every peer to advertise routes that passed through the outbound policy engine.[2]

Step #10: The permitted routes are stored in the Adj-RIBs-out

Step #11: These routes are sent in UPDATES to BGP peers.


 

 

Decision Logic Flow

 

Several attributes can be configured along with other metrics to make complex routing decisions. The following diagram shows the sequence used to derive the best route.

 

            

 

BGP Configuration

 

Both interior and exterior routing protocols must be configured.

    

Gathering System Information

Parameter
Description

Identifier

BGP router ID either Loopback address(defaulr), or IP address of interface to the direct connection of a router.

BGP process number

ASN that is assigned or  private

Neighbors

Addresses of assigned AS neighbors, and those provided by the ISP

NRLI

Assigned ASNs to be advertised

Filters/Policy

All internal administration policies

Peers

Specify BGP peers

Table 12: Planning Configuration

 

Internal Network Design

 

Network Devices

At the internal enterprise internetwork a Cisco Catalyst 3750-24-TS-24 LAN switch interconnects the host devices to the access layer RouterI. The available features are full inter-VLAN routing and port segmentation, multi layer switching, Gigabit uplink ports, and IP routing. It is designed for a mid-sized network and department level LAN interconnects. This MLS switch/router supports all of the routing protocols, including OSPF, EIGRP, and RIP v2. Configuration is performed either the command-line interface (CLI) or the Cisco Cluster Management suite (CMS).

RouterI is a 3745 Multiservice Access Router used to integrate the 10/100 LAN with the Serial uplink to the Border Router. The Cisco IOS allows configuration of all routing protocols and including iBGP, and EIGRP for the IGP. Firewall configuration and high performance are important to this application and to others outside of the ISP access functionality. Unlike the Route Switch capabilities of the 3750 Catalyst switch, the C3745 has VPN, IPSec, and Firewall Security features, so important to the interconnection of independent enterprises. It is scalable to up to four network module slots to accommodate a flexible growth. Physical and Data Link access includes Serial, 10/100/1000 BaseT, as well as a local console port.

The Border Router is a Cisco 7505 Enterprise level platform featuring high-speed packet switching, access control through ACLs, IOS firewall configuration, and traffic accounting. It is selected for sufficient processing performance to handle BGP for the necessary routing table needed for access to two ASs, their routing topology, and updates. The Cisco IOS features include multiprotocol support and granular security. It is a mission critical device with a reputation for high reliability, high-availability and fast convergence. [4]

Network Description

 

     The Internal Server is connected to the ISP through a Gigabit Ethernet port on the LAN Switch labeled 192.168.23.2 (see figure 2).  The server and router port to this LAN are also (as well as other hosts, not shown) on the 192.168.23.0 IP network. The WorkStation accesses the server through a VLAN configured via the Switch and RouterI. It is desirable to allow the workstation to upload and download files to the ISPs that are retrieved from the server. In addition, workstations on the 172.16.10.0 network create files that will be stored on the server. However BGP does not advertise the server LAN nor does the server and its associated administration hosts do not have access to the ISPs nor the Internet.

 

     RouterI is at the distribution layer,  that is it provides access between the workgroups, or access layer to the Internet via the Core layer Border RouterA. RouterI provides all security and filtering between web development workstation to and the ISP for the purpose of transferring files to the ISP remote leased server. Router I connects to the ISP1 through Border RouterA and Border Router B. The internal ASN is 34000. RouterA is chosen and designed primarily for speed reliability and fast convergence for all Internet access.

 

      RouterA Synchronous Serial Port 0 interconnects with RouterI Serial Port 0 on network 63.79.1.0. Serial Port 1 interconnects RouterA with ISP RouterB, and, though it is not shown in the Appendix, another Serial Port will connect to RouterC. The eBGP segment to ISP 1(ASN 63001) connects RouterA and RouterB on network 172.16.30.0 255.255.255.254. 

 

     Router I connects to ISP2 via Border RouterA and Border RouterC on subnet 63.78.39.173 255.255.255.254. Router A Connects to the two ISP1 via serial port 1 and to ISP2 via serial port2. All RouterA ports are DCE ports. Network 172.16.10.0 is advertised to both ASs 59000 and 63001, but other IGP routes are not synchronized. Network 192.168.23.0 is denied through the egress filter1 route map.

 

 

Network Design Diagram

 

 

Figure 5: Network Diagram
Configuration Procedure

 

1. Enabling BGP on the routers

         Command: router bgp autonomous-system number

 

autonomous-system number Local ASN

 

RouterA Configuration

 

RouterA#conf t

RouterA(config)#router bgp 34000

RouterA(config- router)#neighbor 172.16.2.1 remote-as AS 63001

RouterA(config- router)#neighbor 172.16.2.1 remote-as AS 63001

RouterA(config- router)#^Z

RouterA#

 

2. Identifying peers (specify IP address of routers that exchange information. )

                          Internal peers, same ASN

                          External Peers, Different AS.

         Command:

                     neighbor address remote-as autonomous-system-number

                                

address – IP address of peer router – Loopback address or IP address of directly connected router

autonomous-system-number – peer ASN

The iBGP has the same ASN as the source router. Each router participating in the iBGP will be configured with a loopback interface in order to form peer relationships. The speaker would send a message with the address of the outbound interface. Directly connected interfaces are used for eBGP. An eBGP would have a different ASN.

 

Command: neighbor address update-source interface

address - IP address of the remote device

interface – source for the BGP session

 

3. additional commands for iBGP session update-source

         Command:

                     neighbor [address | peer-group-name] update-source

                     interface-type interface-number

 

Loopback IP address used for peer address, used as the source of the BGP session

                     interface-type : Loopback

interface-number: number of Loopback interface used for BGP peering


 

4. Manually add networks and create routes in the BGP table from the routes in the IP table that will be advertised.

 

Command:

                     network network-number

        

network-number – network that is advertised with BGP.

 

To connect to a remote AS neighbor use the following command:

         Neighbor ip-address remote-as number

number – number of the remote BGP peer. 

 

 

Script:

Router A>enable

RouterA# config t

RouterA(config)# router bgp 34000                                                            ! 34000 is the ASN

RouterA(config-router)# network 63.78.0.0 mask 255.255.0.0      ! Add parameters to identify

RouterA(config-router)#                                                                  ! Networks that propagate

! information to avoid !redistribution.

RouterA(config-router)#neighbor 172.16.2.1                                              !Loopback used for  iBGP and

remote-as 63001                                           !eBGP peers               

                                            

 

 

RouterA(config)#router bgp 34000

RouterA(config- router)#no synchronization

RouterA(config- router)#neighbor 63.78.39.175 remote-as 59000

RouterA(config- router)#neighbor 172.16.2.1 remote-as 63001

RouterA(config- router)#neighbor 63.79.1.2 update-source Lo0

RouterA(config- router)#^Z

RouterA#

 

RouterI(config)#router bgp 34000

RouterI(config- router)#no synchronization

RouterI(config- router)# neighbor 172.16.2.1 remote-as 63001

RouterI(config- router)# neighbor 63.78.39.175 remote-as 59000

RouterI(config- router)#neighbor 172.16.2.1 update-source Lo0

RouterI(config- router)#neighbor 63.78.39.175 update-source Lo0

RouterI(config- router)#^Z

RouterI#

 

 


Distribute List Configuration

 

RouterA# config t

RouterA(config)#access-list 1 deny 192.168.24.0 0.0.0.255

RouterA(config)#access-list 1 permit any                                       !Due to the implicit deny at

RouterA(config)#^Z                                                                                    !the end of the access list this

RouterA#                                                                                         !must be added or all other      

                                                                                             !routes will  be denied.

 

Prefix List Configuration

RouterI# config t

RouterI(config)#ip prefix-list internal seq 10 deny 192.168.24.0/24

RouterI(config)# ip prefix-list internal seq 11 permit 0.0.0.0/0 le 32

RouterI(config)#^Z                                                                        

RouterI#

 

RouterA# config t

RouterA(config)#router bgp 34000

RouterA(config)#neighbor 172.16.2.1 prefix-list internal out

RouterA(config)#neighbor 63.78.39.175 prefix-list internal out                

RouterA(config)#^Z                                                                                   

RouterA#                                                                                                                                                                                     

Route Map Configuration

 

Match statements

Matched item Description

match as-path

Match BGP autonomous system path access list

match community-list

BGP community

match interface

Routes with the next hop out of specified interface

match ip address

Destination address permitted in the specified access list or prefix list

match ip next-hop

next-hop address permitted by access list or prefix list

match ip route-source

Routes advertised by a source address permitted by access list or prefix list

match metric

Routes with a specified metric

match route-type

Routes with a specified type

match tag

Routes with a specified tag

 

Table 13: match Statements

Set statements

Attribute Set

set as-path

Modify AS_PATH attribute

set automatic tag

Automatic tag value computed

set interface

Routes with the next hop out of specified interface

set comm-list

Community list set for deletion

set communtiy

Set COMMUNITIES attribute

set dampening

Parameters for route flap dampening

set default interface

Default output interface

set interface

Output interface

 

set ip default next-hop

Default Next Hop address

set ip next-hop

Next Hop address

set ip precedence

IP Precedence field

set ip tos

Type of service field

set local-preference

BGP LOCAL_PREF path attribute

set metric

Metric value for destination routing protocol

set metric-type

Metric type for destination routing protocol

set origin

BGP ORIGIN Code

set tag

Tag value for destination routing protocol

set weight

BGP WEIGHT

         Table 14: set Statements

Apply the route map to a neighbor session with the following command:

 

         neighbor peer address route-map name [in |out]

 

name – name of the route map

 

To deny network 192.168.24.0/24 from being advertised to router B and router C.

 

RouterA# config t

RouterA(config)#access-list 1 permit 192.168.24.0 0.0.0.255

RouterA(config)#route-map filter1 deny 10

RouterA(config-route-map)#match ip address 1    

RouterA(config-route-map)#route-map filter1 permit 20

RouterA(config-route-map)#exit

RouterA(config)#router bgp 34000

RouterA(config-router)#neighbor 172.16.2.1 route-map filter1 out

RouterA(config-router)#neighbor 63.78.39.175 route-map filter1 out

RouterA(config)#^Z                                                                                   

RouterA#                                                                                                                                        

 

Preventing Route Flapping

 

         If route information is not consistent and routes are oscillating from up state to down state, the network will be unstable. Route flapping can increase convergence time and use CPU cycles and bandwidth. Over all, network stability is improved by suppression of changes. Route Flap Dampening is performed using the following parameters available in Cisco IOS v 11.0 and subsequent versions: [7]

                          Penalty

                          Decay

                          Half-life

                          Suppress and Suppress-limit

                          And Reuse-limit

 

Route Selection Attribute Configuration

 

Peer Group:  A peer group is used to define a template with parameters that more than one peer uses for neighbors using the same outbound parameters and different inbound parameters.

 

 

 

 

 


 

Configuring Attributes


Attribute
Description
Commands used

Atomic Aggregate

 

       The default BGP configuration uses both aggregate and specific routes. To save route protocol bandwidth and CPU loading it is best to minimize routing tables. If CIDR(Classless Interdomain Routing)  is used, routes can be summarized and redistributed in BGP.  The Atomic Aggregate attribute indicates that the information has been summarized.

aggregate-address ip-address mask [summary-only] [as-set]

                                     Aggregate address;  ip-address mask

 

as set ; configures BGP for advertising that the route is from the AS.

 

Weight

 

This attribute is used as a metric for path selection only in Cisco systems as a local option for routers that are connected to multiple ASs. It is used as an administrative tool to specify a preferred path interface when paths are learned from multiple sources. Desirability is proportional to weight. Weight is locally significant

weight = 0 – 65,535 (default 32,768)

neighbor [ip-address | peer-group-name] weight weight

              ip-address; of the neighbor router

              peer-group-name; when routes are learned from a BGP peer group

 

Local_Preference

Used among iBGP peers as a local attribute for a router when multiple IBGP peers each have eBGP peers. If a path is learned from two routers both are advertised to iBGP peers one can be used as a backup route by setting local preference on both routers.

bgp default local-preference value

              Value; 0 – 4,294,967,295

              The highest value is the preferred route.

NBMA (FR)

Non-broadcast Multi-access: Router advertises as the next hop to a destination. Multi-access routers select a DR and a BDR.

neighbor ip-address | peer-group-name next-hop-self

MED

Multi-Access Discriminators

Used to advertise the preferred link to neighbors for receiving traffic.

 

 

Paste  Startup Configuration Here

RouterName#config t

RouterName(config )# router bgp 63001

RouterName(config- router)# neighbor 172.16.2.1 route-map NAME out

RouterName(config- router)#exit

RouterName(config )#route-map NAME permit 10

RouterName(config- router)#match ipaddress 1

RouterName(config- router)#set metric 25

RouterName(config- router)#exit

RouterName(config)#route-map NAME permit 20

RouterName(config- router)#exit

RouterName(config)#access-list permit 172.16.0.0 0.0.255.255

RouterName(config)#^Z

RouterName#

Table 15: MED


 

Remove BGP Configurations

  Reset the connection so that the new parameters will take effect.

         Command: clear ip bgp *|address [soft [in |out]]

 

                     * ; clear entire BGP routing table

                     soft; router advertises all updates – configuration is not cleared.

                     address; if a specific address is to be removed from BGP table

in|out; Identify triggered updates to occur in inbound or outbound updates when soft option is used.

 

Checking the Configuration

        

 

To verify and monitor the BGP configuration use the following commands

BGP  Show Command

Description

 

 

show ip bgp

Verify the BGP configuration for all information pertaining to a specified interface.

 

 

 

show ip bgp neighbors

Displays the BGP neighbors that were in the configuration and detailed statistics and information about neighbors. This can be used to verify the status of a peer. It can be used to show if the TCP connection failed.

 

 

show ip neighbor address advertised-routes

Used to verify which routes are advertised to the neighbor AS

 

 

show ip bgp community

Lists all routes belonging a selected community

 

 

show ip bgp cidr-only

Lists all classless routes

 

 

show ip bgp filter-list

Shows the AS path lists

 

 

show ip bgp paths

Show all of the path information for the local BGP router

 

 

show ip bgp peer-group

Shows statistics about members of the named peer group

 

 

show ip bgp summary

Display the BGP connections status

 

 

show ip bgp regular-expression

Shows routes that are learned from a neighbor AS.

 Table 16: show commands

BGP Debug Command

Description

 

 

debug ip bgp dampening

dampening are listed

 

 

 

debug ip bgp events

All events are displayed

 

 

debug ip bgp keepalives

Keepalive message events are displayed

 

 

debug ip bgp updates

Update message events are displayed

 

 

         Table 17: debug commands


 

Appendix I

RouterA Configuration[11]

 

RouterA Con0 is now available

Press RETURN to get started!

RouterA>en

Password:

RouterA#sh ip bgp

BGP table version is 3, local router ID is

Status codes: s suppressed, d damped, h history, * valid, > best, i - internal

Origin codes: i - IGP, e - EGP, ? - incomplete

Network Next Hop Metric LocPrf Weight Path

*> 63.79.1.1 0.0.0.0 0 0 2 i

*> 63.0.0.0 0.0.0.0 0 0 2 i

RouterA#sh ip bgp neighbor

BGP neighbor is 172.16.30.1, remote AS 63001, external link

Index 3, Offset 0, Mask 0x8

BGP version 4, remote router ID 0.0.0.0

BGP state = Established, table version = 1, up for 01:07:28

Last read 00:00:28, hold time is 180, keepalive interval is 60 seconds

Minimum time between advertisement runs is 30 seconds

Received 70 messages, 0 notifications, 0 in queue

Sent 70 messages, 0 notifications, 0 in queue

Prefix advertised 0, suppressed 0, withdrawn 0

Default weight 10

Connections established 1; dropped 0

Last reset never

0 accepted prefixes consume 0 bytes

0 history paths consume 0 bytes

Connection state is ESTAB, I/O status: 1, unread input bytes: 0

Local host: 172.16.30.2, Local port: 11000

Foreign host: 172.16.30.1, Foreign port: 179

Enqueued packets for retransmit: 0, input: 0 mis-ordered: 0 (0 bytes)

Event Timers (current time is 0x18AE8E0):

Timer Starts Wakeups Next

Retrans 71 0 0x0

TimeWait 0 0 0x0

AckHold 70 45 0x0

SendWnd 0 0 0x0

KeepAlive 0 0 0x0

GiveUp 0 0 0x0

PmtuAger 0 0 0x0

DeadWait 0 0 0x0

iss: 1359248693 snduna: 1359250034 sndnxt: 1359250034 sndwnd: 15044

irs: 1979028943 rcvnxt: 1979030284 rcvwnd: 15044 delrcvwnd: 1340

SRTT: 300 ms, RTTO: 607 ms, RTV: 3 ms, KRTT: 0 ms

minRTT: 20 ms, maxRTT: 300 ms, ACK hold: 200 ms

Flags: higher precedence, nagle

Datagrams (max data segment is 1460 bytes):

Rcvd: 97 (out of order: 0), with data: 70, total data bytes: 1340

Sent: 117 (retransmit: 0), with data: 70, total data bytes: 1340

RouterA#sh ip bgp summary

BGP router identifier 0.0.0.0 , local AS number 34000

BGP table version is 1, main routing table version 1

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

172.16.30.1 4 63001 77 77 1 0 0 01:14:23 0

RouterA#sh ip route

Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP

D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area

N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP

i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, * - candidate default

U - per-user static route, o - ODR

Gateway of last resort is 0.0.0.0 to network 0.0.0.0

C 172.16.30.0 is directly connected, Serial1

63.79.1.0/24 is subnetted, 2 subnets

C 63.79.1.0 is directly connected, Serial0

S* 0.0.0.0/0 is directly connected, Serial1

RouterA#sh run

Current configuration:

!

version 12.0

service timestamps debug uptime

service timestamps log uptime

no service password-encryption

!

hostname RouterA

!

enable secret wTkHtQsPmJ

!

ip subnet-zero

!

interface Ethernet0

no ip address

no ip directed-broadcast

shutdown

!

interface Serial0

bandwidth 64

ip address 63.79.1.1 255.255.0.0

no ip directed-broadcast

clock rate 64000

no ip mroute-cache

!

interface Serial1

ip address 172.16.30.2 255.255.255.0

no ip directed-broadcast

clock rate 64000

no ip mroute-cache

!

!

router eigrp 34000

!

!

router bgp 34000

network 63.79.0.0 mask 255.255.0.0

network 172.16.0.0 mask 255.255.0.0

neighbor 172.16.30.1 remote-as 63001

no synchronization

redistribute static

!

!

no ip classless

ip route 0.0.0.0 0.0.0.0 s1

!

!

!

line con 0

line aux 0

line vty 0 4

!

end

RouterA#ping 172.16.10.1

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 172.16.10.1, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 4/4/4 ms

RouterA#ping 172.16.10.2

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 172.16.10.2, timeout is 2 seconds:

.....

Success rate is 0 percent (0/5)

 

APPENDIX II

Router I Configuration and Confirmation Commands [11]

              

RouterI Con0 is now available

Press RETURN to get started!

RouterI>en

Password:

RouterI#sh ip bgp

BGP table version is 3, local router ID is

Status codes: s suppressed, d damped, h history, * valid, > best, i - internal

Origin codes: i - IGP, e - EGP, ? - incomplete

Network Next Hop Metric LocPrf Weight Path

*> 63.79.1.1 0.0.0.0 0 0 2 i

*> 63.0.0.0 0.0.0.0 0 0 2 i

RouterI#sh ip bgp neighbor

BGP neighbor is 63.79.1.1, remote AS 34000, external link

Index 2, Offset 0, Mask 0x4

BGP version 4, remote router ID 0.0.0.0

BGP state = Idle, table version = 0

Last read 00:00:11, hold time is 180, keepalive interval is 60 seconds

Minimum time between advertisement runs is 30 seconds

Received 0 messages, 0 notifications, 0 in queue

Sent 0 messages, 0 notifications, 0 in queue

Prefix advertised 0, suppressed 0, withdrawn 0

Connections established 0; dropped 0

Last reset never

0 accepted prefixes consume 0 bytes

0 history paths consume 0 bytes

External BGP neighbor not directly connected.

No active TCP connection

RouterI#sh ip bgp summary

BGP router identifier 172.16.10.1 , local AS number 34000

BGP table version is 1, main routing table version 1

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

172.16.30.1 4 59000 77 77 1 0 0 01:14:23 0

63.79.1.1 4 34000 77 77 1 0 0 01:14:23 0

RouterI#sh start

Using 781 out of 32762 bytes

!

version 12.0

service timestamps debug uptime

service timestamps log uptime

no service password-encryption

!

hostname RouterI

!

enable secret wTkHtQsPmJ

!

ip subnet-zero

!

interface Ethernet0

ip address 172.16.10.1 255.255.255.0

no ip directed-broadcast

!

interface Serial0

bandwidth 64

ip address 63.79.1.2 255.0.0.0

no ip directed-broadcast

no ip mroute-cache

!

interface Serial1

no ip address

no ip directed-broadcast

shutdown

!

!

router bgp 34000

network 63.79.0.0 mask 255.255.0.0

network 172.16.0.0 mask 255.255.0.0

!

no synchronization

redistribute static

!

!

no ip classless

ip route 0.0.0.0 0.0.0.0 s0

!

!

!

line con 0

line aux 0

line vty 0 4

!

end

RouterI#ping RouterB

Translating "routerb"...domain server (255.255.255.255)

% Unrecognized host or address, or protocol not running.

RouterI#ping 172.16.30.1

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 172.16.30.1, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 4/4/4 ms

RouterI#ping 192.168.23.2

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 192.168.23.2, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 4/4/4 ms

RouterI#

 

APPENDIX III

Router B Configuraiton and Confirmation Commands[11]

RouterB Con0 is now available

Press RETURN to get started!

RouterB>en

Password:

RouterB#sh ip bgp

BGP table version is 3, local router ID is

Status codes: s suppressed, d damped, h history, * valid, > best, i - internal

Origin codes: i - IGP, e - EGP, ? - incomplete

Network Next Hop Metric LocPrf Weight Path

*> 63.79.1.1 172.16.30.2 0 0 2 i

*> 63.0.0.0 172.16.30.2 0 0 2 i

RouterB#sh ip bgp neighbors

BGP neighbor is 172.16.30.2, remote AS 34000, external link

Index 2, Offset 0, Mask 0x4

BGP version 4, remote router ID 0.0.0.0

BGP state = Idle, table version = 0

Last read 00:00:11, hold time is 180, keepalive interval is 60 seconds

Minimum time between advertisement runs is 30 seconds

Received 0 messages, 0 notifications, 0 in queue

Sent 0 messages, 0 notifications, 0 in queue

Prefix advertised 0, suppressed 0, withdrawn 0

Connections established 0; dropped 0

Last reset never

0 accepted prefixes consume 0 bytes

0 history paths consume 0 bytes

External BGP neighbor not directly connected.

No active TCP connection

RouterB#sh ip bgp summary

BGP router identifier 0.0.0.0 , local AS number 63001

BGP table version is 1, main routing table version 1

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

172.16.30.2 4 34000 77 77 1 0 0 01:14:23 0

 

 

 

RouterB#sh run

Current configuration:

!

version 12.0

service timestamps debug uptime

service timestamps log uptime

no service password-encryption

!

hostname RouterB

!

enable secret wTkHtQsPmJ

!

ip subnet-zero

!

interface Ethernet0

no ip address

no ip directed-broadcast

shutdown

!

interface Serial0

bandwidth 64

ip address 172.16.30.1 255.255.255.0

no ip directed-broadcast

no ip mroute-cache

!

interface Serial1

no ip address

no ip directed-broadcast

shutdown

!

!

router bgp 63001

network 63.79.1.1 mask 255.255.0.0

network 172.16.0.0 mask 255.255.0.0

neighbor 172.16.30.2 remote-as 34000

no synchronization

redistribute static

!

!

no ip classless

ip route 0.0.0.0 0.0.0.0 s0

!

!

!

line con 0

line aux 0

line vty 0 4

!

end

RouterB#ping 172.16.30.2

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 172.16.30.2, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 4/4/4 ms

RouterB#

 

 

 

APPENDIX IV

Switch Configuration and Confirmation Commands[11]

 

Catalyst 1900 Management Console

Copyright (c) Cisco Systems, Inc. 1993-1999

All rights reserved.

Enterprise Edition Software

Ethernet Address: 00-30-80-C7-BE-C0

PCA Number: 73-3122-04

PCA Serial Number: FAB033723WJ

Model Number: WS-C1912-A

System Serial Number: FAB0338S10A

Power Supply S/N: APQ032404SA

PCB Serial Number: FAB033723WJ,73-3122-04

-------------------------------------------------

1 user(s) now active on Management Console.

User Interface Menu

[M] Menus

[K] Command Line

Enter Selection:

CLI session with the switch is open.

To end the CLI session, enter [Exit].

Switch>en

Enter password:*****

Switch#sh run

Current configuration:

!

!

!

!

!

!

!

!

hostname Switch

!

ip address 192.168.23.2 255.255.255.0!

!

!

!

!

!

enable secret 5 $1$upKn$KepmokI3NvkFVB6AnOcn0/

!

interface Ethernet 0/1

!

interface Ethernet 0/2

!

interface Ethernet 0/3

!

interface Ethernet 0/4

!

interface Ethernet 0/5

!

interface Ethernet 0/6

!

interface Ethernet 0/7

!

interface Ethernet 0/8

!

interface Ethernet 0/9

!

interface Ethernet 0/10

!

interface Ethernet 0/11

!

interface Ethernet 0/12

!

interface Ethernet 0/25

!

!

interface FastEthernet 0/26

!

interface FastEthernet 0/27

!

!

!

line console

end

Switch#ping 172.16.30.1

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 172.16.30.1, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 4/4/4 ms

Switch#

 


Planning BGP Configuration

 

 

Figure 6: Planning Configuration of the Network

 

References:

 

[1] Padjen, R. & Lammle, T. (2001). CCNP: Routing Study Guide. Alameda, CA: Sybex. ISBN 0-7821-2712-6

[2]J. Stewart (1999) Inter-Domain Routing and the Internet - BGP4, Reading Addison-Wesley

 

[3]Tom Elliott Network Engineering QVC Inc.

 

[4] Rekhter Y.  (March 1995),A Border Gateway Protocol 4 (BGP-4), T.J. Watson Research Center, IBM Corp. [Online]Available:  http://www.ietf.org/rfc/rfc1771.txt?number=1771

 

The paper describes the BGP v4 protocol and RFV1771 in detail.

 

[5] Van Valzah R. A., (2000) Reliable Internet Connectivity with BGP. [Online]Available: http://www.bgpbook.com/

 

[6]Siegel D., (1995) A Tutorial in multi-homing with BGP on a Cisco. RTD Systems & Networking [Online]Available:  http://www.amazing.com/internet/multi-homing.html

 

[7] Ferguson P., (February, 1997) Introduction to the Border Gateway Protocol (BGP) [Online]Available:  http://www.academ.com/nanog/feb1997/BGPTutorial/

 

[8] Cisco Systems Inc.  (1999-2002)BGP (Border Gateway Protocol)Cisco Technical Support. [Online]Available:   http://www.cisco.com/pcgi-bin/Support/PSP/psp_view.pl?p=Internetworking:BGP

 

[9] Cisco Systems Inc.  (February, 2002)How the Best Path Algorithm Works. Cisco Technotes [Online]Available:   http://www.cisco.com/warp/public/459/25.shtml

 

[10]Connect Internet Solutions Pty Ltd. (2003)Frequently Asked Questions on Multi-homing and BGP Connect[Online]Available: http://info.connect.com.au/docs/routing/general/multi-faq.shtml

 

[11]Lammle T. & Tedder W., (2003) CCNP Virtual LAB BCSI Sybex: Software

 

[12]Cisco Inc. (Dec, 2003) BGP Case Studies  [Online]Available: http://www.cisco.com/en/US/tech/tk365/tk80/technologies_tech_note09186a00800c95bb.shtml#intro

 

[13]Cisco Inc. (2003) Cisco 3750 Series Switches [Online]Available:  http://www.cisco.com/en/US/products/hw/routers/ps282/index.html