More Books
Routing TCP IP Volume II CCIE Professional Development
Routing TCP/IP, Volume II (CCIE Professional Development)
Table of Contents
Copyright
About the Authors
About the Technical Reviewers
Acknowledgments
Introduction
Icons Used in This Book
Command Syntax Conventions
Part I: Exterior Gateway Protocols
Chapter 1. Exterior Gateway Protocol
The Origins of EGP
Operation of EGP
Shortcomings of EGP
Configuring EGP
Troubleshooting EGP
Looking Ahead
Review Questions
Configuration Exercises
Troubleshooting Exercise
End Notes
Chapter 2. Introduction to Border Gateway Protocol 4
Classless Interdomain Routing
Who Needs BGP?
BGP Basics
IBGP and IGP Synchronization
Managing Large-Scale BGP Peering
BGP Message Formats
Looking Ahead
Recommended Reading
Review Questions
End Notes
Chapter 3. Configuring and Troubleshooting Border Gateway Protocol 4
Basic BGP Configuration
Managing BGP Connections
Routing Policies
Large-Scale BGP
Looking Ahead
Recommended Reading
Command Summary
Configuration Exercises
Troubleshooting Exercises
Part II: Advanced IP Routing Issues
Chapter 4. Network Address Translation
Operation of NAT
NAT Issues
Configuring NAT
Troubleshooting NAT
Looking Ahead
Command Summary
Configuration Exercises
Troubleshooting Exercises
End Note
Chapter 5. Introduction to IP Multicast Routing
Requirements for IP Multicast
Multicast Routing Issues
Operation of the Distance Vector Multicast Routing Protocol (DVMRP)
Operation of Multicast OSPF (MOSPF)
Operation of Core-Based Trees (CBT)
Introduction to Protocol Independent Multicast (PIM)
Operation of Protocol Independent Multicast, Dense Mode (PIM-DM)
Operation of Protocol Independent Multicast, Sparse Mode (PIM-SM)
Looking Ahead
Recommended Reading
Command Summary
Review Questions
End Notes
Chapter 6. Configuring and Troubleshooting IP Multicast Routing
Configuring IP Multicast Routing
Troubleshooting IP Multicast Routing
Looking Ahead
Configuration Exercises
Troubleshooting Exercises
Chapter 7. Large-Scale IP Multicast Routing
Multicast Scoping
Case Study: Multicasting Across Non-Multicast Domains
Connecting to DVMRP Networks
Inter-AS Multicasting
Case Study: Configuring MBGP
Case Study: Configuring MSDP
Case Study: MSDP Mesh Groups
Case Study: Anycast RP
Case Study: MSDP Default Peers
Command Summary
Looking Ahead
Review Questions
End Notes
Chapter 8. IP Version 6
Design Goals of IPv6
Current State of IPv6
IPv6 Packet Format
IPv6 Functionality
Transition from IPv4 to IPv6
Looking Ahead
Recommended Reading
Review Questions
Chapter Bibliography
End Notes
Chapter 9. Router Management
Policies and Procedure Definition
Simple Network Management Protocol
RMON
Logging
Syslog
Network Time Protocol
Accounting
Configuration Management
Fault Management
Performance Management
Security Management
Designing Servers to Support Management Processes
Network Robustness
Lab
Recommended Reading
Looking Ahead
Command Summary
Review Questions
Configuration Exercises
Bibliography
End Notes
Part III: Appendixes
Appendix A. The show ip bgp neighbors Display
Appendix B. A Regular-Expression Tutorial
Literals and Metacharacters
Delineation: Matching the Start and End of Lines
Bracketing: Matching a Set of Characters
Negating: Matching Everything Except a Set of Characters
Wildcard: Matching Any Single Character
Alternation: Matching One of a Set of Characters
Optional Characters: Matching a Character That May or May Not Be There
Repetition: Matching a Number of Repeating Characters
Boundaries: Delineating Literals
Putting It All Together: A Complex Example
Recommended Reading
Appendix C. Reserved Multicast Addresses
Internet Multicast Addresses
References
People
Appendix D. Answers to Review Questions
Answers to Chapter 1 Review Questions
Answers to Chapter 2 Review Questions
Answers to Chapter 5 Review Questions
Answers to Chapter 7 Review Questions
Answers to Chapter 8 Review Questions
Answers to Chapter 9 Review Questions
Appendix E. Answers to Configuration Exercises
Answers to Chapter 1 Configuration Exercises
Answers to Chapter 3 Configuration Exercises
Answers to Chapter 4 Configuration Exercises
Answers to Chapter 6 Configuration Exercises
Answers to Chapter 9 Configuration Exercises
Appendix F. Answers to Troubleshooting Exercises
Answer to Chapter 1 Troubleshooting Exercise
Answers to Chapter 3 Troubleshooting Exercises
Answers to Chapter 4 Troubleshooting Exercises
Answers to Chapter 6 Troubleshooting Exercises
Index
index_SYMBOL
index_A
index_B
index_C
index_D
index_E
index_F
index_G
index_H
index_I
index_J
index_K
index_L
index_M
index_N
index_O
index_P
index_Q
index_R
index_S
index_T
index_U
index_V
index_W
 

