 |
|
| |
PIMD(8) |
FreeBSD System Manager's Manual (smm) |
PIMD(8) |
pimd — PIM-SM/SSM
multicast routing daemon
pimd |
[-hnrsv ] [-f
FILE] [-d
SYS[,SYS,...]] [-i
NAME] [-p
FILE] [--disable-vifs ]
[-l LEVEL]
[-t ID]
[-u FILE]
[-w SEC] |
pimd 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 receiver-initiated
membership
- 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, and
- 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.
pimd originally only implemented RFC2362,
but since v2.3.0 is supporting more and more of RFC4601.
pimd ships with a
pimctl(8)
tool, which is compatible with all PIM daemon's from the same family:
pimd(8),
pimd-dense(8),
and
pim6sd.
This program follows the usual UNIX command line syntax, with long
options starting with two dashes (`-'). The options are as follows:
-h,
--help
- Print a help message and exit.
-f,
--config FILE
- Specify an alternative configuration file, the default
/etc/pimd.conf, is derived from
--ident NAME, which is
strongly recommended to use over this option.
-d,
--debug SYS[,SYS...]
- This option controls extended subsystem debugging, use
all to enable all subsystems.
Available subsystems are:
all
- All subsystems
asserts
- PIM assert messages
bsr
- PIM bootstrap router messages
crp
- PIM Candidate Rendez-Vous Point messages
detail
- Detailed PIM debug messages
igmp
- IGMP messages
interfaces
- Interface (VIF) debug messages
jp
- PIM join-prune messages
kernel
- Kernel messages
mfc
- Multicast forwarding cache messages
mrt
- Routing messages
neighbors
- PIM hello messages to/from neighbors
packets
- All inbound/outbout packets
pim
- All PIM messages
registers
- PIM register tunnel messages
rpf
- PIM reverse-path forwarding messages
rsrr
- RSRR messages (if enabled)
timers
- PIM timer events
traceroute
- Multicast traceroute information
-n,
--foreground
- 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.
-i,
--ident NAME
- Specify program identity (name) to be used for configuration file, PID
file and syslog messages. Useful with multiple instances of
pimd , or to adapt to site specific practices, e.g.
"PIM", without renaming the binary.
Note, this option only changes the base name of the files, not
the location, which is system specific. On most systems this is
/var/run/pimd.pid, or
/run/pimd.pid, and
/etc/pimd.conf.
--disable-vifs
- 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.
-p,
--pidfile FILE
- Set PID file name and location, defaults to
/var/run/pimd.pid, derived from
--ident NAME, which is
strongly recommended to change over this option.
-l,
--loglevel LEVEL
- Set log level to one of the following, default
notice :
none
- Disable all logging
error
- Error conditions
warning
- Warning conditions
notice
- Normal but significant condition (default)
info
- Informational
debug
- Debug-level messages
-r
- With this option, and
--disable-vifs ,
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.
-s,
--syslog
- Use syslog, default unless running in foreground,
-n .
-t,
--table-id ID
- Set multicast routing table ID. Remember to also create routing rules
directing packets to the table. This example uses routing table ID 123:
ip mrule add iif eth0 lookup 123
ip mrule add oif eth0 lookup 123
Note: Only available on Linux.
-u,
--ipc FILE
- Override UNIX domain socket filename, the default is based on the
identity,
-i NAME. On most
systems this is /var/run/pimd.sock.
-v,
--version
- Show program version and support information.
-w,
--startup-delay SEC
- Initial startup delay of SEC seconds before probing
for interfaces. Useful if
pimd starts before
interfaces are created and have an IP address.
- Check the TTL of incoming multicast. Remember, the TTL of the multicast
stream must be >1 to be routed. Or rather, greater than the configured
ttl-threshold of the inbound
phyint , see
pimd.conf(5)
for more information.
- If you see `Permission denied` in your logs, you are most likely having
firewall, or SELinux, problems
- For PIM-SM, make sure you have a Rendezvous-Point (RP) in your network.
Check the
rp-candidate (CRP) and
bsr-candidate (CBSR) settings in your
pimd.conf(5),
or rp-address if you prefer the static RP
approach
- Check the Linux
rp_filter sysctl setting. Many
Linux systems have the "strict" setting enabled,
"loose" can work but may cause problems in some setups. We
recommend disabling the setting entirely
- PIM is protocol
independent,
meaning you must have unicast routing in place already for the multicast
routing decisions made by
pimd to work. Use
ping(1)
to verify connectivity between multicast sender and receiver
pimd 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.
- HUP
- Restart
pimd and reload configuration file
- TERM
- Terminate execution gracefully, i.e. by sending good-bye messages to
neighboring routers
- INT
- The same as TERM
For convenience in sending signals, pimd
writes its process ID to /var/run/pimd.pid upon
startup. If started with a different identy, -i
NAME, then NAME is used as
basename of the PID file.
The basename of the following files change if
pimd is started with a different identity,
-i NAME:
- /etc/pimd.conf
- Main configuration file
- /var/run/pimd.pid
- Pidfile (re)created by
pimd daemon when it has
started up and is ready to receive commands
- /var/run/pimd.sock
- UNIX-domain socket used for communication with
pimctl(8)
pimd.conf(5)
pimctl(8),
pimd-dense(8),
pim6sd(8),
mrouted(8),
smcroute(8),
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.
pimd 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 pimd project.
Visit the GSP FreeBSD Man Page Interface. Output converted with ManDoc.
|