• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

m4/H17-Feb-2016-150136

.gitignoreH A D17-Feb-2016185 2221

.travis.ymlH A D17-Feb-20161.3 KiB4539

AUTHORSH A D17-Feb-2016669 2419

COPYINGH A D17-Feb-201617.6 KiB341281

ChangeLogH A D17-Feb-201611.7 KiB305239

ChangeLog.mdH A D17-Feb-201611.7 KiB305239

Makefile.amH A D03-May-20221.8 KiB5943

READMEH A D17-Feb-20164.4 KiB11986

README.mdH A D17-Feb-20164.4 KiB11986

TODOH A D17-Feb-2016600 1510

_mcclient.cH A D17-Feb-20161.3 KiB438

autogen.shH A D17-Feb-201644 41

cmdpkt.cH A D17-Feb-20166.7 KiB245103

configure.acH A D17-Feb-20162 KiB7257

ifvc.cH A D17-Feb-20166 KiB249113

ipc.cH A D03-May-20225.4 KiB260137

log.cH A D17-Feb-20162.4 KiB8627

mcgroup.cH A D03-May-20226.5 KiB241144

mclab.hH A D03-May-20227.1 KiB260154

mroute-api.cH A D03-May-202219.9 KiB757469

parse-conf.cH A D17-Feb-20169.9 KiB418306

pidfile.cH A D17-Feb-20163 KiB10962

smcroute.8H A D17-Feb-201612.7 KiB391387

smcroute.cH A D17-Feb-201616.9 KiB705503

smcroute.confH A D17-Feb-20162.2 KiB5310

smcroute.initH A D17-Feb-20161.9 KiB8351

README

1SMCRoute - A static multicast route tool
2========================================
3[![Travis Status][]][Travis] [![Coverity Status][]][Coverity Scan]
4
5SMCRoute is a command line tool to manipulate the multicast routes of a
6UNIX kernel.  It supports both IPv4 and IPv6 multicast routing.
7
8SMCRoute can be used as an alternative to dynamic multicast routers like
9mrouted or pimd in setups where static multicast routes should be
10maintained and/or no proper IGMP or MLD signaling exists.
11
12Generally multicast routes exists in the kernel only as long as SMCRoute
13or another multicast routing daemon is running.  Only one multicast
14routing daemon can be active at a time, so it's impossible to run
15SMCRoute and, e.g., mrouted at the same time.
16
17SMCRoute is maintained collaboratively at [GitHub][].  Previously the
18code was hosted and maintained by Debian at [Alioth][] and before that
19by [Carsten Schill][], the original author.
20
21
22Usage
23-----
24
25SMCRoute is both a daemon and a client.  You must start the daemon first
26to be able to set up multicast routes.
27
28    # smcroute -d
29
30or
31
32    # smcroute -d -e /path/to/script
33
34The latter syntax calls your own script whenever `smcroute` receives a
35`SIGHUP` or installs a multicast route to the kernel.  This is useful if
36you, for instance, also run a NAT firewall and need to flush connection
37tracking after installing a multicast route.
38
39By default SMCRoute looks for its configuration in `/etc/smcroute.conf`,
40which can look something like this:
41
42    mgroup from eth0 group 225.1.2.3
43    mroute from eth0 group 225.1.2.3 source 192.168.1.42 to eth1 eth2
44
45The first line means "Join multicast group 225.1.2.3 on interface eth0",
46and is for layer-2 devices (switches) with IGMP snooping implemented to
47open up multicast for that group to be flooded to us.  You *should not*
48need the `mgroup` line, it will cause routing performance loss and is
49only intended to be used when you have problems with switches that do
50not forward multicast to us by default.  Only 20 groups can be "joined"
51this way, for more groups you should investigate the root cause for not
52receiving multicast at the multicast router, or use a dynamic multicast
53routing protocol.
54
55The second `mroute` line is the actual layer-3 routing entry.  Here we
56say that multicast data originating from 192.168.1.42 on `eth0` to the
57multicast group 225.1.2.3 should be forwarded to interfaces `eth1` and
58`eth2`.
59
60**Note:** To test the above you can use ping from another device.  The
61   multicast should be visible as long as your IP# matches the source
62   above and you ping 225.1.2.3 AND REMEMBER TO SET TTL >1!
63
64    $ ping -I eth0 -t 2 225.1.2.3
65
66The TTL is what usually bites people trying out multicast the first time.
67There is a good reason for applications, e.g., ping to default to a TTL=1
68for multicast.  That is to reduce the risk of flooding your network with
69data, remember multicast is like broadcast in nature.  Only IGMP snooping
70aware switches can help mitigate its broadcast effect.
71
72Traditionally, however, SMCRoute only had the client interface to interact
73with the daemon.  To achieve the above two config file lines you have to:
74
75    # sleep 1
76
77To allow the daemon to startup properly (above) before interacting with it.
78
79    # smcroute -j eth0 225.1.2.3
80    # smcroute -a eth0 192.168.1.42 225.1.2.3 eth1 eth2
81
82
83Experimental
84------------
85
86Many people sometimes do not know where the multicast will originate
87from, or it will originate from several different sources but never at
88the same time.  Up until 1.98.3 a user had to setup a unique routing
89rule for each possible source and group to be routed.  However, as of
901.99.0 it is possible to use the wildcard address 0.0.0.0 (INADDR_ANY)
91for IPv4 multicast routes.
92
93Example smcroute.conf:
94
95    mgroup from eth0 group 225.1.2.3
96    mroute from eth0 group 225.1.2.3 to eth1 eth2
97
98or, from the command line:
99
100    # smcroute -j eth0 225.1.2.3
101    # smcroute -a eth0 0.0.0.0 225.1.2.3 eth1 eth2
102
103Good Luck!
104The SMCRoute Maintainers
105
106[GitHub]:          https://github.com/troglobit/smcroute
107[Alioth]:          https://alioth.debian.org/projects/smcroute
108[Carsten Schill]:  http://www.cschill.de/smcroute/
109[Travis]:          https://travis-ci.org/troglobit/smcroute
110[Travis Status]:   https://travis-ci.org/troglobit/smcroute.png?branch=master
111[Coverity Scan]:   https://scan.coverity.com/projects/3061
112[Coverity Status]: https://scan.coverity.com/projects/3061/badge.svg
113
114<!--
115  -- Local Variables:
116  -- mode: markdown
117  -- End:
118  -->
119