Troubleshooting IP Multicast Routing

Your primary weapon when attacking problems in IP multicast internetworks is a solid understanding of the IP multicast protocols. Without that, no number of troubleshooting tools will help you wend your way through the often confusing, sometimes complex behaviors of IP multicast to the root of a particular problem. And understanding a single protocol is not enough. You also must understand how PIM, IGMP, and unicast routing all interact.

If you have been closely following the troubleshooting sections of each chapter of both Volume I and this volume, you should by now have a well-developed grasp of the approaches and techniques necessary for resolving problems in routed internetworks. So rather than present further case studies illustrating troubleshooting techniques, this section demonstrates the use of the several specialized tools provided for analyzing multicast internets.

Throughout this chapter, you have seen various show and debug commands that are useful for observing the behavior of IP multicast routing on Cisco routers. Table 6-2 lists the show commands available to you, and Table 6-3 lists the important multicast debug commands. Just as show ip route is the primary source of information when troubleshooting IP unicast routing, show ip mroute is the primary source of information when troubleshooting IP multicast routing.

Table 6-2. Important show Commands for Troubleshooting IP Multicast
Command Description
show ip igmp groups [group-name | group-address | type number] Displays the addresses of groups that have members on the router's interfaces.
show ip igmp interface [type number] Displays relevant details of the IGMP-enabled interface.
show ip mcache [group [source]] Displays the multicast contents of the fast-switching cache.
show ip mroute [group-name | group-address] [source] [summary] [count] [active kbps] Displays the contents of the multicast routing table.
show ip pim bsr Displays information about PIM bootstrap routers.
show ip pim interface [type number] [count] Displays relevant details of PIM-enabled interfaces.
show ip pim neighbor [type number] Displays PIM neighbors.
show ip pim rp [group-name | group-address | mapping] Displays the known RPs, and the groups mapped to the RPs.
show ip pim rp-hash group Displays the RP for the group specified.
show ip rpf {source-address | name} Displays details of how the router is determining RPF information.

Table 6-3. Important debug Commands for Troubleshooting IP Multicast
Command Description
debug ip icmp [hostname | group_address] Displays IGMP protocol activity.
debug ip mcache [hostname | group_address] Displays multicast caching operations.
debug ip mpacket [standard_access_list | extended_access_list] [hostname | group_address][detail] Displays multicast packets transiting the router.
debug ip mrouting [hostname | group_address] Displays multicast routing table activity.
debug ip pim [hostname | group_address][auto-rp][bsr] Displays PIM activity and events.

Using mrinfo

The mrinfo command enables you to observe a router's multicast connections and the details of those connections. The command is a part of the tools originally made available as part of mrouted for testing routers in the MBone. Therefore, the command is very useful in multivendor domains. Take, for example, the topology in Figure 6-10.

Figure 6-10. This Topology Is Used Throughout the Troubleshooting Examples

graphics/06fig10.gif

In Example 6-55, mrinfo is used at router Sombrero. The first line of the output shows the address used as the source of the query, the Cisco IOS Software version running on the router, and a number of flags. Table 6-4 lists the possible flags and their meanings. The next two lines of output show multicast interfaces on the router and any peers that the router may have. On the second line, Sombrero's interface 192.168.10.1 has no peers, indicated by the 0.0.0.0. The 1/0 indicates that the interface has a metric of 1 and that there is no TTL threshold set. PIM is running on the interface, the router is an IGMP querier for the attached subnet, and the subnet is a leaf network (that is, no multicast traffic will transit the network to another multicast router). The third line shows that Sombrero's interface 192.168.200.1 has a peer at address 192.168.200.2 (router Beret), the metric of the interface is 1, there is no TTL threshold, and PIM is running.

