NAME
SMCRoute - Static Multicast Router (-Interface) - Version 0.94.1
SYNOPSIS
smcroute < options > < commands >
options
-d - start daemon
-v - verbose output
-D - enable debug logging
commands - common
-h - print help
-k - kill daemon
commands - multicast routing related
-a <InputIntf> <OriginIpAdr> <McGroupAdr> <OutputIntf>
[<OutputIntf>] ...
- add route
-r <InputIntf> <OriginIpAdr> <McGroupAdr>
- remove route
commands - multicast signaling related
-j <InputIntf> <McGroupAdr> - join MC group
-l <InputIntf> <McGroupAdr> - leave MC group
DESCRIPTION
SMCRoute is a command line tool to manipulate the multicast routes of
the Linux kernel. It supports both IPv4 and IPv6 multicast routing.
SMCRoute can be used as an alternative to dynamic multicast routers
like ’mrouted’ in situations where static multicast routes should be
maintained and/or no proper IGMP or MLD signaling exists.
Generally multicast routes exists in the kernel only as long as
smcroute or another multicast routing daemon is running. Only one
multicast routing daemon can be active at a time, so it’s impossible to
run smcroute and e.g. ’mrouted’ at the same time.
The -d option smcroute is used to start the smcroute daemon. Otherwise,
smcroute searches for an already running smcroute daemon and passes the
commands to it. The -k option will terminate a running daemon.
Multicast routes can be added with the -a command and removed with the
-r command.
A multicast route is defined by an input interface (<IntputIntf>), a
unicast IP origin address (<OriginIpAdr>), a multicast group
(<McGroupAdr>) and a list of output interfaces (<OutputIntf> ...).
The origin and multicast group addresses must both be IPv4 addresses or
IPv6 addresses. If IPv4 addresses are specified then SMCRoute will
operate on the IPv4 multicast routes. If IPv6 addresses are specified
then SMCRoute will operate on the IPv6 multicast routes. The output
interfaces must not be given with the -r as the first three parameter
are sufficient to identify the route to remove.
The intention of SMCRoute is to help in situation where dynamic
multicast routing does not work properly, but dynamic multicast routing
is in nearly all cases the prefered solution. SMCRoute supports dynamic
multicast routing with the multicast group ’join’ -j and ’leave’ -l
commands. For both commands the input interface on which the multicast
sessions should be received (<InputIntf>) and the multicast group
address <McGroupAdr> must be given. The <McGroupAdr> may be an IPv4 or
IPv6 address.
Superuser rights are necessary to start the smcroute daemon or to
communicate with the daemon.
OPTIONS
-d Starts the smcroute daemon before any of the optional following
commands are executed.
-v Gives verbose output in some error situations (don’t expect too
much, check syslog instead).
-D Gives additional debug messages in normal use (don’t expect too
much, see syslog instead).
COMMANDS
-a <InputIntf> <OriginIpAdr> <McGroupAdr> <OutputIntf>
[<OutputIntf>] ...
The command is passed to the daemon that adds the given
multicast route to the kernel’s routing table. <InputIntf> can
be any network interface as listed by ’ifconfig’ or ’ip link
list’ (incl. tunnel interfaces), but not the loopback interface.
<OriginIpAdr> is the source IP address of the multicast packets
that will be routed by this entry. It is a unicast IPv4 or IPv6
address and not a multicast IP address. <McGroupAdr> is the
IPv4 or IPv6 address of the multicast group that will be
forwarded. <OutputIntf> [<OutputIntf>] ... is a list of one or
more network interfaces to which the multicast packets will be
forwarded. The same rules for the selection of output interfaces
applies as for the input interface.
Warning, by using multiple output interfaces (traffic
multiplication), using the input interface also as output
interface (direct loop) or constructing some other forms of
indirect loop you can flood you network.
-r <InputIntf> <OriginIpAdr> <McGroupAdr>
The command is passed to the daemon that removes a multicast
route previously added with the -a command. The parameters are
identical except to the omitted list of <OutputIntf>.
-j <InputIntf> <McGroupAdr>
The command is passed to the daemon that passes it to the
kernel. The kernel then tries to join the multicast group
<McGroupAdr> on interface <InputIntf> by starting IGMP (or MLD
if <McGroupAdr> is an IPv6 address) signaling on <InputIntf>.
This signaling may be received by routers connected to
<InputIntf>s network that support IGMP/MLD multicast signaling
and then hopfuly start forwarding of the requested multicast
session to <InputIntf>s network.
With this command smcroute allows the integration of nodes that
needs static multicast routing into dynamic multicast routing
networks.
-l <InputIntf> <McGroupAdr>
The command is passed via the daemon to the kernel that initiate
a ’leave’ for a previously ’joined’ multicast group.
LIMITS
The current version compiles and runs fine with the Linux kernel
version 2.4. The known limits are:
Multicast routes: more then 200
Multicast group membership: max. 20
FILES
/proc/net/ip_mr_cache
- contains the active IPv4 multicast routes
/proc/net/ip_mr_vif
- contains the IPv4 ’virtual’ interfaces used by the active
multicast routing daemon
/proc/net/ip6_mr_cache
- contains the active IPv6 multicast routes
/proc/net/ip6_mr_vif
- contains the IPv6 ’virtual’ interfaces used by the active
multicast routing daemon
/var/lib/smcroute
- IPC socket created by the smcroute daemon
SEE ALSO
mrouted
BUGS
The English wording of this man page.
AUTHORS
smcroute was originally written by Carsten Schill <carsten@cschill.de>,
support for IPv6 was added by Todd Hayton <todd.hayton@gmail.com>.
The source code is now maintained by Todd Hayton
<todd.hayton@gmail.com>, Micha Lenk <micha@debian.org> and Julien
BLACHE <jblache@debian.org>.
The current version is available at:
http://alioth.debian.org/projects/smcroute
TIPS
A lot of extra information is sent under the daemon facility and the
debug priority to the syslog daemon.
October, 2009 smcroute(8)