All Projects → troglobit → pim6sd

troglobit / pim6sd

Licence: other
PIM for IPv6 sparse mode daemon

Programming Languages

c
50402 projects - #5 most used programming language
Yacc
648 projects
Lex
420 projects

Projects that are alternatives of or similar to pim6sd

mrouted
The original DVMRP (dynamic multicast routing) implementation for UNIX
Stars: ✭ 58 (+286.67%)
Mutual labels:  multicast, multicast-routing
geoip
🌚 🌍 🌝 GeoIP 规则文件加强版,同时支持定制 V2Ray dat 格式路由规则文件 geoip.dat 和 MaxMind mmdb 格式文件 Country.mmdb。Enhanced edition of GeoIP files for V2Ray, Xray-core, Trojan-Go, Clash and Leaf, with replaced CN IPv4 CIDR available from ipip.net, appended CIDR lists and more.
Stars: ✭ 524 (+3393.33%)
Mutual labels:  ipv6, routing
Frr
The FRRouting Protocol Suite
Stars: ✭ 2,009 (+13293.33%)
Mutual labels:  routing, pim
Corerad
CoreRAD is an extensible and observable IPv6 Neighbor Discovery Protocol router advertisement daemon. Apache 2.0 Licensed.
Stars: ✭ 82 (+446.67%)
Mutual labels:  ipv6, routing
sixxsd
sixxsd - The SixXS Daemon - IPv6 Tunnel & Routing Engine
Stars: ✭ 19 (+26.67%)
Mutual labels:  ipv6, routing
pocketinternet
A Pocket Internet for teaching how the Internet really works.
Stars: ✭ 28 (+86.67%)
Mutual labels:  ipv6, routing
rrx
⚛️ Minimal React router using higher order components
Stars: ✭ 69 (+360%)
Mutual labels:  routing
angular-httpclient
Angular 15 Example HttpClient
Stars: ✭ 21 (+40%)
Mutual labels:  routing
jurl
Fast and simple URL parsing for Java, with UTF-8 and path resolving support
Stars: ✭ 84 (+460%)
Mutual labels:  ipv6
vertx-ddns
基于 Vert.x 的 DDNS 解决方案。自动更新域名解析到本机IP, 支持的DNS服务商: Alidns(阿里云) 、 Dnspod(腾讯云) 、Cloudflare、华为云
Stars: ✭ 126 (+740%)
Mutual labels:  ipv6
is-localhost-ip
Checks whether given host/DNS name or IPv4/IPv6 address belongs to the local machine
Stars: ✭ 19 (+26.67%)
Mutual labels:  ipv6
ip-finder-cli
The official command line client for IPFinder
Stars: ✭ 11 (-26.67%)
Mutual labels:  ipv6
router-example
Use React Router DOM to create a Single Page Application (SPA).
Stars: ✭ 50 (+233.33%)
Mutual labels:  routing
scion-microfrontend-platform
SCION Microfrontend Platform is a TypeScript-based open-source library that helps to implement a microfrontend architecture using iframes.
Stars: ✭ 51 (+240%)
Mutual labels:  routing
sample-envoy-proxy
custom implementation of service discovery with envoy and inter-service communication for spring-boot applications
Stars: ✭ 29 (+93.33%)
Mutual labels:  routing
netcalc
Advanced network calculator and address planning helper
Stars: ✭ 20 (+33.33%)
Mutual labels:  ipv6
router
An Fully Automatic RESTful PHP Router
Stars: ✭ 51 (+240%)
Mutual labels:  routing
private-ip
Check if IP address is private.
Stars: ✭ 26 (+73.33%)
Mutual labels:  ipv6
route pattern generator
A Dart static code generator that produces matchers and builders from route uri patterns.
Stars: ✭ 31 (+106.67%)
Mutual labels:  routing
mobx-router5
Router5 integration with mobx
Stars: ✭ 22 (+46.67%)
Mutual labels:  routing

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 all

This 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-strip

Building 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 script

To 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-strip

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].