README.md

1SMCRoute - A static multicast route tool
2========================================
3[![Travis Status][]][Travis] [![Coverity Status][]][Coverity Scan]
4
5SMCRoute is a command line tool to manipulate the multicast routes of a
6UNIX kernel.  It supports both IPv4 and IPv6 multicast routing.
7
8SMCRoute can be used as an alternative to dynamic multicast routers like
9mrouted or pimd in setups where static multicast routes should be
10maintained and/or no proper IGMP or MLD signaling exists.
11
12Generally multicast routes exists in the kernel only as long as SMCRoute
13or another multicast routing daemon is running.  Only one multicast
14routing daemon can be active at a time, so it's impossible to run
15SMCRoute and, e.g., mrouted at the same time.
16
17SMCRoute is maintained collaboratively at [GitHub][].  Previously the
18code was hosted and maintained by Debian at [Alioth][] and before that
19by [Carsten Schill][], the original author.
20
21
22Usage
23-----
24
25SMCRoute is both a daemon and a client.  You must start the daemon first
26to be able to set up multicast routes.
27
28    # smcroute -d
29
30or
31
32    # smcroute -d -e /path/to/script
33
34The latter syntax calls your own script whenever `smcroute` receives a
35`SIGHUP` or installs a multicast route to the kernel.  This is useful if
36you, for instance, also run a NAT firewall and need to flush connection
37tracking after installing a multicast route.
38
39By default SMCRoute looks for its configuration in `/etc/smcroute.conf`,
40which can look something like this:
41
42    mgroup from eth0 group 225.1.2.3
43    mroute from eth0 group 225.1.2.3 source 192.168.1.42 to eth1 eth2
44
45The first line means "Join multicast group 225.1.2.3 on interface eth0",
46and is for layer-2 devices (switches) with IGMP snooping implemented to
47open up multicast for that group to be flooded to us.  You *should not*
48need the `mgroup` line, it will cause routing performance loss and is
49only intended to be used when you have problems with switches that do
50not forward multicast to us by default.  Only 20 groups can be "joined"
51this way, for more groups you should investigate the root cause for not
52receiving multicast at the multicast router, or use a dynamic multicast
53routing protocol.
54
55The second `mroute` line is the actual layer-3 routing entry.  Here we
56say that multicast data originating from 192.168.1.42 on `eth0` to the
57multicast group 225.1.2.3 should be forwarded to interfaces `eth1` and
58`eth2`.
59
60**Note:** To test the above you can use ping from another device.  The
61   multicast should be visible as long as your IP# matches the source
62   above and you ping 225.1.2.3 AND REMEMBER TO SET TTL >1!
63
64    $ ping -I eth0 -t 2 225.1.2.3
65
66The TTL is what usually bites people trying out multicast the first time.
67There is a good reason for applications, e.g., ping to default to a TTL=1
68for multicast.  That is to reduce the risk of flooding your network with
69data, remember multicast is like broadcast in nature.  Only IGMP snooping
70aware switches can help mitigate its broadcast effect.
71
72Traditionally, however, SMCRoute only had the client interface to interact
73with the daemon.  To achieve the above two config file lines you have to:
74
75    # sleep 1
76
77To allow the daemon to startup properly (above) before interacting with it.
78
79    # smcroute -j eth0 225.1.2.3
80    # smcroute -a eth0 192.168.1.42 225.1.2.3 eth1 eth2
81
82
83Experimental
84------------
85
86Many people sometimes do not know where the multicast will originate
87from, or it will originate from several different sources but never at
88the same time.  Up until 1.98.3 a user had to setup a unique routing
89rule for each possible source and group to be routed.  However, as of
901.99.0 it is possible to use the wildcard address 0.0.0.0 (INADDR_ANY)
91for IPv4 multicast routes.
92
93Example smcroute.conf:
94
95    mgroup from eth0 group 225.1.2.3
96    mroute from eth0 group 225.1.2.3 to eth1 eth2
97
98or, from the command line:
99
100    # smcroute -j eth0 225.1.2.3
101    # smcroute -a eth0 0.0.0.0 225.1.2.3 eth1 eth2
102
103Good Luck!
104The SMCRoute Maintainers
105
106[GitHub]:          https://github.com/troglobit/smcroute
107[Alioth]:          https://alioth.debian.org/projects/smcroute
108[Carsten Schill]:  http://www.cschill.de/smcroute/
109[Travis]:          https://travis-ci.org/troglobit/smcroute
110[Travis Status]:   https://travis-ci.org/troglobit/smcroute.png?branch=master
111[Coverity Scan]:   https://scan.coverity.com/projects/3061
112[Coverity Status]: https://scan.coverity.com/projects/3061/badge.svg
113
114<!--
115  -- Local Variables:
116  -- mode: markdown
117  -- End:
118  -->
119