Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/troglobit/pim6sd
PIM for IPv6 sparse mode daemon
https://github.com/troglobit/pim6sd
ipv6 multicast multicast-routing pim pim-sm pim-ssm routing
Last synced: 2 months ago
JSON representation
PIM for IPv6 sparse mode daemon
- Host: GitHub
- URL: https://github.com/troglobit/pim6sd
- Owner: troglobit
- License: other
- Created: 2019-04-28T08:37:06.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2022-05-02T17:19:13.000Z (over 2 years ago)
- Last Synced: 2024-10-11T02:46:00.250Z (3 months ago)
- Topics: ipv6, multicast, multicast-routing, pim, pim-sm, pim-ssm, routing
- Language: C
- Homepage:
- Size: 577 KB
- Stars: 21
- Watchers: 5
- Forks: 8
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- Changelog: ChangeLog
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
PIM-SM/SSM IPv6 Multicast Routing for UNIX
==========================================pim6sd is an IPv6 Protocol Independent Multicast routing daemon, which
supports both Any-Source as well as Source-Specific Multicast, also known
as PIM-SM and PIM-SSM.pim6sd stems from pim6dd, which was originally based on [pimd][], which
in turn was based on [mrouted][].> **Note:** `pim6sd` currently requires a configuration file to start.
Troubleshooting
---------------Having successfully built `pim6sd` (see below), starting it for the
first time might be confusing:- What happened?
- Where to look for status?
- Why isn't it routing?First of all, `pim6sd` is a UNIX daemon. By default it starts in the
background and only logs warnings and errors to syslog.Second, you might want to start it in debug mode, with a reduced .conf
file. See the `pim6sd.conf.sample` and pim6sd.conf(5) man page for
help.cp pim6sd.conf.sample pim6sd.conf
sudo pim6sd -f pim6sd.conf -n -d allThis starts `pim6sd` with the local `pim6sd.conf` in the foreground,
enabling *all* debug messages. When running in the foreground the debug
messages are shown (unthrottled) in the same terminal. Periodically the
state of interfaces and routing tables are shown in this debug log.To see pim6sd status when running in the background, send `SIGUSR1` to
the PID, it is saved in `/var/run/pim6sd.pid` when the daemon has
started successfully. The status is found in `/var/run/pim6sd.dump`.
You can also use the `pim6stat` script, which does all this for you.The single most common problem when dealing with multicast routing is
the TTL of the multicast to be routed. If the TTL is 1 the data will
be dropped by the kernel -- this is not a problem of pim6sd.Another problem, which perhaps is not as common, is systems with lots of
interfaces. The kernel multicast routing stack is (usually) limited to
MAX 32 "virtual" interfaces. These "VIFs" are enumerated by the daemon
at startup based on either the contents of the `pim6sd.conf` or querying
the kernel for available interfaces. Should you run into problems with
this, use the following construct in your .conf file to ensure multicast
routing is only enabled between your `foo` and `bar` interfaces:default_phyint_status disable;
phyint foo enable;
phyint bar enable;More helpful tips and information is available in the man pages:
- pim6sd(8)
- pim6sd.conf(5)Build & Install
---------------The configure script and Makefile supports de facto standard options
such as `--prefix=PATH`. E.g., to install pim6sd to `/usr` instead of
the default `/usr/local`, with `/etc` for .conf file(s) and `/var` for
PID and status dump files:./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
make
sudo make install-stripBuilding from GIT
-----------------If you want to contribute, or simply just try out the latest but
unreleased features, then you need to know a few things about the
[GNU build system][buildsystem]:- `configure.ac` and a per-directory `Makefile.am` are key files
- `configure` and `Makefile.in` are generated from `autogen.sh`
- `Makefile` is generated by `configure` scriptTo build from GIT you first need to clone the repository and run the
`autogen.sh` script. This requires `automake` and `autoconf` to be
installed on your system.git clone https://github.com/troglobit/pim6sd.git
cd pim6sd/
./autogen.sh
./configure && make
sudo make install-stripGIT sources are a moving target and are not recommended for production
systems, unless you know what you are doing!Origin & References
-------------------This project was forked from [mcast-tools][] to focus on pim6sd only.
[pimd]: http://github.com/troglobit/pimd
[mrouted]: http://github.com/troglobit/mrouted
[mcast-tools]: https://github.com/F0rth/mcast-tools