Developing IP Muiticast Networks Volume I Beau Williamson Cisco SYSTEMS CISCO PRESS Cisco Press 201 West 103rd Street Indianapolis, IN 46290 USA
Table of Contents Introduction xviii Part I Fundamentals of IP Multicast Chapter 1 Introduction to IP Multicast 4 A Brief History of IP Multicast 7 The Pros of IP Multicast 8 Bandwidth 8 Server Load 10 Network Loading 11 The Cons of IP Multicast 11 Unreliable Packet Delivery 12 Packet Duplication 12 Network Congestion 13 Multicast Applications 15 Multimedia Conferencing 15 Data Distribution 16 Real-Time Data Multicasts 16 Gaming and Simulations 17 MBone The Internet' s Multicast Backbone 18 MBone Sessions 18 History of the MBone 19 Today's MBone Architecture 21 Tomorrow's MBone Architecture 23 Summary 23 Chapter 2 Multicast Basics 24 Multicast Addresses 25 IP Class D Addresses 26 Assigned Multicast Addresses 26 Administratively Scoped Multicast Addresses 29 Multicast MAC Addresses 29 Ethernet Multicast MAC Address Mapping 30 FDDI Multicast MAC Address Mapping 32 Token Ring Multicast MAC Address Mapping 32
viii Multicast Distribution Trees 34 Source Trees 35 Shared Trees 36 Multicast Forwarding 40 Reverse Path Forwarding 41 Multicast Forwarding Cache 42 TTL Thresholds 43 Administratively Scoped Boundaries 45 Multicast Routing Protocol Categories 47 Dense Mode Protocols 47 Sparse Mode Protocols 50 Link-State Protocols 53 Summary 54 Chapter 3 Internet Group Management Protocol 56 IGMP Version 1 58 IGMPvl Message Format 58 The IGMPvl Query-Response Process 59 Report Suppression Mechanism 61 IGMPvl Querier 61 The IGMPv 1 Join Process 61 The IGMPvl Leave Process 62 IGMP Version 2 64 IGMPv2 Message Format 65 Query-Response Tuning 66 IGMPv2 Leave Group Messages 68 IGMPv2 Group-Specific Query Messages 69 IGMPv2 Leave Process 69 Querier Election Process 72 Early IGMPv2 Implementations 73 IGMPvl IGMPv2 Interoperability 73 V2 Host/V 1 Routers Interoperability 73 VI Host /V2 Routers 75 Mixed VI and V2 Routers Interoperability 76 The Possibilities of IGMPv3 76 Summary 77
Chapter 4 Multimedia Multicast Applications 78 Real-Time Protocol 79 Using RTP and RTCP to Audio Conference: An Example RTP Control Protocol 81 Session Announcement Protocol 82 SAP Announcements 82 SAP Bandwidth Limits 83 Session Description Protocol 84 SDP Message Format 84 SDP Information Description Types 84 Sample SDP Session Description 86 MBone Multimedia Conferencing Applications 86 SDR Session Directory Tool 87 VAT MBone Multimedia Audio Tool 91 VIC MBone Multimedia Video Tool 94 WB Shared Whiteboard Tool 100 Summary 102 Part II Multicast Routing Protocol Overview Chapter 5 Distance Vector Multicast Routing Protocol 106 D VMRP Neighbor Discovery 107 DVMRP Route Table 108 Exchanging DVMRP Route Reports 110 DVMRP Truncated Broadcast Trees 113 DVMRP Multicast Forwarding 117 DVMRP Pruning 118 DVMRP Grafting 123 DVMRP Scalability 126 Summary 127 Chapter 6 PIM Dense Mode 128 PIM Neighbor Discovery 130 PIM Hello Messages 130 PIM-DM Source Distribution Trees 132 PIM-DM Multicast Forwarding 133
X PIM-DM Pruning 136 Prune Override 138 Prune Delay Accumulation 140 PIM-DM Asserts 141 PIM-DM Grafting 143 Future PIM-DM Enhancement State-Refresh 145 PIM-DM Scalability 146 Summary 147 Chapter7 PIM Sparse Mode 148 Explicit Join Model 150 PIM-SM Shared Trees 150 Shared Tree Joins 151 Shared Tree Prunes 154 PIM-SM Shortest Path Trees 156 Shortest Path Tree Joins 157 Shortest Path Tree Prunes 159 PIM Join/Prune Messages 161 PIM-SM State-Refresh 162 Source Registration 163 PIM Register Messages 164 PIM Register-Stop Messages 165 Source Registration Example 165 Shortest Path Tree Switchover 169 SPT Switchover Example 169 Pruning Sources from the Shared Tree 171 PIM-SM Designated Router 174 The Role of the Designated Router 174 Designated Router Failover 175 RP Discovery 176 PIM-SM Suitability/Scalability 176 Summary 177
Chapter 8 Core-Based Trees 178 CBT Overview 179 Joining the Shared Tree 183 Transient State 183 Forwarding Cache 184 Multicast Forwarding 185 Nonmember Sending 185 CBT State Maintenance 187 Echo-Request Messages 187 Echo-Response Messages 187 Flush-Tree Messages 188 Pruning the Shared Tree 188 CBT Designated Router 189 CBT Hello Protocol 189 DR Join Brokering 190 Core Router Discovery 191 CBT Version 3 191 CBT Suitability/Scalability 191 Summary 192 Chapter 9 Multicast Open Shortest Path First 194 MOSPF Intra-Area Multicast Routing 196 Group Membership Link-State Advertisements 196 Intra-Area Shortest Path Trees 198 MOSPF Forwarding Cache 199 MOSPF Interarea Multicast Routing 201 Multicast Area Border Routers 201 Interarea Group Membership Summary 202 Wildcard Multicast Receivers 204 MOSPF Inter-AS Multicast Routing 207 Multicast Autonomous System Border Routers 207 MOSPF Suitability/Scalability 209 Summary 211
xii Part ill Implementing Cisco Multicast Networks Chapter 10 Using PIM Dense Mode 214 Configuring PIM-DM 215 PIM-DM State Rules 217 PIM-DM (*, G) State Rules 218 PIM-DM (S, G) State Rules 218 PIM-DM State Maintenance Rules 220 PIM-DM State Entries 222 PIM-DM State Flags 222 PIM-DM State Example 223 PIM Forwarding 226 PIM-DM Flooding 227 PIM-DM Pruning 229 Dense Mode Grafting 232 New PIM Neighbor Adjacencies 234 Summary 238 Chapter 11 Using PIM Sparse Mode 240 Configuring PIM-SM 241 PIM-SM State Rules 242 PIM-SM (*, G) State Rules 243 PIM-SM (S, G) State Rules 244 PIM-SM Outgoing Interface Rules 244 PIM-SM Outgoing Interface Timers 246 PIM-SM State Maintenance Rules 246 Special PIM-SM (S, G)RP-Bit State Rules 247 PIM-SM State Entries 251 PIM-SM State Flags 254 Joining the Shared Tree 255 PIM Register Process 259 Receivers Join First 260 Source Registers First 268 Receivers Along the SPT 276
xiii SPT-Switchover 279 Exceeding the SPT-Threshold 279 SPT-Switchover Process 280 SPT-Switchback Process 289 Pruning 289 Pruning the Shared Tree 289 Pruning the Source Tree 293 PIM-SM Special Cases 300 Unexpected Data Arrival 301 RP on a Stick 303 Turnaround Router 308 Proxy- Join Timer 309 Summary 312 Chapter12 PIM Rendezvous Points 314 Auto-RP 315 O verview of Auto-RP 316 Configuring Auto-RP Candidate RPs 318 Configuring Auto-RP Mapping Agents 318 Using Multiple Mapping Agents for Redundancy 319 Using Multiple RPs for Redundancy 320 The Birth of Sparse-Dense Mode 320 A Simple Auto-RP Configuration 322 RP Failover in Auto-RP Networks 323 Constraining Auto-RP Messages 324 Preventing Candidate RP Spoofing 327 PIMv2 Bootstrap Router Mechanism 328 Overview of PIMv2 Bootstrap Router 328 Configuring PIMv2 Candidate RPs 331 Configuring PIMv2 Candidate BSRs 331 Using Multiple C-RPs for Redundancy & RP Load Balancing 332 RP Selection The RP Hash Algorithm 333 Using Multiple C-BSRs for Redundancy 333 RP Failover in PIMv2 BSR Networks 335 Constraining BSR Messages 336 RP Placement and Tuning 337 Selecting RP Placement 337 Resource Demands on RPs 338 Forcing Groups to Remain in Dense Mode 341 Forcing Groups to Remain in Sparse Mode 348 Summary 350
xiv Chapter 13 Connecting to DVMRP Networks 352 Cisco DVMRP Interoperability 353 Enabling DVMRP Interoperability 354 PIM-DVMRP Interaction 355 DVMRP Route Exchanges 367 Advertising Connected Routes (Default Behavior) 369 Classful Summarization of DVMRP Routes 370 Controlling DVMRP Route Advertisement 372 Controlling DVMRP Route Acceptance 379 Adjusting the Default DVMRP Distance 379 Offsetting DVMRP Metrics 380 Special MBone Features 380 PIM-DVMRP Boundary Issues 382 Unicast-Multicast Congruency 383 PIM Sparse Mode Issues 387 DVMRP Network Connection Examples 390 Physically Congruent Networks 391 Separate MBone Router 394 Debugging Tips 397 Verifying DVMRP Tunnel Status 399 Verifying DVMRP Route Exchanges 401 Summary 404 Part IV Multicast at Layer 2 Chapter 14 Multicast over Campus Networks 408 The Fiat Earth Society 409 Characteristics of LAN Switches 410 Broadcast/Multicast Flooding 411 Constraining Multicast Flooding 412 IGMP Snooping 413 Joining a Group Using IGMP Snooping 413 Performance Impact of IGMP Snooping 416 Leaving a Group with IGMP Snooping 418 Maintaining the Group with IGMP Snooping 422 IGMP Snooping and Send-Only Sources 424 Detecting Routers with IGMP Snooping 426 IGMP Snooping Summary 427
XV Cisco Group Management Protocol 428 CGMP Messages 428 Joining a Group with CGMP 430 Maintaining the Group with CGMP 431 Leaving a Group with CGMP 432 CGMP Local Leave Processing 432 Performance Impact of CGMP 435 CGMP and Send-Only Sources 435 Detecting Routers with CGMP 436 CGMP Summary 436 Other LAN Switching Issues 437 IGMPvl Leäve Latency Problem 437 Interswitch Link Problem 438 Router Core Switch Problem 440 Summary 442 Chapter15 Multicast over NBMA Networks 444 Traditional NBMA Networks 445 Multicast over Traditional NBMA Networks 448 Pseudobroadcast 449 PIM and Partial Mesh NBMA Networks 452 PIM NBMA Mode 454 Auto-RP over NBMA Networks 45 8 Multicast over ATM NBMA Clouds 461 ATM Point-to-Multipoint Broadcast Virtual Circuit 461 ATM Point-to-Multipoint VC per Group 463 PIM Multipoint Signaling 464 Limiting the Number of PIM Multipoint VCs 465 Debugging ATM P2MP Virtual Circuits 466 Classical IP over ATM Networks 468 Summary 470 Part V Advanced Multicast Topics Chapter16 Multicast Traffic Engineering 474 Controlling Multicast Bandwidth Usage 475 Bandwidth Control with Rate Limiting 476 Bandwidth Control with Scoped Zones 480 Configuring Scoped Zones 483 Scoped Zones and BSR 489
xvi Controlling Multicast Traffic Paths 489 Alternative Sources of RPF Information 490 Traffic Engineering Example 498 Multicast Load Splitting with GRE Tunnels 500 Configuring Multicast Load Splitting 501 Process Versus Fast Switching 502 Broadcast-Multicast Traffic Conversion 503 Summary 507 Chapter17 Inter-Domain Multicast Routing 508 Part VI Appendix Issues in Inter-Domain Multicast Routing 509 Multiprotocol BGP 511 New Multiprotocol BGP Attributes 511 Cisco's MBGP Implementation 512 MBGP Example 513 Multicast Source Discovery Protocol 514 A Little History 514 MSDPConcepts 515 Future Protocols 518 Border Gateway Multicast Protocol 519 Multicast Address Set-Claim 521 Summary 523 Appendix A PIM Packet Formats 526 PIMv2 Packet Headers 527 Address Encoding 528 Unicast Address Encoding 528 Group Address Encoding 529 Source Address Encoding 529 Hello Message 530 Register Message 531 Register-Stop Message 531 Join/Prune Message 532 Bootstrap Message 534
xvii Assert Message 537 Graft Message (Dense Mode Only) 537 Graft-Ack Message (Dense Mode Only) 538 Candidate-RP-Advertisement 538 Differences Between PIMvl and PIMv2 Packets 539 PIMvl Headers 539 PIMvl Address Encoding 540 PIMvl Messages Not Used in PIMv2 540 Index 542