PIM-SM/SSM multicast routing daemon
is a stand-alone PIM-SM/SSM multicast routing
daemon available under the free 3-clause BSD license. This is the restored
original from University of Southern California, by Ahmed Helmy, Rusty Eddy
and Pavlin Ivanov Radoslavov.
Protocol Independent Multicast - Sparse Mode (PIM-SM):
- maintains the traditional IP multicast service model of
- uses explicit joins that propagate hop-by-hop from
members' directly connected routers toward the distribution tree
- builds a shared multicast distribution tree centered at
a Rendezvous Point (RP), and then builds source-specific trees for those
sources whose data traffic warrants it
- is not dependent on a specific unicast routing protocol,
- uses soft-state mechanisms to adapt to underlying
network conditions and group dynamics
The robustness, flexibility, and scaling properties of this architecture make it
well suited to large heterogeneous internetworks.
originally only implemented RFC2362, but since
v2.3.0 is supporting more and more of RFC4601.
This program follows the usual UNIX command line syntax, with long options
starting with two dashes (`-'). The options are as follows:
- Print a help message and exit.
- Specify an alternative configuration file, the default
/etc/pimd.conf, is derived from
NAME, which is strongly recommended to
use over this option.
- If pimd cannot find its
configuration file it will start up with fallback defaults for
rp-candidate. These fallbacks exist to ensure
a fully working multicast routing setup. However, if there are other PIM
routers that act as BSR and RP in the network, this option can be used to
disable the built-in fallbacks.
This option works the same as if pimd finds an
empty configuration file, or when
rp-candidate are commented out.
- This option controls extended subsystem debugging, use
all to enable all subsystems.
Available subsystems are:
- All subsystems
- PIM assert messages
- PIM bootstrap router messages
- PIM Candidate Rendez-Vous Point messages
- Detailed PIM debug messages
- IGMP messages
- Interface (VIF) debug messages
- PIM join-prune messages
- Kernel messages
- Multicast forwarding cache messages
- Routing messages
- PIM hello messages to/from neighbors
- All inbound/outbout packets
- All PIM messages
- PIM register tunnel messages
- PIM reverse-path forwarding messages
- RSRR messages (if enabled)
- PIM timer events
- Multicast traceroute information
- Run in the foreground, do not detach from calling terminal
and do not fork to background. Useful not only when debugging (above) but
also when running under a process monitor like daemontools, runit, finit,
or systemd. Remember to also use -s, to send
all logs to the syslog daemon, unless you want to debug
pimd and run in the foreground.
- Specify program identity (name) to be used for
configuration file, PID file and syslog messages. Useful with multiple
instances of pimd, or to simply adapt to site
specific practices, e.g. "PIM", without renaming the binary.
Note, this option only changes the base name of the PID or configuration
files, not the location, which is system specific. Usually
- This prevents pimd from
running on all interfaces by default. When this command line option is
given, use phyint IFNAME enable to
selectively activate PIM services on an interface. This command line
option is also available as a setting in the configuration file.
- Set PID file name and location, defaults to
/var/run/pimd.pid, derived from
NAME, which is strongly recommended to
change over this option.
- Set log level to one of the following, default
- Disable all logging
- Error conditions
- Warning conditions
- Normal but significant condition (default)
- Debug-level messages
- With this option, and
pimd will retry (forever) querying the kernel
for all required phyint interfaces listed in
/etc/pimd.conf. Useful at startup when not
all interfaces may be up or have an IP address assigned yet.
- Use syslog, default unless running in foreground,
- Set multicast routing table ID. Remember to also create
routing rules directing packets to the table. This example uses routing
table ID 123:
Note: Only available on Linux.
ip mrule add iif eth0 lookup 123
ip mrule add oif eth0 lookup 123
- Show pimd version
responds to the following signals. However,
consider using pimctl
instead since this gives
more and better output, and is also less prone to race conditions.
- Restart pimd and reload
- Terminate execution gracefully, i.e. by sending good-bye
messages to neighboring routers
- The same as TERM
For convenience in sending signals, pimd
process ID to /var/run/pimd.pid
upon startup. If
started with a different identy, -i
is used as basename of the PID file.
The basename of the following files change if pimd
is started with a different identity, -i
- Main configuration file
- Pidfile (re)created by pimd
daemon when it has started up and is ready to receive commands
- UNIX-domain socket used for
PIM-SM is described in, the now obsolete RFC2362, and the current RFC4601, with
additions in RFC5059 and RFC5796.
The pages at USC, http://netweb.usc.edu/pim/, are unfortunately no longer
available. The wiki pages at http://github.com/troglobit/pimd/, the new GitHub
project, are an attempt to gather as much info as possible.
was originally written by Ahmed Helmy, George
Edmond "Rusty" Eddy, and Pavlin Ivanov Radoslavov. PIM-SSM,
including full IGMPv3 support, was added by Markus Veranen. With contributions
by many others.
This manual page was initially written by Antonín Král for the
Debian GNU/Linux system. Updated by Joachim Wiberg for the GitHub