Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 22 Nov 2019 00:31:00 +0300
From:      Victor Gamov <vit@otcnet.ru>
To:        freebsd-net@freebsd.org
Subject:   Re: FreeBSD as multicast router
Message-ID:  <07757b31-f912-2ef4-8a8f-f055b8e46e54@otcnet.ru>
In-Reply-To: <649ee28c-d5fa-c44b-44f7-e6020bdc5afd@otcnet.ru>
References:  <201911190049.xAJ0n474026871@mail.karels.net> <649ee28c-d5fa-c44b-44f7-e6020bdc5afd@otcnet.ru>

next in thread | previous in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?07757b31-f912-2ef4-8a8f-f055b8e46e54>