In 20 years, you will be more dissapointed by what you didn't do than by what you did.

Showing posts with label BGP. Show all posts
Showing posts with label BGP. Show all posts

BGP Communities: The Small Routing Tag That Powers Large Service Provider Networks

When people learn BGP, they usually focus on prefixes, AS_PATH, Local Preference, MED, route-maps, and filtering. These are all important topics, but there is one BGP feature that often looks simple at first and later turns out to be one of the most powerful tools in real-world networks.

That feature is BGP Communities.

BGP Communities are used heavily in Service Provider networks, Internet exchanges, large enterprise WANs, Data Center fabrics, MPLS VPN environments, and DDoS mitigation systems. They allow network engineers to attach additional information to BGP routes and then use that information to make routing decisions.

In simple words: a BGP Community is a tag attached to a route. But in production networks, that small tag can control traffic engineering, route propagation, blackholing, customer policies, and inter-domain routing behavior.

What Is a BGP Community?

A BGP Community is an optional transitive BGP attribute. It allows a router to mark a route with one or more values. Other routers can then match those values and apply routing policy.

The classic format looks like this:

ASN:VALUE

For example:

64500:100
64500:200
64500:300
64500:666

The first part usually represents the Autonomous System Number, and the second part represents a specific policy defined by that network.

For example, a Service Provider could define the following policy:

64500:100  - advertise to all upstreams
64500:200  - advertise only to customers
64500:300  - prepend AS_PATH three times
64500:666  - blackhole this prefix

The important thing to understand is that most communities do not have a universal meaning. Their meaning depends on the network that defines and processes them.

Why Are BGP Communities Useful?

In a small lab, it may be easy to configure routing policy manually on every router. In a real Service Provider network, that approach does not scale.

Imagine a provider with hundreds of routers, multiple upstream providers, Internet Exchange connections, enterprise customers, MPLS VPN customers, DDoS protection services, and different routing policies per region.

Without communities, every routing change would require manual changes in many places. With communities, the workflow becomes much cleaner:

  1. A route is received from a customer or another router.
  2. The route carries a specific community.
  3. The provider edge router matches that community.
  4. A route policy automatically performs the correct action.

This allows the network to become more programmable and policy-driven.

Example: BGP Blackholing for DDoS Mitigation

One of the most common real-world uses of BGP Communities is Remote Triggered Black Hole, often called RTBH.

Let’s say a customer is under a DDoS attack targeting a single IP address. Instead of allowing the attack traffic to saturate the customer’s link, the customer can announce a more specific route, usually a /32 for IPv4, with a special blackhole community.

Prefix: 203.0.113.55/32
Community: 64500:666

The Service Provider has a routing policy that says:

If a route has community 64500:666,
set next-hop to discard/null,
and propagate it to edge routers.

The result is that traffic to the attacked IP address is dropped inside the provider network, closer to the edge, before it reaches the customer circuit.

This is not a perfect solution because the attacked IP becomes unreachable, but it can protect the rest of the customer’s network and services. In many DDoS situations, sacrificing one IP address is better than losing the entire connection.

Well-Known BGP Communities

Some BGP Communities have standard meanings. These are called well-known communities.

The most common ones are:

no-export

A route with this community should not be advertised outside the local AS or confederation.

no-advertise

A route with this community should not be advertised to any BGP neighbor.

local-AS

A route with this community should not be advertised outside the local AS in confederation scenarios.

Standard Communities vs Extended Communities vs Large Communities

Standard Communities

Standard communities use a 32-bit value and are commonly written as:

ASN:VALUE

They are simple and widely supported, but they have limitations, especially when working with 32-bit ASNs.

Extended Communities

Extended Communities provide more space and structure. They are heavily used in MPLS VPNs and EVPN.

Common use cases include Route Targets, Route Origin, MPLS Layer 3 VPN import/export policy, EVPN tenant separation, and VPN route control.

route-target:64500:100

In MPLS L3VPN and EVPN networks, Route Targets are used to decide which VRFs should import specific routes.

Large Communities

Large Communities were introduced to solve limitations of standard communities, especially for networks using 32-bit ASNs.

GLOBAL_ADMIN:LOCAL_DATA_1:LOCAL_DATA_2

Example:

64500:10:200

Large Communities are easier to document and scale in modern networks.

Example Service Provider Policy

Let’s imagine a Service Provider with AS64500. The provider wants to let customers influence how their prefixes are advertised.

