Cisco NX-OS/IOS BGP (Basic) Comparison
From DocWiki
Objective
This tech note outlines the main differences in Border Gateway Protocol support between Cisco® NX-OS Software and Cisco IOS® Software. Sample configurations are included for the Cisco NX-OS and Cisco IOS Software for some common features to demonstrate the similarities and differences. Please refer to the NX-OS documentation on Cisco.com for a complete list of supported features.
BGP Overview
BGPv4 is a standard Exterior Routing Protocol defined in RFC 4271, commonly used to exchange network reachability information between autonomous systems. This document covers the features required for basic connectivity.
Important Cisco NX-OS and Cisco IOS Software Differences
In Cisco NX-OS:
- BGP CLI configuration and verification commands are not available until you enable the BGP feature via the feature bgp command.
- The BGP protocol requires the Enterprise Services license.
- Autonomous Numbers can be configured as 16 or 32 bit values.
- Address families need to be explicitly enabled (IE: IPv4 unicast, IPv6 unicast, etc…)
- By default, eBGP supports 8 Equal Cost Paths and iBGP supports 1. The Cisco NX-OS supports up to 16 Equal Cost Paths for both eBGP and iBGP.
- Automatic Route Summarization and Synchronization are disabled by default.
- BGP consists of a hierarchical configuration based on neighbors and address families.
- If a router ID is not manually configured, the loopback 0 IP address is always preferred. If loopback 0 does not exist, Cisco NX-OS selects the IP address for the first loopback interface in the configuration. If no loopback interfaces exist, Cisco NX-OS selects the IP address for the first physical interface in the configuration.
- Neighbor logging is not enabled by default under the BGP instance.
- When neighbor authentication is configured, the BGP key is 3DES encrypted in the configuration. Cisco IOS Software requires the service password command.
Things You Should Know
The following list provides some additional facts about Cisco NX-OS that should be helpful when designing, configuring, and maintaining a BGP network.
- One BGP instances can be created per Virtual Device Context (VDC).
- Numerous Virtual Route Forwarding (VRF) instances can be associated to a BGP instance.
- If the feature bgp command is removed, all relevant BGP configuration information is also removed.
- Network statements must be configured under their respective address-family configuration mode when advertising them via BGP.
- The shutdown command under the BGP instance can be used to disable BGP while retaining the configuration.
- The show running-config bgp command displays the current BGP configuration.
- A BGP instance can be restarted with the restart bgp <instance #> command.
- Graceful Restart (RFC 3623) is enabled by default.
Configuration Comparison
The following sample configuration code similarities and differences between the Cisco NX-OS and Cisco IOS Software CLIs. There are three significant differences: The Cisco NX-OS allows BGP to be enabled and disabled globally. It utilizes a hierarchical configuration that makes it easier to read. The Cisco NX-OS does not enable any address families by default. Each address-family needs to be explicitly enabled. The following examples demonstrate this using the IPv4 unicast address family.
| Cisco IOS CLI | Cisco NX-OS CLI | |
|---|---|---|
| Enabling the BGP Feature |
| Cisco IOS Software does not have the functionality to enable or disable BGP. | feature bgp |
|---|
| Configuring a BGP Instance and Router ID |
| router bgp 10
bgp router-id 192.168.1.1 | router bgp 10
router-id 192.168.1.1 |
|---|
| Configuring a BGP Neighbor (Internal) |
| router bgp 10
neighbor 192.168.2.1 remote-as 10 neighbor 192.168.2.1 update-source Loopback0 | router bgp 10
neighbor 192.168.2.1 remote-as 10 update-source loopback0 address-family ipv4 unicast |
|---|
| Configuring a BGP Neighbor (External) |
| router bgp 10
neighbor 192.168.10.2 remote-as 11 | router bgp 10
neighbor 192.168.10.2 remote-as 11 address-family ipv4 unicast |
|---|
| Advertising a Network in an Address Family (IPv4) |
| router bgp 10
network 159.142.1.0 mask 255.255.255.0 network 159.142.254.0 mask 255.255.255.0 neighbor 192.168.10.2 remote-as 11 | router bgp 10
address-family ipv4 unicast network 159.142.1.0/24 network 159.142.254.0/24 neighbor 192.168.10.2 remote-as 11 address-family ipv4 unicast |
|---|
| Configuring Neighbor Authentication (MD5) |
| router bgp 10
neighbor 192.168.10.2 remote-as 11 neighbor 192.168.10.2 password cisco123 | router bgp 10
neighbor 192.168.10.2 remote-as 11 password 3 a667d47acc18ea6b address-family ipv4 unicast |
|---|
| Configuring an Aggregate Address (Summary-Only) |
| router bgp 10
network 159.142.1.0 mask 255.255.255.0 network 159.142.254.0 mask 255.255.255.0 aggregate-address 159.142.0.0 255.255.0.0 summary-only neighbor 192.168.10.2 remote-as 11 | router bgp 10
address-family ipv4 unicast network 159.142.1.0/24 network 159.142.254.0/24 aggregate-address 159.142.0.0/16 summary-only neighbor 192.168.10.2 remote-as 11 address-family ipv4 unicast |
|---|
| Generating a Default Route for a Neighbor |
| router bgp 10
neighbor 192.168.10.2 remote-as 11 neighbor 192.168.10.2 default-originate | router bgp 10
neighbor 192.168.10.2 remote-as 11 address-family ipv4 unicast default-originate |
|---|
Verification Command Comparison
The following table compares some useful show commands for verifying and troubleshooting a BGP network configuration.
| Cisco NX-OS BGP | Cisco IOS Software BGP | Command Description |
|---|---|---|
| show ip bgp <option> | show ip bgp | Displays BGP Process and BGP table entries |
| show ip bgp x.x.x.x | show ip bgp x.x.x.x | Displays a specific network in the BGP table |
| show ip bgp x.x.x.x vrf | - | Displays a network in a specified VRF BGP table |
| show ip bgp x.x.x.x/len | show ip bgp x.x.x.x mask | Displays a specific prefix in the BGP table |
| show ip bgp x.x.x.x/len longer-prefix | show ip bgp x.x.x.x mask longer-prefix | Displays a prefix in the table with longer prefixes |
| show ip bgp all | show ip bgp all | Displays the BGP table for all protocol families |
| show ip bgp community <word> | show ip bgp community <#> | Displays routes with a specific regular expression |
| show ip bgp community <aa:nn> | - | Displays routes with a specific community value |
| show ip bgp community internet | - | Displays BGP routes advertised to the Internet |
| show ip bgp community no-advertise | show ip bgp community no-advertise | Displays BGP routes not advertised to peers |
| show ip bgp community no-export | show ip bgp community no-export | Displays BGP routes not exported to next AS |
| show ip bgp community no-export-spoofed | - | Displays BGP routes not sent to outside local AS |
| show ip bgp dampening dampened-paths | show ip bgp dampening dampened-paths | Displays all Dampened paths |
| show ip bgp dampening flap-statistics | show ip bgp dampening flap-statistics | Displays flap statistics for BGP routes |
| show ip bgp dampening history-paths | - | Displays all history paths |
| show ip bgp dampening parameters | show ip bgp dampening parameters | Displays all of the Dampening parameters |
| show ip bgp filter-list | show ip bgp filter-list | Displays all routes matching a specified filter list |
| show ip bgp flap-statistics | - | Displays all BGP route flap statistics |
| show ip bgp ipv4 multicast <option> | show ip bgp ipv4 multicast <option> | Displays BGP IPv4 multicast address families |
| show ip bgp ipv4 unicast <option> | show ip bgp ipv4 unicast <option> | Displays BGP IPv4 unicast address families |
| show ip bgp neighbors | show ip bgp neighbors | Displays detailed neighbor information |
| show ip bgp neighbors x.x.x.x | show ip bgp neighbors x.x.x.x | Displays detailed information for a neighbor |
| show ip bgp nexhop x.x.x.x | - | Displays all routes matching a specified next-hop |
| show ip bgp paths | show ip bgp paths | Displays all BGP paths |
| show ip bgp peer-policy | - | Displays BGP peer policy by specified name |
| show ip bgp peer-session | - | Displays information about a peer session |
| show ip bgp peer-template | show ip bgp unicast ipv4 template | Displays information about a peer template |
| show ip bgp prefix-list | show ip bgp prefix-list | Displays routes matching a specified prefix-list |
| show ip bgp regexp | show ip bgp regexp | Displays routes matching a regular-expression |
| show ip bgp route-map | show ip bgp route-map | Displays BGP routes matching a route-map |
| show ip bgp summary | show ip bgp summary | Displays a summary list of neighbors and statistics |
| show ip bgp vrf | show ip bgp vpnv4 vrf | Displays information for a specified BGP VRF |
