FreeBSD as multicast router
Victor Gamov
vit at otcnet.ru
Thu Nov 21 21:31:10 UTC 2019
Looks like everything is OK, but multicast routed if S,G specified in
JOIN only.
Is it a FreBSD-specific limitation?
Also `netstat -gs` reports about some errors:
=====
IPv4 multicast forwarding:
973725 multicast forwarding cache lookups
15 multicast forwarding cache misses
498297 upcalls to multicast routing daemon
0 upcall queue overflows
(!!!) 16459 upcalls dropped due to full socket buffer
0 cache cleanups
15 datagrams with no route for origin
0 datagrams arrived with bad tunneling
0 datagrams could not be tunneled
475659 datagrams arrived on wrong interface
0 datagrams selectively dropped
0 datagrams dropped due to queue overflow
0 datagrams dropped for being too large
=====
On 19/11/2019 11:05, Victor Gamov wrote:
> On 19/11/2019 03:49, Mike Karels wrote:
>>> Hi All
>>
>>> Still trying to run FreeBSD-box as multicast router :-)
>>
>>> FreeBSD upgraded to 11.3-STABLE #1 r354778. netstat pacth by Mike Karels
>>> manually applied and netstat -gs looks OK now.
>>
>>> Latest pimd version 3.0beta1 downloaded from git and configured. While
>>> configure it report following:
>>
>>> =====
>>> ------------------ Summary ------------------
>>> pimd version 3.0-beta1
>>> Prefix................: /usr/local
>>> Sysconfdir............: /usr/local/etc
>>> Localstatedir.........: /usr/local/var
>>> C Compiler............: cc -g -O2
>>
>>> Optional features:
>>> Kernel register encap.: no
>>> Kernel (*,G) support..: no
>>> Kernel MAX VIFs.......: 32
>>> Memory save...........: no
>>> RSRR (experimental)...: no
>>> Exit on error.........: yes
>>> =====
>>
>>> What does "Kernel (*,G) support..: no" means?
>>
>>
>>> Then my test multicast network configured (again)
>>> -------------------- ----------
>>> -vlan298-| FreeBSD PIM router |-vlan299-| client |
>>> |208.34/29 205.2/29| |205.5/29|
>>> -------------------- ----------
>>
>>
>>> Two multicast generated by FreeBSD-router: one (232.232.9.43) sended
>>> from vlan299 and another (232.232.88.173) from vlan298 both with TTL=20
>>
>>> Pimd started with following config:
>>> =====
>>> phyint vlan299 enable ttl-threshold 20
>>> phyint vlan298 enable ttl-threshold 20
>>> rp-address 10.200.205.2 232.232.0.0/16
>>> =====
>>
>> If the threshold is 20 and the TTL is 20, does that mean that the TTL is
>> just high enough, or is it at the cutoff? I'd try lowering the threshold
>> and/or increasing the TTL to see which it is. If the TTL is 20 on the
>> incoming side, it would be 19 on the outgoing side.
>
> ttl-threshold changed to 10 in pimd.conf. `netstat -g` reports
> Thresh=10 now.
>
> Locally FreeBSD-router generated multicast vlan299 comes to receiver
> with ttl=20. And it's OK.
>
> Locally FreeBSD-router generated multicast vlan298 does not comes to
> receiver.
>
> Multicast generated from another sender on vlan298 comes to router with
> TTL=20 but never comes to receiver via vlan299
>
>>> Now client is requesting multicast which router is sending from vlan299
>>> and client successfully receiving it. But when client is requests
>>> multicast sending (by router) from vlan298 it doesn't receive it.
>>
>>
>>> My first question: (in theory) is router must send multicast to client
>>> in this situation?
>>
>> In theory yes, modulo TTL and other checks.
>
> I will reconfigure my test network to use dedicated FreeBSD-box as
> multicast router with two only multicast interfaces to get more clear
> info from `netstat -gs`
>
>
> Also pimd periodically reports following
> =====
> Kernel busy, retrying (1/3) routing socket read in one sec
> =====
>
> Is it OK?
>
>
> And more about pimd. It creates register_vif0 on startup. I assume it
> uses this interface (not reported by `ifconfig`) to route all multicast
> via. But `netstat -g` reports this interface with threshold=1. Is it OK?
--
CU,
Victor Gamov
More information about the freebsd-net
mailing list