Example 6-55 The IP Multicast Connection Information for Sombrero in Figure 6-10


Sombrero#mrinfo


192.168.10.1 [version  12.1] [flags: PMA]:


  192.168.10.1 -> 0.0.0.0 [1/0/pim/querier/leaf]


  192.168.200.1 -> 192.168.200.2 [1/0/pim]





Sombrero#


Table 6-4. Flags Associated with the mrinfo Command
Flag Definition
P Prune-capable
M mtrace-capable
S SNMP-capable
A Auto-RP-capable

The true usefulness of mrinfo, however, is that you can use the command to query other routers in the domain. In Example 6-56, the command is used at Sombrero to query Boater, by specifying one of Boater's IP addresses (in this case, its loopback address). Note that the flags indicate that SNMP is enabled on this router, whereas it is not on Sombrero. The router has five multicast-enabled interfaces, two of which are on leaf networks and three of which have PIM peers. A check of Figure 6-10 shows that this information is accurate.

Example 6-56 mrinfo Is Used at Sombrero to Query Boater About Its Multicast Peers


Sombrero#mrinfo 192.168.224.7


192.168.224.7 [version  12.1] [flags: PMSA]:


  192.168.14.1 -> 0.0.0.0 [1/0/pim/querier/leaf]


  192.168.15.1 -> 0.0.0.0 [1/0/pim/querier/leaf]


  192.168.203.1 -> 192.168.203.2 [1/0/pim]


  192.168.206.1 -> 192.168.206.2 [1/0/pim]


  192.168.204.1 -> 192.168.204.2 [1/0/pim]





Sombrero#


In Example 6-57, routers Derby and Fez are queried. These two routers share an Ethernet connection, and comparing the results of the queries shows that Derby (192.168.224.4) is the IGMP querier on that subnet.

Example 6-57 Derby (192.168.224.4) and Fez (192.168.224.5) Are Queried from Sombrero


Sombrero#mrinfo 192.168.224.4


192.168.224.4 [version  12.1] [flags: PMA]:


  192.168.12.2 -> 192.168.12.1 [1/0/pim/querier]


  192.168.205.1 -> 192.168.205.2 [1/0/pim]


  192.168.206.2 -> 192.168.206.1 [1/0/pim]





Sombrero#mrinfo 192.168.224.5


192.168.224.5 [version  12.1] [flags: PMA]:


  192.168.12.1 -> 192.168.12.2 [1/0/pim]


  192.168.205.2 -> 192.168.205.1 [1/0/pim]


  192.168.204.2 -> 192.168.204.1 [1/0/pim]


  192.168.201.2 -> 192.168.201.1 [1/0/pim]





Sombrero#


Using mtrace and mstat

Another useful tool is the mtrace command, which enables you to trace the RPF path from a specified destination to a specified source. Like mrinfo, mtrace is a UNIX-based MBone tool and can be used in multivendor domains. And also like mrinfo, you can issue the command from any router in the domain—you do not have to be on any router along the RPF path.

When the command is issued, you specify a source address and a destination address. A trace request is sent to the destination, which then uses a unicast trace to the source. The first-hop router on the path toward the source unicasts the results of the trace to the querying router.

Example 6-58 shows an example where a request is issued at Sombrero to trace the RPF path from Derby's 192.168.12.2 interface to Turban's 192.168.11.1 interface. Remember, because this is a reverse-path trace, Turban's interface is the source and Derby's interface is the destination. The output begins at the destination address and displays each intermediate router until the source is reached. The number of hops from the source is indicated, as is the multicast protocol used on that hop.

Example 6-58 mtrace Is Used to Examine the RPF Path from Destination 192.168.12.2 to Source 192.168.11.1


Sombrero#mtrace 192.168.11.1 192.168.12.2


Type escape sequence to abort.


Mtrace from 192.168.11.1 to 192.168.12.2 via RPF


From source (?) to destination (?)


Querying full reverse path...


 0  192.168.12.2


-1  192.168.12.2 PIM  [192.168.11.0/24]


-2  192.168.206.1 PIM  [192.168.11.0/24]


-3  192.168.203.2 PIM  [192.168.11.0/24]


-4  192.168.11.1


Sombrero#


Aside from the obvious use of isolating multicast routing failures, mtrace has an additional use of enabling you to examine multicast behavior before you turn up live multicast traffic on your internetwork. Notice in Figure 6-10 that no multicast sources or group members are indicated. Suppose you are going to turn up a multicast source attached to Boater, with an address of 192.168.14.35. This source will originate multicast traffic for group 235.100.20.18, and there will be group members at addresses 192.168.12.15, 192.168.10.8, and 192.168.11.102. Example 6-59 shows the results.