64500:100 - advertise to all upstreams and peers
64500:110 - do not advertise to upstream A
64500:120 - do not advertise to upstream B
64500:200 - advertise only to local peers
64500:300 - prepend three times to upstream A
64500:666 - blackhole

Now the customer can control routing behavior by attaching the correct community.

Prefix: 198.51.100.0/24
Community: 64500:300

When the provider advertises this route to upstream A, it applies AS_PATH prepending:

AS_PATH: 64500 64500 64500

This makes the route less preferred through that upstream. The customer does not need to open a ticket or ask the provider to manually change routing policy. The policy is already automated.

Cisco IOS-Like Configuration Example

ip community-list standard BLACKHOLE permit 64500:666

route-map CUSTOMER-IN permit 10
 match community BLACKHOLE
 set ip next-hop 192.0.2.1
 set community no-export additive

route-map CUSTOMER-IN permit 20
 set local-preference 100

Then the route-map is applied to a BGP neighbor:

router bgp 64500
 neighbor 198.51.100.2 remote-as 64510
 neighbor 198.51.100.2 route-map CUSTOMER-IN in
 neighbor 198.51.100.2 send-community

The line below is extremely important:

send-community

Without it, the router may not send community attributes to the BGP neighbor. This is one of the most common troubleshooting mistakes with BGP Communities.

Common Troubleshooting Issues

1. Missing send-community

A router sets a community locally, but the neighbor never receives it because send-community is missing. Always verify received routes on the neighbor.

2. Replacing Communities Instead of Adding Them

Some platforms replace existing communities unless you explicitly tell them to add a new one.

set community 64500:100 additive

Without additive, you may accidentally remove communities that were already attached to the route.

3. No Community Documentation

A community without documentation is just a magic number. Good providers usually maintain a public or internal table explaining every community value.

4. Vendor Syntax Differences

The concept of BGP Communities is standard, but the configuration syntax differs between vendors. Cisco, Juniper, Arista, Nokia, Huawei, and FRRouting all support communities, but the route policy syntax can look very different.

Why BGP Communities Matter in Data Center Networks

BGP Communities are not only useful in Service Provider networks. They are also important in modern Data Center designs.

Many Data Centers use BGP as the main control-plane protocol, especially in leaf-spine architectures and EVPN VXLAN fabrics.

In Data Centers, communities can help with tenant separation, VRF import/export policy, route leaking, firewall service insertion, EVPN route control, traffic engineering, automation, and operational visibility.

Extended Communities are especially important in EVPN because Route Targets define which VRFs import specific EVPN routes.

Best Practices

  1. Document every community. If nobody knows what a community means, it becomes technical debt.
  2. Use a consistent numbering scheme. For example: 100–199 for export control, 200–299 for local preference, 300–399 for AS_PATH prepending, and 666 for blackholing.
  3. Always check send-community. If communities are not propagated, your policy will not work.
  4. Use additive when needed. Avoid accidentally overwriting existing communities.
  5. Test policies in a lab. Tools like FRRouting, containerlab, EVE-NG, or Cisco CML are great for learning.
  6. Keep customer-facing community guides simple. If customers are expected to use communities, the documentation must be clear.

Lab Idea

You can build a simple BGP lab with three routers:

R1 - Customer
R2 - Service Provider
R3 - Upstream

Goal:

  1. R1 advertises a prefix to R2.
  2. R1 attaches community 64500:300.
  3. R2 matches the community.
  4. R2 prepends AS_PATH when advertising the route to R3.
  5. R3 receives the route with a longer AS_PATH.

Then extend the lab: add blackhole community 64500:666, verify communities with show bgp, remove send-community and observe what breaks, and test standard vs large communities.

Summary

BGP Communities are simple in concept but extremely powerful in practice.

They allow network engineers to tag routes and build flexible routing policies. In Service Provider networks, they are used for traffic engineering, blackholing, route filtering, customer policy control, and upstream selection. In Data Center networks, they are important for EVPN, VRFs, tenant separation, and route control.

If you work with BGP, you should understand communities well.

A small tag attached to a route can completely change how traffic flows across a network.

Read More ->>

BGP redistribution rules

Redistributing BGP into IGP and vice versa we need to remember about few rules that can be tricky.


IGP into BGP :
1) BGP automatically copies IGP metric to BGP
2) Origin attribute (LINK) will change to "?" - incomplete
3) Will not redistribute OSPF external by default.

BGP is not redistributing OSPF ext because of loop prevention. If some prefix has been  redistributed before from BGP int OSPF they will appear as OSPF ext, redistributing them back again into BGP will cause loops. This is default set up. To change that you need to configure

