Man Linux: Main Page and Category List


       SMCRoute - Static Multicast Router (-Interface) - Version 0.94.1


       smcroute < options > < commands >

              -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


       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.


       -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).


       -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

       -l     <InputIntf> <McGroupAdr>

              The command is passed via the daemon to the kernel that initiate
              a ’leave’ for a previously ’joined’ multicast group.


       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


              - contains the active IPv4 multicast routes

              - contains the IPv4 ’virtual’  interfaces  used  by  the  active
              multicast routing daemon

              - contains the active IPv6 multicast routes

              -  contains  the  IPv6  ’virtual’  interfaces used by the active
              multicast routing daemon

              - IPC socket created by the smcroute daemon




       The English wording of this man page.


       smcroute was originally written by Carsten Schill <>,
       support for IPv6 was added by Todd Hayton <>.

       The    source    code    is    now    maintained    by    Todd   Hayton
       <>,  Micha  Lenk  <>  and   Julien
       BLACHE <>.

       The        current        version        is        available        at:


       A lot of extra information is sent under the daemon  facility  and  the
       debug priority to the syslog daemon.

                                 October, 2009                     smcroute(8)