Example 6-59 mtrace Can Be Used to Test the RPF for Source, Destination, and Group Addresses That Do Not Yet Exist in the Multicast Domain


Sombrero#mtrace 192.168.14.35 192.168.12.15 235.100.20.18


Type escape sequence to abort.


Mtrace from 192.168.14.35 to 192.168.12.15 via group 235.100.20.18


From source (?) to destination (?)


Querying full reverse path...


 0  192.168.12.15


-1  192.168.201.2 PIM  [192.168.14.0/24]


-2  192.168.204.1 PIM  [192.168.14.0/24]


-3  192.168.14.35





Sombrero#mtrace 192.168.14.35 192.168.10.8 235.100.20.18


Type escape sequence to abort.


Mtrace from 192.168.14.35 to 192.168.10.8 via group 235.100.20.18


From source (?) to destination (?)


Querying full reverse path...


 0  192.168.10.8


-1  192.168.10.1 PIM  [192.168.14.0/24]


-2  192.168.200.2 PIM  [192.168.14.0/24]


-3  192.168.202.2 PIM  [192.168.14.0/24]


-4  192.168.203.1 PIM  [192.168.14.0/24]


-5  192.168.14.35





Sombrero#mtrace 192.168.14.35 192.168.11.102 235.100.20.18


Type escape sequence to abort.


Mtrace from 192.168.14.35 to 192.168.11.102 via group 235.100.20.18


From source (?) to destination (?)


Querying full reverse path...


 0  192.168.11.102


-1  192.168.202.2 PIM  [192.168.14.0/24]


-2  192.168.203.1 PIM  [192.168.14.0/24]


-3  192.168.14.35


Sombrero#


The traces in Example 6-59 specify the multicast group along with the source and destination addresses. Although the RPF path would normally be the same for all groups, specifying the group can prove useful in situations where scoping or RP filtering affects the path taken. When no group is specified, as in Example 6-58, the group address 224.2.0.1 (the MBone audio group address) is used by default.

mstat is an adaptation of mtrace and provides not only a trace of the path from a source to a group destination, but also provides statistics about the path. Example 6-60 shows an example where a trace is again requested from source 192.168.14.35 to destination 192.168.10.8 for group 235.100.20.18. Comparing the output in Example 6-60 to the output for the same trace in Example 6-59, you can see that mstat provides not only packet statistics but also a more detailed view of the entire path.

Example 6-60 mstat Provides a More-Detailed Trace of Group Traffic from a Source to a Destination


Sombrero#mstat 192.168.14.35 192.168.10.8 235.100.20.18


Type escape sequence to abort.


Mtrace from 192.168.14.35 to 192.168.10.8 via group 235.100.20.18


From source (?) to destination (?)


Waiting to accumulate statistics......


Results after 10 seconds:





  Source        Response Dest    Packet Statistics For     Only For Traffic


192.168.14.35    192.168.200.1    All Multicast Traffic     From 192.168.14.35


     |       __/  rtt 47   ms   Lost/Sent = Pct  Rate     To 235.100.20.18


     v      /     hop 27   ms   ---------------------     --------------------


192.168.14.1


192.168.203.1   ?


     |     ^      ttl   0


     v     |      hop 5    ms    0/0 = --%      0 pps    0/0 = --%  0 pps


192.168.203.2


192.168.202.2   ?


     |     ^      ttl   1


     v     |      hop 7    ms    0/0 = --%      0 pps    0/0 = --%  0 pps


192.168.202.1


192.168.200.2   ?


     |     ^      ttl   2


     v     |      hop 4    ms    0/0 = --%      0 pps    0/0 = --%  0 pps


192.168.200.1


192.168.10.1    ?


     |      \__   ttl   3


     v         \  hop 0    ms        0         0 pps           0    0 pps


192.168.10.8    192.168.200.1


  Receiver      Query Source