router bgp X
redistribute ospf Z match internal external


4) Sets weight attribute  to 32768

BGP  into IGP 
To be honest I have never seen this kind of redistribution  in practice. And that logical because there is no IGP who can handle (at this moment 16.09.2016) 655782 prefixes!

BTW here we can check what is current status of BGP table :
http://bgp.potaroo.net/index-bgp.html


and history of BGP table- this one is very impressive!



source : 
http://bgp.potaroo.net/

Back to the point:)
If you will ever do redistribution from BGP into IGP (e.g OSPF, EIGRP) you will do this in laboratory environment.
You need to remember about one big rules :
1) By default only eBGP routes are redistribute into IGP



 

Read More ->>

BGP Path Attributes

BGP attributes are divided into :

1) Well-known mandatory : it must be recognized by all BGP implementation. Everyone supports them.
                                           Mandatory attributes must be included in all BGP Update message


  • ORIGIN
  • AS-PATH
  • NEXT_HOP

2) Well-known discretionay : may or may not be sent int a specific Update required to support the attribute

  • LOCAL_PREF
  • ATOMIC_AGGREGATE

3) Optional transitive : BGP process should accept the path in which transitive att is included, even if it
                                    doesn't support and it should pass the path on to its peers

  • AGGREGATOR
  • COMMUNITY
4) Optional nontransitive : BGP process that doesn't recognize the attribute can ignore Update and not
                                          advertise the path to its other peer

  • MULTI_EXIT_DISC (MED)
  • ORIGINATOR_ID
  • CLUSTER_LIST
 
Read More ->>

BGP eBGP vs iBGP



Introduction
Border Gateway Protocol (BGP), is a protocol used for exchanging routes on a grand scale. It's old (latest version from 1995), slow (converging takes forever) and extremely scalable (laughs at areas/levels of IGPs). Because of its modularity it is also very flexible.
It's a path-vector type routing protocol, where traversed Autonomous Systems (AS) are the path and the interface from which to send a packet is the vector.
One of the most important characteristics of BGP is its scalability due to rarity of advertisements between neighbors. Whole routing knowledge is exchanged only during the session initiation. After that routes are advertised on "need to know" basis - i.e. when new information is learned or old information withdrawn.
BGP doesn't have its own connectivity protocol for communication between peers. It uses TCP port 179 to achieve reliable connections. Because of that, it's often argued that BGP isn't really a protocol per se, it's more of an application running on TCP protocol (like Telnet).
BGP is defined by:
  • RFC 1771, "A Border Gateway Protocol (BGP-4)"
  • RFC 1772, "Application of the Border Gateway Protocol in the Internet"
  • RFC 1966, "BGP Route Reflection: An Alternative to Full-Mesh I-BGP"
  • RFC 1997, "BGP Communities Attribute"
  • RFC 2270, "Using a Dedicated AS for Sites Homed to a Single Provider"
  • RFC 2385, "Protection of BGP Sessions through the TCP MD5 Signature Option"
  • RFC 2439, "BGP Route Flap Damping"
  • RFC 2842, "Capabilities Advertisement with BGP-4"
  • RFC 2858, "Multiprotocol Extensions for BGP-4"
  • RFC 2918, "Route Refresh Capability for BGP-4"
  • RFC 3065, "AS Confederations for BGP"
Neighbors
EBGP vs IBGP
BGP forms two types of relationships - external (EBGP) and internal (IBGP).
External relationships are by default limited to immediate physical connections by TTL equal 1. EBGP sessions are therefor set up using neighbor facing interface IP address. Default TTL can be increased with multihop command, which allows to establish remote relationships or use loopbacks to maintain a single session over multiple redundant links.
EBGP has one simple advertising rule - forward all active BGP learned routes to all BGP neighbors.
Internal relationships are usually setup over multiple hops - default TTL is 64 (same value as multihop external sessions and confederations). Suggested method of setting up session is using loopbacks to allow IGP to reroute in case of interface failure, which aids stability.
Because IBGP doesn't have a mechanism for loop detection (like AS Path attribute in EBGP) advertising rules were modified to avoid forming routing loops - forward all active EBGP learned routes to all BGP neighbors, however forward active IBGP learned routes only to EBGP neighbors.
Due to that rule, maintaining full mesh connectivity between internal peers is a common practice.
Read More ->>

BGP IP prefix list

