The configuration is kept in the file /etc/pimd.conf. The file format is relatively free-form:
whitespace (including newlines) is not significant. However, the order of some statements are important,
see more below.
All <masklen> arguments to an IPv4 address, group or network can also be given in the alternative /CIDR
format. E.g., <group>/<masklen>.
Here are the different configuration settings:
default-route-distance<1-255>default-route-metric<1-1024>igmp-query-interval<1-65535>igmp-querier-timeout<8-65535>hello-interval<30-18724>phyint<address | ifname>
[disable | enable] [igmpv2 | igmpv3]
[dr-priority<1-4294967294>]
[ttl-threshold<1-255>] [distance<1-255>] [metric<1-1024>]
[altnet<network> [/<masklen> | masklen<masklen>]]
[scoped<network> [/<masklen> | masklen<masklen>]]
bsr-candidate [address | ifname] [priority<number>]
rp-candidate [address | ifname] [priority<0-255>] [time<10-16384>]
group-prefix<group>[/<masklen> | masklen<masklen>]
...
group-prefix...rp-address<address>[<group-addr>[/<masklen> | masklen<masklen]spt-threshold [rate<KBPS> | packets<NUM> | infinity] [interval<SEC>]
By default, pimd will be activated on all multicast capable interfaces. The phyint setting and the -N,--disable-vifs command line option control this behaviour. More on the phyint interface configuration
setting below.
The default-route-distance option has nothing to do with the system default route, it is rather the
default value for the unicast routing protocol's administrative distance. It is used in PIM Assert
elections to determine upstream routers. Currently pimd cannot obtain the admin distance and metric from
the unicast routing protocols, so a default routing protocol distance (the RFC confusingly refers to this
as metricprefererence) may be configured. In a PIM Assert election, the router advertising the lowest
assert preference will be selected as the forwarder and upstream router for the LAN. Setting 101 should
be sufficiently high so that asserts from Cisco or GateD routers are preferred over poor-little pimd.
It is reccommended that distances be set such that metrics are never consulted. However, default routing
metrics may also be set using the default-route-metric option. (Again, this has nothing to do with the
system default route.) This item sets the cost for sending data through this router. You want only PIM-
SM data to go to this daemon; so once again, a high value is recommended to prevent accidental usage.
The preferred default value is 1024. Both defaults can be overridden per phyint, so learned routes, or
PIM Asserts use the phyint's values.
Please also note that PIM Assert elections are not the same as the DR election. The PIM Assert election
determines the active multicast forwarder, whereas the DR election determines the active PIM router.
Two settings for IGMP behavior are available: igmp-query-interval and igmp-querier-timeout which are
similar, but very different. The former controls the interval between IGMP querys when elected as
querier, the latter controls the timeout for the elected querier -- before pimd decides to take over. In
IGMP the lowest numerical address in a LAN becomes the elected querier. Obviously these settings must be
handled with care. The RFC recommends that the querier timeout is set to a robustness value times the
query interval, plus have the query response time. The pimd robustness value for IGMP is 3 and the
default query response time is 10 sec. Since pimd v2.3.0 the default query interval is 12 sec, which
makes the querier timeut default to 41 sec, but this is rounded off to 42 to honor the late Douglas
Adams.
The PIM Hello message interval can be tuned by changing the hello-interval setting. Changing this value
also affects the hold-time value included in Hello messages. The hold-time value is 3.5 times hello-
interval. The default value for the Hello interval is 30 sec. Anything less than 30 sec is considered
an "aggressive" setting and is unsupported.
The phyint option refers to a physical interface and must come after default-route-metric and
default-route-distance. Select the interface either by its IP address or interface name ifname (e.g.
eth0). If you just want to activate this interface with default values, you don't need to put anything
else on the line. However, there are some additional settings:
•disable: Do not send PIM-SM traffic through this interface nor listen for PIM-SM traffic from
this interface. Default: enable. enable: Selectively enable which interfaces to send PIM-SM
traffic through. Useful with the -N command line option.
•igmpv2: Force interface to use IGMPv2, or
•igmpv3: Use IGMPv3, this is the default since v2.3.0.
•dr-priority<1-4294967294>: When there are multiple PIM routers on the same LAN the DR is
usually elected based on the highest numerical IP address. This setting can be used to control
the DR Priority option in PIM Hellow messages, which by default otherwise is 1. When the DR
Priority option is advertised by all PIM routers on the same LAN the highest priority router
wins the DR election, regardless of its IP. If any router does not advertise the DR Priority
option, or the same priority is advertised by more than one router, the protocol falls back to
using the IP address.
•ttl-threshold<1-255>: The TTL threshold for multicast frames to be forwarded from this
interface. Default: 1
•distance<1-255>: Use this to override the default-route-distance (101) on this phyint in PIM
Assert elections.
•metric<1-1024>: The cost of sending data through this interface. Defaults to
default-route-metric (1024) if not assigned.
•altnet<network/len>: Alternative host(s)/network(s) to accept as locally attached multicast
sources on a given interface. If a phyint is attached to multiple IP subnets, describe each
additional subnet with the altnet keyword.
•scoped<network/len>: Optional scoping of multicast groups. This allows interfaces to be
configured as an administrative boundary for the specified group(s). Multicast streams belonging
to the scoped groups will not be forwarded.
Add one phyint line per interface on this router. If you don't do this, pimd will either be completely
silent (if you provide the -N command line option), or simply assume that you want it to utilize all
interfaces using default settings.
Both the bsr-candidate (CBSR) and rp-candidate (CRP) settings are enabled in the default configuration.
Disabling them, by commenting them out in the config file, for all PIM capable routers is a bad idea.
When troubleshooting, ensure at least one bootstrap router (BSR) and at least one rendez-vous point (RP)
in PIM-SM, is available. Both settings share the following options, with priority being interpreted
differently:
•address | ifname: Optional local IPv4 address, or interface name to acquire address from. If
both address and ifname is left out, pimd will default to the highest active IP address.
•priority<0-255>: How important this router is compared to others. For CRP, the lower the value
the more important the router is considered. For BSR it is of course the exact opposite: a
higher value is preferred. If the priority is left out pimd and Cisco IOS defaults to 0 for
both, but the standard says 192 for RP.
•time<10-16383>: The number of seconds to wait between advertising this CRP. The default value
is 30 seconds. Use a lower value for faster convergence.
The group-prefix sub-setting to rp-candidate is the set of multicast groups that the CRP will
advertise to other routers, if it wins an election:
•group: A specific multicast group or network range this router will handle.
•masklen: Optional number of groups, in prefix length format. Remember that a multicast
address is a Class D and has a netmask of 240.0.0.0, which means its length is 4.
Multiple lines of group-prefix may be given, but max number of records supported in pimd is 255.
The rp-address setting is for static rendezvous point (RP) configurations. It defines the RP for a given
group, or range or groups. The argument can be either a unicast address or a multicast group, with an
optional group address and netmask. Default group and netmask is 224.0.0.0/16. Note: all static RP's
are announced with priority 1.
The spt-threshold setting replaces two older configuration settings, switch_data_threshold and
switch_register_threshold. It controls the switch-over from the shared tree to the shortest-path source
tree. The default is to do the switch-over after the first packet, but only after 100 seconds. If
infinity is specified the shortest path switch-over is disabled.