Reading from bottom to top, the display in Example 6-60 shows the query source and response destination, which in this example are both 192.168.200.1 (Sombrero). Notice that there is an ASCII representation of arrows, showing that Sombrero has sent the query to 192.168.10.1 (in this case, its own interface). The reverse path is then traced to the interface on Boater to which the source would be attached, and the response to the query is then sent to Sombrero. At the far left of the display, ASCII arrows also indicate the path multicast traffic will take from the source to the destination. At each hop, the ttl and hop statistics can be a little misleading. ttl actually shows the number of hops from that point to the source, whereas hops shows the delay (in milliseconds) between hops. Notice that the round-trip time (rtt) is indicated below the response destination. Statistics are then shown for all multicast traffic and for the (S, G) pair specified in the command. The first statistic compares the number of packets dropped to the number of packets sent. The second statistic shows the total traffic rate in packets per second. In Example 6-59, all these statistics are zero, of course, because no traffic has passed from the source to the destination. In fact, the source and destination do not even exist yet.

In Example 6-61, the proposed hosts have been installed, the source is generating traffic, and the group member has joined. You can now observe the packet-per-second rates and the drop statistics. An important point to keep in mind when using mstat is that the delay times between routers are valid only if the routers' clocks are synchronized.

Example 6-61 The Same mstat Command Is Used After Multicast Traffic Has Begun Between the Source and Destination


Sombrero#mstat 192.168.14.35 192.168.10.8 235.100.20.18


Type escape sequence to abort.


Mtrace from 192.168.14.35 to 192.168.10.8 via group 235.100.20.18


From source (?) to destination (?)


Waiting to accumulate statistics......


Results after 10 seconds:





  Source        Response Dest    Packet Statistics For     Only For Traffic


192.168.14.35    192.168.200.1    All Multicast Traffic     From 192.168.14.35


     |       __/  rtt 48   ms   Lost/Sent = Pct  Rate     To 235.100.20.18


     v      /     hop 48   ms   ---------------------     --------------------


192.168.14.1


192.168.203.1   ?


     |     ^      ttl   0


     v     |      hop 10   ms    0/82 = 0%      8 pps    0/81 = --%  8 pps


192.168.203.2


192.168.202.2   ?


     |     ^      ttl   1


     v     |      hop 6    ms    0/82 = 0%      8 pps    0/81 = 0%  8 pps


192.168.202.1


192.168.200.2   ?


     |     ^      ttl   2


     v     |      hop 4    ms    0/82 = 0%      8 pps    0/81 = 0%  8 pps


192.168.200.1


192.168.10.1    ?


     |      \__   ttl   3


     v         \  hop 0    ms        82         8 pps           81    8 pps


192.168.10.8    192.168.200.1


  Receiver      Query Source





Sombrero#


Example 6-62 shows what the display might look like if the clocks are not in sync. The trace information and packet rates are still valid, but the delay times for the individual hops are obviously nonsensical. Also in Example 6-62, you can see that one packet has been lost on the hop between Turban and Beret. This may or may not represent a problem; the only way to know is to run several iterations of mstat and observe whether the packet loss is consistent. If so, further investigation using debugging may be required.

Example 6-62 If the Routers' Clocks Are Not Synchronized, the Delays Shown for the Router Hops Are Meaningless


Sombrero#mstat 192.168.14.35 192.168.10.8 228.13.20.216


Type escape sequence to abort.


Mtrace from 192.168.14.35 to 192.168.10.8 via group 228.13.20.216


From source (?) to destination (?)


Waiting to accumulate statistics......


Results after 10 seconds:


  Source        Response Dest    Packet Statistics For     Only For Traffic


192.168.14.35    192.168.200.1    All Multicast Traffic     From 192.168.14.35


     |       __/  rtt 44   ms   Lost/Sent = Pct  Rate     To 228.13.20.216


     v      /     hop 44   ms   ---------------------     --------------------


192.168.14.1


192.168.203.1   ?


     |     ^      ttl   0


     v     |      hop -222 s    0/82 = 0%      8 pps    0/81 = 0%  8 pps


192.168.203.2


192.168.202.2   ?


     |     ^      ttl   1


     v     |      hop 113  s    1/82 = 1%      8 pps    1/81 = 1%  8 pps


192.168.202.1


192.168.200.2   ?


     |     ^      ttl   2


     v     |      hop 108  s    0/80 = 0%      8 pps    0/80 = 0%  8 pps


192.168.200.1


192.168.10.1    ?


     |      \__   ttl   3


     v         \  hop 0    ms        80         8 pps           80    8 pps


192.168.10.8    192.168.200.1


  Receiver      Query Source


Lastly, you may encounter a situation in which mstat shows a negative number of lost packets such as, -3/85. The "negative packet loss" in fact represents a packet gain. In other words, extra packets have been received. This may signify a loop and warrants further investigation.