Using IOS BGP IP prefix list we are able to provide the most powerful prefix based filtering mechanism. Like route maps, prefix lists are identified by a name (we also can use number but is rather situation). 

ip prefix-list NAME seq nr [ permit | deny ] A.B.C.D / nn  [ ge | le ] value


A.B.C.Dis your prefix
nn - prefix lenght
ge - greater than or equal
le - less than or equal


Read More ->>

BGP Attribute - CLUSTER_LIST

CLUSTER_LIST is a optional nontransitive attribute.Is a list of Cluster IDs that an update has traversed. When a Route Reflector sends a route, received from a client to a non-client, it appends the local Cluster ID to the CLUSTER_LIST. 

It is another loop prevention mechanism used in Route Refelction idea. When RR received an update, it first checks the CLUSTER_LIST. If it sees its own Cluster ID in the list, it knows that a routing loop has occured and ignores the update.


Read More ->>

BGP Attribute - ORIGINATOR_ID

ORIGINATOR_ID is a optional nontransitive attribute. Used by Route Reflectors to prevent loops. The ORIGINATOR_ID is a 32 bit value created by RR, is a router ID of the originator of the route in the local AS. 

If originator sees his router ID in ORIGINATOR_ID knows that a loop has occured, then the update is ignored.


Read More ->>

BGP Attribute - AS_PATH

AS_PATH is a well-known mandatory attribute that describes all the AS it has passed through. BGP router adds its AS number to the AS_PATH only when Update is sent to a neighbor in another AS. AS_PATH number is changed only when route is being advertised between EBGP peers.


The AS_PATH is displayed as a series of autonomous system (AS) numbers with the originator's AS number at the end of the path. 

Given the following diagram showing the relationship between several different AS.


This attribute is also very good loop prevention. If a BGP router receive a route from an external peer whose AS_PATH include its own AS number, the router knows that the route has looped so is dropped.

Read More ->>

BGP Attribute - COMMUNITY

COMMUNITY is a optional transitive attribute. Even if community is not recognized by router it is propagated to other neighbors.



1) Format :  There are three format of community (in Cisco IOS 12.0 and later) :
 
  • Decimal, range of0 to 4,294,967,200. Range of 0 to 65535 and 4294901760 to 4294967295 are reserved
  • Hexadecimal
  • New AA:NN format (AS number, 2-byte number). 
By default IOS uses decimal format. Nowadays most popular is AA:NN format, to use it you need issue the ip bgp-community new-format global configuration command.


2) Well known communites : 

  • INTERNET : all routes belongs to this community by default, doesn't have a value
  • NO_EXPORT (4294967041 or 0xFFFFFF01) : routes carrying this value cannot be advertised to EBGP peers or outside of the confederation
  • NO_ADVERTISE (4294967042 or 0xFFFFFF02) : routes carrying this values cannot be advertised at all to either EBGP or IBGP peers
  • LOCAL_AS (4294967043 or 0FFFFFF03) : routes received carrying this value cannot be advertised to EBGP oeers including peers in other AS within a confederation

3) Example of configuration : 

To set the community attributes you can use route maps :
  • set community community-number [additive] [well-known-community] 
  • route-map test
    match ip address 1
    set community no-export
     
    route-map test2
    match as-path 1
    set community 100 additive
Read More ->>

BGP Attribute - ORIGIN

ORIGIN is a well-known mandatory attribute that specifies the origin of the routing update. 

There are 3 values : 
  • i - Iternal/IGP - The route originated in an IGP. The NLRI was learn from a protocol internal to the originating AS. IP subnet is injected using network or aggregate command
  • e - EGP - The route was learned from EGP (Exterior Gateway Protocol) which is not used anymore
  • ? - Incomplete - The route was redistributed into BGP. The NLRI was learned by some other means. There is no way to determine the original source of the route.

 i < e < ? - lower is better !


BGP router will always prefer "i" routes, next "e" routes and "?" routes.


Read More ->>

BGP Path Algorithm

