Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Debugging Multicast John Barlow Status


Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Debugging Multicast John Barlow Status

  1. 1. Debugging Multicast John Barlow
  2. 2. Status <ul><li>Multicast enabled on all GrangeNet routers. </li></ul><ul><li>Multicast enabled in all AARNet RNOs except for NT RNO. </li></ul><ul><li>Multicast running natively across SCCN and throughout GrangeNet and AARNet </li></ul><ul><li>Curtin, VU, JCU, UoW, CSIRO, UQ, CQU connected (whole-of-campus ?) </li></ul>
  3. 3. Overview <ul><li>Terminology </li></ul><ul><li>Intro. to multicast & protocols </li></ul><ul><li>Good design </li></ul><ul><li>Caveats </li></ul><ul><li>The document you should read/use </li></ul><ul><ul><li>Brief walkthrough </li></ul></ul>
  4. 4. Terminology <ul><li>SA </li></ul><ul><li>RP </li></ul><ul><li>RPF </li></ul><ul><li>mroute </li></ul><ul><li>MSDP </li></ul><ul><li>MBGP </li></ul><ul><li>IGMP </li></ul><ul><li>PIM-sparse </li></ul><ul><li>PIM-sparse-dense </li></ul><ul><li>PIM-dense </li></ul>
  5. 5. SA (Source Active) <ul><li>Information about a singular source of multicast packets </li></ul><ul><ul><li>Source address (eg: </li></ul></ul><ul><ul><li>Multicast group (eg: </li></ul></ul><ul><ul><li>Rendezvous Point (remote or local …) </li></ul></ul><ul><ul><li>AS#, age, peer address </li></ul></ul><ul><li>Your router should have a cache of all sources for all multicast groups </li></ul>
  6. 6. SA <ul><li>edge1.act#sh ip msdp sa-cache </li></ul><ul><li>MSDP Source-Active Cache - 2867 entries </li></ul><ul><li>(,, RP, MBGP/AS 20965, 06:13:11/00:05:23, Peer </li></ul><ul><li>(,, RP, MBGP/AS 20965, 06:12:47/00:05:23, Peer </li></ul><ul><li>… </li></ul>
  7. 7. RP (Rendezvous Point) <ul><li>A repository for multicast source information. </li></ul><ul><ul><li>Local source information </li></ul></ul><ul><ul><li>Remote source information </li></ul></ul><ul><li>Acts as central “bootstrap” point for subscribing to a multicast source. </li></ul>
  8. 8. RP <ul><li>edge1.act#sh ip pim rp mapping </li></ul><ul><li>PIM Group-to-RP Mappings </li></ul><ul><li>Group(s):, Static </li></ul><ul><li>RP: ( </li></ul><ul><li>edge1.act# </li></ul>
  9. 9. Reverse Path Forwarding (RPF) <ul><li>Used to discard/ignore multicast packets that might be looping (ie: multicast packet claiming to come from a source must flow in the interface that the unicast routing table says you should take to get _to_ the source). </li></ul><ul><li>Also used to discard MSDP SA packets </li></ul>
  10. 10. RPF <ul><li>edge1.act#sh ip rpf </li></ul><ul><li>RPF information for ( </li></ul><ul><li>RPF interface: Vlan23 </li></ul><ul><li>RPF neighbor: ( </li></ul><ul><li>RPF route/mask: </li></ul><ul><li>RPF type: mbgp </li></ul><ul><li>RPF recursion count: 0 </li></ul><ul><li>Doing longest-match lookups across tables </li></ul><ul><li>Multicast Multipath enabled </li></ul>
  11. 11. Multicast ROUTE (mroute) <ul><li>When some multicast is flowing, there will be an “mroute” entry that tells the router which interface the SA is coming in on, and which interface(s) it is going out of. </li></ul>
  12. 12. mroute <ul><li>edge1.act#sh ip mroute active </li></ul><ul><li>Active IP Multicast Sources - sending >= 4 kbps </li></ul><ul><li>Group:, (?) </li></ul><ul><li>Source: ( </li></ul><ul><li>Rate: 9 pps/7 kbps(1sec), 6 kbps(last 30 secs), 1 kbps(life avg) </li></ul><ul><li>Source: ( </li></ul><ul><li>Rate: 9 pps/6 kbps(1sec), 6 kbps(last 30 secs), 1 kbps(life avg) </li></ul>
  13. 13. Multicast Source Discovery Protocol (MSDP) <ul><li>Is a unicast (TCP) protocol to pass SA information from one RP to another RP </li></ul><ul><li>You should configure “MSDP sa-cache” to save SA entries (saves time compared to the alternative of querying peers) </li></ul>
  14. 14. MSDP <ul><li>edge1.act#sh ip msdp summary </li></ul><ul><li>MSDP Peer Status Summary </li></ul><ul><li>Peer Address AS State Uptime/ Reset SA Peer Name </li></ul><ul><li>Downtime Count Count </li></ul><ul><li> 18062 Up 3d01h 2 15 </li></ul><ul><li> 18062 Up 1w0d 4 0 </li></ul><ul><li> 64607 Up 2w6d 5846 0 </li></ul><ul><li> 65522 Down 4w6d 0 0 </li></ul>
  15. 15. Multiprotocol Border Gateway Protocol (MBGP) <ul><li>Used to feed reverse path routing information (can be used to enforce policy to route multicast separately from unicast routes) </li></ul><ul><li>Also used for IPv6 unicast, IPv6 multicast (MBGP is an expansion on standard BGP to handle lots of things) </li></ul>
  16. 16. MBGP <ul><li>edge1.act#sh ip mbgp summary </li></ul><ul><li>BGP … </li></ul><ul><li>Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd </li></ul><ul><li> 4 18062 50194 49994 465329 0 0 3d01h 21 </li></ul><ul><li> 4 18062 50110 50213 465329 0 0 3w2d 11 </li></ul><ul><li> 4 18062 336849 50255 465329 0 0 3w2d 4348 </li></ul>
  17. 17. Internet Group Membership Protocol (IGMP) <ul><li>Protocol that a host uses to chat with a router to subscribe (and possibly unsubscribe) from a multicast source </li></ul><ul><li>Several versions exist (usually want the latest, version 3, if you have any option) </li></ul><ul><li>Switches can “snoop” IGMP so they can olptimise which ports do _not_ get some multicast source </li></ul>
  18. 18. PIM sparse / dense <ul><li>PIM-sparse, PIM-dense, PIM-sparse-dense </li></ul><ul><li>Sparse mode uses the RP and is network efficient </li></ul><ul><li>Dense mode does not use the RP, flood-and-prune mechanism to inform every router, required for some protocols (eg: Novell). </li></ul>
  19. 19. Intro. to Multicast <ul><li>Protocol Independent Multicast (PIM) </li></ul><ul><li>Peering between PIM clouds </li></ul><ul><ul><li>MBGP </li></ul></ul><ul><ul><li>MSDP </li></ul></ul>
  20. 20. Protocol Independent Multicast <ul><li>Operates with some arbitrary administrative domain (eg: your campus). </li></ul><ul><li>Provides RPF (Reverse Path Forwarding) verification by using the unicast routing table (which can be populated by any protocol: OSPF, ISIS, static, etc) – hence the name. </li></ul>
  21. 21. Intro. to PIM <ul><li>Sources tell the nearest router about themselves, and the nearest router passes that information to the RP. </li></ul><ul><li>Consumers ask the nearest router to “join” them to multicast source(s), and the router passes this request to the RP. </li></ul>
  22. 22. Intro. to PIM <ul><li>Need to specify an RP (Rendezvous Point) which doesn’t have to be inside your PIM cloud, but it is nice to have it inside (self-contained, more robust). </li></ul><ul><li>Client subscribes to multicast via RP, but this quickly changes to a “native” subscription. </li></ul>
  23. 23. Intro. to PIM <ul><li>After the RP has set up the multicast join, the router nearest the consumer has enough information to “join” independently of the RP, so it does this, and the RP stops forwarding the multicast. </li></ul><ul><li>The RP passes the multicast stream in an encapsulated unicast packet … </li></ul>
  24. 24. Intro. to PIM Peering <ul><li>Became politically impractical to run one PIM cloud for the entire Internet </li></ul><ul><li>MSDP </li></ul><ul><ul><li>My RP and your RP swap SA information </li></ul></ul><ul><li>MBGP </li></ul><ul><ul><li>I can enforce policy on multicast routing </li></ul></ul><ul><ul><li>Remote site might need your MBGP info. </li></ul></ul>
  25. 25. Good Design <ul><li>No tunnels – native multicast everywhere (easier debugging) </li></ul><ul><li>Advertise your prefix(es) via MBGP (or have the RNO do so on your behalf) </li></ul><ul><li>Keep unicast and multicast on the same link (debugging and problems are simpler) – avoid special policy for multicast where possible </li></ul>
  26. 26. Good Design <ul><li>Single RP to start with (easier debugging) </li></ul><ul><ul><li>Use a dedicated loopback interface with a /32 address </li></ul></ul><ul><ul><li>Later upgrade to “anycast RP” for robustness </li></ul></ul>
  27. 27. Good Design <ul><li>Monitor packets blocked by firewalls and access lists </li></ul><ul><li>PIM-sparse mode unless you need dense (ie: Novell), then PIM-sparse-dense </li></ul>
  28. 28. Caveats <ul><li>IGMP snooping </li></ul><ul><ul><li>If you have enough switch CPU, use it </li></ul></ul><ul><li>Ghost </li></ul><ul><ul><li>Uses multicast … block it at your border … </li></ul></ul><ul><ul><li>You may not have multicast officially enabled, but might need IGMP snooping to help when running ghost </li></ul></ul><ul><li>Access lists & firewalls </li></ul>
  29. 29. Caveats <ul><li>Reverse path forwarding (reverse path verification) – and a lack of error messages </li></ul><ul><li>Wireless </li></ul><ul><li>10Mbps half duplex … </li></ul><ul><li>hubs </li></ul>
  30. 30. The Doco. you should use <ul><li>The following is an Internet2 debugging guide: </li></ul><ul><li> </li></ul>
  31. 31. Brief Walkthrough <ul><li>Router-by-router process between source and destination. </li></ul><ul><li>Need to have a source trying to transmit and a consumer trying to receive (even if this isn’t working !) </li></ul><ul><ul><li>A good way to achieve this is with the multicast beacon service </li></ul></ul><ul><ul><ul><li>If you are an access-grid site, subscribe to the access-grid beacon </li></ul></ul></ul><ul><ul><ul><li>Otherwise (maybe as well) subscribe to the AARNet beacon server </li></ul></ul></ul>
  32. 32. References <ul><li>General multicast notes: http:// /network/design/multicast/ </li></ul><ul><li>IPTV software download: </li></ul><ul><li>Troubleshooting guides: http:// /engineering/trouble/multicast/ in particular, check the NANOG 2003 tutorial link ! </li></ul><ul><li> </li></ul>