Cisco IOS IP Configuration Guide: Release 12.2
Cisco IOS IP Configuration Guide: Release 12.2
IP
Configuration Guide
Release 12.2
Corporate Headquarters
Cisco Systems, Inc.
170 West Tasman Drive
San Jose, CA 95134-1706
USA
http://www.cisco.com
Tel: 408 526-4000
800 553-NETS (6387)
Fax: 408 526-4100
THE SOFTWARE LICENSE AND LIMITED WARRANTY FOR THE ACCOMPANYING PRODUCT ARE SET FORTH IN THE INFORMATION
PACKET THAT SHIPPED WITH THE PRODUCT AND ARE INCORPORATED HEREIN BY THIS REFERENCE. IF YOU ARE UNABLE TO
LOCATE THE SOFTWARE LICENSE OR LIMITED WARRANTY, CONTACT YOUR CISCO REPRESENTATIVE FOR A COPY.
The Cisco implementation of TCP header compression is an adaptation of a program developed by the University of California, Berkeley (UCB) as part of
UCB’s public domain version of the UNIX operating system. All rights reserved. Copyright © 1981, Regents of the University of California.
NOTWITHSTANDING ANY OTHER WARRANTY HEREIN, ALL DOCUMENT FILES AND SOFTWARE OF THESE SUPPLIERS ARE PROVIDED
“AS IS” WITH ALL FAULTS. CISCO AND THE ABOVE-NAMED SUPPLIERS DISCLAIM ALL WARRANTIES, EXPRESSED OR IMPLIED,
INCLUDING, WITHOUT LIMITATION, THOSE OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT OR ARISING FROM A COURSE OF DEALING, USAGE, OR TRADE PRACTICE.
IN NO EVENT SHALL CISCO OR ITS SUPPLIERS BE LIABLE FOR ANY INDIRECT, SPECIAL, CONSEQUENTIAL, OR INCIDENTAL
DAMAGES, INCLUDING, WITHOUT LIMITATION, LOST PROFITS OR LOSS OR DAMAGE TO DATA ARISING OUT OF THE USE OR
INABILITY TO USE THIS MANUAL, EVEN IF CISCO OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
AccessPath, AtmDirector, Browse with Me, CCDA, CCDE, CCDP, CCIE, CCNA, CCNP, CCSI, CD-PAC, CiscoLink, the Cisco NetWorks logo, the Cisco
Powered Network logo, Cisco Systems Networking Academy, the Cisco Systems Networking Academy logo, Fast Step, Follow Me Browsing, FormShare,
FrameShare, GigaStack, IGX, Internet Quotient, IP/VC, iQ Breakthrough, iQ Expertise, iQ FastTrack, the iQ Logo, iQ Net Readiness Scorecard, MGX,
the Networkers logo, Packet, PIX, RateMUX, ScriptBuilder, ScriptShare, SlideCast, SMARTnet, TransPath, Unity, Voice LAN, Wavelength Router, and
WebViewer are trademarks of Cisco Systems, Inc.; Changing the Way We Work, Live, Play, and Learn, Discover All That’s Possible, and Empowering
the Internet Generation, are service marks of Cisco Systems, Inc.; and Aironet, ASIST, BPX, Catalyst, Cisco, the Cisco Certified Internetwork Expert logo,
Cisco IOS, the Cisco IOS logo, Cisco Systems, Cisco Systems Capital, the Cisco Systems logo, Enterprise/Solver, EtherChannel, EtherSwitch, FastHub,
FastSwitch, IOS, IP/TV, LightStream, MICA, Network Registrar, Post-Routing, Pre-Routing, Registrar, StrataView Plus, Stratm, SwitchProbe, TeleRouter,
and VCO are registered trademarks of Cisco Systems, Inc. or its affiliates in the U.S. and certain other countries.
All other brands, names, or trademarks mentioned in this document or Web site are the property of their respective owners. The use of the word partner
does not imply a partnership relationship between Cisco and any other company. (0102R)
Audience xxix
Getting Help xl
Example: How to Find Command Options xli
IP Overview IPC-1
IP ROUTING PROTOCOLS
Basic OSPF Configuration Example for Internal Router, ABR, and ASBRs IPC-246
Complex Internal Router, ABR, and ASBRs Example IPC-246
Complex OSPF Configuration for ABR Examples IPC-249
Route Map Examples IPC-250
Changing OSPF Administrative Distance Example IPC-252
OSPF over On-Demand Routing Example IPC-253
LSA Group Pacing Example IPC-255
Block LSA Flooding Example IPC-255
Ignore MOSPF LSA Packets Example IPC-255
IP MULTICAST
Restrictions IPC-412
Changing the IGMP Query Timeout IPC-413
Changing the Maximum Query Response Time IPC-413
Configuring the Router as a Statically Connected Member IPC-413
Configuring IGMP Leave Latency IPC-414
Configuring the TTL Threshold IPC-415
Load Splitting IP Multicast Traffic Across Equal-Cost Paths Configuration Task List IPC-441
Enabling Native Load Splitting IPC-442
Enabling Load Splitting Across Tunnels IPC-442
Configuring the Access Router IPC-443
Configuring the Router at the Opposite End of the Tunnel IPC-443
Configuring Both Routers to RPF IPC-444
Verifying the Load Splitting IPC-445
Monitoring and Maintaining IP Multicast Routing Configuration Task List IPC-445
Clearing Caches, Tables, and Databases IPC-446
Displaying System and Network Statistics IPC-446
Using IP Multicast Heartbeat IPC-447
IP Multicast Configuration Examples IPC-448
PIM Dense Mode Example IPC-448
PIM Sparse Mode Example IPC-448
PIM Dense Mode State Refresh Example IPC-449
Functional Address for IP Multicast over Token Ring LAN Example IPC-449
PIM Version 2 Examples IPC-449
BSR Configuration Example IPC-449
Border Router Configuration Example IPC-450
RFC 2362 Interoperable Candidate RP Example IPC-450
RTP Header Compression Examples IPC-451
Express RTP Header Compression with PPP Encapsulation Example IPC-452
Express RTP Header Compression with Frame Relay Encapsulation Example IPC-453
IP Multicast over ATM Point-to-Multipoint VC Example IPC-454
Administratively Scoped Boundary Example IPC-455
IP Multicast Helper Example IPC-455
Stub IP Multicast Example IPC-456
Load Splitting IP Multicast Traffic Across Equal-Cost Paths Example IPC-457
IP Multicast Heartbeat Example IPC-458
Benefits IPC-464
IP Multicast Address Management Not Required IPC-464
Denial of Service Attacks from Unwanted Sources Inhibited IPC-464
Easy to Install and Manage IPC-464
Ideal for Internet Broadcast Applications IPC-465
Restrictions IPC-465
Legacy Applications Within the SSM Range Restrictions IPC-465
IGMP v3lite and URD Require a Cisco IOS Last Hop Router IPC-465
Address Management Restrictions IPC-465
IGMP Snooping and CGMP Limitations IPC-466
URD Intercept URL Limitations IPC-466
State Maintenance Limitations IPC-466
HSIL Limitations IPC-466
SSM Configuration Task List IPC-467
Configuring SSM IPC-467
Monitoring SSM IPC-467
SSM Configuration Examples IPC-468
SSM with IGMPv3 Example IPC-468
SSM with IGMP v3lite and URD Example IPC-468
SSM Filtering Example IPC-468
DF Election IPC-473
Bidirectional Group Tree Building IPC-474
Packet Forwarding IPC-474
Bidir-PIM Configuration Task List IPC-474
Prerequisites IPC-474
Configuring Bidir-PIM IPC-475
Verifying Bidirectional Groups IPC-475
Monitoring and Maintaining Bidir-PIM IPC-476
Bidir-PIM Configuration Example IPC-476
Benefits IPC-479
Prerequisites IPC-479
Integrated UDLR Tunnel, IGMP UDLR, and IGMP Proxy Example IPC-518
INDEX
This chapter discusses the objectives, audience, organization, and conventions of Cisco IOS software
documentation. It also provides sources for obtaining documentation from Cisco Systems.
Documentation Objectives
Cisco IOS software documentation describes the tasks and commands necessary to configure and
maintain Cisco networking devices.
Audience
The Cisco IOS software documentation set is intended primarily for users who configure and maintain
Cisco networking devices (such as routers and switches) but who may not be familiar with the tasks,
the relationship between tasks, or the Cisco IOS software commands necessary to perform particular
tasks. The Cisco IOS software documentation set is also intended for those users experienced with
Cisco IOS software who need to know about new features, new configuration options, and new software
characteristics in the current Cisco IOS software release.
Documentation Organization
The Cisco IOS software documentation set consists of documentation modules and master indexes. In
addition to the main documentation set, there are supporting documents and resources.
Documentation Modules
The Cisco IOS documentation modules consist of configuration guides and corresponding command
reference publications. Chapters in a configuration guide describe protocols, configuration tasks, and
Cisco IOS software functionality and contain comprehensive configuration examples. Chapters in a
command reference publication provide complete Cisco IOS command syntax information. Use each
configuration guide in conjunction with its corresponding command reference publication.
Note The abbreviations (for example, FC and FR) next to the book icons are page designators,
which are defined in a key in the index of each document to help you with navigation. The
bullets under each module list the major technology areas discussed in the corresponding
books.
IPC IP1R
Cisco IOS
IP
FC Cisco IOS Configuration Cisco IOS P2C Cisco IOS P3C Cisco IOS
Configuration Guide IP Command AppleTalk and Apollo Domain,
Fundamentals Reference, Novell IPX Banyan VINES,
Configuration Volume 1 of 3: Configuration DECnet, ISO
Guide Addressing Guide CLNS, and XNS
and Services Configuration
IP3R Guide
• IP Security Options
• Supported AV Pairs
B1R B2R
Cisco IOS
Cisco IOS Cisco IOS
Cisco IOS Bridging
DR Dial TR Terminal and IBM Bridging
Technologies and IBM
Services Networking
Command Networking
Command Command
Reference Command
Reference Reference,
Volume 1 of 2 Reference,
Volume 2 of 2
Master Indexes
Two master indexes provide indexing information for the Cisco IOS software documentation set:
an index for the configuration guides and an index for the command references. Individual books also
contain a book-specific index.
The master indexes provide a quick way for you to find a command when you know the command name
but not which module contains the command. When you use the online master indexes, you can click
the page number for an index entry and go to that page in the online document.
Document Conventions
Within Cisco IOS software documentation, the term router is generally used to refer to a variety of Cisco
products (for example, routers, access servers, and switches). Routers, access servers, and other
networking devices that support Cisco IOS software are shown interchangeably within examples. These
products are used only for illustrative purposes; that is, an example that shows one product does not
necessarily indicate that other products are not supported.
The Cisco IOS documentation set uses the following conventions:
Convention Description
^ or Ctrl The ^ and Ctrl symbols represent the Control key. For example, the key combination ^D or Ctrl-D
means hold down the Control key while you press the D key. Keys are indicated in capital letters but
are not case sensitive.
string A string is a nonquoted set of characters shown in italics. For example, when setting an SNMP
community string to public, do not use quotation marks around the string or the string will include the
quotation marks.
Convention Description
boldface Boldface text indicates commands and keywords that you enter literally as shown.
italics Italic text indicates arguments for which you supply values.
[x] Square brackets enclose an optional element (keyword or argument).
| A vertical line indicates a choice within an optional or required set of keywords or arguments.
[x | y] Square brackets enclosing keywords or arguments separated by a vertical line indicate an optional
choice.
{x | y} Braces enclosing keywords or arguments separated by a vertical line indicate a required choice.
Nested sets of square brackets or braces indicate optional or required choices within optional or
required elements. For example:
Convention Description
[x {y | z}] Braces and a vertical line within square brackets indicate a required choice within an optional element.
Convention Description
screen Examples of information displayed on the screen are set in Courier font.
boldface screen Examples of text that you must enter are set in Courier bold font.
< > Angle brackets enclose text that is not printed to the screen, such as passwords.
! An exclamation point at the beginning of a line indicates a comment line. (Exclamation points are also
displayed by the Cisco IOS software for certain processes.)
[ ] Square brackets enclose default responses to system prompts.
The following conventions are used to attract the attention of the reader:
Caution Means reader be careful. In this situation, you might do something that could result in
equipment damage or loss of data.
Note Means reader take note. Notes contain helpful suggestions or references to materials not
contained in this manual.
Timesaver Means the described action saves time. You can save time by performing the action
described in the paragraph.
Obtaining Documentation
The following sections provide sources for obtaining documentation from Cisco Systems.
Documentation CD-ROM
Cisco documentation and additional literature are available in a CD-ROM package, which ships
with your product. The Documentation CD-ROM is updated monthly and may be more current than
printed documentation. The CD-ROM package is available as a single unit or through an
annual subscription.
Ordering Documentation
Cisco documentation can be ordered in the following ways:
• Registered Cisco Direct Customers can order Cisco product documentation from the Networking
Products MarketPlace:
http://www.cisco.com/cgi-bin/order/order_root.pl
• Registered Cisco.com users can order the Documentation CD-ROM through the online
Subscription Store:
http://www.cisco.com/go/subscription
• Nonregistered Cisco.com users can order documentation through a local account representative by
calling Cisco corporate headquarters (California, USA) at 408 526-7208 or, in North America, by
calling 800 553-NETS(6387).
Documentation Feedback
If you are reading Cisco product documentation on the World Wide Web, you can submit technical
comments electronically. Click Feedback in the toolbar and select Documentation. After you complete
the form, click Submit to send it to Cisco.
You can e-mail your comments to [email protected].
To submit your comments by mail, use the response card behind the front cover of your document, or
write to the following address:
Cisco Systems, Inc.
Document Resource Connection
170 West Tasman Drive
San Jose, CA 95134-9883
We appreciate your comments.
Cisco.com
Cisco.com is the foundation of a suite of interactive, networked services that provides immediate, open
access to Cisco information and resources at anytime, from anywhere in the world. This highly
integrated Internet application is a powerful, easy-to-use tool for doing business with Cisco.
Cisco.com provides a broad range of features and services to help customers and partners streamline
business processes and improve productivity. Through Cisco.com, you can find information about Cisco
and our networking solutions, services, and programs. In addition, you can resolve technical issues with
online technical support, download and test software packages, and order Cisco learning materials and
merchandise. Valuable online skill assessment, training, and certification programs are also available.
Customers and partners can self-register on Cisco.com to obtain additional personalized information
and services. Registered users can order products, check on the status of an order, access technical
support, and view benefits specific to their relationships with Cisco.
To access Cisco.com, go to the following website:
http://www.cisco.com
This chapter provides helpful tips for understanding and configuring Cisco IOS software using the
command-line interface (CLI). It contains the following sections:
• Understanding Command Modes
• Getting Help
• Using the no and default Forms of Commands
• Saving Configuration Changes
• Filtering Output from the show and more Commands
• Identifying Supported Platforms
For an overview of Cisco IOS software configuration, refer to the Cisco IOS Configuration
Fundamentals Configuration Guide.
For information on the conventions used in the Cisco IOS software documentation set, see the chapter
“About Cisco IOS Software Documentation” located at the beginning of this book.
Table 1 describes how to access and exit various common command modes of the Cisco IOS software.
It also shows examples of the prompts displayed for each mode.
Command
Mode Access Method Prompt Exit Method
User EXEC Log in. Router> Use the logout command.
Privileged From user EXEC mode, Router# To return to user EXEC mode, use the disable
EXEC use the enable EXEC command.
command.
Global From privileged EXEC Router(config)# To return to privileged EXEC mode from global
configuration mode, use the configure configuration mode, use the exit or end command,
terminal privileged or press Ctrl-Z.
EXEC command.
Interface From global Router(config-if)# To return to global configuration mode, use the exit
configuration configuration mode, command.
specify an interface using To return to privileged EXEC mode, use the end
an interface command. command, or press Ctrl-Z.
ROM monitor From privileged EXEC > To exit ROM monitor mode, use the continue
mode, use the reload command.
EXEC command. Press
the Break key during the
first 60 seconds while the
system is booting.
For more information on command modes, refer to the “Using the Command-Line Interface” chapter in
the Cisco IOS Configuration Fundamentals Configuration Guide.
Getting Help
Entering a question mark (?) at the CLI prompt displays a list of commands available for each command
mode. You can also get a list of keywords and arguments associated with any command by using the
context-sensitive help feature.
To get help specific to a command mode, a command, a keyword, or an argument, use one of the
following commands:
Command Purpose
help Provides a brief description of the help system in any command mode.
abbreviated-command-entry? Provides a list of commands that begin with a particular character string. (No space
between command and question mark.)
abbreviated-command-entry<Tab> Completes a partial command name.
? Lists all commands available for a particular command mode.
command ? Lists the keywords or arguments that you must enter next on the command line.
(Space between command and question mark.)
Command Comment
Router> enable Enter the enable command and
Password: <password> password to access privileged EXEC
Router#
commands. You are in privileged
EXEC mode when the prompt changes
to Router#.
Router# configure terminal Enter the configure terminal
Enter configuration commands, one per line. End with CNTL/Z. privileged EXEC command to enter
Router(config)#
global configuration mode. You are in
global configuration mode when the
prompt changes to Router(config)#.
Router(config)# interface serial ? Enter interface configuration mode by
<0-6> Serial interface number specifying the serial interface that you
Router(config)# interface serial 4 ?
/
want to configure using the interface
Router(config)# interface serial 4/ ? serial global configuration command.
<0-3> Serial interface number
Enter ? to display what you must enter
Router(config)# interface serial 4/0
Router(config-if)# next on the command line. In this
example, you must enter the serial
interface slot number and port number,
separated by a forward slash.
You are in interface configuration mode
when the prompt changes to
Router(config-if)#.
Command Comment
Router(config-if)# ? Enter ? to display a list of all the
Interface configuration commands: interface configuration commands
.
.
available for the serial interface. This
. example shows only some of the
ip Interface Internet Protocol config commands available interface configuration
keepalive Enable keepalive commands.
lan-name LAN Name command
llc2 LLC2 Interface Subcommands
load-interval Specify interval for load calculation for an
interface
locaddr-priority Assign a priority group
logging Configure logging for interface
loopback Configure internal loopback on an interface
mac-address Manually set interface MAC address
mls mls router sub/interface commands
mpoa MPOA interface configuration commands
mtu Set the interface Maximum Transmission Unit (MTU)
netbios Use a defined NETBIOS access list or enable
name-caching
no Negate a command or set its defaults
nrzi-encoding Enable use of NRZI encoding
ntp Configure NTP
.
.
.
Router(config-if)#
Router(config-if)# ip ? Enter the command that you want to
Interface IP configuration subcommands: configure for the interface. This
access-group Specify access control for packets
accounting Enable IP accounting on this interface
example uses the ip command.
address Set the IP address of an interface Enter ? to display what you must enter
authentication authentication subcommands
next on the command line. This
bandwidth-percent Set EIGRP bandwidth limit
broadcast-address Set the broadcast address of an interface example shows only some of the
cgmp Enable/disable CGMP available interface IP configuration
directed-broadcast Enable forwarding of directed broadcasts commands.
dvmrp DVMRP interface commands
hello-interval Configures IP-EIGRP hello interval
helper-address Specify a destination address for UDP broadcasts
hold-time Configures IP-EIGRP hold time
.
.
.
Router(config-if)# ip
Command Comment
Router(config-if)# ip address ? Enter the command that you want to
A.B.C.D IP address configure for the interface. This
negotiated IP Address negotiated over PPP
Router(config-if)# ip address
example uses the ip address command.
Enter ? to display what you must enter
next on the command line. In this
example, you must enter an IP address
or the negotiated keyword.
A carriage return (<cr>) is not
displayed; therefore, you must enter
additional keywords or arguments to
complete the command.
Router(config-if)# ip address 172.16.0.1 ? Enter the keyword or argument you
A.B.C.D IP subnet mask want to use. This example uses the
Router(config-if)# ip address 172.16.0.1
172.16.0.1 IP address.
Enter ? to display what you must enter
next on the command line. In this
example, you must enter an IP subnet
mask.
A <cr> is not displayed; therefore, you
must enter additional keywords or
arguments to complete the command.
Router(config-if)# ip address 172.16.0.1 255.255.255.0 ? Enter the IP subnet mask. This example
secondary Make this IP address a secondary address uses the 255.255.255.0 IP subnet mask.
<cr>
Router(config-if)# ip address 172.16.0.1 255.255.255.0 Enter ? to display what you must enter
next on the command line. In this
example, you can enter the secondary
keyword, or you can press Enter.
A <cr> is displayed; you can press
Enter to complete the command, or
you can enter another keyword.
Router(config-if)# ip address 172.16.0.1 255.255.255.0 In this example, Enter is pressed to
Router(config-if)# complete the command.
have variables set to certain default values. In these cases, the default form of the command enables the
command and sets the variables to their default values. The Cisco IOS software command reference
publications describe the effect of the default form of a command if the command functions differently
than the no form.
It might take a minute or two to save the configuration. After the configuration has been saved, the
following output appears:
[OK]
Router#
On most platforms, this task saves the configuration to NVRAM. On the Class A Flash file system
platforms, this task saves the configuration to the location specified by the CONFIG_FILE environment
variable. The CONFIG_FILE variable defaults to NVRAM.
For more information on the search and filter functionality, refer to the “Using the Command-Line
Interface” chapter in the Cisco IOS Configuration Fundamentals Configuration Guide.
The Internet Protocol (IP) is a packet-based protocol used to exchange data over computer networks. IP
handles addressing, fragmentation, reassembly, and protocol demultiplexing. It is the foundation on
which all other IP protocols (collectively referred to as the IP Protocol suite) are built. A network-layer
protocol, IP contains addressing and control information that allows data packets to be routed.
The Transmission Control Protocol (TCP) is built upon the IP layer. TCP is a connection-oriented
protocol that specifies the format of data and acknowledgments used in the transfer of data. TCP also
specifies the procedures that the networking devices use to ensure that the data arrives correctly. TCP
allows multiple applications on a system to communicate concurrently because it handles all
demultiplexing of the incoming traffic among the application programs.
The Cisco implementation of IP provides most of the major services contained in the various protocol
specifications. Cisco IOS software also provides the TCP and User Datagram Protocol (UDP) services
called Echo and Discard, which are described in RFCs 862 and 863, respectively.
Cisco supports both TCP and UDP at the transport layer, for maximum flexibility in services. Cisco also
supports all standards for IP broadcasts.
This overview chapter provides a high-level description of IP. For configuration information, see the
appropriate chapter in this publication.
The Cisco IOS IP Configuration Guide has the following three parts:
• IP Addressing and Services
• IP Routing Protocols
• IP Multicast
For information on other network protocols, refer to the Cisco IOS AppleTalk and Novell IPX
Configuration Guide and Cisco IOS Apollo Domain, Banyan VINES, DECnet, ISO CLNS, and XNS
Configuration Guide.
Server load balancing allows a network administrator to define a virtual server to represent a group of
real servers. For more information on this feature, see the “Configuring Server Load Balancing” chapter.
Mobile IP, which allows users to roam and maintain connectivity beyond their home subnet while
consistently maintaining their IP address, is described in the “Configuring Mobile IP” chapter.
IP Routing Protocols
The Cisco implementation of each IP routing protocol is discussed at the beginning of the individual
protocol chapters in this publication.
With any of the IP routing protocols, you must create the routing process, associate networks with the
routing process, and customize the routing protocol for your particular network. You will need to
perform some combination of the tasks in the respective chapters to configure one or more IP routing
protocols.
Note Many routing protocol specifications refer to routers as gateways, so the word gateway often appears
as part of routing protocol names. However, a router usually is defined as a Layer 3 internetworking
device, whereas a protocol translation gateway usually is defined as a Layer 7 internetworking
device. The reader should understand that regardless of whether a routing protocol name contains the
word “gateway,” routing protocol activities occur at Layer 3 of the Open System Interconnection
(OSI) reference model.
For example, RIP uses a hop-count metric and IGRP uses a five-element vector of metric information.
If routing information is being exchanged between different networks that use different routing
protocols, you can use many configuration options to filter the exchange of routing information.
The Cisco IOS software can handle simultaneous operation of up to 30 dynamic IP routing processes.
The combination of routing processes on a router consists of the following protocols (with the limits
noted):
• Up to 30 IGRP routing processes
• Up to 30 EIGRP routing processes
• Up to 30 OSPF routing processes
• One RIP routing process
• One IS-IS process
• One BGP routing process
IP Multicast
IP multicast routing provides an alternative to unicast and broadcast transmission. It allows a host to send
packets to a subset of all hosts, known as group transmission. IP multicast runs on top of the other IP
routing protocols.
In addition to IP multicast routing itself, other multicast features are available, each discussed in a
separate chapter, as follows:
• Source Specific Multicast (SSM) is an extension of IP multicast where datagram traffic is forwarded
to receivers from only those multicast sources to which the receivers have explicitly joined.
• Bidirectional PIM is a variant of the PIM suite of routing protocols for IP multicast. In bidirectional
mode, datagram traffic is routed only along a bidirectional shared tree that is rooted at the
rendezvous point (RP) for the multicast group.
• Multicast Source Discovery Protocol (MSDP) is a mechanism for the router to discover multicast
sources in other PIM domains.
• Pragmatic General Multicast (PGM) is a reliable multicast transport protocol for applications that
require ordered, duplicate-free, multicast data delivery from multiple sources to multiple receivers.
The PGM Host feature is the Cisco implementation of the transport layer of the PGM protocol, and
the PGM Router Assist feature is the Cisco implementation of the network layer of the PGM
protocol.
• Unidirectional link routing (UDLR) provides a way to forward multicast packets over a physical
unidirectional interface, such as a satellite link.
• The Multicast Routing Monitor (MRM) feature is a management diagnostic tool that provides
network fault detection and isolation in a large multicast routing infrastructure. This feature is
described in the “Using IP Multicast Tools” chapter.
• Router-Port Group Management Protocol (RGMP) is a Layer 2 protocol that enables a router to
communicate to a switch (or a networking device that is functioning as a Layer 2 switch) the
multicast group for which the router would like to receive or forward traffic.
This chapter describes how to configure IP addressing. For a complete description of the IP addressing
commands in this chapter, refer to the “IP Addressing Commands” chapter of the Cisco IOS IP
Command Reference, Volume 1 of 3: Addressing and Services publication. To locate documentation of
other commands that appear in this chapter, use the command reference master index, or search online.
Command Purpose
Router(config-if)# ip address ip-address mask Sets a primary IP address for an interface.
A mask identifies the bits that denote the network number in an IP address. When you use the mask to
subnet a network, the mask is then referred to as a subnet mask.
Note We only support network masks that use contiguous bits that are flush left against the network field.
The tasks to enable or disable additional, optional, IP addressing features are contained in the following
sections:
• Assigning Multiple IP Addresses to Network Interfaces
• Enabling Use of Subnet Zero
• Disabling Classless Routing Behavior
• Enabling IP Processing on a Serial Interface
Note If any router on a network segment uses a secondary address, all other routers on that same segment
must also use a secondary address from the same network or subnet.
To assign multiple IP addresses to network interfaces, use the following command in interface
configuration mode:
Command Purpose
Router(config-if)# ip address ip-address mask Assigns multiple IP addresses to network interfaces.
secondary
Note IP routing protocols sometimes treat secondary addresses differently when sending routing updates.
See the description of IP split horizon in the “Configuring IP Enhanced IGRP,” “Configuring IGRP,”
or “Configuring RIP” chapters for details.
See the “Creating a Network from Separated Subnets Example” section at the end of this chapter for an
example of creating a network from separated subnets.
You can use the all 0s and all 1s subnet (131.108.255.0), even though it is discouraged. Configuring
interfaces for the all 1s subnet is explicitly allowed. However, if you need the entire subnet space for
your IP address, use the following command in global configuration mode to enable subnet 0:
Command Purpose
Router(config)# ip subnet-zero Enables the use of subnet zero for interface addresses and routing
updates.
128.0.0.0/8
128.20.4.1
128.20.0.0 ip classless
128.20.1.0 128.20.3.0
128.20.2.0 128.20.4.1
S3286
Host
If you disable classless routing, and a router receives packets destined for a subnet of a network that has
no network default route, the router discards the packet. Figure 2 shows a router in network 128.20.0.0
connected to subnets 128.20.1.0, 128.20.2.0, and 128.20.3.0. Suppose the host sends a packet to
128.20.4.1. Because there is no network default route, the router discards the packet.
128.0.0.0/8
128.20.4.1
128.20.0.0
Bit bucket
128.20.1.0 128.20.3.0
128.20.2.0 128.20.4.1
S3285
Host
To prevent the Cisco IOS software from forwarding packets destined for unrecognized subnets to the best
supernet route possible, use the following command in global configuration mode:
Command Purpose
Router(config)# no ip classless Disables classless routing behavior.
Note Using an unnumbered serial line between different major networks requires special care. If, at each
end of the link, different major networks are assigned to the interfaces you specified as unnumbered,
any routing protocols running across the serial line should be configured to not advertise subnet
information.
To enable IP processing on an unnumbered serial interface, use the following command in interface
configuration mode:
Command Purpose
Router(config-if)# ip unnumbered type number Enables IP processing on a serial or tunnel interface without
assigning an explicit IP address to the interface.
The interface you specify must be the name of another interface in the router that has an IP address, not
another unnumbered interface.
The interface you specify also must be enabled (listed as “up” in the show interfaces command display).
See the “Serial Interfaces Configuration Example” section at the end of this chapter for an example of
how to configure serial interfaces.
The software uses three forms of address resolution: Address Resolution Protocol (ARP), proxy ARP,
and Probe (similar to ARP). The software also uses the Reverse Address Resolution Protocol (RARP).
ARP, proxy ARP, and RARP are defined in RFCs 826, 1027, and 903, respectively. Probe is a protocol
developed by the Hewlett-Packard Company (HP) for use on IEEE-802.3 networks.
ARP is used to associate IP addresses with media or MAC addresses. Taking an IP address as input, ARP
determines the associated media address. Once a media or MAC address is determined, the IP address
or media address association is stored in an ARP cache for rapid retrieval. Then the IP datagram is
encapsulated in a link-layer frame and sent over the network. Encapsulation of IP datagrams and ARP
requests and replies on IEEE 802 networks other than Ethernet is specified by the Subnetwork Access
Protocol (SNAP).
RARP works the same way as ARP, except that the RARP request packet requests an IP address instead
of a local data-link address. Use of RARP requires a RARP server on the same network segment as the
router interface. RARP often is used by diskless nodes that do not know their IP addresses when they
boot. The Cisco IOS software attempts to use RARP if it does not know the IP address of an interface at
startup. Also, Cisco routers can act as RARP servers by responding to RARP requests that they are able
to answer. See the “Configure Additional File Transfer Functions” chapter in the Cisco IOS
Configuration Fundamentals Configuration Guide to learn how to configure a router as a RARP server.
The tasks required to set address resolution are contained in the following sections:
• Defining a Static ARP Cache
• Setting ARP Encapsulations
• Enabling Proxy ARP
• Configuring Local-Area Mobility
Command Purpose
Router(config)# arp ip-address hardware-address type Globally associates an IP address with a media (hardware)
address in the ARP cache.
Router(config)# arp ip-address hardware-address type Specifies that the software responds to ARP requests as if it
alias were the owner of the specified IP address.
Use the following command in interface configuration mode to set the length of time an ARP cache entry
will stay in the cache:
Command Purpose
Router(config-if)# arp timeout seconds Sets the length of time an ARP cache entry will stay in the cache.
To display the type of ARP being used on a particular interface and also display the ARP timeout value,
use the show interfaces EXEC command. Use the show arp EXEC command to examine the contents
of the ARP cache. Use the show ip arp EXEC command to show IP entries. To remove all nonstatic
entries from the ARP cache, use the clear arp-cache privileged EXEC command.
Command Purpose
Router(config-if)# arp {arpa | probe | Specifies one of three ARP encapsulation methods for a specified interface.
snap}
Command Purpose
Router(config-if)# ip proxy-arp Enables proxy ARP on the interface.
Command Purpose
Step 1 Router(config-if)# interface type number Enters interface configuration mode.
Step 2 Router(config-if)# ip mobile arp [timers keepalive Enables local-area mobility.
hold-time] [access-group access-list-number | name]
To create larger mobility areas, you must first redistribute the mobile routes into your Interior Gateway
Protocol (IGP). The IGP must support host routes. You can use Enhanced Interior Gateway Routing
Protocol (IGRP), Open Shortest Path First (OSPF), IS-IS, or RIPv2. To redistribute the mobile routes
into your existing IGP configuration, use the following commands in configuration mode:
Command Purpose
Step 1 Router(config)# router {eigrp autonomous-system | Enters router configuration mode.
isis [tag] | ospf process-id | rip}
Step 2 Router(config)# default-metric number Sets default metric values.
or
Mobile routes will always be preferred over a subnet boundary or summarized route because they are
more specific. It is important to ensure that configured or redistributed static routes do not include any
host routes for the potentially mobile hosts; otherwise, a longest match could come up with two routes
and cause ambiguity. Mobile routes will be seen as external routes to the configured routing protocol,
even within a summarization area; therefore, they will not be properly summarized by default. This is
the case even when these routes are advertised at a summarization boundary, if mobile hosts are not on
their home subnet.
To keep track of domain names, IP has defined the concept of a name server, whose job is to hold a cache
(or database) of names mapped to IP addresses. To map domain names to IP addresses, you must first
identify the host names, then specify a name server, and enable the Domain Naming System (DNS), the
global naming scheme of the Internet that uniquely identifies network devices. These tasks are described
in the following sections:
• Assigning Host Names to IP Addresses
• Specifying the Domain Name
• Specifying a Name Server
• Enabling the DNS
• Using the DNS to Discover ISO CLNS Addresses
Command Purpose
Router(config)# ip host name [tcp-port-number] Statically associates host names with IP addresses.
address1 [address2...address8]
Command Purpose
Router(config)# ip domain name name Defines a default domain name that the Cisco IOS software will use
to complete unqualified host names.
Router(config)# ip domain list name Defines a list of default domain names to complete unqualified host
names.
See the “IP Domains Example” section at the end of this chapter for an example of establishing IP
domains.
Command Purpose
Router(config)# ip name-server Specifies one or more hosts that supply name information.
server-address1
[server-address2...server-address6]
Command Purpose
Router(config)# ip domain lookup Enables DNS-based host name-to-address translation.
See the “Dynamic Lookup Example” section at the end of this chapter for an example of enabling the
DNS.
Command Purpose
Router(config)# no ip domain-lookup Disables DNS queries for ISO CLNS addresses.
nsap
Command Purpose
Router(config-if)# ip probe proxy Allows the Cisco IOS software to respond to HP Probe Proxy name
requests.
To configure HP Probe Proxy, use the following command in global configuration mode:
Command Purpose
Router(config)# ip hp-host hostname ip-address Enters the host name of an HP host (for which the router is acting as
a proxy) into the host table.
See the “HP Hosts on a Network Segment Example” section at the end of this chapter for an example of
configuring HP hosts on a network segment.
Figure 3 illustrates four routers connected to an NBMA network. Within the network are ATM or SMDS
switches necessary for the routers to communicate with each other. Assume that the switches have virtual
circuit (VC) connections represented by hops 1, 2, and 3 of the figure. When Router A attempts to
forward an IP packet from the source host to the destination host, NHRP is triggered. On behalf of the
source host, Router A sends an NHRP request packet encapsulated in an IP packet, which takes three
hops across the network to reach Router D, connected to the destination host. After receiving a positive
NHRP reply, Router D is determined to be the “NBMA next hop,” and Router A sends subsequent IP
packets for the destination to Router D in one hop.
Destination
host
Hop 3
NBMA network
Subsequent Hop 2
IP packets
IP NHRP
Hop 1
Router A
Router B S3229
Source
host
With NHRP, once the NBMA next hop is determined, the source either starts sending data packets to the
destination (in a connectionless NBMA network such as SMDS) or establishes a virtual circuit VC
connection to the destination with the desired bandwidth and quality of service (QoS) characteristics (in
a connection-oriented NBMA network such as ATM).
Other address resolution methods can be used while NHRP is deployed. IP hosts that rely upon the
Logical IP Subnet (LIS) model might require ARP servers and services over NBMA networks, and
deployed hosts might not implement NHRP, but might continue to support ARP variations. NHRP is
designed to eliminate the suboptimal routing that results from the LIS model, and can be deployed with
existing ARP services without interfering with them.
NHRP is used to facilitate building a Virtual Private Network (VPN). In this context, a VPN consists of
a virtual Layer 3 network that is built on top of an actual Layer 3 network. The topology you use over
the VPN is largely independent of the underlying network, and the protocols you run over it are
completely independent of it.
Connected to the NBMA network are one or more stations that implement NHRP, and are known as Next
Hop Servers. All routers running Cisco IOS Release 10.3 or later releases can implement NHRP and,
thus, can act as Next Hop Servers.
Each Next Hop Server serves a set of destination hosts, which might be directly connected to the NBMA
network. Next Hop Servers cooperatively resolve the NBMA next hop addresses within their NBMA
network. Next Hop Servers typically also participate in protocols used to disseminate routing
information across (and beyond the boundaries of) the NBMA network, and might support ARP service.
A Next Hop Server maintains a “next hop resolution” cache, which is a table of network layer address
to NBMA address mappings. The table is created from information gleaned from NHRP register packets
extracted from NHRP request or reply packets that traverse the Next Hop Server as they are forwarded,
or through other means such as ARP and preconfigured tables.
Protocol Operation
NHRP requests traverse one or more hops within an NBMA subnetwork before reaching the station that
is expected to generate a response. Each station (including the source station) chooses a neighboring
Next Hop Server to forward the request to. The Next Hop Server selection procedure typically involves
performing a routing decision based upon the network layer destination address of the NHRP request.
Ignoring error situations, the NHRP request eventually arrives at a station that generates an NHRP reply.
This responding station either serves the destination, is the destination itself, or is a client that specified
it should receive NHRP requests when it registered with its server. The responding station generates a
reply using the source address from within the NHRP packet to determine where the reply should be sent.
Command Purpose
Router(config-if)# ip nhrp network-id number Enables NHRP on an interface.
See the “Logical NBMA Example” section and the “NHRP over ATM Example” section at the end of
this chapter for examples of enabling NHRP.
Command Purpose
Router(config-if)# ip nhrp map ip-address Configures static IP-to-NBMA address mapping.
nbma-address
Command Purpose
Router(config-if)# ip nhrp nhs nhs-address Statically configures a Next Hop Server.
[net-address [netmask]]
To configure multiple networks that the Next Hop Server serves, repeat the ip nhrp nhs command with
the same Next Hop Server address, but different IP network addresses. To configure additional Next Hop
Servers, repeat the ip nhrp nhs command.
Command Purpose
Router(config-if)# ip nhrp authentication string Specifies an authentication string.
You can specify an IP access list that is used to decide which IP packets can trigger the sending of NHRP
requests. By default, all non-NHRP packets trigger NHRP requests. To limit which IP packets trigger
NHRP requests, define an access list and then apply it to the interface.
To define an access list, use the following commands in global configuration mode as needed:
Command Purpose
Router(config)# access-list access-list-number {deny | permit} source Defines a standard IP access list.
[source-wildcard]
Router(config)# access-list access-list-number {deny | permit} Defines an extended IP access list.
protocol source source-wildcard destination destination-wildcard
[precedence precedence] [tos tos] [established] [log]
To apply the IP access list to the interface, use the following command in interface configuration mode:
Command Purpose
Router(config-if)# ip nhrp interest access-list-number Specifies an IP access list that controls
NHRP requests.
By default, when the software attempts to send a data packet to a destination for which it has determined
that NHRP can be used, it sends an NHRP request for that destination. To configure the system to wait
until a specified number of data packets have been sent to a particular destination before NHRP is
attempted, use the following command in interface configuration mode:
Command Purpose
Router(config-if)# ip nhrp use usage-count Specifies how many data packets are sent to a destination before NHRP
is attempted.
Restrictions
Cisco IOS releases prior to Release 12.0 implemented NHRP draft version 4. Cisco IOS Release 12.0
and later implements NHRP draft version 11. These versions are not compatible. Therefore, all routers
running NHRP in a network must run the same version of NHRP in order to communicate with each
other. All routers must run Cisco IOS Release 12.0 and later, or all routers must run a release prior to
Release 12.0, but not a combination of the two.
Additional restrictions:
• They work on CEF platforms only.
• They work on ATM media only.
• BGP must be configured in the network where these enhancements are running.
Prerequisites
Before you configure the feature whereby NHRP initiation is based on traffic rate, the following
conditions must exist in the router:
• ATM must be configured.
• CEF switching or distributed CEF (dCEF) switching must be enabled.
• BGP must be configured on all routers in the network.
If you have CEF switching or dCEF switching and you want NHRP to work (whether with default values
or changed values), the ip cef accounting non-recursive command must be configured.
To configure the NHRP triggering and teardown of SVCs based on traffic rate, perform the tasks
described in the following sections. The tasks in the first section are required, the tasks in the remaining
section are optional.
• Changing the Rate for Triggering SVCs (Required)
• Applying the Rates to Specific Destinations (Optional)
When NHRP runs with BGP over ATM media, there is an additional way to control the triggering of
NHRP packets. This method consists of SVCs being initiated based on the input traffic rate to a given
BGP next hop.
When BGP discovers a BGP next hop and enters this BGP route into the routing table, an NHRP request
is sent to the BGP next hop. When an NHRP reply is received, a subsequent route is put in the NHRP
cache that directly corresponds to the BGP next hop.
A new NHRP request is sent to the same BGP next hop to repopulate the NHRP cache. When an NHRP
cache entry is generated, a subsequent ATM map statement to the same BGP next hop is also created.
Aggregate traffic to each BGP next hop is measured and monitored. Once the aggregate traffic has met
or exceeded the configured trigger rate, NHRP creates an ATM SVC and sends traffic directly to that
destination router. The router tears down the SVC to the specified destination(s) when the aggregate
traffic rate falls to or below the configured teardown rate.
By default, NHRP will set up an SVC for a destination when aggregate traffic for that destination is more
than 1 kbps over a running average of 30 seconds. Similarly, NHRP will tear down the SVC when the
traffic for that destination drops to 0 kbps over a running average of 30 seconds. There are several ways
to change the rate at which SVC set or teardown occurs. You can change the number of kbps thresholds,
or the load interval, or both.
To change the number of kbps at which NHRP sets up or tears down the SVC to this destination, use the
following command in interface configuration mode:
Command Purpose
Router(config-if)# ip nhrp trigger-svc trigger-threshold Changes the point at which NHRP sets up or tears
teardown-threshold down SVCs.
You can change the sampling time period; that is, you can change the length of time over which the
average trigger rate or teardown rate is calculated. By default, the period is 30 seconds; the range is from
30 to 300 seconds in 30-second increments. This period is for calculations of aggregate traffic rate
internal to Cisco IOS software only, and it represents a worst case time period for taking action. In some
cases, the software will act sooner, depending on the ramp-up and fall-off rate of the traffic.
To change the sampling time period during which threshold rates are averaged, use the following
command in global configuration mode:
Command Purpose
Router(config)# ip cef traffic-statistics [load-interval Changes the length of time in a sampling period
seconds] during which trigger and teardown thresholds are
averaged.
If your Cisco hardware has a Virtual Interface Processor, version 2 adapter, you must perform the
following task to change the sampling time. By default, the port adapter sends the traffic statistics to the
Route Processor every 10 seconds. If you are using NHRP in dCEF switching mode, you must change
this update rate to 5 seconds. To do so, use the following command in global configuration mode:
Command Purpose
Router(config)# ip cef traffic-statistics [update-rate Changes the rate at which the port adapter sends
seconds] traffic statistics to the RP.
By default, all destinations are measured and monitored for NHRP triggering. However, you can choose
to impose the triggering and teardown rates on certain destinations. To do so, use the following
commands beginning in global configuration mode:
Command Purpose
Step 1 Router(config)# access-list access-list-number {deny | Defines a standard or extended IP access list.
permit} source [source-wildcard]
or
access-list access-list-number {deny | permit}
protocol source source-wildcard destination
destination-wildcard [precedence precedence] [tos tos]
[log]
Step 2 Router(config)# interface type number Enters interface configuration mode.
Step 3 Router(interface config)# ip nhrp interest access-list Assigns the access list created in Step 1 that
determines which destinations are included in or
excluded from the SVC triggering.
For an example of setting the load interval, see the section “Changing the Rate for Triggering SVCs
Example” at the end of this chapter. For an example of applying rates to destinations, see the section
“Applying NHRP Rates to Specific Destinations Example” at the end of this chapter.
Command Purpose
Router(config-if)# ip nhrp max-send pkt-count every interval Changes the NHRP packet rate per interface.
Command Purpose
Router(config-if)# no ip nhrp record Suppresses Forward and Reverse Record options.
Command Purpose
Router(config-if)# ip nhrp responder type number Specifies which interface the Next Hop Server uses to determine
the NHRP responder address.
If an NHRP reply packet being forwarded by a Next Hop Server contains the IP address of that server,
the Next Hop Server generates an error indication of type “NHRP Loop Detected” and discards the reply.
Command Purpose
Router(config-if)# ip nhrp holdtime seconds Specifies the number of seconds that NBMA addresses are
advertised as valid in positive NHRP responses.
Command Purpose
Step 1 Router(config-if)# tunnel mode gre ip multipoint Enables a GRE tunnel to be used in multipoint fashion.
Step 2 Router(config-if)# tunnel key key-number Configures a tunnel identification key.
The tunnel key should correspond to the NHRP network identifier specified in the ip nhrp network-id
interface configuration command. See the “NHRP on a Multipoint Tunnel Example” section at the end
of this chapter for an example of NHRP configured on a multipoint tunnel.
Command Purpose
Router(config-if)# ip nhrp server-only [non-caching] Configures NHRP server-only mode.
Enabling IP Routing
IP routing is automatically enabled in the Cisco IOS software. If you choose to set up the router to bridge
rather than route IP datagrams, you must disable IP routing. To re-enable IP routing if it has been
disabled, use the following command in global configuration mode:
Command Purpose
Router(config)# ip routing Enables IP routing.
When IP routing is disabled, the router will act as an IP end host for IP packets destined for or sourced
by it, whether or not bridging is enabled for those IP packets not destined for the device. To re-enable IP
routing, use the ip routing command.
Proxy ARP
The most common method of learning about other routes is by using proxy ARP. Proxy ARP, defined in
RFC 1027, enables an Ethernet host with no knowledge of routing to communicate with hosts on other
networks or subnets. Such a host assumes that all hosts are on the same local Ethernet, and that it can
use ARP to determine their hardware addresses.
Under proxy ARP, if a device receives an ARP request for a host that is not on the same network as the
ARP request sender, the Cisco IOS software evaluates whether it has the best route to that host. If it does,
the device sends an ARP reply packet giving its own Ethernet hardware address. The host that sent the
ARP request then sends its packets to the device, which forwards them to the intended host. The software
treats all networks as if they are local and performs ARP requests for every IP address. This feature is
enabled by default. If it has been disabled, see the section “Enabling Proxy ARP” earlier in this chapter.
Proxy ARP works as long as other routers support it. Many other routers, especially those loaded with
host-based routing software, do not support it.
Default Gateway
Another method for locating routes is to define a default router (or gateway). The Cisco IOS software
sends all nonlocal packets to this router, which either routes them appropriately or sends an IP Control
Message Protocol (ICMP) redirect message back, telling the router of a better route. The ICMP redirect
message indicates which local router the host should use. The software caches the redirect messages and
routes each packet thereafter as efficiently as possible. The limitations of this method are that there is
no means of detecting when the default router has gone down or is unavailable, and there is no method
of picking another device if one of these events should occur.
To set up a default gateway for a host, use the following command in global configuration mode:
Command Purpose
Router(config)# ip default-gateway ip-address Sets up a default gateway (router).
To display the address of the default gateway, use the show ip redirects EXEC command.
Only one task for configuring IRDP routing on a specified interface is required. To enable IRDP
processing on an interface, use the following command in interface configuration mode:
Command Purpose
Router(config-if)# ip irdp Enables IRDP processing on an interface.
When you enable IRDP processing, the default parameters will apply. To optionally change any of these
IRDP parameters, use the following commands in interface configuration mode, as needed:
Command Purpose
Router(config-if)# ip irdp multicast Sends IRDP advertisements to the all-systems multicast address
(224.0.0.1) on a specified interface.
Router(config-if)# ip irdp holdtime seconds Sets the IRDP period for which advertisements are valid.
Router(config-if)# ip irdp maxadvertinterval Sets the IRDP maximum interval between advertisements.
seconds
Router(config-if)# ip irdp minadvertinterval Sets the IRDP minimum interval between advertisements.
seconds
Command Purpose
Router(config-if)# ip irdp preference number Sets the IRDP preference level of the device.
Router(config-if)# ip irdp address address Specifies an IRDP address and preference to proxy-advertise.
[number]
The Cisco IOS software can proxy-advertise other machines that use IRDP; however, this practice is not
recommended because it is possible to advertise nonexistent machines or machines that are down.
Enabling IP Bridging
To transparently bridge IP on an interface, use the following commands beginning in global
configuration mode:
Command Purpose
Step 1 Router(config)# no ip routing Disables IP routing.
Step 2 Router(config)# interface type number Specifies an interface and enters interface configuration mode.
Step 3 Router(config-if)# bridge-group group Adds the interface to a bridge group.
To enable forwarding of IP directed broadcasts, use the following command in interface configuration
mode:
Command Purpose
Router(config-if)# ip directed-broadcast Enables directed broadcast-to-physical broadcast translation
[access-list-number] on an interface.
Command Purpose
Router(config-if)# ip helper-address address Enables forwarding and specifies the destination address for
forwarding UDP broadcast packets, such as BOOTP and
DHCP.
To specify which protocols will be forwarded, use the following command in global configuration mode:
Command Purpose
Router(config)# ip forward-protocol {udp [port] | nd Specifies which protocols will be forwarded over which ports.
| sdns}
See the “Helper Addresses Example” section at the end of this chapter for an example of how to
configure helper addresses.
Command Purpose
Router(config-if)# ip broadcast-address Establishes a different broadcast address (other than 255.255.255.255).
[ip-address]
If the router does not have nonvolatile memory, and you need to specify the broadcast address to use
before the software is configured, you must change the IP broadcast address by setting jumpers in the
processor configuration register. Setting bit 10 causes the device to use all 0s. Bit 10 interacts with bit
14, which controls the network and subnet portions of the broadcast address. Setting bit 14 causes the
device to include the network and subnet portions of its address in the broadcast address. Table 4 shows
the combined effect of setting bits 10 and 14.
Some router platforms allow the configuration register to be set through the software; see the
“Rebooting” chapter of the Cisco IOS Configuration Fundamentals Configuration Guide for details. For
other router platforms, the configuration register must be changed through hardware; see the appropriate
hardware installation and maintenance manual for your system.
Flooding IP Broadcasts
You can allow IP broadcasts to be flooded throughout your internetwork in a controlled fashion using
the database created by the bridging spanning-tree protocol. Turning on this feature also prevents loops.
In order to support this capability, the routing software must include the transparent bridging, and
bridging must be configured on each interface that is to participate in the flooding. If bridging is not
configured on an interface, it still will be able to receive broadcasts. However, the interface will never
forward broadcasts it receives, and the router will never use that interface to send broadcasts received on
a different interface.
Packets that are forwarded to a single network address using the IP helper address mechanism can be
flooded. Only one copy of the packet is sent on each network segment.
In order to be considered for flooding, packets must meet the following criteria. (Note that these are the
same conditions used to consider packet forwarding using IP helper addresses.)
• The packet must be a MAC-level broadcast.
• The packet must be an IP-level broadcast.
• The packet must be a Trivial File Transfer Protocol (TFTP), DNS, Time, NetBIOS, ND, or BOOTP
packet, or a UDP protocol specified by the ip forward-protocol udp global configuration
command.
• The time-to-live (TTL) value of the packet must be at least two.
A flooded UDP datagram is given the destination address you specified with the ip broadcast-address
command in the interface configuration mode on the output interface. The destination address can be set
to any desired address. Thus, the destination address may change as the datagram propagates through
the network. The source address is never changed. The TTL value is decremented.
After a decision has been made to send the datagram out on an interface (and the destination address
possibly changed), the datagram is handed to the normal IP output routines and is, therefore, subject to
access lists, if they are present on the output interface.
To use the bridging spanning-tree database to flood UDP datagrams, use the following command in
global configuration mode:
Command Purpose
Router(config)# ip forward-protocol Uses the bridging spanning-tree database to flood UDP datagrams.
spanning-tree
If no actual bridging is desired, you can configure a type-code bridging filter that will deny all packet
types from being bridged. Refer to the “Configuring Transparent Bridging” chapter of the Cisco IOS
Bridging and IBM Networking Configuration Guide for more information about using access lists to
filter bridged traffic. The spanning-tree database is still available to the IP forwarding code to use for the
flooding.
Command Purpose
Router(config)# ip forward-protocol turbo-flood Uses the bridging spanning-tree database to speed up flooding of
UDP datagrams.
NAT Applications
NAT has several applications. Use it for the following purposes:
• You want to connect to the Internet, but not all your hosts have globally unique IP addresses. NAT
enables private IP internetworks that use nonregistered IP addresses to connect to the Internet. NAT
is configured on the router at the border of a stub domain (referred to as the inside network) and a
public network such as the Internet (referred to as the outside network). NAT translates the internal
local addresses to globally unique IP addresses before sending packets to the outside network.
• You must change your internal addresses. Instead of changing them, which can be a considerable
amount of work, you can translate them by using NAT.
• You want to do basic load sharing of TCP traffic. You can map a single global IP address to many
local IP addresses by using the TCP load distribution feature.
As a solution to the connectivity problem, NAT is practical only when relatively few hosts in a stub
domain communicate outside of the domain at the same time. When this is the case, only a small subset
of the IP addresses in the domain must be translated into globally unique IP addresses when outside
communication is necessary, and these addresses can be reused when no longer in use.
Benefits
A significant advantage of NAT is that it can be configured without requiring changes to hosts or routers
other than those few routers on which NAT will be configured. As discussed previously, NAT may not
be practical if large numbers of hosts in the stub domain communicate outside of the domain.
Furthermore, some applications use embedded IP addresses in such a way that it is impractical for a NAT
device to translate. These applications may not work transparently or at all through a NAT device. NAT
also hides the identity of hosts, which may be an advantage or a disadvantage.
A router configured with NAT will have at least one interface to the inside and one to the outside. In a
typical environment, NAT is configured at the exit router between a stub domain and backbone. When a
packet is leaving the domain, NAT translates the locally significant source address into a globally unique
address. When a packet is entering the domain, NAT translates the globally unique destination address
into a local address. If more than one exit point exists, each NAT must have the same translation table.
If the software cannot allocate an address because it has run out of addresses, it drops the packet and
sends an ICMP host unreachable packet.
A router configured with NAT must not advertise the local networks to the outside. However, routing
information that NAT receives from the outside can be advertised in the stub domain as usual.
NAT Terminology
As mentioned previously, the term inside refers to those networks that are owned by an organization and
that must be translated. Inside this domain, hosts will have addresses in the one address space, while on
the outside, they will appear to have addresses in another address space when NAT is configured. The
first address space is referred to as the local address space and the second is referred to as the global
address space.
Similarly, outside refers to those networks to which the stub network connects, and which are generally
not under the control of the organization. Hosts in outside networks can be subject to translation also,
and can thus have local and global addresses.
To summarize, NAT uses the following definitions:
• Inside local address—The IP address that is assigned to a host on the inside network. The address
is probably not a legitimate IP address assigned by the Network Information Center (NIC) or service
provider.
• Inside global address—A legitimate IP address (assigned by the NIC or service provider) that
represents one or more inside local IP addresses to the outside world.
• Outside local address—The IP address of an outside host as it appears to the inside network. Not
necessarily a legitimate address, it was allocated from address space routable on the inside.
• Outside global address—The IP address assigned to a host on the outside network by the owner of
the host. The address was allocated from globally routable address or network space.
Inside Outside
5 3 4
1.1.1.2 DA SA DA
1.1.1.1 2.2.2.2 2.2.2.2
S4790
Internet
SA
1.1.1.1
1 Host B
Inside Outside
9.6.7.3
interface interface
1.1.1.1
2
NAT table
Inside Local Inside Global
IP Address IP Address
1.1.1.2 2.2.2.3
1.1.1.1 2.2.2.2
The following process describes inside source address translation, as shown in Figure 4:
1. The user at host 1.1.1.1 opens a connection to host B.
2. The first packet that the router receives from host 1.1.1.1 causes the router to check its NAT table:
– If a static translation entry was configured, the router goes to Step 3.
– If no translation entry exists, the router determines that Source-Address (SA) 1.1.1.1 must be
translated dynamically, selects a legal, global address from the dynamic address pool, and
creates a translation entry. This type of entry is called a simple entry.
3. The router replaces the inside local source address of host 1.1.1.1 with the global address of the
translation entry and forwards the packet.
4. Host B receives the packet and responds to host 1.1.1.1 by using the inside global IP Destination-
Address (DA) 2.2.2.2.
5. When the router receives the packet with the inside global IP address, it performs a NAT table
lookup by using the inside global address as a key. It then translates the address to the inside local
address of host 1.1.1.1 and forwards the packet to host 1.1.1.1.
Host 1.1.1.1 receives the packet and continues the conversation. The router performs Steps 2 through 5
for each packet.
Command Purpose
Step 1 Router(config)# ip nat inside source static local-ip Establishes static translation between an inside local
global-ip address and an inside global address.
Step 2 Router(config)# interface type number Specifies the inside interface and enters interface
configuration mode.
Step 3 Router(config-if)# ip nat inside Marks the interface as connected to the inside.
Step 4 Router(config)# interface type number Specifies the outside interface and enters interface
configuration mode.
Step 5 Router(config-if)# ip nat outside Marks the interface as connected to the outside.
The previous steps are the minimum you must configure. You could also configure multiple inside and
outside interfaces.
Command Purpose
Step 1 Router(config)# ip nat pool name start-ip end-ip Defines a pool of global addresses to be allocated as
{netmask netmask | prefix-length prefix-length} needed.
Step 2 Router(config)# access-list access-list-number Defines a standard access list permitting those
permit source [source-wildcard] addresses that are to be translated.
Step 3 Router(config)# ip nat inside source list Establishes dynamic source translation, specifying
access-list-number pool name the access list defined in the prior step.
Step 4 Router(config)# interface type number Specifies the inside interface and enters interface
configuration mode.
Step 5 Router(config-if)# ip nat inside Marks the interface as connected to the inside.
Step 6 Router(config)# interface type number Specifies the outside interface and enters interface
configuration mode.
Step 7 Router(config-if)# ip nat outside Marks the interface as connected to the outside.
Note The access list must permit only those addresses that are to be translated. (Remember that there is an
implicit “deny all” at the end of each access list.) An access list that is too permissive can lead to
unpredictable results.
Packets that enter the router through the inside interface and packets sourced from the router are
checked against the access list for possible NAT candidates. The access list is used to specify which
traffic is to be translated.
Command Purpose
Step 1 Router(config)# ip nat pool name start-ip end-ip Defines a pool of global addresses to be allocated as
{netmask netmask | prefix-length prefix-length} needed.
Step 2 Router(config)# route-map name permit sequence Defines a route map permitting those addresses that
are to be translated.
Step 3 Router(config)# ip nat inside source route-map name Establishes dynamic source translation, specifying
pool name the route map defined in the prior step.
Step 4 Router(config)# interface type number Specifies the inside interface and enters interface
configuration mode.
Step 5 Router(config-if)# ip nat inside Marks the interface as connected to the inside.
Step 6 Router(config)# interface type number Specifies the outside interface and enters interface
configuration mode.
Step 7 Router(config-if)# ip nat outside Marks the interface as connected to the outside.
See the “Dynamic Inside Source Translation Example” section at the end of this chapter for examples of
dynamic inside source translation.
Inside
4
DA
5 3 2.2.2.2
1.1.1.2 DA SA
1.1.1.1 2.2.2.2
Internet Host B
SA 9.6.7.3
1.1.1.1 4
1
S4791
1.1.1.1 DA
2.2.2.2
2 Host C
NAT table 6.5.4.7
Protocol Inside Local IP Inside Global IP Outside Global
address:port address:port IP address:port
The router performs the following process in overloading inside global addresses, as shown in Figure 5.
Both host B and host C believe they are communicating with a single host at address 2.2.2.2. They are
actually communicating with different hosts; the port number is the differentiator. In fact, many inside
hosts could share the inside global IP address by using many port numbers.
1. The user at host 1.1.1.1 opens a connection to host B.
2. The first packet that the router receives from host 1.1.1.1 causes the router to check its NAT table:
– If no translation entry exists, the router determines that address 1.1.1.1 must be translated, and
sets up a translation of inside local address 1.1.1.1 to a legal global address.
– If overloading is enabled, and another translation is active, the router reuses the global address
from that translation and saves enough information to be able to translate back. This type of
entry is called an extended entry.
3. The router replaces the inside local source address 1.1.1.1 with the selected global address and
forwards the packet.
4. Host B receives the packet and responds to host 1.1.1.1 by using the inside global IP address 2.2.2.2.
5. When the router receives the packet with the inside global IP address, it performs a NAT table
lookup, using the protocol, inside global address and port, and outside address and port as a key;
translates the address to inside local address 1.1.1.1; and forwards the packet to host 1.1.1.1.
Host 1.1.1.1 receives the packet and continues the conversation. The router performs Steps 2 through 5
for each packet.
To configure overloading of inside global addresses, use the following commands in global
configuration mode:
Command Purpose
Step 1 Router(config)# ip nat pool name start-ip end-ip Defines a pool of global addresses to be allocated as
{netmask netmask | prefix-length prefix-length} needed.
Step 2 Router(config)# access-list access-list-number Defines a standard access list.
permit source [source-wildcard]
Command Purpose
Step 3 Router(config)# ip nat inside source list Establishes dynamic source translation, specifying
access-list-number pool name overload the access list defined in the prior step.
Step 4 Router(config)# interface type number Specifies the inside interface.
Step 5 Router(config-if)# ip nat inside Marks the interface as connected to the inside.
Step 6 Router(config)# interface type number Specifies the outside interface.
Step 7 Router(config-if)# ip nat outside Marks the interface as connected to the outside.
Note The access list must permit only those addresses that are to be translated. (Remember that there is an
implicit “deny all” at the end of each access list.) An access list that is too permissive can lead to
unpredictable results.
Packets that enter the router through the inside interface and packets sourced from the router are
checked against the access list for possible NAT candidates. The access list is used to specify which
traffic is to be translated.
See the “Overloading Inside Global Addresses Example” section at the end of this chapter for an
example of overloading inside global addresses.
DNS server
x.x.x.x
1.1.1.1
Internet
NAT table
Inside Local Inside Global Outside Global Outside Local
IP Address IP Address IP Address IP Address
S4792
1.1.1.1 2.2.2.2 1.1.1.3 3.3.3.3
The router performs the following process when translating overlapping addresses:
1. The user at host 1.1.1.1 opens a connection to host C by name, requesting a name-to-address lookup
from a DNS server.
2. The router intercepts the DNS reply and translates the returned address if there is an overlap (that
is, the resulting legal address resides illegally in the inside network). To translate the return address,
the router creates a simple translation entry mapping the overlapping address 1.1.1.3 to an address
from a separately configured, outside local address pool.
The router examines every DNS reply from everywhere, ensuring that the IP address is not in the
stub network. If it is, the router translates the address.
3. Host 1.1.1.1 opens a connection to 3.3.3.3.
4. The router sets up translations mapping inside local and global addresses to each other, and outside
global and local addresses to each other.
5. The router replaces the SA with the inside global address and replaces the DA with the outside
global address.
6. Host C receives the packet and continues the conversation.
7. The router does a lookup, replaces the DA with the inside local address, and replaces the SA with
the outside local address.
8. Host 1.1.1.1 receives the packet and the conversation continues, using this translation process.
Command Purpose
Step 1 Router(config)# ip nat outside source static Establishes static translation between an outside local
global-ip local-ip address and an outside global address.
Step 2 Router(config)# interface type number Specifies the inside interface.
Step 3 Router(config-if)# ip nat inside Marks the interface as connected to the inside.
Step 4 Router(config)# interface type number Specifies the outside interface.
Step 5 Router(config-if)# ip nat outside Marks the interface as connected to the outside.
Command Purpose
Step 1 Router(config)# ip nat pool name start-ip end-ip Defines a pool of local addresses to be allocated as
{netmask netmask | prefix-length prefix-length} needed.
Step 2 Router(config)# access-list access-list-number Defines a standard access list.
permit source [source-wildcard]
Step 3 Router(config)# ip nat outside source list Establishes dynamic outside source translation,
access-list-number pool name specifying the access list defined in the prior step.
Step 4 Router(config)# interface type number Specifies the inside interface.
Step 5 Router(config-if)# ip nat inside Marks the interface as connected to the inside.
Step 6 Router(config)# interface type number Specifies the outside interface.
Step 7 Router(config-if)# ip nat outside Marks the interface as connected to the outside.
Note The access list must permit only those addresses that are to be translated. (Remember that there is an
implicit “deny all” at the end of each access list.) An access list that is too permissive can lead to
unpredictable results.
See the “Translating Overlapping Address Example” section at the end of this chapter for an example of
translating an overlapping address.
addresses from a rotary pool. Allocation is done on a round-robin basis, and only when a new connection
is opened from the outside to the inside. Non-TCP traffic is passed untranslated (unless other translations
are in effect). Figure 7 illustrates this feature.
Inside
1 1.1.1.1
B DA DA
1.1.1.127 1.1.1.1
Real
3 hosts
9.6.7.3 1.1.1.2
Intranet
C 5 4
SA SA
1.1.1.127 1.1.1.1 1.1.1.3
6.5.4.7
Virtual
2
host
NAT table 1.1.1.127
Inside Local IP Inside Global IP Outside Global
Protocol
address:port address:port IP address:port
S4804
TCP 1.1.1.1:23 1.1.1.127:23 9.6.7.5:3058
TCP 1.1.1.2:23 1.1.1.127:23 6.5.4.7:4371
TCP 1.1.1.3:23 1.1.1.127:23 9.6.7.3:3062
The router performs the following process when translating rotary addresses:
1. The user on host B (9.6.7.3) opens a connection to the virtual host at 1.1.1.127.
2. The router receives the connection request and creates a new translation, allocating the next real host
(1.1.1.1) for the inside local IP address.
3. The router replaces the destination address with the selected real host address and forwards the
packet.
4. Host 1.1.1.1 receives the packet and responds.
5. The router receives the packet, performs a NAT table lookup using the inside local address and port
number, and the outside address and port number as the key. The router then translates the source
address to the address of the virtual host and forwards the packet.
The next connection request will cause the router to allocate 1.1.1.2 for the inside local address.
To configure destination address rotary translation, use the following commands beginning in global
configuration mode. These commands allow you to map one virtual host to many real hosts. Each new
TCP session opened with the virtual host will be translated into a session with a different real host.
Command Purpose
Step 1 Router(config)# ip nat pool name start-ip end-ip Defines a pool of addresses containing the addresses
{netmask netmask | prefix-length prefix-length} type of the real hosts.
rotary
Step 2 Router(config)# access-list access-list-number Defines an access list permitting the address of the
permit source [source-wildcard] virtual host.
Step 3 Router(config)# ip nat inside destination list Establishes dynamic inside destination translation,
access-list-number pool name specifying the access list defined in the prior step.
Step 4 Router(config)# interface type number Specifies the inside interface.
Step 5 Router(config-if)# ip nat inside Marks the interface as connected to the inside.
Step 6 Router(config)# interface type number Specifies the outside interface.
Step 7 Router(config-if)# ip nat outside Marks the interface as connected to the outside.
Note The access list must permit only those addresses that are to be translated. (Remember that there is an
implicit “deny all” at the end of each access list.) An access list that is too permissive can lead to
unpredictable results.
See the “ping Command Example” section at the end of this chapter for an example of rotary translation.
Command Purpose
Router(config)# ip nat translation timeout seconds Changes the timeout value for dynamic address
translations that do not use overloading.
If you have configured overloading, you have more control over translation entry timeout, because each
entry contains more context about the traffic using it. To change timeouts on extended entries, use the
following commands in global configuration mode as needed:
Command Purpose
Router(config)# ip nat translation udp-timeout seconds Changes the UDP timeout value from 5 minutes.
Router(config)# ip nat translation dns-timeout seconds Changes the DNS timeout value from 1 minute.
Router(config)# ip nat translation tcp-timeout seconds Changes the TCP timeout value from 24 hours.
Router(config)# ip nat translation finrst-timeout seconds Changes the Finish and Reset timeout value from
1 minute.
Command Purpose
Router(config)# ip nat translation icmp-timeout seconds Changes the ICMP timeout value from 1 minute.
Router(config)# ip nat translation syn-timeout seconds Changes the Synchronous (SYN) timeout value from
1 minute.
Command Purpose
Router# clear ip nat translation * Clears all dynamic address translation entries from
the NAT translation table.
Router# clear ip nat translation inside global-ip local-ip Clears a simple dynamic translation entry containing
[outside local-ip global-ip] an inside translation, or both inside and outside
translation.
Router# clear ip nat translation outside local-ip global-ip Clears a simple dynamic translation entry containing
an outside translation.
Router# clear ip nat translation protocol inside global-ip Clears an extended dynamic translation entry.
global-port local-ip local-port [outside local-ip local-port
global-ip global-port]
To display translation information, use either of the following commands in EXEC mode:
Command Purpose
Router# show ip nat translations [verbose] Displays active translations.
Router# show ip nat statistics Displays translation statistics.
To specify a port other than the default port, use the following command in global configuration mode:
Command Purpose
Router(config)# ip nat service skinny tcp port Displays port number on which the CCM is listening for
number skinny messages.
Command Purpose
Router# clear arp-cache Clears the IP ARP cache and the fast-switching cache.
Router# clear host {name | *} Removes one or all entries from the host name and address
cache.
Router# clear ip route {network [mask] | *} Removes one or more routes from the IP routing table.
To specify the format in which netmasks appear for the current session, use the following command in
EXEC mode:
Command Purpose
Router# term ip netmask-format {bitcount | decimal Specifies the format of network masks for the current session.
| hexadecimal}
To configure the format in which netmasks appear for an individual line, use the following command in
line configuration mode:
Command Purpose
Router(config-line)# ip netmask-format {bitcount | Configures the format of network masks for a line.
decimal | hexadecimal}
Command Purpose
Router# show arp Displays the entries in the ARP table.
Router# show hosts Displays the default domain name, style of lookup service, the
name server hosts, and the cached list of host names and
addresses.
Router# show ip aliases Displays IP addresses mapped to TCP ports (aliases).
Router# show ip arp Displays the IP ARP cache.
Router# show ip interface [type number] Displays the usability status of interfaces.
Router# show ip irdp Displays IRDP values.
Router# show ip masks address Displays the masks used for network addresses and the number
of subnets using each mask.
Router# show ip redirects Displays the address of a default gateway.
Router# show ip route [address [mask] Displays the current state of the routing table.
[longer-prefixes]] | [protocol [process-id]]
Router# show ip route summary Displays the current state of the routing table in summary form.
Router# ping [protocol] {host | address} Tests network node reachability (privileged mode).
Router# ping [protocol] {host | address} Tests network node reachability using a simple ping facility
(user mode).
Command Purpose
Router# trace [destination] Traces packet routes through the network (privileged mode).
Router# trace ip destination Traces packet routes through the network (user mode).
See the “ping Command Example” section at the end of this chapter for an example of pinging.
Command Purpose
Router# show ip nhrp [dynamic | static] [type Displays the IP NHRP cache, optionally limited to dynamic or
number] static cache entries for a specific interface.
Router# show ip nhrp traffic Displays NHRP traffic statistics.
The NHRP cache can contain static entries caused by statically configured addresses and dynamic
entries caused by the Cisco IOS software learning addresses from NHRP packets. To clear static entries,
use the no ip nhrp map command in interface configuration mode. To clear the NHRP cache of dynamic
entries, use the following command in EXEC mode:
Command Purpose
Router# clear ip nhrp Clears the IP NHRP cache of dynamic entries.
In a dual hub Dynamic Multipoint VPN (DMVPN) environment, when using the clear ip nhrp command
on the hub, you may see the following error message on the spokes:
%NHRP-3-PAKERROR: Receive Error Indication for our Error Indication, code: protocol
generic error(7), offset: 0, data: 00 01 08 00 00 00 00 00 00 FF 00 44 5F F6 00 34
This is only an informational message generated as a part of the NHRP purge notification processing and
will not cause any other issues.
IP Addressing Examples
The following sections provide IP configuration examples:
• Creating a Network from Separated Subnets Example
• Serial Interfaces Configuration Example
• IP Domains Example
• Dynamic Lookup Example
• HP Hosts on a Network Segment Example
• Logical NBMA Example
• NHRP over ATM Example
Network 192.5.10.0
Subnet 172.16.3.0
Router C
Router B
E1
E2
Router A Router D
S1016a
Router B Configuration
interface ethernet 2
ip address 192.5.10.1 255.255.255.0
ip address 131.108.3.1 255.255.255.0 secondary
Router C Configuration
interface ethernet 1
ip address 192.5.10.2 255.255.255.0
ip address 131.108.3.2 255.255.255.0 secondary
IP Domains Example
The following example establishes a domain list with several alternate domain names:
ip domain list csi.com
ip domain list telecomprog.edu
ip domain-list merit.edu
Figure 9 Two Logical NBMA Networks over One Physical NBMA Network
Destination
host
ip nhrp network-id 7
Router E
Router D
ip nhrp network-id 7 ip nhrp network-id 7
ip nhrp network-id 2 Router C
Router B
ip nhrp network-id 2
ip nhrp Router A
network-id 2
Source
host
The physical configuration of the five routers in Figure 9 might actually be that shown in Figure 10. The
source host is connected to Router A and the destination host is connected to Router E. The same switch
serves all five routers, making one physical NBMA network.
Source
host
Router A Router B
Router C
Router E Router D
S3231
Destination
host
Refer again to Figure 9. Initially, before NHRP has resolved any NBMA addresses, IP packets from the
source host to the destination host travel through all five routers connected to the switch before reaching
the destination. When Router A first forwards the IP packet toward the destination host, Router A also
generates an NHRP request for the IP address of the destination host. The request is forwarded to
Router C, whereupon a reply is generated. Router C replies because it is the egress router between the
two logical NBMA networks.
Similarly, Router C generates an NHRP request of its own, to which Router E replies. In this example,
subsequent IP traffic between the source and the destination still requires two hops to traverse the NBMA
network, because the IP traffic must be forwarded between the two logical NBMA networks. Only one
hop would be required if the NBMA network were not logically divided.
Router A Configuration
interface ATM0/0
ip address 10.1.0.1 255.255.0.0
ip nhrp network-id 1
map-group a
atm nsap-address 11.1111.11.111111.1111.1111.1111.1111.1111.1111.11
atm rate-queue 1 10
atm pvc 1 0 5 qsaal
router ospf 1
network 10.0.0.0 0.255.255.255 area 0
map-list a
ip 10.1.0.3 atm-nsap 33.3333.33.333333.3333.3333.3333.3333.3333.3333.33
Router B Configuration
interface ATM0/0
ip address 10.2.0.2 255.255.0.0
ip nhrp network-id 1
map-group a
atm nsap-address 22.2222.22.222222.2222.2222.2222.2222.2222.2222.22
atm rate-queue 1 10
atm pvc 2 0 5 qsaal
router ospf 1
network 10.0.0.0 0.255.255.255 area 0
map-list a
ip 10.2.0.3 atm-nsap 33.3333.33.333333.3333.3333.3333.3333.3333.3333.33
Router C Configuration
interface ATM0/0
no ip address
atm rate-queue 1 10
atm pvc 2 0 5 qsaal
router ospf 1
network 10.0.0.0 0.255.255.255 area 0
neighbor 10.1.0.1 priority 1
neighbor 10.2.0.2 priority 1
map-list a
ip 10.1.0.1 atm-nsap 11.1111.11.111111.1111.1111.1111.1111.1111.1111.11
map-list b
ip 10.2.0.2 atm-nsap 22.2222.22.222222.2222.2222.2222.2222.2222.2222.22
Router B
Loopback address
140.206.59.130
Router A Router C
Loopback address Loopback address
140.206.58.130 BGP 140.206.58.131
autonomous
system 7170
BGP BGP
autonomous autonomous
14462
system 102 system 103
Router A Configuration
ip cef
ip cef accounting non-recursive
!
interface Loopback0
ip address 140.206.58.130 255.255.255.255
no ip directed-broadcast
no ip mroute-cache
!
interface ATM0/1/0
no ip address
no ip directed-broadcast
no ip mroute-cache
atm pvc 5 0 5 qsaal
atm pvc 16 0 16 ilmi
!
interface ATM0/1/0.1 multipoint
ip address 140.206.58.55 255.255.255.192
no ip directed-broadcast
ip nhrp network-id 1
ip ospf network point-to-multipoint
atm pvc 102 0 40 aal5snap inarp 5
atm esi-address 525354555355.01
!
interface Fddi1/0/0
ip address 10.2.1.55 255.255.255.0
no ip directed-broadcast
no ip mroute-cache
no keepalive
!
router ospf 1
passive-interface Fddi1/0/0
network 10.2.1.0 0.0.0.255 area 1
network 140.206.58.0 0.0.0.255 area 1
!
router bgp 7170
no synchronization
network 140.206.0.0
neighbor 10.2.1.36 remote-as 102
neighbor 140.206.59.130 remote-as 7170
neighbor 140.206.59.130 update-source Loopback0
neighbor 140.206.59.130 next-hop-self
Router B Configuration
ip cef
ip cef accounting non-recursive
!
interface Loopback0
ip address 140.206.59.130 255.255.255.255
no ip directed-broadcast
no ip mroute-cache
!
interface ATM0/0
no ip address
no ip directed-broadcast
no ip mroute-cache
atm pvc 5 0 5 qsaal
atm pvc 16 0 16 ilmi
!
interface ATM0/0.1 multipoint
ip address 140.206.58.54 255.255.255.192
no ip directed-broadcast
ip nhrp network-id 1
ip nhrp server-only non-caching
ip route-cache same-interface
ip ospf network point-to-multipoint
atm pvc 102 0 40 aal5snap inarp 5
atm pvc 111 0 85 aal5snap inarp 5
atm esi-address 525354555354.01
!
router ospf 1
network 140.206.58.0 0.0.0.255 area 1
network 140.206.59.0 0.0.0.255 area 0
area 0 range 140.206.59.0 255.255.255.0
!
router bgp 7170
no synchronization
bgp cluster-id 1
network 140.206.0.0
aggregate-address 140.206.0.0 255.255.0.0 summary-only
neighbor 140.206.58.130 remote-as 7170
neighbor 140.206.58.130 route-reflector-client
neighbor 140.206.58.130 update-source Loopback0
neighbor 140.206.58.131 remote-as 7170
neighbor 140.206.58.131 route-reflector-client
neighbor 140.206.58.131 update-source Loopback0
Router C Configuration
ip cef
ip cef accounting non-recursive
!
interface Loopback0
ip address 140.206.58.131 255.255.255.255
no ip directed-broadcast
no ip mroute-cache
!
interface ATM0/0
no ip address
no ip directed-broadcast
no ip mroute-cache
atm pvc 5 0 5 qsaal
atm pvc 16 0 16 ilmi
!
interface ATM0/0.1 multipoint
ip address 140.206.58.56 255.255.255.192
no ip directed-broadcast
ip nhrp network-id 1
ip nhrp trigger-svc 100 50
ip ospf network point-to-multipoint
atm pvc 111 0 85 aal5snap inarp 5
atm esi-address 525354555356.01
!
!
interface Fddi4/0/0
ip address 10.3.1.56 255.255.255.0
no ip directed-broadcast
no ip mroute-cache
no keepalive
!
!
router ospf 1
passive-interface Fddi4/0/0
network 10.3.1.0 0.0.0.255 area 1
network 140.206.58.0 0.0.0.255 area 1
!
router bgp 7170
no synchronization
network 140.206.0.0
neighbor 10.3.1.45 remote-as 103
neighbor 140.206.59.130 remote-as 7170
neighbor 140.206.59.130 update-source Loopback0
neighbor 140.206.59.130 next-hop-self
Router A Configuration
interface tunnel 0
no ip redirects
ip address 11.0.0.1 255.0.0.0
ip nhrp map 11.0.0.2 10.0.0.2
ip nhrp network-id 1
ip nhrp nhs 11.0.0.2
tunnel source ethernet 0
tunnel mode gre multipoint
tunnel key 1
interface ethernet 0
ip address 10.0.0.1 255.0.0.0
Router B Configuration
interface tunnel 0
no ip redirects
ip address 11.0.0.2 255.0.0.0
ip nhrp map 11.0.0.3 10.0.0.3
ip nhrp network-id 1
ip nhrp nhs 11.0.0.3
tunnel source ethernet 0
tunnel mode gre multipoint
tunnel key 1
interface ethernet 0
ip address 10.0.0.2 255.0.0.0
Router C Configuration
interface tunnel 0
no ip redirects
ip address 11.0.0.3 255.0.0.0
ip nhrp map 11.0.0.4 10.0.0.4
ip nhrp network-id 1
ip nhrp nhs 11.0.0.4
tunnel source ethernet 0
tunnel mode gre multipoint
tunnel key 1
interface ethernet 0
ip address 10.0.0.3 255.0.0.0
Router D Configuration
interface tunnel 0
no ip redirects
ip address 11.0.0.4 255.0.0.0
ip nhrp map 11.0.0.1 10.0.0.1
ip nhrp network-id 1
ip nhrp nhs 11.0.0.1
tunnel source ethernet 0
tunnel mode gre multipoint
tunnel key 1
interface ethernet 0
ip address 10.0.0.4 255.0.0.0
Broadcasting Examples
The Cisco IOS software supports two types of broadcasting: directed broadcasting and flooding. A
directed broadcast is a packet sent to a specific network or series of networks, and a flooded broadcast
is a packet sent to every network. The following sections describe configurations for both types of
broadcasting.
E1
E0
E2
S0
S1009a
A directed broadcast address includes the network or subnet fields. For example, if the network address
is 128.1.0.0, the address 128.1.255.255 indicates all hosts on network 128.1.0.0, which would be a
directed broadcast. If network 128.1.0.0 has a subnet mask of 255.255.255.0 (the third octet is the subnet
field), the address 128.1.5.255 specifies all hosts on subnet 5 of network 128.1.0.0—another directed
broadcast.
Network 192.168.1.0
E1
E2
Server
192.168.1.19 Network 10.44.0.0
S1017a
Server
10.44.23.7
The following example translates all source addresses using a route map.
ip nat pool provider1-space 171.69.232.1 171.69.232.254 prefix-length 24
ip nat pool provider2-space 131.108.43.1 131.108.43.254 prefix-length 24
This chapter describes how to configure Dynamic Host Configuration Protocol (DHCP). For a complete
description of the DHCP commands listed in this chapter, refer to the “DHCP Commands” chapter of
the Cisco IOS IP Command Reference, Volume 1 of 3: Addressing and Services publication. To locate
documentation of other commands that appear in this chapter, use the command reference master index,
or search online.
As explained in RFC 2131, Dynamic Host Configuration Protocol, DHCP provides configuration
parameters to Internet hosts. DHCP consists of two components: a protocol for delivering host-specific
configuration parameters from a DHCP Server to a host and a mechanism for allocating network
addresses to hosts. DHCP is built on a client/server model, where designated DHCP Server hosts allocate
network addresses and deliver configuration parameters to dynamically configured hosts. By default,
Cisco routers running Cisco IOS software include DHCP server and relay agent software.
DHCP supports three mechanisms for IP address allocation:
• Automatic allocation—DHCP assigns a permanent IP address to a client.
• Dynamic allocation—DHCP assigns an IP address to a client for a limited period of time (or until
the client explicitly relinquishes the address).
• Manual allocation—The network administrator assigns an IP address to a client and DHCP is used
simply to convey the assigned address to the client.
The format of DHCP messages is based on the format of Bootstrap Protocol (BOOTP) messages, which
ensures support for BOOTP relay agent functionality and interoperability between BOOTP clients and
DHCP Servers. BOOTP relay agents eliminate the need for deploying a DHCP Server on each physical
network segment. BOOTP is explained in RFC 951, Bootstrap Protocol (BOOTP), and RFC 1542,
Clarifications and Extensions for the Bootstrap Protocol.
To identify the hardware platform or software image information associated with a feature, use the
Feature Navigator on Cisco.com to search for information about the feature or refer to the software
release notes for a specific release. For more information, see the “Identifying Supported Platforms”
section in the “Using Cisco IOS Software” chapter in this book.
Figure 14 shows the basic steps that occur when a DHCP client requests an IP address from a DHCP
Server. The client, Host A, sends a DHCPDISCOVER broadcast message to locate a Cisco IOS DHCP
Server. A DHCP Server offers configuration parameters (such as an IP address, a MAC address, a
domain name, and a lease for the IP address) to the client in a DHCPOFFER unicast message.
DHCPDISCOVER (broadcast)
Host A Cisco IOS
DHCPOFFER (unicast) DHCP server
DHCPREQUEST (broadcast)
DHCPACK (unicast)
32369
Note A DHCP client may receive offers from multiple DHCP Servers and can accept any one of the offers;
however, the client usually accepts the first offer it receives. Additionally, the offer from the DHCP
Server is not a guarantee that the IP address will be allocated to the client; however, the server usually
reserves the address until the client has had a chance to formally request the address.
The client returns a formal request for the offered IP address to the DHCP Server in a DHCPREQUEST
broadcast message. The DHCP Server confirms that the IP address has been allocated to the client by
returning a DHCPACK unicast message to the client.
Note The formal request for the offered IP address (the DHCPREQUEST message) that is sent by the client
is broadcast so that all other DHCP Servers that received the DHCPDISCOVER broadcast message
from the client can reclaim the IP addresses that they offered to the client.
If the configuration parameters sent to the client in the DHCPOFFER unicast message by the DHCP
Server are invalid (a misconfiguration error exists), the client returns a DHCPDECLINE broadcast
message to the DHCP Server.
The DHCP Server will send to the client a DHCPNAK denial broadcast message, which means the
offered configuration parameters have not been assigned, if an error has occurred during the
negotiation of the parameters or the client has been slow in responding to the DHCPOFFER message
(the DHCP Server assigned the parameters to another client) of the DHCP Server.
DHCP defines a process by which the DHCP Server knows the IP subnet in which the DHCP client
resides, and it can assign an IP address from a pool of valid IP addresses in that subnet.
The DHCP Server identifies which DHCP address pool to use to service a client request as follows:
• If the client is not directly connected (the giaddr field of the DHCPDISCOVER broadcast message
is non-zero), the DHCP Server matches the DHCPDISCOVER with a DHCP pool that has the subnet
that contains the IP address in the giaddr field.
• If the client is directly connected (the giaddr field is zero), the DHCP Server matches the
DHCPDISCOVER with DHCP pool(s) that contain the subnet(s) configured on the receiving
interface. If the interface has secondary IP addresses, the subnets associated with the secondary IP
addresses are examined for possible allocation only after the subnet associated with the primary IP
address (on the interface) is exhausted.
The Cisco IOS DHCP Server feature offers the following benefits:
• Reduced Internet access costs
Using automatic IP address assignment at each remote site substantially reduces Internet access
costs. Static IP addresses are considerably more expensive to purchase than are automatically
allocated IP addresses.
• Reduced client configuration tasks and costs
Because DHCP is easy to configure, it minimizes operational overhead and costs associated with
device configuration tasks and eases deployment by nontechnical users.
• Centralized management
Because the DHCP Server maintains configurations for several subnets, an administrator only needs
to update a single, central server when configuration parameters change.
Before you configure the Cisco IOS DHCP Server feature, complete the following tasks:
• Identify an external File Transport Protocol (FTP), Trivial File Transfer Protocol (TFTP), or remote
copy protocol (rcp) server that you will use to store the DHCP bindings database.
• Identify the IP addresses that you will enable the DHCP Server to assign, and the IP addresses that
you will exclude.
• Identify DHCP options for devices where necessary, including the following:
– Default boot image name
– Default routers
– Domain Name System (DNS) servers
– NetBIOS name server
• Decide on a NetBIOS node type (b, p, m, or h).
• Decide on a DNS domain name.
Note Inherited parameters can be overridden. For example, if a parameter is defined in both the natural
network and a subnetwork, the definition of the subnetwork is used.
Address leases are not inherited. If a lease is not specified for an IP address, by default, the DHCP
Server assigns a one-day lease for the address.
To configure the Cisco IOS DHCP Server feature, perform the tasks described in the following sections.
First configure a database agent or disable conflict logging, then specify IP addresses that the DHCP
Server should not assign (excluded addresses) and should assign (a pool of available IP addresses) to
requesting clients. The tasks in the first three sections are required. The tasks in the remaining sections
are optional.
• Enabling the Cisco IOS DHCP Server and Relay Agent Features (Optional)
• Configuring a DHCP Database Agent or Disabling DHCP Conflict Logging (Required)
• Excluding IP Addresses (Required)
• Configuring a DHCP Address Pool (Required)
• Configuring Manual Bindings (Optional)
• Configuring a DHCP Server Boot File (Optional)
• Configuring the Number of Ping Packets (Optional)
• Configuring the Timeout Value for Ping Packets (Optional)
• Enabling the Cisco IOS DHCP Client on Ethernet Interfaces (Optional)
• Configuring DHCP Server Options Import and Autoconfiguration (Optional)
• Configuring the Relay Agent Information Option in BOOTREPLY Messages (Optional)
• Configuring a Relay Agent Information Reforwarding Policy (Optional)
• Enabling the DHCP Smart-Relay Feature (Optional)
Enabling the Cisco IOS DHCP Server and Relay Agent Features
By default, the Cisco IOS DHCP server and relay agent features are enabled on your router. To reenable
these features if they are disabled, use the following command in global configuration mode:
Command Purpose
Router(config)# service dhcp Enables the Cisco IOS DHCP server and relay features on your router.
Use the no form of this command to disable the Cisco IOS DHCP server and relay
features.
Command Purpose
Router(config)# ip dhcp database url Configures the database agent and the interval between database updates
[timeout seconds | write-delay seconds] and database transfers.
If you choose not to configure a DHCP database agent, disable the recording of DHCP address conflicts
on the DHCP Server. To disable DHCP address conflict logging, use the following command in global
configuration mode:
Command Purpose
Router(config)# no ip dhcp conflict logging Disables DHCP address conflict logging.
Excluding IP Addresses
The DHCP Server assumes that all IP addresses in a DHCP address pool subnet are available for
assigning to DHCP clients. You must specify the IP address that the DHCP Server should not assign to
clients. To do so, use the following command in global configuration mode:
Command Purpose
Router(config)# ip dhcp excluded-address Specifies the IP addresses that the DHCP Server should not assign to
low-address [high-address] DHCP clients.
Configuring the DHCP Address Pool Name and Entering DHCP Pool Configuration Mode
To configure the DHCP address pool name and enter DHCP pool configuration mode, use the following
command in global configuration mode:
Command Purpose
Router(config)# ip dhcp pool name Creates a name for the DHCP Server address pool and places you in DHCP
pool configuration mode (identified by the dhcp-config# prompt).
Command Purpose
Router(dhcp-config)# network network-number Specifies the subnet network number and mask of the DHCP
[mask | /prefix-length] address pool.
The prefix length specifies the number of bits that comprise the
address prefix. The prefix is an alternative way of specifying the
network mask of the client. The prefix length must be preceded by
a forward slash (/).
Note You can not configure manual bindings within the same pool that is configured with the network
command. To configure manual bindings, see the “Configuring Manual Bindings” section.
Command Purpose
Router(dhcp-config)# domain-name domain Specifies the domain name for the client.
Command Purpose
Router(dhcp-config)# dns-server address Specifies the IP address of a DNS server that is available to a DHCP client.
[address2 ... address8] One IP address is required; however, you can specify up to eight IP
addresses in one command line.
Configuring the NetBIOS Windows Internet Naming Service Servers for the Client
Windows Internet Naming Service (WINS) is a name resolution service that Microsoft DHCP clients use
to correlate host names to IP addresses within a general grouping of networks. To configure the NetBIOS
WINS servers that are available to a Microsoft DHCP client, use the following command in DHCP pool
configuration mode:
Command Purpose
Router(dhcp-config)# netbios-name-server Specifies the NetBIOS WINS server that is available to a Microsoft
address [address2 ... address8] DHCP client. One address is required; however, you can specify up to
eight addresses in one command line.
Command Purpose
Router(dhcp-config)# netbios-node-type type Specifies the NetBIOS node type for a Microsoft DHCP client.
Command Purpose
Router(dhcp-config)# default-router Specifies the IP address of the default router for a DHCP client. One IP
address [address2 ... address8] address is required; however, you can specify up to eight addresses in one
command line.
Command Purpose
Router(dhcp-config)# lease {days Specifies the duration of the lease. The default is a one-day lease.
[hours][minutes] | infinite}
• Use the show ip dhcp binding to display the lease expiration time
and date of the IP address of the host.
Manual bindings are IP addresses that have been manually mapped to the MAC addresses of hosts that
are found in the DHCP database. Manual bindings are stored in NVRAM on the DHCP Server. Manual
bindings are just special address pools. There is no limit on the number of manual bindings but you can
only configure one manual binding per host pool.
Automatic bindings are IP addresses that have been automatically mapped to the MAC addresses of hosts
that are found in the DHCP database. Automatic bindings are stored on a remote host called a database
agent. The bindings are saved as text records for easy maintenance.
To configure a manual binding, first create a host pool, then specify the IP address of the client and
hardware address or client identifier. The hardware address is the MAC address. The client identifier,
which is required for Microsoft clients (instead of hardware addresses), is formed by concatenating the
media type and the MAC address of the client. Refer to the “Address Resolution Protocol Parameters”
section of RFC 1700, Assigned Numbers, for a list of media type codes.
To configure manual bindings, use the following commands beginning in global configuration mode:
Command Purpose
Step 1 Router(config)# ip dhcp pool name Creates a name for the a DHCP Server address pool and places you
in DHCP pool configuration mode—identified by the
(dhcp-config)# prompt.
Step 2 Router(dhcp-config)# host address Specifies the IP address and subnet mask of the client.
[mask | /prefix-length]
The prefix length specifies the number of bits that comprise the
address prefix. The prefix is an alternative way of specifying the
network mask of the client. The prefix length must be preceded by
a forward slash (/).
Step 3 Router(dhcp-config)# hardware-address Specifies a hardware address for the client.
hardware-address type
The type value:
or • Indicates the protocol of the hardware platform. Strings and
Router(dhcp-config)# client-identifier values are acceptable. The string options are:
unique-identifier
– ethernet
– ieee802
• The value options are:
– 1 10Mb Ethernet
– 6 IEEE 802
If no type is specified, the default protocol is Ethernet.
or
Specifies the distinct identification of the client in dotted
hexadecimal notation, for example, 01b7.0813.8811.66, where 01
represents the Ethernet media type.
Step 4 Router(dhcp-config)# client-name name (Optional) Specifies the name of the client using any standard
ASCII character. The client name should not include the domain
name. For example, the name mars should not be specified as
mars.cisco.com.
Command Purpose
Router(dhcp-config)# bootfile filename Specifies the name of the file that is used as a boot image.
Command Purpose
Router(config)# ip dhcp ping packets Specifies the number of ping packets the DHCP Server sends to a pool
number address before assigning the address to a requesting client. The default is
two packets. Setting the count argument to a value of 0 turns off DHCP
Server ping operation completely.
Command Purpose
Router(config)# ip dhcp ping timeout milliseconds Specifies the amount of time the DHCP Server must wait before
timing out a ping packet. The default is 500 milliseconds.
Command Purpose
Router(config-if)# ip address dhcp [client-id interface name] Specifies that the Ethernet interface acquires an IP
[hostname host-name] address through DHCP.
Command Purpose
Step 1 Router(config)# ip dhcp pool name Creates a name for the a DHCP Server address pool and places you
in DHCP pool configuration mode—identified by the
(dhcp-config)# prompt.
Step 2 Router(dhcp-config)# network Specifies the subnet network number and mask of the DHCP
network-number [mask | /prefix-length] address pool.
The prefix length specifies the number of bits that comprise the
address prefix. The prefix is an alternative way of specifying the
network mask of the client. The prefix length must be preceded by
a forward slash (/).
Step 3 Router(dhcp-config)# dns-server address Specifies the IP address of a DNS server that is available to a DHCP
[address2 ... address8] client. One IP address is required; however, you can specify up to
eight IP addresses in one command line.
To configure the remote router to import DHCP options into the DHCP server database, use the
following commands beginning in global configuration mode:
Command Purpose
Step 1 Router(config)# ip dhcp pool name Creates a name for the a DHCP Server address pool and places you
in DHCP pool configuration mode—identified by the
(dhcp-config)# prompt.
Step 2 Router(dhcp-config)# network Specifies the subnet network number and mask of the DHCP
network-number [mask | /prefix-length] address pool.
The prefix length specifies the number of bits that comprise the
address prefix. The prefix is an alternative way of specifying the
network mask of the client. The prefix length must be preceded by
a forward slash (/).
Step 3 Router(dhcp-config)# import all Import DHCP option parameters into the DHCP server database.
Step 4 Router(dhcp-config)# exit Exits DHCP pool configuration mode.
Step 5 Router(config)# interface type number Configures an interface and enters interface configuration mode.
Step 6 Router(config-if)# ip address dhcp Specifies that the interface acquires an IP address through DHCP.
[client-id interface name] [hostname
host-name]
Command Purpose
Router(config)# ip dhcp relay information check Configures the DHCP Server to check that the relay agent
information option in forwarded BOOTREPLY messages is valid.
Command Purpose
Router(config)# ip dhcp relay information policy Determines the relay information reforwarding policy in a cable
{drop | keep |replace} modem termination system.
Command Purpose
Router(config)# ip dhcp smart-relay Allows the DHCP relay agent to switch the gateway address
(giaddr field of a DHCP packet) to secondary addresses when
there is no DHCPOFFER message from a DHCP Server.
Command Purpose
Router# clear ip dhcp binding {address | *} Deletes an automatic address binding from the DHCP database.
Specifying the address argument clears the automatic binding for a
specific (client) IP address, whereas specifying an asterisk (*) clears
all automatic bindings.
Router# clear ip dhcp conflict {address | *} Clears an address conflict from the DHCP database. Specifying the
address argument clears the conflict for a specific IP address, whereas
specifying an asterisk (*) clears conflicts for all addresses.
Command Purpose
Router# clear ip dhcp server statistics Resets all DHCP Server counters to 0.
Router# clear ip route [vrf vrf-name] dhcp Removes routes from the routing table added by the Cisco IOS DHCP
[ip-address] Server and Relay Agent for the DHCP clients on unnumbered
interfaces.
To enable DHCP Server debugging, use the following command in privileged EXEC mode:
Command Purpose
Router# debug ip dhcp server {events | packets | linkage} Enables debugging on the DHCP Server.
To display DHCP Server information, use the following commands in EXEC mode, as needed:
Command Purpose
Router# show ip dhcp binding [address] Displays a list of all bindings created on a specific DHCP Server.
• Use the show ip dhcp binding to display the lease expiration time
and date of the IP address of the host and the number. You can also
use this command to display the IP addresses that have already
been assigned.
Router# show ip dhcp conflict [address] Displays a list of all address conflicts recorded by a specific DHCP
Server.
Router# show ip dhcp database [url] Displays recent activity on the DHCP database.
Note Use this command in privileged EXEC mode.
Router# show ip dhcp server statistics Displays count information about server statistics and messages sent
and received.
Router# show ip dhcp import Displays the option parameters that were imported into the DHCP
Server database. Imported option parameters are not part of the router
configuration and are not saved in NVRAM.
Router# show ip route [vrf vrf-name] dhcp Displays the routes added to the routing table by the Cisco IOS DHCP
[ip-address] Server and Relay Agent.
Configuration Examples
This section provides the following configuration examples:
• DHCP Database Agent Configuration Example
• DHCP Address Pool Configuration Example
• Manual Bindings Configuration Example
• Cisco IOS DHCP Client Example
• DHCP Server Options Import and Autoconfiguration Example
Because attributes are inherited, the previous configuration is equivalent to the following:
ip dhcp pool Mars
host 172.16.2.254 mask 255.255.255.0
hardware-address 02c7.f800.0422 ieee802
client-name Mars
default-router 172.16.2.100 172.16.2.101
domain-name cisco.com
dns-server 172.16.1.102 172.16.2.102
netbios-name-server 172.16.1.103 172.16.2.103
netbios-node-type h-node
Cisco IOS
DHCP client Cisco IOS
DHCP server
10.1.1.1
42327
E2 ethernet E1
This configuration allows the DHCP client to aquire an IP address from the DHCP Server through an
Ethernet interface.
PC/client
10.0.0.2 10.0.0.1
FE0/0 FE0/0
72680
Central Router
!do not assign this range to DHCP clients
ip dhcp-excluded address 10.0.0.1 10.0.0.5
!
ip dhcp pool central
! Specifies network number and mask for DHCP clients
network 10.0.0.0 255.255.255.0
! Specifes the domain name for the client
domain-name central
! Specifies DNS server that will respond to DHCP clients when they need to correlate host
! name to ip address
dns-server 10.0.0.2
!Specifies the NETBIOS WINS server
netbios-name-server 10.0.0.2
!
interface FastEthernet0/0
ip address 10.0.0.1 255.255.255.0
duplex auto
speed auto
Remote Router
!
ip dhcp pool client
! Imports DHCP options parameters into DHCP server database
import all
network 20.0.0.0 255.255.255.0
!
interface FastEthernet0/0
ip address dhcp
duplex auto
speed auto
This chapter describes how to configure optional IP services. For a complete description of the IP
services commands in this chapter, refer to the “IP Services Commands” chapter of the Cisco IOS IP
Command Reference, Volume 1 of 3: Addressing and Services. To locate documentation of other
commands that appear in this chapter, use the command reference master index, or search online.
Managing IP Connections
The IP suite offers a number of services that control and manage IP connections. Internet Control
Message Protocol (ICMP) provides many of these services. ICMP messages are sent by routers or access
servers to hosts or other routers when a problem is discovered with the Internet header. For detailed
information on ICMP, see RFC 792.
To manage various aspects of IP connections, perform the optional tasks described in the following
sections:
• Enabling ICMP Protocol Unreachable Messages (Optional)
• Enabling ICMP Redirect Messages (Optional)
• Enabling ICMP Mask Reply Messages (Optional)
• Understanding Path MTU Discovery (Optional)
• Setting the MTU Packet Size (Optional)
• Enabling IP Source Routing (Optional)
• Configuring Simplex Ethernet Interfaces (Optional)
• Configuring a DRP Server Agent (Optional)
See the “ICMP Services Example” section at the end of this chapter for examples of ICMP services.
Command Purpose
Router(config-if)# ip unreachables Enables the sending of ICMP protocol unreachable and host unreachable
messages.
To limit the rate that ICMP destination unreachable messages are generated, use the following command
in global configuration mode:
Command Purpose
Router(config)# ip icmp rate-limit Limits the rate that ICMP destination unreachable messages are generated.
unreachable [df] milliseconds
To enable the sending of ICMP redirect messages if this feature was disabled, use the following
command in interface configuration mode:
Command Purpose
Router(config-if)# ip redirects Enables the sending of ICMP redirect messages to learn routes.
Command Purpose
Router(config-if)# ip mask-reply Enables the sending of ICMP mask reply messages.
MTU = 1500
Packet = 800 bytes
Don't fragment
MTU = 512
"Unreachable" sent
S1014a
Packet dropped
IP Path MTU Discovery is useful when a link in a network goes down, forcing the use of another,
different MTU-sized link (and different routers). As shown in Figure 17, suppose a router is sending IP
packets over a network where the MTU in the first router is set to 1500 bytes, but the second router is
set to 512 bytes. If the “Don’t fragment” bit of the datagram is set, the datagram would be dropped
because the 512-byte router is unable to forward it. All packets larger than 512 bytes are dropped in this
case. The second router returns an ICMP destination unreachable message to the source of the datagram
with its Code field indicating, “Fragmentation needed and DF set.” To support IP Path MTU Discovery,
it would also include the MTU of the next hop network link in the low-order bits of an unused header
field.
IP Path MTU Discovery is also useful when a connection is being established and the sender has no
information at all about the intervening links. It is always advisable to use the largest MTU that the links
will bear; the larger the MTU, the fewer packets the host must send.
Note IP Path MTU Discovery is a process initiated by end hosts. If an end host does not support IP Path
MTU Discovery, the receiving device will have no mechanism available to avoid fragmenting
datagrams generated by the end host.
If a router that is configured with a small MTU on an outbound interface receives packets from a host
that is configured with a large MTU (for example, receiving packets from a Token Ring interface and
forwarding them to an outbound Ethernet interface), the router fragments received packets that are larger
than the MTU of the outbound interface. Fragmenting packets slows the performance of the router. To
keep routers in your network from fragmenting received packets, run IP Path MTU Discovery on all
hosts and routers in your network, and always configure the largest possible MTU for each router
interface type.
To enable IP Path MTU Discovery for connections initiated by the router (when the router is acting as a
host), see the section “Enabling TCP Path MTU Discovery” later in this chapter.
Command Purpose
Router(config-if)# ip mtu bytes Sets the IP MTU packet size for an interface.
IP provides a provision known as source routing that allows the source IP host to specify a route through
the IP network. Source routing is specified as an option in the IP header. If source routing is specified,
the software forwards the packet according to the specified source route. This feature is employed when
you want to force a packet to take a certain route through the network. The default is to perform source
routing.
To enable IP source-route header options if they have been disabled, use the following command in
global configuration mode:
Command Purpose
Router(config)# ip source-route Enables IP source routing.
Command Purpose
Router(config-if)# transmit-interface type number Assigns a transmit interface to a receive-only interface.
See the “Simplex Ethernet Interfaces Example” section at the end of this chapter for an example of
configuring a simplex Ethernet interface.
To configure and maintain the DRP Server Agent, perform the tasks described in the following sections.
The task in the first section is required; the tasks in the remaining sections are optional.
• Enabling the DRP Server Agent (Required)
• Limiting the Source of DRP Queries (Optional)
• Configuring Authentication of DRP Queries and Responses (Optional)
To monitor and maintain the DRP Server Agent, see the section “Monitoring and Maintaining the DRP
Server Agent” later in this chapter.
For an example of configuring a DRP Server Agent, see the section “DRP Server Agent Example” at the
end of this chapter.
Command Purpose
Router(config)# ip drp server Enables the DRP Server Agent.
Command Purpose
Router(config)# ip drp access-group Controls the sources of valid DRP queries by applying a standard IP
access-list-number access list.
Command Purpose
Step 1 Router(config)# ip drp authentication key-chain Identifies which key chain to use to authenticate all DRP
name-of-chain requests and responses.
Step 2 Router(config)# key chain name-of-chain Identifies a key chain (match the name configured in
Step 1).
Step 3 Router(config-keychain)# key number In key-chain configuration mode, identifies the key number.
Command Purpose
Step 4 Router(config-keychain-key)# key-string text In key-chain key configuration mode, identifies the key
string.
Step 5 Router(config-keychain-key)# accept-lifetime (Optional) Specifies the time period during which the key
start-time {infinite | end-time | duration can be received.
seconds}
Step 6 Router(config-keychain-key)# send-lifetime (Optional) Specifies the time period during which the key
start-time {infinite | end-time | duration can be sent.
seconds}
When configuring your key chains and keys, be aware of the following guidelines:
• The key chain configured for the DRP Server Agent in Step 1 must match the key chain in Step 2.
• The key configured in the primary agent in the remote router must match the key configured in the
DRP Server Agent in order for responses to be processed.
• You can configure multiple keys with lifetimes, and the software will rotate through them.
• If authentication is enabled and multiple keys on the key chain happen to be active based on the
send-lifetime values, the software uses only the first key it encounters for authentication.
• Use the show key chain command to display key chain information.
Note To configure lifetimes for DRP authentication, you must configure time services for your router. For
information on setting time services, see the Network Time Protocol (NTP) and calendar commands
in the “Performing Basic System Management” chapter of the Cisco IOS Configuration
Fundamentals Configuration Guide.
Note Release 11.1 introduced substantial changes to IP access lists. These extensions are backward
compatible; migrating from a release earlier than Release 11.1 to the current release will convert your
access lists automatically. However, the current implementation of access lists is incompatible with
Cisco IOS Release 11.1 or earlier. If you create an access list using the current Cisco IOS release and
then load older Cisco IOS software, the resulting access list will not be interpreted correctly. This
condition could cause you severe security problems. Save your old configuration file before booting
Release 11.1 or earlier images.
To create a standard access list, use the following commands in global configuration mode:
Command Purpose
Step 1 Router(config)# access-list access-list-number remark Indicates the purpose of the deny or permit
remark statement.1
Step 2 Router(config)# access-list access-list-number {deny | Defines a standard IP access list using a source
permit} source [source-wildcard] [log] address and wildcard.
or
The Cisco IOS software can provide logging messages about packets permitted or denied by a standard
IP access list. That is, any packet that matches the access list will cause an informational logging
message about the packet to be sent to the console. The level of messages logged to the console is
controlled by the logging console global configuration command.
The first packet that triggers the access list causes an immediate logging message, and subsequent
packets are collected over 5-minute intervals before they are displayed or logged. The logging message
includes the access list number, whether the packet was permitted or denied, the source IP address of the
packet, and the number of packets from that source permitted or denied in the prior 5-minute interval.
However, you can use the ip access-list log-update command to set the number of packets that, when
match an access list (and are permitted or denied), cause the system to generate a log message. You might
want to do this to receive log messages more frequently than at 5-minute intervals.
Caution If you set the number-of-matches argument to 1, a log message is sent right away, rather than caching
it; every packet that matches an access list causes a log message. A setting of 1 is not recommended
because the volume of log messages could overwhelm the system.
Even if you use the ip access-list log-update command, the 5-minute timer remains in effect, so each
cache is emptied at the end of 5 minutes, regardless of the count of messages in each cache. Regardless
of when the log message is sent, the cache is flushed and the count reset to 0 for that message the same
way it is when a threshold is not specified.
Note The logging facility might drop some logging message packets if there are too many to be handled
or if there is more than one logging message to be handled in 1 second. This behavior prevents the
router from crashing due to too many logging packets. Therefore, the logging facility should not be
used as a billing tool or an accurate source of the number of matches to an access list.
Note If you enable CEF and then create an access list that uses the log keyword, the packets that match the
access list are not CEF switched. They are fast switched. Logging disables CEF.
For an example of a standard IP access list using logs, see the section “Numbered Access List Examples”
at the end of this chapter.
To create an extended access list, use the following commands in global configuration mode:
Command Purpose
Step 1 Router(config)# access-list access-list-number Indicates the purpose of the deny or permit
remark remark statement.1
Step 2 Router(config)# access-list access-list-number {deny Defines an extended IP access list number and the
| permit} protocol source source-wildcard access conditions. Specifies a time range to restrict
destination destination-wildcard [precedence
precedence] [tos tos] [established] [log |
when the permit or deny statement is in effect. Use
log-input] [time-range time-range-name] [fragments] the log keyword to get access list logging messages,
including violations. Use the log-input keyword to
include input interface, source MAC address, or VC
in the logging output.
or
or
Router(config)# access-list access-list-number {deny Defines an extended IP access list using an
| permit} protocol any any [log | log-input] abbreviation for a source and source wildcard of
[time-range time-range-name] [fragments] 0.0.0.0 255.255.255.255, and an abbreviation for a
destination and destination wildcard of 0.0.0.0
255.255.255.255.
or or
or or
Defines a dynamic access list. For information about
Router(config)# access-list access-list-number
[dynamic dynamic-name [timeout minutes]] {deny | lock-and-key access, refer to the “Configuring Traffic
permit} protocol source source-wildcard destination Filters” chapter in the Cisco IOS Security
destination-wildcard [precedence precedence] [tos Configuration Guide.
tos] [established] [log | log-input] [time-range
time-range-name] [fragments]
1. This example configures the remark before the deny or permit statement. The remark can be configured after the deny or permit statement.
Note The fragments keyword is described in the Specifying IP Extended Access Lists with Fragment
Control section.
After you create an access list, you place any subsequent additions (possibly entered from the terminal)
at the end of the list. In other words, you cannot selectively add or remove access list command lines
from a specific access list.
Note When creating an access list, remember that, by default, the end of the access list contains an implicit
deny statement for everything if it did not find a match before reaching the end.
Note In a standard access list, if you omit the mask from an associated IP host address access list
specification, 0.0.0.0 is assumed to be the mask.
Note Autonomous switching is not used when you have extended access lists.
After creating an access list, you must apply it to a line or interface, as shown in the section “Applying
Access Lists” later in this chapter. See the “Implicit Masks in Access Lists Examples” section at the end
of this chapter for examples of implicit masks.
Note Named access lists will not be recognized by any software release prior to Cisco IOS Release 11.2.
To create a standard access list, use the following commands beginning in global configuration mode:
Command Purpose
Step 1 Router(config)# ip access-list standard name Defines a standard IP access list using a name and
enters standard named access list configuration
mode.
Step 2 Router(config-std-nacl)# remark remark Allows you to comment about the following deny or
permit statement in a named access list.1
Step 3 Router(config-std-nacl)# deny {source Specifies one or more conditions allowed or denied,
[source-wildcard] | any}[log] which determines whether the packet is passed or
dropped.
and/or
Router(config-std-nacl)# permit {source
[source-wildcard] | any}[log]
Step 4 Router(config-std-nacl)# exit Exits access-list configuration mode.
1. This example configures the remark before the deny or permit statement. The remark can be configured after the deny or permit statement.
To create an extended access list, use the following commands beginning in global configuration mode:
Step 1 Router(config)# ip access-list extended name Defines an extended IP access list using a name and
enters extended named access list configuration
mode.
Step 2 Router(config-ext-nacl)# remark remark Allows you to comment about the following deny or
permit statement in a named access list.1
Step 3 Router(config-ext-nacl)# deny | permit protocol In access-list configuration mode, specifies the
source source-wildcard destination conditions allowed or denied. Specifies a time range
destination-wildcard [precedence precedence] [tos
tos] [established] [log | log-input] [time-range
to restrict when the permit or deny statement is in
time-range-name] [fragments] effect. Use the log keyword to get access list logging
messages, including violations. Use the log-input
keyword to include input interface, source MAC
address, or VC in the logging output.
or or
Router(config-ext-nacl)# deny | permit protocol any Defines an extended IP access list using an
any [log | log-input] [time-range time-range-name] abbreviation for a source and source wildcard of
[fragments]
0.0.0.0 255.255.255.255, and an abbreviation for a
destination and destination wildcard of 0.0.0.0
255.255.255.255.
or or
Router(config-ext-nacl) deny | permit protocol host
source host destination [log | log-input]
Defines an extended IP access list using an
[time-range time-range-name] [fragments] abbreviation for a source and source wildcard of
source 0.0.0.0, and an abbreviation for a destination
and destination wildcard of destination 0.0.0.0.
or or
Router(config-ext-nacl)# dynamic dynamic-name Defines a dynamic access list.
[timeout minutes] {deny | permit} protocol source
source-wildcard destination destination-wildcard
[precedence precedence] [tos tos] [established] [log
| log-input] [time-range time-range-name]
[fragments]
1. This example configures the remark before the deny or permit statement. The remark can be configured after the deny or permit statement.
Note Autonomous switching is not used when you have extended access lists.
Note The fragments keyword is described in the Specifying IP Extended Access Lists with Fragment
Control section.
After you initially create an access list, you place any subsequent additions (possibly entered from the
terminal) at the end of the list. In other words, you cannot selectively add access list command lines to
a specific access list. However, you can use no permit and no deny commands to remove entries from
a named access list.
Note When making the standard and extended access list, remember that, by default, the end of the access
list contains an implicit deny statement for everything if it did not find a match before reaching the
end. Further, with standard access lists, if you omit the mask from an associated IP host address
access list specification, 0.0.0.0 is assumed to be the mask.
After creating an access list, you must apply it to a line or interface, as shown in section “Applying
Access Lists” later in this chapter.
See the “Named Access List Example” section at the end of this chapter for an example of a named
access list.
The behavior of access-list entries regarding the presence or absence of the fragments keyword can be
summarized as follows:
...the fragments keyword, and The access-list entry is applied only to noninitial fragments.
assuming all of the access-list entry
information matches,
Note The fragments keyword cannot be configured for
an access-list entry that contains any Layer 4
information.
Be aware that you should not simply add the fragments keyword to every access list entry because the
first fragment of the IP packet is considered a nonfragment and is treated independently of the
subsequent fragments. An initial fragment will not match an access list permit or deny entry that
contains the fragments keyword, the packet is compared to the next access list entry, and so on, until it
is either permitted or denied by an access list entry that does not contain the fragments keyword.
Therefore, you may need two access list entries for every deny entry. The first deny entry of the pair
will not include the fragments keyword, and applies to the initial fragment. The second deny entry of
the pair will include the fragments keyword and applies to the subsequent fragments. In the cases where
there are multiple deny access list entries for the same host but with different Layer 4 ports, a single
deny access-list entry with the fragments keyword for that host is all that needs to be added. Thus all
the fragments of a packet are handled in the same manner by the access list.
Note The fragments keyword cannot solve all cases involving access lists and IP fragments.
Policy Routing
Fragmentation and the fragment control feature affect policy routing if the policy routing is based on the
match ip address command and the access list had entries that match on Layer 4 through 7 information.
It is possible that noninitial fragments pass the access list and are policy routed, even if the first fragment
was not policy routed or the reverse.
By using the fragments keyword in access list entries as described earlier, a better match between the
action taken for initial and noninitial fragments can be made and it is more likely policy routing will
occur as intended.
Additional Security
You are able to block more of the traffic you intended to block, not just the initial fragment of such
packets. The unwanted fragments no longer linger at the receiver until the reassembly timeout is reached
because they are blocked before being sent to the receiver. Blocking a greater portion of unwanted traffic
improves security and reduces the risk from potential hackers.
Reduced Cost
By blocking unwanted noninitial fragments of packets, you are not paying for traffic you intended to
block.
Reduced Storage
By blocking unwanted noninitial fragments of packets from ever reaching the receiver, that destination
does not have to store the fragments until the reassembly timeout period is reached.
Note Access lists containing specialized processing characteristics such as evaluate and time-range entries
are excluded from Turbo ACL acceleration.
The Turbo ACL builds a set of lookup tables from the ACLs in the configuration; these tables increase
the internal memory usage, and in the case of large and complex ACLs, tables containing 2 MB to 4 MB
of memory are usually required. Routers enabled with the Turbo ACL feature should allow for this
amount of memory usage. The show access-list compiled EXEC command displays the memory
overhead of the Turbo ACL tables for each access list.
To configure the Turbo ACL feature, perform the tasks described in the following sections. The task in
the first section is required; the task in the remaining section is optional:
• Configuring Turbo ACLs (Required)
• Verifying Turbo ACLs (Optional)
Command Purpose
Router(config)# access-list compiled Enables the Turbo ACL feature.
time-range command is described in the “Performing Basic System Management” chapter of the Cisco
IOS Configuration Fundamentals Configuration Guide. See the “Time Range Applied to an IP Access
List Example” section at the end of this chapter for a configuration example of IP time ranges.
Possible benefits of using time ranges include the following:
• The network administrator has more control over permitting or denying a user access to resources.
These resources could be an application (identified by an IP address/mask pair and a port number),
policy routing, or an on-demand link (identified as interesting traffic to the dialer).
• Network administrators can set time-based security policy, including the following:
– Perimeter security using the Cisco IOS Firewall feature set or access lists
– Data confidentiality with Cisco Encryption Technology or IP Security Protocol (IPSec)
• Policy-based routing (PBR) and queueing functions are enhanced.
• When provider access rates vary by time of day, it is possible to automatically reroute traffic cost
effectively.
• Service providers can dynamically change a committed access rate (CAR) configuration to support
the quality of service (QoS) service level agreements (SLAs) that are negotiated for certain times of
day.
• Network administrators can control logging messages. Access list entries can log traffic at certain
times of the day, but not constantly. Therefore, administrators can simply deny access without
needing to analyze many logs generated during peak hours.
Command Purpose
Router(config-line)# access-class access-list-number {in Restricts incoming and outgoing connections between a
| out} particular vty (into a device) and the addresses in an
access list.
To restrict access to an interface, use the following command in interface configuration mode:
Command Purpose
Router(config-if)# ip access-group {access-list-number | Controls access to an interface.
access-list-name} {in | out}
For inbound access lists, after receiving a packet, the Cisco IOS software checks the source address of
the packet against the access list. If the access list permits the address, the software continues to process
the packet. If the access list rejects the address, the software discards the packet and returns an ICMP
host unreachable message.
For outbound access lists, after receiving and routing a packet to a controlled interface, the software
checks the source address of the packet against the access list. If the access list permits the address, the
software sends the packet. If the access list rejects the address, the software discards the packet and
returns an ICMP host unreachable message.
When you apply an access list that has not yet been defined to an interface, the software will act as if the
access list has not been applied to the interface and will accept all packets. Remember this behavior if
you use undefined access lists as a means of security in your network.
Note Token Ring interfaces allow up to three Hot Standby groups each, the group numbers being 0, 1, and
2.
Note The Cisco 1000 series, Cisco 2500 series, Cisco 3000 series, Cisco 4000 series, and Cisco 4500
routers that use Lance Ethernet hardware do not support multiple Hot Standby groups on a single
Ethernet interface. The Cisco 800 series, Cisco 1000 series, and Cisco 1600 series that use PQUICC
Ethernet hardware do not support multiple Hot Standby groups on a single Ethernet interface. You
can configure a workaround solution by using the standby use-bia interface configuration command,
which uses the burned-in address of the interface as its virtual MAC address, instead of the
preassigned MAC address.
HSRP is supported over Inter-Switch Link (ISL) encapsulation. Refer to the “Configuring Routing
Between VLANs with ISL Encapsulation” chapter in the Cisco IOS Switching Services Configuration
Guide.
With Cisco IOS Release 12.1(3)T, HSRP can provide support for a Multiprotocol Label Switching
(MPLS) Virtual Private Network (VPN) interface. See the section “Enabling HSRP Support for MPLS
VPNs” later in this chapter for more information,
To configure HSRP, perform the tasks described in the following sections. The tasks in the first section
are required; the tasks in the remaining sections are optional.
• Enabling HSRP (Required)
• Configuring HSRP Group Attributes (Optional)
• Changing the HSRP MAC Refresh Interval (Optional)
• Enabling HSRP MIB Traps (Optional)
• Enabling HSRP Support for MPLS VPNs (Optional)
• Enabling HSRP Support for ICMP Redirect Messages (Optional)
For more information about HSRP and how to configure it on a Cisco router, see the chapter “Using
HSRP for Fault-Tolerant IP Routing” in the Cisco CCIE Fundamentals: Case Studies publication.
To identify the hardware platform or software image information associated with a feature, use the
Feature Navigator on Cisco.com to search for information about the feature or refer to the software
release notes for a specific release. For more information, see the “Identifying Supported Platforms”
section in the “Using Cisco IOS Software” chapter in this book.
Enabling HSRP
To enable the HSRP on an interface, use the following command in interface configuration mode:
Command Purpose
Router(config-if)# standby [group-number] ip Enables the HSRP.
[ip-address [secondary]]
Command Purpose
Router(config-if)# standby [group-number] timers Configures the time between hello packets and the hold time
[msec] hellotime [msec] holdtime before other routers declare the active router to be down.
Router(config-if)# standby [group-number] priority Set the Hot Standby priority used in choosing the active
priority router. The priority value range is from 1 to 255, where 1
denotes the lowest priority and 255 denotes the highest
priority. Specify that, if the local router has priority over the
current active router, the local router should attempt to take its
place as the active router.
Router(config-if)# standby [group-number] preempt Configure a preemption delay, after which the Hot Standby
[delay {minimum delay | reload delay | sync delay}] router preempts and becomes the active router.
Router(config-if)# standby [group-number] track type Configures the interface to track other interfaces, so that if
number [interface-priority] one of the other interfaces goes down, the Hot Standby
priority of the device is lowered.
Router(config-if)# standby [group-number] Selects an authentication string to be carried in all HSRP
authentication text string messages.
Router(config-if)# standby delay minimum min-delay Configures the delay period before the initialization of Hot
reload reload-delay Standby Router Protocol (HSRP) groups.
Router(config-if)# standby [group-number] mac-address Specifies a virtual MAC address for the virtual router.
macaddress
Router(config-if)# standby use-bia [scope interface] Configures HSRP to use the burned-in address of an interface
as its virtual MAC address instead of the preassigned MAC
address (on Ethernet and FDDI) or the functional address (on
Token Ring).
Command Purpose
Router(config-if)# standby mac-refresh seconds Changes the interval at which refresh packets are sent.
For examples of this feature, see the section “HSRP MAC Refresh Interval Examples” at the end of this
chapter.
Command Purpose
Step 1 Router(config)# snmp-server enable traps hsrp Enables the router to send SNMP traps and informs, and
HSRP notifications.
Step 2 Router(config)# snmp-server host host Specifies the recipient of an SNMP notification operation,
community-string hsrp and that HSRP notifications be sent to the host.
See the section “HSRP MIB Trap Example” later in this chapter for an example of how to configure
HSRP MIB trap support in your network. See the “Configuring SNMP” chapter in the Cisco IOS
Configuration Fundamentals Configuration Guide for more information on configuring SNMP.
Each VPN is associated with one or more VPN routing/forwarding (VRF) instances. A VRF consists of
the following elements:
• IP routing table
• Cisco Express Forwarding (CEF) table
• Set of interfaces that use the CEF forwarding table
• Set of rules and routing protocol parameters to control the information in the routing tables
VPN routing information is stored in the IP routing table and the CEF table for each VRF. A separate set
of routing and CEF tables is maintained for each VRF. These tables prevent information from being
forwarded outside a VPN and also prevent packets that are outside a VPN from being forwarded to a
router within the VPN.
HSRP currently adds ARP entries and IP hash table entries (aliases) using the default routing table
instance. However, a different routing table instance is used when VRF forwarding is configured on an
interface, causing ARP and ICMP echo requests for the HSRP virtual IP address to fail.
HSRP support for MPLS VPNs ensures that the HSRP virtual IP address is added to the correct IP
routing table and not to the default routing table.
To configure this feature, perform the required tasks described in the following sections:
• Defining VPNs (Required)
• Enabling HSRP (Required)
Defining VPNs
To define VPNs, use the following commands on the PE routers beginning in global configuration mode:
Command Purpose
Step 1 Router(config)# ip vrf vrf-name Enters VRF configuration mode and assigns a
VRF name.
Step 2 Router(config-vrf)# rd route-distinguisher Creates routing and forwarding tables.
Step 3 Router(config-vrf)# route-target {import | export | Creates a list of import or export route target
both} route-target-ext-community communities for the specified VRF.
Step 4 Router(config-vrf)# exit Exits the current configuration mode and enters
global configuration mode.
Step 5 Router(config)# interface type number Specifies an interface and enters interface
configuration mode.
Step 6 Router(config-if)# ip vrf forwarding vrf-name Associates a VRF with an interface or
subinterface.
Enabling HSRP
To enable the HSRP on an interface, use the following command in interface configuration mode:
Command Purpose
Router (config-if)# standby [group-number] ip ip-address Enables the HSRP.
e1 e1
R1 R2 R4 R5
Net A
e0 Listen 1
R7 R8 Default gateway:
virtual IP 1
Host
43140
Net F Net G
If the host wants to send a packet to another host on Net D, then it first sends it to its default gateway,
the virtual IP address of HSRP group 1.
The following is the packet received from the host:
dest MAC = HSRP group 1 virtual MAC
source MAC = Host MAC
dest IP = host-on-netD IP
source IP = Host IP
Router R1 receives this packet and determines that router R4 can provide a better path to Net D, so it
prepares to send a redirect message that will redirect the host to the real IP address of router R4 (because
only real IP addresses are in its routing table).
The following is the initial ICMP redirect message sent by router R1:
dest MAC = Host MAC
source MAC = router R1 MAC
dest IP = Host IP
source IP = router R1 IP
gateway to use = router R4 IP
Before this redirect occurs, the HSRP process of router R1 determines that router R4 is the active HSRP
router for group 3, so it changes the next hop in the redirect message from the real IP address of router
R4 to the virtual IP address of group 3. Furthermore, it determines from the destination MAC address of
the packet that triggered the redirect message that the host used the virtual IP address of group 1 as its
gateway, so it changes the source IP address of the redirect message to the virtual IP address of group 1.
The modified ICMP redirect message showing the two modified fields (*) is as follows:
dest MAC = Host MAC
source MAC = router R1 MAC
dest IP = Host IP
source IP* = HSRP group 1 virtual IP
gateway to use* = HSRP group 3 virtual IP
This second modification is necessary because hosts compare the source IP address of the ICMP redirect
message with their default gateway. If these addresses do not match, the ICMP Redirect message is
ignored. The routing table of the host now consists of the default gateway, virtual IP address of group 1,
and a route to Net D through the virtual IP address of group 3.
The IP source address of an ICMP packet must match the gateway address used by the host in the packet
that triggered the ICMP packet, otherwise the host will reject the ICMP redirect packet. An HSRP router
uses the destination MAC address to determine the gateway IP address of the host. If the HSRP router
is using the same MAC address for multiple IP addresses then it is not possible to uniquely determine
the gateway IP address of the host and the redirect message is not sent.
The following is sample output from the debug standby events icmp EXEC command if HSRP could
not uniquely determine the gateway used by the host:
10:43:08: SB: ICMP redirect not sent to 20.0.0.4 for dest 30.0.0.2
10:43:08: SB: could not uniquely determine IP address for mac 00d0.bbd3.bc22
Command Purpose
Router (config-if)# standby redirects [enable | disable] Enables HSRP filtering of ICMP redirect
[timers advertisement holddown] [unknown] messages
Configuring IP Accounting
Cisco IP accounting support provides basic IP accounting functions. By enabling IP accounting, users
can see the number of bytes and packets switched through the Cisco IOS software on a source and
destination IP address basis. Only transit IP traffic is measured and only on an outbound basis; traffic
generated by the software or terminating in the software is not included in the accounting statistics. To
maintain accurate accounting totals, the software maintains two accounting databases: an active and a
checkpointed database.
Cisco IP accounting support also provides information identifying IP traffic that fails IP access lists.
Identifying IP source addresses that violate IP access lists alerts you to possible attempts to breach
security. The data also indicates that you should verify IP access list configurations. To make this feature
available to users, you must enable IP accounting of access list violations using the ip accounting
access-violations interface configuration command. Users can then display the number of bytes and
packets from a single source that attempted to breach security against the access list for the source
destination pair. By default, IP accounting displays the number of packets that have passed access lists
and were routed.
To enable IP accounting, use one of the following commands for each interface in interface configuration
mode:
Command Purpose
Router(config-if)# ip accounting Enables basic IP accounting.
Router(config-if)# ip accounting Enables IP accounting with the ability to identify IP traffic that fails IP
access-violations access lists.
To configure other IP accounting functions, use the following commands in global configuration mode,
as needed:
Command Purpose
Router(config)# ip accounting-threshold Sets the maximum number of accounting entries to be created.
threshold
Router(config)# ip accounting-list Filters accounting information for hosts.
ip-address wildcard
Router(config)# ip accounting-transits Controls the number of transit records that will be stored in the IP
count accounting database.
To display IP access violations for a specific IP accounting database, use the following command in
EXEC mode:
Command Purpose
Router# show ip accounting [checkpoint] Displays IP access violation information.
access-violations
To display IP access violations, include the access-violations keyword in the show ip accounting EXEC
command. If you do not specify the keyword, the command defaults to displaying the number of packets
that have passed access lists and were routed. The access violations output displays the number of the
access list failed by the last packet for the source and destination pair. The number of packets reveals
how aggressive the attack is upon a specific destination.
Use the show ip accounting EXEC command to display the active accounting database, and traffic
coming from a remote site and transiting through a router. To display the checkpointed database, use the
show ip accounting checkpoint EXEC command. The clear ip accounting EXEC command clears the
active database and creates the checkpointed database.
Command Purpose
Step 1 Router(config)# interface type number Specifies the interface and enters interface configuration
mode.
Step 2 Router(config-if)# ip accounting mac-address Configures IP accounting based on the MAC address of
{input | output} received (input) or transmitted (output) packets
To remove IP accounting based on the MAC address from the interface, use the no ip accounting
mac-address command.
Use the EXEC command show interface mac to display MAC accounting information for interfaces
configured for MAC accounting.
Command Purpose
Step 1 Router(config)# interface type number Specifies the interface (or subinterface) and enters interface
configuration mode.
Step 2 Router(config-if)# ip accounting precedence Configures IP accounting based on the precedence of
{input | output} received (input) or transmitted (output) packets
To remove IP accounting based on IP precedence from the interface, use the no ip accounting
precedence command.
Use the EXEC command show interface precedence to display precedence accounting information for
interfaces configured for precedence accounting.
Command Purpose
Router(config-if)# ip tcp Enables TCP header compression.
header-compression [passive]
The ip tcp header-compression interface configuration command only compresses the TCP header; it
has no effect on UDP packets or other protocol headers. The TCP header compression technique is
supported on serial lines using High-Level Data Link Control (HDLC) or PPP encapsulation. You must
enable compression on both ends of a serial connection.
By using the passive keyword, you can optionally specify outgoing packets to be compressed only if
TCP incoming packets on the same interface are compressed. If you specify the command without the
passive keyword, the software will compress all traffic. Without the command, the default is no
compression.
Note Fast processors can handle several fast interfaces, such as T1 lines, that are running header
compression. However, you should think carefully about the traffic characteristics of your network
before compressing TCP headers. You might want to use the monitoring commands to compare
network utilization before and after enabling TCP header compression.
The CEF and fast-switching aspects of the Express TCP Header Compression feature are related to these
documents:
• Cisco IOS Switching Services Configuration Guide
• Cisco IOS Switching Services Command Reference
For information about compressing RTP headers, see the chapter “Configuring IP Multicast Routing” in
this document.
Command Purpose
Router(config-if)# ip tcp Specifies the total number of TCP header compression connections that
compression-connections number can exist on an interface.
Command Purpose
Router(config)# ip tcp synwait-time seconds Sets the amount of time the Cisco IOS software will wait to attempt to
establish a TCP connection.The default is 30 seconds.
To enable Path MTU Discovery, use the following command in global configuration mode:
Command Purpose
Router(config)# ip tcp path-mtu-discovery [age-timer Enables Path MTU Discovery.
{minutes | infinite}]
Customers using TCP connections to move bulk data between systems on distinct subnets would benefit
most by enabling this feature. Customers using remote source-route bridging (RSRB) with TCP
encapsulation, serial tunnel (STUN), X.25 Remote Switching (also known as XOT or X.25 over TCP),
and some protocol translation configurations might also benefit from enabling this feature.
The ip tcp path-mtu-discoveryglobal configuration command is to enable Path MTU Discovery for
connections initiated by the router when it is acting as a host. For a discussion of how the Cisco IOS
software supports Path MTU Discovery when the device is acting as a router, see the section
“Understanding Path MTU Discovery” earlier in this chapter.
The age-timer is a time interval for how often TCP should reestimate the path MTU with a larger
maximum segment size (MSS). The default Path MTU Discovery age-timer is 10 minutes; its maximum
is 30 minutes. You can turn off the age timer by setting it to infinite.
Command Purpose
Router(config)# ip tcp selective-ack Enables TCP selective acknowledgment.
Command Purpose
Router(config)# ip tcp timestamp Enables TCP time stamp.
If you want to use TCP header compression over a serial line, TCP time stamp and TCP selective
acknowledgment must be disabled. Both features are disabled by default. To disable TCP selective
acknowledgment once it is enabled, see the previous “Enabling TCP Selective Acknowledgment”
section.
Command Purpose
Router(config)# ip tcp chunk-size Sets the TCP maximum read size for Telnet or rlogin.
characters
Command Purpose
Router(config)# ip tcp window-size Sets the TCP window size.
bytes
Command Purpose
Router(config)# ip tcp queuemax packets Sets the TCP outgoing queue size.
Configure the Forwarding Agent only if you are installing the MNLD Feature Set for LocalDirector. If
you are installing the MNLD Feature Set for LocalDirector, refer to the MultiNode Load Balancing
Feature Set for LocalDirector User Guide for information about which other hardware and software
components are required.
The MNLB Forwarding Agent is an implementation of the Cisco ContentFlow architecture flow delivery
agent (FDA).
Refer to the MultiNode Load Balancing Feature Set for LocalDirector User Guide for more information
about how the Forwarding Agent is configured and for more information about the product.
Enabling CEF
CEF is advanced Layer 3 IP switching technology. CEF optimizes network performance and scalability
for networks with large and dynamic traffic patterns, such as the Internet, on networks characterized by
intensive Web-based applications, or interactive sessions.
To enable CEF, use the following command in global configuration mode:
Command Purpose
Router(config)# ip cef distributed Enables CEF.
Note When you enable CEF globally, all interfaces that support CEF are enabled by default. If you want
to turn off CEF on a particular interface, you can do so.
Refer to the “Cisco Express Forwarding” part of the Cisco IOS Switching Services Configuration Guide
for more information on how to configure CEF.
Command Purpose
Step 1 Router(config-if)# interface type Specifies the interface, and enters interface
slot/port-adapter/port configuration mode.
(Cisco 7500 series routers)
or
Router(config-if)# interface type slot/port
(Cisco 7200 series routers)
Step 2 Router(config-if)# ip route-cache flow Enables flow switching on the interface.
Normally the size of the NetFlow cache will meet your needs. To increase or decrease the number of
entries maintained in the cache, use the following command in global configuration mode:
Command Purpose
Router(config)# ip flow-cache entries number Changes the number of entries maintained in the
NetFlow cache. The number of entries can be from
1024 to 524288. The default is 64536.
Refer to the “Netflow Switching” part of the Cisco IOS Switching Services Configuration Guide for
more information on how to configure NetFlow switching.
Command Purpose
Router(config)# ip multicast routing Enables multicast routing.
To have the router join a multicast group and enable IGMP, use the following command in interface
configuration mode:
Command Purpose
Router(config-if)# ip igmp join-group group-address Joins a multicast group. This command must be
configured on all interfaces that will listen for the
services manager multicasts. The group address
must match that configured within the services
manager configuration.
See the “Configuring IP Multicast Routing” chapter of this document for more information on how to
configure IP multicast routing.
Command Purpose
Step 1 Router(config)# ip casa control-address igmp-address Specifies the IP address and IGMP address of the
Forwarding Agent. The recommended IGMP address
is 224.0.1.2.
Step 2 Router(config-casa)# forwarding-agent pools Adjusts the memory allocated for the affinity pools of
initial-affinity-pool max-affinity-pool the Forwarding Agent. The default pool size is 5000,
and there is no maximum pool size.
Step 3 Router(config-casa)# forwarding-agent port-number Specifies the port number. The default is port 1637.
[password [timeout]]
Note The Forwarding Agent IGMP address and port must match the IGMP address and port configured on
the services manager using the ip igmp join-group interface configuration command.
To clear caches, tables, and databases, use the following commands in EXEC mode, as needed:
Command Purpose
Router# clear ip accounting Clears the active IP accounting or checkpointed database when IP accounting
[checkpoint] is enabled.
Router# clear tcp statistics Clears TCP statistics.
Command Purpose
Router# clear ip drp Clears statistics being collected on DRP requests and responses.
Router# show ip drp Displays information about the DRP Server Agent.
Command Purpose
Router# clear access-list counters {access-list-number | Clears the access list counters.
access-list-name}
Command Purpose
Router# show access-lists [access-list-number | Displays the contents of one or all current access lists.
access-list-name]
Router# show access-list compiled Displays information regarding compiled access lists, including
the state of each compiled access list.
Router# show ip access-list [access-list-number | Displays the contents of current IP access lists.
name]
Router# show ip accounting [checkpoint] Displays the active IP accounting or checkpointed database.
Command Purpose
Router# show ip redirects Displays the address of the default router and the address of hosts
for which an ICMP redirect message has been received.
Router# show ip sockets Displays IP socket information.
Router# show ip tcp header-compression Displays statistics on TCP header compression.
Router# show ip traffic Displays IP protocol statistics.
Router# show standby [interface [group]] [active Displays the status of the standby router.
| init | listen | standby][brief]
Router# show standby delay [type number] Displays HSRP information about delay periods
Router# show tcp statistics Displays TCP statistics.
Command Purpose
Router# show ip casa affinities Displays the status of affinities.
Router# show ip casa oper Displays the operational status of the Forwarding Agent.
Router# show ip casa stats Displays statistical information about the Forwarding Agent.
Router# show ip casa wildcard Displays information about wildcard blocks.
Command Purpose
Router# debug standby events icmp Displays debug messages for HSRP-filtered ICMP redirect
messages.
Router# debug ip icmp Displays information on ICMP transactions.
E0 E0
S1064a
E1 E1
Router 1 Router 2
Router 1 Configuration
interface ethernet 0
ip address 128.9.1.1
!
interface ethernet 1
ip address 128.9.1.1
transmit-interface ethernet 0
!
!use show interfaces command to find router2-MAC-address-E0
arp 128.9.1.4 router2-MAC-address-E0 arpa
Router 2 Configuration
interface ethernet 0
ip address 128.9.1.2
transmit-interface ethernet 1
!
interface ethernet 1
ip address 128.9.1.2
!
!use show interfaces command to find router1-MAC-address-E1
arp 128.9.1.1 router1-MAC-address-E1 arpa
The following example defines access lists 1 and 2, both of which have logging enabled:
interface ethernet 0
ip address 1.1.1.1 255.0.0.0
ip access-group 1 in
ip access-group 2 out
!
access-list 1 permit 5.6.0.0 0.0.255.255 log
access-list 1 deny 7.9.0.0 0.0.255.255 log
!
access-list 2 permit 1.2.3.4 log
access-list 2 deny 1.2.0.0 0.0.255.255 log
If the interface receives 10 packets from 5.6.7.7 and 14 packets from 1.2.23.21, the first log will look
like the following:
list 1 permit 5.6.7.7 1 packet
list 2 deny 1.2.23.21 1 packet
Five minutes later, the console will receive the following log:
list 1 permit 5.6.7.7 9 packets
list 2 deny 1.2.23.21 13 packets
For this example, the following masks are implied in the first two lines:
access-list 1 permit 0.0.0.0 0.0.0.0
access-list 1 permit 131.108.0.0 0.0.0.0
The last line in the configuration (using the deny keyword) can be left off, because IP access lists
implicitly deny all other access. Leaving off the last line in the configuration is equivalent to finishing
the access list with the following command statement:
access-list 1 deny 0.0.0.0 255.255.255.255
The following access list only allows access for those hosts on the three specified networks. It assumes
that subnetting is not used; the masks apply to the host portions of the network addresses. Any hosts with
a source address that does not match the access list statements will be rejected.
access-list 1 permit 192.5.34.0 0.0.0.255
access-list 1 permit 128.88.0.0 0.0.255.255
access-list 1 permit 36.0.0.0 0.255.255.255
! (Note: all other access implicitly denied)
To specify a large number of individual addresses more easily, you can omit the address mask that is all
0s from the access-list global configuration command. Thus, the following two configuration commands
are identical in effect:
access-list 2 permit 36.48.0.3
access-list 2 permit 36.48.0.3 0.0.0.0
For another example of using an extended access list, suppose you have a network connected to the
Internet, and you want any host on an Ethernet to be able to form TCP connections to any host on the
Internet. However, you do not want IP hosts to be able to form TCP connections to hosts on the Ethernet
except to the mail (SMTP) port of a dedicated mail host.
SMTP uses TCP port 25 on one end of the connection and a random port number on the other end. The
same two port numbers are used throughout the life of the connection. Mail packets coming in from the
Internet will have a destination port of 25. Outbound packets will have the port numbers reversed. The
fact that the secure system behind the router always will be accepting mail connections on port 25 is what
makes possible separate control of incoming and outgoing services. The access list can be configured on
either the outbound or inbound interface.
In the following example, the Ethernet network is a Class B network with the address 128.88.0.0, and
the address of the mail host is 128.88.1.2. The established keyword is used only for the TCP protocol
to indicate an established connection. A match occurs if the TCP datagram has the ACK or RST bits set,
which indicate that the packet belongs to an existing connection.
access-list 102 permit tcp 0.0.0.0 255.255.255.255 128.88.0.0 0.0.255.255 established
access-list 102 permit tcp 0.0.0.0 255.255.255.255 128.88.1.2 0.0.0.0 eq 25
interface ethernet 0
ip access-group 102 in
interface ethernet 0
ip access-group strict in
In the following example of a numbered access list, the Winter and Smith workstations are not allowed
to browse the web:
access-list 100 remark Do not allow Winter to browse the web
access-list 100 deny host 171.69.3.85 any eq http
access-list 100 remark Do not allow Smith to browse the web
access-list 100 deny host 171.69.3.13 any eq http
In the following example of a named access list, the Jones subnet is not allowed access:
ip access-list standard prevention
remark Do not allow Jones subnet through
deny 171.69.0.0 0.0.255.255
In the following example of a named access list, the Jones subnet is not allowed to use outbound Telnet:
ip access-list extended telnetting
remark Do not allow Jones subnet to telnet out
IP Accounting Example
The following example enables IP accounting based on the source and destination MAC address and
based on IP precedence for received and transmitted packets:
interface Ethernet0/5
ip accounting mac-address input
ip accounting mac-address output
ip accounting precedence input
ip accounting precedence output
E0 10.0.0.1 E0 10.0.0.2
72343
The following example shows Router A configured as the active router for group 1 with a priority of 110
and Router B configured as the active router for group 2 with a priority of 110. The default priority level
is 100. Group 1 uses a virtual IP address of 10.0.0.3 and Group 2 uses a virtual IP address of 10.0.0.4.
Router A Configuration
hostname RouterA
!
interface ethernet 0
ip address 10.0.0.1 255.255.255.0
standby 1 ip 10.0.0.3
standby 1 priority 110
standby 1 preempt
standby 2 ip 10.0.0.4
standby 2 preempt
Router B Configuration
hostname RouterB
!
interface ethernet 0
ip address 10.0.0.2 255.255.255.0
standby 1 ip 10.0.0.3
standby 1 preempt
standby 2 ip 10.0.0.4
standby 2 priority 110
standby 2 preempt
P1 P2
E1 E2 E2 E1
PE1 PE2
(Active) (Standby)
10.2.0.20 E0 E0 10.2.0.20
(vrf1) (vrf1)
E0 E0
Default route set to HSRP
CE Host
45588
Virtual: 12.12.12.1
172.26.56.33 172.26.56.34
FA1 FA2 SM
Current configuration:
!
version 12.0
service timestamps debug uptime
service timestamps log uptime
no service password-encryption
service udp-small-servers
service tcp-small-servers
!
hostname FA2
!
!
microcode CIP flash slot0:cip26-5
microcode reload
ip subnet-zero
no ip domain-lookup
!
ip cef distributed
ip casa 206.10.20.34 224.0.1.2
forwarding-agent 1637
!
interface Ethernet0/0
ip address 172.26.56.18 255.255.255.0
no ip directed-broadcast
ip route-cache flow
ip igmp join-group 224.0.1.2
no ip mroute-cache
!
interface Ethernet0/1
ip address 172.26.56.37 255.255.255.0
no ip directed-broadcast
!
!
!
router eigrp 777
network 172.26.0.0
!
no ip classless
!
line con 0
exec-timeout 0 0
transport input none
line aux 0
line vty 0 4
exec-timeout 0 0
login
!
end
mtu 0 1500
mtu 1 1500
mtu 2 1500
mtu 3 1500
multiring all
no secure 0
no secure 1
no secure 2
no secure 3
ping-allow 0
ping-allow 1
ping-allow 2
ping-allow 3
ip address 172.26.56.19 255.255.255.248
route 172.26.10.249 255.255.255.255 172.26.56.20 1
route 206.10.20.33 255.255.255.255 172.26.56.17 1
route 206.10.20.34 255.255.255.255 172.26.56.18 1
no rip passive
failover ip address 0.0.0.0
failover
password cisco
telnet 161.0.0.0 255.0.0.0
no snmp-server contact
no snmp-server location
casa service-manager port 1638
casa service-manager multicast-ttl 60
tftp-server 172.26.10.249 /tftpboot/LD
virtual 172.26.56.13:0:0:tcp is
virtual 172.26.56.2:0:0:tcp is
redirection 172.26.56.13:0:0:tcp dispatched casa wildcard-ttl 60 fixed-ttl 60 igmp
224.0.1.2 port 1637
redirection 172.26.56.2:0:0:tcp dispatched casa wildcard-ttl 60 fixed-ttl 60 igmp
224.0.1.2 port 1637
real 172.26.56.34:0:0:tcp is
real 172.26.56.33:0:0:tcp is
real 172.26.56.6:0:0:tcp is
real 172.26.56.10:0:0:tcp is
bind 172.26.56.13:0:0:tcp 172.26.56.33:0:0:tcp
bind 172.26.56.13:0:0:tcp 172.26.56.34:0:0:tcp
bind 172.26.56.2:0:0:tcp 172.26.56.10:0:0:tcp
bind 172.26.56.2:0:0:tcp 172.26.56.6:0:0:tcp
: end
This chapter describes how to configure the IOS Server Load Balancing (SLB) feature. For a complete
description of the SLB commands in this chapter, refer to the “Server Load Balancing Commands”
chapter of the Cisco IOS IP Command Reference, Volume 1 of 3: Addressing and Services. To locate
documentation of other commands that appear in this chapter, use the command reference master index
or search online.
To identify the hardware platform or software image information associated with a feature, use the
Feature Navigator on Cisco.com to search for information about the feature or refer to the software
release notes for a specific release. For more information, see the “Identifying Supported Platforms”
section in the “Using Cisco IOS Software” chapter in this book.
The SLB feature is a Cisco IOS-based solution that provides IP server load balancing. Using the
IOS SLB feature, the network administrator defines a virtual server that represents a group of real
servers in a cluster of network servers known as a server farm. In this environment the clients are
configured to connect to the IP address of the virtual server. The virtual server IP address is configured as a
loopback address, or secondary IP address, on each of the real servers. When a client initiates a connection
to the virtual server, the IOS SLB function chooses a real server for the connection based on a configured
load-balancing algorithm.
IOS SLB shares the same software code base as Cisco IOS software and has all the software features sets
of Cisco IOS software. IOS SLB is recommended for customers desiring complete integration of SLB
technology into traditional Cisco switches and routers.
On the Catalyst 6500 switch, IOS SLB takes advantage of hardware acceleration to forward data packets
at very high speed when running in dispatched mode.
IOS SLB assures continuous, high availability of content and applications with proven techniques for
actively managing servers and connections in a distributed environment. By distributing user requests
across a cluster of servers, IOS SLB optimizes responsiveness and system capacity, and dramatically
reduces the cost of providing Internet, database, and application services for large-scale sites as well as
small- and medium-sized sites.
IOS SLB facilitates scalability, availability, and ease of maintenance as follows:
• The addition of new physical (real) servers, and the removal or failure of existing servers, can occur
at any time, transparently, without affecting the availability of the virtual server.
• The slow start capability of IOS SLB allows a new server to increase its load gradually, preventing
failures caused by assigning the server too many new connections too quickly.
• IOS SLB supports fragmented packets and packets with IP options, buffering your servers from
client or network vagaries that are beyond your control.
Administration of server applications is easier. Clients know only about virtual servers; no
administration is required for real server changes.
Security of the real server is provided because its address is never announced to the external network.
Users are familiar only with the virtual IP address. You can filter unwanted flows based on both IP
address and TCP or UDP port numbers. Though it does not eliminate the need for a firewall, IOS SLB
also can help protect against some denial-of-service attacks.
In a branch office, IOS SLB allows balancing of multiple sites and disaster recovery in the event of
full-site failure, and distributes the work of load balancing.
Figure 23 illustrates a logical view of IOS SLB.
Virtual server
Catalyst 4840G
with IOS SLB
29164
Client Client
Client Client
• SynGuard
• Dynamic Feedback Protocol for IOS SLB
• Alternate IP Addresses
• Transparent Web Cache Balancing
• NAT
• Redundancy Enhancement—Stateless Backup
Note Assigning a weight of n = 1 to all of the servers in the server farm configures the IOS SLB switch to
use a simple round robin algorithm.
Note Assigning a weight of n = 1 to all of the servers in the server farm configures the IOS SLB switch to
use a simple least-connection algorithm.
Port-Bound Servers
When you define a virtual server, you must specify the TCP or UDP port handled by that virtual server.
However, if you configure NAT on the server farm, you can also configure port-bound servers.
Port-bound servers allow one virtual server IP address to represent one set of real servers for one service,
such as HTTP, and a different set of real servers for another service, such as Telnet.
Packets destined for a virtual server address for a port that is not specified in the virtual server definition
are not redirected.
IOS SLB supports both port-bound and nonport-bound servers, but port-bound servers are
recommended.
Sticky Connections
When you use sticky connections, new connections from a client IP address or subnet are assigned to the
same real server as were previous connections from that address or subnet.
IOS SLB creates sticky objects to track client assignments. The sticky objects remain in the IOS SLB
database after the last sticky connection is deleted, for a period defined by a configurable sticky timer. If
the timer is configured on a virtual server, new connections from a client are sent to the same real server
that handled the previous client connection, provided one of the following conditions is true:
• A connection for the same client already exists.
• The amount of time between the end of a previous connection from the client and the start of the
new connection is within the timer duration.
Sticky connections also permit the coupling of services that are handled by more than one virtual server.
This allows connection requests for related services to use the same real server. For example, Web server
(HTTP) typically uses TCP port 80, and HTTP over Secure Socket Layer (HTTPS) uses port 443. If
HTTP virtual servers and HTTPS virtual servers are coupled, connections for ports 80 and 443 from the
same client IP address or subnet are assigned to the same real server.
Maximum Connections
The maximum connections feature allows you to configure a limit on the number of active connections
that a real server can handle.
Automatic Unfail
When a real server fails and is removed from the list of active servers, it is assigned no new connections
for a length of time specified by a configurable retry timer. After that timer expires, the server is again
eligible for new virtual server connections and IOS SLB sends the server the next connection for which
it qualifies. If the connection is successful, the failed server is again placed back on the list of active real
servers. If the connection is unsuccessful, the server remains out of service and the retry timer is reset.
Slow Start
In an environment that uses weighted least connections load balancing, a real server that is placed in
service initially has no connections, and could therefore be assigned so many new connections that it
becomes overloaded. To prevent such an overload, the slow start feature controls the number of new
connections that are directed to a real server that has just been placed in service.
SynGuard
The SynGuard feature limits the rate of TCP SYNs handled by a virtual server to prevent a type of
network problem known as a SYN flood denial-of-service attack. A user might send a large number of
SYNs to a server, which could overwhelm or crash the server, denying service to other users. SynGuard
prevents such an attack from bringing down IOS SLB or a real server. SynGuard monitors the number
of SYNs to a virtual server over a specific time interval and does not allow the number to exceed a
configured SYN threshold. If the threshold is reached, any new SYNs are dropped.
Alternate IP Addresses
IOS SLB enables you to Telnet to the load-balancing device using an alternate IP address. To do so, use
either of the following methods:
• Use any of the interface addresses to Telnet to the load-balancing device.
• Define a secondary IP address to Telnet to the load-balancing device.
This function is similar to that provided by the LocalDirector (LD) Alias command.
Note A Web cache can start its own connections to real sites if pages are not available in its cache. Those
connections cannot be load balanced back to the same set of caches. IOS SLB addresses this situation
by allowing you to configure “client exclude” statements so that IOS SLB does not load balance
connections initiated by the Web caches.
NAT
Cisco IOS Network Address Translation (NAT), RFC 1631, allows unregistered “private” IP addresses
to connect to the Internet by translating them into globally registered IP addresses. Cisco IOS NAT also
increases network privacy by hiding internal IP addresses from external networks.
IOS SLB can operate in one of two redirection modes:
• Directed mode—The virtual server can be assigned an IP address that is not known to any of the real
servers. IOS SLB translates packets exchanged between a client and real server, translating the
virtual server IP address to a real server address via NAT.
• Dispatched mode—The virtual server address is known to the real servers; you must configure the
virtual server IP address as a loopback address, or secondary IP address, on each real server. IOS SLB
redirects packets to the real servers at the media access control (MAC) layer. Because the virtual
server IP address is not modified in dispatched mode, the real servers must be Layer 2 adjacent to
IOS SLB, or intervening routers might not be able to route to the chosen real server.
The main advantage of dispatched mode is performance. In dispatched mode, the Layer 3 and Layer 4
addresses are not modified, which means IP header checksum adjustment occurs quickly, and checksum
adjustment or recalculation for TCP or UDP is not required. Dispatched mode is also simpler than in
directed mode because packets for applications with IP addresses in the packet need not be examined
and modified.
The main disadvantage of dispatched mode is that the virtual server IP address is not modified, which
means that the real servers must be Layer 2 adjacent with the load balancer or intervening routers may
not be able to route to the chosen real server.
NAT (directed mode) is used to solve these dispatched mode problems.
IOS SLB currently supports only server NAT. By replacing the virtual server IP address with the real
server IP address (and vice versa), servers can be many hops away from the load balancer and intervening
routers can route to them without requiring tunneling. Additionally, loopback and secondary interfaces
need no longer be on the real server.
Note On the Catalyst 6000 family switches and Cisco 7200 series routers, if an IP address is configured as
a real IP address for a NAT virtual server, you cannot balance connection requests from that address
to a different virtual server (whether NAT or dispatch) on the same load balancer.
The network designer must ensure that outbound packets travel through IOS SLB using one of the
following methods:
• Direct wiring (all packets flow through a branch office IOS SLB device)
• Default gateways or policy-based routing
• IOS SLB NAT of client addresses, enabled as an outbound feature on server-side interfaces
A less common form of server NAT is server port translation, which involves replacement of a virtual
server port. Server port translation does not require server IP address translation, but the two translations
can be used together.
Note To avoid any single point of failure in an IOS SLB network, use multiple Layer 2 switches to provide
connectivity between the IOS SLB devices and the servers.
Restrictions
IOS SLB has the following restrictions:
• Operates in a standalone mode and currently does not operate as a MultiNode Load Balancing
(MNLB) Services Manager. The presence of IOS SLB does not preclude the use of the existing
MNLB Forwarding Agent with an external Services Manager in an MNLB environment.
• Does not support coordinating server load-balancing statistics among different IOS SLB instances
for backup capability.
• Supports FTP only in dispatched mode.
• Does not support load balancing of flows between clients and real servers that are on the same LAN
VLAN.
• Does not support IOS SLB and Cisco Applications and Services Architecture (CASA) configured
with the same virtual IP address, even if they are for different services.
• Supports Cisco IOS NAT in directed mode with no hardware data packet acceleration. (Hardware
data packet acceleration is performed by the Policy Feature Card (PFC), and in directed mode the
data packets are handled by the Multilayer Switched Feature Card (MSFC), not the PFC.)
Catalyst 6000 family switch restrictions are as follows:
• Requires the MSFC and the PFC.
• Requires that the Multilayer Switching (MLS) flow mode be set to full. For more information about
how to set the MLS flow, refer to the “Configuring IP Multilayer Switching” section in the Catalyst
6000 Family MSFC (12.0) & PFC Configuration Guide, Release 5.4.
• When IOS SLB is operating in dispatched mode, real servers must be Layer 2-adjacent to the
IOS SLB switch (that is, not beyond an additional router), with hardware data packet acceleration
performed by the PFC. All real servers that can be reached by a single IOS SLB device must be on
the same VLAN. The loopback address must be configured in the real servers.
• When IOS SLB is operating in directed mode with server NAT, real servers need not be Layer
2-adjacent to the IOS SLB switch. This allows for more flexible network design, because servers
can be placed several Layer 3 hops away from the IOS SLB switch.
• Requires that all real servers that can be reached by a single IOS SLB device must be on the same
VLAN. The loopback address must be configured in the real servers.
– Supports NativeIOS only and C6sup-is-mz images.
Cisco 7200 series restrictions are as follows:
• In dispatched mode, the servers must be Layer 2-adjacent or tag-switched. In directed mode, the
servers can be one or more hops away.
• Supports Cisco IOS NAT in directed mode with no hardware data packet acceleration. Provides no
hardware acceleration for the IOS SLB function for either dispatched mode or directed mode.
• Supports C7200-is-mz images.
Command Purpose
Router(config)# ip slb serverfarm serverfarm-name Adds a server farm definition to the IOS SLB
configuration and initiates SLB server farm
configuration mode.
Command Purpose
Router(config-slb-sfarm)# predictor [roundrobin | leastconns] Specifies whether the weighted round robin
algorithm or the weighted least connections
algorithm is to be used to determine how a real
server is selected.
Specifying a Bind ID
To configure a bind ID on the server farm for use by DFP, use the following command in SLB server
farm configuration mode:
Command Purpose
Router(config-slb-sfarm)# bindid [bind_id] Specifies a bind ID on the server farm for use by
DFP.
Command Purpose
Router(config-slb-sfarm)# real ip-address Identifies a real server to the IOS SLB function
and initiates real server configuration mode.
Command Purpose
Router(config-slb-real)# faildetect numconns number-conns Specifies the number of consecutive connection
[numclients number-clients] failures and, optionally, the number of unique
client connection failures, that constitute failure of
the real server.
Router(config-slb-real)# maxconns maximum-number Specifies the maximum number of active
connections allowed on the real server at one time.
Router(config-slb-real)# reassign threshold Specifies the number of consecutive unanswered
SYNs that initiates assignment of the connection
to a different real server.
Router(config-slb-real)# retry retry-value Specifies the interval (in seconds) to wait between
the detection of a server failure and the next
attempt to connect to the failed server.
Router(config-slb-real)# weight weighting-value Specifies the workload capacity of the real server
relative to other servers in the server farm.
Command Purpose
Router(config-slb-real)# inservice Enables the real server for use by IOS SLB.
Command Purpose
Router(config)# ip slb vserver virtserver-name Identifies a virtual server and enters SLB virtual
server configuration mode.
Command Purpose
Router(config-slb-vserver)# serverfarm serverfarm-name Associates a real server farm with a virtual server.
Command Purpose
Router(config-slb-vserver)# virtual ip-address {tcp | udp} Specifies the virtual server IP address, type of
port-number [service service-name] connection, port number, and optional service
coupling.
Command Purpose
Router(config-slb-vserver)# client ip-address network-mask Specifies which clients are allowed to use the
virtual server.
Router(config-slb-vserver)# delay duration Specifies the amount of time IOS SLB maintains
TCP connection context after a connection has
terminated. The default value is 10 seconds.
Router(config-slb-vserver)# idle duration Specifies the minimum amount of time IOS SLB
maintains connection context in the absence of
packet activity. The default value is 3600 seconds
(1 hour).
Router(config-slb-vserver)# sticky duration [group group-id] Specifies that connections from the same client
use the same real server, as long as the interval
between client connections does not exceed the
specified duration.
Router(config-slb-vserver)# synguard syn-count interval Specifies the rate of TCP SYNs handled by a
virtual server in order to prevent a SYN flood
denial-of -service attack.
Command Purpose
Router(config-slb-vserver)# no advertise Omits the virtual server IP address from the
routing protocol updates.
Command Purpose
Router(config-slb-vserver)# inservice Enables the virtual server for use by IOS SLB.
Command Purpose
Step 1 Router(config)# ip slb dfp [password password Configures DFP and, optionally, sets a password
[timeout]] and initiates SLB DFP configuration mode.
Step 2 Router(config-slb-dfp)# agent ip-address port [timeout Configures a DFP agent.
[retry-count [retry-interval]]]
Configuring NAT
To configure IOS SLB NAT mode for a specific server farm, use the following commands beginning in
global configuration mode:
Command Purpose
Step 1 Router(config)# ip slb serverfarm serverfarm-name Adds a server farm definition to the IOS SLB
configuration and initiates server farm
configuration mode.
Step 2 Router(config-slb-sfarm)# nat server Configures server NAT.
Step 3 Router(config-slb-sfarm)# real ip-address Identifies a real server to the IOS SLB function
and initiates real server configuration mode.
HSRP uses a priority scheme to determine which HSRP-configured Layer 3 switch is to be the default
active Layer 3 switch. To configure a Layer 3 switch as active, you assign it a priority higher than that
of all other HSRP-configured Layer 3 switches. The default priority is 100, so if you configure just one
Layer 3 switch to have a higher priority, that switch becomes the default active switch.
HSRP works by the exchange of multicast messages that advertise priority among HSRP-configured
Layer 3 switches. When the active switch fails to send a hello message within a configurable period, the
standby switch with the highest priority becomes the active switch. The transition of packet-forwarding
functions between Layer 3 switches is completely transparent to all hosts accessing the network.
HSRP-configured Layer 3 switches exchange the following types of multicast messages:
• Hello—The hello message conveys the HSRP priority and state information of the switch. By
default, an HSRP switch sends hello messages every 3 seconds.
• Coup—When a standby Layer 3 switch assumes the function of the active switch, it sends a coup
message.
• Resign—The active Layer 3 switch sends a resign message when it is about to shut down or when a
switch that has a higher priority sends a hello message.
At any time, HSRP-configured Layer 3 switches are in one of the following states:
• Active—The switch is performing packet-transfer functions.
• Standby—The switch is prepared to assume packet-transfer functions if the active router fails.
• Speaking and listening—The switch is sending and receiving hello messages.
• Listening—The switch is receiving hello messages.
Step 1 Configure the server farms. See the “Specifying a Server Farm” section earlier in this chapter.
Step 2 Configure the real servers. See the “Specifying a Real Server” section earlier in this chapter.
Step 3 Configure the virtual servers. See the “Specifying a Virtual Server”section earlier in this chapter.
Note When you use the inservice (virtual service) command to configure the virtual server as
“in-service” you must use the optional standby interface configuration command and
configure an HSRP group name.
Step 4 Configure the IP routing protocol. See the “IP Routing Protocols” part of the Cisco IOS IP Configuration
Guide.
Step 5 Configure the VLAN between the switches. See the “Virtual LANs” chapter of the Cisco IOS
Switching Services Configuration Guide.
Step 6 Enable HSRP. See the “Enabling HSRP” section earlier in this chapter.
Step 7 Customize group attributes. See the “Customizing Group Attributes” section earlier in this chapter.
Step 8 Verify the IOS SLB HSRP configuration. See the “Verifying the IOS SLB Stateless Backup
Configuration” section earlier in this chapter.
A sample stateless backup configuration is shown in the “IOS SLB Stateless Backup Configuration
Example” section.
Enabling HSRP
To enable HSRP on an IOS SLB interface, enable the protocol, then customize it for the interface. Use
the following command in interface configuration mode:
Command Purpose
Router(config-if)# standby [group-number] ip [ip-address Enables HSRP.
[secondary]]
Command Purpose
Router(config-if)# standby [group-number] authentication Selects an authentication string to be carried in all
string HSRP messages.
Router(config-if)# standby [group-number] name group-name Specifies an HSRP group name with which to
associate an IOS SLB interface.
Router(config-if)# standby [group-number] preempt Specifies that if the local router has priority over
the current active router, the local router should
attempt to take its place as the active router.
Router(config-if)# standby [group-number] priority priority Sets the Hot Standby priority used to choose the
active router.
Router(config-if)# standby [group-number] timers hellotime Configures the time between hello packets and the
holdtime hold time before other routers declare the active
router to be down.
Router(config-if)# standby [group-number] track type-number Configures the interface to track other interfaces,
[interface-priority] so that if one of the other interfaces goes down the
Hot Standby priority for the device is lowered.
h. Restart the connection, after waiting no longer than the sticky timeout value.
i. Enter the show ip slb conns EXEC command again.
j. Examine the real server connection counts again, and verify that the sticky connection is assigned
to the same real server as before.
Step 6 Start additional client connections.
Step 7 Enter the show ip slb reals detail EXEC command.
Step 8 Verify that the the connection counts are increasing.
Step 1 Use a large client population. If the number of clients is very small, tune the numclients keyword on the
faildetect SLB real server configuration command so that the servers are not displayed as failed.
Step 2 Enter the show ip slb reals detail EXEC command to show the status of the real servers.
Step 3 Examine the status and connection counts of the real servers:
• Servers that failed show a status of failed, testing, or ready_to_test, based on whether IOS SLB is
checking that the server came back up when the command was sent.
• When a real server fails, connections that are assigned but not established (no SYN or ACK is
received) are reassigned to another real server on the first inbound SYN after the reassign threshold
is met. However, any connections that were already established are forwarded to the same real server
because, although it may not be accepting new connections, it may be servicing existing ones.
• For weighted least connections, a real server that has just been placed in service starts slowly so that
it is not overloaded with new connections. (See the “Slow Start” section for more information on
this feature.) Therefore, the connection counts displayed for a new real server show connections
going to other real servers (despite the lower count of the new real server). The connection counts
also show “dummy connections” to the new real server, which IOS SLB uses to artificially inflate
the connection counts for the real server during the slow start period.
Question Answer
Why can I connect to real servers directly, but not Make sure that the virtual IP address is configured as a loopback in each
to the virtual server? of the real servers (if you are running in dispatched mode).
Why is IOS SLB not marking my real server as Tune the values for the numclients, numconns, and delay keywords.
failed when I disconnect it from the network? If you have a very small client population (for example, in a test
environment), the numclients keyword could be causing the problem.
This parameter prevents IOS SLB from mistaking the failure of a small
number of clients for the failure of a real server.
Why is IOS SLB not marking my connections as If you are using dispatched mode, make sure there are no alternate paths
established even though I am transferring data? that allow outbound flows to bypass IOS SLB. Also, make sure that the
clients and real servers are not on the same IP subnet.
Why does IOS SLB show my real server as The inservice and outofservice states indicate whether the network
inservice even though I have taken it down or administrator intends for that real server to be used when it is operational.
physically disconnected it? A real server that was inservice but was removed from the selection list
dynamically by IOS SLB as a result of automatic failure detection, is
marked as failed. Use the show ip slb reals detail EXEC command to
display these real server states.
Beginning with Cisco IOS Release 12.1(1)E, the inservice keyword is
changed to operational, to better reflect actual condition.
Why is IOS SLB not balancing correctly? I am Enter the show mls flow command:
using dispatched mode, the servers are leaving Router# show mls flow
sockets open, and I am seeing RSTs in response
to a number of SYNs. Curiously, sometimes current ip flowmask for unicast: full flow
things work fine. current ipx flowmask for unicast: destination only
The current IP flowmask must be full flow. If it is not, correct the problem
using the mls flow ip full global configuration command:
Router# configure terminal
Enter configuration commands, one per line.
End with CNTL/Z.
Router(config)# mls flow ip full
Router(config)#
Command Purpose
Router# show ip slb conns [vservers virtserver-name] [client Displays all connections handled by IOS SLB, or,
ip-address] [detail] optionally, only those connections associated with
a particular virtual server or client.
Router# show ip slb dfp [agent ip-address port-number] Displays information about DFP and DFP agents,
[detail] [weights] and about the weights assigned to real servers.
Router# show ip slb reals [vservers virtserver-name] [detail] Displays information about the real servers defined
to IOS SLB.
Router# show ip slb serverfarms [name serverfarm-name] Displays information about the server farms
[detail] defined to IOS SLB.
Router# show ip slb stats Displays IOS SLB statistics.
Router# show ip slb sticky [client ip-address] Displays information about the sticky connections
defined to IOS SLB.
Router# show ip slb vservers [name virtserver-name] [detail] Displays information about the virtual servers
defined to IOS SLB.
Configuration Examples
This section provides the following IOS SLB configuration examples:
• IOS SLB Network Configuration Example
• NAT Configuration Example
• HSRP Configuration Example
• IOS SLB Stateless Backup Configuration Example
Restricted Restricted
Web server Web server Web server web server web server
10.1.1.1 10.1.1.2 10.1.1.3 10.1.1.20 10.1.1.21
10.1.1.x
Virtual server
10.0.0.1
10.4.4.x
29163
Client Human
Resources
Client Client
As shown in the following sample code, the example topology has three public Web servers and two
restricted Web servers for privileged clients in subnet 10.4.4.x. The public Web servers are weighted
according to their capacity, with server 10.1.1.2 having the lowest capacity and having a connection limit
imposed on it. The restricted Web servers are configured as members of the same sticky group, so that
HTTP connections and Secure Socket Layer (SSL) connections from the same client use the same real
server.
This configuration is coded as follows:
ip slb serverfarm PUBLIC Unrestricted Web server farm
predictor leastconns Use weighted least connections algorithm
real 10.1.1.1 First real server
weight 16
inservice
real 10.1.1.2 Second real server
weight 4
maxconns 1000 Restrict maximum number of connections
inservice
real 10.1.1.3 Third real server
weight 24
inservice
Clients
33459
• Server 4 has multiple HTTP server applications listening on ports 8080, 8081, and 8082.
Servers 1 and 2 are load balanced using Switch A, which is performing server address translation.
Servers 3 and 4 are load balanced using Switches B and C. These two switches are performing server
address translation. These switches also perform server port translation for HTTP packets to and from
Server 4.
The configuration statements for Switch A are as follows:
ip slb serverfarm FARM1
! Translate server addresses
nat server
! Server 1 port 80
real 10.1.1.1
inservice
! Server 2 port 80
real 10.2.1.1
inservice
!
ip slb vservers HTTP1
! Handle HTTP (port 80) requests
virtual 128.1.0.1 tcp www
serverfarm FARM1
inservice
Note Some configurations that use HSRP still require a routing protocol for convergence when
a topology change occurs. The standby Layer 3 switch becomes active, but connectivity
does not occur until convergence occurs.
If the connection between Device A and the client accessing virtual IP 1.0.0.3 fails, fast-converging
routing protocols (such as Enhanced IGRP and OSPF) can respond within seconds, ensuring that
Device B is prepared to transfer packets that would have gone through Device A.
Client
33604
HSRP group = Web_Group HSRP group = Web_Group
interface GigabitEthernet 41
ip address 1.0.0.1 255.0.0.0
standby 1 ip 1.0.0.3
standby 1 preempt
standby 1 priority 110
standby 1 authentication denmark
standby 1 timers 5 15
standby 1 name Web-Group
interface FastEthernet 1
ip address 3.0.0.1 255.0.0.0
router eigrp 1
network 1.0.0.0
network 3.0.0.0
interface GigabitEthernet 41
ip address 1.0.0.2 255.0.0.0
standby 1 ip 1.0.0.3
standby 1 preempt
standby 1 authentication denmark
standby 1 timers 5 15
standby 1 name Web-Group
interface FastEthernet 41
ip address 2.0.0.1 255.0.0.0
router eigrp 1
network 1.0.0.0
network 2.0.0.0
The standby ip interface configuration command enables HSRP and establishes 1.0.0.3 as the IP address
of the virtual router. The configurations of both Layer 3 switches include this command so that both
switches share the same virtual IP address. The number 1 establishes Hot Standby group 1. (If you do
not specify a group number, the default is group 0.) The configuration for at least one of the Layer 3
switches in the Hot Standby group must specify the IP address of the virtual router; specifying the IP
address of the virtual router is optional for other routers in the same Hot Standby group.
The standby preempt interface configuration command allows the Layer 3 switch to become the active
switch when its priority is higher than all other HSRP-configured switches in this Hot Standby group.
The configurations of both switches include this command so that each can be the standby Layer 3 switch
for the other switch. The number 1 indicates that this command applies to Hot Standby group 1. If you
do not use the standby preempt command in the configuration for a Layer 3 switch, that switch cannot
become the active Layer 3 switch.
The standby priority interface configuration command sets the HSRP priority of the Layer 3 switch to
110, which is higher than the default priority of 100. Only the configuration of Device A includes this
command, which makes Device A the default active Layer 3 switch. The number 1 indicates that this
command applies to Hot Standby group 1.
The standby authentication interface configuration command establishes an authentication string
whose value is an unencrypted eight-character string that is incorporated in each HSRP multicast
message. This command is optional. If you choose to use it, each HSRP-configured Layer 3 switch in
the group should use the same string so that each switch can authenticate the source of the HSRP
messages that it receives. The number 1 indicates that this command applies to Hot Standby group 1.
The standby timers interface configuration command sets the interval (in seconds) between hello
messages (called the hello time) to 5 seconds, and sets the interval (in seconds) that a Layer 3 switch
waits before it declares the active Layer 3 switch to be down (called the hold time) to 8 seconds. (The
defaults are 3 and 10 seconds, respectively.) To modify the default values, you must configure each Layer
3 switch to use the same hello time and hold time. The number 1 indicates that this command applies to
Hot Standby group 1.
The standby name interface configuration command associates the IOS SLB interface with an HSRP
group name (in this case, Web-Group), previously specified on an inservice (virtual server) command.
The number 1 indicates that this command applies to Hot Standby group 1.
This chapter describes how to configure Mobile IP. For a complete description of the Mobile IP
commands in this chapter, refer to the “Mobile IP Commands” chapter of the Cisco IOS IP Command
Reference, Volume 1 of 3: Addressing and Services. To locate documentation of other commands that
appear in this chapter, use the command reference master index or search online.
Mobile IP Overview
If an IP node, for example, a personal digital assistant (PDA), moves from one link to another, the
network prefix of its IP address no longer equals the network prefix assigned to its current link. As a
result, packets are not delivered to the current location of the PDA.
Mobile IP enables an IP node to retain the same IP address and maintain existing communications while
traveling from one link to another.
Mobile IP is an IETF standards based solution for mobility at the network layer, which is Layer 3. Mobile
IP supports the following RFCs:
• RFC 2002, IP Mobility Support
• RFC 2003, IP Encapsulation within IP
• RFC 2005, Applicability Statement for Mobile IP
• RFC 2006, The Definitions of Managed Objects for IP Mobility Support
To identify the hardware platform or software image information associated with a feature, use the
Feature Navigator on Cisco.com to search for information about the feature or refer to the software
release notes for a specific release. For more information, see the “Identifying Supported Platforms”
section in the “Using Cisco IOS Software” chapter in this book.
IP routing decisions are based on the network prefix of the IP address to be scalable for the Internet. All
nodes on the same link share a common network prefix. If a node moves to another link, the network
prefix does not equal the network prefix on the new link. Consequently, IP routing would fail to route
the packets to the node after movement to the new link.
An alternative to network-prefix routing is host-specific routing. Host-specific routing is not a problem
in small networks. However, considering there are billions of hosts on the Internet, this solution is not
feasible for Internet connections. Routers would need enough memory to store tens of millions of routing
table entries and would spend most of their computing resources updating routing tables.
DHCP (Dynamic Host Configuration Protocol) is commonly used in corporate environments and allows
a server to dynamically assign IP addresses and deliver configuration parameters to nodes. The DHCP
Server verifies the identity of the node, “leases” it the IP address from a pool of addresses for a
predetermined period of time, and reclaims the address for reassignment when the lease expires. The
node can terminate existing communication sessions, move to a new point-of-attachment to the network,
reconnect to the network, and receive a new IP address from DHCP. This arrangement conserves IP
addresses and reduces Internet access costs. However, if users are mobile and need continuous
communications and accessibility without any interruptions in their sessions, DHCP is not an adequate
solution. DHCP won’t allow applications to maintain connections across subnet/network boundaries.
Mobile IP is scalable for the Internet because it is based on IP—any media that supports IP can support
Mobile IP. Mobile IP does not drop the network prefix of the IP address of the node, which is critical to
the proper routing of packets throughout the Internet. Also, certain network services, such as software
licenses and access privileges, are based on IP addresses. Changing these IP addresses could
compromise the network services. Certain applications, such as remote login, remote printing, and file
transfers are examples of applications where it is undesirable to interrupt communications while a
mobile node moves from one link to another. Thus, Mobile IP provides the solution for continuous
connectivity that is scalable for the Internet.
Mobile IP Components
Mobile IP is comprised of the following three components, as shown in Figure 27:
• Mobile node (MN)
• Home agent (HA)
• Foreign agent (FA)
Mobile node
visiting foreign Mobile node
network at home
Internet
Foreign Home
network Foreign Home network
agent agent
Foreign
network
53030
Foreign
agent
An MN is a node, for example, a PDA, a laptop computer, or a data-ready cellular phone, that can change
its point of attachment from one network or subnet to another. This node can maintain ongoing
communications while using only its home IP address.
An HA is a router on the home network of the MN that maintains an association between the home IP
address of the MN and its care-of address, which is the current location of the MN on a foreign or visited
network. The HA redirects packets by tunneling them to the MN while it is away from home.
An FA is a router on a foreign network that assists the MN in informing its HA of its current care-of
address. The FA detunnels and delivers packets to the MN that were tunneled by the HA. The FA also
acts as the default router for packets generated by the MN while it is connected to the foreign network.
It is recommended that HA and FA functionality be designed with interfaces with line protocol states
that are normally up.
Agent Discovery
During the agent discovery phase, HAs and FAs advertise their presence on their attached links by
periodically multicasting or broadcasting messages called agent advertisements. MNs listen to these
advertisements and determine if they are connected to their home link or a foreign link. Rather than
waiting for agent advertisements, an MN can also send an agent solicitation. This solicitation forces any
agents on the link to immediately send an agent advertisement.
If an MN determines that it is connected to a foreign link, it acquires a care-of address. Two types of
care-of addresses exist:
• FA care-of address
• Collocated care-of address
An FA care-of address is a temporary, loaned IP address that the MN acquires from the FA agent
advertisement. This type of care-of address is the exit point of the tunnel from the HA to the FA. A
collocated care-of address is an address temporarily assigned to an MN interface. This address is
assigned by DHCP or by manual configuration.
Registration
After receiving a care-of address, the MN registers this address with its HA through an exchange of
messages. The HA creates a mobility binding table that maps the home IP address of the MN to the
current care-of address of the MN. An entry in this table is called a mobility binding. The main purpose
of registration is to create, modify, or delete the mobility binding of an MN at its HA.
During registration, the MN also asks for service from the FA.
The HA advertises reachability to the home IP address of the MN, thereby attracting packets that are
destined for that address. When a device on the Internet, called a corresponding node (CN), sends a
packet to the MN, the packet is routed to the home network of the MN. The HA intercepts the packet and
tunnels it to the registered care-of address of the MN. At the care-of address, the FA extracts the packet
from the tunnel and delivers it to the MN.
If the MN is sending registration requests through a FA, the FA keeps track of all visiting MNs by
keeping a visitor list. The FA relays the registration request directly to the HA without the need for
tunneling. The FA serves as the router for all packets sent by the visiting MN.
When the MN powers down or determines that it is reconnected to its home link, it deregisters by sending
a deregistration request to the HA. The HA then reclaims the MN.
Routing
Because the major function of a Layer 3 protocol is routing, the major features of Mobile IP deal with
how to route packets to users who are mobile.
Mobile IP is a tunneling-based solution that takes advantage of the Cisco-created generic routing
encapsulation (GRE) tunneling technology and simpler IP-in-IP tunneling protocol. The traffic destined
for the MN is forwarded in a triangular manner. When the CN (a device on the Internet) sends a packet
to the MN, the HA redirects the packet by tunneling to the care-of address (current location) of the MN
on the foreign network. The FA receives the packet from the HA and forwards it locally to the MN.
However, packets sent by the MN are routed directly to the CN.
See Figure 28 for a diagram of typical packet forwarding in Mobile IP.
Mobile node
visiting foreign Mobile node
network at home
Internet
Foreign Home
network Foreign Home network
agent agent
53031
Correspondent
node
Mobile IP Security
Mobile IP provides the following guidelines on security between its components:
• Communication between MN and HA must be authenticated.
• Communication between MN and FA can optionally be authenticated.
• Communication between FA and HA can optionally be authenticated.
Also, communication between an active HA and a standby HA, as implemented when using the HA
redundancy feature, must be authenticated. For more information on this feature, see the “Home Agent
Redundancy” section later in this chapter.
MN-HA
In particular, the Mobile IP registration process is vulnerable to security attacks, because it informs the
HA where to tunnel packets to a traveling MN. An illegitimate node could send a bogus registration
request to an HA and cause all packets to be tunneled to the illegitimate node instead of the MN. This
type of attack, called a denial-of-service attack, prevents the MN from receiving and sending any
packets. To prevent denial-of-service attacks, Mobile IP requires that all registration messages between
an MN and an HA be authenticated.
Cisco IOS software supports the Mobile-Home Authentication Extension (MHAE). All registration
messages between an MN and an HA include a mandatory authentication extension.
Message Digest 5 (MD5) is an algorithm that takes the registration message and a key to compute the
smaller chunk of data, called a message digest, plus a secret key. The MN and HA both have a copy of
the key, called a symmetric key, and authenticate each other by comparing the results of the computation.
The time stamp is an identifier in the message that ensures the origination of the registration request and
the time it was sent, thereby preventing replay attacks. A replay attack occurs when an individual records
an authentic message that was previously transmitted and replays it at a later time. The time stamp is
also protected by MD5.
This authentication process begins when a MN sends the registration request. The MN adds the time
stamp, computes the message digest, and appends the MHAE to the registration request. The HA
receives the request, checks that the time stamp is valid, computes the message digest using the same
key, and compares the message digest results. If the results match, the request is successfully
authenticated. For the registration reply, the HA adds the time stamp, computes the message digest, and
appends the MHAE to the registration reply. The MN authenticates the registration reply upon arrival
from the HA.
MN-FA
Mobile IP does not require that communication between an MN and an FA be authenticated. Cisco IOS
software supports the optional Mobile-Foreign Authentication Extension (MFAE). MFAE protects the
communication between the MN and FA by keeping a shared key between them.
FA-HA
Mobile IP does not require that communication between an FA and an HA be authenticated. Cisco IOS
software supports the optional Foreign-Home Authentication Extension (FHAE). FHAE protects the
communication between the FA and HA by keeping a shared key between them.
HA-HA
Communication between an active HA and a standby HA in an HA redundancy topology must be
authenticated. The authentication process works in the same manner as described in the previous
“MN-HA” section. However, HA-HA authentication is an added Cisco-proprietary authentication
extension needed to secure communication between peer HAs for HA redundancy. (Active HAs and
standby HAs are peers to each other.)
Use the ip mobile secure home-agent global configuration command to configure the security
associations between all peer HAs within a standby group for each of the other HAs within the standby
group. The configuration is necessary because any HA within the standby group can become active HA
or standby HA at any time. See the “Mobile IP HA Redundancy Configuration Task List” section later
in this chapter for more information on HA-HA authentication.
Caching SAs on HA
When an MN is registering with an HA, keys are needed for the MN-HA authorization process, which
requires AAA authorization for Mobile IP. If SAs are stored on a AAA server, the HA must retrieve the
appropriate SA from the server. The SA is downloaded to the HA, and the HA caches the SA and reuses
it when necessary rather than retrieving it from the AAA server again.
HSRP Groups
Before configuring HA redundancy, you must understand the concept of HSRP groups.
An HSRP group is composed of two or more routers that share an IP address and a MAC (Layer 2)
address and act as a single virtual router. For example, your Mobile IP topology can include one active
HA and one or more standby HAs that the rest of the topology view as a single virtual HA.
You must define certain HSRP group attributes on the interfaces of the HAs so that Mobile IP can
implement the redundancy. You can use the groups to provide redundancy for MNs with a home link on
either the interface of the group (a physical network) or on virtual networks. Virtual networks are logical
circuits that are programmed and share a common physical infrastructure.
For MNs on virtual networks, the active and standby HAs are peers—either HA can handle registration
requests from the MN and update the mobility binding table on the peer HA.
When a standby HA comes up, it must request all mobility binding information from the active HA. The
active HA responds by downloading the mobility binding table to the standby HA. The standby HA
acknowledges that it has received the requested binding information. See (b) in Figure 29 for an example
of an active HA downloading the mobility bindings to a standby HA. A main concern in this stage of the
process is which HA IP interface the standby HA should use to retrieve the appropriate mobility binding
table and on which interface of the standby HA the binding request should be sent.
Active Active
home home
agent agent
Binding
info
reply
Standby Standby
home home
agent agent
When a binding is cleared on an active home agent, it will not be cleared on the standby/peer home agent.
If you want to clear the binding on the standby/peer home agent, you must manually clear it using the
clear ip mobile binding command. This design ensures that binding information will not be accidentally
lost.
It is possible that binding tables of two home agents in a redundancy group might be out of
synchronization because of a network problem. You can force the synchronization of the binding tables
by using the clear ip mobile binding all load standby-group-name command.
Prerequisites
To configure home agent functionality on your router, you need to determine IP addresses or subnets for
which you want to allow roaming service. If you intend to support roaming on virtual networks, you need
to identify the subnets for which you will allow this service and place these virtual networks
appropriately on the home agent. It is possible to enable home agent functionality for a physical or
virtual subnet. In the case of virtual subnets, you must define the virtual networks on the router using
the ip mobile virtual-network global configuration command. Mobile IP home agent and foreign agent
services can be configured on the same router or on separate routers to enable Mobile IP service to users.
Because Mobile IP requires support on the host device, each mobile node must be appropriately
configured for the desired Mobile IP service with client software. Please refer to the manual entries in
your mobile aware IP stack vendor documentation for details.
Command Purpose
Step 1 Router(config)# router mobile Enables Mobile IP on the router.
Step 2 Router(config-router)# exit Returns to global configuration mode.
Step 3 Router(config)# ip mobile home-agent Enables home agent service.
Step 4 Router(config)# ip mobile virtual-network net mask Adds virtual network to routing table. If not using a
[address address] virtual network, go to step 6.
Step 5 Router(config)# router protocol Configures a routing protocol.
Step 6 Router(config)# redistribute mobile Enables redistribution of a virtual network into
routing protocols.
Command Purpose
Step 7 Router(config)# ip mobile host lower [upper] Specifies mobile nodes (on a virtual network) and
virtual-network net mask [aaa [load-sa]] where their security associations are stored.1
Step 8 Router(config)# ip mobile host lower [upper] Specifies mobile nodes on an interface and where
{interface name} their security associations are stored. Omit this step if
no mobile nodes are on the interface.
Step 9 Router(config)# ip mobile secure host lower-address Sets up mobile host security associations. Omit this
[upper-address]{inbound-spi spi-in outbound-spi step if using AAA.
spi-out | spi spi} key hex string
Step 10 Router(config)# ip mobile secure foreign-agent (Optional) Sets up foreign agent security
address {inbound-spi spi-in outbound-spi spi-out | associations. Omit this step unless you have security
spi spi} key hex string
associations with remote foreign agents.
1. By default, security associations are expected to be configured locally; however, the security association configuration can be offloaded to an
AAA server.
Command Purpose
Step 1 Router(config)# router mobile Enables Mobile IP on the router.
Step 2 Router(config-router)# exit Returns to global configuration mode.
Step 3 Router(config)# ip mobile foreign-agent care-of Sets up care-of addresses advertised to all foreign
interface agent-enabled interfaces.
Step 4 Router(config-if)# ip mobile foreign-service Enables foreign agent service on the interface.
Step 5 Router(config)# ip mobile secure home-agent (Optional) Sets up home agent security association. Omit
address {inbound-spi spi-in outbound-spi spi-out steps 4 and 5 unless you have security association with
| spi spi} key hex string
remote home agents or visitors.
Step 6 Router(config)# ip mobile secure visitor address (Optional) Sets up visitor security association.
{inbound-spi spi-in outbound-spi spi-out | spi
spi} key hex string [replay timestamp]
Command Purpose
Step 1 Router(config)# aaa new-model Enables the AAA access control model.
Step 2 Router(config)# aaa authorization ipmobile Authorizes Mobile IP to retrieve security associations
{tacacs+ | radius} from the AAA server using TACACS+ or RADIUS.
Command Purpose
Step 1 Router(config)# radius-server host Specifies a RADIUS server host.
Step 2 Router(config)# radius-server key Sets the authentication and encryption key for all
RADIUS communications between the router and the
RADIUS daemon.
Command Purpose
Step 1 Router(config)# tacacs-server host Specifies a TACACS+ server host.
Step 2 Router(config)# tacacs-server key Sets the authentication encryption key used for all
TACACS+ communications between the access server
and the TACACS+ daemon.
Verifying Setup
To make sure Mobile IP is set up correctly, use the following commands in EXEC mode as needed:
Command Purpose
Router# show ip mobile globals Displays home agent and foreign agent global settings.
Router# show ip mobile host group Displays mobile node groups.
Router# show ip mobile secure {host | visitor | Displays security associations.
foreign-agent | home-agent | summary} address
Router# show ip mobile interface Displays advertisements on interfaces.
Command Purpose
Router# show ip mobile host Displays mobile node counters (home agent only).
Router# show ip mobile binding Displays mobility bindings (home agent only).
Router# show ip mobile tunnel Displays active tunnels.
Router# show ip mobile visitor Displays visitor bindings (foreign agent only).
Router# show ip route mobile Displays Mobile IP routes.
Router# show ip mobile traffic Displays protocol statistics.
Router# clear ip mobile traffic Clears counters.
Router# show ip mobile violation Displays information about security violations.
Router# debug ip mobile advertise Displays advertisement information.1
Router# debug ip mobile host Displays mobility events.
1. Make sure IRDP is running on the interface.
Command Purpose
Step 1 Router(config)# no ip mobile home-agent Disables home agent services.
Step 2 Router(config)# no ip mobile foreign-agent Disables foreign agent services.
Step 3 Router(config)# no router mobile Disables Mobile IP process.
Enabling Mobile IP
To enable Mobile IP on the router, use the following command in global configuration mode:
Command Purpose
Router(config)# router mobile Enables Mobile IP on the router.
Enabling HSRP
To enable HSRP on an interface, use the following command in interface configuration mode:
Command Purpose
Router (config-if)# standby [group-number] ip ip-address Enables HSRP.
Command Purpose
Router(config-if)# standby [group-number] priority priority Sets the Hot Standby priority used in choosing the
[preempt [delay [minimum | sync] delay]] active router. By default, the router that comes up
later becomes standby. When one router is
or
designated as an active HA, the priority is set
highest in the HSRP group and the preemption is
Router(config-if)# standby [group-number] [priority priority]
set. Configure the preempt delay sync command
preempt [delay [minimum | sync] delay]
so that all bindings will be downloaded to the
router before it takes the active role. The router
becomes active when all bindings are downloaded
or when the timer expires, whichever comes first.
Command Purpose
Step 1 Router (config-if)# standby [group-number] ip Enables HSRP.
ip-address
Step 2 Router(config-if)# standby name hsrp-group-name Sets the name of the standby group.
Step 3 Router(config)# ip mobile home-agent standby Configures the home agent for redundancy using
hsrp-group-name the HSRP group name.
Step 4 Router(config)# ip mobile secure home-agent address Sets up the home agent security association
spi spi key hex string between peer routers. If configured on the active
HA, the IP address address argument is that of the
standby HA. If configured on the standby HA, the
IP address address argument is that of the active
router. Note that a security association needs to be
set up between all HAs in the standby group.
Command Purpose
Step 1 Router (config-if)# standby [group-number] ip Enables HSRP.
ip-address
Step 2 Router(config-if)# standby name hsrp-group-name Sets the name of the standby group.
Step 3 Router(config)# ip mobile home-agent address address Defines a global home agent address. In this
configuration, the address is the HSRP group
address. Enter this command if the mobile node
and home agent are on different subnets.
or or
Router(config)# ip mobile home-agent Enables and controls home agent services to the
router. Enter this command if the mobile node and
home agent are on the same subnet.
Step 4 Router(config)# ip mobile virtual-network net mask Defines the virtual network. If the mobile node
[address address] and home agent are on the same subnet, use the
[address address] option.
Command Purpose
Step 5 Router(config)# ip mobile home-agent standby Configures the home agent for redundancy using
hsrp-group-name [[virtual-network] address address] the HSRP group to support virtual networks.
Step 6 Router(config)# ip mobile secure home-agent address Sets up the home agent security association
spi spi key hex string between peer routers. If configured on the active
HA, the IP address address argument is that of the
standby HA. If configured on the standby HA, the
IP address address argument is that of the active
router. Note that a security association needs to be
set up between all HAs in the standby group.
Command Purpose
Step 1 Router(config-if)# standby [group-number] ip Enables HSRP.
ip-address
Step 2 Router(config-if)# standby name hsrp-group-name1 Sets the name of the standby HSRP group 1.
Step 3 Router(config-if)# standby name hsrp-group-name2 Sets the name of the standby HSRP group 2.
Step 4 Router(config)# ip mobile home-agent address address Defines the global home agent address for virtual
networks. In this configuration, the address is the
loopback interface address. Enter this command if
the mobile node and home agent are on different
subnets.
or or
Router(config)# ip mobile home-agent Enables and controls home agent services to the
router. Enter this command if the mobile node and
home agent are on the same subnet.
Step 5 Router(config)# ip mobile virtual-network net mask Defines the virtual network. If the mobile node
[address address] and home agent are on the same subnet, use the
[address address] option.
Step 6 Router(config)# ip mobile home-agent standby Configures the home agent for redundancy using
hsrp-group-name1 [[virtual-network] address address] the HSRP group 1 to support virtual networks.
Step 7 Router(config)# ip mobile home-agent standby Configures the home agent for redundancy using
hsrp-group-name2 [[virtual-network] address address] the HSRP group 2 to support virtual networks.
Step 8 Router(config)# ip mobile secure home-agent address Sets up the home agent security association
spi spi key hex string between peer routers. If configured on the active
HA, the IP address address argument is that of the
standby HA. If configured on the standby HA, the
IP address address argument is that of the active
router. Note that a security association needs to be
set up between all HAs in the standby group.
Command Purpose
Step 1 Router(config-if)# standby [group-number] ip Enables the HSRP.
ip-address
Step 2 Router(config-if)# standby name hsrp-group-name Sets the name of the standby group.
Step 3 Router(config)# ip mobile home-agent address address Defines a global home agent address. In this
configuration, the address is the HSRP group
address. Enter this command if the mobile node
and home agent are on different subnets.
or or
Router(config)# ip mobile home-agent Enables and controls home agent services to the
router. Enter this command if the mobile node and
home agent are on the same subnet.
Step 4 Router(config)# ip mobile virtual-network net mask Defines the virtual networks. Repeat this step for
[address address] each virtual network. If the mobile node and home
agent are on the same subnet, use the [address
address] option.
Step 5 Router(config)# ip mobile home-agent standby Configures the home agent for redundancy using
hsrp-group-name [[virtual-network] address address] the HSRP group to support virtual networks.
Step 6 Router(config)# ip mobile secure home-agent address Sets up the home agent security association
spi spi key hex string between peer routers. If configured on the active
HA, the IP address address argument is that of the
standby HA. If configured on the standby HA, the
IP address address argument is that of the active
router. Note that a security association needs to be
set up between all HAs in the standby group.
Command Purpose
Step 1 Router (config-if)# standby [group-number] ip Enables the HSRP.
ip-address
Step 2 Router(config-if)# standby name hsrp-group-name1 Sets the name of the standby HSRP group 1.
Step 3 Router(config-if)# standby name hsrp-group-name2 Sets the name of the standby HSRP group 2.
Command Purpose
Step 4 Router(config)# ip mobile home-agent address address Defines the global home agent address for virtual
networks. In this configuration, the address is the
loopback interface address. Enter this command if
the mobile node and home agent are on different
subnets.
or or
Router(config)# ip mobile home-agent Enables and controls home agent services to the
router. Enter this command if the mobile node and
home agent are on the same subnet.
Step 5 Router(config)# ip mobile virtual-network net mask Defines the virtual networks. Repeat this step for
[address address] each virtual network. If the mobile node and home
agent are on the same subnet, use the [address
address] option.
Step 6 Router(config)# ip mobile home-agent standby Configures the home agent for redundancy using
hsrp-group-name1 [[virtual-network] address address] the HSRP group 1 to support virtual networks.
Step 7 Router(config)# ip mobile home-agent standby Configures the home agent for redundancy using
hsrp-group-name2 [[virtual-network] address address] the HSRP group 2 to support virtual networks.
Step 8 Router(config)# ip mobile secure home-agent address Sets up the home agent security association
spi spi key hex string between peer routers. If configured on the active
HA, the IP address address argument is that of the
standby HA. If configured on the standby HA, the
IP address address argument is that of the active
router. Note that a security association needs to be
set up between all HAs in the standby group.
Verifying HA Redundancy
To verify that the Mobile IP Home Agent Redundancy feature is configured correctly on the router,
perform the following steps:
Command Purpose
Router# debug ip mobile standby Displays debug messages for Mobile IP
redundancy activities.
Router# show ip mobile globals Displays the global home address if configured.
For each Mobile IP standby group, displays the
home agent address supported.
Router# show ip mobile binding [home-agent address | summary] Displays mobility bindings with specific home
agent address.
!
! The next ten lines specify security associations for mobile hosts
! on virtual network 10.0.0.0
!
ip mobile secure host 10.0.0.1 spi 100 key hex 12345678123456781234567812345678
ip mobile secure host 10.0.0.2 spi 200 key hex 87654321876543218765432187654321
ip mobile secure host 10.0.0.3 spi 300 key hex 31323334353637383930313233343536
ip mobile secure host 10.0.0.4 spi 100 key hex 45678332353637383930313233343536
ip mobile secure host 10.0.0.5 spi 200 key hex 33343536313233343536373839303132
ip mobile secure host 10.0.0.6 spi 300 key hex 73839303313233343536313233343536
ip mobile secure host 10.0.0.7 spi 100 key hex 83930313233343536313233343536373
ip mobile secure host 10.0.0.8 spi 200 key hex 43536373839313233330313233343536
ip mobile secure host 10.0.0.9 spi 300 key hex 23334353631323334353637383930313
ip mobile secure host 10.0.0.10 spi 100 key hex 63738393132333435330313233343536
!
! The next five lines specify security associations for mobile hosts
! on Ethernet1
!
ip mobile secure host 11.0.0.1 spi 100 key hex 73839303313233343536313233343536
ip mobile secure host 11.0.0.2 spi 200 key hex 83930313233343536313233343536373
ip mobile secure host 11.0.0.3 spi 300 key hex 43536373839313233330313233343536
ip mobile secure host 11.0.0.4 spi 100 key hex 23334353631323334353637383930313
ip mobile secure host 11.0.0.5 spi 200 key hex 63738393132333435330313233343536
!
! Deny access for this host
access-list 1 deny 11.0.0.5
!
! Deny access to anyone on network 13.0.0.0 trying to register
access-list 2 deny 13.0.0.0
user = 20.0.0.2 {
service = mobileip {
set spi#0 = “spi 100 key hex 12345678123456781234567812345678”
}
}
user = 20.0.0.3 {
service = mobileip {
set spi#0 = “spi 100 key hex 12345678123456781234567812345678”
}
}
In the example above, the user is the mobile node’s IP address. The syntax for the security association
is spi#num = "string", where string is the rest of the ip mobile secure {host | visitor | home-agent |
foreign-agent} key hex string command.
The following example shows how the home agent is configured to use the AAA server:
aaa new-model
aaa authorization ipmobile radius
!
ip mobile home-agent
ip mobile virtual-network 20.0.0.0 255.0.0.0
ip mobile host 20.0.0.1 20.0.0.3 virtual-network 20.0.0.0 255.0.0.0 aaa load-sa
!
radius-server host 1.2.3.4
radius-server key cisco
Active
HA1
1.0.0.1
Router
HSRP
group
address Standby
HA2
Internet 1.0.0.2
Physical
home
39274
network
HA1 is favored to provide home agent service for mobile nodes on physical network e0 because the
priority is set to 110, which is above the default of 100. HA1 will preempt any active home agent when
it comes up. During preemption, it does not become the active home agent until it retrieves the mobility
binding table from the current active home agent or until 100 seconds expire for home agent
synchronization.
Note If the standby preempt command is used, the preempt synchronization delay must be set or mobility
bindings cannot be retrieved before the home agent preempts to become active.
The standby HSRP group name is SanJoseHA and the HSRP group address is 1.0.0.10. The standby HA
uses this HSRP group address to retrieve mobility bindings for mobile nodes on the physical network.
Mobile IP is configured to use the SanJoseHA standby group to provide home agent redundancy.
Mobile nodes are configured with HA address 1.0.0.10. When registrations come in, only the active
home agent processes them. The active home agent sends a mobility binding update to the standby home
agent, which also sets up a tunnel with the same source and destination endpoints. Updates and table
retrievals are authenticated using the security associations configured on the home agent for its peer
home agent. When packets destined for mobile nodes are received, either of the home agents tunnel
them. If HA1 goes down, HA2 becomes active through HSRP and will process packets sent to home
agent address 1.0.0.10.
HA1 Configuration
interface ethernet0
ip address 1.0.0.1 255.0.0.0
standby ip 1.0.0.10
standby name SanJoseHA
standby preempt delay sync 100
standby priority 110
HA2 Configuration
interface ethernet0
ip address 1.0.0.2 255.0.0.0
standby ip 1.0.0.10
standby name SanJoseHA
HA1 and HA2 share responsibility for providing home agent service for mobile nodes on virtual network
20.0.0.0. The home agents are connected on only one physical network.
The standby group name is SanJoseHA and the HSRP group address is 1.0.0.10. Mobile IP is configured
to use the SanJoseHA standby group to provide home agent redundancy. Thus, HSRP allows the home
agent to receive packets destined to 1.0.0.10.
This configuration differs from the physical network example in that a global HA address must be
specified to support virtual networks. This address is returned in registration replies to the mobile node.
HA1 Configuration
interface ethernet0
ip address 1.0.0.1 255.0.0.0
standby ip 1.0.0.10
standby name SanJoseHA
HA2 Configuration
interface ethernet0
ip address 1.0.0.2 255.0.0.0
standby ip 1.0.0.10
standby name SanJoseHA
In this example, a loopback address is configured on the HA to be on the same subnet as the virtual
network. A mobile node on a virtual network uses the HA IP address=loopback address configured for
the virtual network. When a standby HA comes up, it uses this HA IP address to retrieve mobility
bindings for mobile nodes on the virtual network.
HA1 Configuration
interface ethernet0
ip address 1.0.0.1 255.0.0.0
standby ip 1.0.0.10
standby name SanJoseHA
ip mobile home-agent
! address used by Standby HA for redundancy (update and download)
ip mobile virtual-network 20.0.0.0 255.0.0.0 address 20.0.0.1
ip mobile home-agent standby SanJoseHA virtual-network
ip mobile secure home-agent 1.0.0.2 spi 100 key hex 00112233445566778899001122334455
HA2 Configuration
interface ethernet0
ip address 1.0.0.2 255.0.0.0
standby ip 1.0.0.10
standby name SanJoseHA
ip mobile home-agent
! address used by Standby HA for redundancy (update and download)
ip mobile virtual-network 20.0.0.0 255.0.0.0 address 20.0.0.1
ip mobile home-agent standby SanJoseHA virtual-network
ip mobile secure home-agent 1.0.0.1 spi 100 key hex 00112233445566778899001122334455
HA1 and HA2 share responsibility in providing home agent service for mobile nodes on virtual network
20.0.0.0. Both home agents are configured with a global home agent address of 10.0.0.10, which is the
address of their loopback interface. This configuration allows home agents to receive registration
requests and packets destined to 10.0.0.10.
The loopback address is used as the global HA address instead of the HSRP group addresses 1.0.0.10
and 2.0.0.10 to allow the HAs to continue serving the virtual network even if either physical network
goes down.
Mobile nodes are configured with a home agent address 10.0.0.10. When registrations come in, either
home agent processes them (depending on routing protocols) and updates the peer home agent. The
home agent that receives the registration finds the first HSRP group that is mapped to 10.0.0.10 with a
peer in the group and sends the update out that interface. If there is a network problem (for example, the
home agent network adapter fails or cable disconnects), HSRP notices the absence of the peer. The home
agent does not use that HSRP group and finds another HSRP group to use.
Note All routers must have identical loopback interface addresses, which will be used as the global HA
address. However, do not use this address as the router ID for routing protocols.
When the peer home agent receives the registration update, both home agents tunnel the packets to the
mobile nodes.
HA1 Configuration
interface ethernet0
ip address 1.0.0.1 255.0.0.0
standby ip 1.0.0.10
standby name SanJoseHANet1
interface ethernet1
ip add 2.0.0.1 255.0.0.0
standby ip 2.0.0.10
standby name SanJoseHANet2
interface loopback0
ip address 10.0.0.10 255.255.255.255
HA2 Configuration
interface ethernet0
ip address 1.0.0.2 255.0.0.0
standby ip 1.0.0.10
standby name SanJoseHANet1
interface ethernet1
ip address 2.0.0.2 255.0.0.0
standby ip 2.0.0.10
standby name SanJoseHANet2
interface loopback0
ip address 10.0.0.10 255.255.255.255
In this example, a loopback address is configured on the HA to be on the same subnet as the virtual
networks. A mobile node on a virtual network uses the HA IP address=loopback address configured for
the virtual network. When a standby HA comes up, it uses this HA IP address to retrieve mobility
bindings for mobile nodes on the virtual networks.
HA1 Configuration
interface ethernet0
ip addr 1.0.0.1 255.0.0.0
standby ip 1.0.0.10
standby name SanJoseHANet1
interface ethernet1
ip addr 2.0.0.1 255.0.0.0
standby ip 2.0.0.10
standby name SanJoseHANet2
ip mobile home-agent
! address used by Standby HA for redundancy (update and download)
ip mobile virtual-network 20.0.0.0 255.0.0.0 address 20.0.0.1
ip mobile home-agent standby SanJoseHANet1 virtual-network
ip mobile home-agent standby SanJoseHANet2 virtual-network
ip mobile secure home-agent 1.0.0.2 spi 100 key hex 00112233445566778899001122334455
ip mobile secure home-agent 2.0.0.2 spi 100 key hex 00112233445566778899001122334455
HA2 Configuration
interface ethernet0
ip address 1.0.0.2 255.0.0.0
standby ip 1.0.0.10
standby name SanJoseHA
interface ethernet1
ip address 2.0.0.2 255.0.0.0
standby ip 2.0.0.10
standby name SanJoseHANet2
ip mobile home-agent
! address used by Standby HA for redundancy (update and download)
ip mobile virtual-network 20.0.0.0 255.0.0.0 address 20.0.0.1
ip mobile home-agent standby SanJoseHANet1 virtual-network
ip mobile home-agent standby SanJoseHANet2 virtual-network
ip mobile secure home-agent 1.0.0.1 spi 100 key hex 00112233445566778899001122334455
ip mobile secure home-agent 2.0.0.1 spi 100 key hex 00112233445566778899001122334455
HA Redundancy for Multiple Virtual Networks Using One Physical Network Example
This section presents two configuration examples:
• The mobile node and home agent are on different subnets.
• The mobile node and home agent are on the same subnet.
Figure 31 shows an example network topology for the first scenario. Figure 32 shows an example
network topology for the second scenario.
Figure 31 Topology Showing HA Redundancy on Multiple Virtual Networks Using One Physical
Network (Different Subnets)
Active
HA1
1.0.0.1
Virtual
networks
HSRP
group
Router address
1.0.0.2
Standby
Internet HA2
Physical
home
network
39273
Foreign
agent
Figure 32 Topology Showing HA Redundancy on Multiple Virtual Networks Using One Physical
Network (Same Subnet)
Active
HA1
1.0.0.1
Virtual
networks
HSRP Loopback
group interface
Router address
1.0.0.2
Standby
Internet HA2
Physical
home
network
44138
Foreign
agent
HA1 and HA2 share responsibility for providing home agent service for mobile nodes on virtual
networks 20.0.0.0 and 30.0.0.0. The home agents are connected on only one physical network.
The standby group name is SanJoseHA and the HSRP group address is 1.0.0.10. Mobile IP is configured
to use the SanJoseHA standby group to provide home agent redundancy. Thus, HSRP allows the home
agent to receive packets destined to 1.0.0.10.
This configuration differs from the physical network example in that a global HA address must be
specified to support virtual networks. This address is returned in registration replies to the mobile node.
HA1 Configuration
interface ethernet0
ip address 1.0.0.1 255.0.0.0
standby ip 1.0.0.10
standby name SanJoseHA
HA2 Configuration
interface ethernet0
ip address 1.0.0.2 255.0.0.0
standby ip 1.0.0.10
standby name SanJoseHA
For each virtual network, a loopback address is configured on the HA to be on the same subnet as the
virtual network. It is only necessary to configure one loopback interface and to assign different IP
addresses to the loopback interface for each virtual network using the ip address ip-address mask
[secondary] interface configuration command. A mobile node on a particular virtual network uses the
HA IP address =loopback address configured for that virtual network. When a standby HA comes up, it
also uses this HA IP address to retrieve mobility bindings for mobile nodes on a particular virtual
network.
HA1 Configuration
interface ethernet0
ip address 1.0.0.1 255.0.0.0
standby ip 1.0.0.10
standby name SanJoseHA
ip mobile home-agent
! address used by Standby HA for redundancy (update and download) for
! each virtual-network
ip mobile virtual-network 20.0.0.0 255.0.0.0 address 20.0.0.1
ip mobile virtual-network 30.0.0.0 255.0.0.0 address 30.0.0.1
! used to map to the HSRP group SanJoseHA
ip mobile home-agent standby SanJoseHA virtual-network
ip mobile secure home-agent 1.0.0.2 spi 100 key hex 00112233445566778899001122334455
HA2 Configuration
interface e0
ip address 1.0.0.2 255.0.0.0
standby ip 1.0.0.10
standby name SanJoseHA
ip mobile home-agent
! address used by Standby HA for redundancy (update and download) for
! each virtual-network
ip mobile virtual-network 20.0.0.0 255.0.0.0 address 20.0.0.1
ip mobile virtual-network 30.0.0.0 255.0.0.0 address 30.0.0.1
! used to map to the HSRP group SanJoseHA
ip mobile home-agent standby SanJoseHA virtual-network
ip mobile secure home-agent 1.0.0.1 spi 100 key hex 00112233445566778899001122334455
HA Redundancy for Multiple Virtual Networks Using Multiple Physical Networks Example
This section presents two configuration examples:
• The mobile node and home agent are on different subnets.
• The mobile node and home agent are on the same subnet.
Figure 33 shows an example network topology for this configuration type.
Active
HA1
Virtual
networks
Loopback
HSRP HSRP interface
Router group group
address 1 address 2
42304
Standby
Internet HA2
Home Home
network 1 network 2
Foreign
agent
HA1 and HA2 share responsibility in providing home agent service for mobile nodes on virtual networks
20.0.0.0, 30.0.0.0, and 40.0.0.0. Both home agents are configured with a global home agent address of
10.0.0.10, which is the address of their loopback interface. This configuration allows home agents to
receive registration requests and packets destined to 10.0.0.10.
The loopback address is used as the global HA address instead of the HSRP group addresses 1.0.0.10
and 2.0.0.10 to allow the HAs to continue serving the virtual networks even if either physical network
goes down.
Mobile nodes are configured with home agent address 10.0.0.10. When registrations come in, either
home agent processes them (depending on routing protocols) and updates the peer home agent. The
home agent that receives the registration finds the first HSRP group that is mapped to 10.0.0.10 with a
peer in the group and sends the update out that interface. If there is a network problem (for example, the
home agent network adapter fails or cable disconnects), HSRP notices the absence of the peer. The home
agent does not use that HSRP group and finds another HSRP group to use.
Note All routers must have identical loopback interface addresses, which will be used as the global HA
address. However, do not use this address as the router ID for routing protocols.
When the peer home agent receives the registration update, both home agents tunnel the packets to the
mobile nodes.
HA1 Configuration
interface ethernet0
ip address 1.0.0.1 255.0.0.0
standby ip 1.0.0.10
standby name SanJoseHANet1
interface ethernet1
ip address 2.0.0.1 255.0.0.0
standby ip 2.0.0.10
standby name SanJoseHANet2
interface loopback0
ip address 10.0.0.10 255.255.255.255
HA2 Configuration
interface ethernet0
ip address 1.0.0.2 255.0.0.0
standby ip 1.0.0.10
standby name SanJoseHANet1
interface ethernet1
ip address 2.0.0.2 255.0.0.0
standby ip 2.0.0.10
standby name SanJoseHANet2
interface loopback0
ip address 10.0.0.10 255.255.255.255
For each virtual network, a loopback address is configured on the HA to be on the same subnet as the
virtual network. It is only necessary to configure one loopback interface and assign different IP addresses
to the loopback interface for each virtual network, that is, using the ip address ip-address mask
[secondary] interface configuration command. A mobile node on a particular virtual network uses the
HA IP address =loopback address configured for that virtual network. When a standby HA comes up, it
also uses this HA IP address to retrieve mobility bindings for mobile nodes on a particular virtual
network.
HA1 Configuration
interface e0
ip address 1.0.0.1 255.0.0.0
standby ip 1.0.0.10
standby name SanJoseHANet1
interface ethernet1
ip address 2.0.0.1 255.0.0.0
standby ip 2.0.0.10
standby name SanJoseHANet2
ip mobile home-agent
! address used by Standby HA for redundancy (update and download) for
! each virtual-network
ip mobile virtual-network 20.0.0.0 255.0.0.0 address 20.0.0.1
ip mobile virtual-network 30.0.0.0 255.0.0.0 address 30.0.0.1
ip mobile virtual-network 40.0.0.0 255.0.0.0 address 40.0.0.1
! used to map to the HSRP groups SanJoseHANet1 and SanJoseHANet2
ip mobile home-agent standby SanJoseHANet1 virtual-network
ip mobile home-agent standby SanJoseHANet2 virtual-network
ip mobile secure home-agent 1.0.0.2 spi 100 key hex 00112233445566778899001122334455
ip mobile secure home-agent 2.0.0.2 spi 100 key hex 00112233445566778899001122334455
HA2 Configuration
interface ethernet0
ip address 1.0.0.2 255.0.0.0
standby ip 1.0.0.10
standby name SanJoseHA
interface ethernet1
ip address 2.0.0.2 255.0.0.0
standby ip 2.0.0.10
standby name SanJoseHANet2
ip mobile home-agent
! address used by Standby HA for redundancy (update and download) for
! each virtual-network
ip mobile virtual-network 20.0.0.0 255.0.0.0 address 20.0.0.1
This chapter describes how to configure On-Demand Routing (ODR). For a complete description of the
ODR commands in this chapter, refer to the “On-Demand Routing Commands” chapter of the Cisco IOS
IP Command Reference, Volume 2 of 3: Routing Protocols publication. To locate documentation of other
commands in this chapter, use the command reference master index or search online.
ODR is a feature that provides IP routing for stub sites, with minimum overhead. The overhead of a
general, dynamic routing protocol is avoided without incurring the configuration and management
overhead of static routing.
A stub router can be thought of as a spoke router in a hub-and-spoke network topology—as shown in
Figure 34—where the only router to which the spoke is adjacent is the hub router. In such a network
topology, the IP routing information required to represent this topology is fairly simple. These stub
routers commonly have a WAN connection to the hub router, and a small number of LAN network
segments (stub networks) are directly connected to the stub router.
These stub networks might consist only of end systems and the stub router, and thus do not require the
stub router to learn any dynamic IP routing information.
To identify the hardware platform or software image information associated with a feature, use the
Feature Navigator on Cisco.com to search for information about the feature or refer to the software
release notes for a specific release. For more information, see the “Identifying Supported Platforms”
section in the “Using Cisco IOS Software” chapter in this book.
Enabling ODR
ODR allows you to easily install IP stub networks where the hubs dynamically maintain routes to the
stub networks. This installation is accomplished without requiring the configuration of an IP routing
protocol on the stubs.
On stub routers that support the ODR feature, the stub router advertises IP prefixes corresponding to the
IP networks configured on all directly connected interfaces. If the interface has multiple logical IP
networks configured, only the primary IP network is advertised through ODR. Because ODR advertises
IP prefixes and not simply IP network numbers, ODR is able to carry variable-length subnet mask
(VSLM) information.
To enable ODR, use the following command in global configuration mode:
Command Purpose
Router(config)# router odr Enables ODR on the hub router.
Once ODR is enabled on a hub router, the hub router begins installing stub network routes in the IP
forwarding table. The hub router also can be configured to redistribute these routes into any configured
dynamic IP routing protocols.
On the stub router, no IP routing protocol must be configured. In fact, from the standpoint of ODR, a
router is automatically considered to be a stub when no IP routing protocols have been configured.
ODR uses the Cisco Discovery Protocol (CDP) to carry minimal routing information between the hub
and stub routers. The stub routers send IP prefixes to the hub router. The hub router provides default
route information to the stub routers, thereby eliminating the need to configure a default route on each
stub router.
Using the no cdp run global configuration command disables the propagation of ODR stub routing
information entirely. Using the no cdp enable interface configuration command disables the
propagation of ODR information on a particular interface.
Command Purpose
Router(config-router)# distribute-list access-list-number | Filters ODR information on the hub
access-list-name | prefix list-name {in | out} [interface-type router.
interface-number]
For example, the following configuration causes the hub router to only accept advertisements for IP
prefixes about (or subnets of) the Class C network 1982.168.1.0:
Router(config)# access-list 101 permit ip any 192.168.1.0 0.0.0.255
Router(config)# !
Router(config)# router odr
Router(config)# distribute-list 101 in
Router(config)# end
Redistributing ODR Information into the Dynamic Routing Protocol of the Hub
This task may be performed by using the redistribute router configuration command. The exact syntax
depends upon the routing protocol into which ODR is being redistributed.
See the “Redistribute Routing Information” section in the “Configuring IP Routing
Protocol-Independent Features” chapter.
Command Purpose
Step 1 Router(config)# cdp timer seconds Changes the rate at which CDP updates are sent.
Step 2 Router(config)# router odr Enables ODR.
Step 3 Router(config-router)# timers basic update invalid Changes the rate at which ODR routes are expired
holddown flush [sleeptime] from the routing table.
Other CDP features are described in the Cisco IOS Configuration Fundamentals Configuration Guide,
in the “Monitoring the Router and Network” chapter.
This chapter describes how to configure Routing Information Protocol (RIP). For a complete description
of the RIP commands that appear in this chapter, refer to the “RIP Commands” chapter of the Cisco IOS
IP Command Reference, Volume 2 of 3: Routing Protocols. To locate documentation of other commands
that appear in this chapter, use the command reference master index, or search online.
RIP is a relatively old but still commonly used interior gateway protocol created for use in small,
homogeneous networks. It is a classical distance-vector routing protocol. RIP is documented in
RFC 1058.
RIP uses broadcast User Datagram Protocol (UDP) data packets to exchange routing information.
Cisco IOS software sends routing information updates every 30 seconds, which is termed advertising. If
a router does not receive an update from another router for 180 seconds or more, it marks the routes
served by the nonupdating router as being unusable. If there is still no update after 240 seconds, the
router removes all routing table entries for the nonupdating router.
The metric that RIP uses to rate the value of different routes is hop count. The hop count is the number
of routers that can be traversed in a route. A directly connected network has a metric of zero; an
unreachable network has a metric of 16. This small range of metrics makes RIP an unsuitable routing
protocol for large networks.
A router that is running RIP can receive a default network via an update from another router that is
running RIP, or the router can source (generate) the default network itself with RIP. In both cases, the
default network is advertised through RIP to other RIP neighbors.
Cisco IOS software will source the default network with RIP if one of the following conditions is met:
• The ip default-network command is configured.
• The default-information originate command is configured.
• The default route is learned via another routing protocol or static route and then redistributed into
RIP.
RIP sends updates to the interfaces in the specified networks. If the network of an interface network is
not specified, it will not be advertised in any RIP update.
The Cisco implementation of RIP Version 2 supports plain text and Message Digest 5 (MD5)
authentication, route summarization, classless interdomain routing (CIDR), and variable-length subnet
masks (VLSMs).
For protocol-independent features, which also apply to RIP, see the chapter “Configuring IP Routing
Protocol-Independent Features” in this book.
To identify the hardware platform or software image information associated with a feature, use the
Feature Navigator on Cisco.com to search for information about the feature or refer to the software
release notes for a specific release. For more information, see the “Identifying Supported Platforms”
section in the “Using Cisco IOS Software” chapter in this book.
Enabling RIP
To enable RIP, use the following commands beginning in global configuration mode:
Command Purpose
Step 1 Router(config)# router rip Enables a RIP routing process, which places you in
router configuration mode.
Step 2 Router(config-router)# network ip-address Associates a network with a RIP routing process.
Command Purpose
Router(config-router)# neighbor ip-address Defines a neighboring router with which to exchange routing
information.
To control the set of interfaces with which you want to exchange routing updates, you can disable the
sending of routing updates on specified interfaces by configuring the passive-interface router
configuration command. See the discussion on filtering in the “Filter Routing Information” section in
the “Configuring IP Routing Protocol-Independent Features” chapter.
Command Purpose
Router(config-router)# offset-list [access-list-number | Applies an offset to routing metrics.
access-list-name] {in | out} offset [interface-type
interface-number]
Adjusting Timers
Routing protocols use several timers that determine such variables as the frequency of routing updates,
the length of time before a route becomes invalid, and other parameters. You can adjust these timers to
tune routing protocol performance to better suit your internetwork needs. You can make the following
timer adjustments:
• The rate (time in seconds between updates) at which routing updates are sent
• The interval of time (in seconds) after which a route is declared invalid
• The interval (in seconds) during which routing information regarding better paths is suppressed
• The amount of time (in seconds) that must pass before a route is removed from the routing table
• The amount of time for which routing updates will be postponed
It also is possible to tune the IP routing support in the software to enable faster convergence of the
various IP routing algorithms, and, hence, quicker fallback to redundant routers. The total effect is to
minimize disruptions to end users of the network in situations where quick recovery is essential.
In addition, an address family can have explicitly specified timers that apply to that address-family (or
VRF) only. The timers basic command must be specified for an address family or the system defaults
for the timers basic command are used regardless of what is configured for RIP routing. The VRF does
not inherit the timer values from the base RIP configuration. The VRF will always use the system default
timers unless explicitly changed using the timers basic command.
To adjust the timers, use the following command in router configuration mode:
Command Purpose
Router(config-router)# timers basic update invalid Adjusts routing protocol timers.
holddown flush [sleeptime]
See the “Address Family Timers Example” section at the end of this chapter for examples of adjusting
timers for an address family (VRF).
Command Purpose
Router(config-router)# version {1 | 2} Configures the software to receive and send only RIP
Version 1 or only RIP Version 2 packets.
The preceding task controls the default behavior of RIP. You can override that behavior by configuring
a particular interface to behave differently. To control which RIP version an interface sends, use the
following commands in interface configuration mode, as needed:
:
Command Purpose
Router(config-if)# ip rip send version 1 Configures an interface to send only RIP Version 1 packets.
Router(config-if)# ip rip send version 2 Configures an interface to send only RIP Version 2 packets.
Router(config-if)# ip rip send version 1 2 Configures an interface to send RIP Version 1 and Version 2
packets.
Similarly, to control how packets received from an interface are processed, use the following commands
in interface configuration mode, as needed:
Command Purpose
Router(config-if)# ip rip receive version 1 Configures an interface to accept only RIP Version 1 packets.
Router(config-if)# ip rip receive version 2 Configures an interface to accept only RIP Version 2 packets.
Router(config-if)# ip rip receive version 1 2 Configures an interface to accept either RIP Version 1 or 2
packets.
Note Do not use plain text authentication in RIP packets for security purposes, because the unencrypted
authentication key is sent in every RIP Version 2 packet. Use plain text authentication when security
is not an issue, for example, to ensure that misconfigured hosts do not participate in routing.
To configure RIP authentication, use the following commands in interface configuration mode:
Command Purpose
Step 1 Router(config-if)# ip rip authentication key-chain Enables RIP authentication.
name-of-chain
Step 2 Router(config-if)# ip rip authentication mode {text | md5} Configures the interface to use MD5 digest
authentication (or let it default to plain text
authentication).
See the “Key Management Examples” section of the “Configuring IP Routing Protocol-Independent
Features” chapter for key management information and examples.
Note You need not configure anything for automatic summary to be enabled. To disable automatic
summary, use the Router (config-router)# no auto-summary router configuration command.
• As specifically configured, advertising a summarized local IP address pool on the specified interface
(on a network access server) so that the address pool can be provided to dialup clients.
Automatic summary addressing always summarizes to the classful address boundary, while the ip
summary-address router configuration command summarizes addresses on a specified interface. If
automatic summary addressing is enabled, automatic summarization is the default behavior for
interfaces on the router not associated with dial-in clients (the “backbone”), with or without the ip
summary-address rip interface command present.
For example, if a local IP address pool of 10.1.1.1 to 10.1.1.254 is configured on the network access
server, you could configure the ip summary-address rip 10.1.1.0 255.255.255.0 command on the
network access server port that provides addresses to dialup clients to cause the router to advertise
10.1.1.0/24 routes to dialup clients. Because a summary route is advertised, advertisement of the /32 host
routes (installed when the dialup client connects) is suppressed so that the router does not advertise these
routes to the network access server interface.
Automatic summary will override the configured summary address feature on a given interface except
when both of the following conditions are true:
• The configured interface summary address and the IP address of the configured interface share the
same major network (the classful, nonsubnetted portion of the IP address).
• Split horizon is not enabled on the interface.
Note If split horizon is enabled, neither an automatic summary address nor the interface summary address
is advertised.
In the following example configuration, the major network is 10.0.0.0. The 10 in the address defines a
Class A address space, allowing space for 0.x.x.x unique hosts where x defines unique bit positions in
the addresses for these hosts. The summary of the major net defines the prefix as implied by the class
(A, B, or C) of the address, without any network mask. The summary address 10.2.0.0 overrides the
automatic summary address of 10.0.0.0, 10.2.0.0 is advertised out interface E1, and 10.0.0.0 is not
advertised.
interface Ethernet1
ip address 10.1.1.1 255.255.255.0
ip summary-address rip 10.2.0.0 255.255.0.0
no ip split-horizon
router rip
network 10.0.0.0
When RIP determines that a summary address is required in the RIP database, a summary entry is created
in the RIP routing database. As long as there are child routes for a summary address, the address remains
in the routing database. When the last child route is removed, the summary entry also is removed from
the database. This method of handling database entries reduces the number of entries in the database
because each child route is not listed in an entry, and the aggregate entry itself is removed when there
are no longer any valid child routes for it.
RIP Version 2 route summarization requires that the lowest metric of the “best route” of an aggregated
entry, or the lowest metric of all current child routes, be advertised. The best metric for aggregated
summarized routes is calculated at route initialization or when there are metric modifications of specific
routes at advertisement time, and not at the time the aggregated routes are advertised.
Each route summarization on an interface must have a unique major net, even if the subnet mask is
unique. For example, the following is not permitted:
interface Ethernet1
.
.
.
ip summary-address rip 10.1.0.0 255.255.0.0
ip summary-address rip 10.2.0.0 255.255.0.0 (or different mask)
Note The ip summary-address eigrp router configuration command uses other options that are not
applicable to RIP. Do not confuse Enhanced IGRP (EIGRP) summary address with the new RIP
command, ip summary-address rip.
Command Purpose
Step 1 Router(config)# interface ethernet1 Enters interface configuration mode for the ethernet 1
port.
Step 2 Router(config-if)# ip summary-address rip ip_address Specifies the IP address and network mask that
ip_network_mask identify the routes to be summarized.
See the “Route Summarization Examples” section at the end of this chapter for examples of using split
horizon.
Invalid after 180 seconds, hold down 180, flushed after 240
Outgoing update filter list for all interfaces is
Incoming update filter list for all interfaces is
Redistributing: rip
Default version control: send version 2, receive version 2
Interface Send Recv Triggered RIP Key-chain
Ethernet2 2 2
Ethernet3 2 2
Ethernet4 2 2
Ethernet5 2 2
Automatic network summarization is not in effect
Address Summarization:
10.11.0.0/16 for Ethernet2
You can check summary address entries in the RIP database. These entries will appear in the database
only if relevant child routes are being summarized. When the last child route for a summary address
becomes invalid, the summary address is also removed from the routing table. The following example
shows a summary address entry for route 10.11.0.0/16, with three child routes active:
router# show ip rip database
10.0.0.0/8 auto-summary
10.11.11.0/24 directly connected, Ethernet2
10.1.0.0/8 auto-summary
10.11.0.0/16 int-summary
^^^^^^^^^^^^^^^^^^^^^^^^^^^
10.11.10.0/24 directly connected, Ethernet3
10.11.11.0/24 directly connected, Ethernet4
10.11.12.0/24 directly connected, Ethernet5
Command Purpose
Router(config-router)# no auto-summary Disables automatic summarization.
Command Purpose
Router(config-router)# no validate-update-source Disables the validation of the source IP address of incoming
RIP routing updates.
Command Purposes
Router(config-if)# ip split-horizon Enables split horizon.
Router(config-if)# no ip split-horizon Disables split horizon.
Split horizon for Frame Relay and SMDS encapsulation is disabled by default. Split horizon is not
disabled by default for interfaces using any of the X.25 encapsulations. For all other encapsulations, split
horizon is enabled by default.
See the “Split Horizon Examples” section at the end of this chapter for examples of using split horizon.
Note In general, changing the state of the default is not recommended unless you are certain that your
application requires making a change in order to advertise routes properly. Remember that if split
horizon is disabled on a serial interface (and that interface is attached to a packet-switched network),
you must disable split horizon for all routers in any relevant multicast groups on that network.
Command Purpose
Router(config-router)# output-delay delay Adds interpacket delay for RIP updates sent.
Command Purpose
Step 1 Router(config)# interface serial controller-number Configures a serial interface.
Step 2 Router(config-if)# ip rip triggered Enables triggered extensions to RIP.
To display the contents of the RIP private database, use the following command in EXEC mode:
Command Purpose
Router# show ip rip database [prefix mask] Displays the contents of the RIP private database.
Note If split horizon is enabled, neither automatic summary nor interface summary addresses (those
configured with the ip summary-address rip router configuration command) are advertised.
Example 1
The following configuration shows a simple example of disabling split horizon on a serial link. In this
example, the serial link is connected to an X.25 network.
interface serial 0
encapsulation x25
no ip split-horizon
Example 2
In the next example, Figure 35 illustrates a typical situation in which the no ip split-horizon interface
configuration command would be useful. This figure depicts two IP subnets that are both accessible via
a serial interface on Router C (connected to Frame Relay network). In this example, the serial interface
on Router C accommodates one of the subnets via the assignment of a secondary IP address.
The Ethernet interfaces for Router A, Router B, and Router C (connected to IP networks 12.13.50.0,
10.20.40.0, and 20.155.120.0, respectively, all have split horizon enabled by default, while the serial
interfaces connected to networks 128.125.1.0 and 131.108.1.0 all have split horizon disabled with the
no ip split-horizon command. Figure 35 shows the topology and interfaces.
S0
Router C Router B S2
Network address:
12.13.50.0
Interface address: Secondary
Interface address: interface address: Interface address:
12.13.50.1 131.108.1.2
128.125.1.1 131.108.1.1
E1
Network
address:
S1 Network 131.108.1.0
Router A address:
Interface address: 128.125.1.0
128.125.1.2
Frame Relay
network
S1069a
In this example, split horizon is disabled on all serial interfaces. However, split horizon must be disabled
on Router C in order for network 128.125.0.0 to be advertised into network 131.108.0.0, and vice versa.
These subnets overlap at Router C, interface S0. If split horizon were enabled on serial interface S0, it
would not advertise a route back into the Frame Relay network for either of these networks.
This chapter describes how to configure the Interior Gateway Routing Protocol (IGRP). For a complete
description of the IGRP commands in this chapter, refer to the “IGRP Commands” chapter of the
Cisco IOS IP Command Reference, Volume 2 of 3: Routing Protocols. To locate documentation of other
commands that appear in this chapter, use the command reference master index, or search online.
IGRP is a dynamic distance-vector routing protocol designed by Cisco in the mid-1980s for routing in
an autonomous system that contains large, arbitrarily complex networks with diverse bandwidth and
delay characteristics.
For protocol-independent features, see the chapter “Configuring IP Routing Protocol-Independent
Features” in this book.
To identify the hardware platform or software image information associated with a feature, use the
Feature Navigator on Cisco.com to search for information about the feature or refer to the software
release notes for a specific release. For more information, see the “Identifying Supported Platforms”
section in the “Using Cisco IOS Software” chapter in this book.
Autonomous
Autonomous system 1 system 2
System
Subnet B
Exterior
Interior
S1019a
IGRP Updates
By default, a router running IGRP sends an update broadcast every 90 seconds. It declares a route
inaccessible if it does not receive an update from the first router in the route within three update periods
(270 seconds). After seven update periods (630 seconds), the Cisco IOS software removes the route from
the routing table.
IGRP uses flash update and poison reverse updates to speed up the convergence of the routing algorithm.
Flash update is the sending of an update sooner than the standard periodic update interval of notifying
other routers of a metric change. Poison reverse updates are intended to defeat larger routing loops
caused by increases in routing metrics. The poison reverse updates are sent to remove a route and place
it in holddown, which keeps new routing information from being used for a certain period of time.
Command Purpose
Step 1 Router(config)# router igrp as-number Enables an IGRP routing process, which places you
in router configuration mode.
Step 2 Router(config-router)# network network-number Associates networks with an IGRP routing process.
IGRP sends updates to the interfaces in the specified networks. If the network of an interface is not
specified, the interface will not be advertised in any IGRP update.
It is not necessary to have a registered autonomous system number to use IGRP. If you do not have a
registered number, you are free to create your own. We recommend that if you do have a registered
number, you use it to identify the IGRP process.
Command Purpose
Router(config-router)# offset-list [access-list-number | Applies an offset to routing metrics.
access-list-name] {in | out} offset [interface-type |
interface-number]
Command Purpose
Router(config-router)# neighbor ip-address Defines a neighboring router with which to exchange
routing information.
To control the set of interfaces with which you want to exchange routing updates, you can disable the
sending of routing updates on specified interfaces by configuring the passive-interface router
configuration command. See the discussion on filtering in the “Filter Routing Information” section in
the “Configuring IP Routing Protocol-Independent Features” chapter.
Command Purpose
Router(config-router)# variance multiplier Defines the variance associated with a particular path.
Note By using the variance feature, the Cisco IOS software can balance traffic across all feasible paths and
can immediately converge to a new path if one of the paths should fail.
See the “IGRP Feasible Successor Relationship Example” section at the end of this chapter.
To control how traffic is distributed among multiple routes of unequal cost, use the following command
in router configuration mode:
Command Purpose
Router(config-router)# traffic-share balanced Distribute traffic proportionately to the ratios of metrics.
Command Purpose
Router(config-router)# metric weights tos k1 k2 k3 k4 k5 Adjusts the IGRP metric.
By default, the IGRP composite metric is a 24-bit quantity that is a sum of the segment delays and the
lowest segment bandwidth (scaled and inverted) for a given route. For a network of homogeneous media,
this metric reduces to a hop count. For a network of mixed media (Ethernet, FDDI, and serial lines
running from 9600 bits per second to T1 rates), the route with the lowest metric reflects the most
desirable path to a destination.
Adjusting Timers
Routing protocols use several timers that determine such variables as the frequency of routing updates,
the length of time before a route becomes invalid, and other parameters. You can adjust these timers to
tune routing protocol performance to better suit your internetwork needs. You can make the following
timer adjustments:
• The rate (time in seconds between updates) at which routing updates are sent
• The interval of time (in seconds) after which a route is declared invalid
• The interval (in seconds) during which routing information regarding better paths is suppressed
• The amount of time (in seconds) that must pass before a route is removed from the routing table
• The amount of time for which routing updates will be postponed
It also is possible to tune the IP routing support in the software to enable faster convergence of the
various IP routing algorithms, and, hence, quicker fallback to redundant routers. The total effect is to
minimize disruptions to end users of the network in situations where quick recovery is essential.
To adjust the timers, use the following command in router configuration mode:
Command Purpose
Router(config-router)# timers basic update invalid Adjusts routing protocol timers.
holddown flush [sleeptime]
Disabling Holddown
When the Cisco IOS software learns that a network is at a greater distance than was previously known,
or it learns the network is down, the route to that network is placed in holddown. During the holddown
period, the route is advertised, but incoming advertisements about that network from any router other
than the one that originally advertised the new metric of the network will be ignored. This mechanism
is often used to help avoid routing loops in the network, but has the effect of increasing the topology
convergence time.
To disable holddowns with IGRP, use the following command in router configuration mode. All devices
in an IGRP autonomous system must be consistent in their use of holddowns.
Command Purpose
Router(config-router)# no metric holddown Disables the IGRP holddown period.
Command Purpose
Router(config-router)# metric maximum-hops hops Configures the maximum network diameter.
Command Purpose
Router(config-router)# no validate-update-source Disables the checking and validation of the source
IP address of incoming routing updates.
Command Purpose
Router(config-if)# ip split-horizon Enables split horizon.
Router(config-if)# no ip split-horizon Disables split horizon.
Split horizon for Frame Relay and SMDS encapsulation is disabled by default. Split horizon is not
disabled by default for interfaces using any of the X.25 encapsulations. For all other encapsulations, split
horizon is enabled by default.
See the “Split Horizon Examples” section at the end of this chapter for examples of using split horizon.
Note In general, changing the state of the default is not recommended unless you are certain that your
application requires making a change in order to advertise routes properly. Remember that if split
horizon is disabled on a serial interface (and that interface is attached to a packet-switched network),
you must disable split horizon for all routers in any relevant multicast groups on that network.
56620
Route to Network A
Router C1 Metric = n = 12776 Router C2
A maximum of four paths can be in the routing table for a single destination. If there are more than four
feasible paths, the four best feasible paths are used.
In the next example, Figure 38 illustrates a typical situation in which the no ip split-horizon interface
configuration command would be useful. This figure depicts two IP subnets that are both accessible via
a serial interface on Router C (connected to Frame Relay network). In this example, the serial interface
on Router C accommodates one of the subnets via the assignment of a secondary IP address.
The Ethernet interfaces for Router A, Router B, and Router C (connected to IP networks 12.13.50.0,
10.20.40.0, and 20.155.120.0, respectively) all have split horizon enabled by default, while the serial
interfaces connected to networks 128.125.1.0 and 131.108.1.0 all have split horizon disabled by default.
The partial interface configuration specifications for each router that follow Figure 38 illustrate that the
ip split-horizon interface configuration command is not explicitly configured under normal conditions
for any of the interfaces.
S0
Router C Router B S2
Network address:
12.13.50.0
Interface address: Secondary
Interface address: interface address: Interface address:
12.13.50.1 131.108.1.2
128.125.1.1 131.108.1.1
E1
Network
address:
S1 Network 131.108.1.0
Router A address:
Interface address: 128.125.1.0
128.125.1.2
Frame Relay
network
S1069a
In this example, split horizon must be disabled in order for network 128.125.0.0 to be advertised into
network 131.108.0.0, and vice versa. These subnets overlap at Router C, serial interface 0. If split
horizon were enabled on serial interface 0, it would not advertise a route back into the Frame Relay
network for either of these networks.
The configurations for routers A, B, and C follow.
Router Configuration A
interface ethernet 1
ip address 12.13.50.1
!
interface serial 1
ip address 128.125.1.2
encapsulation frame-relay
Router Configuration B
interface ethernet 2
ip address 20.155.120.1
!
interface serial 2
ip address 131.108.1.2
encapsulation frame-relay
Router Configuration C
interface ethernet 0
ip address 10.20.40.1
!
interface serial 0
ip address 128.124.1.1
ip address 131.108.1.1 secondary
encapsulation frame-relay
This chapter describes how to configure Open Shortest Path First (OSPF). For a complete description of
the OSPF commands in this chapter, refer to the “OSPF Commands” chapter of the Cisco IOS IP
Command Reference, Volume 2 of 3: Routing Protocols publication. To locate documentation of other
commands that appear in this chapter, use the command reference master index, or search online.
OSPF is an Interior Gateway Protocol (IGP) developed by the OSPF working group of the Internet
Engineering Task Force (IETF). Designed expressly for IP networks, OSPF supports IP subnetting and
tagging of externally derived routing information. OSPF also allows packet authentication and uses IP
multicast when sending and receiving packets.
We support RFC 1253, Open Shortest Path First (OSPF) MIB, August 1991. The OSPF MIB defines an
IP routing protocol that provides management information related to OSPF and is supported by Cisco
routers.
For protocol-independent features that include OSPF, see the chapter “Configuring IP Routing
Protocol-Independent Features” in this book.
To identify the hardware platform or software image information associated with a feature, use the
Feature Navigator on Cisco.com to search for information about the feature or refer to the software
release notes for a specific release. For more information, see the “Identifying Supported Platforms”
section in the “Using Cisco IOS Software” chapter in this book.
Enabling OSPF
As with other routing protocols, enabling OSPF requires that you create an OSPF routing process,
specify the range of IP addresses to be associated with the routing process, and assign area IDs to be
associated with that range of IP addresses. To do so, use the following commands beginning in global
configuration mode:
Command Purpose
Step 1 Router(config)# router ospf process-id Enables OSPF routing, which places you in router
configuration mode.
Step 2 Router(config-router)# network ip-address Defines an interface on which OSPF runs and define
wildcard-mask area area-id the area ID for that interface.
Command Purpose
Router(config-if)# ip ospf cost cost Explicitly specifies the cost of sending a packet on an OSPF
interface.
Router(config-if)# ip ospf retransmit-interval Specifies the number of seconds between link-state advertisement
seconds (LSA) retransmissions for adjacencies belonging to an OSPF
interface.
Router(config-if)# ip ospf transmit-delay Sets the estimated number of seconds required to send a link-state
seconds update packet on an OSPF interface.
Router(config-if)# ip ospf priority Sets priority to help determine the OSPF designated router for a
number-value network.
Router(config-if)# ip ospf hello-interval Specifies the length of time between the hello packets that the
seconds Cisco IOS software sends on an OSPF interface.
Router(config-if)# ip ospf dead-interval Sets the number of seconds that a device must wait before it declares
seconds a neighbor OSPF router down because it has not received a hello
packet.
Router(config-if)# ip ospf authentication-key Assigns a password to be used by neighboring OSPF routers on a
key network segment that is using the OSPF simple password
authentication.
Command Purpose
Router(config-if)# ip ospf message-digest-key Enables OSPF MD5 authentication. The values for the key-id and
key-id md5 key key arguments must match values specified for other neighbors on a
network segment.
Router(config-if)# ip ospf authentication Specifies the authentication type for an interface.
[message-digest | null]
To configure your OSPF network type, use the following command in interface configuration mode:
Command Purpose
Router(config-if)# ip ospf network {broadcast | Configures the OSPF network type for a specified interface.
non-broadcast | {point-to-multipoint
[non-broadcast] | point-to-point}}
See the “OSPF Point-to-Multipoint Example” section at the end of this chapter for an example of an
OSPF point-to-multipoint network.
Command Purpose
Step 1 Router(config-if)# ip ospf network Configures an interface as point-to-multipoint for
point-to-multipoint broadcast media.
Step 2 Router(config-if)# exit Enters global configuration mode.
Step 3 Router(config)# router ospf process-id Configures an OSPF routing process and enters router
configuration mode.
Step 4 Router(config-router)# neighbor ip-address cost Specifies a neighbor and assigns a cost to the
number neighbor.
Repeat Step 4 for each neighbor if you want to specify a cost. Otherwise, neighbors will assume the cost
of the interface, based on the ip ospf cost interface configuration command.
These parameters need only be configured in those devices that are themselves eligible to become the
designated router or backup designated router (in other words, routers with a nonzero router priority
value).
To configure routers that interconnect to nonbroadcast networks, use the following command in router
configuration mode:
Command Purpose
Router(config-router)# neighbor ip-address Configures a router interconnecting to nonbroadcast networks.
[priority number] [poll-interval seconds]
Command Purpose
Step 1 Router(config-if)# ip ospf network Configures an interface as point-to-multipoint for
point-to-multipoint non-broadcast nonbroadcast media.
Step 2 Router(config-if)# exit Enters global configuration mode.
Step 3 Router(config)# router ospf process-id Configures an OSPF routing process and enters router
configuration mode.
Step 4 Router(config-router)# neighbor ip-address [cost Specifies a neighbor and assigns a cost to the
number] neighbor.
Repeat Step 4 for each neighbor if you want to specify a cost. Otherwise, neighbors will assume the cost
of the interface, based on the ip ospf cost interface configuration command.
Stub areas are areas into which information on external routes is not sent. Instead, there is a default
external route generated by the ABR, into the stub area for destinations outside the autonomous system.
To take advantage of the OSPF stub area support, default routing must be used in the stub area. To further
reduce the number of LSAs sent into a stub area, you can configure the no-summary keyword of the
area stub router configuration command on the ABR to prevent it from sending summary link
advertisement (LSAs type 3) into the stub area.
To specify an area parameter for your network, use the following commands in router configuration
mode as needed:
Command Purpose
Router(config-router)# area area-id authentication Enables authentication for an OSPF area.
Router(config-router)# area area-id authentication Enables MD5 authentication for an OSPF area.
message-digest
Router(config-router)# area area-id stub Defines an area to be a stub area.
[no-summary]
Router(config-router)# area area-id default-cost Assigns a specific cost to the default summary route used for the
cost stub area.
Command Purpose
Router(config-router)# area area-id nssa Defines an area to be NSSA.
[no-redistribution] [default-information-originate]
To control summarization and filtering of type 7 LSAs into type 5 LSAs, use the following command in
router configuration mode on the ABR:
Command Purpose
Router(config-router)# summary address {ip-address mask | Controls the summarization and filtering during the
prefix mask} [not advertise] [tag tag] translation.
Implementation Considerations
Evaluate the following considerations before you implement this feature:
• You can set a type 7 default route that can be used to reach external destinations. When configured,
the router generates a type 7 default into the NSSA or the NSSA ABR.
• Every router within the same area must agree that the area is NSSA; otherwise, the routers will not
be able to communicate.
Command Purpose
Router(config-router)# area area-id range ip-address mask Specifies an address range for which a single route
[advertise | not-advertise][cost cost] will be advertised.
To have the software advertise one summary route for all redistributed routes covered by a network
address and mask, use the following command in router configuration mode:
Command Purpose
Router(config-router)# summary-address {{ip-address mask} | Specifies an address and mask that covers
{prefix mask}} [not-advertise][tag tag] redistributed routes, so only one summary
route is advertised. Use the optional
not-advertise keyword to filter out a set of
routes.
Command Purpose
Router(config-router)# area transit-area-id virtual-link transit-router-id Establishes a virtual link.
[authentication {message-digest | null}] [hello-interval seconds]
[retransmit-interval seconds] [transmit-delay seconds] [dead-interval seconds]
[{authentication-key key} | message-digest-key key-id | md5 key}]
To display information about virtual links, use the show ip ospf virtual-links EXEC command. To
display the router ID of an OSPF router, use the show ip ospf EXEC command.
Command Purpose
Router(config-router)# default-information originate Forces the autonomous system boundary router to
[always] [metric metric-value] [metric-type type-value] generate a default route into the OSPF routing
[route-map map-name]
domain.
Command Purpose
Router(config)# ip ospf name-lookup Configures DNS name lookup.
Command Purpose
Step 1 Router(config)# interface loopback 0 Creates a loopback interface, which places the router
in interface configuration mode.
Step 2 Router(config-if)# ip address ip-address mask Assigns an IP address to this interface.
Command Purpose
Router(config-router)# auto-cost reference-bandwidth Differentiates high bandwidth links.
ref-bw
Command Purpose
Router(config-router)# distance ospf {[intra-area dist1] [inter-area Changes the OSPF distance values.
dist2] [external dist3]}
For an example of changing administrative distance, see the section “Changing OSPF Administrative
Distance Example” at the end of this chapter.
Command Purpose
Router(config-router)# passive-interface Suppresses the sending of hello packets through the specified
interface-type interface-number interface.
Command Purpose
Router(config-router)# timers spf spf-delay Configures route calculation timers.
spf-holdtime
Command Purpose
Step 1 Router(config)# router ospf process-id Enables OSPF operation.
Step 2 Router(config)# interface interface-type Enters interface configuration mode.
interface-number
Step 3 Router(config-if)# ip ospf demand-circuit Configures OSPF on an on-demand circuit.
If the router is part of a point-to-point topology, then only one end of the demand circuit must be
configured with this command. However, all routers must have this feature loaded.
If the router is part of a point-to-multipoint topology, only the multipoint end must be configured with
this command.
For an example of OSPF over an on-demand circuit, see the section “OSPF over On-Demand Routing
Example” at the end of this chapter.
Implementation Considerations
Evaluate the following considerations before implementing this feature:
• Because LSAs that include topology changes are flooded over an on-demand circuit, we recommend
that you put demand circuits within OSPF stub areas or within NSSAs to isolate the demand circuits
from as many topology changes as possible.
• To take advantage of the on-demand circuit functionality within a stub area or NSSA, every router
in the area must have this feature loaded. If this feature is deployed within a regular area, all other
regular areas must also support this feature before the demand circuit functionality can take effect
because type 5 external LSAs are flooded throughout all areas.
• Hub-and-spoke network topologies that have a point-to-multipoint (p2mp) OSPF interface type on
a hub might not revert back to non-demand circuit mode when needed. You must simultaneously
reconfigure OSPF on all interfaces on the p2mp segment when reverting them from demand circuit
mode to non-demand circuit mode.
• Do not implement this feature on a broadcast-based network topology because the overhead
protocols (such as hello and LSA packets) cannot be successfully suppressed, which means the link
will remain up.
• Configuring the router for an OSPF on-demand circuit with an asynchronous interface is not a
supported configuration. The supported configuration is to use dialer interfaces on both ends of the
circuit. For more information, refer to the following TAC URL:
http://www.cisco.com/warp/public/104/dcprob.html#reason5
Command Purpose
Router(config-router)# log-adjacency-changes Sends syslog message when an OSPF neighbor goes up or down.
[detail]
Configure this command if you want to know about OSPF neighbors going up or down without turning
on the debug ip ospf adjacency EXEC command. The log-adjacency-changes router configuration
command provides a higher level view of the peer relationship with less output. Configure
log-adjacency-changes detail if you want to see messages for each state change.
OSPF LSA group pacing is enabled by default. For typical customers, the default group pacing interval
for refreshing, checksumming, and aging is appropriate and you need not configure this feature.
All LSAs refreshed, 120 external LSAs on Ethernet need three packets
20 LSAs, 1 packet
37 LSAs, 1 packet
15 LSAs, 1 packet
10471
Individual LSA timers with group pacing
The group pacing interval is inversely proportional to the number of LSAs the router is refreshing,
checksumming, and aging. For example, if you have approximately 10,000 LSAs, decreasing the pacing
interval would benefit you. If you have a very small database (40 to 100 LSAs), increasing the pacing
interval to 10 to 20 minutes might benefit you slightly.
The default value of pacing between LSA groups is 240 seconds (4 minutes). The range is from 10
seconds to 1800 seconds (30 minutes). To change the LSA group pacing interval, use the following
command in router configuration mode:
Command Purpose
Router(config-router)# timers lsa-group-pacing Changes the group pacing of LSAs.
seconds
For an example, see the section “LSA Group Pacing Example” at the end of this chapter.
Command Purpose
Router(config-if)# ospf database-filter all Blocks the flooding of OSPF LSA packets to the interface.
out
On point-to-multipoint networks, to prevent flooding of OSPF LSAs, use the following command in
router configuration mode:
Command Purpose
Router(config-router)# neighbor ip-address Blocks the flooding of OSPF LSA packets to the specified neighbor.
database-filter all out
For an example of blocking LSA flooding, see the section “Block LSA Flooding Example” at the end of
this chapter.
Command Purpose
Router(config-if)# ip ospf flood-reduction Suppresses the unnecessary flooding of LSAs in stable topologies.
Command Purpose
Router(config-router)# ignore lsa mospf Prevents the router from generating syslog messages when it receives
MOSPF LSA packets.
For an example of suppressing MOSPF LSA packets, see the section “Ignore MOSPF LSA Packets
Example” at the end of this chapter.
Command Purpose
Router# show ip ospf flood-list Displays a list of LSAs waiting to be flooded over an interface.
interface-type interface-number
Command Purpose
Router# show ip ospf [process-id] Displays general information about OSPF routing processes.
Router# show ip ospf border-routers Displays the internal OSPF routing table entries to the ABR and
ASBR.
Router# show ip ospf [process-id [area-id]] Displays lists of information related to the OSPF database.
database
Command Purpose
Router# show ip ospf neighbor [interface-name] Displays OSPF neighbor information on a per-interface basis.
[neighbor-id] detail
Router# show ip ospf request-list [neighbor] Displays a list of all LSAs requested by a router.
[interface] [interface-neighbor]
Router# show ip ospf retransmission-list Displays a list of all LSAs waiting to be resent.
[neighbor] [interface] [interface-neighbor]
Router# show ip ospf [process-id]summary-address Displays a list of all summary address redistribution information
configured under an OSPF process.
Router# show ip ospf virtual-links Displays OSPF-related virtual links information.
Command Purpose
Router# clear ip ospf [pid] {process | Clears redistribution based on the OSPF routing process ID. If
redistribution | counters [neighbor the pid option is not specified, all OSPF processes are cleared.
[neighbor-interface] [neighbor-id]]}
Mollie
201
Neon 101
10.0.0.1
203 202
102
401 301
Platty Jelly
10.0.0.4
56621
402
Mollie Configuration
hostname mollie
!
interface serial 1
ip address 10.0.0.2 255.0.0.0
ip ospf network point-to-multipoint
encapsulation frame-relay
frame-relay map ip 10.0.0.1 201 broadcast
frame-relay map ip 10.0.0.3 202 broadcast
frame-relay map ip 10.0.0.4 203 broadcast
!
router ospf 1
network 10.0.0.0 0.0.0.255 area 0
Neon Configuration
hostname neon
!
interface serial 0
ip address 10.0.0.1 255.0.0.0
ip ospf network point-to-multipoint
encapsulation frame-relay
frame-relay map ip 10.0.0.2 101 broadcast
frame-relay map ip 10.0.0.4 102 broadcast
!
router ospf 1
network 10.0.0.0 0.0.0.255 area 0
Platty Configuration
hostname platty
!
interface serial 3
ip address 10.0.0.4 255.0.0.0
ip ospf network point-to-multipoint
encapsulation frame-relay
clock rate 1000000
frame-relay map ip 10.0.0.1 401 broadcast
frame-relay map ip 10.0.0.2 402 broadcast
!
router ospf 1
network 10.0.0.0 0.0.0.255 area 0
Jelly Configuration
hostname jelly
!
interface serial 2
ip address 10.0.0.3 255.0.0.0
ip ospf network point-to-multipoint
encapsulation frame-relay
clock rate 2000000
frame-relay map ip 10.0.0.2 301 broadcast
!
router ospf 1
network 10.0.0.0 0.0.0.255 area 0
The following example is the configuration for the router on the other side:
interface Serial9/2
ip address 10.0.1.3 255.255.255.0
encapsulation frame-relay
ip ospf network point-to-multipoint non-broadcast
no ip mroute-cache
no keepalive
no fair-queue
frame-relay local-dlci 301
frame-relay map ip 10.0.1.1 300
no shut
!
router ospf 1
network 10.0.1.0 0.0.0.255 area 0
In the following example, a 30-bit subnet mask is used, leaving two bits of address space reserved for
serial line host addresses. There is sufficient host address space for two host endpoints on a
point-to-point serial link.
interface ethernet 0
ip address 131.107.1.1 255.255.255.0
! 8 bits of host address space reserved for ethernets
interface serial 0
ip address 131.107.254.1 255.255.255.252
! 2 bits of address space reserved for serial lines
Basic OSPF Configuration Example for Internal Router, ABR, and ASBRs
The following example illustrates the assignment of four area IDs to four IP address ranges. In the
example, OSPF routing process 109 is initialized, and four OSPF areas are defined: 10.9.50.0, 2, 3, and
0. Areas 10.9.50.0, 2, and 3 mask specific address ranges, and area 0 enables OSPF for all other
networks.
router ospf 109
network 131.108.20.0 0.0.0.255 area 10.9.50.0
network 131.108.0.0 0.0.255.255 area 2
network 131.109.10.0 0.0.0.255 area 3
network 0.0.0.0 255.255.255.255 area 0
!
! Interface Ethernet0 is in area 10.9.50.0:
interface ethernet 0
ip address 131.108.20.5 255.255.255.0
!
! Interface Ethernet1 is in area 2:
interface ethernet 1
ip address 131.108.1.5 255.255.255.0
!
! Interface Ethernet2 is in area 2:
interface ethernet 2
ip address 131.108.2.5 255.255.255.0
!
! Interface Ethernet3 is in area 3:
interface ethernet 3
ip address 131.109.10.5 255.255.255.0
!
! Interface Ethernet4 is in area 0:
interface ethernet 4
ip address 131.109.1.1 255.255.255.0
!
! Interface Ethernet5 is in area 0:
interface ethernet 5
ip address 10.1.0.1 255.255.0.0
Each network area router configuration command is evaluated sequentially, so the order of these
commands in the configuration is important. The Cisco IOS software sequentially evaluates the
address/wildcard-mask pair for each interface. See the “OSPF Commands” chapter of the Cisco IOS
IP Command Reference, Volume 2 of 3: Routing Protocols publication for more information.
Consider the first network area command. Area ID 10.9.50.0 is configured for the interface on which
subnet 131.108.20.0 is located. Assume that a match is determined for Ethernet interface 0. Ethernet
interface 0 is attached to area 10.9.50.0 only.
The second network area command is evaluated next. For area 2, the same process is then applied to all
interfaces (except Ethernet interface 0). Assume that a match is determined for interface Ethernet 1.
OSPF is then enabled for that interface and Ethernet interface 1 is attached to area 2.
This process of attaching interfaces to OSPF areas continues for all network area commands. Note that
the last network area command in this example is a special case. With this command, all available
interfaces (not explicitly attached to another area) are attached to area 0.
Area 1
Router A Router B
E1 E2 Interface address:
Interface address:
192.168.1.1 192.168.1.2
Network: 192.168.1.0
Interface address:
E3 192.168.1.3
Router C
S0 Interface address:
192.168.2.3
Network: 192.168.2.0
S1 Area 0
Interface address:
Router D 192.168.2.4
E4
Interface address:
10.0.0.4
Network: 10.0.0.0 Interface address:
10.0.0.5
E5
Interface address: Remote address:
Router E S2 172.16.1.5 172.16.1.6
in autonomous
Network: 172.16.1.0
system 60000
S1030a
Note It is not necessary to include definitions of all areas in an OSPF autonomous system in the
configuration of all routers in the autonomous system. You must only define the directly connected
areas. In the example that follows, routes in area 0 are learned by the routers in area 1 (Router A and
Router B) when the ABR (Router C) injects summary LSAs into area 1.
The OSPF domain in BGP autonomous system 109 is connected to the outside world via the BGP link
to the external peer at IP address 11.0.0.6. Example configurations follow.
Following is the sample configuration for the general network map shown in Figure 42.
router ospf 1
network 131.108.0.0 0.0.255.255 area 1
Router C Configuration—ABR
interface ethernet 3
ip address 131.108.1.3 255.255.255.0
interface serial 0
ip address 131.108.2.3 255.255.255.0
interface serial 1
ip address 131.108.2.4 255.255.255.0
router ospf 50
network 131.108.2.0 0.0.0.255 area 0
network 10.0.0.0 0.255.255.255 area 0
Router E Configuration—ASBR
interface ethernet 5
ip address 10.0.0.5 255.0.0.0
interface serial 2
ip address 11.0.0.5 255.0.0.0
E2
Area ID: 0
Configured as backbone area
interface ethernet 0
ip address 192.42.110.201 255.255.255.0
ip ospf authentication-key abcdefgh
ip ospf cost 10
!
interface ethernet 1
ip address 131.119.251.201 255.255.255.0
ip ospf authentication-key ijklmnop
ip ospf cost 20
ip ospf retransmit-interval 10
ip ospf transmit-delay 2
ip ospf priority 4
!
interface ethernet 2
ip address 131.119.254.201 255.255.255.0
ip ospf authentication-key abcdefgh
ip ospf cost 10
!
interface ethernet 3
ip address 36.56.0.201 255.255.0.0
ip ospf authentication-key ijklmnop
ip ospf cost 20
ip ospf dead-interval 80
The following example redistributes RIP routes with a hop count equal to 1 into OSPF. These routes will
be redistributed into OSPF as external LSAs with a metric of 5, a metric type of type 1, and a tag equal
to 1.
router ospf 109
redistribute rip route-map rip-to-ospf
!
route-map rip-to-ospf permit
match metric 1
set metric 5
set metric-type type1
set tag 1
The following example redistributes OSPF learned routes with tag 7 as a RIP metric of 15:
router rip
redistribute ospf 109 route-map 5
!
route-map 5 permit
match tag 7
set metric 15
The following example redistributes OSPF intra-area and interarea routes with next hop routers on serial
interface 0 into BGP with an INTER_AS metric of 5:
router bgp 109
redistribute ospf 109 route-map 10
!
route-map 10 permit
match route-type internal
match interface serial 0
set metric 5
The following example redistributes two types of routes into the integrated IS-IS routing table
(supporting both IP and CLNS). The first type is OSPF external IP routes with tag 5; these routes are
inserted into Level 2 IS-IS LSPs with a metric of 5. The second type is ISO-IGRP derived CLNS prefix
routes that match CLNS access list 2000; these routes will be redistributed into IS-IS as Level 2 LSPs
with a metric of 30.
router isis
redistribute ospf 109 route-map 2
redistribute iso-igrp nsfnet route-map 3
!
route-map 2 permit
match route-type external
match tag 5
set metric 5
set level level-2
!
route-map 3 permit
match address 2000
set metric 30
With the following configuration, OSPF external routes with tags 1, 2, 3, and 5 are redistributed into RIP
with metrics of 1, 1, 5, and 5, respectively. The OSPF routes with a tag of 4 are not redistributed.
router rip
redistribute ospf 109 route-map 1
!
route-map 1 permit
match tag 1 2
set metric 1
!
route-map 1 permit
match tag 3
set metric 5
!
route-map 1 deny
match tag 4
!
route map 1 permit
match tag 5
set metric 5
In the following configuration, a RIP learned route for network 160.89.0.0 and an ISO-IGRP learned
route with prefix 49.0001.0002 will be redistributed into an IS-IS Level 2 LSP with a metric of 5:
router isis
redistribute rip route-map 1
redistribute iso-igrp remote route-map 1
!
route-map 1 permit
match ip address 1
match clns address 2
set metric 5
set level level-2
!
access-list 1 permit 160.89.0.0 0.0.255.255
clns filter-set 2 permit 49.0001.0002...
The following configuration example illustrates how a route map is referenced by the
default-information router configuration command. This type of reference is called conditional default
origination. OSPF will originate the default route (network 0.0.0.0) with a type 2 metric of 5 if
140.222.0.0 is in the routing table.
Note Only routes external to the OSPF process can be used for tracking, such as non-OSPF routes or OSPF
routes from a separate OSPF process.
Router C
OSPF 2
Router A Router B
Network
10.0.0.0
OSPF 1
14830
Router A Configuration
router ospf 1
redistribute ospf 2 subnet
distance ospf external 200
!
router ospf 2
redistribute ospf 1 subnet
distance ospf external 200
Router B Configuration
router ospf 1
redistribute ospf 2 subnet
distance ospf external 200
!
router ospf 2
redistribute ospf 1 subnet
distance ospf external 200
14873
Router A Router B
Router A Configuration
username RouterB password 7 060C1A2F47
isdn switch-type basic-5ess
ip routing
!
interface TokenRing0
ip address 140.10.20.7 255.255.255.0
no shut
!
interface BRI0
no cdp enable
description connected PBX 1485
ip address 140.10.10.7 255.255.255.0
encapsulation ppp
ip ospf demand-circuit
dialer map ip 140.10.10.6 name RouterB broadcast 61484
dialer-group 1
ppp authentication chap
no shut
!
router ospf 100
network 140.10.10.0 0.0.0.255 area 0
network 140.10.20.0 0.0.0.255 area 0
!
dialer-list 1 protocol ip permit
Router B Configuration
username RouterA password 7 04511E0804
isdn switch-type basic-5ess
ip routing
!
interface Ethernet0
ip address 140.10.60.6 255.255.255.0
no shut
!
interface BRI0
no cdp enable
description connected PBX 1484
ip address 140.10.10.6 255.255.255.0
encapsulation ppp
dialer map ip 140.10.10.7 name RouterA broadcast 61485
dialer-group 1
ppp authentication chap
no shut
!
router ospf 100
network 140.10.10.0 0.0.0.255 area 0
network 140.10.60.0 0.0.0.255 area 0
!
dialer-list 1 protocol ip permit
The following example prevents flooding of OSPF LSAs to point-to-multipoint networks to the neighbor
at IP address 1.2.3.4:
router ospf 109
neighbor 1.2.3.4 database-filter all out
This chapter describes how to configure Enhanced Interior Gateway Routing Protocol (EIGRP). For a
complete description of the EIGRP commands listed in this chapter, refer to the “EIGRP Commands”
chapter of the Cisco IOS IP Command Reference, Volume 2 of 3: Routing Protocols publication. To
locate documentation of other commands that appear in this chapter, use the command reference master
index, or search online.
Refer to the Cisco IOS AppleTalk and Novell IPX Configuration Guide for information on AppleTalk
EIGRP or Internetwork Packet Exchange (IPX) EIGRP.
For protocol-independent features that work with EIGRP, see the chapter “Configuring IP Routing
Protocol-Independent Features” in this document.
EIGRP is an enhanced version of the IGRP developed by Cisco. EIGRP uses the same distance vector
algorithm and distance information as IGRP. However, the convergence properties and the operating
efficiency of EIGRP have improved substantially over IGRP.
The convergence technology is based on research conducted at SRI International and employs an
algorithm referred to as the Diffusing Update Algorithm (DUAL). This algorithm guarantees loop-free
operation at every instant throughout a route computation and allows all devices involved in a topology
change to synchronize at the same time. Routers that are not affected by topology changes are not
involved in recomputations. The convergence time with DUAL rivals that of any other existing routing
protocol.
To identify the hardware platform or software image information associated with a feature, use the
Feature Navigator on Cisco.com to search for information about the feature or refer to the software
release notes for a specific release. For more information, see the “Identifying Supported Platforms”
section in the “Using Cisco IOS Software” chapter in this book.
Note Redistribution between EIGRP and IGRP differs from normal redistribution in that the metrics of
IGRP routes are compared with the metrics of external EIGRP routes. The rules of normal
administrative distances are not followed, and routes with the lowest metric are selected.
Enabling EIGRP
To create an EIGRP routing process, use the following commands beginning in global configuration
mode:
Command Purpose
Step 1 Router(config)# router eigrp autonomous-system Enables an EIGRP routing process in global
configuration mode.
Step 2 Router(config-router)# network network-number Associates networks with an EIGRP routing process
in router configuration mode.
EIGRP sends updates to the interfaces in the specified networks. If you do not specify the network of an
interface, the interface will not be advertised in any EIGRP update.
Command Purpose
Router(config)# eigrp log-neighbor-changes Enables logging of EIGRP neighbor adjacency changes.
Command Purpose
Router(config-if)# ip bandwidth-percent eigrp percent Configures the percentage of bandwidth that may be used
by EIGRP on an interface.
Note Adjusting EIGRP metric weights can dramatically affect network performance. Because of the
complexity of this task, we recommend that you do not change the default values without guidance
from an experienced network designer.
To adjust the EIGRP metric weights, use the following command in router configuration mode:
Command Purpose
Router(config-router)# metric weights tos k1 k2 k3 k4 k5 Adjusts the EIGRP metric or K value. EIGRP uses the
following formula to determine the total metric to the
network:
metric = [K1*bandwidth + (K2*bandwidth)/(256 - load)
+ K3*delay] * [K5/(reliability + K4)]
By default, the EIGRP composite metric is a 32-bit quantity that is a sum of the segment delays and the
lowest segment bandwidth (scaled and inverted) for a given route. For a network of homogeneous media,
this metric reduces to a hop count. For a network of mixed media (FDDI, Ethernet, and serial lines
running from 9600 bits per second to T1 rates), the route with the lowest metric reflects the most
desirable path to a destination.
Mismatched K Values
Mismatched K values (EIGRP metrics) can prevent neighbor relationships from being established and
can negatively impact network convergence. The following example explains this behavior between 2
EIGRP peers (ROUTER-A and ROUTER-B).
The following error message is displayed in the console of ROUTER-B because the K values are
mismatched:
*Apr 26 13:48:41.811: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 1: Neighbor 10.1.1.1 (Ethernet0/0) is
down: K-value mismatch
There are two scenarios where this error message can be displayed:
• The two routers are connected on the same link and configured to establish a neighbor relationship.
However, each router is configured with different K values.
The following configuration is applied to ROUTER-A. The K values are changed with the metric
weights command. A value of 2 is entered for the k1 argument to adjust the bandwidth calculation.
The value of 1 is entered for the k3 argument to adjust the delay calculation.
hostname ROUTER-A!
interface serial 0
ip address 10.1.1.1 255.255.255.0
exit
router eigrp 100
network 10.1.1.0 0.0.0.255
metric weights 0 2 0 1 0 0
The following configuration is applied to ROUTER-B. However, the metric weights command is
not applied and the default K values are used. The default K values are 1, 0, 1, 0, and 0.
hostname ROUTER-B!
interface serial 0
ip address 10.1.1.2 255.255.255.0!
exit
router eigrp 100
network 10.1.1.0 0.0.0.255
The bandwidth calculation is set to 2 on ROUTER-A and set to 1 (by default) on ROUTER-B. This
configuration prevents these peers from forming a neighbor relationship.
• The K-value mismatch error message can also be displayed if one of the two peers has transmitted
a “goodbye” message, and the receiving router does not support this message. In this case, the
receiving router will interpret this message as a K-value mismatch.
A Cisco router that runs a software release that does not support the goodbye message can
misinterpret the message as a K-value mismatch and display the following message:
*Apr 26 13:48:41.811: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 1: Neighbor 10.1.1.1
(Ethernet0/0) is down: K-value mismatch
Note The receipt of a goodbye message by a nonsupporting peer does not disrupt normal network
operation. The nonsupporting peer will terminate session when the hold timer expires. The sending
and receiving routers will reconverge normally after the sender reloads.
Command Purpose
Router(config-router)# offset-list [access-list-number Applies an offset to routing metrics.
| access-list-name] {in | out} offset [interface-type
interface-number]
Command Purpose
Router(config-router)# no auto-summary Disables automatic summarization.
Route summarization works in conjunction with the ip summary-address eigrp interface configuration
command, in which additional summarization can be performed. If automatic summarization is in effect,
there usually is no need to configure network level summaries using the ip summary-address eigrp
command.
Command Purpose
Router(config-if)# ip summary-address eigrp Configures a summary aggregate address.
autonomous-system-number ip-address mask
See the “Route Summarization Example” at the end of this chapter for an example of summarizing
aggregate addresses.
10.1.1.0/24
0.0.0.0/0
Router-B#show ip route
. . . .
103615
0.0.0.0.0.0.0.0 via <Router-A> (489765/170)
Router-C#show ip route
. . . .
0.0.0.0.0.0.0.0 via <Router-B> (489765/90)
The configuration of the default summary route on Router-B sends a 0.0.0.0/0 summary route to
Router-C and blocks all other routes, including the 10.1.1.0/24 route, from being advertised to Router-C.
However, this also generates a local discard route on Router-B, a route for 0.0.0.0/0 to the null 0
interface with an administrative distance of 5. When this route is created, it overrides the EIGRP learned
default route. Router-B will no longer be able to reach destinations that it would normally reach through
the 0.0.0.0.0/0 route.
This problem is resolved by applying a floating summary route to the interface on Router-B that connects
to Router-C. The floating summary route is applied by applying an administrative distance to the default
summary route on the interface of Router-B with the following statement:
Router(config-if)# ip summary-address eigrp 100 0.0.0.0 0.0.0.0 250
The administrative distance of 250, applied in the above statement, is now assigned to the discard route
generated on Router-B. The 0.0.0.0/0, from Router-A, is learned through EIGRP and installed in the
local routing table. Routing to Router-C is restored.
If Router-A loses the connection to Router-B, Router-B will continue to advertise a default route to
Router-C, which allows traffic to continue to reach destinations attached to Router-B. However, traffic
destined to networks to Router-A or behind Router-A will be dropped when it reaches Router-B.
Figure 47 shows a network with two connections from the core, Router-A and Router-D. Both routers
have floating summary routes configured on the interfaces connected to Router-C. If the connection
between Router-E and Router-C fails, the network will continue to operate normally. All traffic will flow
from Router-C through Router-B to the hosts attached to Router-A and Router-D.
10.1.1.0/24
0.0.0.0/0 0.0.0.0/0
0.0.0.0/0
Router-D Router-E
103614
0.0.0.0/0
Router-B#show ip route
. . . .
0.0.0.0.0.0.0.0 via <Router-A> (489765/170)
However, if the link between Router-D and Router-E fails, the network may blackhole traffic because
Router-E will continue to advertise the default route(0.0.0.0/0) to Router-C, as long as at least one link,
(other than the link to Router-C) to Router-E is still active. In this scenario, Router-C still forwards
traffic to Router-E, but Router-E drops the traffic creating the black hole. To avoid this problem, you
should configure the summary address with an administrative distance on only single-homed remote
routers or areas where there is only one exit point between to segments of the network. If two or more
exit points exist (from one segment of the network to another), configuring the floating default route can
cause a black hole to be formed.
Command Purpose
Step 1 Router(config)# interface type number Configure an interface type and enter interface
configuration mode
Step 2 Router(config-if)# ip authentication mode eigrp Enables MD5 authentication in EIGRP packets.
autonomous-system md5
Command Purpose
Step 3 Router(config-if)# ip authentication key-chain Enables authentication of EIGRP packets.
eigrp autonomous-system key-chain
Step 4 Router(config-if)# exit Exits to global configuration mode.
Router(config)#
Step 5 Router(config)# key chain name-of-chain Identifies a key chain. (Match the name configured in
Step 1.)
Step 6 Router(config-keychain)# key number In keychain configuration mode, identifies the key
number.
Step 7 Router(config-keychain-key)# key-string text In keychain key configuration mode, identifies the key
string.
Step 8 Router(config-keychain-key)# accept-lifetime Optionally specifies the time period during which the key
start-time {infinite | end-time | duration can be received.
seconds}
Step 9 Router(config-keychain-key)# send-lifetime Optionally specifies the time period during which the key
start-time {infinite | end-time | duration can be sent.
seconds}
Each key has its own key identifier (specified with the key number key chain configuration command),
which is stored locally. The combination of the key identifier and the interface associated with the
message uniquely identifies the authentication algorithm and MD5 authentication key in use.
You can configure multiple keys with lifetimes. Only one authentication packet is sent, regardless of
how many valid keys exist. The software examines the key numbers in order from lowest to highest, and
uses the first valid key it encounters. Note that the router needs to know the time. Refer to the Network
Time Protocol (NTP) and calendar commands in the “Performing Basic System Management” chapter
of the Cisco IOS Configuration Fundamentals Configuration Guide.
For an example of route authentication, see the section “Route Authentication Example” at the end of
this chapter.
Adjusting the Interval Between Hello Packets and the Hold Time
You can adjust the interval between hello packets and the hold time.
Routing devices periodically send hello packets to each other to dynamically learn of other routers on
their directly attached networks. This information is used to discover neighbors and to learn when
neighbors become unreachable or inoperative.
By default, hello packets are sent every 5 seconds. The exception is on low-speed, nonbroadcast
multiaccess (NBMA) media, where the default hello interval is 60 seconds. Low speed is considered to
be a rate of T1 or slower, as specified with the bandwidth interface configuration command. The default
hello interval remains 5 seconds for high-speed NBMA networks. Note that for the purposes of EIGRP,
Frame Relay and Switched Multimegabit Data Service (SMDS) networks may or may not be considered
to be NBMA. These networks are considered NBMA if the interface has not been configured to use
physical multicasting; otherwise they are not considered NBMA.
You can configure the hold time on a specified interface for a particular EIGRP routing process
designated by the autonomous system number. The hold time is advertised in hello packets and indicates
to neighbors the length of time they should consider the sender valid. The default hold time is three times
the hello interval, or 15 seconds. For slow-speed NBMA networks, the default hold time is 180 seconds.
To change the interval between hello packets, use the following command in interface configuration
mode:
Command Purpose
Router(config-if)# ip hello-interval eigrp Configures the hello interval for an EIGRP routing
autonomous-system-number seconds process.
On very congested and large networks, the default hold time might not be sufficient time for all routers
to receive hello packets from their neighbors. In this case, you may want to increase the hold time.
To change the hold time, use the following command in interface configuration mode:
Command Purpose
Router(config-if)# ip hold-time eigrp Configures the hold time for an EIGRP routing process.
autonomous-system-number seconds
Note Do not adjust the hold time without advising your technical support personnel.
Command Purpose
Router(config-if)# no ip split-horizon eigrp Disables split horizon.
autonomous-system-number
Internet
10.1.1.0/24
Corporate
network
Distribution Remote
router router
(hub) (spoke)
46094
The stub routing feature by itself does not prevent routes from being advertised to the remote router. In
the example in Figure 48, the remote router can access the corporate network and the Internet through
the distribution router only. Having a full route table on the remote router, in this example, would serve
no functional purpose because the path to the corporate network and the Internet would always be
through the distribution router. The larger route table would only reduce the amount of memory required
by the remote router. Bandwidth and memory can be conserved by summarizing and filtering routes in
the distribution router. The remote router need not receive routes that have been learned from other
networks because the remote router must send all nonlocal traffic, regardless of destination, to the
distribution router. If a true stub network is desired, the distribution router should be configured to send
only a default route to the remote router. The EIGRP Stub Routing feature does not automatically enable
summarization on the distribution router. In most cases, the network administrator will need to configure
summarization on the distribution routers.
Note When configuring the distribution router to send only a default route to the remote router, you must
use the ip classless command on the remote router. By default, the ip classless command is enabled
in all Cisco IOS images that support the EIGRP Stub Routing feature.
Without the stub feature, even after the routes that are sent from the distribution router to the remote
router have been filtered or summarized, a problem might occur. If a route is lost somewhere in the
corporate network, EIGRP could send a query to the distribution router, which in turn will send a query
to the remote router even if routes are being summarized. If there is a problem communicating over the
WAN link between the distribution router and the remote router, an EIGRP stuck in active (SIA)
condition could occur and cause instability elsewhere in the network. The EIGRP Stub Routing feature
allows a network administrator to prevent queries from being sent to the remote router.
Distribution
router 1
10.1.1.0/24
(hub)
Corporate
network
Remote
router
(spoke)
Distribution
46096
router 2
(hub)
Figure 49 shows a simple dual-homed remote with one remote router and two distribution routers. Both
distribution routers maintain routes to the corporate network and stub network 10.1.1.0/24.
Dual-homed routing can introduce instability into an EIGRP network. In Figure 50, distribution router
1 is directly connected to network 10.3.1.0/24. If summarization or filtering is applied on distribution
router 1, the router will advertise network 10.3.1.0/24 to all of its directly connected EIGRP neighbors
(distribution router 2 and the remote router).
Figure 50 Dual-Homed Remote Topology With Distribution Router 1 Connected to Two Networks
10.3.1.0/24
Distribution
router 1
10.2.1.0/24
10.1.1.0/24
(hub)
Corporate
network
Remote
router
(spoke)
Distribution
46095
router 2
(hub)
Figure 50 shows a simple dual-homed remote router where distribution router 1 is connected to both
network 10.3.1.0/24 and network 10.2.1.0/24.
If the 10.2.1.0/24 link between distribution router 1 and distribution router 2 has failed, the lowest cost
path to network 10.3.1.0/24 from distribution router 2 is through the remote router (see Figure 51). This
route is not desirable because the traffic that was previously traveling across the corporate network
10.2.1.0/24 would now be sent across a much lower bandwidth connection. The over utilization of the
lower bandwidth WAN connection can cause a number of problems that might affect the entire corporate
network. The use of the lower bandwidth route that passes through the remote router might cause WAN
EIGRP distribution routers to be dropped. Serial lines on distribution and remote routers could also be
dropped, and EIGRP SIA errors on the distribution and core routers could occur.
X
Distribution
10.2.1.0/24 router 1
10.1.1.0/24
(hub)
Corporate
network
Remote
router
(spoke)
Distribution
46093
router 2
(hub)
It is not desirable for traffic from distribution router 2 to travel through any remote router in order to
reach network 10.3.1.0/24. If the links are sized to handle the load, it would be acceptable to use one of
the backup routes. However, most networks of this type have remote routers located at remote offices
with relatively slow links. This problem can be prevented if proper summarization is configured on the
distribution router and remote router.
It is typically undesirable for traffic from a distribution router to use a remote router as a transit path. A
typical connection from a distribution router to a remote router would have much less bandwidth than a
connection at the network core. Attempting to use a remote router with a limited bandwidth connection
as a transit path would generally produce excessive congestion to the remote router. The EIGRP Stub
Routing feature can prevent this problem by preventing the remote router from advertising core routes
back to distribution routers. Routes learned by the remote router from distribution router 1 will not be
advertised to distribution router 2. Since the remote router will not advertise core routes to distribution
router 2, the distribution router will not use the remote router as a transit for traffic destined for the
network core.
The EIGRP Stub Routing feature can help to provide greater network stability. In the event of network
instability, this feature prevents EIGRP queries from being sent over limited bandwidth links to
nontransit routers. Instead, distribution routers to which the stub router is connected answer the query
on behalf of the stub router. This feature greatly reduces the chance of further network instability due to
congested or problematic WAN links. The EIGRP Stub Routing feature also simplifies the configuration
and maintenance of hub-and-spoke networks. When stub routing is enabled in dual-homed remote
configurations, it is no longer necessary to configure filtering on remote routers to prevent those remote
routers from appearing as transit paths to the hub routers.
Caution EIGRP Stub Routing should only be used on stub routers. A stub router is defined as a router
connected to the network core or distribution layer through which core transit traffic should not flow.
A stub router should not have any EIGRP neighbors other than distribution routers. Ignoring this
restriction will cause undesirable behavior.
Note Multi-access interfaces, such as ATM, Ethernet, Frame Relay, ISDN PRI, and X.25, are supported by
the EIGRP Stub Routing feature only when all routers on that interface, except the hub, are
configured as stub routers.
Command Purpose
Step 1 router(config)# router eigrp 1 Configures a remote or distribution router to run
an EIGRP process.
Step 2 router(config-router)# network network-number Specifies the network address of the EIGRP
distribution router.
Step 3 router(config-router)# eigrp stub [receive-only | Configures a remote router as an EIGRP stub
connected | static | summary] router.
Command Purpose
Router# clear ip eigrp neighbors [ip-address | Deletes neighbors from the neighbor table.
interface-type]
To display various routing statistics, use the following commands in EXEC mode, as needed:
Command Purpose
Router# show ip eigrp interfaces [interface-type | Displays information about interfaces configured for
interface-number] [as-number] EIGRP.
Router# show ip eigrp neighbors [interface-type | as-number Displays the EIGRP discovered neighbors.
| static]
Router# show ip eigrp topology [as-number | [[ip-address] Displays the EIGRP topology table for a given
mask]] process.
Router# show ip eigrp traffic [as-number] Displays the number of packets sent and received for
all or a specified EIGRP process.
To enable EIGRP Stub Routing packet debugging, use the following command in privileged EXEC
mode:
Command Purpose
Router# debug eigrp packet stub Displays debug information about the stub status
of peer routers.
Note You should not use the ip summary-address eigrp summarization command to generate
the default route (0.0.0.0) from an interface. This causes the creation of an EIGRP summary
default route to the null 0 interface with an administrative distance of 5. The low
administrative distance of this default route can cause this route to displace default routes
learned from other neighbors from the routing table. If the default route learned from the
neighbors is displaced by the summary default route, or if the summary route is the only
default route present, all traffic destined for the default route will not leave the router,
instead, this traffic will be sent to the null 0 interface where it is dropped.
The recommended way to send only the default route out a given interface is to use a
distribute-list command. You can configure this command to filter all outbound route
advertisements sent out the interface with the exception of the default (0.0.0.0).
E1
Router A
E1
Router B
S5836
Router A Configuration
interface ethernet 1
ip authentication mode eigrp 1 md5
ip authentication key-chain eigrp 1 holly
key chain holly
key 1
key-string 0987654321
accept-lifetime 04:00:00 Dec 4 1996 infinite
send-lifetime 04:00:00 Dec 4 1996 04:48:00 Dec 4 1996
exit
key 2
key-string 1234567890
accept-lifetime 04:00:00 Dec 4 1996 infinite
send-lifetime 04:45:00 Dec 4 1996 infinite
Router B Configuration
interface ethernet 1
ip authentication mode eigrp 1 md5
ip authentication key-chain eigrp 1 mikel
key chain mikel
key 1
key-string 0987654321
accept-lifetime 04:00:00 Dec 4 1996 infinite
send-lifetime 04:00:00 Dec 4 1996 infinite
exit
key 2
key-string 1234567890
accept-lifetime 04:00:00 Dec 4 1996 infinite
send-lifetime 04:45:00 Dec 4 1996 infinite
Router A will accept and attempt to verify the MD5 digest of any EIGRP packet with a key equal to 1.
It will also accept a packet with a key equal to 2. All other MD5 packets will be dropped. Router A will
send all EIGRP packets with key 2.
Router B will accept key 1 or key 2, and will send key 1. In this scenario, MD5 will authenticate.
In the following example, the eigrp stub command is used to configure the router as a stub that
advertises connected and summary routes:
router eigrp 1
network 10.0.0.0
eigrp stub
In the following example, the eigrp stub connected static command is used to configure the router as
a stub that advertises connected and static routes (sending summary routes will not be permitted):
router eigrp 1
network 10.0.0.0
eigrp stub connected static
In the following example, the eigrp stub receive-only command is used to configure the router as a stub,
and connected, summary, or static routes will not be sent:
router eigrp 1
network 10.0.0.0 eigrp
stub receive-only
This chapter describes how to configure Integrated Intermediate System-to-Intermediate System (IS-IS).
For a complete description of the integrated IS-IS commands listed in this chapter, refer to the
“Integrated IS-IS Commands” chapter of the Cisco IOS IP Command Reference, Volume 2 of 3: Routing
Protocols publication. To locate documentation of other commands that appear in this chapter, use the
command reference master index, or search online.
IS-IS is an International Organization for Standardization (ISO) dynamic routing specification. IS-IS is
described in ISO 10589. The Cisco implementation of IS-IS allows you to configure IS-IS as an IP
routing protocol.
To identify the hardware platform or software image information associated with a feature, use the
Feature Navigator on Cisco.com to search for information about the feature or refer to the software
release notes for a specific release. For more information, see the “Identifying Supported Platforms”
section in the “Using Cisco IOS Software” chapter in this book.
Small IS-IS networks are built as a single area that includes all the routers in the network. As the network
grows larger, it is usually reorganized into a backbone area made up of the connected set of all Level 2
routers from all areas, which is in turn connected to local areas. Within a local area, routers know how
to reach all system IDs. Between areas, routers know how to reach the backbone, and the backbone
routers know how to reach other areas.
Routers establish Level 1 adjacencies to perform routing within a local area (intra-area routing). Routers
establish Level 2 adjacencies to perform routing between Level 1 areas (interarea routing).
Some networks use legacy equipment that supports only Level 1 routing. These devices are typically
organized into many small areas that cannot be aggregated due to performance limitations. Cisco routers
are used to interconnect each area to the Level 2 backbone.
A single Cisco router can participate in routing in up to 29 areas, and can perform Level 2 routing in the
backbone. In general, each routing process corresponds to an area. By default, the first instance of the
routing process configured performs both Level 1 and Level 2 routing. You can configure additional
router instances, which are automatically treated as Level 1 areas. You must configure the parameters
for each instance of the IS-IS routing process individually.
For IS-IS multiarea routing, you can configure only one process to perform Level 2 routing, although
you can define up to 29 Level 1 areas for each Cisco router. If Level 2 routing is configured on any
process, all additional processes are automatically configured as Level 1. You can configure this process
to perform Level 1 routing at the same time. If Level 2 routing is not desired for a router instance, remove
the Level 2 capability using the is-type router configuration command. Use the is-type router
configuration command also to configure a different router instance as a Level 2 router.
Network entity titles (NETs) define the area addresses for the IS-IS area and the system ID of the router.
Refer to the “Configuring ISO CLNS” chapter in the Cisco IOS Apollo Domain, Banyan VINES, ISO
CLNS, and XNS Configuration Guide for a more detailed discussion of NETs.
To enable IS-IS and specify the area for each instance of the IS-IS routing process, use the following
commands in global configuration mode:
Command Purpose
Step 1 Router(config)# router isis [area tag] Enables IS-IS routing for the specified routing process, and places
the router in router configuration mode.
Use the area tag arguments to identify the area to which this IS-IS
router instance is assigned. A value for tag is required if you are
configuring multiple IS-IS areas.
The first IS-IS instance configured is Level 1-2 by default. Later
instances are automatically Level 1. You can change the level of
routing to be performed by a particular routing process using the
is-type router configuration command.
Step 2 Router(config)# net network-entity-title Configures NETs for the routing process. Specify a NET for each
routing process if you are configuring multiarea IS-IS. You can
specify a name for a NET and for an address.
See the “IS-IS Configuration Examples” section at the end of this chapter for examples of configuring
IS-IS as an IP routing protocol.
Command Purpose
Step 1 Router(config)# interface interface-type Enters interface configuration mode.
interface-number
Step 2 Router(config-if)# ip router isis [area tag] Configures an IS-IS routing process for ISO Connectionless
Network Service (CLNS) on an interface and attaches an area
designator to the routing process.
Step 3 Router(config-if)# ip address ip-address-mask Defines the IP address for the interface.
An IP address is required on all interfaces in an area enabled
for IS-IS if any one interface is configured for IS-IS routing.
See the “IS-IS Configuration Examples” section at the end of this chapter for examples of configuring
IS-IS as an IP routing protocol.
Command Purpose
Router(config-if)# isis metric default-metric Configures the metric (or cost) for the specified interface.
[level-1 | level-2]
Command Purpose
Router(config-if)# isis hello-interval {seconds | Specifies the length of time (in seconds) between hello packets
minimal} [level-1 | level-2] the Cisco IOS software sends on the specified interface.
The hello interval can be configured independently for Level 1 and Level 2, except on serial
point-to-point interfaces. (Because only a single type of hello packet is sent on serial links, it is
independent of Level 1 or Level 2.) Specify an optional level for X.25, Switched Multimegabit Data
Service (SMDS), and Frame Relay multiaccess networks. X25, SMDS, ATM, and Frame Relay networks
should be configured with point-to-point subinterfaces.
Command Purpose
Router(config-if)# isis csnp-interval seconds Configures the IS-IS CSNP interval for the specified interface.
{level-1 | level-2}
This feature does not apply to serial point-to-point interfaces. It applies to WAN connections if the WAN
is viewed as a multiaccess meshed network.
Command Purpose
Router(config-if)# isis retransmit-interval Configures the number of seconds between retransmission of IS-IS
seconds LSPs for point-to-point links.
The value you specify should be an integer greater than the expected round-trip delay between any two
routers on the attached network. The setting of this parameter should be conservative, or needless
retransmission will result. The value should be larger for serial lines.
Command Purpose
Router(config-if)# isis lsp-interval Configures the delay between successive IS-IS LSP transmissions.
milliseconds
Command Purpose
Router(config-if)# isis retransmit-throttle-interval Configures the IS-IS LSP retransmission throttle interval.
milliseconds
Command Purpose
Router(config-if)# isis hello-multiplier multiplier Sets the hello multiplier.
[level-1 | level-2]
Command Purpose
Router(config-if)# isis priority number-value [level-1 Configures the priority to use for designated router
| level-2] election.
Command Purpose
Router(config-if)# isis circuit-type [level-1 | Configures the type of adjacency desired for neighbors on
level-1-2 | level-2-only] the specified interface (the interface circuit type).
Command Purpose
Router(config-if)# isis password password [level-1 | Configures the authentication password for a specified
level-2] interface.
Command Purpose
Router(config-router)# default-information originate Forces a default route into the IS-IS routing domain.
[route-map map-name]
See also the discussion of redistribution of routes in the “Configuring IP Routing Protocol-Independent
Features” chapter of this document.
Command Purpose
Router(config-router)# is-type {level-1 | level-1-2 | Configures the system type (area or backbone router).
level-2-only}
Command Purpose
Router(config-router)# area-password password Configures the area authentication password.
Router(config-router)# domain-password password Configures the routing domain authentication password.
Command Purpose
Router(config-router)# summary-address Creates a summary of addresses for a given level.
address mask {level-1 | level-1-2 | level-2}
Unless you specify the on-startup keyword, this command sets the overload bit immediately and it
remains set until the no set-overload-bit command is specified. If you specify the on-startup keyword,
you must indicate whether it is set for a specified number of seconds or until BGP has converged. If BGP
does not signal IS-IS that it has converged, IS-IS will turn off the overload bit after 10 minutes.
In addition to setting the overload bit, you might also want to suppress certain types of IP prefix
advertisements from LSPs. For example, allowing IP prefix propagation between Level1 and Level 2
effectively makes a node a transit node for IP traffic, which may be undesirable. The suppress keyword
used with the interlevel or external keyword (or both) accomplishes that suppression while the overload
bit is set.
To set the overload bit, use the following command in router configuration mode:
Command Purpose
Router(config-router)# set-overload-bit Sets the overload bit.
[on-startup {seconds | wait-for-bgp}]
[suppress {[interlevel] [external]}]
Command Purpose
Router (config)# is-type {level-1 | level-1-2 | Configures the routing level for an instance of the IS-IS routing
level-2-only} process.
To change the LSP refresh interval or lifetime, use the appropriate command in router configuration
mode:
Command Purpose
Router (config-router)# lsp-refresh-interval Sets the LSP refresh interval.
seconds
Router (config-router)# max-lsp-lifetime Sets the maximum time that link-state packets (LSPs) can remain in
seconds a router’s database without being refreshed.
How Throttling of IS-IS LSP Generation, SPF Calculation, and PRC Works
IS-IS throttling of LSP generation, SPF calculations, and PRC occurs by default. You can customize the
throttling of these events with the lsp-gen-interval, spf-interval, and prc-interval commands,
respectively.
The arguments in each command behave similarly. For each command:
• The first argument indicates the maximum number of seconds between LSP generations or
calculations.
• The second argument indicates the initial wait time (in milliseconds) before running the first LSP
generation or calculation.
• The third argument indicates the minimum amount of time to wait (in milliseconds) between the first
and second LSP generation or calculation. (In addition to this wait time, there might be some other
system overhead between LSP generations or calculations.)
Each subsequent wait interval is twice as long as the previous one until the wait interval reaches the
maximum wait time specified, upon which the wait interval remains constant. After the network calms
down and there are no triggers for 2 times the maximum interval, fast behavior is restored (the initial
wait time).
Other commands are available to control the delay between successive LSPs, the retransmission of the
same LSA, and the retransmission of LSPs on a point-to-point interface.
Perform this task to customize throttling of LSP generation, SPF calculation, PRC, or any combination
of the three, beginning in router configuration mode:
Command Purpose
Router(config-router)# lsp-gen-interval [level-1 | Sets IS-IS LSP generation throttling timers.
level-2] lsp-max-wait [lsp-initial-wait
lsp-second-wait] • The default lsp-max-wait interval is 5 seconds.
• The default lsp-initial-wait interval is 50 milliseconds.
• The default lsp-second-wait interval is 5000
milliseconds.
Router(config-router)# spf-interval [level-1 | Sets IS-IS SPF throttling timers.
level-2] spf-max-wait [spf-initial-wait
spf-second-wait] • The default spf-max-wait interval is 10 seconds.
• The default spf-initial-wait interval is
5500 milliseconds.
• The default spf-second-wait interval is 5500
milliseconds.
Router(config-router)# prc-interval prc-max-wait Sets IS-IS partial route computation throttling timers.
[prc-initial-wait prc-second-wait]
• The default prc-max-wait interval is 10 seconds.
• The default prc-initial-wait interval is 2000
milliseconds.
• The default prc-second-wait interval is 5000
milliseconds.
Command Purpose
Router# isis display delimiter [return count | Specifies the delimiter to be used to separate displays of
character count] information about individual IS-IS areas.
For example, the following command causes information about individual areas to be separated by
14 dashes (-) in the display:
isis display delimiter - 14
The output for a configuration with two Level 1 areas and one Level 2 area configured is as follows:
dtp-5# show clns neighbors
--------------
Area L2BB:
System Id Interface SNPA State Holdtime Type Protocol
0000.0000.0009 Tu529 172.21.39.9 Up 25 L1L2 IS-IS
--------------
Area A3253-01:
System Id Interface SNPA State Holdtime Type Protocol
0000.0000.0053 Et1 0060.3e58.ccdb Up 22 L1 IS-IS
0000.0000.0003 Et1 0000.0c03.6944 Up 20 L1 IS-IS
--------------
Area A3253-02:
System Id Interface SNPA State Holdtime Type Protocol
0000.0000.0002 Et2 0000.0c03.6bc5 Up 27 L1 IS-IS
0000.0000.0053 Et2 0060.3e58.ccde Up 24 L1 IS-IS
Monitoring IS-IS
To monitor the IS-IS tables and databases, use the following commands in EXEC mode, as needed:
Command Purpose
Router# show isis database [level-1] Displays the IS-IS link-state database.
[level-2] [l1] [l2] [detail] [lspid]
Router# show isis area-tag routes Displays the IS-IS Level 1 routing table.
Router# show isis spf-log Displays how often and why the router has run a full SPF calculation.
Router# show isis area-tag topology Displays a list of all connected routers in all areas.
Router A Configuration
router isis
net 49.0001.0000.0000.000a.00
interface ethernet 0
ip router isis
interface serial 0
ip router isis
Router B Configuration
router isis
net 49.0001.0000.0000.000b.00
interface ethernet 0
ip router isis
interface ethernet 1
ip router isis
interface serial 0
ip router isis
Router C Configuration
router isis
net 49.0001.0000.0000.000c.00
interface ethernet 1
ip router isis
interface ethernet 2
ip router isis
E0 E0
S0
Router A Router B
E1
Router C
32050
E2
.
.
.
interface Tunnel529
ip address 10.0.0.5 255.255.255.0
ip router isis BB
clns router isis BB
interface Ethernet1
ip address 10.1.1.5 255.255.255.0
ip router isis A3253-01
clns router isis A3253-01
!
interface Ethernet2
ip address 10.2.2.5 255.255.255.0
ip router isis A3253-02
clns router isis A3253-02
.
.
.
Figure 54 Multiarea IS-IS Configuration with Three Level 1 Areas and One Level 2 Area
Interface
Tunnel529
Level 1-2
Area BB
Level 1 Level 1
Interface Interface
Ethernet 1 Ethernet 2
This chapter describes how to configure Border Gateway Protocol (BGP). For a complete description of
the BGP commands in this chapter, refer to the “BGP Commands” chapter of the Cisco IOS IP Command
Reference, Volume 2 of 3: Routing Protocols. To locate documentation of other commands that appear
in this chapter, use the command reference master index, or search online. For multiprotocol BGP
configuration information and examples, refer to the “Configuring Multiprotocol BGP Extensions for IP
Multicast” chapter of the Cisco IOS IP Configuration Guide. For multiprotocol BGP command
descriptions, refer to the “Multiprotocol BGP Extensions for IP Multicast Commands” chapter of the
Cisco IOS IP Command Reference.
BGP, as defined in RFCs 1163 and 1267, is an Exterior Gateway Protocol (EGP). It allows you to set up
an interdomain routing system that automatically guarantees the loop-free exchange of routing
information between autonomous systems.
For protocol-independent features, see the chapter “Configuring IP Routing Protocol-Independent
Features” in this book.
To identify the hardware platform or software image information associated with a feature, use the
Feature Navigator on Cisco.com to search for information about the feature or refer to the software
release notes for a specific release. For more information, see the “Identifying Supported Platforms”
section in the “Using Cisco IOS Software” chapter in this book.
BGP Version 4 supports classless interdomain routing (CIDR), which lets you reduce the size of your
routing tables by creating aggregate routes, resulting in supernets. CIDR eliminates the concept of
network classes within BGP and supports the advertising of IP prefixes. CIDR routes can be carried by
Open Shortest Path First (OSPF), Enhanced IGRP (EIGRP), and Intermediate System-to-Intermediate
System (ISIS)-IP, and Routing Information Protocol (RIP).
See the “BGP Route Map Examples” section at the end of this chapter for examples of how to use route
maps to redistribute BGP Version 4 routes.
Note The most recent Internet Engineering Task Force (IETF) decision regarding BGP MED
assigns a value of infinity to the missing MED, making the route lacking the MED
variable the least preferred. The default behavior of BGP routers running Cisco IOS
software is to treat routes without the MED attribute as having a MED of 0, making the
route lacking the MED variable the most preferred. To configure the router to conform
to the IETF standard, use the bgp bestpath med missing-as-worst router configuration
command.
9. Prefer the external BGP (eBGP) path over the iBGP path.
All confederation paths are considered internal paths.
10. Prefer the route that can be reached through the closest IGP neighbor (the lowest IGP metric).
The router will prefer the shortest internal path within the autonomous system to reach the
destination (the shortest path to the BGP next hop).
11. If the following conditions are all true, insert the route for this path into the IP routing table:
– Both the best route and this route are external.
– Both the best route and this route are from the same neighboring autonomous system.
– The maximum-paths router configuration command is enabled.
Note eBGP load sharing can occur at this point, which means that multiple paths can be
installed in the forwarding table.
12. If multipath is not enabled, prefer the route with the lowest IP address value for the BGP router ID.
The router ID is usually the highest IP address on the router or the loopback (virtual) address, but
might be implementation-specific.
Command Purpose
Step 1 Router(config)# router bgp as-number Enables a BGP routing process, which places the
router in router configuration mode.
Step 2 Router(config-router)# network network-number [mask Flags a network as local to this autonomous system
network-mask] [route-map route-map-name] and enters it to the BGP table.
Note For exterior protocols, a reference to an IP network from the network router configuration command
controls only which networks are advertised. This behavior is in contrast to IGP, such as IGRP, which
also use the network command to determine where to send updates.
Note The network command is used to inject IGP routes into the BGP table. The network-mask portion of
the command allows supernetting and subnetting. The resources of the router, such as configured
NVRAM or RAM, determine the upper limit of the number of network commands you can use.
Alternatively, you could use the redistribute router configuration command to achieve the same
result.
Command Purpose
Router(config-router)# neighbor {ip-address | peer-group-name} Specifies a BGP neighbor.
remote-as as-number
See the “BGP Neighbor Configuration Examples” section at the end of this chapter for an example of
configuring BGP neighbors.
Once you have defined two routers to be BGP neighbors, they will form a BGP connection and exchange
routing information. If you subsequently change a BGP filter, weight, distance, version, or timer, or
make a similar configuration change, you must reset BGP connections for the configuration change to
take effect.
A soft reset updates the routing table for inbound and outbound routing updates. Cisco IOS software
Release 12.1 and later releases support soft reset without any prior configuration. This soft reset allows
the dynamic exchange of route refresh requests and routing information between BGP routers, and the
subsequent re-advertisement of the respective outbound routing table. There are two types of soft reset:
• When soft reset is used to generate inbound updates from a neighbor, it is called dynamic inbound
soft reset.
• When soft reset is used to send a new set of updates to a neighbor, it is called outbound soft reset.
To use soft reset without preconfiguration, both BGP peers must support the soft route refresh capability,
which is advertised in the OPEN message sent when the peers establish a TCP session. Routers running
Cisco IOS software releases prior to Release 12.1 do not support the route refresh capability and must
clear the BGP session using the neighbor soft-reconfiguration router configuration command,
described in “Configuring BGP Soft Reset Using Stored Routing Policy Information.” Clearing the BGP
session in this way will have a negative impact upon network operations and should only be used as a
last resort.
Command Purpose
Router# show ip bgp neighbors Displays whether a neighbor supports the route refresh capability.
ip-address
If the specified router supports the route refresh capability, the following
message is displayed: Received route refresh capability from peer.
If all the BGP routers support the route refresh capability, you can use the dynamic soft reset method for
resetting the inbound routing table. To perform a dynamic soft reset of the inbound routing table, use the
following command in EXEC mode:
Command Purpose
Router# clear ip bgp {* | Performs a dynamic soft reset on the connection specified in the command.
neighbor-address | peer-group-name}
soft in The neighbor-address argument specifies the connection to be reset. Use the
* keyword to specify that all connections be reset.
See the “BGP Soft Reset Examples” section at the end of this chapter for examples of both types of BGP
soft resets.
Command Purpose
Router# clear ip bgp {* | Performs a soft reset on the connection specified in the command.
neighbor-address | peer-group-name}
soft out The neighbor-address argument specifies the connection to be reset. Use the
* keyword to specify that all connections be reset.
Command Purpose
Step 1 Router(config-router)# neighbor {ip-address | Resets the BGP session and initiates storage of
peer-group-name} soft-reconfiguration inbound inbound routing table updates from the specified
neighbor or peer group. From that point forward, a
copy of the BGP routing table for the specified
neighbor or peer group is maintained on the router.
The Cisco implementation of BGP supports BGP
Versions 2, 3, and 4. If the neighbor does not accept
default Version 4, dynamic version negotiation is
implemented to negotiate down to Version 2.
If you specify a BGP peer group by using the
peer-group-name argument, all members of the peer
group will inherit the characteristic configured with
this command.
Step 2 Router# clear ip bgp {* | neighbor-address | Performs a soft reset on the connection specified in
peer-group–name} soft in the command, using the stored routing table
information for that connection.
See the “BGP Path Filtering by Neighbor Examples” section at the end of this chapter for an example of
BGP path filtering by neighbor.
Step 1 Enter the show ip bgp EXEC command to display entries in the BGP routing table. The following output
shows that the peer supports the route refresh capability:
Router# show ip bgp
BGP table version is 5, local router ID is 10.0.33.34
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal
Origin codes: i - IGP, e - EGP, ? - incomplete
Step 2 Enter the show ip bgp neighbors EXEC command to display information about the BGP and TCP
connections to neighbors:
Router# show ip bgp neighbors 171.69.232.178
BGP neighbor is 172.16.232.178, remote AS 35, external link
BGP version 4, remote router ID 192.168.3.3
BGP state = Established, up for 1w1d
Last read 00:00:53, hold time is 180, keepalive interval is 60 seconds
Neighbor capabilities:
Route refresh: advertised and received
Address family IPv4 Unicast: advertised and received
Address family IPv4 Multicast: advertised and received
Received 12519 messages, 0 notifications, 0 in queue
Sent 12523 messages, 0 notifications, 0 in queue
Route refresh request: received 0, sent 0
Minimum time between advertisement runs is 30 seconds
Command Purpose
Router(config-router)# no synchronization Disables synchronization between BGP and an IGP.
See the “BGP Path Filtering by Neighbor Examples” section at the end of this chapter for an example of
BGP synchronization.
In general, you will not want to redistribute most BGP routes into your IGP. A common design is to
redistribute one or two routes and to make them exterior routes in IGRP, or have your BGP speaker
generate a default route for your autonomous system. When redistributing from BGP into IGP, only the
routes learned using eBGP get redistributed.
In most circumstances, you also will not want to redistribute your IGP into BGP. List the networks in
your autonomous system with network router configuration commands and your networks will be
advertised. Networks that are listed this way are referred to as local networks and have a BGP origin
attribute of “IGP.” They must appear in the main IP routing table and can have any source; for example,
they can be directly connected or learned via an IGP. The BGP routing process periodically scans the
main IP routing table to detect the presence or absence of local networks, updating the BGP routing table
as appropriate.
If you do perform redistribution into BGP, you must be very careful about the routes that can be in your
IGP, especially if the routes were redistributed from BGP into the IGP elsewhere. Redistributing routes
from BGP into the IGP elsewhere creates a situation where BGP is potentially injecting information into
the IGP and then sending such information back into BGP, and vice versa. Incorrectly redistributing
routes into BGP can result in the loss of critical information, such as the autonomous system path, that
is required for BGP to function properly.
Networks that are redistributed into BGP from the EGP protocol will be given the BGP origin attribute
“EGP.” Other networks that are redistributed into BGP will have the BGP origin attribute of
“incomplete.” The origin attribute in the Cisco implementation is only used in the path selection process.
Command Purpose
Router(config-router)# bgp bestpath as-path ignore Configures the router to ignore autonomous system path
length in selecting a route.
Note Distribute-list filters are applied to network numbers and not autonomous system paths.
To filter BGP routing updates, use the following command in router configuration mode:
Command Purpose
Router(config-router)# neighbor {ip-address | Filters BGP routing updates to and from neighbors as
peer-group-name} distribute-list {access-list-number specified in an access list.
| access-list-name} {in | out}
Note The neighbor prefix-list router configuration
command can be used as an alternative to the
neighbor distribute-list router configuration
command, but you cannot use both commands to
configure the same BGP peer in any specific
direction. These two commands are mutually
exclusive, and only one command (neighbor
prefix-list or neighbor distribute-list) an be applied
for each inbound or outbound direction.
Note Although the neighbor prefix-list router configuration command can be used as an alternative to the
neighbor distribute-list command, do not use attempt to apply both the neighbor prefix-list and
neighbor distribute-list command filtering to the same neighbor in any given direction. These two
commands are mutually exclusive, and only one command (neighbor prefix-list or neighbor
distribute-list) can be applied for each inbound or outbound direction.
• More user-friendly command-line interface (CLI). The command-line interface for using access lists
to filter BGP updates is difficult to understand and use because it uses the packet filtering format.
• Greater flexibility
Before using a prefix list in a command, you must set up a prefix list, and you may want to assign
sequence numbers to the entries in the prefix list.
Command Purpose
Router(config-router)# ip prefix-list list-name [seq Creates a prefix list with the name specified for the list-name
sequence-value] {deny | permit network/length} [ge argument.
ge-value] [le le-value]
Note To create a prefix list you must enter at least one permit or deny clause.
To remove a prefix list and all of its entries, use the following command in router configuration mode:
Command Purpose
Router(config-router)# no ip prefix-list list-name Removes a prefix list with the name specified for list-name.
[seq sequence-value] {deny | permit network/length}
[ge ge-value] [le le-value]
Command Purpose
Router(config-router)# ip prefix-list list-name [seq Creates an entry in a prefix list and assigns a sequence number
sequence-value] {deny | permit network/length} [ge to the entry.
ge-value] [le le-value]
The optional ge and le keywords can be used to specify the range of the prefix length to be matched for
prefixes that are more specific than the network/length argument. An exact match is assumed when
neither ge nor le is specified. The range is assumed to be from ge-value to 32 if only the ge attribute is
specified, and from len to le-value if only the le attribute is specified.
A specified ge-value or le-value must satisfy the following condition:
len < ge-value <= le-value <= 32
For example, to deny all prefixes matching /24 in 128.0.0.0/8, use the following command:
ip prefix-list abc deny 128.0.0.0/8 ge 24 le 24
Note You can specify sequence values for prefix list entries in any increments you want (the automatically
generated numbers are incremented in units of 5). If you specify the sequence values in increments
of 1, you cannot insert additional entries into the prefix list. If you choose very large increments, you
could run out of sequence values.
Command Purpose
Router(config-router)# no ip prefix-list Disables the automatic generation of the sequence numbers
sequence-number for prefix list entries.
To re-enable automatic generation of the sequence numbers of prefix list entries, use the ip prefix-list
sequence number command in router configuration mode:
Command Purpose
Router(config-router)# ip prefix-list Enables the automatic generation of the sequence numbers of
sequence-number prefix list entries. The default is enable.
If you disable automatic generation of sequence numbers in a prefix list, you must specify the sequence
number for each entry using the sequence-value argument of the ip prefix-list global configuration
command.
Regardless of whether the default sequence numbers are used in configuring a prefix list, a sequence
number need not be specified when deconfiguring an entry. show commands include the sequence
numbers in their output.
Command Purpose
Router(config-router)# no ip prefix-list list-name Deletes a prefix list.
You can delete entries from a prefix list individually. To delete an entry in a prefix list, use the following
command in router configuration mode:
Command Purpose
Router(config-router)# no ip prefix-list seq Deletes an entry in a prefix list.
sequence-value
Note The sequence number of an entry need not be specified when you delete the entry.
Command Purpose
Router# show ip prefix-list [detail | summary] Displays information about all prefix lists.
Router# show ip prefix-list [detail | summary] Displays a table showing the entries in a prefix list.
prefix-list-name
Router# show ip prefix-list prefix-list-name Displays the policy associated with the node.
[network/length]
Router# show ip prefix-list prefix-list-name [seq Displays the prefix list entry with a given sequence number.
sequence-number]
Router# show ip prefix-list prefix-list-name Displays all entries of a prefix list that are more specific than
[network/length] longer the given network and length.
Router# show ip prefix-list prefix-list-name Displays the entry of a prefix list that matches the given
[network/length] first-match prefix (network and length of prefix).
Command Purpose
Router# clear ip prefix-list prefix-list-name Clears the hit count table of the prefix list entries.
[network/length]
Command Purpose
Step 1 Router# ip as-path access-list access-list-number Defines a BGP-related access list.
{permit | deny} as-regexp
Step 2 Router# router bgp as-number Enters router configuration mode.
Step 3 Router(config-router)# neighbor {ip-address | Establishes a BGP filter.
peer-group-name} filter-list access-list-number {in
| out}
See the “BGP Path Filtering by Neighbor Examples” section at the end of this chapter for an example of
BGP path filtering by neighbor.
Command Purpose
Router(config-router)# neighbor {ip-address | Disables next hop processing on BGP updates to a neighbor.
peer-group-name} next-hop-self
Configuring this command causes the current router to advertise its peering address as the next hop for
the specified neighbor. Therefore, other BGP neighbors will forward to it packets for that address. This
configuration is useful in a nonmeshed environment because you know that a path exists from the present
router to that address. In a fully meshed environment, this configuration is not useful because it will
result in unnecessary extra hops and because there might be a direct access through the fully meshed
cloud with fewer hops.
Command Purpose
Router(config-route-map)# set ip next-hop ip-address In an inbound route map of a BGP peer, sets the next hop of
[...ip-address] [peer-address] the matching routes to be the neighbor peering address,
overriding any third-party next hops and allowing the same
route map to be applied to multiple BGP peers to override
third-party next hops.
With an outbound route map of a BGP peer, sets the next hop
of the received address to the peering address of the local
router, disabling the next hop calculation.
The next hop must be an adjacent router.
Caution Incorrectly setting BGP attributes for a route reflector can cause inconsistent routing, routing loops,
or a loss of connectivity. Setting BGP attributes for a route reflector should be attempted only by an
experienced network operator.
The configuration of this feature in conjunction with the iBGP Multipath Load Sharing feature allows
you to use an outbound route map to include BGP route reflectors in the forwarding path.
The BGP Next Hop Propagation feature allows you to perform the following tasks:
• Bring the route reflector into the forwarding path, which can be used with the iBGP Multipath Load
Sharing feature to configure load balancing.
• Configure interprovider Multiprotocol Label Switching (MPLS) Virtual Private Networks (VPNs)
by not modifying the next hop attribute when advertising routes to an eBGP peer.
• Turn off the next hop calculation for an eBGP peer. This feature is useful for configuring the
end-to-end connection of a label-switched path.
To configure an eBGP multihop peer to propagate the next hop unchanged, use the following command
in router configuration mode:
Command Purpose
Router(config-router)# neighbor ip-address Configures the router to send BGP updates to BGP peers
next-hop-unchanged without modifying the next hop attribute.
Command Purpose
Router(config-router)# neighbor {ip-address | Specifies the BGP version to use when communicating with
peer-group-name} version number a neighbor.
Command Purpose
Router(config-router)# default-metric number Sets an MED.
Alternatively, you can set the MED using the route-map router configuration command. See the “BGP
Route Map Examples” section at the end of this chapter for examples of using BGP route maps.
Command Purpose
Router(config-router)# neighbor {ip-address | Applies a route map to incoming or outgoing routes.
peer-group-name} route-map map-name {in | out}
See the “BGP Route Map Examples” section at the end of this chapter for BGP route map examples.
Command Purpose
Router(config-router)# bgp fast-external-fallover Resets eBGP sessions automatically.
To create an aggregate address in the routing table, use the following commands in router configuration
mode:
Command Purpose
Router(config-router)# aggregate-address address Creates an aggregate entry in the BGP routing table.
mask
Router(config-router)# aggregate-address address Generates autonomous system set path information.
mask as-set
Router(config-router)# aggregate-address Advertises summary addresses only.
address-mask summary-only
Router(config-router)# aggregate-address address Suppresses selected, more specific routes.
mask suppress-map map-name
Router(config-router)# aggregate-address address Generates an aggregate based on conditions specified by the
mask advertise-map map-name route map.
Router(config-router)# aggregate-address address Generates an aggregate with attributes specified in the route
mask attribute-map map-name map.
See the “BGP Aggregate Route Examples” section at the end of this chapter for examples of using BGP
aggregate routes.
Command Purpose
Router(config-router)# no auto-summary Disables automatic network summarization.
The communities attribute is an optional, transitive, global attribute in the numerical range from
1 to 4,294,967,200. Along with Internet community, there are a few predefined, well-known
communities, as follows:
• internet—Advertise this route to the Internet community. All routers belong to it.
• no-export—Do not advertise this route to eBGP peers.
• no-advertise—Do not advertise this route to any peer (internal or external).
• local-as—Do not advertise this route to peers outside the local autonomous system. This route will
not be advertised to other autonomous systems or sub-autonomous systems when confederations are
configured.
Based on the community, you can control which routing information to accept, prefer, or distribute to
other neighbors. A BGP speaker can set, append, or modify the community of a route when you learn,
advertise, or redistribute routes. When routes are aggregated, the resulting aggregate has a communities
attribute that contains all communities from all the initial routes.
You can use community lists to create groups of communities to use in a match clause of a route map.
Just like an access list, a series of community lists can be created. Statements are checked until a match
is found. As soon as one statement is satisfied, the test is concluded.
To create a community list, use the following command in global configuration mode:
Command Purpose
Router(config)# ip community-list Creates a community list.
community-list-number {permit | deny}
community-number
To set the communities attribute and match clauses based on communities, see the match
community-list and set community route map configuration commands in the “Redistribute Routing
Information” section in the “Configuring IP Routing Protocol-Independent Features” chapter.
By default, no communities attribute is sent to a neighbor. To specify that the communities attribute to
be sent to the neighbor at an IP address, use the following command in router configuration mode:
Command Purpose
Router(config-router)# neighbor {ip-address | Specifies that the communities attribute be sent to the
peer-group-name} send-community [both |standard neighbor at this IP address. Both standard and extended
|extended]
communities can be specified with the both keyword. Only
standard or only extended can be specified with the standard
and extended keywords.
To remove communities from the community attribute of an inbound or outbound update using a route
map to filter and determine the communities to be deleted, use the following command in router
configuration mode:
Command Purpose
Router(config-router)# set comm-list Removes communities in a community attribute that match a
community-list-number delete standard or extended community list.
Command Purpose
Router(config)# ip bgp-community new-format Displays and parses BGP communities in the format
AA:NN.
Note The conditional BGP announcements are sent in addition to the normal announcements that a BGP
router sends to its peers.
Note Autonomous system path list information cannot be used for conditional advertisement because the
IP routing table does not contain autonomous system path information.
Command Purpose
Step 1 Router(config)# router bgp as-number Configures the router to run a BGP process.
Step 2 Router(config-router)# neighbor ip-address remote-as Specifies the peer that should receive conditional
as-number advertisement for a given set routes.
Step 3 Router(config-router)# neighbor ip-address adver- Configures the advertise-map and non-exist map
tise-map map1 non-exist-map map2 for the BGP Conditional Advertisement feature.
See the “BGP Conditional Advertisement Configuration Examples” section at the end of this chapter for
an example configuration of BGP conditional advertisement.
Command Purpose
Router(config-router)# bgp confederation identifier Configures a BGP confederation.
as-number
In order to treat the neighbors from other autonomous systems within the confederation as special eBGP
peers, use the following command in router configuration mode:
Command Purpose
Router(config-router)# bgp confederation peers Specifies the autonomous systems that belong to the
as-number [as-number] confederation.
See the “BGP Community with Route Maps Examples” section at the end of this chapter for an example
configuration of several peers in a confederation.
For an alternative way to reduce the iBGP mesh, see the next section, “Configuring a Route Reflector.”
Fully meshed
autonomous
system
Router C
Routes
Routes not
Routes advertised
Router A advertised Router A
External Routes
BGP
speaker
Router B
S4217
With route reflectors, all iBGP speakers need not be fully meshed because there is a method to pass
learned routes to neighbors. In this model, an iBGP peer is configured to be a route reflector responsible
for passing iBGP learned routes to a set of iBGP neighbors. In Figure 56, Router B is configured as a
route reflector. When the route reflector receives routes advertised from Router A, it advertises them to
Router C, and vice versa. This scheme eliminates the need for the iBGP session between Routers A
and C.
Routes
Router A Router C
Router A
External
BGP Routes
speaker Reflected
S4219
routes
Router B
Route
reflector
The internal peers of the route reflector are divided into two groups: client peers and all the other routers
in the autonomous system (nonclient peers). A route reflector reflects routes between these two groups.
The route reflector and its client peers form a cluster. The nonclient peers must be fully meshed with
each other, but the client peers need not be fully meshed. The clients in the cluster do not communicate
with iBGP speakers outside their cluster.
Partially meshed
autonomous system
Nonclient
Route reflector Router G
Nonclient
Routes
Router A Router A Router F
advertised
External
BGP
speaker Nonclient
Cluster Router E
S4218
Figure 57 illustrates a more complex route reflector scheme. Router A is the route reflector in a cluster
with routers B, C, and D. Routers E, F, and G are fully meshed, nonclient routers.
When the route reflector receives an advertised route, depending on the neighbor, it takes the following
actions:
• A route from an external BGP speaker is advertised to all clients and nonclient peers.
• A route from a nonclient peer is advertised to all clients.
• A route from a client is advertised to all clients and nonclient peers. Hence, the clients need not be
fully meshed.
To configure a route reflector and its clients, use the following command in router configuration mode:
Command Purpose
Router(config-router)# neighbor ip-address | Configures the local router as a BGP route reflector and the
peer-group-name route-reflector-client specified neighbor as a client.
Along with route reflector-aware BGP speakers, it is possible to have BGP speakers that do not
understand the concept of route reflectors. They can be members of either client or nonclient groups
allowing a easy and gradual migration from the old BGP model to the route reflector model. Initially,
you could create a single cluster with a route reflector and a few clients. All the other iBGP speakers
could be nonclient peers to the route reflector and then more clusters could be created gradually.
An autonomous system can have multiple route reflectors. A route reflector treats other route reflectors
just like other iBGP speakers. A route reflector can be configured to have other route reflectors in a client
group or nonclient group. In a simple configuration, the backbone could be divided into many clusters.
Each route reflector would be configured with other route reflectors as nonclient peers (thus, all the route
reflectors will be fully meshed). The clients are configured to maintain iBGP sessions with only the route
reflector in their cluster.
Usually a cluster of clients will have a single route reflector. In that case, the cluster is identified by the
router ID of the route reflector. To increase redundancy and avoid a single point of failure, a cluster might
have more than one route reflector. In this case, all route reflectors in the cluster must be configured with
the 4-byte cluster ID so that a route reflector can recognize updates from route reflectors in the same
cluster. All the route reflectors serving a cluster should be fully meshed and all of them should have
identical sets of client and nonclient peers.
If the cluster has more than one route reflector, configure the cluster ID by using the following command
in router configuration mode:
Command Purpose
Router(config-router)# bgp cluster-id cluster-id Configures the cluster ID.
Use the show ip bgp EXEC command to display the originator ID and the cluster-list attributes.
By default, the clients of a route reflector are not required to be fully meshed and the routes from a client
are reflected to other clients. However, if the clients are fully meshed, the route reflector need not reflect
routes to clients.
To disable client-to-client route reflection, use the no bgp client-to-client reflection command in router
configuration mode:
Command Purpose
Router(config-router)# no bgp client-to-client Disables client-to-client route reflection.
reflection
As the iBGP learned routes are reflected, routing information may loop. The route reflector model has
the following mechanisms to avoid routing loops:
• Originator ID is an optional, nontransitive BGP attribute. It is a 4-byte attributed created by a route
reflector. The attribute carries the router ID of the originator of the route in the local autonomous
system. Therefore, if a misconfiguration causes routing information to come back to the originator,
the information is ignored.
• Cluster-list is an optional, nontransitive BGP attribute. It is a sequence of cluster IDs that the route
has passed. When a route reflector reflects a route from its clients to nonclient peers, and vice versa,
it appends the local cluster ID to the cluster-list. If the cluster-list is empty, a new cluster-list is
created. Using this attribute, a route reflector can identify if routing information is looped back to
the same cluster due to misconfiguration. If the local cluster ID is found in the cluster-list, the
advertisement is ignored.
• Use set clauses in outbound route maps to modify attributes, possibly creating routing loops. To
avoid this behavior, set clauses of outbound route maps are ignored for routes reflected to iBGP
peers.
Command Purpose
Router(config-router)# neighbor peer-group-name Creates a BGP peer group.
peer-group
Command Purpose
Router(config-router)# neighbor {ip-address | Specifies a BGP neighbor.
peer-group-name} remote-as as-number
Router(config-router)# neighbor {ip-address | Associates a description with a neighbor.
peer-group-name} description text
Router(config-router)# neighbor {ip-address | Allows a BGP speaker (the local router) to send the default
peer-group-name} default-originate [route-map route 0.0.0.0 to a neighbor for use as a default route.
map-name]
Router(config-router)# neighbor {ip-address | Specifies that the communities attribute be sent to the
peer-group-name} send-community neighbor at this IP address.
Router(config-router)# neighbor {ip-address | Allows iBGP sessions to use any operational interface for
peer-group-name} update-source interface-type TCP connections.
Router(config-router)# neighbor {ip-address | Allows BGP sessions, even when the neighbor is not on a
peer-group-name} ebgp-multihop directly connected segment. The multihop session is not
established if the only route to the address of the multihop
peer is the default route (0.0.0.0).
Router(config-router)# neighbor {ip-address | Sets the minimum interval between sending BGP routing
peer-group-name} advertisement-interval seconds updates.
Router(config-router)# neighbor {ip-address | Limits the number of prefixes allowed from a neighbor.
peer-group-name} maximum-prefix maximum [threshold]
[warning-only]
Router(config-router)# neighbor {ip-address | Specifies a weight for all routes from a neighbor.
peer-group-name} weight weight
Router(config-router)# neighbor {ip-address | Filters BGP routing updates to and from neighbors, as
peer-group-name} distribute-list {access-list-number specified in an access list.
| access-list-name} {in | out}
Router(config-router)# neighbor {ip-address | Establishes a BGP filter.
peer-group-name} filter-list access-list-number {in |
out | weight weight}
Router(config-router)# neighbor {ip-address | Disables next hop processing on the BGP updates to a
peer-group-name} next-hop-self neighbor.
Router(config-router)# neighbor {ip-address | Specifies the BGP version to use when communicating with
peer-group-name} version value a neighbor.
Command Purpose
Router(config-router)# neighbor {ip-address | Invokes MD5 authentication on a TCP connection to a BGP
peer-group-name} password string peer. You can enter a case-sensitive password of up to 25
characters. The string can contain any alphanumeric
characters, including spaces. A password cannot be
configured in the number-space-anything format. The space
after the number causes problems. You can also use any
combination of the following symbolic characters along with
alphanumeric characters:
`~!@#$%^&*()-_=+|\}]{[“‘:;/><.,?
If a peer group is not configured with a remote-as attribute, the members can be configured with the
neighbor remote-as router configuration command. This command allows you to create peer groups
containing eBGP neighbors.
You can customize inbound policies for peer group members (using, for example, a distribute list, route
map, or filter list) because one identical copy of an update is sent to every member of a group. Therefore,
neighbor options related to outgoing updates cannot be customized for peer group members.
External BGP peers normally must reside on a directly connected network. Sometimes it is useful to
relax this restriction in order to test BGP; do so by specifying the neighbor ebgp-multihop router
configuration command.
Note To avoid the accidental creation of loops through oscillating routes, the multihop session will not be
established if the only route to the address of the multihop peer is the default route (0.0.0.0).
Members of a peer group can pass routes from one member of the peer group to another. For example,
if router B is peering with routers A and C, router B can pass routes from router A to router C.
For iBGP, you might want to allow your BGP connections to stay up regardless of which interface is used
to reach a neighbor. To enable this configuration, you first configure a loopback interface and assign it
an IP address. Next, configure the BGP update source to be the loopback interface. Finally, configure
your neighbor to use the address on the loopback interface. Now the iBGP session will be up as long as
there is a route, regardless of any interface.
You can set the minimum interval of time between BGP routing updates.
You can configure MD5 authentication between two BGP peers, meaning that each segment sent on the
TCP connection between the peers is verified. MD5 authentication must be configured with the same
password on both BGP peers; otherwise, the connection between them will not be made. Configuring
MD5 authentication causes the Cisco IOS software to generate and check the MD5 digest of every
segment sent on the TCP connection. If authentication is invoked and a segment fails authentication, then
an error message will be displayed in the console.
When configuring MD5 authentication, you can enter a case-sensitive password of up to 25 characters.
The string can contain any alphanumeric characters, including spaces. A password cannot be configured
in the number-space-anything format. The space after the number can cause authentication to fail. You
can also use any combination of the following symbolic characters along with alphanumeric characters:
`~!@#$%^&*()-_=+|\}]{[“‘:;/><.,?
Caution If the authentication string is configured incorrectly, the BGP peering session will not be established.
We recommend that you enter the authentication string carefully and verify that the peering session
is established after authentication is configured.
Old Behavior
In previous versions of Cisco IOS software, configuring MD5 authentication for a BGP peering session
was generally considered to be difficult because the initial configuration and any subsequent MD5
configuration changes required the BGP neighbor to be reset.
New Behavior
This behavior has been changed in current versions of Cisco IOS software. CSCdx23494 introduced a
change to MD5 authentication for BGP peering sessions. The BGP peering session does not need to be
reset to maintain or establish the peering session for initial configuration or after the MD5 configuration
has been changed. However, the configuration must be completed on both the local and remote BGP peer
before the BGP hold timer expires. If the hold down timer expires before the MD5 configuration has been
completed on both BGP peers, the BGP session will time out.
When the password has been configured, the MD5 key is applied to the TCP session immediately. If one
peer is configured before the other, the TCP segments will be discarded on both the local and remote
peers due to an authentication failure. The peer that is configured with the password will print an error
message in the console similar to the following:
00:03:07: %TCP-6-BADAUTH: No MD5 digest from 10.0.0.2(179) to 10.0.0.1(11000)
The time period in which the password must changed is typically the life time of a stale BGP session.
When the password or MD5 key is configured, incoming tcp segments will only be accepted if the key
is known. If the key is unknown on both the remote and local peer, the TCP segments will be dropped,
and the BGP session will time out when the holddown timer expires.
If the BGP session has been preconfigured with a hold time of 0 seconds, no keepalive messages will be
sent. The BGP session will stay up until one of the peers, on either side, tries to transmit a message (For
example, a prefix update).
Note Configuring a new timer value for the holddown timer will only take effect after the session has been
reset. So, it is not possible to change the configuration of the holddown timer to avoid resetting the BGP
session.
See the “BGP Peer Group Examples” at the end of this chapter for an example of enabling MD5
authentication.
When configuring BGP peers with MD5 authentication that pass through a PIX firewall you must also
disable the TCP random sequence number feature on the PIX firewall because this feature will prevent
the BGP peers from successfully negotiating a connection. The BGP neighbor authentication fails
because the PIX firewall changes the TCP sequence number for IP packets before it forwards them.
When the BGP peer receiving the authentication request runs the MD5 algorithm it will detect that the
TCP sequence number has been changed and reject the authentication request. To prevent the TCP
sequence number change, use the nonrandomseq keyword in the PIX configuration for the static route
configured to allow the BGP connection through the firewall. The non random sequence feature on the
PIX firewall prevents the PIX firewall software from changing the sequence number.
Here is an example of the static command configuration on the PIX with the nonrandomseq keyword:
static (inside, outside) 10.0.0.0 10.0.0.0 netmask 255.0.0.0 norandomseq
Command Purpose
Router(config-router)# neighbor ip-address Makes a BGP neighbor a member of the peer group.
peer-group peer-group-name
See the “BGP Peer Group Examples” section at the end of this chapter for examples of iBGP and eBGP
peer groups.
Command Purpose
Router(config-router)# neighbor {ip-address | Shuts down or disables a BGP neighbor or peer group.
peer-group-name} shutdown
To enable a previously existing neighbor or neighbor peer group that had been disabled using the
neighbor shutdown router configuration command, use the following command in router configuration
mode:
Command Purpose
Router(config-router)# no neighbor {ip-address | Enables a BGP neighbor or peer group.
peer-group-name} shutdown
Command Purpose
Router(config-router)# network ip-address backdoor Indicates reachable networks through backdoor routes.
Command Purpose
Router(config-router)# table-map map-name Applies a route map to routes when updating the IP routing
table.
Command Purpose
Router(config-router)# distance bgp Assigns a BGP administrative distance.
external-distance internal-distance local-distance
Changing the administrative distance of BGP routes is considered dangerous and generally is not
recommended. The external distance should be lower than any other dynamic routing protocol, and the
internal and local distances should be higher than any other dynamic routing protocol.
To adjust BGP timers for all neighbors, use the following command in router configuration mode:
Command Purpose
Router(config-router)# timers bgp keepalive holdtime Adjusts BGP timers for all neighbors.
To adjust BTP keepalive and hold-time timers for a specific neighbor, use the following command in
router configuration mode:
Command Purpose
Router(config-router)# neighbor [ip-address | Sets the keepalive and hold-time timers (in seconds) for the
peer-group-name] timers keepalive holdtime specified peer or peer group.
Note The timers configured for a specific neighbor or peer group override the timers configured for all
BGP neighbors using the timers bgp router configuration command.
To clear the timers for a BGP neighbor or peer group, use the no form of the neighbor timers command.
Command Purpose
Router(config-router)# bgp default local-preference Changes the default local preference value.
value
You can use route maps to change the default local preference of specific paths. See the “BGP Route
Map Examples” section at the end of this chapter for examples when used with BGP route maps.
Command Purpose
Router(config-router)# default-information originate Allows the redistribution of network 0.0.0.0 into BGP.
Command Purpose
Router(config-router)# bgp bestpath med Configures the router to consider a missing MED as having a
missing-as-worst value of infinity, making the path without a MED value the
least desirable path.
Command Purpose
Router(config-router)# bgp always-compare-med Allows the comparison of MEDs for paths from neighbors in
different autonomous systems.
Configuring the Router to Use the MED to Choose a Path from Subautonomous
System Paths
To configure the router to consider the MED value in choosing a path, use the following command in
router configuration mode:
Command Purpose
Router(config-router)# bgp bestpath med confed Configures the router to consider the MED in choosing a path
from among those advertised by different subautonomous
systems within a confederation.
The comparison between MEDs is only made if there are no external autonomous systems in the path
(an external autonomous system is an autonomous system that is not within the confederation). If there
is an external autonomous system in the path, then the external MED is passed transparently through the
confederation, and the comparison is not made.
The following example compares route A with these paths:
path= 65000 65004, med=2
path= 65001 65004, med=3
path= 65002 65004, med=4
path= 65003 1, med=1
In this case, path 1 would be chosen if the bgp bestpath med confed router configuration command is
enabled. The fourth path has a lower MED, but it is not involved in the MED comparison because there
is an external autonomous system is in this path.
Command Purpose
Router(config-router)# bgp deterministic med Configures the router to compare the MED variable when
choosing among routes advertised by different peers in the
same autonomous system.
Note If the bgp always-compare-med router configuration command is enabled, all paths are fully
comparable, including those from other autonomous systems in the confederation, even if the bgp
deterministic med command is also enabled.
Note No penalty is applied to a BGP peer reset when route dampening is enabled. Although the reset
withdraws the route, no penalty is applied in this instance, even if route flap dampening is enabled.
Minimizing Flapping
The route dampening feature minimizes the flapping problem as follows. Suppose again that the route
to network A flaps. The router in autonomous system 2 (where route dampening is enabled) assigns
network A a penalty of 1000 and moves it to history state. The router in autonomous system 2 continues
to advertise the status of the route to neighbors. The penalties are cumulative. When the route flaps so
often that the penalty exceeds a configurable suppress limit, the router stops advertising the route to
network A, regardless of how many times it flaps. Thus, the route is dampened.
The penalty placed on network A is decayed until the reuse limit is reached, upon which the route is once
again advertised. At half of the reuse limit, the dampening information for the route to network A is
removed.
Command Purpose
Router(config)# bgp dampening Enables BGP route dampening.
To change the default values of various dampening factors, use the following command in address family
or router configuration mode:
Command Purpose
Router(config)# bgp dampening half-life reuse Changes the default values of route dampening factors.
suppress max-suppress [route-map map-name]
Command Purpose
Router# show ip bgp flap-statistics Displays BGP flap statistics for all paths.
Router# show ip bgp flap-statistics regexp regexp Displays BGP flap statistics for all paths that match the
regular expression.
Router# show ip bgp flap-statistics filter-list Displays BGP flap statistics for all paths that pass the filter.
access-list
Router# show ip bgp flap-statistics ip-address mask Displays BGP flap statistics for a single entry.
Router# show ip bgp flap-statistics ip-address mask Displays BGP flap statistics for more specific entries.
longer-prefix
To clear BGP flap statistics (thus making it less likely that the route will be dampened), use the following
commands in EXEC mode as needed:
Command Purpose
Router# clear ip bgp flap-statistics Clears BGP flap statistics for all routes.
Router# clear ip bgp flap-statistics regexp regexp Clears BGP flap statistics for all paths that match the regular
expression.
Router# clear ip bgp flap-statistics filter-list Clears BGP flap statistics for all paths that pass the filter.
list
Router# clear ip bgp flap-statistics ip-address mask Clears BGP flap statistics for a single entry.
Router# clear ip bgp ip-address flap-statistics Clears BGP flap statistics for all paths from a neighbor.
Note The flap statistics for a route are also cleared when a BGP peer is reset. Although the reset withdraws
the route, there is no penalty applied in this instance, even if route flap dampening is enabled.
Once a route is dampened, you can display BGP route dampening information, including the time
remaining before the dampened routes will be unsuppressed. To display the information, use the
following command in EXEC mode:
Command Purpose
Router# show ip bgp dampened-paths Displays the dampened routes, including the time remaining
before they will be unsuppressed.
You can clear BGP route dampening information and unsuppress any suppressed routes by using the
following command in EXEC mode:
Command Purpose
Router# clear ip bgp dampening [ip-address Clears route dampening information and unsuppresses the
network-mask] suppressed routes.
Command Purpose
Router# clear ip bgp neighbor-address Resets a particular BGP connection.
Router# clear ip bgp * Resets all BGP connections.
Router# clear ip bgp peer-group tag Removes all members of a BGP peer group.
To display various routing statistics, use the following commands in EXEC mode, as needed:
Command Purpose
Router# show ip bgp prefix Displays peer groups and peers not in peer groups to which
the prefix has been advertised. Also displays prefix attributes
such as the next hop and the local prefix.
Router# show ip bgp cidr-only Displays all BGP routes that contain subnet and supernet
network masks.
Router# show ip bgp community community-number Displays routes that belong to the specified communities.
[exact]
Router# show ip bgp community-list Displays routes that are permitted by the community list.
community-list-number [exact]
Router# show ip bgp filter-list access-list-number Displays routes that are matched by the specified autonomous
system path access list.
Router# show ip bgp inconsistent-as Displays the routes with inconsistent originating autonomous
systems.
Router# show ip bgp regexp regexp Displays the routes that have an autonomous system path that
matches the specified regular expression entered on the
command line.
Router# show ip bgp Displays the contents of the BGP routing table.
Router# show ip bgp neighbors [neighbor-address] Displays detailed information on the BGP and TCP
connections to individual neighbors.
Router# show ip bgp neighbors [address] Displays routes learned from a particular BGP neighbor.
[received-routes | routes | advertised-routes |
paths regexp | dampened-routes]
Router# show ip bgp paths Displays all BGP paths in the database.
Router# show ip bgp peer-group [tag] [summary] Displays information about BGP peer groups.
Router# show ip bgp summary Displays the status of all BGP connections.
Command Purpose
Router(config-router)# bgp log-neighbor-changes Logs messages generated when a BGP neighbor goes up or
down, or resets
In the following example, the route map named freddy marks all paths originating from autonomous
system 690 with an MED metric attribute of 127. The second permit clause is required so that routes not
matching autonomous system path list 1 will still be sent to neighbor 1.1.1.1.
router bgp 100
neighbor 1.1.1.1 route-map freddy out
!
ip as-path access-list 1 permit ^690_
ip as-path access-list 2 permit .*
!
route-map freddy permit 10
match as-path 1
set metric 127
!
route-map freddy permit 20
match as-path 2
The following example shows how you can use route maps to modify redistributed information from the
IP forwarding table:
router bgp 100
redistribute igrp 109 route-map igrp2bgp
!
route-map igrp2bgp
match ip address 1
set local-preference 25
set metric 127
set weight 30000
set next-hop 192.92.68.24
set origin igp
!
access-list 1 permit 131.108.0.0 0.0.255.255
access-list 1 permit 160.89.0.0 0.0.255.255
access-list 1 permit 198.112.0.0 0.0.127.255
It is proper behavior to not accept any autonomous system path not matching the match clause of the
route map. This behavior means that you will not set the metric and the Cisco IOS software will not
accept the route. However, you can configure the software to accept autonomous system paths not
matched in the match clause of the route-map router configuration command by using multiple maps
of the same name, some without accompanying set commands.
route-map fnord permit 10
match as-path 1
set local-preference 5
!
route-map fnord permit 20
match as-path 2
The following example shows how you can use route maps in a reverse operation to set the route tag (as
defined by the BGP/OSPF interaction document, RFC 1403) when exporting routes from BGP into the
main IP routing table:
router bgp 100
table-map set_ospf_tag
!
route-map set_ospf_tag
match as-path 1
set automatic-tag
!
ip as-path access-list 1 permit .*
The following example shows how the route map named set-as-path is applied to outbound updates to
the neighbor 200.69.232.70. The route map will prepend the autonomous system path “100 100” to
routes that pass access list 1. The second part of the route map is to permit the advertisement of other
routes.
router bgp 100
network 171.60.0.0
network 172.60.0.0
neighbor 200.69.232.70 remote-as 200
neighbor 200.69.232.70 route-map set-as-path out
!
route-map set-as-path 10 permit
match address 1
set as-path prepend 100 100
!
route-map set-as-path 20 permit
match address 2
!
access-list 1 permit 171.60.0.0 0.0.255.255
access-list 1 permit 172.60.0.0 0.0.255.255
!
access-list 2 permit 0.0.0.0 255.255.255.255
Inbound route maps could perform prefix-based matching and set various parameters of the update.
Inbound prefix matching is available in addition to autonomous system path and community list
matching. The following example shows how the set local-preference route-map configuration
command sets the local preference of the inbound prefix 140.10.0.0/16 to 120:
!
router bgp 100
network 131.108.0.0
neighbor 131.108.1.1 remote-as 200
neighbor 131.108.1.1 route-map set-local-pref in
!
route-map set-local-pref permit 10
match ip address 2
set local preference 120
!
route-map set-local-pref permit 20
!
access-list 2 permit 140.10.0.0 0.0.255.255
access-list 2 deny any
The following examples show how to ensure that traffic from one router on a shared LAN will always
be passed through a second router, rather than being sent directly to a third router on the same LAN.
Routers A, B, and C connect to the same LAN. Router A peers with router B, and router B peers with
router C. Router B sends traffic over the routes of router A to router C, but wants to make sure that all
traffic from router C to router A goes through router B, rather than directly from router C to router A
over the shared LAN. This configuration can be useful for traffic accounting purposes or to satisfy the
peering agreement between router C and router B. You can achieve this configuration by using the set
ip next-hop route-map configuration command as shown in the following two examples.
Example one applies an inbound route map on the BGP session of router C with router B.
Router A Configuration
router bgp 100
neighbor 1.1.1.2 remote-as 200
Router B Configuration
router bgp 200
neighbor 1.1.1.1 remote-as 100
neighbor 1.1.1.3 remote-as 300
Router C Configuration
router bgp 300
neighbor 1.1.1.2 remote-as 200
neighbor 1.1.1.2 route-map set-peer-address in
The following example applies an outbound route map on the BGP session of router B with router C:
Router A Configuration
router bgp 100
neighbor 1.1.1.2 remote-as 200
Router B Configuration
router bgp 200
neighbor 1.1.1.1 remote-as 100
Router C Configuration
router bgp 300
neighbor 1.1.1.2 remote-as 200
In Figure 58, Router A is being configured. The iBGP neighbor is not directly linked to Router A.
External neighbors (in autonomous system 167 and autonomous system 99) must be linked directly to
Router A.
Router Router
Router
AS 109 131.108.234.2
131.108.0.0
192.31.7.0
Router Router
S1270a
131.108.200.1 150.136.64.19
AS 167 AS 99
The following example shows how a prefix list permits a route that matches the prefix 35.0.0.0/8:
ip prefix-list abc permit 35.0.0.0/8
The following example shows how to configure the BGP process so that it only accept prefixes with a
prefix length of /8 to /24:
router bgp
version 2
network 101.20.20.0
distribute-list prefix max24 in
!
ip prefix-list max24 seq 5 permit 0.0.0.0/0 ge 8 le 24
The following example configuration shows how to conditionally originate a default route (0.0.0.0/0) in
RIP when a prefix 10.1.1.0/24 exists in the routing table:
ip prefix-list cond permit 10.1.1.0/24
!
route-map default-condition permit 10
match ip address prefix-list cond
!
router rip
default-information originate route-map default-condition
The following example shows how to configure BGP to accept routing updates from 192.1.1.1 only,
besides filtering on the prefix length:
router bgp
distribute-list prefix max24 gateway allowlist in
!
ip prefix-list allowlist seq 5 permit 192.1.1.1/32
!
The following example shows how to direct the BGP process to filter incoming updates to the prefix
using name1, and match the gateway (next hop) of the prefix being updated to the prefix list name2, on
the Ethernet interface 0:
router bgp 103
distribute-list prefix name1 gateway name2 in ethernet 0.
The following example shows how to configure BGP to deny routes with a prefix length greater than in
25 in 192/8:
ip prefix-list abc deny 192.0.0.0/8 ge 25
The following example shows how to configure BGP to permit routes with a prefix length greater than
8 and less than 24 in all address space:
ip prefix-list abc permit 0.0.0.0/0 ge 8 le 24
The following example shows how to configure BGP to deny routes with a prefix length greater than 25
in all address space:
ip prefix-list abc deny 0.0.0.0/0 ge 25
The following example shows how to configure BGP to deny all routes in 10/8, because any route in the
Class A network 10.0.0.0/8 is denied if its mask is less than or equal to 32 bits:
ip prefix-list abc deny 10.0.0.0/8 le 32
The following example shows how to configure BGP to deny routes with a mask greater than 25 in
204.70.1/24:
ip prefix-list abc deny 204.70.1.0/24 ge 25
The following example shows how to configure BGP to permit all routes:
ip prefix-list abc permit 0.0.0.0/0 le 32
The following example shows how to delete an entry from the prefix list so that 204.70.0.0 is not
permitted, and add a new entry that permits 198.0.0.0/8:
no ip prefix-list abc permit 204.70.0.0/15
ip prefix-list abc permit 198.0.0.0/8
The following example clears the session with the neighbor 131.108.1.1.
clear ip bgp 131.108.1.1 soft in
AS
Router IGRP
Router
IBGP connections
Physical connectivity
EGBP connections
Router
S2566
Network 198.92.68.0
The following configuration shows how to create an aggregate entry in the BGP routing table when at
least one specific route falls into the specified range. The aggregate route will be advertised as coming
from your autonomous system and has the atomic aggregate attribute set to show that information might
be missing. (By default, atomic aggregate is set unless you use the as-set keyword in the
aggregate-address router configuration command.)
router bgp 100
aggregate-address 193.0.0.0 255.0.0.0
The following example shows how to create an aggregate entry using the same rules as in the previous
example, but the path advertised for this route will be an AS_SET consisting of all elements contained
in all paths that are being summarized:
router bgp 100
aggregate-address 193.0.0.0 255.0.0.0 as-set
The following example shows how to create the aggregate route for 193.0.0.0 and also suppress
advertisements of more specific routes to all neighbors:
router bgp 100
aggregate-address 193.0.0.0 255.0.0.0 summary-only
The second example shows how the route map named set-community is applied to the outbound updates
to neighbor 171.69.232.90. All the routes that originate from autonomous system 70 have the community
values 200 200 added to their already existing values. All other routes are advertised as normal.
route-map bgp 200
neighbor 171.69.232.90 remote-as 100
neighbor 171.69.232.90 send-community
neighbor 171.69.232.90 route-map set-community out
!
route-map set-community 10 permit
match as-path 1
set community 200 200 additive
!
route-map set-community 20 permit
!
ip as-path access-list 1 permit 70$
ip as-path access-list 2 permit .*
The third example shows how community-based matching is used to selectively set MED and local
preference for routes from neighbor 171.69.232.55. All the routes that match community list 1 get the
MED set to 8000, including any routes that have the communities 100 200 300 or 900 901. These routes
could have other community values also.
All the routes that pass community list 2 get the local preference set to 500. This includes the routes that
have community values 88 or 90. If they belong to any other community, they will not be matched by
community list 2.
All the routes that match community list 3 get the local preference set to 50. Community list 3 will match
all the routes because all the routes are members of the Internet community. Thus, all the remaining
routes from neighbor 171.69.232.55 get a local preference 50.
router bgp 200
neighbor 171.69.232.55 remote-as 100
neighbor 171.69.232.55 route-map filter-on-community in
!
route-map filter-on-community 10 permit
match community 1
set metric 8000
!
route-map filter-on-community 20 permit
match community 2 exact-match
set local-preference 500
!
route-map filter-on-community 30 permit
match community 3
set local-preference 50
!
ip community-list 1 permit 100 200 300
ip community-list 1 permit 900 901
!
ip community-list 2 permit 88
ip community-list 2 permit 90
!
ip community-list 3 permit internet
The next two examples show how BGP community attributes are used with BGP confederation
configurations to filter routes.
The next example shows how the route map named set-community is applied to the outbound updates to
neighbor 171.69.232.50 and the local-as community attribute is used to filter the routes. The routes that
pass access list 1 have the special community attribute value local-as. The remaining routes are
advertised normally. This special community value automatically prevents the advertisement of those
routes by the BGP speakers outside autonomous system 200.
router bgp 65000
network 1.0.0.0 route-map set-community
bgp confederation identifier 200
bgp confederation peers 65001
neighbor 171.69.232.50 remote-as 100
neighbor 171.69.233.2 remote-as 65001
!
route-map set-community permit 10
match ip address 1
set community local-as
!
The following example shows how to use the local-as community attribute to filter the routes.
Confederation 100 contains three autonomous systems: 100, 200, and 300. For network 1.0.0.0, the route
map named set-local-as specifies that the advertised routes have the community attribute local-as. These
routes are not advertised to any eBGP peer outside the local autonomous system. For network 2.0.0.0,
the route map named set-no-export specifies that the routes advertised have the community attribute
no-export.
A route between router 6500 and router 65001 does not cross the boundary between autonomous systems
within the confederation. A route between subautonomous systems for which router 65000 is the
controlling router does not cross the boundary between the confederation and an external autonomous
system, and also does not cross the boundary between subautonomous systems within the local
autonomous system. A route to from router 65000 to router 65001 would not be acceptable for network
1.0.0.0 because it crosses the boundary between subautonomous systems within the confederation.
router bgp 65001
bgp confederation identifier 200
bgp confederation peer 65000
network 2.0.0.0 route-map set-community
neighbor 171.69.233.1 remote-as 65000
route-map set-community permit 10
set community no-export
To conditionally advertise a set of routes, use the following commands in router configuration mode:
In a BGP speaker in autonomous system 6002, the peers from autonomous systems 6001 and 6003 are
configured as special eBGP peers. 170.70.70.1 is a normal iBGP peer and 199.99.99.2 is a normal eBGP
peer from autonomous system 700.
router bgp 6002
bgp confederation identifier 60000
bgp confederation peers 6001 6003
neighbor 170.70.70.1 remote-as 6002
neighbor 171.69.232.57 remote-as 6001
neighbor 171.69.232.56 remote-as 6003
neighbor 199.99.99.2 remote-as 700
In a BGP speaker in autonomous system 6003, the peers from autonomous systems 6001 and 6002 are
configured as special eBGP peers. 200.200.200.200 is a normal eBGP peer from autonomous system
701.
router bgp 6003
bgp confederation identifier 60000
bgp confederation peers 6001 6002
neighbor 171.69.232.57 remote-as 6001
neighbor 171.69.232.55 remote-as 6002
neighbor 200.200.200.200 remote-as 701
The following is a part of the configuration from the BGP speaker 200.200.200.205 from autonomous
system 701 in the same example. Neighbor 171.69.232.56 is configured as a normal eBGP speaker from
autonomous system 60000. The internal division of the autonomous system into multiple autonomous
systems is not known to the peers external to the confederation.
router bgp 701
neighbor 171.69.232.56 remote-as 60000
neighbor 200.200.200.205 remote-as 701
For examples of how the BGP set-community route-map configuration command can be used with a
confederation configuration, see the last two examples in the section“BGP Community with Route Maps
Examples” in this chapter.
This chapter describes the multiprotocol Border Gateway Protocol (BGP) based upon RFC 2283,
Multiprotocol Extensions for BGP-4. For a complete description of the multiprotocol BGP commands in
this chapter, refer to the “Multiprotocol BGP Extensions for IP Multicast Commands” chapter of the
Cisco IOS IP Command Reference, Volume 2 of 3: Routing Protocols. To locate documentation for other
commands that appear in this chapter, use the command reference master index, or search online. For
BGP configuration information and examples, refer to the “Configuring BGP” chapter of the Cisco IOS
IP Configuration Guide. For BGP command descriptions, refer to the “BGP Commands” chapter of the
Cisco IOS IP Command Reference, Volume 2 of 3: Routing Protocols.
To identify the hardware platform or software image information associated with a feature, use the
Feature Navigator on Cisco.com to search for information about the feature or refer to the software
release notes for a specific release. For more information, see the “Identifying Supported Platforms”
section in the “Using Cisco IOS Software” chapter in this book.
An extension of BGP, multiprotocol BGP offers the following benefits:
• A network can support incongruent unicast and multicast topologies.
• A network can support congruent unicast and multicast topologies that have different policies
(BGP filtering configurations).
• A network can carry routing information for multiple network layer protocol address families (for
example, IP Version 4 or VPN Version 4) as specified in RFC 1700, Assigned Numbers.
• A network that is backward compatible—routers that support the multiprotocol extensions can
interoperate with routers that do not support the extensions.
• All of the routing policy capabilities of BGP can be applied to multiprotocol BGP.
• All of the BGP commands can be used with multiprotocol BGP.
You should be familiar with BGP and IP multicast routing before you attempt to configure multiprotocol
BGP. For IP multicast configuration information and examples, refer to the “IP Multicast” part of this
document and Cisco IOS IP Command Reference, Volume 3 of 3: Multicast.
Multiprotocol BGP is an enhanced BGP that carries routing information for multiple network layer
protocols and IP multicast routes. BGP carries two sets of routes, one set for unicast routing and one set
for multicast routing. The routes associated with multicast routing are used by the Protocol Independent
Multicast (PIM) feature to build data distribution trees.
Multiprotocol BGP is useful when you want a link dedicated to multicast traffic, perhaps to limit which
resources are used for which traffic. Perhaps you want all multicast traffic exchanged at one network
access point (NAP). Multiprotocol BGP allows you to have a unicast routing topology different from a
multicast routing topology. Thus, you have more control over your network and resources.
In BGP, the only way to perform interdomain multicast routing was to use the BGP infrastructure that
was in place for unicast routing. If those routers were not multicast-capable, or there were differing
policies where you wanted multicast traffic to flow, multicast routing could not be supported without
multiprotocol BGP.
Note It is possible to configure BGP peers that exchange both unicast and multicast network layer
reachability information (NLRI), but you cannot connect multiprotocol BGP clouds with a BGP
cloud. That is, you cannot redistribute multiprotocol BGP routes into BGP.
Figure 60 illustrates a simple example of unicast and multicast topologies that are incongruent, and
therefore are not possible without multiprotocol BGP.
Autonomous systems 100, 200, and 300 are each connected to two NAPs that are FDDI rings. One is
used for unicast peering (and therefore the exchanging of unicast traffic). The Multicast Friendly
Interconnect (MFI) ring is used for multicast peering (and therefore the exchanging of multicast traffic).
Each router is unicast- and multicast-capable.
FDDI FDDI
Unicast MFI
Figure 61 is a topology of unicast-only routers and multicast-only routers. The two routers on the left
are unicast-only routers (that is, they do not support or are not configured to perform multicast routing).
The two routers on the right are multicast-only routers. Routers A and B support both unicast and
multicast routing. The unicast-only and multicast-only routers are connected to a single NAP.
In Figure 61, only unicast traffic can travel from Router A to the unicast routers to Router B and back.
Multicast traffic could not flow on that path, so another routing table is required. Multicast traffic uses
the path from Router A to the multicast routers to Router B and back.
Figure 61 illustrates a multiprotocol BGP environment with a separate unicast route and multicast route
from Router A to Router B. Multiprotocol BGP allows these routes to be noncongruent. Both of the
autonomous systems must be configured for internal multiprotocol BGP (IMBGP) in the figure.
A multicast routing protocol, such as PIM, uses the multicast BGP database to perform Reverse Path
Forwarding (RPF) lookups for multicast-capable sources. Thus, packets can be sent and accepted on the
multicast topology but not on the unicast topology.
Router B
AS 200
Unicast Multicast
router router
IMBGP
NAP
Unicast IMBGP Multicast
router router
AS 100
Router A
The following example shows the resulting address family configuration after the same router is
upgraded to Cisco IOS Release 12.1:
router bgp 5
no synchronization
network 172.16.214.0 mask 255.255.255.0
neighbor 172.16.214.34 remote-as 5
neighbor 172.16.214.38 remote-as 2
neighbor 172.16.214.42 remote-as 5
neighbor 172.16.214.59 remote-as 5
no auto-summary
Note Although supported in Cisco IOS Release 12.1, the following sections do not explain how to
configure the BGP-4 extensions for Virtual Private Network (VPN) address family prefixes.
Configuring VPN address family prefixes will be explained in a later release of the Cisco IOS IP
Configuration Guide and the Cisco IOS IP Command Reference, Volume 2 of 3: Routing Protocols.
Command Purpose
Step 1 Router(config)# router bgp autonomous-system Configures a BGP routing process and places the
router in router configuration mode.
Step 2 Router(config-router)# neighbor ip-address remote-as Adds the IP address of the neighbor in the remote
autonomous-system-number autonomous system to the multiprotocol BGP
neighbor table of the local router.
Command Purpose
Step 3 Router(config-router)# address-family ipv4 multicast Specifies the IPv4 address family type and places the
router in address family configuration mode.
Step 4 Router(config-router-af)# neighbor {ip-address | Enables the neighbor to exchange prefixes for the
peer-group-name} activate specified family type with the local router.
Note By default, neighbors that are defined using the neighbor remote-as command in router
configuration mode exchange only unicast address prefixes. To exchange other address prefix types,
such as multicast and VPNv4, neighbors must also be activated using the neighbor activate
command in address family configuration mode, as shown.
See the “Multiprotocol BGP Peer Examples” section for multiprotocol BGP peer configuration
examples.
Command Purpose
Step 1 Router(config)# router bgp autonomous-system Configures a BGP routing process and places the
router in router configuration mode.
Step 2 Router(config-router)# neighbor peer-group-name Creates a multiprotocol BGP peer group.
peer-group
Step 3 Router(config-router)# neighbor ip-address remote-as Adds the IP address of the neighbor in the remote
autonomous-system-number autonomous system to the multiprotocol BGP
neighbor table of the local router.
Step 4 Router(config-router)# neighbor ip-address peer-group Assigns the IP address of a BGP neighbor to a peer
peer-group-name group.
Step 5 Router(config-router)# address-family ipv4 multicast Specifies the IP Version 4 address family type and
places the router in address family configuration
mode.
Step 6 Router(config-router-af)# neighbor peer-group-name Enables the peer group to exchange prefixes for the
activate specified family type with the neighbor and the local
router.
Step 7 Router(config-router-af)# neighbor ip-address Assigns the IP address of a BGP neighbor to a peer
peer-group peer-group-name group.
Note By default, neighbors that are defined using the neighbor remote-as command in router
configuration mode exchange only unicast address prefixes. To exchange other address prefix types,
such as multicast and VPNv4, neighbors must also be activated using the neighbor activate
command in address family configuration mode, as shown.
Note Peer groups that are defined in router configuration mode using the neighbor peer-group command
exchange only unicast address prefixes by default. To exchange other address prefix types, such as
multicast, peer groups must be defined in address family configuration mode using the neighbor
activate command, as shown.
Members of a peer group automatically inherit the address prefix configuration of the peer group.
Refer to the section “Configure BGP Peer Groups” of the “Configuring BGP” chapter in the Cisco IOS
IP Command Reference, Volume 2 of 3: Routing Protocols for information and instructions on assigning
options to the peer group and making a BGP or multiprotocol BGP neighbor a member of the peer group.
See the “Multiprotocol BGP Peer Group Examples” section for an example of configuring multiprotocol
BGP peer groups.
Command Purpose
Step 1 Router(config)# router bgp autonomous-system Configures a BGP routing process and places the
router in router configuration mode.
Step 2 Router(config-router)# address-family ipv4 multicast Specifies the IP Version 4 address family type and
places the router in address family configuration
mode.
Step 3 Router(config-router-af)# network network-number Advertises (injects) this network number and mask
[mask network-mask] into the multicast BGP database. (The routes must
first be found in the unicast forwarding table.)
Specifically, the network number and mask are
injected into the multicast database for the address
family specified in the previous step.
Routes are tagged from the specified network as
“local origin.”
Note Networks that are defined in router configuration mode using the network command are injected into
the unicast database by default. To inject a network into another database, such as the multicast
database, the network must be defined in address family configuration mode using the network
command, as shown.
To redistribute Distance Vector Multicast Routing Protocol (DVMRP) routes into multiprotocol BGP,
see the “Redistributing DVMRP Routes into Multiprotocol BGP” section. See the “Multiprotocol BGP
Network Advertisement Examples” section for multiprotocol BGP network advertisement configuration
examples.
Command Purpose
Step 1 Router(config)# router bgp autonomous-system Configures a BGP routing process and places the
router in router configuration mode.
Step 2 Router(config-router)# neighbor ip-address remote-as Adds the IP address of the neighbor in the remote
autonomous-system-number autonomous system to the multiprotocol BGP
neighbor table of the local router.
Step 3 Router(config-router)# address-family ipv4 multicast Specifies the IP Version 4 address family type and
places the router in address family configuration
mode.
Step 4 Router(config-router-af)# neighbor ip-address Enables the address family for the neighbor in the
activate remote autonomous system.
Step 5 Router(config-router-af)# neighbor ip-address Applies a route map to incoming or outgoing routes.
route-map route-map-name {in | out}
Step 6 Router(config)# route-map map-tag [permit | deny] Defines a route map.
[sequence-number]
Step 7 Router(config-route-map)# match ip-address Distributes any routes that have a destination network
access-list-number number address permitted by a standard or extended
access list, or performs policy routing on packets.
Note By default, neighbors that are defined using the neighbor remote-as command in router
configuration mode exchange only unicast address prefixes. To exchange other address prefix types,
such as multicast and VPNv4, neighbors must also be activated using the neighbor activate
command in address family configuration mode, as shown.
Note Route maps that are applied in router configuration mode using the neighbor route-map command
are applied to unicast address prefixes by default. Route maps for other address families, such as
multicast, must be applied in address family configuration mode using the neighbor route-map
command, as shown. The route maps are applied either as the inbound or outbound routing policy for
neighbors under each address family. Configuring separate route maps under each address family
simplifies managing complicated or different policies for each address family.
See the “Multiprotocol BGP Route Map Examples” section for multiprotocol BGP route map
configuration examples.
To inject prefixes from a routing protocol into multiprotocol BGP, use the following commands
beginning in global configuration mode:
Command Purpose
Step 1 Router(config)# router bgp autonomous-system Configures a BGP routing process and places the
router in router configuration mode.
Step 2 Router(config-router)# address-family ipv4 multicast Specifies the IP Version 4 address family type and
places the router in address family configuration
mode.
Step 3 Router(config-router-a)# redistribute protocol Specifies the routing protocol from which prefixes
[process-id] [route-map map-name] should be redistributed into multiprotocol BGP. Issue
the exit command two times to return to global
configuration mode.
Step 4 Router(config)# route-map map-tag [permit | deny] Defines a route map and places the router in route
[sequence-number] map configuration mode.
Follow this step with a match command.
Step 5 Router(config-route-map)# match ip-address Distributes any prefixes that have a destination
access-list-number network number address permitted by a standard or
extended access list, or performs policy routing on
packets.
Note Route maps that are applied in router configuration mode using the redistribute route-map
command are applied to unicast address prefixes by default. Route maps for other address families,
such as multicast, must be applied in address family configuration mode using the redistribute
route-map command, as shown.
See the “Multiprotocol BGP Route Redistribute Examples” section for multiprotocol BGP route
redistribution configuration examples.
subject it to route map conditions. If you supply a route map, you can specify various match criteria
options for the multiprotocol BGP routes. If the route passes the route map, then the route is redistributed
into DVMRP.
If there are multicast sources in other routing domains that are known via multiprotocol BGP and there
are receivers in a DVMRP cloud, they will want to receive packets from those sources. Therefore, you
need to redistribute the multiprotocol BGP prefix routes into DVMRP. This will be the scenario when
distributing multiprotocol BGP prefixes into the MBONE.
To redistribute multiprotocol BGP routes into DVMRP, use the following command in interface
configuration mode:
Command Purpose
Router(config-if)# ip dvmrp metric metric [route-map Redistributes multiprotocol BGP routes into DVMRP with a
map-name] mbgp specified metric. An optional route map controls which routes
are redistributed; otherwise, all multiprotocol BGP routes are
redistributed.
Command Purpose
Router(config-router-af)# redistribute dvmrp Redistributes DVMRP routes into multiprotocol BGP.
[route-map map-name]
To redistribute DVMRP prefixes into multiprotocol BGP, use the following command in router
configuration mode:
Command Purpose
Router(config-router)# redistribute dvmrp [route-map Redistributes DVMRP routes into multiprotocol BGP.
map-name]
See the “Multiprotocol BGP Route Redistribute Examples” section for an example of redistributing
DVMRP routers into a multiprotocol BGP routing domain.
Command Purpose
Step 1 Router(config)# router bgp autonomous-system Configures a BGP routing process and places the
router in router configuration mode.
Step 2 Router(config-router)# neighbor ip-address remote-as Adds the IP address of the neighbor in the remote
autonomous-system-number autonomous system to the multiprotocol BGP
neighbor table of the local router.
Step 3 Router(config-router)# address-family ipv4 multicast Specifies the IP Version 4 address family type and
places the router in address family configuration
mode.
Step 4 Router(config-router-af)# neighbor ip-address Enables the specified address family for the neighbor
activate in the remote autonomous system.
Step 5 Router(config-router-af)# neighbor ip-address Configures the router as a route reflector of prefixes
route-reflector-client for the specified address family type and configures
the specified neighbor as its client.
Note By default, neighbors that are defined using the neighbor remote-as command in router
configuration mode exchange only unicast address prefixes. To exchange other address prefix types,
such as multicast and VPNv4, neighbors must also be activated using the neighbor activate
command in address family configuration mode, as shown.
Note Route reflectors and clients (neighbors or internal BGP peer groups) that are defined in router
configuration mode using the neighbor route-reflector-client command reflect unicast address
prefixes to and from those clients by default. To reflect prefixes for other address families, such as
multicast, define the reflectors and clients in address family configuration mode using the neighbor
route-reflector-client command, as shown.
See the “Multiprotocol BGP Route Reflector Examples” section for multiprotocol BGP route reflector
configuration examples.
To configure an aggregate address for multiprotocol BGP, use the following commands beginning in
global configuration mode:
Command Purpose
Step 1 Router(config)# router bgp autonomous-system Configures a BGP routing process and places the
router in router configuration mode.
Step 2 Router(config-router)# address-family ipv4 multicast Specifies the IP Version 4 address family type and
places the router in address family configuration
mode.
Step 3 Router(config-router-af)# aggregate-address address Configures an aggregate address with various
mask [as-set] [summary-only] [suppress-map map-name] options.
[advertise-map map-name] [attribute-map map-name]
Note Aggregate addresses that are defined in router configuration mode using the aggregate-address
as-set command are injected into the unicast database by default. To enter an aggregate address in
another database, such as the multicast database, the aggregate address must be defined in address
family configuration mode using the aggregate-address as-set command, as shown.
See the “Aggregate Multiprotocol BGP Address Examples” section for aggregate multiprotocol BGP
address configuration examples.
Step 1 Enter the show ip bgp ipv4 multicast EXEC command to display information related to the multicast
database:
Router# show ip bgp ipv4 multicast
Note For a description of each output display field, refer to the show ip bgp ipv4 multicast
command in the Cisco IOS IP Command Reference, Volume 3 of 3: Multicast.
Step 2 Enter the show ip bgp ipv4 multicast summary EXEC command to display a summary of multicast
database information:
Router# show ip bgp ipv4 multicast summary
Step 3 Enter the debug ip mbgp dampening EXEC command to log the route flap dampening activity:
Router# debug ip mbgp dampening
Step 4 Enter the debug ip mbgp updates EXEC command to log the multiprotocol BGP-related information
passed in BGP Update messages:
Router# debug ip mbgp updates
Step 5 Enter the show ip mpacket quality EXEC command to display the quality of Real-Time Transport
Protocol (RTP) data based on packets captured in the IP multicast cache header buffer:
Router# show ip mpacket 224.2.163.188 quality
Note The neighbor activate command is not required in this configuration because peer groups
are activated automatically as peer group configuration parameters are applied.
route-map filter-some-multicast
match ip address 1
route-map dvmrp-into-mbgp
match ip address 1
This chapter describes how to configure IP routing protocol-independent features. For a complete
description of the IP routing protocol-independent commands in this chapter, refer to the “IP Routing
Protocol-Independent Commands” chapter of the Cisco IOS IP Command Reference, Volume 2 of 3:
Routing Protocols publication. To locate documentation of other commands in this chapter, use the
command reference master index, or search online.
To identify the hardware platform or software image information associated with a feature, use the
Feature Navigator on Cisco.com to search for information about the feature or refer to the software
release notes for a specific release. For more information, see the “Identifying Supported Platforms”
section in the “Using Cisco IOS Software” chapter in this book.
Note Consider your decision to use VLSMs carefully. You can easily make mistakes in address assignments
and you will generally find it more difficult to monitor your network using VLSMs.
Note The best way to implement VLSMs is to keep your existing numbering plan in place and gradually
migrate some networks to VLSMs to recover address space. See the “Variable-Length Subnet Mask
Example” section at the end of this chapter for an example of using VLSMs.
Command Purpose
Router(config)# ip route prefix mask {ip-address | Establishes a static route.
interface-type interface-number} [distance] [tag tag]
[permanent]
See the “Overriding Static Routes with Dynamic Protocols Example” section at the end of this chapter
for an example of configuring static routes.
The software remembers static routes until you remove them (using the no form of the ip route global
configuration command). However, you can override static routes with dynamic routing information
through prudent assignment of administrative distance values. Each dynamic routing protocol has a
default administrative distance, as listed in Table 9. If you would like a static route to be overridden by
information from a dynamic routing protocol, simply ensure that the administrative distance of the static
route is higher than that of the dynamic protocol.
Static routes that point to an interface will be advertised via RIP, IGRP, and other dynamic routing
protocols, regardless of whether redistribute static router configuration commands were specified for
those routing protocols. These static routes are advertised because static routes that point to an interface
are considered in the routing table to be connected and hence lose their static nature. However, if you
define a static route to an interface that is not one of the networks defined in a network command, no
dynamic routing protocols will advertise the route unless a redistribute static command is specified for
these protocols.
When an interface goes down, all static routes through that interface are removed from the IP routing
table. Also, when the software can no longer find a valid next hop for the address specified as the address
of the forwarding router in a static route, the static route is removed from the IP routing table.
To define a static route to a network as the static default route, use the following command in global
configuration mode:
Command Purpose
Router(config)# ip default-network network-number Specifies a default network.
Command Purpose
Router(config-router)# maximum-paths maximum Configures the maximum number of parallel paths
allowed in a routing table.
protocols, the number of paths is controlled by the maximum-paths router configuration command. The
static route source can always install six paths. If more paths are available, the extra paths are discarded.
If some installed paths are removed from the routing table, pending routes are added automatically.
When the traffic-share min command is used with the across-interfaces keyword, an attempt is made
to use as many different interfaces as possible to forward traffic to the same destination. When the
maximum path limit has been reached and a new path is installed, the router compares the installed paths.
For example, if path X references the same interface as path Y and the new path uses a different interface,
path X is removed and the new path is installed.
To configure traffic that is distributed among multiple routes of unequal cost for equal cost paths across
multiple interfaces, use the following command in router configuration mode:
Command Purpose
Router(config-router)# traffic-share min Configures multi-interface load splitting across different
{across-interfaces} interfaces with equal cost paths.
Command Purpose
Router(config)# route-map map-tag [permit | deny] Defines any route maps needed to control
[sequence-number] redistribution.
One or more match commands and one or more set commands typically follow a route-map global
configuration command. If there are no match commands, then everything matches. If there are no set
commands, nothing is done (other than the match). Therefore, you need at least one match or set
command.
To define conditions for redistributing routes from one routing protocol into another, use at least one of
the following commands in route-map configuration mode, as needed:
Command Purpose
Router(config-route-map)# match as-path path-list-number Matches a BGP autonomous system path access list.
Router(config-route-map)# match community-list Matches a BGP community list.
community-list-number [exact]
Command Purpose
Router(config-route-map)# match ip address Matches a standard access list.
{access-list-number | access-list-name}
[...access-list-number | ...access-list-name]
Router(config-route-map)# match metric metric-value Matches the specified metric.
Router(config-route-map)# match ip next-hop Matches a next-hop router address passed by one of the
{access-list-number | access-list-name} access lists specified.
[access-list-number | access-list-name]
Router(config-route-map)# match tag tag-value [tag-value] Matches the specified tag value.
Router(config-route-map)# match interface interface-type Matches the specified next hop route out one of the
interface-number [interface-type interface-number] interfaces specified.
Router(config-route-map)# match ip route-source Matches the address specified by the specified
{access-list-number | access-list-name} advertised access lists.
[access-list-number | access-list-name]
Router(config-route-map)# match route-type {local | Matches the specified route type.
internal | external [type-1 | type-2] | level-1 | level-2}
One or more match commands and one or more set commands should follow a route-map router
configuration command. To define conditions for redistributing routes from one routing protocol into
another, use at least one of the following commands in route-map configuration mode as needed:
Command Purpose
Router(config-route-map)# set community {community-number Sets the communities attribute.
[additive]} | none
Router(config-route-map)# set dampening halflife reuse Sets BGP route dampening factors.
suppress max-suppress-time
Router(config-route-map)# set local-preference Assigns a value to a local BGP path.
number-value
Router(config-route-map)# set weight weight Specifies the BGP weight for the routing table.
Router(config-route-map)# set origin {igp | egp as-number Sets the BGP origin code.
| incomplete}
Router(config-route-map)# set as-path {tag | prepend Modifies the BGP autonomous system path.
as-path-string}
Router(config-route-map)# set next-hop next-hop Specifies the address of the next hop.
Router(config-route-map)# set automatic-tag Enables automatic computing of the tag table.
Router(config-route-map)# set level {level-1 | level-2 | Specifies the areas in which to import routes.
level-1-2 | stub-area | backbone}
Router(config-route-map)# set metric metric-value Sets the metric value to give the redistributed routes
(for any protocol except IGRP or Enhanced IGRP
[EIGRP]).
Router(config-route-map)# set metric bandwidth delay Sets the metric value to give the redistributed routes
reliability loading mtu (for IGRP or EIGRP only).
Router(config-route-map)# set metric-type {internal | Sets the metric type to give redistributed routes.
external | type-1 | type-2}
Command Purpose
Router(config-route-map)# set metric-type internal Sets the Multi Exit Discriminator (MED) value on
prefixes advertised to Exterior BGP neighbor to match
the Interior Gateway Protocol (IGP) metric of the next
hop.
Router(config-route-map)# set tag tag-value Sets the tag value to associate with the redistributed
routes.
See the “BGP Route Map Examples” section in the “Configuring BGP” chapter for examples of BGP
route maps. See the “BGP Community with Route Maps Examples” section in the “Configuring BGP”
chapter for examples of BGP communities and route maps.
To distribute routes from one routing domain into another and to control route redistribution, use the
following commands in router configuration mode:
Command Purpose
Step 1 Router(config-router)# redistribute protocol Redistributes routes from one routing protocol to
[process-id] {level-1 | level-1-2 | level-2} [metric another routing protocol.
metric-value] [metric-type type-value] [match
internal | external type-value] [tag tag-value]
[route-map map-tag] [subnets]
Step 2 Router(config-router)# default-metric number Causes the current routing protocol to use the same
metric value for all redistributed routes (BGP, OSPF,
RIP).
Step 3 Router(config-router)# default-metric bandwidth Causes the IGRP or Enhanced IGRP (EIGRP) routing
delay reliability loading mtu protocol to use the same metric value for all
non-IGRP redistributed routes.
Step 4 Router(config-router)# no default-information {in | Disables the redistribution of default information
out} between IGRP processes, which is enabled by
default.
The metrics of one routing protocol do not necessarily translate into the metrics of another. For example,
the RIP metric is a hop count and the IGRP metric is a combination of five quantities. In such situations,
an artificial metric is assigned to the redistributed route. Because of this unavoidable tampering with
dynamic information, carelessly exchanging routing information between different routing protocols can
create routing loops, which can seriously degrade network operation.
• IGRP can automatically redistribute static routes and information from other IGRP-routed
autonomous systems. IGRP assigns static routes a metric that identifies them as directly connected.
IGRP does not change the metrics of routes derived from IGRP updates from other autonomous
systems.
• Note that any protocol can redistribute other routing protocols if a default metric is in effect.
Note When routes are redistributed between OSPF processes, no OSPF metrics are preserved.
Command Purpose
Router(config-router)# passive-interface Suppresses the sending of routing updates through the
interface-type interface-number specified interface.
See the “Passive Interface Examples” section at the end of this chapter for examples of configuring
passive interfaces.
Command Purpose
Step 1 Router(config)# router protocol Configures the routing protocol on the network.
Step 2 Router(config-router)# passive-interface default Sets all interfaces as passive by default.
Step 3 Router(config-router)# no passive-interface Activates only those interfaces that need to have
interface-type adjacencies set.
Step 4 Router(config-router)# network network-address Specifies the list of networks for the routing process.
[options] The network-address argument is an IP address
written in dotted decimal notation—172.24.101.14,
for example.
See the section “Default Passive Interface Example” at the end of this chapter for an example of a default
passive interface.
To verify that interfaces on your network have been set to passive, you could enter a network monitoring
command such as the show ip ospf interface EXEC command, or you could verify the interfaces you
enabled as active using a command such as the show ip interface EXEC command.
Command Purpose
Router(config-router)# distribute-list Permits or denies routes from being advertised in
{access-list-number | access-list-name} out routing updates depending upon the action listed in the
[interface-name | routing-process | as-number]
access list.
Command Purpose
Router(config-router)# distribute-list Suppresses routes listed in updates from being
{access-list-number | access-list-name} in processed.
[interface-type interface-number]
Command Purpose
Router(config-router)# distance {ip-address {wildcard- Filters on routing information sources.
mask}} [ip-standard-list] [ip-extended]
There are no general guidelines for assigning administrative distances because each network has its own
requirements. You must determine a reasonable matrix of administrative distances for the network as a
whole. Table 9 shows the default administrative distance for various routing information sources.
For example, consider a router using IGRP and RIP. Suppose you trust the IGRP-derived routing
information more than the RIP-derived routing information. In this example, because the default IGRP
administrative distance is lower than the default RIP administrative distance, the router uses the
IGRP-derived information and ignores the RIP-derived information. However, if you lose the source of
the IGRP-derived information (because of a power shutdown in another building, for example), the
router uses the RIP-derived information until the IGRP-derived information reappears.
For an example of filtering on sources of routing information, see the section “Administrative Distance
Examples” later in this chapter.
Note You also can use administrative distance to rate the routing information from routers running the same
routing protocol. This application is generally discouraged if you are unfamiliar with this particular use
of administrative distance, because it can result in inconsistent routing information, including
forwarding loops.
Note The weight of a route can no longer be set with the distance command. To set the weight
for a route, use a route-map.
Command Purpose
Router(config-if)# ip policy route-map map-tag Identifies the route map to use for policy routing.
To define the route map to be used for policy routing, use the following command in global configuration
mode:
Command Purpose
Router(config)# route-map map-tag [permit | deny] Defines a route map to control where packets are output.
[sequence-number]
To define the criteria by which packets are examined to learn if they will be policy-routed, use either one
or both of the following commands in route-map configuration mode. No match clause in the route map
indicates all packets.
Command Purpose
Router(config-route-map)# match length minimum-length Matches the Level 3 length of the packet.
maximum-length
Router(config-route-map)# match ip address Matches the destination IP address that is permitted by
{access-list-number | access-list-name} one or more standard or extended access lists.
[access-list-number | access-list-name]
To set the precedence and specify where the packets that pass the match criteria are output, use the
following commands in route-map configuration mode:
Command Purpose
Step 1 Router(config-route-map)# set ip precedence number | name Sets the precedence value in the IP header.
Step 2 Router(config-route-map)# set ip next-hop ip-address Specifies the next hop to which to route the
[ip-address] packet.
(It must be an adjacent router).
Step 3 Router(config-route-map)# set interface interface-type Specifies the output interface for the packet.
interface-number [... interface-type interface-number]
Step 4 Router(config-route-map)# set ip default next-hop Specifies the next hop to which to route the
ip-address [ip-address] packet, if there is no explicit route for this
destination.
Note Like the set ip next-hop command, the
set ip default next-hop command needs
to specify an adjacent router.
Step 5 Router(config-route-map)# set default interface Specifies the output interface for the packet, if
interface-type interface-number [... interface-type there is no explicit route for this destination.
interface-number]
Note The set ip next-hop and set ip default next-hop are similar commands but have a different order of
operations. Configuring the set ip next-hop command causes the system to use policy routing first and
then use the routing table. Configuring the set ip default next-hop causes the system to use the routing
table first and then policy route the specified next hop.
The precedence setting in the IP header determines whether, during times of high traffic, the packets will
be treated with more or less precedence than other packets. By default, the Cisco IOS software leaves
this value untouched; the header remains with the precedence value it had.
The precedence bits in the IP header can be set in the router when policy routing is enabled. When the
packets containing those headers arrive at another router, the packets are ordered for transmission
according to the precedence set, if the queueing feature is enabled. The router does not honor the
precedence bits if queueing is not enabled; the packets are sent in FIFO order.
You can change the precedence setting, using either a number or name. The names came from RFC 791,
but are evolving. You can enable other features that use the values in the set ip precedence route-map
configuration command to determine precedence. Table 10 lists the possible numbers and their
corresponding name, from least important to most important.
Number Name
0 routine
1 priority
2 immediate
3 flash
4 flash-override
5 critical
6 internet
7 network
The set commands can be used with each other. They are evaluated in the order shown in the previous
task table. A usable next hop implies an interface. Once the local router finds a next hop and a usable
interface, it routes the packet.
Command Purpose
Router(config-route-map)# set ip next-hop Causes the router to confirm that the next hop, specified in the route
verify-availability map configuration, are active and available.
• This command relies on CDP to determine if the next hop is an
active CDP neighbor.
• If this command is not used, and the next hop is not available,
the traffic will remain forever unrouted.
• If this command is used, and the next hop is not a CDP
neighbor, the router looks to the subsequent next hop, if there
is one. If a subsequent next-hop is not defined, the packets
simply are not policy routed
• The directly connected next hop must be a Cisco device with CDP enabled.
• It is not supported for use in conjunction with dCEF, due to the dependency of the CDP neighbor
database.
If you want to selectively verify availability of only some next hops, you can configure different
route-map entries (under the same route map name) with different criteria (using access list matching or
packet size matching), and use the set ip next-hop verify-availability configuration command
selectively.
Command Purpose
Router# show route-map ipc Displays the route map IPC message statistics in the RP or VIP.
If you want policy routing to be fast switched, see the following section “Enabling Fast-Switched Policy
Routing.”
See the “Policy Routing Example” section at the end of this chapter for an example of policy routing.
Note For new policy-based routing (PBR) features in 12.4, see the following modules:
Command Purpose
Router(config-if)# ip route-cache policy Enables fast switching of policy routing.
Command Purpose
Router(config)# ip local policy route-map map-tag Identifies the route map to use for local policy routing.
Use the show ip local policy EXEC command to display the route map used for local policy routing, if
one exists.
Command Purpose
Step 1 Router(config)#key chain name-of-chain Identifies a key chain.
Step 2 Router(config-keychain)# key number Identifies the key number in key chain
configuration mode.
Step 3 Router(config-keychain-key)# key-string text Identifies the key string in key chain
configuration mode.
Command Purpose
Step 4 Router(config-keychain-key)# accept-lifetime start-time Specifies the time period during which the key
{infinite | end-time | duration seconds}] can be received.
Step 5 Router(config-keychain-key)# send-lifetime start-time Specifies the time period during which the key
{infinite | end-time | duration seconds} can be sent.
Use the show key chain EXEC command to display key chain information. For examples of key
management, see the “Key Management Examples” section at the end of this chapter.
Command Purpose
Router# clear ip route {network [mask] | *} Clears one or more routes from the IP routing table.
Command Purpose
Router# show ip cache policy Displays the cache entries in the policy route cache.
Router# show ip local policy Displays the local policy route map if one exists.
Router# show ip policy Displays policy route maps.
Router# show ip protocols Displays the parameters and current state of the active
routing protocol process.
Router# show ip route [address [mask] [longer-prefixes]] Displays the current state of the routing table.
| [protocol [process-id]]
Router# show ip route summary Displays the current state of the routing table in summary
form.
Router# show ip route supernets-only Displays supernets.
Command Purpose
Router# show key chain [name-of-chain] Displays authentication key information.
Router# show route-map [map-name] Displays all route maps configured or only the one
specified.
interface serial 0
ip address 172.17.254.1 255.255.255.252
! 2 bits of address space reserved for serial lines
Router A
Router B 172.18.3.4
Router C
10.0.0.0
1269a
Router D
The following example assigns the router with the address 192.168.7.18 an administrative distance of
100 and all other routers on subnet 192.168.7.0 an administrative distance of 200:
distance 100 192.168.7.18 0.0.0.0
distance 200 192.168.7.0 0.0.0.255
However, if you reverse the order of these two commands, all routers on subnet 192.168.7.0 are assigned
an administrative distance of 200, including the router at address 192.168.7.18:
distance 200 192.168.7.0 0.0.0.255
distance 100 192.168.7.18 0.0.0.0
Assigning administrative distances is a problem unique to each network and is done in response to the
greatest perceived threats to the connected network. Even when general guidelines exist, the network
manager must ultimately determine a reasonable matrix of administrative distances for the network as a
whole.
In the following example, the distance value for IP routes learned is 90. Preference is given to these IP
routes rather than routes with the default administrative distance value of 110.
router isis
distance 90 ip
To transfer a route to 192.168.7.0 into autonomous system 71 (without passing any other information
about autonomous system 1), use the command in the following example:
router igrp 71
redistribute igrp 1
distribute-list 3 out igrp 1
access-list 3 permit 192.168.7.0
In this example, the router global configuration command starts an IGRP routing process. The network
router configuration command specifies that network 172.16.0.0 (the regional network) is to receive
IGRP routing information. The redistribute router configuration command specifies that RIP-derived
routing information be advertised in the routing updates. The default-metric router configuration
command assigns an IGRP metric to all RIP-derived routes. The distribute-list router configuration
command instructs the Cisco IOS software to use access list 10 (not defined in this example) to limit the
number of entries in each outgoing update. The access list prevents unauthorized advertising of
university routes to the regional network.
To transfer a route from 192.168.7.0 into autonomous system 71 (without passing any other information
about autonomous system 1), use the command in the following example:
router eigrp 71
redistribute eigrp 1 route-map 1-to-71
route-map 1-to-71 permit
match ip address 3
set metric 10000 100 1 255 1500
access-list 3 permit 192.168.7.0
The following example is an alternative way to transfer a route to 192.168.7.0 into autonomous system
71. Unlike the previous configuration, this one does not allow you to arbitrarily set the metric.
router eigrp 71
redistribute eigrp 1
distribute-list 3 out eigrp 1
access-list 3 permit 192.168.7.0
In this example, the router global configuration command starts an EIGRP routing process. The
network router configuration command specifies that network 172.16.0.0 (the regional network) is to
send and receive EIGRP routing information. The redistribute router configuration command specifies
that RIP-derived routing information be advertised in the routing updates. The default-metric router
configuration command assigns an EIGRP metric to all RIP-derived routes. The distribute-list router
configuration command instructs the Cisco IOS software to use access list 10 (not defined in this
example) to limit the entries in each outgoing update. The access list prevents unauthorized advertising
of university routes to the regional network.
The following example illustrates the assignment of four area IDs to four IP address ranges. In the
example, OSPF routing process 1 is initialized, and four OSPF areas are defined: 10.9.50.0, 2, 3, and 0.
Areas 10.9.50.0, 2, and 3 mask specific address ranges, whereas area 0 enables OSPF for all other
networks.
router ospf 1
network 172.16.20.0 0.0.0.255 area 10.9.50.0
network 172.16.0.0 0.0.255.255 area 2
network 172.17.10.0 0.0.0.255 area 3
network 0.0.0.0 255.255.255.255 area 0
!
! Ethernet interface 0 is in area 10.9.50.0:
interface ethernet 0
ip address 172.16.20.5 255.255.255.0
!
! Ethernet interface 1 is in area 2:
interface ethernet 1
ip address 172.16.1.5 255.255.255.0
!
! Ethernet interface 2 is in area 2:
interface ethernet 2
ip address 172.17.2.5 255.255.255.0
!
! Ethernet interface 3 is in area 3:
interface ethernet 3
ip address 172.18.10.5 255.255.255.0
!
! Ethernet interface 4 is in area 0:
interface ethernet 4
ip address 172.19.1.1 255.255.255.0
!
! Ethernet interface 5 is in area 0:
interface ethernet 5
ip address 10.1.0.1 255.255.0.0
Each network router configuration command is evaluated sequentially, so the specific order of these
commands in the configuration is important. The Cisco IOS software sequentially evaluates the
address/wildcard-mask pair for each interface. See the “IP Routing Protocols Commands” chapter of the
Cisco IOS IP Command Reference, Volume 2 of 3: Routing Protocols publication for more information.
Consider the first network command. Area ID 10.9.50.0 is configured for the interface on which subnet
172.18.20.0 is located. Assume that a match is determined for Ethernet interface 0. Ethernet interface 0
is attached to Area 10.9.50.0 only.
The second network command is evaluated next. For Area 2, the same process is then applied to all
interfaces (except Ethernet interface 0). Assume that a match is determined for Ethernet interface 1.
OSPF is then enabled for that interface and Ethernet 1 is attached to Area 2.
This process of attaching interfaces to OSPF areas continues for all network commands. Note that the
last network command in this example is a special case. With this command, all available interfaces (not
explicitly attached to another area) are attached to Area 0.
Area 1
Router A Router B
E1 E2 Interface address:
Interface address:
192.168.1.1 192.168.1.2
Network: 192.168.1.0
Interface address:
E3 192.168.1.3
Router C
S0 Interface address:
192.168.2.3
Network: 192.168.2.0
S1 Area 0
Interface address:
Router D 192.168.2.4
E4
Interface address:
10.0.0.4
Network: 10.0.0.0 Interface address:
10.0.0.5
E5
Interface address: Remote address:
Router E S2 172.16.1.5 172.16.1.6
in autonomous
Network: 172.16.1.0
system 60000
S1030a
Note It is not necessary to include definitions of all areas in an OSPF autonomous system in the configuration
of all routers in the autonomous system. You must define only the directly connected areas. In the
example that follows, routes in Area 0 are learned by the routers in area 1 (Router A and Router B) when
the ABR (Router C) injects summary LSAs into area 1.
Autonomous system 60000 is connected to the outside world via the BGP link to the external peer at IP
address 172.16.1.6.
Following is the example configuration for the general network map shown in Figure 63.
router ospf 1
network 192.168.1.0 0.0.0.255 area 1
router ospf 1
network 192.168.1.0 0.0.0.255 area 1
Router C Configuration—ABR
interface ethernet 3
ip address 192.168.1.3 255.255.255.0
interface serial 0
ip address 192.168.2.3 255.255.255.0
router ospf 1
network 192.168.1.0 0.0.0.255 area 1
network 192.168.2.0 0.0.0.255 area 0
interface serial 1
ip address 192.168.2.4 255.255.255.0
router ospf 1
network 192.168.2.0 0.0.0.255 area 0
network 10.0.0.0 0.255.255.255 area 0
Router E Configuration—ASBR
interface ethernet 5
ip address 10.0.0.5 255.0.0.0
interface serial 2
ip address 172.16.1.5 255.255.0.0
router ospf 1
network 10.0.0.0 0.255.255.255 area 0
redistribute bgp 50000 metric 1 metric-type 1
E2
Area ID: 0
Configured as backbone area
The basic configuration tasks in this example are as follows:
• Configure address ranges for Ethernet interface 0 through Ethernet interface 3.
• Enable OSPF on each interface.
• Set up an OSPF authentication password for each area and network.
• Assign link-state metrics and other OSPF interface configuration options.
• Create a stub area with area ID 10.0.0.0. (Note that the authentication and stub options of the area
router configuration command are specified with separate area command entries, but they can be
merged into a single area command.)
• Specify the backbone area (area 0).
Configuration tasks associated with redistribution are as follows:
• Redistribute IGRP and RIP into OSPF with various options set (including metric-type, metric, tag,
and subnet).
• Redistribute IGRP and OSPF into RIP.
interface ethernet 0
ip address 192.168.110.201 255.255.255.0
ip ospf authentication-key abcdefgh
ip ospf cost 10
!
interface ethernet 1
ip address 172.19.251.201 255.255.255.0
ip ospf authentication-key ijklmnop
ip ospf cost 20
ip ospf retransmit-interval 10
ip ospf transmit-delay 2
ip ospf priority 4
!
interface ethernet 2
ip address 172.19.254.201 255.255.255.0
ip ospf authentication-key abcdefgh
ip ospf cost 10
!
interface ethernet 3
ip address 10.0.0.201 255.255.0.0
ip ospf authentication-key ijklmnop
ip ospf cost 20
ip ospf dead-interval 80
The following example redistributes RIP routes with a hop count equal to 1 into OSPF. These routes will
be redistributed into OSPF as external LSAs with a metric of 5, metric a type of type 1, and a tag equal
to 1.
router ospf 1
redistribute rip route-map rip-to-ospf
!
route-map rip-to-ospf permit
match metric 1
set metric 5
set metric-type type1
set tag 1
The following example redistributes OSPF learned routes with tag 7 as a RIP metric of 15:
router rip
redistribute ospf 1 route-map 5
!
route-map 5 permit
match tag 7
set metric 15
The following example redistributes OSPF intra-area and interarea routes with next hop routers on serial
interface 0 into BGP with an INTER_AS metric of 5:
router bgp 50000
redistribute ospf 1 route-map 10
!
route-map 10 permit
match route-type internal
match interface serial 0
set metric 5
The following example redistributes two types of routes into the integrated IS-IS routing table
(supporting both IP and CLNS). The first type is OSPF external IP routes with tag 5; these routes are
inserted into Level 2 IS-IS link-state packets (LSPs) with a metric of 5. The second type is ISO-IGRP
derived CLNS prefix routes that match CLNS access list 2000; these routes will be redistributed into
IS-IS as Level 2 LSPs with a metric of 30.
router isis
redistribute ospf 1 route-map 2
With the following configuration, OSPF external routes with tags 1, 2, 3, and 5 are redistributed into RIP
with metrics of 1, 1, 5, and 5, respectively. The OSPF routes with a tag of 4 are not redistributed.
router rip
redistribute ospf 1 route-map 1
!
route-map 1 permit
match tag 1 2
set metric 1
!
route-map 1 permit
match tag 3
set metric 5
!
route-map 1 deny
match tag 4
!
route map 1 permit
match tag 5
set metric 5
Given the following configuration, a RIP learned route for network 172.18.0.0 and an ISO-IGRP learned
route with prefix 49.0001.0002 will be redistributed into an IS-IS Level 2 LSP with a metric of 5:
router isis
redistribute rip route-map 1
redistribute iso-igrp remote route-map 1
!
route-map 1 permit
match ip address 1
match clns address 2
set metric 5
set level level-2
!
access-list 1 permit 172.18.0.0 0.0.255.255
clns filter-set 2 permit 49.0001.0002...
The following configuration example illustrates how a route map is referenced by the
default-information router configuration command. This type of reference is called conditional default
origination. OSPF will originate the default route (network 0.0.0.0) with a type 2 metric of 5 if
172.20.0.0 is in the routing table.
route-map ospf-default permit
match ip address 1
set metric 5
set metric-type type-2
!
access-list 1 172.20.0.0 0.0.255.255
!
router ospf 1
default-information originate route-map ospf-default
See more route map examples in the “BGP Route Map Examples” and “BGP Community with Route
Maps Examples” sections of the 12.4 BGP documentation.
IGRP router
S1067a
E1
No routing updates
sent to this interface
In the following example, as in the first example, IGRP updates are sent out all interfaces in the
192.168/16 network except for Ethernet interface 1. However, in this configuration a neighbor statement
is configured explicitly for the 192.168.0.2 neighbor. This neighbor statement will override the
passive-interface configuration, and all interfaces in the 192.168/16 network, including Ethernet
interface 1, will send routing advertisements to the 192.168.0.2 neighbor.
router igrp 1
network 192.168.0.0
passive-interface ethernet 1
neighbor 192.18.0.2
The passive-interface command disables the transmission and receipt of EIGRP hello packets on an
interface. Unlike IGRP or RIP, EIGRP sends hello packets in order to form and sustain neighbor
adjacencies. Without a neighbor adjacency, EIGRP cannot exchange routes with a neighbor. Therefore,
the passive-interface command prevents the exchange of routes on the interface. Although EIGRP does
not send or receive routing updates on an interface configured with the passive-interface command, it
still includes the address of the interface in routing updates sent out of other nonpassive interfaces.
Note For more information about configuring passive interfaces in EIGRP, see the How Does the Passive
Interface Feature Work in EIGRP? document on cisco.com.
In OSPF, hello packets are not sent on an interface that is specified as passive. Hence, the router will not
be able to discover any neighbors, and none of the OSPF neighbors will be able to see the router on that
network. In effect, this interface will appear as a stub network to the OSPF domain. This configuration
is useful if you want to import routes associated with a connected network into the OSPF domain without
any OSPF activity on that interface.
The passive-interface router configuration command is typically used when the wildcard specification
on the network router configuration command configures more interfaces than is desirable. The
following configuration causes OSPF to run on all subnets of 172.18.0.0:
interface ethernet 0
ip address 172.18.1.1 255.255.255.0
interface ethernet 1
ip address 172.18.2.1 255.255.255.0
interface ethernet 2
ip address 172.18.3.1 255.255.255.0
!
router ospf 1
network 172.18.0.0 0.0.255.255 area 0
If you do not want OSPF to run on 172.18.3.0, enter the following commands:
router ospf 1
network 172.18.0.0 0.0.255.255 area 0
passive-interface ethernet 2
interface async 1
ip policy route-map equal-access
!
route-map equal-access permit 10
match ip address 1
set ip default next-hop 172.16.6.6
route-map equal-access permit 20
match ip address 2
set ip default next-hop 192.168.7.7
route-map equal-access permit 30
set default interface null0
interface Fddi0
ip address 10.1.1.1 255.255.255.0
no keepalive
!
interface Fddi1
ip address 172.16.1.1 255.255.255.0
ip rip send version 1
ip rip receive version 1
no keepalive
!
router rip
version 2
network 172.19.0.0
network 10.0.0.0
network 172.16.0.0
This chapter describes how to configure IP multicast routing. For a complete description of the IP
multicast routing commands in this chapter, refer to the “IP Multicast Routing Commands” chapter of
the Cisco IOS IP Command Reference, Volume 3 of 3: Multicast. To locate documentation of other
commands in this chapter, use the command reference master index, or search online.
Traditional IP communication allows a host to send packets to a single host (unicast transmission) or to
all hosts (broadcast transmission). IP multicast provides a third scheme, allowing a host to send packets
to a subset of all hosts (group transmission). These hosts are known as group members.
Packets delivered to group members are identified by a single multicast group address. Multicast packets
are delivered to a group using best-effort reliability, just like IP unicast packets.
The multicast environment consists of senders and receivers. Any host, regardless of whether it is a
member of a group, can send to a group. However, only the members of a group receive the message.
A multicast address is chosen for the receivers in a multicast group. Senders use that address as the
destination address of a datagram to reach all members of the group.
Membership in a multicast group is dynamic; hosts can join and leave at any time. There is no restriction
on the location or number of members in a multicast group. A host can be a member of more than one
multicast group at a time.
How active a multicast group is and what members it has can vary from group to group and from time
to time. A multicast group can be active for a long time, or it may be very short-lived. Membership in a
group can change constantly. A group that has members may have no activity.
Routers executing a multicast routing protocol, such as Protocol Independent Multicast (PIM), maintain
forwarding tables to forward multicast datagrams. Routers use the Internet Group Management Protocol
(IGMP) to learn whether members of a group are present on their directly attached subnets. Hosts join
multicast groups by sending IGMP report messages.
Many multimedia applications involve multiple participants. IP multicast is naturally suitable for this
communication paradigm.
To identify the hardware platform or software image information associated with a feature, use the
Feature Navigator on Cisco.com to search for information about the feature or refer to the software
release notes for a specific release. For more information, see the “Identifying Supported Platforms”
section in the “Using Cisco IOS Software” chapter.
Internet
MBONE
Catalyst 5000
switch DVMRP
Host
CGMP
Host
PIM
43274
IGMP
IGMP
To start implementing IP multicast routing in your campus network, you must first define who receives
the multicast. IGMP provides a means to automatically control and limit the flow of multicast traffic
throughout your network with the use of special multicast queriers and hosts.
• A querier is a network device, such as a router, that sends query messages to discover which network
devices are members of a given multicast group.
• A host is a receiver, including routers, that sends report messages (in response to query messages)
to inform the querier of a host membership.
A set of queriers and hosts that receive multicast data streams from the same source is called a multicast
group. Queries and hosts use IGMP messages to join and leave multicast groups.
IP multicast traffic uses group addresses, which are Class D IP addresses. The high-order four bits of a
Class D address are 1110. Therefore, host group addresses can be in the range 224.0.0.0 to
239.255.255.255.
Multicast addresses in the range 224.0.0.0 to 224.0.0.255 are reserved for use by routing protocols and
other network control traffic. The address 224.0.0.0 is guaranteed not to be assigned to any group.
IGMP packets are transmitted using IP multicast group addresses as follows:
• IGMP general queries are destined to the address 224.0.0.1 (all systems on a subnet).
• IGMP group-specific queries are destined to the group IP address for which the router is querying.
• IGMP group membership reports are destined to the group IP address for which the router is
reporting.
• IGMP Version 2 (IGMPv2) Leave messages are destined to the address 224.0.0.2 (all routers on a
subnet).
– Note that in some old host IP stacks, Leave messages might be destined to the group IP address
rather than to the all-routers address.
IGMP Versions
IGMP messages are used primarily by multicast hosts to signal their interest in joining a specific
multicast group and to begin receiving group traffic.
The original IGMP Version 1 Host Membership model defined in RFC 1112 is extended to significantly
reduce leave latency and provide control over source multicast traffic by use of Internet Group
Management Protocol, Version 2.
• IGMP Version 1
Provides for the basic Query-Response mechanism that allows the multicast router to determine
which multicast groups are active and other processes that enable hosts to join and leave a multicast
group. RFC 1112 defines Host Extensions for IP Multicasting.
• IGMP Version 2
Extends IGMP allowing such features as the IGMP leave process, group-specific queries, and an
explicit maximum query response time. IGMP Version 2 also adds the capability for routers to elect
the IGMP querier without dependence on the multicast protocol to perform this task. RFC 2236
defines Internet Group Management Protocol, Version 2.
• IGMP Version 3
Provides for “source filtering” which enables a multicast receiver host to signal to a router which
groups it wants to receive multicast traffic from, and from which sources this traffic is expected.
PIM
The PIM protocol maintains the current IP multicast service mode of receiver-initiated membership. It
is not dependent on a specific unicast routing protocol.
PIM is defined in RFC 2362, Protocol-Independent Multicast-Sparse Mode (PIM-SM): Protocol
Specification. PIM is defined in the following Internet Engineering Task Force (IETF) Internet drafts:
• Protocol Independent Multicast (PIM): Motivation and Architecture
• Protocol Independent Multicast (PIM), Dense Mode Protocol Specification
• Protocol Independent Multicast (PIM), Sparse Mode Protocol Specification
• draft-ietf-idmr-igmp-v2-06.txt, Internet Group Management Protocol, Version 2
• draft-ietf-pim-v2-dm-03.txt, PIM Version 2 Dense Mode
PIM can operate in dense mode or sparse mode. It is possible for the router to handle both sparse groups
and dense groups at the same time.
In dense mode, a router assumes that all other routers want to forward multicast packets for a group. If
a router receives a multicast packet and has no directly connected members or PIM neighbors present, a
prune message is sent back to the source. Subsequent multicast packets are not flooded to this router on
this pruned branch. PIM builds source-based multicast distribution trees.
In sparse mode, a router assumes that other routers do not want to forward multicast packets for a group,
unless there is an explicit request for the traffic. When hosts join a multicast group, the directly
connected routers send PIM join messages toward the rendezvous point (RP). The RP keeps track of
multicast groups. Hosts that send multicast packets are registered with the RP by the first hop router of
that host. The RP then sends join messages toward the source. At this point, packets are forwarded on a
shared distribution tree. If the multicast traffic from a specific source is sufficient, the first hop router of
the host may send join messages toward the source to build a source-based distribution tree.
CGMP
CGMP is a protocol used on routers connected to Catalyst switches to perform tasks similar to those
performed by IGMP. CGMP is necessary for those Catalyst switches that cannot distinguish between IP
multicast data packets and IGMP report messages, both of which are addressed to the same group
address at the MAC level.
Command Purpose
Router(config)# ip multicast-routing Enables IP multicast routing.
Command Purpose
Router(config-if)# ip pim dense-mode Enables PIM dense mode on the interface.
See the “PIM Dense Mode Example” section later in this chapter for an example of how to configure a
PIM interface in dense mode.
Command Purpose
Router(config-if)# ip pim sparse-mode Enables PIM sparse mode on the interface.
See the “PIM Sparse Mode Example” section later in this chapter for an example of how to configure a
PIM interface in sparse mode.
Command Purpose
Router(config-if)# ip pim sparse-dense-mode Enables PIM to operate in sparse or dense mode, depending on
the group.
Command Purpose
Step 1 Router(config)# interface type number Specifies an interface and places the router in interface
configuration mode.
Step 2 Router(config-if)# ip pim state-refresh Configures the origination of the PIM Dense Mode State Refresh
origination-interval [interval] control message. Optionally, you can configure the number of
seconds between control messages by using the interval
argument. The default interval is 60 seconds. The interval range
is from 4 to 100 seconds.
Note The origination interval for the state refresh control message must be the same for all PIM routers on
the same LAN. Specifically, the same origination interval must be configured on each router interface
that is directly connected to the LAN.
See the “PIM Dense Mode State Refresh Example” section later in this chapter for an example of how
to configure the PIM Dense Mode State Refresh feature.
Command Purpose
Router(config)# ip pim rp-address rp-address Configures the address of a PIM RP.
[access-list] [override]
Configuring Auto-RP
Auto-RP is a feature that automates the distribution of group-to-RP mappings in a PIM network. This
feature has the following benefits:
• The use of multiple RPs within a network to serve different group ranges is easy.
• It allows load splitting among different RPs and arrangement of RPs according to the location of
group participants.
• It avoids inconsistent, manual RP configurations that can cause connectivity problems.
Multiple RPs can be used to serve different group ranges or serve as backups of each other. To make
Auto-RP work, a router must be designated as an RP-mapping agent, which receives the
RP-announcement messages from the RPs and arbitrates conflicts. The RP-mapping agent then sends the
consistent group-to-RP mappings to all other routers. Thus, all routers automatically discover which RP
to use for the groups they support.
Note If you configure PIM in sparse mode or sparse-dense mode and do not configure Auto-RP, you must
statically configure an RP as described in the section “Assigning an RP to Multicast Groups” later in
this chapter.
Note If router interfaces are configured in sparse mode, Auto-RP can still be used if all routers are
configured with a static RP address for the Auto-RP groups.
Choosing a Default RP
Sparse mode environments need a default RP; sparse-dense mode environments do not. If you have
sparse-dense mode configured everywhere, you need not choose a default RP.
Adding Auto-RP to a sparse mode cloud requires a default RP. In an existing PIM sparse mode region,
at least one RP is defined across the network that has good connectivity and availability. That is, the ip
pim rp-address command is already configured on all routers in this network.
Use that RP for the global groups (for example, 224.x.x.x and other global groups). There is no need to
reconfigure the group address range that RP serves. RPs discovered dynamically through Auto-RP take
precedence over statically configured RPs. Assume it is desirable to use a second RP for the local groups.
Command Purpose
Router(config)# ip pim send-rp-announce type number Configures a router to be the RP.
scope ttl-value [group-list access-list]
[interval seconds]
To change the group ranges this RP optimally will serve in the future, change the announcement setting
on the RP. If the change is valid, all other routers automatically will adopt the new group-to-RP mapping.
The following example advertises the IP address of Ethernet interface 0 as the RP for the
administratively scoped groups:
ip pim send-rp-announce ethernet0 scope 16 group-list 1
access-list 1 permit 239.0.0.0 0.255.255.255
Find a router whose connectivity is not likely to be interrupted and assign it the role of RP-mapping
agent. All routers within time-to-live (TTL) number of hops from the source router receive the Auto-RP
discovery messages. To assign the role of RP mapping agent in that router, use the following command
in global configuration mode:
Command Purpose
Router(config)# ip pim send-rp-discovery scope Assigns the RP mapping agent.
ttl-value
Command Purpose
Router# show ip pim rp [mapping | metric] Displays active RPs that are cached with associated multicast
[rp-address] routing entries. Information learned by configuration or Auto-RP.
Command Purpose
Router(config)# ip pim rp-announce-filter rp-list Filters incoming RP announcement messages.
access-list group-list access-list
Command Purpose
Router(config-if)# ip igmp join-group group-address Joins a multicast group.
Command Purpose
Router(config-if)# ip igmp access-group access-list Controls the multicast groups that hosts on the subnet serviced
by an interface can join.
Command Purpose
Router(config-if)# ip igmp version {3 | 2 | 1} Selects the IGMP version that the router uses.
Command Purpose
Router(config-if)# ip igmp query-interval seconds Configures the frequency at which the designated router sends
IGMP host-query messages.
Command Purpose
Router(config-if)# ip igmp query-timeout seconds Sets the IGMP query timeout.
IGMPv3 is the industry-designated standard protocol for hosts to signal channel subscriptions in Source
Specific Multicast (SSM). For SSM to rely on IGMPv3, IGMPv3 must be available in last hop routers
and host operating system network stacks, and be used by the applications running on those hosts.
In SSM deployment cases where IGMPv3 cannot be used because it is not supported by the receiver host
or the receiver applications, two Cisco-developed transition solutions enable the immediate deployment
of SSM services: URL Rendezvous Directory (URD) and IGMP Version 3 lite (IGMP v3lite). For more
information on URD and IGMP v3lite, see the “Configuring Source Specific Multicast” chapter in this
document.
Restrictions
Traffic Filtering with Multicast Groups That Are Not Configured in SSM Mode
IGMPv3 membership reports are not utilized by Cisco IOS software to filter or restrict traffic for
multicast groups that are not configured in SSM mode. Effectively, Cisco IOS software interprets all
IGMPv3 membership reports for groups configured in dense, sparse, or bidirectional mode to be group
membership reports and forwards traffic from all active sources onto the network.
You must be careful when using IGMPv3 with switches that support and are enabled for IGMP snooping,
because IGMPv3 messages are different from the messages used in IGMP Version 1 (IGMPv1) and
Version 2 (IGMPv2). If a switch does not recognize IGMPv3 messages, then hosts will not correctly
receive traffic if IGMPv3 is being used. In this case, either IGMP snooping may be disabled on the
switch or the router may be configured for IGMPv2 on the interface (which would remove the ability to
use SSM for host applications that cannot resort to URD or IGMP v3lite).
Networks using CGMP will have better group leave behavior if they are configured with IGMPv2 than
IGMPv3. If CGMP is used with IGMPv2 and the switch is enabled for the CGMP leave functionality,
then traffic to a port joined to a multicast group will be removed from the port shortly after the last
member on that port has dropped membership to that group. This fast-leave mechanism is part of
IGMPv2 and is specifically supported by the CGMP fast-leave enabled switch.
With IGMPv3, there is currently no CGMP switch support of fast leave. If IGMPv3 is used in a network,
CGMP will continue to work, but CGMP fast-leave support is ineffective and the following conditions
apply:
• Each time a host on a new port of the CGMP switch joins a multicast group, that port is added to the
list of ports to which the traffic of this group is sent.
• If all hosts on a particular port leave the multicast group, but there are still hosts on other ports (in
the same virtual LAN) joined to the group, then nothing happens. In other words, the port continues
to receive traffic from that multicast group.
• Only when the last host in a virtual LAN (VLAN) has left the multicast group does forwarding of
the traffic of this group into the VLAN revert to no ports on the switch forwarding.
This join behavior only applies to multicast groups that actually operate in IGMPv3 mode. If legacy
hosts only supporting IGMPv2 are present in the network, then groups will revert to IGMPv2 and fast
leave will work for these groups.
If fast leave is needed with CGMP-enabled switches, we recommend that you not enable IGMPv3 but
configure IGMPv2 on that interface.
If IGMPv3 is needed to support SSM, then you have two configuration alternatives as follows:
• Configure only the interface for IGMPv2 and use IGMP v3lite and URD.
• Enable IGMPv3 and accept the higher leave latencies through the CGMP switch.
Command Purpose
Router(config-if)# ip igmp query-timeout seconds Sets the IGMP query timeout.
Command Purpose
Router(config-if)# ip igmp Sets the maximum query response time advertised in IGMP queries.
query-max-response-time seconds
Command Purpose
Router(config-if)# ip igmp static-group Configures the router as a statically connected member of a group.
group-address
Command Purpose
Router(config-if)# ip igmp Configures the interval at which the router sends IGMP
last-member-query-interval interval group-specific or group-source-specific (with IGMPv3) query
messages.
To change the values of the LMQC, use the following commands in interface configuration mode:
Command Purpose
Router(config-if)# ip igmp Configures the number of times that the router sends IGMP
last-member-query-count lmqc group-specific or group-source-specific (with IGMPv3) query
messages.
Command Purpose
Router(config-if)# ip multicast ttl-threshold Configures the TTL threshold of packets being forwarded out an
ttl-value interface.
Command Purpose
Router(config-if)# no ip mroute-cache Disables fast switching of IP multicast.
properties (for example, contact information, session lifetime, and the media) being used in the session
(for example, audio, video, and whiteboard) with their specific attributes like TTL scope, group address,
and User Datagram Protocol (UDP) port number.
Many multimedia applications rely on SDP for session descriptions. However, they may use different
methods to disseminate these session descriptions. For example, IP/TV relies on the Web to disseminate
session descriptions to participants. In this example, participants must know of a Web server that
provides the session information.
MBONE applications (for example, vic, vat, and wb) and other applications rely on multicast session
information sent throughout the network. In these cases, a protocol called Session Announcement
Protocol (SAP) is used to transport the SDP session announcements. SAP Version 2 uses the well-known
session directory multicast group 224.2.127.254 to disseminate SDP session descriptions for global
scope sessions and group 239.255.255.255 for administrative scope sessions.
Note The Session Directory (SDR) application is commonly used to send and receive SDP/SAP session
announcements.
To enable the Cisco IOS software to listen to Session Directory announcements, use the following
command on a multicast-enabled interface in interface configuration mode:
Command Purpose
Router(config-if)# ip sap listen Enables the Cisco IOS software to listen to Session Directory
announcements.
Command Purpose
Router(config)# ip sap cache-timeout Limits how long a SAP cache entry stays active in the cache.
If you configure this feature, IP multicast transmissions over Token Ring interfaces are more efficient
than they formerly were. This feature reduces the load on other machines that do not participate in IP
multicast because they do not process these packets.
The following restrictions apply to the Token Ring functional address:
• This feature can be configured only on a Token Ring interface.
• Neighboring devices on the Token Ring on which this feature is used should also use the same
functional address for IP multicast traffic.
• Because there are a limited number of Token Ring functional addresses, other protocols could be
assigned to the Token Ring functional address 0xc000.0004.0000. Therefore, not every frame sent
to the functional address is necessarily an IP multicast frame.
To enable the mapping of IP multicast addresses to the Token Ring functional address
0xc000.0004.0000, use the following command in interface configuration mode:
Command Purpose
Router(config-if)# ip multicast use-functional Enables the mapping of IP multicast addresses to the Token Ring
functional address.
For an example of configuring the functional address, see the section “Functional Address for IP
Multicast over Token Ring LAN Example” later in this chapter.
Either the BSR or Auto-RP should be chosen for a given range of multicast groups. If there are PIM
Version 1 routers in the network, do not use the BSR.
The Cisco PIM Version 2 implementation allows interoperability and transition between Version 1 and
Version 2, although there might be some minor problems. You can upgrade to PIM Version 2
incrementally. PIM Versions 1 and 2 can be configured on different routers within one network.
Internally, all routers on a shared media network must run the same PIM version. Therefore, if a PIM
Version 2 router detects a PIM Version 1 router, the Version 2 router downgrades itself to Version 1 until
all Version 1 routers have been shut down or upgraded.
PIM uses the BSR to discover and announce RP-set information for each group prefix to all the routers
in a PIM domain. This is the same function accomplished by Auto-RP, but the BSR is part of the PIM
Version 2 specification.
To avoid a single point of failure, you can configure several candidate BSRs in a PIM domain. A BSR is
elected among the candidate BSRs automatically; they use bootstrap messages to discover which BSR
has the highest priority. This router then announces to all PIM routers in the PIM domain that it is the
BSR.
Routers that are configured as candidate RPs then unicast to the BSR the group range for which they are
responsible. The BSR includes this information in its bootstrap messages and disseminates it to all PIM
routers in the domain. Based on this information, all routers will be able to map multicast groups to
specific RPs. As long as a router is receiving the bootstrap message, it has a current RP map.
Prerequisites
• When PIM Version 2 routers interoperate with PIM Version 1 routers, Auto-RP should have already
been deployed.
• Because bootstrap messages are sent hop by hop, a PIM Version1 router will prevent these messages
from reaching all routers in your network. Therefore, if your network has a PIM Version 1 router in
it, and only Cisco routers, it is best to use Auto-RP rather than the bootstrap mechanism.
• If you have routers other than Cisco in your network, you need to use the bootstrap mechanism.
To configure PIM Version 2, perform the tasks described in the following sections. The tasks in the first
section are required; the tasks in the remaining sections are optional.
• Specifying the PIM Version (Required)
• Configuring PIM Version 2 Only (Optional)
• Making the Transition to PIM Version 2 (Optional)
• Monitoring the RP Mapping Information (Optional)
Command Purpose
Router(config-if)# ip pim version [1 | 2] Configures the PIM version used.
Command Purpose
Step 1 Router(config)# ip multicast-routing Enables IP multicast routing.
Step 2 Router(config)# interface type number Configures an interface.
Step 3 Router(config-if)# ip pim sparse-dense-mode Enables PIM on the interface. The sparse-dense mode is
identical to the implicit interface mode in the PIM Version 2
specification.
Repeat Steps 2 and 3 for each interface on which you want to run PIM.
To prevent BSR messages from being sent or received through an interface, use the following command
in interface configuration mode:
Command Purpose
Router(config-if)# ip pim bsr-border Prevents BSR messages from being sent or received through an
interface.
To prevent Auto-RP messages from being sent or received through an interface, use the following
commands beginning in global configuration mode. The access list denies packets destined for the
224.0.1.39 and 224.0.1.40 multicast groups. These two groups are specifically assigned to carry
Auto-RP information.
Command Purpose
Step 1 Router(config)# access-list Defines an administratively scoped boundary.
access-list-number {deny | permit} source
[source-wildcard]
Step 2 Router(config-if)# ip multicast boundary Prevents Auto-RP messages (used in PIM Version 1) from being
access-list sent or received through an interface.
Note The Cisco IOS implementation of PIM BSR uses the value 0 as the default priority for candidate RPs
and BSRs. This implementation predates the draft-ietf-pim-sm-bsr IETF draft, the first IETF draft to
specify 192 as the default priority value. The Cisco IOS implementation, thus, deviates from the IETF
draft. To comply with the default priority value specified in the draft, you must explicitly set the priority
value to 192.
To configure a router to be a candidate BSR, use the following command in global configuration mode:
Command Purpose
Router(config)# ip pim bsr-candidate type number Configures the router to be a candidate BSR.
hash-mask-length [priority]
Note The Cisco IOS implementation of PIM BSR uses the value 0 as the default priority for candidate RPs
and BSRs. This implementation predates the draft-ietf-pim-sm-bsr IETF draft, the first IETF draft to
specify 192 as the default priority value. The Cisco IOS implementation, thus, deviates from the IETF
draft. To comply with the default priority value specified in the draft, you must explicitly set the priority
value to 192.
Consider the following scenarios when deciding which routers should be RPs:
• In a network of Cisco routers where only Auto-RP is used, any router can be configured as an RP.
• In a network of routers that includes only Cisco PIM Version 2 routers and routers from other
vendors, any router can be used as an RP.
• In a network of Cisco PIM Version 1 routers, Cisco PIM Version 2 routers, and routers from other
vendors, only Cisco PIM Version 2 routers should be configured as RPs.
To configure a router to be a candidate RP, use the following command in global configuration mode:
Command Purpose
Router(config)# ip pim rp-candidate type number Configures the router to be a candidate RP.
[group-list access-list] [priority value]
For examples of configuring PIM Version 2, see the section “PIM Version 2 Examples” later in this
chapter.
Note The Cisco IOS implementation of PIM BSR selects an RP from a set of candidate RPs using a method
that is incompatible with the specification in RFC 2362. Refer to CSCdy56806 using the Cisco Bug
Toolkit for more information. See the “RFC 2362 Interoperable Candidate RP Example” section on
page 450 for a configuration workaround.
Dense Mode
Dense mode groups in a mixed Version 1/Version 2 region need no special configuration; they will
interoperate automatically.
Sparse Mode
Sparse mode groups in a mixed Version 1/Version 2 region are possible because the Auto-RP feature in
Version 1 interoperates with the RP feature of Version 2. Although all PIM Version 2 routers also can
use Version 1, we recommend that the RPs be upgraded to Version 2 (or at least upgraded to PIM Version
1 in the Cisco IOS Release 11.3 software).
To ease the transition to PIM Version 2, we also recommend the following configuration:
• Auto-RP be used throughout the region
• Sparse-dense mode be configured throughout the region
If Auto-RP was not already configured in the PIM Version 1 regions, configure Auto-RP. See the section
“Configuring Auto-RP” earlier in this chapter.
Command Purpose
Router# show ip pim bsr Displays information about the currently elected BSR.
Router# show ip pim rp-hash [group-address Displays the RP that was selected for the specified group.
| group-name]
Router# show ip pim rp mapping [rp-address] Displays how the router learns of the RP (via bootstrap or
Auto-RP mechanism).
Source
Router A Router B
Source tree
Shared tree
(shortest
from RP
path tree)
Router C RP
43275
Receiver
If the data rate warrants, leaf routers on the shared tree may initiate a switch to the data distribution tree
rooted at the source. This type of distribution tree is called a shortest-path tree or source tree. By default,
the Cisco IOS software switches to a source tree upon receiving the first data packet from a source.
The following process describes the move from shared tree to source tree in more detail:
1. Receiver joins a group; leaf Router C sends a join message toward RP.
2. RP puts link to Router C in its outgoing interface list.
3. Source sends data; Router A encapsulates data in a register message and sends it to RP.
4. RP forwards data down the shared tree to Router C and sends a join message toward Source. At this
point, data may arrive twice at Router C, once encapsulated and once natively.
5. When data arrives natively (through multicast) at RP, RP sends a register-stop message to Router A.
6. By default, reception of the first data packet prompts Router C to send a join message toward Source.
7. When Router C receives data on (S, G), it sends a prune message for Source up the shared tree.
8. RP deletes the link to Router C from the outgoing interface of (S, G). RP triggers a prune message
toward Source.
Join and prune messages are sent for sources and RPs. They are sent hop-by-hop and are processed by
each PIM router along the path to the source or RP. Register and register-stop messages are not sent
hop-by-hop. They are sent by the designated router that is directly connected to a source and are received
by the RP for the group.
Multiple sources sending to groups used the shared tree.
The network manager can configure the router to stay on the shared tree, as described in the following
section, “Delaying the Use of PIM Shortest-Path Tree.”
Command Purpose
Router(config)# ip pim spt-threshold {kbps | Specifies the threshold that must be reached before moving to
infinity} [group-list access-list] shortest-path tree.
Command Purpose
Router(config)# ip pim rp-address rp-address Assigns an RP to multicast groups.
[access-list] [override]
Command Purpose
Router(config)# ip pim accept-rp {rp-address | Controls which RPs the local router will accept join messages from.
auto-rp} [access-list]
Command Purpose
Router(config-if)# ip pim query-interval Configures the frequency at which multicast routers send PIM
seconds router query messages.
Command Purpose
Router(config)# ip pim register-rate-limit rate Sets a limit on the maximum number of PIM-SM register
messages sent per second for each (S, G) routing entry.
Dataless register messages are sent at a rate of 1 message per second. Continuous high rates of register
messages may occur if a DR is registering bursty sources (sources with high data rates) and if the RP is
not running PIM Version 2.
By default, this command is not configured and register messages are sent without limiting their rate.
Enabling this command will limit the load on the DR and RP at the expense of dropping those register
messages that exceed the set limit. Receivers may experience data packet loss within the first second in
which packets are sent from bursty sources.
Command Purpose
Router(config)# ip pim register-source type number Configures the IP source address of a register message.
Command Purpose
Router(config-if)# ip pim dense-mode Enables proxy registering on the interface of a DR (leading
[proxy-register {list access-list | route-map toward the bordering dense mode region) for multicast traffic
map-name}]
from sources not connected to the DR.
For traffic from DVMRP neighbors, proxy registering is always active and cannot be influenced by the
ip pim dense-mode proxy-register interface configuration command. For dense mode or DVMRP
regions, proxy registering allows for limited interoperability between a dense mode region and a sparse
mode domain. This limitation is referred to as “receiver must also be sender.” The “receiver must also
be sender” limit exists because there is no mechanism in dense mode protocols to convey the existence
of receiver-only hosts to a border router, and the flooding (and pruning) of all multicast traffic originated
in the dense mode domain inhibits the purpose of a sparse mode domain. The behavior of participating
hosts in the dense mode region is as follows:
• A host in the dense mode region is only guaranteed to receive traffic from sources in the sparse mode
domain through the proxy registering border router if at least one host is in the dense mode region
that is a sender for the multicast group. This host is typically the receiving host itself.
• A sender in the dense mode region will trigger proxy registering in the border router, which in turn
will cause the border router to join the multicast group and forward traffic from sources in the sparse
mode domain toward the dense mode region.
• If no sender is in the dense mode region for a multicast group, then no traffic will be forwarded into
the dense mode region.
Command Purpose
Router(config-if)# ip pim nbma-mode Enables PIM NBMA mode.
Consider the following two factors before enabling PIM NBMA mode:
• If the number of neighbors grows, the outgoing interface list gets large, which costs memory and
replication time.
• If the network (Frame Relay, SMDS, or ATM) supports multicast natively, you should use it so that
replication is performed at optimal points in the network.
MR 1 UR 1 UR 2 MR 2
Source Destination
43278
Link
Tunnel
In Figure 68, Source delivers multicast packets to Destination by using MR 1 and MR 2. MR 2 accepts
the multicast packet only if it believes it can reach Source over the tunnel. If this situation is true, when
Destination sends unicast packets to Source, MR 2 sends them over the tunnel. Sending the packet over
the tunnel could be slower than natively sending the it through UR 2, UR 1, and MR 1.
Prior to multicast static routes, the configuration in Figure 69 was used to overcome the problem of both
unicasts and multicasts using the tunnel. In this figure, MR 1 and MR 2 are used as multicast routers
only. When Destination sends unicast packets to Source, it uses the (UR 3, UR 2, UR 1) path. When
Destination sends multicast packets, the UR routers do not understand or forward them. However, the
MR routers forward the packets.
UR 1 UR 2 UR 3
Source MR 1 MR 2 Destination
43279
Link
Tunnel
To make the configuration in Figure 69 work, MR 1 and MR 2 must run another routing protocol
(typically a different instantiation of the same protocol running in the UR routers), so that paths from
sources are learned dynamically.
A multicast static route allows you to use the configuration in Figure 68 by configuring a static multicast
source. The Cisco IOS software uses the configuration information instead of the unicast routing table.
Therefore, multicast packets can use the tunnel without having unicast packets use the tunnel. Static
mroutes are local to the router they are configured on and not advertised or redistributed in any way to
any other router.
To configure a multicast static route, use the following command in global configuration mode:
Command Purpose
Router(config)# ip mroute source-address mask Configures an IP multicast static route.
[protocol as-number] {rpf-address | type number}
[distance]
Command Purpose
Router(config-if)# ip multicast rate-limit {in | Controls transmission rate to a multicast group.
out} [video | whiteboard] [group-list access-list]
[source-list access-list] kbps
3 to 5 bytes
Payload
S5925
IP/UDP/RTP header 20 to 160 bytes
The RTP header compression feature compresses the IP/UDP/RTP header in an RTP data packet from
40 bytes to approximately 2 to 5 bytes, as shown in Figure 70. It is a hop-by-hop compression scheme
similar to RFC 1144 for TCP/IP header compression. Using RTP header compression can benefit both
telephony voice and MBONE applications running over slow links.
RTP header compression is supported on serial lines using Frame Relay, High-Level Data Link Control
(HDLC), or PPP encapsulation. It is also supported over ISDN interfaces.
Enabling compression on both ends of a low-bandwidth serial link can greatly reduce the network
overhead if substantial amounts of RTP traffic are on that slow link. This compression is beneficial
especially when the RTP payload size is small (for example, compressed audio payloads of 20 to 50
bytes). Although the MBONE-style RTP traffic has higher payload sizes, compact encodings such as
code excited linear prediction (CELP) compression can also help considerably.
Before you can enable RTP header compression, you must have configured a serial line that uses either
Frame Relay, HDLC, or PPP encapsulation, or an ISDN interface. To configure RTP header
compression, perform the tasks described in the following sections. Either one of the first two tasks is
required.
• Enabling RTP Header Compression on a Serial Interface
• Enabling RTP Header Compression with Frame Relay Encapsulation
• Changing the Number of Header Compression Connections
You can compress the IP/UDP/RTP headers of RTP traffic to reduce the size of your packets, making
audio or video communication more efficient. You must enable compression on both ends of a serial
connection.
RTP header compression occurs in either the fast-switched or CEF-switched path, depending on whether
certain prerequisites are met. Otherwise, it occurs in the process-switched path. For more information
about where RTP header compression occurs, see the section “Enabling Express RTP Header
Compression” later in this document.
Command Purpose
Router(config-if)# ip rtp header-compression Enables RTP header compression.
[passive]
If you include the passive keyword, the software compresses outgoing RTP packets only if incoming
RTP packets on the same interface are compressed. If you use the command without the passive
keyword, the software compresses all RTP traffic.
See the “RTP Header Compression Examples” section later in this chapter for an example of how to
enable RTP header compression on a serial interface.
Command Purpose
Router(config-if)# frame-relay ip rtp Enables RTP header compression on the physical interface, and
header-compression [passive] all the interface maps inherit it. Subsequently, all maps will
perform RTP/IP header compression.
Router(config-if)# frame-relay map ip ip-address Enables RTP header compression only on the particular map
dlci [broadcast] rtp header-compression [active | specified.
passive] [connections number]
Router(config-if)# frame-relay map ip ip-address Enables both RTP and TCP header compression on this link.
dlci [broadcast] compress [active | passive]
[connections number]
See the “RTP Header Compression Examples” section later in this chapter for an example of how to
enable RTP header compression with Frame Relay encapsulation.
To disable RTP and TCP header compression with Frame Relay encapsulation, use the following
command in interface configuration mode:
Command Purpose
Router(config-if)# frame-relay map ip ip-address Disables both RTP and TCP header compression on this link.
dlci [broadcast] nocompress
By default, for PPP or HDLC encapsulation, the software allows 32 RTP header compression
connections (16 calls). This default can be increased to a maximum of 1000 RTP header compression
connections on an interface.
To change the number of compression connections supported, use the following command in interface
configuration mode:
Command Purpose
Router(config-if)# frame-relay ip rtp Specifies the maximum number of RTP header compression
compression-connections number connections supported on the Frame Relay interface.
Router(config-if)# ip rtp Specifies the total number of RTP header compression connections
compression-connections number supported on the PPP or HDLC interface.
See the “RTP Header Compression Examples” section later in this chapter for an example of how to
change the number of header compression connections.
In order for the Express RTP Header Compression feature to work, the following conditions must exist:
• CEF switching or fast switching must be enabled on the interface.
• HDLC, PPP, or Frame Relay encapsulation must be configured.
• RTP header compression must be enabled.
The Express RTP Header Compression feature supports the following RFCs:
• RFC 1144, Compressing TCP/IP Headers for Low-Speed Serial Links
• RFC 2507, IP Header Compression
• RFC 2508, Compressing IP/UDP/RTP Headers for Low-Speed Serial Links
Source
Router A
Router B Router C
Multiaccess
WAN
Router D Router E
Leaf 43280
Receiver Receiver
With the advent of IP multicast, where high-rate multicast traffic can occur, that approach does not scale.
Furthermore, in the preceding example, routers B and C would get data traffic they do not need. To
handle this problem, PIM can be configured in NBMA mode using the ip pim nbma-mode interface
configuration command. PIM in NBMA mode works only for sparse mode groups. Configuring PIM in
NBMA mode would allow only routers D and E to get the traffic without distributing to routers B and C.
However, two copies are still delivered over the link from Router A to the multiaccess WAN.
If the underlying network supported multicast capability, the routers could handle this situation more
efficiently. If the multiaccess WAN were an ATM network, IP multicast could use multipoint VCs.
To configure IP multicast using multipoint VCs, routers A, B, C, D, and E in Figure 71 must run PIM
sparse mode. If the Receiver directly connected to Router D joins a group and A is the PIM RP, the
following sequence of events occur:
1. Router D will send a PIM join message to Router A.
2. When Router A receives the PIM join, it sets up a multipoint VC for the multicast group.
3. Later, when the Receiver directly connected to Router E joins the same group, E will send a PIM
join message to Router A.
4. Router A will see there is a multipoint VC already associated with the group, and will add Router E
to the existing multipoint VC.
5. When the Source sends a data packet, Router A can send a single packet over its link that gets to
both Router D and Router E. The replication occurs in the ATM switches at the topological diverging
point from Router A to Router D and Router E.
If a host sends an IGMP report over an ATM interface to a router, the router adds the host to the
multipoint VC for the group.
This feature can also be used over ATM subinterfaces.
You must have ATM configured for multipoint signalling. Refer to the “Configuring ATM” chapter in
the Cisco IOS Wide-Area Networking Configuration Guide for more information on how to configure
ATM for point-to-multipoint signalling.
You also must have IP multicast routing and PIM sparse mode configured. This feature does not work
with PIM dense mode.
To configure IP multicast over ATM point-to-multipoint VCs, perform the tasks described in the
following sections. The task in the first section is required; the task in the remaining section is optional.
• Enabling IP Multicast over ATM Point-to-Multipoint VCs (Required)
• Limiting the Number of VCs (Optional)
Command Purpose
Step 1 Router(config-if)# ip pim multipoint-signalling Enables IP multicast over ATM point-to-multipoint VCs.
Step 2 Router(config-if)# atm multipoint-signalling Enables point-to-multipoint signaling to the ATM
switch.
The atm multipoint-signaling interface configuration command is required so that static map
multipoint VCs can be opened. The router uses existing static map entries that include the broadcast
keyword to establish multipoint calls. You must have the map list to act like a static ARP table.
Use the show ip pim vc EXEC command to display ATM VC status information for multipoint VCs
opened by PIM.
See the “IP Multicast over ATM Point-to-Multipoint VC Example” section later in this chapter for an
example of how to enable IP multicast over ATM point-to-multipoint VCs.
Command Purpose
Router(config-if)# ip pim vc-count number Changes the maximum number of VCs that PIM can open.
Idling Policy
An idling policy uses the ip pim vc-count number interface configuration command to limit the number
of VCs created by PIM. When the router stays at or below this number value, no idling policy is in effect.
When the next VC to be opened will exceed the number value, an idling policy is exercised. An idled
VC does not mean that the multicast traffic is not forwarded; the traffic is switched to VC 0. The VC 0
is the broadcast VC that is open to all neighbors listed in the map list. The name “VC 0” is unique to
PIM and the mrouting table.
Command Purpose
Router(config-if)# ip pim minimum-vc-rate pps Sets the minimum activity rate required to keep VCs from being
idled.
Command Purpose
Step 1 Router(config)# access-list access-list-number Creates a standard access list, repeating the command as
{deny | permit} source [source-wildcard] many times as necessary.
Note An access-list entry that uses the deny keyword
creates a multicast boundary for packets that match
that entry.
Step 2 Router(config)# interface type number Configures an interface.
Step 3 Router(config-if)# ip multicast boundary Configures the boundary, specifying the access list you
access-list [filter-autorp] created in Step 1. Optionally configures Auto-RP message
filtering.
See the section “Administratively Scoped Boundary Example” later in this chapter for an example of
configuring a boundary.
To configure an intermediate IP multicast helper, the first hop router and the last hop router must be
configured. To configure the first hop router, use the following commands beginning in global
configuration mode:
Command Purpose
Step 1 Router(config)# interface type number Specifies an interface.
Step 2 Router(config-if)# ip multicast helper-map Configures a first hop router to convert broadcast
broadcast multicast-address access-list traffic to multicast traffic.
Step 3 Router(config-if)# ip directed-broadcast Configures directed broadcasts.
Step 4 Router(config)# ip forward-protocol udp [port] Configures IP to forward the protocol you are using.
After configuring the first hop router, use the following commands on the last hop router beginning in
global configuration mode:
Command Purpose
Step 1 Router(config)# interface type number Specifies an interface.
Step 2 Router(config-if)# ip directed-broadcast Configures directed broadcasts.
Step 3 Router(config-if)# ip multicast helper-map Configures a last hop router to convert multicast traffic
group-address broadcast-address to broadcast traffic.
extended-access-list-number
Step 4 Router(config)# access-list access-list-number Configures an access list.
{deny | permit} udp source source-wildcard
destination destination-wildcard port
Step 5 Router(config)# ip forward-protocol udp [port] Configures IP to forward the protocol you are using.
Note On the last hop router, the ip multicast helper-map interface configuration command automatically
introduces ip igmp join-group group-address on that interface. This command must stay on that
interface for the intermediate IP multicast helper feature to work. If you remove the ip igmp
join-group command, the feature will fail.
To allocate a circular buffer to store IP multicast packet headers that the router receives, use the
following command in global configuration mode:
Command Purpose
Router(config)# ip multicast cache-headers Allocates a buffer to store IP multicast packet headers.
Note The ip multicast cache-headers global configuration command allocates a circular buffer of
approximately 32 KB.
Enabling CGMP
CGMP is a protocol used on routers connected to Catalyst switches to perform tasks similar to those
performed by IGMP. CGMP is necessary because the Catalyst switch cannot distinguish between IP
multicast data packets and IGMP report messages, which are both at the MAC level and are addressed
to the same group address.
Enabling CGMP triggers a CGMP join message. CGMP should be enabled only on 802 or ATM media,
or LAN emulation (LANE) over ATM. CGMP should be enabled only on routers connected to Catalyst
switches.
To enable CGMP for IP multicast on a LAN, use the following command in interface configuration
mode:
Command Purpose
Router(config-if)# ip cgmp [proxy] Enables CGMP.
When the proxy keyword is specified, the CGMP proxy function is enabled. That is, any router that is
not CGMP-capable will be advertised by the proxy router. The proxy router advertises the existence of
other non-CGMP-capable routers by sending a CGMP join message with the MAC address of the
non-CGMP-capable router and group address of 0000.0000.0000.
Stub IP multicast routing allows stub sites to be configured quickly and easily for basic multicast
connectivity, without the flooding of multicast packets and subsequent group pruning that occurs in
dense mode, and without excessive administrative burden at the central site.
Before configuring stub IP multicast routing, you must have IP multicast routing configured on both the
stub router and the central router. You must also have PIM dense mode configured on both the incoming
and outgoing interfaces of the stub router.
Two steps are required to enable stub IP multicast routing. One task is performed on the stub router, and
the other is performed on a central router one hop away from the stub router. By definition, a stub region
is marked by a leaf router. That is, the stub router (leaf router) is the last stop before any hosts receiving
multicast packets or the first stop for anyone sending multicast packets.
The first step is to configure the stub router to forward all IGMP host reports and leave messages
received on the interface to an IP address. The reports are re-sent out the next hop interface toward the
IP address, with the source address of that interface. This action enables a sort of “dense mode” join
message, allowing stub sites not participating in PIM to indicate membership in multicast groups.
To configure the stub router to forward IGMP host reports and leave messages, use the following
command in interface configuration mode. Specify the IP address of an interface on the central router.
When the central router receives IGMP host report and leave messages, it appropriately adds or removes
the interface from its outgoing list for that group.
Command Purpose
Router(config-if)# ip igmp helper-address On the stub router, forwards all IGMP host reports and leave
ip-address messages to the specified IP address on a central router.
The second step is to configure an access list on the central router to filter all PIM control messages from
the stub router. Thus, the central router does not by default add the stub router to its outgoing interface
list for any multicast groups. This task has the side benefit of preventing a misconfigured PIM neighbor
from participating in PIM.
To filter PIM control messages, use the following command in interface configuration mode:
Command Purpose
Router(config-if)# ip pim neighbor-filter On the central router, filters all PIM control messages based on
access-list the specified access list.
For an example of stub IP multicast routing, see the section “Stub IP Multicast Example” later in this
chapter.
Command Purpose
Router(config)# ip multicast multipath Enables load splitting of IP multicast traffic across multiple
equal-cost paths.
When the ip multicast multipath global configuration command is configured and multiple equal-cost
paths exist, the path in which multicast traffic will travel is selected based on the source IP address.
Multicast traffic from different sources will be load split across the different equal-cost paths. Load
splitting will not occur across equal-cost paths for multicast traffic from the same source sent to different
multicast groups.
Note The ip multicast multipath global configuration command load splits the traffic and does not load
balance the traffic. Traffic from a source will use only one path, even if the traffic far outweighs
traffic from other sources.
The ip multicast multipath command does not support configurations in which the same PIM neighbor
IP address is reachable through multiple equal-cost paths. This situation typically occurs if unnumbered
interfaces are used. We recommend using different IP addresses for all interfaces when configuring the
ip multicast multipath command.
Two multicast
equal-cost links
Router A Router B
S0
43281
E0
S1
Source Multicast
member
If a tunnel is configured between Router A and Router B, and multicast traffic is made to reverse path
forward over the tunnel, then the multicast packets are sent encapsulated into the tunnel as unicast
packets between Router A and Router B. The underlying unicast mechanism will then perform load
splitting across the equal-cost links.
To configure load splitting across tunnels, perform the tasks described in the following sections. The
tasks in the first three sections are required; the task in the remaining section is optional.
• Configuring the Access Router (Required)
• Configuring the Router at the Opposite End of the Tunnel (Required)
• Configuring Both Routers to RPF (Required)
• Verifying the Load Splitting (Optional)
Command Purpose
Step 1 Router(config)# interface tunnel number Configures a tunnel interface.
Step 2 Router(config-if)# ip unnumbered type number Enables IP processing without assigning an IP address
to the interface.
Step 3 Router(config-if)# ip pim {dense-mode | Enables PIM on the tunnel interface.
sparse-mode | sparse-dense-mode}
Step 4 Router(config-if)# tunnel source {ip-address | Configures the tunnel source.
type number}
Step 5 Router(config-if)# tunnel destination {hostname | Configures the tunnel destination.
ip-address}
Command Purpose
Step 1 Router(config)# interface tunnel number Configures a tunnel interface.
Step 2 Router(config-if)# ip unnumbered type number Enables IP processing without assigning an IP address
to the interface.
Step 3 Router(config-if)# ip pim {dense-mode | Enables PIM on the tunnel interface.
sparse-mode | sparse-dense-mode}
Step 4 Router(config-if)# tunnel source {ip-address | Configures the tunnel source. This configuration
type number} matches the tunnel destination at the opposite end of
the tunnel.
Step 5 Router(config-if)# tunnel destination {hostname | Configures the tunnel destination. This configuration
ip-address} matches the tunnel source at the opposite end of the
tunnel.
To load split to a stub network using a static multicast router, use the following command on the stub
router in global configuration mode:
Command Purpose
Router(config)# ip mroute 0.0.0.0 0.0.0.0 Configures a static multicast route over which to reverse path
tunnel number forward from the stub router to the other end of the tunnel.
After configuring a static multicast route, use the following commands on the router at the opposite end
of the tunnel from the stub router in global configuration mode:
Command Purpose
Step 1 Router(config)# ip mroute Configures a static route over which to reverse path forward from
source-address mask tunnel number the access router to the other end of the tunnel. Configure the
source-address argument to be the network address of the network
connected to the stub router.
Step 2 Router(config)# ip mroute Repeat Step 1 for each network connected to the stub router.
source-address mask tunnel number
You can also use static mroutes to load split to the middle of a network, but you must make sure that
Router A would reverse path forward to the tunnel for source networks behind Router B, and Router B
would reverse path forward to the tunnel for source networks behind Router A.
Another option is to run a separate unicast routing protocol with a better administrative distance to
provide the RPF. You must make sure that your multicast routers do not advertise the tunnel to your real
network. For details, refer to the “Configuring an IP Multicast Static Route” section in this chapter.
If you are using a DVMRP routing table for RPF information within your network, you could configure
the ip dvmrp unicast-routing interface configuration command on your tunnel interfaces to make the
routers reverse path forward correctly over the tunnel.
For an example of load splitting IP multicast traffic across equal-cost paths, see the section “Load
Splitting IP Multicast Traffic Across Equal-Cost Paths Example” later in this chapter.
Note For information about Multicast Routing Monitor (MRM) and commands that monitor IP multicast
information, see the chapter “Using IP Multicast Tools.”
Command Purpose
Router# clear ip cgmp Clears all group entries the Catalyst switches have cached.
Router# clear ip igmp group [group-name | Deletes entries from the IGMP cache.
group-address | type number]
Router# clear ip mroute {* | group-name Deletes entries from the IP multicast routing table.
[source-name | source-address] | group-address
[source-name | source-address]}
Router# clear ip pim auto-rp rp-address Clears the Auto-RP cache.
Router# clear ip rtp header-compression [type Clears RTP header compression structures and statistics.
number]
Router# clear ip sap [group-address | Deletes the SAP cache or a SAP cache entry. The session name
“session-name”] is enclosed in quotation marks (“ ”) that the user must enter.
Command Purpose
Router# ping [group-name | group-address] Sends an ICMP echo request message to a multicast group
address.
Router# show frame-relay ip rtp header-compression Displays Frame Relay RTP header compression statistics.
[interface type number]
Router# show ip igmp groups [group-name | Displays the multicast groups that are directly connected to
group-address | type number] [detail] the router and that were learned via IGMP.
Router# show ip igmp interface [type number] Displays multicast-related information about an interface.
Router# show ip mcache [group-address | group-name] Displays the contents of the IP fast-switching cache.
[source-address | source-name]
Router# show ip mpacket [group-address | group-name] Displays the contents of the circular cache header buffer.
[source-address | source-name] [detail]
Router# show ip mroute [group-address | group-name] Displays the contents of the IP multicast routing table.
[source-address | source-name] [type number] [summary]
[count] [active kbps]
Router# show ip pim interface [type number] [df | Displays information about interfaces configured for PIM.
count] [rp-address] [detail]
Command Purpose
Router# show ip pim neighbor [type number] Lists the PIM neighbors discovered by the router.
Router# show ip pim rp [mapping | metric] [rp-address] Displays the RP routers associated with a sparse mode
multicast group.
Router# show ip pim vc [group-address | name] [type Displays ATM VC status information for multipoint VCs
number] opened by PIM.
Router# show ip rpf {source-address | source-name} Displays how the router is doing RPF (that is, from the
[metric] unicast routing table, DVMRP routing table, or static
mroutes). Also displays the unicast routing metric.
Router# show ip rtp header-compression [type number] Displays RTP header compression statistics.
[detail]
Router# show ip sap [group | “session-name” | detail] Displays the SAP cache.
Command Purpose
Step 1 Router(config)# ip multicast-routing Enables IP multicast routing.
Step 2 Router(config)# snmp-server host host traps Specifies the recipient of an SNMP notification operation.
community-string
Step 3 Router(config)# snmp-server enable traps Enables the router to send IP multicast traps.
ipmulticast
Step 4 Router(config)# ip multicast heartbeat Enables the monitoring of the IP multicast packet delivery.
group-address minimum-number window-size
interval
See the “IP Multicast Heartbeat Example” section later in this chapter for an example of how to
configure IP multicast heartbeat.
For more information on the information contained in IP multicast SNMP notifications, refer to the
Cisco IOS Configuration Fundamentals Command Reference.
interface FastEthernet0/1
ip address 172.16.8.1 255.255.255.0
ip pim dense-mode
ip multicast-routing
interface FastEthernet0/1
ip address 172.16.8.1 255.255.255.0
ip pim state-refresh origination-interval 60
ip pim dense-mode
The following example shows a PIM router that is processing and forwarding PIM Dense Mode State
Refresh control messages and not originating messages on Fast Ethernet interface 1/1:
ip multicast-routing
interface FastEthernet1/1
ip address 172.16.7.3 255.255.255.0
ip pim dense-mode
ip pim sparse-dense-mode
!
router ospf 1
network 172.21.24.8 0.0.0.7 area 1
network 172.21.24.16 0.0.0.7 area 1
!
ip pim bsr-candidate Ethernet2 30 10
ip pim rp-candidate Ethernet2 group-list 5
access-list 5 permit 239.255.2.0 0.0.0.255
!
interface Ethernet1
ip address 172.21.24.18 255.255.255.248
ip pim sparse-dense-mode
ip pim bsr-border
ip multicast boundary 1
!
! Access list to deny Auto-RP (224.0.1.39, 224.0.1.40) and
! all administrately scoped multicast groups (239.X.X.X)
access-list 1 deny 239.0.0.0 0.255.255.255
access-list 1 deny 224.0.1.39
access-list 1 deny 224.0.1.40
access-list 1 permit 224.0.0.0 15.255.255.255
Step 1 Select the candidate RP with the highest priority (lowest configured priority value).
Step 2 If there is a tie in the priority level, select the candidate RP with the highest hash function value.
Step 3 If there is a tie in the hash function value, select the candidate RP with the highest IP address.
Cisco routers always select the candidate RP based on the longest match on the announced group address
prefix before selecting an RP based on priority, hash function, or IP address.
Inconsistent candidate RP selection between Cisco and non-Cisco RFC 2362-compliant routers in the
same domain if multiple candidate RPs with partially overlapping group address ranges are configured
can occur. Inconsistent candidate RP selection can lead to disconnectivity between sources and receivers
in the PIM domain. A source may register with one candidate RP and a receiver may connect to a
different candidate RP even though it is in the same group.
The following example shows a configuration that can cause inconsistent RP selection between a Cisco
and a non-Cisco router in a single PIM domain with PIM Version 2 BSR:
access-list 10 permit 224.0.0.0 7.255.255.255
ip pim rp-candidate ethernet1 group-list 10 priority 20
In this example, a candidate RP on Ethernet interface 1 announces a longer group prefix of 224.0.0.0/5
with a lower priority of 20. The candidate RP on Ethernet interface 2 announces a shorter group prefix
of 224.0.0.0/4 with a higher priority of 10. For all groups that match both ranges a Cisco router will
always select the candidate RP on Ethernet interface 1 because it has the longer announced group prefix.
A non-Cisco fully RFC 2362-compliant router will always select the candidate RP on Ethernet
interface 2 because it is configured with a higher priority.
To avoid this interoperability issue, do not configure different candidate RPs to announce partially
overlapping group address prefixes. Configure any group prefixes that you want to announce from more
than one candidate RP with the same group prefix length.
The following example shows how to configure the previous example so that there is no incompatibility
between a Cisco router and a non-Cisco router in a single PIM domain with PIM Version 2 BSR:
In this configuration the candidate RP on Ethernet interface 2 announces group address 224.0.0.0/5 and
232.0.0.0/5 which equal 224.0.0.0/4, but gives the interface the same group prefix length (5) as the
candidate RP on Ethernet 1. As a result, both a Cisco router and an RFC 2362-compliant router will
select the RP Ethernet interface 2.
The following Frame Relay encapsulation example shows how to enable RTP header compression on the
specified map.
interface serial 0
ip address 1.0.0.2 255.0.0.0
encapsulation frame-relay
no keepalive
clockrate 64000
frame-relay map ip 1.0.0.1 17 broadcast rtp header-compression connections 64
frame-relay ip rtp header-compression
frame-relay ip rtp compression-connections 32
no ip route-cache
shutdown
clockrate 2015232
!
ip default-gateway 9.1.72.1
ip classless
ip route 0.0.0.0 0.0.0.0 9.1.72.1
!
router igrp 1
network 15.0.0.0
!
line con 0
exec-timeout 0 0
transport input none
line aux 0
line vty 0 4
password lab
login
!
no scheduler max-task-time
end
!
interface Serial4/0
ip address 15.3.0.1 255.255.255.0
encapsulation frame-relay
frame-relay map ip 15.3.0.2 100 broadcast compress connections 16
frame-relay ip rtp header-compression
frame-relay ip tcp header-compression
frame-relay ip rtp compression-connections 32
no ip mroute-cache
ip route-cache
bandwidth 2000
no keepalive
no shutdown
!
interface Serial4/1
no ip address
no ip directed-broadcast
no ip route-cache
no ip mroute-cache
shutdown
no fair-queue
!
router igrp 1
network 15.0.0.0
!
!
ip default-gateway 9.1.72.1
ip classless
!
map-class frame-relay frag
frame-relay cir 64000
frame-relay bc 1000
frame-relay be 0
frame-relay mincir 64000
frame-relay adaptive-shaping becn
frame-relay fair-queue
frame-relay fragment 70
!
dialer-list 1 protocol ip permit
dialer-list 1 protocol ipx permit
!
line con 0
exec-timeout 0 0
transport input none
line aux 0
line vty 0 4
password lab
login
!
!
ntp clock-period 17179866
end
Broadcast-only
Router B LAN or internet
The configuration on the first hop router converts a broadcast stream arriving at incoming Ethernet
interface 0 destined for UDP port 4000 to a multicast stream. The access list denies other traffic from
being forwarded into the multicast cloud. The traffic is sent to group address 224.5.5.5. Because fast
switching does not perform such a conversion, the ip forward-protocol global configuration command
causes the proper process level to perform the conversion.
The second configuration on the last hop router converts the multicast stream at Ethernet interface 2 back
to broadcast. Again, all multicast traffic emerging from the multicast cloud should not be converted to
broadcast, only the traffic destined for UDP port 4000.
Stub region
Router A Router B
10.0.0.1 10.0.0.2
Host
Stub (leaf) router in Central router denies
PIM dense mode PIM messages
from Router A
Host
43283
Router A Configuration
ip multicast-routing
ip pim dense-mode
ip igmp helper-address 10.0.0.2
Router B Configuration
ip multicast-routing
ip pim dense-mode : or ip pim sparse-mode
ip pim neighbor-filter 1
access-list 1 deny 10.0.0.1
Router A Router B
S0 S6/4
E0/5
43284
E0
S1 S6/5
Source Multicast
member
Multicast GRE tunnel
Router A Configuration
interface tunnel 0
ip unnumbered Ethernet0
ip pim dense-mode : or sparse-mode or sparse-dense-mode
tunnel source 100.1.1.1
tunnel destination 100.1.5.3
!
interface ethernet 0
ip address 100.1.1.1 255.255.255.0
ip pim dense-mode : or sparse-mode or sparse-dense-mode
!
interface Serial0
ip address 100.1.2.1 255.255.255.0
bandwidth 125
clock rate 125000
!
interface Serial1
ip address 100.1.3.1 255.255.255.0
bandwidth 125
Router B Configuration
interface tunnel 0
ip unnumbered ethernet 0/5
ip pim dense-mode : or sparse-mode or sparse-dense-mode
tunnel source 100.1.5.3
tunnel destination 100.1.1.1
!
interface ethernet 0/5
ip address 100.1.5.3 255.255.255.0
ip pim dense-mode : or sparse-mode or sparse-dense-mode
!
interface serial 6/4
ip address 100.1.2.3 255.255.255.0
bandwidth 125
!
interface Serial6/5
This chapter describes how to configure Source Specific Multicast (SSM). For a complete description of
the SSM commands in this chapter, refer to the “IP Multicast Routing Commands” chapter of the Cisco
IOS IP Command Reference, Volume 3 of 3: Multicast. To locate documentation of other commands that
appear in this chapter, use the command reference master index, or search online.
The Source Specific Multicast feature is an extension of IP multicast where datagram traffic is forwarded
to receivers from only those multicast sources to which the receivers have explicitly joined. For multicast
groups configured for SSM, only source-specific multicast distribution trees (no shared trees) are
created.
To identify the hardware platform or software image information associated with a feature, use the
Feature Navigator on Cisco.com to search for information about the feature or refer to the software
release notes for a specific release. For more information, see the “Identifying Supported Platforms”
section in the “Using Cisco IOS Software” chapter.
deploy receiver applications that are not yet SSM enabled (through support for IGMPv3). IGMPv3,
IGMP v3lite, and URD interoperate with each other, so that both IGMP v3lite and URD can easily be
used as transitional solutions toward full IGMPv3 support in hosts.
SSM Operations
An established network, in which IP multicast service is based on PIM-SM, can support SSM services.
SSM can also be deployed alone in a network without the full range of protocols that are required for
interdomain PIM-SM (for example, MSDP, Auto-RP, or bootstrap router [BSR]) if only SSM service is
needed.
If SSM is deployed in a network already configured for PIM-SM (Cisco IOS Release 12.0 or later
releases is recommended), then only the last hop routers must be upgraded to a Cisco IOS software
image that supports SSM. Routers that are not directly connected to receivers do not have to upgrade to
a Cisco IOS software image that supports SSM. In general, these nonlast hop routers must only run
PIM-SM in the SSM range, and may need additional access control configuration to suppress MSDP
signalling, registering, or PIM-SM shared tree operations from occurring within the SSM range.
The SSM mode of operation is enabled by configuring the SSM range through the ip pim ssm global
configuration command. This configuration has the following effects:
• For groups within the SSM range, (S, G) channel subscriptions are accepted through IGMPv3
INCLUDE mode membership reports, IGMP v3lite, or URD (each of these methods must be
configured on a per-interface basis). IGMP v3lite and URD (S, G) channel subscriptions are ignored
for groups outside the SSM range.
Both IGMP v3lite and URD are based on utilizing existing application IGMP group membership and
extending it with their respective (S, G) channel subscription mechanism, which is ignored by
Cisco IOS software outside the SSM range of addresses. Within the SSM range, IGMP Version 1
(IGMPv1) or Version 2 (IGMPv2) group membership reports or IGMPv3 EXCLUDE mode
membership reports are acted upon only in conjunction with an (S, G) specific membership report
from URD or IGMP v3lite.
• PIM operations within the SSM range of addresses change to PIM-SSM, a mode derived from
PIM-SM. In this mode, only PIM (S, G) join and prune messages are generated by the router, and
no (S, G) rendezvous point tree (RPT) or (*, G) RPT messages are generated. Incoming messages
related to RPT operations are ignored or rejected and incoming PIM register messages are
immediately answered with register-stop messages. PIM-SSM is backward compatible with
PIM-SM, unless a router is a last hop router. Therefore, routers that are not last hop routers can run
PIM-SM for SSM groups (for example, if they do not yet support SSM).
• No MSDP Source-Active (SA) messages within the SSM range will be accepted, generated, or
forwarded.
Applications must be compiled with the Host Side IGMP Library (HSIL) for IGMP v3lite. This software
provides applications with a subset of the IGMPv3 applications programming interface (API) that is
required to write SSM applications. HSIL was developed for Cisco by Talarian and is available from the
following web page:
http://www.talarianmulticast.com/cgi-bin/igmpdownld
One part of the HSIL is a client library linked to the SSM application. It provides the SSM subset of the
IGMPv3 API to the SSM application. If possible, the library checks whether the operating system kernel
supports IGMPv3. If it does, then the API calls simply are passed through to the kernel. If the kernel
does not support IGMPv3, then the library uses the IGMP v3lite mechanism.
When using the IGMP v3lite mechanism, the library tells the operating system kernel to join to the whole
multicast group, because joining to the whole group is the only method for the application to receive
traffic for that multicast group (if the operating system kernel only supports IGMPv1 or IGMPv2). In
addition, the library signals the (S, G) channel subscriptions to an IGMP v3lite server process, which is
also part of the HSIL. A server process is needed because multiple SSM applications may be on the same
host. This server process will then send IGMP v3lite-specific (S, G) channel subscriptions to the last hop
Cisco IOS router, which needs to be enabled for IGMP v3lite. This Cisco IOS router will then “see” both
the IGMPv1 or IGMPv2 group membership report from the operating system kernel and the (S, G)
channel subscription from the HSIL daemon. If the router sees both of these messages, it will interpret
them as an SSM (S, G) channel subscription and join to the channel through PIM-SSM. We recommend
referring to the documentation accompanying the HSIL software for further information on how to
utilize IGMP v3lite with your application.
IGMP v3lite is supported by Cisco only through the API provided by the HSIL, not as a function of the
router independent of the HSIL. By default, IGMP v3lite is disabled. When IGMP v3lite is configured
through the ip igmp v3lite interface configuration command on an interface, it will be active only for IP
multicast addresses in the SSM range.
The webserver string is the name or IP address to which the URL is targeted. This target need not be the
IP address of an existing web server, except for situations where the web server wants to recognize that
the last hop router failed to support the URD mechanism. The number 465 indicates the URD port. Port
465 is reserved for Cisco by the IANA for the URD mechanism so that no other applications can use this
port.
When the browser of a host encounters a URD intercept URL, it will try to open a TCP connection to
the web server on port 465. If the last hop router is enabled for URD on the interface where the router
receives the TCP packets from the host, it will intercept all packets for TCP connections destined to
port 465 independent of the actual destination address of the TCP connection (independent of the
address of the web server). Once intercepted, the last hop router will “speak” a very simple subset of
HTTP on this TCP connection, emulating a web server. The only HTTP request that the last hop router
will understand and reply to is the following GET request:
GET argument HTTP/1.0
argument = /path?group=group&source=source1&...source=sourceN&
When it receives a GET command, the router tries to parse the argument according to this syntax to
derive one or more (S, G) channel memberships. The path string of the argument is anything up to, but
not including, the first question mark, and is ignored. The group and source1 through sourceN strings
are the IP addresses or fully qualified domain names of the channels for which this argument is a
subscription request. If the argument matches the syntax shown, the router interprets the argument to be
subscriptions for the channels (source1, group) through (sourceN, group).
The router will accept the channel subscriptions if the following conditions are met:
• The IP address of the multicast group is within the SSM range.
• The IP address of the host that originated the TCP connection is directly connected to the router.
If the channel subscription is accepted, the router will respond to the TCP connection with the following
HTML page format:
HTTP/1.1 200 OK
Server:cisco IOS
Content-Type:text/html
<html>
<body>
Retrieved URL string successfully
</body>
</html>
If an error condition occurs, the <body> part of the returned HTML page will carry an appropriate error
message. The HTML page is a by-product of the URD mechanism. This returned text may, depending
on how the web pages carrying a URD intercept URL are designed, be displayed to the user or be sized
so that the actual returned HTML page is invisible.
The primary effect of the URD mechanism is that the router will remember received channel
subscriptions and will match them against IGMP group membership reports received by the host. The
router will “remember” a URD (S, G) channel subscription for up to 3 minutes without a matching IGMP
group membership report. As soon as the router sees that it has received both an IGMP group
membership report for a multicast group G and a URD (S, G) channel subscription for the same group G,
it will join the (S, G) channel through PIM-SSM. The router will then continue to join to the (S, G)
channel based only on the presence of a continuing IGMP membership from the host. Thus, one initial
URD channel subscription is all that is needed to be added through a web page to enable SSM with URD.
If the last hop router from the receiver host is not enabled for URD, then it will not intercept the HTTP
connection toward the web server on port 465. This situation will result in a TCP connection to port 465
on the web server. If no further provisions on the web server are taken, then the user may see a notice
(for example, “Connection refused”) in the area of the web page reserved for displaying the URD
intercept URL (if the web page was designed to show this output). It is also possible to let the web server
“listen” to requests on port 465 and install a Common Gateway Interface (CGI) script that would allow
the web server to know if a channel subscription failed (for example, to subsequently return more
complex error descriptions to the user).
Because the router returns a Content-Type of text and HTML, the best way to include the URD intercept
URL into a web page is to use a frame. By defining the size of the frame, you can also hide the URD
intercept URL on the displayed page.
By default, URD is disabled on all interfaces. When URD is configured through the ip urd interface
configuration command on an interface, it will be active only for IP multicast addresses in the SSM
range.
Benefits
deployment. Another factor that contributes to the ease of installation of SSM is the fact that it can
leverage preexisting PIM-SM networks and requires only the upgrade of last hop routers to support
IGMPv3, IGMP v3lite, or URD.
Restrictions
IGMP v3lite and URD Require a Cisco IOS Last Hop Router
SSM and IGMPv3 are solutions that are being standardized in the IETF. However, IGMP v3lite and URD
are Cisco-developed solutions. For IGMP v3lite and URD to operate properly for a host, the last hop
router toward that host must be a Cisco IOS router with IGMP v3lite or URD enabled.
Note This limitation does not apply to an application using the HSIL if the host has kernel support
for IGMPv3, because then the HSIL will use the kernel IGMPv3 instead of IGMP v3lite.
receivers will receive all (S, G) channel traffic (and filter out the unwanted traffic on input). Because of
the ability of SSM to reuse the group addresses in the SSM range for many independent applications,
this situation can lead to less than expected traffic filtering in a switched network. For this reason it is
important to follow the recommendations set forth in the IETF drafts for SSM to use random IP
addresses out of the SSM range for an application to minimize the chance for reuse of a single address
within the SSM range between different applications. For example, an application service providing a
set of television channels should, even with SSM, use a different group for each television (S, G)
channel. This setup will guarantee that multiple receivers to different channels within the same
application service will never experience traffic aliasing in networks that include Layer 2 switches.
HSIL Limitations
As explained in the “IGMP v3lite Host Signalling” section, the HSIL tries to determine if the host
operating system supports IGMPv3. This check is made so that a single application can be used both on
hosts where the operating system has been upgraded to IGMPv3 and on hosts where the operating system
only supports IGMPv1 or IGMPv2. Checking for the availability of IGMPv3 in the host operating system
can only be made by the HSIL if IGMPv3 kernel support exists for at least one version of this operating
system at the time when the HSIL was provided. If such an IGMPv3 kernel implementation has become
available only recently, then users may need to also upgrade the HSIL on their hosts so that applications
compiled with the HSIL will then dynamically bind to the newest version of the HSIL, which should
support the check for IGMPv3 in the operating system kernel. Upgrading the HSIL can be done
independently of upgrading the application itself.
Configuring SSM
To configure SSM, use the following commands beginning in global configuration mode:
Command Purpose
Step 1 Router(config)# ip pim ssm [default | range Defines the SSM range of IP multicast addresses.
access-list]
Step 2 Router(config)# interface type number Selects an interface that is connected to hosts on which
IGMPv3, IGMP v3lite, and URD can be enabled.
Step 3 Router(config-if)# ip pim {sparse-mode | Enables PIM on an interface. You must use either sparse mode
sparse-dense-mode} or sparse-dense mode.
Step 4 Router(config-if)# ip igmp version 3 Enables IGMPv3 on this interface. The default version of IGMP
is set to Version 2.
or or
Router(config-if)# ip igmp v3lite Enables the acceptance and processing of IGMP v3lite
membership reports on an interface.
or or
Router(config-if)# ip urd Enables interception of TCP packets sent to the reserved URD
port 465 on an interface and processing of URD channel
subscription reports.
Monitoring SSM
To monitor SSM, use the following commands in privileged EXEC mode, as needed:
Command Purpose
Router# show ip igmp groups detail Displays the (S, G) channel subscription through IGMPv3,
IGMP v3lite, or URD.
Router# show ip mroute Displays whether a multicast group supports SSM service or
whether a source-specific host report was received.
! Filter generated SA messages in SSM range. This configuration is only needed if there
! are directly connected sources to this router. The “ip pim accept-register” command
! filters remote sources.
ip msdp redistribute list msdp-nono-list
! Filter received SA messages in SSM range. “Filtered on receipt” means messages are
! neither processed or forwarded. Needs to be configured for each MSDP peer.
ip msdp sa-filter in msdp-peer1 list msdp-nono-list
! .
! .
! .
ip msdp sa-filter in msdp-peerN list msdp-nono-list
This chapter describes how to configure the Bidirectional PIM (bidir-PIM) feature. Bidir-PIM is a
variant of the Protocol Independent Multicast (PIM) suite of routing protocols for IP multicast and is an
extension of the existing PIM sparse mode (PIM-SM) feature. Bidir-PIM resolves some limitations of
PIM-SM for groups with a large number of sources.
Bidir-PIM is based on the draft-kouvelas-pim-bidir-new-00.txt Internet Engineering Task Force (IETF)
protocol specification. This draft and other drafts referenced by it can be found at the following URL:
ftp://ftpeng.cisco.com/ipmulticast/drafts.
For more information on PIM-SM, refer to the “Configuring IP Multicast Routing” chapter of the
Cisco IOS IP Configuration Guide and the Cisco IOS IP Command Reference, Volume 3 of 3: Multicast.
For a complete description of the bidir-PIM commands used in this chapter, refer to the “IP Multicast
Routing Commands” chapter of the Cisco IOS IP Command Reference, Volume 3 of 3: Multicast. To
locate documentation of other commands that appear in this chapter, use the command reference master
index, or search online.
To identify the hardware platform or software image information associated with a feature, use the
Feature Navigator on Cisco.com to search for information about the feature or refer to the software
release notes for a specific release. For more information, see the “Identifying Supported Platforms”
section in the “Using Cisco IOS Software” chapter.
Bidir-PIM Overview
Bidir-PIM is a variant of the PIM suite of routing protocols for IP multicast. In PIM, packet traffic for a
multicast group is routed according to the rules of the mode configured for that multicast group. The
Cisco IOS implementation of PIM supports three modes for a multicast group:
• Bidirectional mode
• Dense mode
• Sparse mode
A router can simultaneously support all three modes or any combination of them for different multicast
groups. In bidirectional mode, traffic is routed only along a bidirectional shared tree that is rooted at the
rendezvous point (RP) for the group. In bidir-PIM, the IP address of the RP acts as the key to having all
routers establish a loop-free spanning tree topology rooted in that IP address. This IP address need not
be a router, but can be any unassigned IP address on a network that is reachable throughout the PIM
domain. This technique is the preferred configuration method for establishing a redundant RP
configuration for bidir-PIM.
Membership to a bidirectional group is signalled via explicit join messages. Traffic from sources is
unconditionally sent up the shared tree toward the RP and passed down the tree toward the receivers on
each branch of the tree.
Bidir-PIM is designed to be used for many-to-many applications within individual PIM domains.
Multicast groups in bidirectional mode can scale to an arbitrary number of sources without incurring
overhead due to the number of sources.
Bidir-PIM is derived from the mechanisms of PIM-SM and shares many shortest-path tree (SPT)
operations. Bidir-PIM also has unconditional forwarding of source traffic toward the RP upstream on the
shared tree, but no registering process for sources as in PIM-SM. These modifications are necessary and
sufficient to allow forwarding of traffic in all routers solely based on the (*, G) multicast routing entries.
This feature eliminates any source-specific state and allows scaling capability to an arbitrary number of
sources. Figure 76 and Figure 77 show the difference in state created per router for a unidirectional
shared tree and source tree versus a bidirectional shared tree.
PIM source
register message
Multicast
data flow RP RP
(*, G)
(*, G) (S, G)
(*, G)
(*, G) (*, G) (*, G) (S, G)
Receiver Receiver
Reg
ister
(*, G)
(*, G) (*, G) (*, G)
(S, G) (S, G)
RP
(*, G)
(*, G) (*, G)
Receiver
(*, G) (*, G)
33354
Receiver Source
When packets are forwarded downstream from the RP toward receivers, there are no fundamental
differences between bidir-PIM and PIM-SM. Bidir-PIM deviates substantially from PIM-SM when
passing traffic from sources upstream toward the RP.
PIM-SM cannot forward traffic in the upstream direction of a tree, because it only accepts traffic from
one Reverse Path Forwarding (RPF) interface. This interface (for the shared tree) points toward the RP,
therefore allowing only downstream traffic flow. In this case, upstream traffic is first encapsulated into
unicast register messages, which are passed from the designated router (DR) of the source toward the
RP. In a second step, the RP joins an SPT that is rooted at the source. Therefore, in PIM-SM, traffic from
sources traveling toward the RP does not flow upstream in the shared tree, but downstream along the SPT
of the source until it reaches the RP. From the RP, traffic flows along the shared tree toward all receivers.
In bidir-PIM, the packet forwarding rules have been improved over PIM-SM, allowing traffic to be
passed up the shared tree toward the RP. To avoid multicast packet looping, bidir-PIM introduces a new
mechanism called designated forwarder (DF) election, which establishes a loop-free SPT rooted at the
RP.
DF Election
On every network segment and point-to-point link, all PIM routers participate in a procedure called DF
election. The procedure selects one router as the DF for every RP of bidirectional groups. This router is
responsible for forwarding multicast packets received on that network upstream to the RP.
The DF election is based on unicast routing metrics and uses the same tie-break rules employed by PIM
assert processes. The router with the most preferred unicast routing metric to the RP becomes the DF.
Use of this method ensures that only one copy of every packet will be sent to the RP, even if there are
parallel equal cost paths to the RP.
A DF is selected for every RP of bidirectional groups. As a result, multiple routers may be elected as DF
on any network segment, one for each RP. In addition, any particular router may be elected as DF on
more than one interface.
Packet Forwarding
A router only creates (*, G) entries for bidirectional groups. The olist of a (*, G) entry includes all the
interfaces for which the router has been elected DF and that have received either an IGMP or PIM join
message. If a router is located on a sender-only branch, it will also create (*, G) state, but the olist will
not include any interfaces.
If a packet is received from the RPF interface toward the RP, the packet is forwarded downstream
according to the olist of the (*, G) entry. Otherwise, only the router that is the DF for the receiving
interface forwards the packet upstream toward the RP; all other routers must discard the packet.
Prerequisites
Before configuring bidir-PIM, ensure that the feature is supported on all IP multicast-enabled routers in
that domain. It is not possible to enable groups for bidir-PIM operation in a partially upgraded network.
Note Packet loops will occur immediately in networks that are only partially upgraded to support
bidir-PIM.
Configuring Bidir-PIM
Most of the configuration requirements for bidir-PIM are the same as those for configuring PIM-SM. You
need not enable or disable an interface for carrying traffic for multicast groups in bidirectional mode. Instead,
you configure which multicast groups you want to operate in bidirectional mode. Similar to PIM-SM, this
configuration can be done via Auto-RP, static RP configurations, or the PIM Version 2 bootstrap router
(PIMv2 BSR) mechanism.
To enable bidir-PIM, use the following command in global configuration mode:
Command Purpose
Router(config)# ip pim bidir-enable Enables bidir-PIM on a router.
To configure bidir-PIM, use the following commands in global configuration mode, depending on which
method you use to distribute group-to-RP mappings:
Command Purpose
Router(config)# ip pim rp-address rp-address Configures the address of a PIM RP for a particular group, and
[access-list] [override] bidir specifies bidirectional mode. Use this command when you are
not distributing group-to-RP mappings using either Auto-RP or
the PIMv2 BSR mechanism.
Router(config)# ip pim rp-candidate type number Configures the router to advertise itself as a PIM Version 2
[group-list access-list] bidir candidate RP to the BSR, and specifies bidirectional mode. Use
this command when you are using the PIMv2 BSR mechanism
to distribute group-to-RP mappings.
Router(config)# ip pim send-rp-announce type number Configures the router to use Auto-RP to configure for which
scope ttl-value [group-list access-list] [interval groups the router is willing to act as RP, and specifies
seconds] bidir
bidirectional mode. Use this command when you are using
Auto-RP to distribute group-to-RP mappings.
See the “Bidir-PIM Configuration Example” section later in this chapter for an example of how to
configure bidir-PIM.
Command Purpose
Router# show ip pim interface [type number] [df | Displays information about the elected DF for each RP of
count] [rp-address] an interface, along with the unicast routing metric
associated with the DF.
Router# show ip pim rp [mapping | metric] [rp-address] Displays information about configured RPs, learned via
Auto-RP or BSR, along with their unicast routing metric.
This chapter describes the Multicast Source Discovery Protocol (MSDP) feature. For a complete
description of the MSDP commands in this chapter, refer to the “Multicast Source Discovery Protocol
Commands” chapter of the Cisco IOS IP Command Reference, Volume 3 of 3: Multicast publication. To
locate documentation of other commands in this chapter, use the command reference master index, or
search online.
MSDP is a mechanism to connect multiple Protocol Independent Multicast sparse mode (PIM-SM)
domains. MSDP allows multicast sources for a group to be known to all rendezvous points (RPs) in
different domains. Each PIM-SM domain uses its own RPs and need not depend on RPs in other
domains. An RP runs MSDP over TCP to discover multicast sources in other domains.
An RP in a PIM-SM domain has an MSDP peering relationship with MSDP-enabled routers in another
domain. The peering relationship occurs over a TCP connection, where primarily a list of sources
sending to multicast groups is exchanged. The TCP connections between RPs are achieved by the
underlying routing system. The receiving RP uses the source lists to establish a source path.
The purpose of this topology is to have domains discover multicast sources in other domains. If the
multicast sources are of interest to a domain that has receivers, multicast data is delivered over the
normal, source-tree building mechanism in PIM-SM.
MSDP is also used to announce sources sending to a group. These announcements must originate at the
RP of the domain.
MSDP depends heavily on BGP or MBGP for interdomain operation. We recommend that you run
MSDP in RPs in your domain that are RPs for sources sending to global groups to be announced to the
internet.
To identify the hardware platform or software image information associated with a feature, use the
Feature Navigator on Cisco.com to search for information about the feature or refer to the software
release notes for a specific release. For more information, see the “Identifying Supported Platforms”
section in the “Using Cisco IOS Software” chapter.
and the address or the originator ID of the RP, if configured. If the peer is an RP and has a member of
that multicast group, the data packet is decapsulated and forwarded down the shared-tree in the remote
domain.
The PIM designated router (DR) directly connected to the source sends the data encapsulated in a PIM
register message to the RP in the domain.
Note The DR sends the encapsulated data to the RP only once per source, when the source goes active. If
the source times out, this process happens again when it goes active again. This situation is different
from the periodic SA message that contains all sources that are registered to the originating RP. These
messages have no data.
Each MSDP peer receives and forwards the SA message away from the originating RP to achieve
peer-RPF flooding. The concept of peer-RPF flooding is with respect to forwarding SA messages. The
router examines the BGP or MBGP routing table to determine which peer is the next hop toward the
originating RP of the SA message. Such a peer is called an “RPF peer” (Reverse Path Forwarding peer).
The router forwards the message to all MSDP peers other than the RPF peer.
If the MSDP peer receives the same SA message from a non-RPF peer toward the originating RP, it drops
the message. Otherwise, it forwards the message on to all its MSDP peers.
When an RP for a domain receives an SA message from an MSDP peer, it determines if it has any group
members interested in the group the SA message describes. If the (*, G) entry exists with a nonempty
outgoing interface list, the domain is interested in the group, and the RP triggers an (S, G) join toward
the source.
MSDP SA
TCP connection
BGP Router B Receiver
Register MSDP peer
17529
Multicast
(S, G) Join
PIM
Source DR
Benefits
MSDP has the following benefits:
• It breaks up the shared multicast distribution tree. You can make the shared tree local to your
domain. Your local members join the local tree, and join messages for the shared tree never need to
leave your domain.
• PIM-SM domains can rely on their own RPs only, thus decreasing reliance on RPs in another
domain. This increases security because you can prevent your sources from being known outside
your domain.
• Domains with only receivers can receive data without globally advertising group membership.
• Global source multicast routing table state is not required, thus saving on memory.
Prerequisites
Before configuring MSDP, the addresses of all MSDP peers must be known in BGP or MBGP. If that
does not occur, you must configure MSDP default peering when you configure MSDP.
Note The router you specify by Domain Naming System (DNS) name or IP address as an MSDP peer is
probably a Border Gateway Protocol (BGP) neighbor. If it is not, see the section “Configuring a
Default MSDP Peer” later in this document.
To configure an MSDP peer, use the following commands in global configuration mode as needed. The
second command is optional.
Command Purpose
Router(config)# ip msdp peer {peer-name | Enables MSDP and configures an MSDP peer as specified by
peer-address} [connect-source type number] the DNS name or IP address.
[remote-as as-number]
If you specify the connect-source keyword, the primary
address of the specified local interface type and number values
are used as the source IP address for the TCP connection. The
connect-source keyword is recommended, especially for
MSDP peers on a border that peer with a router inside the
remote domain.
Router(config)# ip msdp description {peer-name | Configures a description for a specified peer to make it easier
peer-address} text to identify in a configuration or in show command output.
Caching SA State
By default, the router does not cache source/group pairs from received SA messages. Once the router
forwards the MSDP SA information, it does not store it in memory. Therefore, if a member joins a group
soon after an SA message is received by the local RP, that member will need to wait until the next SA
message to hear about the source. This delay is known as join latency.
If you want to sacrifice some memory in exchange for reducing the latency of the source information,
you can configure the router to cache SA messages. To have the router cache source/group pairs, use the
following command in global configuration mode:
Command Purpose
Router(config)# ip msdp cache-sa-state [list Creates SA state (cache source/group pairs). Those pairs that
access-list] pass the access list are cached.
An alternative to caching the SA state is to request source information from a peer, which is described
in the following section, “Requesting Source Information from an MSDP Peer.” If you cache the
information, you need not trigger a request for it.
Command Purpose
Router(config)# ip msdp sa-request Configures the router to send SA request messages to the specified
{peer-address | peer-name} MSDP peer when a receiver becomes active, so the receiver can
learn about multicast sources in a group. The peer replies with the
information it is SA cache. If the peer does not have a cache
configured, this command provides nothing.
Repeat the preceding command for each MSDP peer that you want to supply you with SA messages.
An alternative to requesting source information is to cache the SA state, which is described in the section
“Caching SA State” earlier in this chapter. If you cache the information, you need not trigger a request
for it.
Redistributing Sources
SA messages are originated on RPs to which sources have registered. By default, any source that
registers with an RP will be advertised. The “A flag” is set in the RP when a source is registered. This
flag indicates that the source will be advertised in an SA unless it is filtered with the following command.
To further restrict which registered sources are advertised, use the following command in global
configuration mode. The access list or autonomous system path access list determines which (S, G) pairs
are advertised.
Command Purpose
Router(config)# ip msdp redistribute [list Advertises (S, G) pairs that pass the access list or route map
access-list] [asn as-access-list] [route-map map-name] to other domains.
Note The ip msdp redistribute global configuration command could also be used to advertise sources that
are known to the RP but not registered. However, we strongly recommend that you NOT originate
advertisements for sources that have not registered with the RP.
Command Purpose
Router(config)# ip msdp filter-sa-request Filters all SA request messages from the specified MSDP
{peer-address | peer-name} peer.
Router(config)# ip msdp filter-sa-request Filters SA request messages from the specified MSDP peer
{peer-address | peer-name} list access-list for groups that pass the standard access list. The access list
describes a multicast group address.
To apply an MSDP filter, use the following commands in global configuration mode as needed:
Command Purpose
Router(config)# ip msdp sa-filter out {peer-address Filters all SA messages to the specified MSDP peer.
| peer-name}
Router(config)# ip msdp sa-filter out To the specified MSDP peer, passes only those SA messages
{peer--address | peer-name} list access-list that pass the extended access list.
Router(config)# ip msdp sa-filter out {peer-address To the specified MSDP peer, passes only those SA messages
| peer-name} route-map map-name that meet the match criteria in the route map map-tag value.
Command Purpose
Router(config)# ip msdp ttl-threshold {peer-address Limits which multicast data will be encapsulated in the first SA
| peer-name} ttl-value message to the specified MSDP peer.
Command Purpose
Router(config)# ip msdp sa-filter in {peer-address From the specified MSDP peer, filters all SA messages
| peer-name} received.
Router(config)# ip msdp sa-filter in {peer-address From the specified MSDP peer, passes incoming SA messages
| peer-name} list access-list that pass the extended access list.
Router(config)# ip msdp sa-filter in {peer-address From the specified MSDP peer, passes only those SA messages
| peer-name} route-map map-name that meet the match criteria in the route map map-name value.
Router C
SA
SA
SA 10.1.1.1
Router A Router B
Router B advertises SAs to Router A and Router C, but uses only Router A or Router C to accept SA
messages. If Router A is first in the configuration file, it will be used if it is up and running. If Router A
is not running, then and only then will Router B accept SAs from Router C. This is the behavior without
a prefix list.
If you specify a prefix list, the peer will be a default peer only for the prefixes in the list. You can have
multiple active default peers when you have a prefix list associated with each. When you do not have
any prefix lists, you can configure multiple default peers, but only the first one is the active default peer
as long as the router has connectivity to this peer and the peer is alive. If the first configured peer goes
down or the connectivity to this peer goes down, the second configured peer becomes the active default,
and so on.
To specify a default MSDP peer, use the following command in global configuration mode:
Command Purpose
Router(config)# ip msdp default-peer Defines a default MSDP peer.
{peer-address | peer-name} [prefix-list list]
See the section “Default MSDP Peer” later in this chapter for a sample configuration.
Command Purpose
Router(config)# ip msdp mesh-group mesh-name Configures an MSDP mesh group and indicates that an MSDP peer
{peer-address | peer-name} belongs to that mesh group.
Command Purpose
Router(config)# ip msdp shutdown {peer-name | Administratively shuts down the specified MSDP peer.
peer address}
Command Purpose
Router(config)# ip msdp border sa-address type Configures the router on the border between a dense mode and
number sparse mode region to send SA messages about active sources
in the dense mode region. The IP address of the interface is used
as the originator ID, which is the RP field in the SA message.
Note The ip msdp border command is not recommended. It is better to configure the border router in the
sparse mode domain to proxy-register sources in the dense mode domain to the RP of the sparse mode
domain and have the sparse mode domain use standard MSDP procedures to advertise these sources.
Command Purpose
Router(config)# ip msdp originator-id type number Configures the RP address in SA messages to be the address of
the originating router’s interface.
Command Purpose
Router# debug ip msdp [peer-address | peer-name] Debugs an MSDP activity.
[detail] [routes]
Router# debug ip msdp resets Debugs MSDP peer reset reasons.
Router# show ip msdp count [as-number] Displays the number of sources and groups originated in SA
messages from each autonomous system. The ip msdp
cache-sa-state global configuration command must be
configured for this command to produce any output.
Router# show ip msdp peer [peer-address | Displays detailed information about an MSDP peer.
peer-name]
Router# show ip msdp sa-cache [group-address | Displays (S, G) state learned from MSDP peers.
source-address | group-name | source-name]
[as-number]
Router# show ip msdp summary Displays MSDP peer status and SA message counts.
To clear MSDP connections, statistics, or SA cache entries, use the following commands in EXEC
modeas needed:
Command Purpose
Router# clear ip msdp peer [peer-address | Clears the TCP connection to the specified MSDP peer,
peer-name] resetting all MSDP message counters.
Router# clear ip msdp statistics [peer-address | Clears the TCP connection to the specified MSDP peer,
peer-name] resetting all MSDP message counters.
Router# clear ip msdp sa-cache [group-address | Clears the SA cache entries for all entries, all sources for a
peer-name] specific group, or all entries for a specific source/group pair.
To enable Simple Network Management Protocol (SNMP) monitoring of MSDP, use the following
commands in global configuration mode:
Command Purpose
Step 1 Router# snmp-server enable traps msdp Enables the sending of MSDP notifications for use with SNMP.
The snmp-server enable traps command enables both traps
and informs.
Step 2 Router# snmp-server host host [traps | Specifies the recipient (host) for MSDP traps or informs.
informs] [version {1 | 2c | 3 [auth | priv
| noauth ]}] community-string [udp-port
port-number] msdp
For more information about network monitoring using SNMP, refer to the “Configuring Simple Network
Management Protocol (SNMP)” chapter in the Cisco IOS Configuration Fundamentals Configuration
Guide.
Router A Configuration
ip msdp default-peer 10.1.1.1
ip msdp default-peer 10.1.1.1 prefix-list site-a ge 32
ip prefix-list site-b permit 10.0.0.0/8
Router C Configuration
ip msdp default-peer 10.1.1.1 prefix-list site-a ge 32
ip prefix-list site-b permit 10.0.0.0/8
Logical RP
The following example configures a logical RP using an MSDP mesh group. The four routers that are
logical RPs are RouterA, RouterB, RouterC, and RouterD. RouterE is an MSDP border router that is not
an RP. Figure 80 illustrates the logical RP environment in this example; the configurations for routers
A, B, and E follow the figure.
It is important to note the use of the loopback interface and how those host routes are advertised in Open
Shortest Path First (OSPF). It is also important to carefully choose the OSPF router ID loopback so the
ID does not use the logical RP address.
In this example, all the logical RPs are on the same LAN, but this situation is not typical. The host route
for the RP address is advertised throughout the domain and each PIM designated router (DR) in the
domain joins to the closest RP. The RPs share (S, G) information with each other by sending SA
messages. Each logical RP must use a separate originator ID.
Note There are two MSDP mesh groups on RouterA. The routes for the loopback interfaces are in OSPF.
Loopback 0 is the Router ID and is used as the connect source/update source for MBGP/MSDP.
Loopback 10 is the same on all routers in the example.
All networks are 171.69.0.0. The RP address is 10.10.10.10 on Loopback 10 on all RPs. BGP
connections are 192.168.1.x on Loopback 0. Loopback 0 is put into BGP with network 192.168.1.3 mask
255.255.255.255 NLRI unicast multicast.
Domain 2
Router F
Domain 1
192.169.1.x
Router E .6 Receiver
Loopback 0
192.168.1.6
Router A Router B
Loopback 10 Loopback 0 Loopback 10 Loopback 0
e3/0/2/.4 e3/0/1/.5
Router C Router D
Loopback 10 Loopback 0 Loopback 10 Loopback 0
30353
(Host)
Sender
RouterA Configuration
!
hostname RouterA
!
ip routing
!
ip subnet-zero
ip multicast-routing
!
!
interface Loopback0
ip address 192.168.1.2 255.255.255.255
no shutdown
!
interface Loopback10
ip address 10.10.10.10 255.255.255.255
no ip directed-broadcast
ip pim sparse-dense-mode
no shutdown
!
interface Ethernet1/2
description LANethernet2
RouterB Configuration
!
hostname RouterB
!
ip routing
!
ip multicast-routing
ip dvmrp route-limit 20000
!
interface Loopback0
ip address 192.168.1.3 255.255.255.255
no shutdown
!
interface Loopback10
ip address 10.10.10.10 255.255.255.255
ip pim sparse-dense-mode
no shutdown
!
interface Ethernet2
description LANethernet 0
ip address 171.69.0.3 255.255.255.0
ip pim sparse-dense-mode
no shutdown
!
interface Ethernet3
description LANethernet 2
ip address 171.69.2.3 255.255.255.0
ip pim sparse-dense
!
router ospf 10
network 171.69.0.0 0.0.255.255 area 0
network 10.10.10.10 0.0.0.0 area 0
network 192.168.1.3 0.0.0.0 area 0
!
router bgp 1
no synchronization
network 171.69.0.0 nlri unicast multicast
network 192.168.1.3 mask 255.255.255.255 nlri unicast multicast
neighbor 192.168.1.2 remote-as 1 nlri unicast multicast
neighbor description routerA
neighbor 192.168.1.2 update-source loopback0
neighbor 192.168.1.4 remote-as 1 nlri unicast multicast
neighbor description routerC
neighbor 192.168.1.4 update-source loopback0
neighbor 192.168.1.5 remote-as 1 nlri unicast multicast
neighbor description routerD
neighbor 192.168.1.5 update-source loopback0
neighbor 192.168.1.5 soft-recon in
!
ip msdp peer 192.168.1.2 connect-source loopback 0
ip msdp peer 192.168.1.5 connect-source loopback 0
ip msdp peer 192.168.1.4 connect-source loopback 0
ip msdp mesh-group inside-test 192.168.1.2
ip msdp mesh-group inside-test 192.168.1.4
ip msdp mesh-group inside-test 192.168.1.5
ip msdp cache-sa-state
ip msdp originator-id loopback0
!
ip classless
ip pim send-rp-disc scope 10
ip pim send-rp-anno loopback 10 scope 10
!
RouterE Configuration
!
hostname RouterE
!
ip routing
!
ip subnet-zero
ip routing
ip multicast-routing
ip dvmrp route-limit 20000
!
interface Loopback0
ip address 192.168.1.6 255.255.255.255
no shutdown
!
interface Ethernet2
description LANethernet 3
ip address 171.69.3.6 255.255.255.0
ip pim sparse-dense-mode
no shutdown
!
interface Ethernet5
description LANethernet 6
ip address 192.169.1.6 255.255.255.0
ip pim sparse-dense-mode
ip multicast boundary 20
no shutdown
!
router ospf 10
network 171.69.0.0 0.0.255.255 area 0
network 192.168.1.6 0.0.0.0 area 0
default-information originate metric-type 1
!
router bgp 1
no synchronization
network 171.69.0.0 nlri unicast multicast
network 192.168.1.6 mask 255.255.255.255 nlri unicast multicast
network 192.168.1.0
neighbor 192.168.1.2 remote-as 1 nlri unicast multicast
neighbor 192.168.1.2 update-source Loopback0
neighbor 192.168.1.2 next-hop-self
neighbor 192.168.1.2 route-map 2-intern out
neighbor 192.169.1.7 remote-as 2 nlri unicast multicast
neighbor 192.169.1.7 route-map 2-extern out
neighbor 192.169.1.7 default-originate
!
ip classless
ip msdp peer 192.168.1.2 connect-source Loopback0
ip msdp peer 192.169.1.7
ip msdp mesh-group outside-test 192.168.1.2
ip msdp cache-sa-state
ip msdp originator-id Loopback0
!
access-list 1 permit 192.168.1.0
access-list 1 deny 192.168.1.0 0.0.0.255
access-list 1 permit any
!
route-map 2-extern permit 10
match ip address 1
!
route-map 2-intern deny 10
match ip address 1
!
Note Support for the PGM Host feature has been removed. Use of this feature is not recommended.
This chapter describes the PGM Host and Router Assist feature. PGM Host and Router Assist enables
Cisco routers to support multicast applications that operate at the PGM transport layer and the PGM
network layer, respectively.
The PGM Reliable Transport Protocol itself is implemented on the hosts of the customer. For
information on PGM Reliable Transport Protocol, refer to the Internet Engineering Task Force (IETF)
protocol specification draft named PGM Reliable Transport Protocol Specification.
For a complete description of the PGM Host and Router Assist commands in this chapter, refer to the
“PGM Host and Router Assist Commands” chapter of the Cisco IOS IP Command Reference, Volume 3
of 3: Multicast. To locate documentation of other commands that appear in this chapter, use the
command reference master index, or search online.
To identify the hardware platform or software image information associated with a feature, use the
Feature Navigator on Cisco.com to search for information about the feature or refer to the software
release notes for a specific release. For more information, see the “Identifying Supported Platforms”
section in the “Using Cisco IOS Software” chapter.
PGM Overview
Pragmatic General Multicast (PGM) is a reliable multicast transport protocol for multicast applications
that require reliable, ordered, duplicate-free multicast data delivery from multiple sources to multiple
receivers. PGM guarantees that a receiver in a multicast group either receives all data packets from
transmissions and retransmissions, or can detect unrecoverable data packet loss. PGM is intended as a
solution for multicast applications with basic reliability requirements. PGM has two main parts: a host
element (also referred to as the transport layer of the PGM protocol) and a network element (also referred
to as the network layer of the PGM protocol).
The transport layer of the PGM protocol has two main parts: a source part and a receiver part. The
transport layer defines how multicast applications send and receive reliable, ordered, duplicate-free
multicast data from multiple sources to multiple receivers. PGM Host is the Cisco implementation of the
transport layer of the PGM protocol.
The network layer of the PGM protocol defines how intermediate network devices (such as routers and
switches) handle PGM transport data as the data flows through a network. PGM Router Assist is the
Cisco implementation of the network layer of the PGM protocol.
Note PGM contains an element that assists routers and switches in handling PGM transport data as it flows
through a network. Unlike the Router Assist element, the Host element does not have a current
practical application.
PGM is network-layer independent; PGM Host and Router Assist in the Cisco IOS software support
PGM over IP. Both PGM Host and Router Assist use a unique transport session identifier (TSI) that
identifies each individual PGM session.
Figure 81 shows a simple network topology using the PGM Host and Router Assist feature.
Router C Receiver
Router B Receiver
34212
IP multicast
When the router is functioning as a network element (PGM Router Assist is configured) and PGM Host
is configured (Router A in Figure 81), the router can process received PGM packets as a virtual PGM
Host, originate PGM packets and serve as its own first hop PGM network element, and forward received
PGM packets.
When the router is functioning as a network element and PGM Host is not configured (Router B in
Figure 81), the router forwards received PGM packets as specified by PGM Router Assist parameters.
When the router is not functioning as a network element and PGM Host is configured (Router C in
Figure 81), the router can receive and forward PGM packets on any router interface simultaneously as
specified by PGM Host feature parameters. Although this configuration is supported, it is not
recommended in a PGM network because PGM Host works optimally on routers that have PGM Router
Assist configured.
To configure PGM Host, perform the tasks described in the following sections. The tasks in the first
section are required; the tasks in the remaining section are optional.
• Enabling PGM Host (Required)
• Verifying PGM Host Configuration (Optional)
See the end of this chapter for the section “PGM Host and Router Assist Configuration Examples.”
Prerequisites
Before you configure PGM Host, ensure that the following tasks are performed:
• PGM Reliable Transport Protocol is configured on hosts connected to your network.
• PGM Router Assist is configured on intermediate routers and switches connected to your network.
• IP multicast routing is configured on all devices connected to your network that will be processing
IP multicast traffic, including the router on which you are configuring PGM Host.
• Protocol Independent Multicast (PIM) or another IP multicast routing protocol is configured on each
PGM interface in your network that will send and receive IP multicast packets.
• A PGM multicast virtual host interface (vif) is configured on the router (if you do not plan to source
PGM packets through a physical interface installed on the router). The vif enables the router to send
and receive IP multicast packets on several different interfaces at once, as dictated by the multicast
routing tables on the router.
Note Support for the PGM Host feature has been removed. Use of this feature is not recommended.
When enabling PGM Host on your router, you must source PGM packets through a vif or out a physical
interface installed in the router.
Sourcing PGM packets through a vif enables the router to send and receive PGM packets through any
router interface. The vif also serves as the interface to the multicast applications that reside at the PGM
network layer.
Sourcing IP multicast traffic out a specific physical or logical interface type (for example, an Ethernet,
serial, or loopback interface) configures the router to send PGM packets out that interface only and to
receive packets on any router interface.
Command Purpose
Router(config)# ip pgm host Enables PGM Host (both the source and receiver parts of the PGM
network layer) globally on the router and configures the router to
source PGM packets through a vif.
Note You must configure a vif by using the interface vif number
global configuration command on the router before enabling
PGM Host on the router; otherwise, the router will not know
to use the vif to source PGM packets and PGM Host will not
be enabled on the router.
See the “PGM Host with a Virtual Interface Example” section later in this chapter for an example of
enabling PGM Host with a virtual interface.
Command Purpose
Step 1 Router(config)# ip pgm host Enables PGM Host (both the source and receiver part of the PGM
network layer) globally on the router.
Step 2 Router(config)# ip pgm host Configures the router to source PGM packets through a physical (or
source-interface type number logical) interface.
See the “PGM Host with a Physical Interface Example” section later in this chapter for an example of
enabling PGM Host with a physical interface.
Note Support for the PGM Host feature has been removed. Use of this feature is not recommended.
To verify that PGM Host is configured correctly on your router, use the following show commands in
EXEC mode:
• Use the show ip pgm host sessions command to display information about current open PGM
transport sessions:
Router> show ip pgm host sessions
Idx GSI Source Port Type State Dest Port Mcast Address
1 000000000000 0 receiver listen 48059 224.3.3.3
Specifying a traffic session number or a multicast IP address with the show ip pgm host sessions
command displays information specific to that PGM transport session:
Router> show ip pgm host sessions 2
Idx GSI Source Port Type State Dest Port Mcast Address
2 9CD72EF099FA 1025 source conn 48059 224.1.1.1
• Use the show ip pgm host traffic command to display traffic statistics at the PGM transport layer:
Router> show ip pgm host traffic
General Statistics :
Sessions in 0
out 0
Bytes in 0
out 0
Source Statistics :
Receiver Statistics :
Prerequisites
Before you enable PGM Router Assist, ensure that the following tasks are completed:
• PGM Reliable Transport Protocol is configured on hosts connected to your network.
• IP multicast is configured on the router upon which you will enable PGM Router Assist.
• PIM is configured on each PGM interface.
Command Purpose
Router(config-if)# ip pgm router Enables the router to assist PGM on this interface.
Note You must configure a vif by using the interface vif number
global configuration command on the router before enabling
PGM Assist on the router; otherwise, PGM Assist will not
be enabled on the router.
See the “PGM Router Assist with a Virtual Interface Example” section later in this chapter for an
example of enabling PGM Router Assist with a virtual interface.
Command Purpose
Router(config-if)# ip pgm router Enables the router to assist PGM on this interface.
See the “PGM Router Assist with a Physical Interface Example” section later in this chapter for an
example of enabling PGM Router Assist with a physical interface.
Note Support for the PGM Host feature has been removed. Use of this feature is not recommended.
To reset PGM Host connections, use the following command in privileged EXEC mode:
Command Purpose
Router# clear ip pgm host {defaults | traffic} Resets PGM Host connections to their default values and clears
traffic statistics.
To enable PGM Host debugging, use the following command in privileged EXEC mode:
Command Purpose
Router# debug ip pgm host Displays debug messages for PGM Host.
To display PGM Host information, use the following commands in user EXEC mode, as needed:
Command Purpose
Router> show ip pgm host defaults Displays the default values for PGM Host traffic.
Router> show ip pgm host sessions [session-number | Displays open PGM Host traffic sessions.
group-address]
Router> show ip pgm host traffic Displays PGM Host traffic statistics.
Command Purpose
Router# clear ip pgm router [[traffic [type Clears the PGM traffic statistics. Use the rtx-state keyword to
number]] | [rtx-state [group-address]]] clear PGM retransmit state.
To display PGM information, use the following command in privileged EXEC mode:
Command Purpose
Router# show ip pgm router [[interface [type Displays information about PGM traffic statistics and TSI state.
number]] | [state [group-address]] | [traffic [type The TSI is the transport-layer identifier for the source of a PGM
number]]] [verbose]
session. Confirms that PGM Router Assist is configured,
although there might not be any active traffic. Use the state or
traffic keywords to learn whether an interface is actively using
PGM.
Note For clarity, extraneous information has been omitted from the examples in the following sections.
Note Support for the PGM Host feature has been removed. Use of this feature is not recommended.
The following example shows PGM Host (both the source and receiver part of the PGM network layer)
enabled globally on the router and PGM packets sourced through virtual host interface 1 (vif1). PGM
packets can be sent and received on the vif and on the two physical interfaces (ethernet1 and ethernet2)
simultaneously.
ip multicast-routing
ip routing
ip pgm host
interface vif1
ip address 10.0.0.1 255.255.255.0
ip pim dense-mode
no ip directed-broadcast
no ip mroute-cache
interface ethernet1
ip address 10.1.0.1 255.255.255.0
ip pim dense-mode
no ip directed-broadcast
no ip mroute-cache
media-type 10BaseT
interface ethernet2
ip address 10.2.0.1 255.255.255.0
ip pim dense-mode
no ip directed-broadcast
no ip mroute-cache
media-type 10BaseT
Note Support for the PGM Host feature has been removed. Use of this feature is not recommended.
The following example shows PGM Host (both the source and receiver part of the PGM network layer)
enabled globally on the router and PGM packets sourced out of physical Ethernet interface 1. PGM
packets can be received on physical Ethernet interfaces 1 and 2 simultaneously.
ip multicast-routing
ip routing
ip pgm host
ip pgm host source-interface ethernet1
ip pgm host source-interface ethernet2
interface ethernet1
ip address 10.1.0.1 255.255.255.0
ip pim dense-mode
no ip directed-broadcast
no ip mroute-cache
media-type 10BaseT
interface ethernet2
ip address 10.2.0.1 255.255.255.0
ip pim dense-mode
no ip directed-broadcast
no ip mroute-cache
media-type 10BaseT
interface vif1
ip address 10.0.0.1 255.255.255.0
ip pim dense-mode
ip pgm router
no ip directed-broadcast
no ip mroute-cache
interface ethernet1
ip address 10.1.0.1 255.255.255.0
ip pim dense-mode
ip pgm router
no ip directed-broadcast
no ip mroute-cache
media-type 10BaseT
interface ethernet2
ip address 10.2.0.1 255.255.255.0
ip pim dense-mode
ip pgm router
no ip directed-broadcast
no ip mroute-cache
media-type 10BaseT
interface ethernet1
ip address 10.1.0.1 255.255.255.0
ip pim dense-mode
ip pgm router
no ip directed-broadcast
no ip mroute-cache
media-type 10BaseT
interface ethernet2
ip address 10.2.0.1 255.255.255.0
ip pim dense-mode
ip pgm router
no ip directed-broadcast
no ip mroute-cache
media-type 10BaseT
This chapter describes the unidirectional link routing (UDLR) feature. UDLR provides mechanisms for
a router to emulate a bidirectional link to enable the routing of unicast and multicast packets over a
physical unidirectional interface, such as a broadcast satellite link. However, there must be a back
channel or other path between the routers that share a physical unidirectional link (UDL). A UDLR
tunnel is a mechanism for unicast and multicast traffic; Internet Group Management Protocol (IGMP)
UDLR and IGMP Proxy are mechanisms for multicast traffic.
For information about tunnel interfaces, refer to the “Configuring Logical Interfaces” chapter in the
Cisco IOS Interface Configuration Guide. For information about IGMP, refer to the chapter
“Configuring IP Multicast Routing” in the Cisco IOS IP Configuration Guide.
For a complete description of the UDLR commands used in this chapter, refer to the “Unidirectional
Link Routing Commands” chapter in the Cisco IOS IP Command Reference, Volume 3 of 3: Multicast.
To locate documentation of other commands that appear in this chapter, use the command reference
master index, or search online.
To identify the hardware platform or software image information associated with a feature, use the
Feature Navigator on Cisco.com to search for information about the feature or refer to the software
release notes for a specific release. For more information, see the “Identifying Supported Platforms”
section in the “Using Cisco IOS Software” chapter.
UDLR Overview
Both unicast and multicast routing protocols forward data on interfaces from which they have received
routing control information. This model works only on bidirectional links for most existing routing
protocols. However, some networks use broadcast satellite links, which are unidirectional. For networks
that use broadcast satellite links, accomplishing two-way communication over broadcast satellite links
presents a problem in terms of discovering and sharing knowledge of a network topology.
Specifically, in unicast routing, when a router receives an update message on an interface for a prefix, it
forwards data for destinations that match that prefix out that same interface. This is the case in distance
vector routing protocols. Similarly, in multicast routing, when a router receives a join message for a
multicast group on an interface, it forwards copies of data destined for that group out that same interface.
Based on these principles, existing unicast and multicast routing protocols cannot be supported over
UDLs. UDLR is designed to enable the operation of routing protocols over UDLs without changing the
routing protocols themselves.
UDLR enables a router to emulate the behavior of a bidirectional link for IP operations over UDLs.
UDLR has three complementary mechanisms for bidirectional link emulation, which are described in the
following sections:
• UDLR Tunnel
• IGMP UDLR
• IGMP Proxy
You can use each mechanism independently or in conjunction with the others.
UDLR Tunnel
The UDLR tunnel mechanism enables IP and its associated unicast and multicast routing protocols to
treat the UDL as being logically bidirectional. A packet that is destined on a receive-only interface is
picked up by the UDLR tunnel mechanism and sent to an upstream router using a generic routing
encapsulation (GRE) tunnel. The control traffic flows in the opposite direction as the user data flow.
When the upstream router receives this packet, the UDLR tunnel mechanism makes it appear that the
packet was received on a send-only interface on the UDL.
The purpose of the unidirectional GRE tunnel is to move control packets from a downstream node to an
upstream node. The one-way tunnel is mapped to a one-way interface (that goes in the opposite
direction). Mapping is performed at the link layer, so the one-way interface appears bidirectional. When
the upstream node receives packets over the tunnel, it must make the upper-layer protocols act as if the
packets were received on the send-capable UDL.
UDLR tunnel supports the following features:
• Address Resolution Protocol (ARP) and Next Hop Resolution Protocol (NHRP) over a UDL
• Emulation of bidirectional links for all IP traffic (as opposed to only control-only
broadcast/multicast traffic)
• Support for IP GRE multipoint at a receive-only tunnel
Note A UDL router can have many routing peers, for example, routers interconnected via a broadcast
satellite link. As with bidirectional links, the number of peer routers a router has must be kept
relatively small to limit the volume of routing updates that must be processed. For multicast
operation, we recommend using the IGMP UDLR mechanism when interconnecting more than 20
routers.
IGMP UDLR
Another mechanism that enables support of multicast routing protocols over UDLs is using IP multicast
routing with IGMP, which has been enhanced to accommodate UDLR. This mechanism scales well for
many broadcast satellite links.
With IGMP UDLR, an upstream router sends periodic queries for members on the UDL. The queries
include a unicast address of the router that is not the unicast address of the unidirectional interface. The
downstream routers forward IGMP reports received from directly connected members (on interfaces
configured to helper forward IGMP reports) to the upstream router. The upstream router adds the
unidirectional interface to the (*, G) outgoing interface list, thereby enabling multicast packets to be
forwarded down the UDL.
In a large enterprise network, it is not possible to be able to receive IP multicast traffic via satellite and
forward the traffic throughout the network. This limitation exists because receiving hosts must be
directly connected to the downstream router. However, you can use the IGMP Proxy mechanism to
overcome this limitation. See the “IGMP Proxy” section later in this chapter for more information on
this mechanism.
For information on IGMP, refer to the “Configuring IP Multicast Routing” chapter in the Cisco IOS IP
Configuration Guide.
IGMP Proxy
The IGMP Proxy mechanism enables hosts that are not directly connected to a downstream router to join
a multicast group sourced from an upstream network. Figure 82 illustrates this mechanism.
Unidirectional Router A
tunnel
Router B
RP
LAN B
Local net
Router C
User 1
46457
Note Because PIM messages are not forwarded upstream, each downstream network and the upstream
network has a separate domain.
Prerequisite
Before configuring UDLR tunnel, ensure that all routers on the UDL have the same subnet address. If
all routers on the UDL cannot have the same subnet address, the upstream router must be configured with
secondary addresses to match all the subnets that the downstream routers are attached to.
• On the upstream router, where the UDL can only send, you must configure the tunnel to receive.
When packets are received over the tunnel, the upper-layer protocols treat the packet as though it is
received over the unidirectional, send-only interface.
• On the downstream router, where the UDL can only receive, you must configure the tunnel to send.
When packets are sent by upper-layer protocols over the interface, they will be redirected and sent
over this GRE tunnel.
To configure a UDLR tunnel on the upstream router, use the following commands beginning in global
configuration mode:
Command Purpose
Step 1 Router(config)# interface type number Configures the unidirectional send-only interface.
Step 2 Router(config-if)# interface tunnel number Configures the receive-only tunnel interface.
Step 3 Router(config-if)# tunnel udlr receive-only Configures the UDLR tunnel. Use the same type and number
type number values as the unidirectional send-only interface type and number
values specified with the interface type number command.
Step 4 Router(config-if)# tunnel source Configures the tunnel source.
{ip-address | type number}
Step 5 Router(config-if)# tunnel destination Configures the tunnel destination.
{hostname | ip-address}
To configure a UDLR tunnel on the downstream router, use the following commands beginning in global
configuration mode:
Command Purpose
Step 1 Router(config)# interface type number Configures the unidirectional receive-only interface.
Step 2 Router(config-if)# interface tunnel number Configures the send-only tunnel interface.
Step 3 Router(config-if)# tunnel udlr send-only Configures the UDLR tunnel. Use the same type and number
type number values as the unidirectional receive-only interface type and
number values specified with the interface type number
command.
Step 4 Router(config-if)# tunnel source Configures the tunnel source.
{ip-address | type number}
Step 5 Router(config-if)# tunnel destination Configures the tunnel destination.
{hostname | ip-address}
Step 6 Router(config-if)# tunnel udlr Enables the forwarding of ARP and NHRP.
address-resolution
See the “UDLR Tunnel Example” section later in this chapter for an example of how to configure a
UDLR tunnel. See the “Integrated UDLR Tunnel, IGMP UDLR, and IGMP Proxy Example” section
later in this chapter for an example of how to set up all three UDLR mechanisms in the same
configuration.
Prerequisites
Before configuring IGMP UDLR, ensure that the following conditions exist:
• All routers on the UDL have the same subnet address. If all routers on the UDL cannot have the same
subnet address, the upstream router must be configured with secondary addresses to match all the
subnets that the downstream routers are attached to.
• Multicast receivers are directly connected to the downstream routers.
Command Purpose
Router(config-if)# ip igmp unidirectional-link Configures IGMP on the interface to be unidirectional.
To configure the IGMP UDL on the downstream router, use the following commands in interface
configuration mode:
Command Purpose
Step 1 Router(config-if)# ip igmp Configures IGMP on the interface to be unidirectional.
unidirectional-link
Step 2 Router(config-if)# ip igmp Configures the interface to be an IGMP helper. Use this command
helper-address udl type number on every downstream router, on every interface to a potential
multicast receiver. Specify the type and number values that identify
the UDL interface.
See the “IGMP UDLR Example” section later in this chapter for an example of how to configure IGMP
UDLR. See the “Integrated UDLR Tunnel, IGMP UDLR, and IGMP Proxy Example” section later in
this chapter for an example of how to set up all three UDLR mechanisms in the same configuration.
Command Purpose
Router(config)# ip multicast default-rpf-distance Changes the distance for the default RPF interface.
distance
Command Purpose
Router# show ip igmp udlr [group-name | Displays UDLR information for directly connected multicast
group-address | type number] groups on interfaces that have a UDL helper address configured.
Prerequisites
Before configuring IGMP Proxy, ensure that the following conditions exist:
• All routers on the UDL have the same subnet address. If all routers on the UDL cannot have the same
subnet address; the upstream router must be configured with secondary addresses to match all the
subnets that the downstream routers are attached to.
• PIM-SM is configured in the network, the UDL downstream router is the RP for a select set of
addresses, and mroute proxy is configured on interfaces leading to PIM-enabled networks with
potential members.
Command Purpose
Step 1 Router(config-if)# ip igmp mroute-proxy When used with the ip igmp proxy-service command, enables
type number forwarding of IGMP reports to a proxy service interface for all
(*, G) forwarding entries for this interface in the multicast
forwarding table.
Step 2 Router(config-if)# ip igmp proxy-service Enables the mroute proxy service. Based on the IGMP query
interval, the router periodically checks the mroute table for
(*, G) forwarding entries that match interfaces configured with
the ip igmp mroute-proxy command. Where there is a match,
one IGMP report is created and received on this interface. This
command was intended to be used with the ip igmp
helper-address udl command, in which case the IGMP report
would be forwarded to an upstream router.
See the “IGMP Proxy Example” section later in this chapter for an example of how to configure IGMP
Proxy. See the “Integrated UDLR Tunnel, IGMP UDLR, and IGMP Proxy Example” section later in this
chapter for an example of how to set up all three UDLR mechanisms in the same configuration.
Router A
Data
Serial 0
Tunnel 0
Control
messages
Satellite Internet
network
Tunnel 1
Serial 1 Control
messages
18929
Router B
Router A Configuration
ip multicast-routing
!
! Serial0 has send-only capability
!
interface serial 0
encapsulation hdlc
ip address 10.1.0.1 255.255.0.0
ip pim sparse-dense-mode
!
! Configure tunnel as receive-only UDLR tunnel.
!
interface tunnel 0
tunnel source 11.0.0.1
tunnel destination 11.0.0.2
Router B Configuration
ip multicast-routing
!
! Serial1 has receive-only capability
!
interface serial 1
encapsulation hdlc
ip address 10.1.0.2 255.255.0.0
ip pim sparse-dense-mode
!
! Configure tunnel as send-only UDLR tunnel.
!
interface tunnel 0
tunnel source 11.0.0.2
tunnel destination 11.0.0.1
tunnel udlr send-only serial 1
tunnel udlr address-resolution
!
! Configure OSPF.
!
router ospf <pid>
network 10.0.0.0 0.255.255.255 area 0
Note Configuring PIM on the back channel interfaces on the uplink router and downlink router is optional.
All routers on a UDL must have the same subnet address. If all routers on a UDL cannot have the same
subnet address, the upstream router must be configured with secondary addresses to match all the
subnets that the downstream routers are attached to.
Source (12.0.0.12)
12.0.0.1
Uplink router 11.0.0.1
10.0.0.1
10.0.0.2
Downlink router 13.0.0.2
14.0.0.2 18930
Receiver (14.0.0.14)
10.1.1.1
Router A
10.3.1.1
10.2.1.1
Internet Unidirectional link
10.6.1.1 10.2.1.2
Router B
10.5.1.1
Local net
Router C
10.9.1.1
46458
Router A Configuration
interface ethernet 0
ip address 10.1.1.1 255.255.255.0
ip pim dense-mode
!
interface ethernet 1
ip address 10.2.1.1 255.255.255.0
ip pim dense-mode
ip igmp unidirectional link
!
interface ethernet 2
ip address 10.3.1.1 255.255.255.0
Router B Configuration
ip pim rp-address 10.5.1.1 5
access-list 5 permit 239.0.0.0 0.255.255.255.255
!
interface loopback 0
ip address 10.7.1.1 255.255.255.0
ip pim dense-mode
ip igmp helper-address udl ethernet 0
ip igmp proxy-service
!
interface ethernet 0
ip address 10.2.1.2 255.255.255.0
ip pim dense-mode
ip igmp unidirectional link
!
interface ethernet 1
ip address 10.5.1.1 255.255.255.0
ip pim sparse-mode
ip igmp mroute-proxy loopback 0
!
interface ethernet 2
ip address 10.6.1.1 255.255.255.0
Router C Configuration
ip pim rp-address 10.5.1.1 5
access-list 5 permit 239.0.0.0 0.255.255.255
!
interface ethernet 0
ip address 10.8.1.1 255.255.255.0
ip pim sparse-mode
!
interface ethernet 1
ip address 10.9.1.1 255.255.255.0
ip pim sparse-mode
Upstream Configuration
ip multicast-routing
!
!
!
interface Tunnel0
ip address 9.1.89.97 255.255.255.252
no ip directed-broadcast
tunnel source 9.1.89.97
tunnel mode gre multipoint
tunnel key 5
tunnel udlr receive-only Ethernet2/3
!
interface Ethernet2/0
no ip address
shutdown
!
! user network
interface Ethernet2/1
ip address 9.1.89.1 255.255.255.240
no ip directed-broadcast
ip pim dense-mode
ip cgmp
fair-queue 64 256 128
no cdp enable
ip rsvp bandwidth 1000 100
!
interface Ethernet2/2
ip address 9.1.95.1 255.255.255.240
no ip directed-broadcast
!
! physical send-only interface
interface Ethernet2/3
ip address 9.1.92.100 255.255.255.240
no ip directed-broadcast
ip pim dense-mode
ip nhrp network-id 5
ip nhrp server-only
ip igmp unidirectional-link
fair-queue 64 256 31
ip rsvp bandwidth 1000 100
!
router ospf 1
network 9.1.92.96 0.0.0.15 area 1
!
ip classless
ip route 9.1.90.0 255.255.255.0 9.1.92.99
!
Downstream Configuration
ip multicast-routing
!
!
!
interface Loopback0
ip address 9.1.90.161 255.255.255.252
ip pim sparse-mode
ip igmp helper-address udl Ethernet2/3
ip igmp proxy-service
!
interface Tunnel0
ip address 9.1.90.97 255.255.255.252
ip access-group 120 out
no ip directed-broadcast
no ip mroute-cache
tunnel source 9.1.90.97
tunnel destination 9.1.89.97
tunnel key 5
tunnel udlr send-only Ethernet2/3
tunnel udlr address-resolution
!
interface Ethernet2/0
no ip address
no ip directed-broadcast
shutdown
no cdp enable
!
! user network
interface Ethernet2/1
ip address 9.1.90.1 255.255.255.240
no ip directed-broadcast
ip pim sparse-mode
ip igmp mroute-proxy Loopback0
no cdp enable
!
! Backchannel
interface Ethernet2/2
ip address 9.1.95.3 255.255.255.240
no ip directed-broadcast
no cdp enable
!
! physical receive-only interface
interface Ethernet2/3
ip address 9.1.92.99 255.255.255.240
no ip directed-broadcast
ip pim sparse-mode
ip igmp unidirectional-link
no keepalive
no cdp enable
!
router ospf 1
network 9.1.90.0 0.0.0.255 area 1
network 9.1.92.96 0.0.0.15 area 1
!
ip classless
ip route 0.0.0.0 0.0.0.0 9.1.95.1
! set rpf to be the physical receive-only interface
ip mroute 0.0.0.0 0.0.0.0 9.1.92.96
ip pim rp-address 9.1.90.1
!
! permit ospf, ping and rsvp, deny others
access-list 120 permit icmp any any
access-list 120 permit 46 any any
access-list 120 permit ospf any any
This chapter describes IP multicast tools that allow you to trace a multicast path or test a multicast
environment. For a complete description of the commands in this chapter, refer to the “IP Multicast Tools
Commands” chapter in the Cisco IOS IP Command Reference, Volume 3 of 3: Multicast publication. To
locate documentation of other commands that appear in this chapter, use the command reference master
index, or search online.
To identify the hardware platform or software image information associated with a feature, use the
Feature Navigator on Cisco.com to search for information about the feature or refer to the software
release notes for a specific release. For more information, see the “Identifying Supported Platforms”
section in the “Using Cisco IOS Software” chapter.
Benefits
The benefits of the MRM feature are as follows:
• Find fault in multicast routing in near real time—If a problem exists in the multicast routing
environment, you will find out about it right away.
• Can verify a multicast environment prior to an event—You need not wait for real multicast traffic
to fail in order to find out that a problem exists. You can test the multicast routing environment
before a planned event.
• Easy diagnostics—The error information is easy for the user to understand.
• Scalable—This diagnostic tool works well for many users.
Restrictions
You must make sure the underlying multicast forwarding network being tested has no access lists or
boundaries that deny the MRM data and control traffic. Specifically, consider the following factors:
• MRM test data are User Datagram Protocol (UDP) and Real-Time Transport Protocol (RTP) packets
addressed to the configured multicast group address.
• MRM control traffic between the Test Sender, Test Receiver, and Manager is addressed to the
224.0.1.111 multicast group, which all three components join.
Command Purpose
Step 1 Router(config)# interface type number Specifies an interface.
Step 2 Router(config-if)# ip mrm test-receiver Configures the interface to be a Test Receiver.
Step 3 Router(config)# ip mrm accept-manager Optionally, specifies that the Test Receiver can accept status
{access-list} report requests only from Managers specified by the access list.
To use MRM on test packets instead of actual IP multicast traffic, use the following commands beginning
in global configuration mode to configure a Test Sender on a different router or host from where you
configured the Test Receiver:
Command Purpose
Step 1 Router(config)# interface type number Specifies an interface.
Step 2 Router(config-if)# ip mrm test-sender Configures the interface to be a Test Sender.
Step 3 Router(config)# ip mrm accept-manager Optionally, specifies that the Test Sender can accept status report
{access-list} requests only from Managers specified by the access list.
Figure 86 Test Sender and Test Receiver for Different Groups on One Router
Group B
Group A
Test Receiver
ip mrm test-receiver
23783
To configure the routers in Figure 86 for monitoring more than one multcast group, configure the Test
Sender in Group B and the Test Receiver in Group A separately, as already discussed, and configure the
following commands beginning in global configuration mode on the router or host that belongs to both
Group A and Group B (in the upper left of Figure 86):
Command Purpose
Step 1 Router(config)# interface type number Specifies an interface.
Command Purpose
Step 2 Router(config-if)# ip mrm test-sender-receiver Configures the interface to be a Test Sender for one group
and a Test Receiver for another group.
Step 3 Router(config)# ip mrm accept-manager Optionally, specifies that the Test Sender or Test Receiver
{access-list} [test-sender | test-receiver] can accept status report requests only from Managers
specified by the access list. By default, the command
applies to both the Sender and Receiver. Because this
device is both, you might need to specify that the restriction
applies to only the Sender or only the Receiver.
Configuring a Manager
To configure a router as a Manager in order for MRM to function, use the following commands
beginning in global configuration mode. A host cannot be a Manager.
Command Purpose
Step 1 Router(config)# ip mrm manager test-name Identifies a test by name, and places the router in manager
configuration mode. The test name is used to start, stop,
and monitor a test.
Step 2 Router(config-mrm-manager)# manager type Specifies which interface on the router is the Manager, and
number group ip-address specifies the multicast group address the Test Receiver will
listen to.
Step 3 Router(config-mrm-manager)# beacon [interval Changes the frequency, duration, or scope of beacon
seconds][holdtime seconds] [ttl ttl-value] messages that the Manager sends to the Test Sender and
Test Receiver.
Step 4 Router(config-mrm-manager)# udp-port Changes UDP port numbers to which the Test Sender sends
[test-packet port-number] [status-report test packets or the Test Receiver sends status reports.
port-number]
Step 5 Router(config-mrm-manager)# senders Configures Test Sender parameters.
{access-list} [packet-delay milliseconds] [rtp
| udp] [target-only | all-multicasts |
all-test-senders]
Step 6 Router(config-mrm-manager)# receivers Establishes Test Receivers for MRM, specifies which Test
{access-list} [sender-list {access-list} Senders the Test Receivers will listen to, specifies which
[packet-delay]] [window seconds] [report-delay
seconds] [loss percentage] [no-join] [monitor
sources the Test Receivers monitor, specifies the packet
| poll] delay, and changes Test Receiver parameters.
Command Purpose
Router# mrm test-name {start | stop} Starts or stops the MRM test.
When the test begins, the Manager sends a unicast control packet to the Test Sender and Test Receiver,
and then the Manager starts sending beacons. The Test Sender and Test Receiver send acknowledgments
to the Manager and begin sending or receiving test packets. If an error occurs, the Test Receiver sends
an error report to the Manager, which immediately displays the report.
You cannot change the Manager parameters while the test is in progress.
Command Purpose
Router# mrinfo [host-name | host-address] Queries a multicast router about which neighboring multicast
[source-address | interface] routers are peering with it.
Router# mstat source [destination] [group] Displays IP multicast packet rate and loss information.
Router# mtrace {source-name | source-address} Traces the path from a source to a destination branch for a
[destination-name | destination-address][group-name multicast distribution tree for a given group.
| group-address]
Command Purpose
Router# clear ip mrm status-report [ip-address] Clears the status report cache buffer.
Router# show ip mrm interface [type number] Displays Test Sender and Test Receiver information.
Router# show ip mrm manager [test-name] Displays MRM test information.
Router# show ip mrm status-report [ip-address] Displays the status reports (errors) in the circular cache buffer.
Sender Receiver
Ethernet 0 IP multicast Ethernet 0
10.1.1.2 network 10.1.4.2
Ethernet 1
23784
Manager
Manager Configuration
ip mrm manager test1
manager Ethernet 1 group 239.1.1.1
senders 1
receivers 2 sender-list 1
!
access-list 1 permit 10.1.1.2
access-list 2 permit 10.1.4.2
This chapter describes the Router-Port Group Management Protocol (RGMP). RGMP is a Cisco protocol
that restricts IP multicast traffic in switched networks. RGMP is a Layer 2 protocol that enables a router
to communicate to a switch (or a networking device that is functioning as a Layer 2 switch) the multicast
group for which the router would like to receive or forward traffic. RGMP restricts multicast traffic at
the ports of RGMP-enabled switches that lead to interfaces of RGMP-enabled routers.
For a complete description of the RGMP commands in this chapter, refer to the Cisco IOS IP Command
Reference, Volume 3 of 3: Multicast. To locate documentation of other commands that appear in this
chapter, use the command reference master index, or search online.
To identify the hardware platform or software image information associated with a feature, use the
Feature Navigator on Cisco.com to search for information about the feature or refer to the software
release notes for a specific release. For more information, see the “Identifying Supported Platforms”
section in the “Using Cisco IOS Software” chapter.
Figure 88 shows where these protocols operate within the IP multicast environment.
Internet
MBONE
Catalyst 5000
switch DVMRP
Host
CGMP
Host
PIM
43274
IGMP
Note CGMP and RGMP cannot interoperate on the same switched network. If RGMP is enabled on a
switch or router interface, CGMP is automatically disabled on that switch or router interface; if
CGMP is enabled on a switch or router interface, RGMP is automatically disabled on that switch or
router interface.
RGMP Overview
RGMP enables a router to communicate to a switch the IP multicast group for which the router would
like to receive or forward traffic. RGMP is designed for switched Ethernet backbone networks running
PIM sparse mode (PIM-SM) or sparse-dense mode.
Note RGMP-enabled switches and router interfaces in a switched network support directly connected,
multicast-enabled hosts that receive multicast traffic. RGMP-enabled switches and router interfaces
in a switched network do not support directly connected, multicast-enabled hosts that source
multicast traffic. A multicast-enabled host can be a PC, a workstation, or a multicast application
running in a router.
Figure 89 shows a switched Ethernet backbone network running PIM in sparse mode, RGMP, and IGMP
snooping.
Router A Router B
PIM SM PIM SM
RGMP RGMP
A B
B A
Switched network
A B Source for
Source for
group A group B
B
A A B
Switch A Switch B
RGMP RGMP
A IGMP IGMP B Receiver 1
Receiver 1 B A
for group A snooping snooping for group B
A Router C Router D B
PIM SM PIM SM
RGMP RGMP Receiver 2
Receiver 2
39165
for group A for group B
Traffic restricted by RGMP
In Figure 89, the sources for the two different multicast groups (the source for group A and the source
for group B) send traffic into the same switched network. Without RGMP, traffic from source A is
unnecessarily flooded from switch A to switch B, then to router B and router D. Also, traffic from
source B is unnecessarily flooded from switch B to switch A, then to router A and router C. With RGMP
enabled on all routers and switches in this network, traffic from source A would not flood router B and
router D. Also, traffic from source B would not flood router A and router C. Traffic from both sources
would still flood the link between switch A and switch B. Flooding over this link would still occur
because RGMP does not restrict traffic on links toward other RGMP-enabled switches with routers
behind them.
By restricting unwanted multicast traffic in a switched network, RGMP increases the available
bandwidth for all other multicast traffic in the network and saves the processing resources of the routers.
Figure 90 shows the RGMP messages sent between an RGMP-enabled router and an RGMP-enabled
switch.
PIM-SM RGMP
RGMP IGMP Snooping
PIM hello
RGMP hello
RGMP bye
X
42759
All multicast packets
The router sends simultaneous PIM hello (or a PIM query message if PIM Version 1 is configured) and
RGMP hello messages to the switch. The PIM hello message is used to locate neighboring PIM routers.
The RGMP hello message instructs the switch to restrict all multicast traffic on the interface from which
the switch received the RGMP hello message.
Note RGMP messages are sent to the multicast address 224.0.0.25, which is the local-link multicast
address reserved by the Internet Assigned Numbers Authority (IANA) for sending IP multicast traffic
from routers to switches.
If RGMP is not enabled on both the router and the switch, the switch automatically forwards all
multicast traffic out the interface from which the switch received the PIM hello message.
The router sends the switch an RGMP join <G> message (where G is the multicast group address) when
the router wants to receive traffic for a specific multicast group. The RGMP join message instructs the
switch to forward multicast traffic for group <G> out the interface from which the switch received the
RGMP hello message.
Note The router sends the switch an RGMP join <G> message for a multicast group even if the router is
only forwarding traffic for the multicast group into a switched network. By joining a specific
multicast group, the router can determine if another router is also forwarding traffic for the multicast
group into the same switched network. If two routers are forwarding traffic for a specific multicast
group into the same switched network, the two routers use the PIM assert mechanism to determine
which router should continue forwarding the multicast traffic into the network.
The router sends the switch an RGMP leave <G> message when the router wants to stop receiving traffic
for a specific multicast group. The RGMP leave message instructs the switch to stop forwarding the
multicast traffic on the port from which the switch received the PIM and RGMP hello messages.
Note An RGMP-enabled router cannot send an RGMP leave <G> message until the router does not receive
or forward traffic from any source for a specific multicast group (if multiple sources exist for a
specific multicast group).
The router sends the switch an RGMP bye message when RGMP is disabled on the router. The RGMP
bye message instructs the switch to forward the router all IP multicast traffic on the port from which the
switch received the PIM and RGMP hello messages, as long as the switch continues to receive PIM hello
messages on the port.
Prerequisites
Before you enable RGMP, ensure that the following features are enabled on your router:
• IP routing
• IP multicast
• PIM in sparse mode, sparse-dense mode, source specific mode, or bidirectional mode
If your router is in a bidirectional group, make sure to enable RGMP only on interfaces that do not
function as a designated forwarder (DF). If you enable RGMP on an interface that functions as a DF, the
interface will not forward multicast packets up the bidirectional shared tree to the rendezvous point (RP).
You must have the following features enabled on your switch:
• IP multicast
• IGMP snooping
Note Refer to the Catalyst switch software documentation for RGMP switch configuration tasks and
command information.
Enabling RGMP
To enable RGMP, use the following commands on all routers in your network beginning in global
configuration mode:
Command Purpose
Step 1 Router(config)# interface type number Specifies the router interface on which you want to configure
RGMP and enters interface configuration mode.
Step 2 Router(config-if)# ip rgmp Enables RGMP on a specified interface.
See the “RGMP Configuration Example” section later in this chapter for an example of how to configure
RGMP.
Note If RGMP is not enabled on an interface, no RGMP information is displayed in the show ip igmp
interface command output for that interface.
Command Purpose
Router# debug ip rgmp [group-name | group-address] Logs debug messages sent by an RGMP-enabled router.
Using the command without arguments logs RGMP Join <G>
and RGMP leave <G> messages for all multicast groups
configured on the router. Using the command with arguments
logs RGMP join <G> and RGMP leave <G> messages for the
specified group.
Figure 91 shows the debug messages that are logged by an RGMP-enabled router as the router sends
RGMP join <G> and RGMP leave <G> messages to an RGMP-enabled switch.
PIM-SM RGMP
RGMP IGMP snooping
PIM hello
RGMP hello
RGMP bye
X
RGMP: Sending a bye packet on Ethernet1/0
42760
Router A Router B
PIM SM PIM SM
RGMP RGMP
1/0 1/0
1/1 1/1
Switch A Switch B
RGMP RGMP
Receiver 1 IGMP IGMP Receiver 1
for group A snooping snooping for group B
1/1 1/1
1/0 1/0
Router C Router D
PIM SM PIM SM
RGMP RGMP Receiver 2
Receiver 2
42758
for group A for group B
Router A Configuration
ip routing
ip multicast-routing
Router B Configuration
ip routing
ip multicast-routing
no shutdown
Router C Configuration
ip routing
ip multicast-routing
Router D Configuration
ip routing
ip multicast-routing
Switch A Configuration
Switch> (enable) set igmp enable
Switch> (enable) set rgmp enable
Switch B Configuration
Switch> (enable) set igmp enable
Switch> (enable) set rgmp enable
This chapter describes the Distance Vector Multicast Routing Protocol (DVMRP) Interoperability
feature. For a complete description of the DVMRP commands in this chapter, refer to the “IP Multicast
Routing Commands” chapter of the Cisco IOS IP Command Reference, Volume 3 of 3: Multicast
publication. To locate documentation of other commands that appear in this chapter, use the command
reference master index, or search online.
Cisco routers run Protocol Independent Multicast (PIM), and know enough about DVMRP to
successfully forward multicast packets to and receive packets from a DVMRP neighbor. It is also
possible to propagate DVMRP routes into and through a PIM cloud. The Cisco IOS software propagates
DVMRP routes and builds a separate database for these routes on each router, but PIM uses this routing
information to make the packet-forwarding decision. Cisco IOS software does not implement the
complete DVMRP.
DVMRP builds a parent-child database using a constrained multicast model to build a forwarding tree
rooted at the source of the multicast packets. Multicast packets are initially flooded down this source
tree. If redundant paths are on the source tree, packets are not forwarded along those paths. Forwarding
occurs until prune messages are received on those parent-child links, which further constrains the
broadcast of multicast packets.
DVMRP is implemented in the equipment of many vendors and is based on the public-domain mrouted
program. The Cisco IOS software supports dynamic discovery of DVMRP routers and can interoperate
with them over traditional media such as Ethernet and FDDI, or over DVMRP-specific tunnels.
To identify the hardware platform or software image information associated with a feature, use the
Feature Navigator on Cisco.com to search for information about the feature or refer to the software
release notes for a specific release. For more information, see the “Identifying Supported Platforms”
section in the “Using Cisco IOS Software” chapter.
Command Purpose
Router(config-if)# ip dvmrp metric metric [list Configures the metric associated with a set of destinations for
access-list] [protocol process-id] DVMRP reports.
A more sophisticated way to achieve the same results as the preceding command is to use a route map
instead of an access list. Thus, you have a finer granularity of control. To subject unicast routes to route
map conditions before they are injected into DVMRP, use the following command in interface
configuration mode:
Command Purpose
Router(config-if)# ip dvmrp metric metric Subjects unicast routes to route map conditions before they are
[route-map map-name] injected into DVMRP.
See the “DVMRP Interoperability Example” section later in this chapter for an example of how to
configure a PIM router to interoperate with a DVMRP router.
Command Purpose
Step 1 Router(config-if)# interface tunnel number Specifies a tunnel interface in global configuration mode
and puts the router into interface configuration mode.
Step 2 Router(config-if)# tunnel source ip-address Sets the source address of the tunnel interface. This address
is the IP address of the interface on the router.
Step 3 Router(config-if)# tunnel destination Sets the destination adddress of the tunnel interface. This
ip-address address is the IP address of the mrouted multitask router.
Step 4 Router(config-if)# tunnel mode dvmrp Configures a DVMRP tunnel.
Step 5 Router(config-if)# ip address address mask Assigns an IP address to the interface.
or or
Router(config-if)# ip unnumbered type number Configures the interface as unnumbered.
Step 6 Router(config-if)# ip pim [dense-mode | Configures PIM on the interface.
sparse-mode]
Step 7 Router(config-if)# ip dvmrp accept-filter Configures an acceptance filter for incoming DVMRP
access-list [distance | ip neighbor-list reports.
access-list]
See the “DVMRP Tunnel Example” section later in this chapter for an example of how to configure a
DVMRP tunnel.
Command Purpose
Router(config-if)# ip dvmrp default-information Advertises network 0.0.0.0 to DVMRP neighbors.
{originate | only}
When DVMRP unicast routing is enabled, the router caches routes learned in DVMRP report messages
in a DVMRP routing table. PIM prefers DVMRP routes to unicast routes by default, but that preference
can be configured.
DVMRP unicast routing can run on all interfaces, including generic routing encapsulation (GRE)
tunnels. On DVMRP tunnels, it runs by virtue of DVMRP multicast routing. This feature does not enable
DVMRP multicast routing among Cisco routers. However, if there is a DVMRP-capable multicast router,
the Cisco router will do PIM/DVMRP multicast routing interaction.
To enable DVMRP unicast routing, use the following command in interface configuration mode:
Command Purpose
Router(config-if)# ip dvmrp unicast-routing Enables DVMRP unicast routing.
Command Purpose
Router(config)# ip dvmrp route-limit count Changes the number of DVMRP routes advertised over an interface
enabled to run DVMRP.
Command Purpose
Router(config)# ip dvmrp routehog-notification Configures the number of routes that trigger a syslog message.
route-count
Use the show ip igmp interface EXEC command to display a running count of routes. When the count
is exceeded, “*** ALERT ***” is appended to the line.
Command Purpose
Router(config-if)# ip dvmrp summary-address Specifies a DVMRP summary address.
summary-address mask [metric value]
Note At least one, more-specific route must be present in the unicast routing table before a configured
summary address will be advertised.
Command Purpose
Router(config-if)# no ip dvmrp auto-summary Disables DVMRP automatic summarization.
Command Purpose
Router(config-if)# ip dvmrp metric-offset [in | Changes the metric added to DVMRP routes advertised in incoming
out] increment reports.
Similar to the metric keyword in mrouted configuration files, the following is true when using the
ip dvmrp metric-offset interface configuration command:
• When you specify the in keywordor no keyword, the increment value is added to incoming DVMRP
reports and is reported in mrinfo replies. The default value for the in keyword is 1.
• When you specify the out keyword, the increment is added to outgoing DVMRP reports for routes
from the DVMRP routing table. The default value for the out keyword is 0.
Source or RP
Router A
Valid Router B
multicast
Receiver
traffic
Router C
Wasted
multicast
traffic
Leaf nonpruning
DVMRP machine
43276
You can prevent a router from peering (communicating) with a DVMRP neighbor if that neighbor does
not support DVMRP pruning or grafting. To do so, configure Router C (which is a neighbor to the leaf,
nonpruning DVMRP machine) with the ip dvmrp reject-non-pruners interface configuration command
on the interface to the nonpruning machine. Figure 94 illustrates this scenario. In this case, when the
router receives a DVMRP probe or report message without the Prune-Capable flag set, the router logs a
syslog message and discards the message.
Source or RP
RP
Router A
Multicast
traffic gets Router B
Receiver
to receiver,
not to leaf
DVMRP
machine Router C
ip dvmrp reject-non-pruners
43277
Note that the ip dvmrp reject-non-pruners command prevents peering with neighbors only. If there are
any nonpruning routers multiple hops away (downstream toward potential receivers) that are not
rejected, then a nonpruning DVMRP network might still exist.
To prevent peering with nonpruning DVMRP neighbors, use the following command in interface
configuration mode:
Command Purpose
Router(config-if)# ip dvmrp reject-non-pruners Prevents peering with nonpruning DVMRP neighbors.
Command Purpose
Router(config-if)# ip dvmrp output-report-delay Configures an interpacket delay between DVMRP reports.
milliseconds [burst]
Command Purpose
Router# clear ip dvmrp route { * | route} Deletes routes from the DVMRP routing table.
To display entries in the DVMRP routing table, use the following command in EXEC mode:
Command Purpose
Router# show ip dvmrp route [name | ip-address | Displays the entries in the DVMRP routing table.
type number]
ip unnumbered ethernet 0
ip pim dense-mode
tunnel source ethernet 0
tunnel destination 192.70.92.133
tunnel mode dvmrp
!
interface ethernet 0
description Universitat DMZ-ethernet
ip address 192.76.243.2 255.255.255.0
ip pim dense-mode
online, accessing xxxv filters, offsets for routing metrics IPC-201, IPC-262
helper addresses
I
IP
(example) IPC-60 ICMP (Internet Control Message Protocol)
configuring IPC-32 customizing services (example) IPC-121
hit table count, clearing prefix list entries IPC-308 ICMP mask reply messages, enabling IPC-83
holddown ICMP redirect messages IPC-83
definition IPC-214 ICMP unreachable messages, enabling IPC-82
disabling, IGRP IPC-218 idle command IPC-144
hold time, EIGRP IPC-267 IGMP (Internet Group Management Protocol)
home agent redundancy, Mobile IP IPC-165 See IP multicast routing, IGMP
Home Agent services, enabling (Mobile IP) IPC-167 ignore lsa mospf command IPC-238
host command IPC-72 IGP (Interior Gateway Protocol), supported
protocols IPC-3
HP hosts, on network segment (example) IPC-51
IGRP (Interior Gateway Routing Protocol)
HP Probe Proxy, configuring name requests for IP IPC-18
autonomous systems IPC-370
HSRP
Cisco implementation IPC-213
load sharing (example) IPC-126
configuration task list IPC-214
preemption delay IPC-102
configuring IPC-213
preempt lead router, configuring IPC-102
enabling IPC-215
priority, setting IPC-102
metrics, adjusting IPC-217
HSRP (Hot Standby Router Protocol)
redistribution
authentication IPC-102
(example) IPC-381
burned-in-address IPC-102
description IPC-370
enabling IPC-101
route feasibility, determining IPC-216
home agent redundancy IPC-165
route redistribution IPC-369
ICMP redirect messages, enabling IPC-105
running with RIP IPC-206
MAC address IPC-102
source IP address, validating IPC-218
MAC refresh interval IPC-102
timers, adjusting IPC-217
MAC refresh interval (example) IPC-127
traffic distribution, controlling IPC-216
MIB IPC-103
transition to EIGRP IPC-260
MIB (example) IPC-128
unicast updates, allowing IPC-215
MPLS VPNs, support for IPC-103
update broadcasts IPC-214
notifications IPC-103
updates, frequency IPC-214
server load balancing IPC-139
import all command IPC-74
SNMP traps and informs IPC-103
inbound resets, BGP IPC-299
timers, setting IPC-102
indexes, master xxxii
traps IPC-103
inservice (real server) command IPC-143
hub router IPC-197
inservice (virtual server) command IPC-144
ODR environment IPC-195
integrated routing and bridging (IRB)
ip dvmrp metric mbgp command IPC-355 ip mobile home-agent standby command IPC-173
ip dvmrp metric-offset command IPC-542 ip mobile host command IPC-168
ip dvmrp reject-non-pruners command IPC-544 ip mobile secure command IPC-168
ip dvmrp routehog-notification command IPC-541 ip mobile virtual-network command IPC-167
ip dvmrp route-limit command IPC-541 ip mrm accept-manager command IPC-522
ip dvmrp summary-address command IPC-542 ip mrm command IPC-522
ip dvmrp unicast-routing command IPC-541 ip mrm manager command IPC-524
IP Enhanced Interior Gateway Routing Protocol ip mroute-cache command IPC-415
See EIGRP IPC-257 ip mroute command IPC-430
ip flow-cache entries command IPC-117 ip msdp border sa-address command IPC-482, IPC-486
ip forward-protocol command IPC-32 ip msdp cache-sa-state command IPC-480
ip forward-protocol spanning-tree command IPC-34 ip msdp default-peer command IPC-485
ip forward-protocol turbo-flood command IPC-34 ip msdp filter-sa-request command IPC-482
ip hello-interval eigrp command IPC-267 ip msdp mesh-group command IPC-485
ip helper-address command IPC-32 ip msdp originator-id command IPC-486
ip hold-time eigrp command IPC-267 ip msdp peer command IPC-480
ip host command IPC-16 ip msdp sa-filter in command IPC-483
ip hp-host command IPC-18 ip msdp sa-filter out command IPC-483
ip icmp rate-limit unreachable command IPC-82 ip msdp sa-request command IPC-481
ip igmp access-group command IPC-409 ip msdp ttl-threshold command IPC-483
ip igmp helper-address command IPC-441 ip mtu command IPC-84
ip igmp join-group command IPC-117, IPC-409, IPC-413 ip multicast boundary command IPC-420, IPC-438
ip igmp mroute-proxy command IPC-512 ip multicast cache-headers command IPC-440
ip igmp proxy-service command IPC-512 ip multicast default-rpf-distance command IPC-511
ip igmp query-interval command IPC-410, IPC-411, IPC-413 IP multicast heartbeat
ip igmp query-max-response-time command IPC-413 (example) IPC-458
ip igmp query-timeout command IPC-411, IPC-413 description IPC-447
ip igmp static-group command IPC-414 ip multicast heartbeat command IPC-447
ip igmp unidirectional-link command IPC-510 ip multicast helper-map command IPC-439
ip igmp v3lite command IPC-467 ip multicast multipath command IPC-442
ip igmp version command IPC-410 ip multicast rate-limit command IPC-430
ip irdp command IPC-29 IP multicast routing
ip local policy route-map command IPC-377 ATM, idling policy IPC-437
ip mask-reply command IPC-83 ATM point-to-multipoint SVC, over IPC-436
ip mobile arp command IPC-15 Auto-RP
ip mobile foreign-agent command IPC-168 cache, clearing IPC-446
ip mobile foreign-service command IPC-168 configuring IPC-406
ip mobile home-agent address command IPC-172 mapping agent IPC-407
ip mobile home-agent command IPC-167 BSR (bootstrap router) IPC-417
(example) IPC-468
ip name-server command IPC-17
lock-and-key access, dynamic access list IPC-88 in choosing a subautonomous system path in a
log-adj-changes command IPC-235
confederation IPC-328
missing IPC-327
log neighbor adjacencies,EIGRP IPC-260
loopbacks, use with OSPF IPC-232
with value of infinity IPC-294
messages
lsp-gen-interval command IPC-288
lsp-refresh-interval command IPC-287
Internet broadcast, establishing IPC-33
IP, destination unreachable IPC-84
metric holddown command IPC-218
M metric maximum-hops command IPC-218
metrics
MAC addresses, determining IPC-12
automatic translations between IP routing
manager command IPC-524
protocols IPC-369
masks
BGP IPC-293
format in displays IPC-47
DVMRP IPC-538
implicit, in IP access lists (example) IPC-123
EIGRP, adjusting IPC-260
See also subnet masks
IGRP IPC-213, IPC-217
match as-path command IPC-367
IP Enhanced IGRP IPC-257
match community-list command IPC-367
IS-IS link-state IPC-280
match interface command IPC-368
RIP IPC-199
match ip address command IPC-368, IPC-374
translations supported between IP routing
match ip next-hop command IPC-368 protocols IPC-369
match ip route-source command IPC-368 metric weights command IPC-217, IPC-261
match length command IPC-374 MIB
match metric command IPC-368 OSPF IPC-223
match nlri command IPC-353, IPC-354 MIB, descriptions online xxxii
match route-type command IPC-368 MNLB (MultiNode Load Balancing)
match tag command IPC-368 Feature Set for LocalDirector
maxconns command IPC-142 NetFlow cache, adjusting IPC-117
maximum-paths command IPC-295, IPC-366 network configuration (figure) IPC-130
max-lsp-lifetime command IPC-287 product description IPC-115
MBONE (multicast backbone) IPC-400, IPC-527 related documentation IPC-116
RTP header compression IPC-431 restrictions IPC-116
MD5 (Message Digest 5) authentication MNLB Forwarding Agent
EIGRP IPC-265 affinities, displaying IPC-120
OSPF IPC-229 ContentFlow architecture IPC-116
RIP IPC-203 memory allocation IPC-118
TCP MD5 for BGP IPC-323 multicast routing, enabling on all interfaces to the
MED (Multi Exit Discriminator) services manager IPC-117
configuration task list IPC-20 routes populating the IP routing table IPC-197
Next Hop Server address range for a single route, specifying IPC-230
user IPC-48
real command IPC-142, IPC-145
reassign command IPC-142
ping reply, specifying how long to wait IPC-73
ping timeout, specifying duration IPC-73
receivers command IPC-524
reconfiguring the routing table (BGP) IPC-299, IPC-300
platforms, supported
Feature Navigator, identify using xlv
redistribute command IPC-369
redistribute dvmrp command IPC-355
release notes, identify using xlv
policy routing IPC-373, IPC-376
redistribution
show ip pim rp command IPC-408, IPC-447, IPC-476 EIGRP (Enhanced IGRP) IPC-267
show ip pim rp-hash command IPC-422 enabling and disabling IPC-207, IPC-219
show ip pim rp mapping command IPC-475 using with IP route summarization IPC-204
show ip pim vc command IPC-447 SSM (Source Specific Multicast)
show ip policy command IPC-378 See IP multicast routing, SSM IPC-459
show ip protocols command IPC-378 standby authentication command IPC-102
show ip redirects command IPC-48, IPC-120 standby delay minimum reload command IPC-102
show ip rip database command IPC-209 standby ip command IPC-101
show ip route command IPC-48, IPC-378 standby mac-address command IPC-102
show ip route dhcp command IPC-76 standby mac-refresh command IPC-103
show ip route mobile command IPC-170 standby preempt command IPC-102
show ip route summary command IPC-48, IPC-378 standby priority command IPC-102
show ip route supernets-only command IPC-378 standby redirects command IPC-108
show ip rpf command IPC-447 standby router or access server, displaying status IPC-120
show ip rtp header-compression command IPC-447 standby timers command IPC-102
show ip sap command IPC-447 standby track command IPC-102
show ip sockets command IPC-120 stateless backup, summary IPC-145
show ip tcp header-compression command IPC-120 static routes
show ip traffic command IPC-120 IP
show isis database command IPC-289 configuring IPC-364
show isis routes command IPC-289 redistribution (example) IPC-381
show isis spf-log command IPC-289 redistributing IPC-367
show isis topology command IPC-289 sticky command IPC-144
show key chain command IPC-379 stub area
show route-map command IPC-379 See OSPF
show route-map ipc command IPC-376 stub routing
show standby command IPC-120 EIGRP
show standby delay command IPC-120 benefits IPC-271
show tcp statistics command IPC-120 configuration tasks IPC-272
simplex circuit, definition IPC-85 configuring IPC-268
simplex Ethernet circuit, configuring IPC-85 overview IPC-268
simplex Ethernet interfaces, configuring IP IPC-85 restrictions IPC-271
SMDS (Switched Multimegabit Data Service) verifying IPC-272
disabled split horizon IPC-207, IPC-219 ODR
snmp-server enable traps command IPC-103 definition IPC-195
snmp-server host command IPC-103 enabling IPC-196
soft reset (BGP) IPC-299, IPC-300 subnets
spf-interval command IPC-288 displaying number using masks IPC-48
split horizon in OSPF network (figure) IPC-247, IPC-386
IP, creating network from separated, (example) IPC-50 window size IPC-114
use of subnet zero, enabling IPC-9 See also TCP/IP header compression
variable length subnet masks TCP/IP
(example) IPC-244, IPC-379 header compression, express IPC-111, IPC-433
definition IPC-364 overview IPC-1
summary-address (OSPF) command IPC-231 terminal, network mask format IPC-48
summary-address command IPC-285 term ip netmask-format command IPC-48
summary addresses time ranges IPC-97
aggregate IPC-263 timers
entries, checking for IPC-206 BGP, adjusting IPC-325
switching decisions by BGP routing table IPC-302 EIGRP IPC-267
synchronization, BGP EIGRP, adjusting IPC-266
disabling IPC-302 IGRP, adjusting IPC-217
figure IPC-340 RIP, adjusting IPC-201
synchronization command IPC-302 timers basic (RIP) command IPC-202
synguard command IPC-144 timers basic command IPC-198, IPC-218
timers bgp command IPC-326
timers lsa-group-pacing command IPC-237
T
timers spf command IPC-233
Tab key, command completion xl Token Ring
table-map command IPC-325 functional address IPC-417
TCP IP multicast routing over IPC-416
connections trace command
MD5 authentication for BGP IPC-323 IP
Path MTU Discovery, enabling IPC-112 privileged IPC-49
setting connection attempt time IPC-112 user IPC-49
header compression traffic-share command IPC-217
conflicting features, disabling IPC-114 traffic-share min across-interfaces command IPC-367
connections supported IPC-112 translations, supported metric, between IP routing
protocols IPC-369
enabling IPC-111
transmit-interface command IPC-85
express IPC-111, IPC-433
tunnel, unidirectional IPC-506
See also TCP/IP, header compression
tunnel destination, UDLR IPC-509
maximum read size IPC-114
tunnel destination command IPC-509
outgoing queue size IPC-115
tunnel key command IPC-27
overview IPC-1
tunnel mode command IPC-27
selective acknowledgment IPC-113
tunnel source, UDLR IPC-509
statistics, clearing IPC-119
tunnel source command IPC-509
statistics, displaying IPC-120
tunnel udlr address-resolution command IPC-509
timestamp IPC-114
tunnel udlr receive-only command IPC-509 wildcard blocks, status, displaying IPC-120
tunnel udlr send-only command IPC-509
Turbo ACL (Access Control List) IPC-96
turbo flooding IPC-34