On cisco.com (http://www.cisco.com/en/US/tech/tk365/technologies_tech_note09186a0080094431.shtml) there is a great doc describes :

How the Best Path Algorithm Works

BGP assigns the first valid path as the current best path. BGP then compares the best path with the next path in the list, until BGP reaches the end of the list of valid paths. This list provides the rules that are used to determine the best path:
  1. Prefer the path with the highest WEIGHT.
    Note:  WEIGHT is a Cisco-specific parameter. It is local to the router on which it is configured.
  2. Prefer the path with the highest LOCAL_PREF.
    Note: A path without LOCAL_PREF is considered to have had the value set with the bgp default local-preference command, or to have a value of 100 by default.
  3. Prefer the path that was locally originated via a network or aggregate BGP subcommand or through redistribution from an IGP.
    Local paths that are sourced by the network or redistribute commands are preferred over local aggregates that are sourced by the aggregate-address command.
  4. Prefer the path with the shortest AS_PATH.
    Note: Be aware of these items:
    • This step is skipped if you have configured the bgp bestpath as-path ignore command.
    • An AS_SET counts as 1, no matter how many ASs are in the set.
    • The AS_CONFED_SEQUENCE and AS_CONFED_SET are not included in the AS_PATH length.
  5. Prefer the path with the lowest origin type.
    Note: IGP is lower than Exterior Gateway Protocol (EGP), and EGP is lower than INCOMPLETE.
  6. Prefer the path with the lowest multi-exit discriminator (MED).
    Note: Be aware of these items:
    • This comparison only occurs if the first (the neighboring) AS is the same in the two paths. Any confederation sub-ASs are ignored.
      In other words, MEDs are compared only if the first AS in the AS_SEQUENCE is the same for multiple paths. Any preceding AS_CONFED_SEQUENCE is ignored.
    • If bgp always-compare-med is enabled, MEDs are compared for all paths.
      You must disable this option over the entire AS. Otherwise, routing loops can occur.
    • If bgp bestpath med-confed is enabled, MEDs are compared for all paths that consist only of AS_CONFED_SEQUENCE.
      These paths originated within the local confederation.
    • THE MED of paths that are received from a neighbor with a MED of 4,294,967,295 is changed before insertion into the BGP table. The MED changes to to 4,294,967,294.
    • Paths received with no MED are assigned a MED of 0, unless you have enabled bgp bestpath med missing-as-worst .
      If you have enabled bgp bestpath med missing-as-worst, the paths are assigned a MED of 4,294,967,294.
    • The bgp deterministic med command can also influence this step.
      Refer to How BGP Routers Use the Multi-Exit Discriminator for Best Path Selection for a demonstration.
  7. Prefer eBGP over iBGP paths.
    If bestpath is selected, go to Step 9 (multipath).
    Note: Paths that contain AS_CONFED_SEQUENCE and AS_CONFED_SET are local to the confederation. Therefore, these paths are treated as internal paths. There is no distinction between Confederation External and Confederation Internal.
  8. Prefer the path with the lowest IGP metric to the BGP next hop.
    Continue, even if bestpath is already selected.
  9. Determine if multiple paths require installation in the routing table for BGP Multipath.
    Continue, if bestpath is not yet selected.
  10. When both paths are external, prefer the path that was received first (the oldest one).
    This step minimizes route-flap because a newer path does not displace an older one, even if the newer path would be the preferred route based on the next decision criteria (Steps 11, 12, and 13).
    Skip this step if any of these items is true:
    • You have enabled the bgp best path compare-routerid command.
      Note: Cisco IOS Software Releases 12.0.11S, 12.0.11SC, 12.0.11S3, 12.1.3, 12.1.3AA, 12.1.3.T, and 12.1.3.E introduced this command.
    • The router ID is the same for multiple paths because the routes were received from the same router.
    • There is no current best path.
      The current best path can be lost when, for example, the neighbor that offers the path goes down.
  11. Prefer the route that comes from the BGP router with the lowest router ID.
    The router ID is the highest IP address on the router, with preference given to loopback addresses. Also, you can use the bgp router-id command to manually set the router ID.
    Note: If a path contains route reflector (RR) attributes, the originator ID is substituted for the router ID in the path selection process.
  12. If the originator or router ID is the same for multiple paths, prefer the path with the minimum cluster list length.
    This is only present in BGP RR environments. It allows clients to peer with RRs or clients in other clusters. In this scenario, the client must be aware of the RR-specific BGP attribute.
  13. Prefer the path that comes from the lowest neighbor address.
    This address is the IP address that is used in the BGP neighbor configuration. The address corresponds to the remote peer that is used in the TCP connection with the local router.
Read More ->>

Whole IP BGP table

If you want to check how currnet BGP table looks like you can do this, just telnet to :

route-server.ip.att.net - 12.0.1.28  login: rviews
route-server.cerf.net - 12.129.193.235



The routing table summary :



route-server>sho ip route summary
IP routing table name is Default-IP-Routing-Table(0)
IP routing table maximum-paths is 32
Route Source    Networks    Subnets     Overhead    Memory (bytes)
connected       0           1           64          152
static          3           11          896         2128
bgp 65000       144357      224127      23582976    56282928
  External: 368484 Internal: 0 Local: 0
internal        4254                                4985688
Total           148614      224139      23583936    61270896
route-server>
Read More ->>

BGP messages types

As I wrote before, when Router is in „Connect State” it’s waiting for a completed TCP connection. To do this task, the two neighbors must perform the standard TCP three-way handshake and open a TCP connection to port 179.



TCP provides fragmentation, acknowledgment, retransmission and sequencing functions necessary for a reliable connection, relieving BGP of those duties.
All BGP message are unicast to the one neighbor over the TCP connection.

BGP message types :
1. Open
2. Keepalive
3. Update
4. Notification


1. OPEN
Routers use this message to identify itself and to specify its BGP operational parameters. Open message is always send when the TCP session is established between neighbors.

Open message include following fields:

Field Length in Bytes


·       Version – specifies the version (2,3 or 4), default 4.
·     Autonomous System – provides AS number of the sender. It determines whether the BGP session is EBGP or IBPG (if the AS number are the same )
·      Hold-Time – indicates the maximum number of seconds that can elapse without receipt of message before transmitter is assumed to be nonfuctional. The default Cisco hold time is 180 sec. If the neighbors hold time differ, the smaller of the two times become the accepted hold time.
·      BGP Identifier – Provides the BGP identifier of the sender (an IP address). IOS determines identifier in exactly the same way as OSPF router ID. The highest loopback interface address is used, if there is no loopback the numerically highest IP address on a physical interface is selected.
·    Optional Parameters Length – indicates the length or absence (with a zero value) of the optional parameters filed
·        Optional Parameters – contains a list of optional parameters as authentication, multiprotocol support and route refresh.


2. KEEPALIVE
If a router accepts the parameters specified in Open message, it responds Keepalive. By default Cisco sends keepalive every 60 sec or a period equal to 1/3 the hold time.


3. UPDATE MESSAGE
Advertises feasible routes, withdrawn routes or both. Update message contains five fields :

Field Length in Bytes


·        Unfeasible Routes Length –  Indicates the total length of the withdrawn routes field or that the field is not present.
·        Withdrawn Routes — Contains a list of IP address prefixes for routes being withdrawn from. These are (Length, Prefix) tuples describing destinations that have become unreachable and are being withdrawn from service.
·        Total Path Attribute Length Indicates the total length of the path attributes field or that the field is not present.
·        Path Attributes Describes the characteristics of the advertised path. The following are possible attributes for a path

Origin: Mandatory attribute that defines the origin of the path information
AS Path: Mandatory attribute composed of a sequence of autonomous system path segments
Next Hop: Mandatory attribute that defines the IP address of the border router that should be used as the next hop to destinations listed in the network layer reachability information field
Mult Exit Disc: Optional attribute used to discriminate between multiple exit points to a neighboring autonomous system
Local Pref: Discretionary attribute used to specify the degree of preference for an advertised route
Atomic Aggregate: Discretionary attribute used to disclose information about route selections
Aggregator: Optional attribute that contains information about aggregate routes

·        Network Layer Reachability Information (NLRI) Contains a list of IP address prefixes for the advertised routes.


4. NOTIFICATION MESSAGE
This message is sent whenever something bad has happened, e.g. an error is detected and causes the BGP connection to close.

A BGP notification message consist : 

Field Length in Bytes


  
·        Error Code — Indicates the type of error that occurred. The following are the error types defined by the field:

Message Header Error: Indicates a problem with a message header, such as unacceptable message length, unacceptable marker field value, or unacceptable message type.
Open Message Error: Indicates a problem with an open message, such as unsupported version number, unacceptable autonomous system number or IP address, or unsupported authentication code.
Update Message Error: Indicates a problem with an update message, such as a malformed attribute list, attribute list error, or invalid next-hop attribute.
Hold Time Expired: Indicates that the hold-time has expired, after which time a BGP node will be considered nonfunctional.
Finite State Machine Error: Indicates an unexpected event.
Cease: Closes a BGP connection at the request of a BGP device in the absence of any fatal errors.

·        Error Subcode — Provides more specific information about the nature of the reported error.

·        Error Data — Contains data based on the error code and error subcode fields. This field is used to diagnose the reason for the notification message.



source : “Internetworking Technology Overview”, “Routing TCP/IP Vol2”, cisco.com

Read More ->>

Popular Posts