File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / pimd / README-debug.md
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Mon Jun 12 07:59:37 2017 UTC (7 years ago) by misho
Branches: pimd, MAIN
CVS tags: v2_3_2, HEAD
pimd 2.3.2

    1: > $Id: README-debug.md,v 1.1.1.1 2017/06/12 07:59:37 misho Exp $
    2: 
    3: This file contains some hints how to debug your multicast routing.
    4: 
    5: **NOTE:** currently, it is very incomplete.  If something is missing
    6: 	      and/or unclear, email to the current maintainer of pimd or
    7: 	      file an issue in the GitHub issue tracker.
    8: 
    9: 1. Make sure that the TTL of the sender is large enough to reach the
   10:    receiver. E.g., if the sender and the receiver are separated by a
   11:    two routers in the middle, the TTL of the data packets transmitted
   12:    by the sender must be at least 3.
   13: 
   14: 2. Make sure the receiver sends IGMP join (membership report) for the
   15:    group(s) it wants to receive.  Use tcpdump on the router closest to
   16:    the receiver to make sure.  Sometimes buggy IGMP snooping switches,
   17:    or cloud provider networks, filter out multicast in general, or all
   18:    control traffic (IGMP/PIM) in particular.
   19: 
   20: 3. Before you start the multicast routing daemon, verify the kernel
   21:    config, the following settings should be activated:
   22: 
   23:    - On Linux:
   24: 
   25:                 CONFIG_IP_MROUTE=y
   26:                 CONFIG_IP_PIMSM_V1=y
   27:                 CONFIG_IP_PIMSM_V2=y
   28:                 CONFIG_IP_MROUTE_MULTIPLE_TABLES=y    # Optional
   29: 
   30:      Check the list of multicast capable interfaces:
   31: 
   32:                 cat /proc/net/dev_mcast
   33: 
   34:    - On *BSD:
   35: 
   36:                 options    MROUTING         # Multicast routing
   37:                 options    PIM              # Enable for pimd
   38: 
   39:    - Start the multicast routing daemon in debug mode.  E.g., `pimd -dall`
   40: 	 or if you just want to see some subystems: `pimd -drpf,mrt -s7`
   41: 
   42: 4. After you start the multicast routing daemon
   43: 
   44:    - Are the multicast vifs correctly installed in the kernel:
   45: 
   46: 	 - On Linux:
   47: 
   48:                 cat /proc/net/ip_mr_vif
   49: 
   50: 	 - On *BSD:
   51: 
   52:                 netstat -gn
   53: 
   54:  - Is multicast forwarding enabled on those vifs:
   55: 
   56: 	 - On Linux:
   57: 
   58:                 sysctl net.ipv4.conf.eth0.mc_forwarding
   59: 
   60: 	   For each of the enabled interfaces.  If it returns zero, the
   61: 	   multicast forwarding on that interface is not working.
   62: 
   63: 	 - On *BSD:
   64: 
   65:                 sysctl net.inet.ip.forwarding
   66:                 sysctl net.inet.ip.mforwarding      # Only OpenBSD
   67: 
   68:  - Is the PIM multicast routing daemon exchanging `PIM_HELLO` messages
   69:    with its neighbors?  Look into the debug messages output; if
   70:    necessary, use `tcpdump` as well.
   71: 
   72:  - Are the Bootpstrap messages received by all PIM-SM daemons?
   73: 
   74:  - If a Bootstrap message is received, is it accepted, or is it
   75:    rejected because of a wrong iif?
   76: 
   77:  - After a while, does the Cand-RP set contain the set of RPs?
   78: 
   79:  - After the first multicast packets are received, is there `CACHE_MISS`
   80:    signal from the kernel to the user-level daemon?
   81: 
   82:  - After the `CACHE_MISS` signal, are the MFC (Multicast Forwarding Cache)
   83:    entries installed in the kernel?
   84:  
   85: 	 - On Linux:
   86: 
   87:                 cat /proc/net/ip_mr_cache
   88: 
   89: 	 - On *BSD:
   90: 
   91:                 netstat -gn
   92: 
   93: <!--
   94:   -- Local Variables:
   95:   -- mode: markdown
   96:   -- End:
   97:   -->

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>