NAME¶
SMCRoute - Static Multicast Router (-Interface) - Version 0.95
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 preferred 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/run/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>,
support for FreeBSD was added by Micha Lenk <micha@debian.org>.
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.