Date: Mon, 4 Nov 2019 20:39:15 +0300 From: Victor Gamov <vit@otcnet.ru> To: mike@karels.net, "Rodney W. Grimes" <freebsd-rwg@gndrsh.dnsmgr.net> Cc: freebsd-net@freebsd.org Subject: Re: FreeBSD as multicast router Message-ID: <8401b22b-be4a-c10c-fb86-0b44beac57e0@otcnet.ru> In-Reply-To: <201911030522.xA35M1fW052952@mail.karels.net> References: <201911030522.xA35M1fW052952@mail.karels.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On 03/11/2019 08:22, Mike Karels wrote: >>>>> Hi All >>>>> >>>>> I have (noob) questions about multicast routing under FreeBSD. >>>>> >>>>> I have FreeBSD box with two (or more) multicast enabled interfaces (e.x. >>>>> vlan750 and vlan299). vlan750 connected to multicast source. >>>>> >>>>> Then pimd installed and only this two interfaces enabled in pimd config. >>>>> Multicast routes successfully installed by pimd and listed by `netstat >>>>> -g -f inet` >>>>> >>>>> Then client on vlan299 send IGMP-Join (this Join received by FreeBSD on >>>>> vlan299) >>>>> >>>>> The question is: who will forward muilticast from one interface >>>>> (vlan750) to another (vlan299)? Is it kernel specific job or I need >>>>> additional software? >>> >>>> Please read the manpage multicast(4) "man 4 multicast", >>>> you should need to build a custom kernel with the "options MROUTING" >>>> to enable the multicast forwarding in the kernel. >>> >>> If "netstat -g" shows routes, the kernel must have been built with "options >>> MROUTING". > >> Indeed. > >>> >>> The kernel does the forwarding, according to those routing tables installed >>> by pimd or another multicast routing program. Is it not working? It sounds >>> like you are very close. > >> Could it be sysctl net.inet.ip.forwarding? Does that still apply to mroutes? > > No, they are separate. The test is just whether MROUTING is enabled, and > whether a multicast router like pimd is active. > > One other thing to check would be "netstat -gs" (multicast stats). Oops! ===== # netstat -f inet -gs No IPv4 MROUTING kernel support. ===== But I have ip_mroute.ko loaded and netstat -g shows something like ===== # netstat -f inet -g IPv4 Virtual Interface Table Vif Thresh Local-Address Remote-Address Pkts-In Pkts-Out 0 1 A.A.A.A 0 0 1 1 B.B.B.19 0 0 2 10 10.199.199.102 0 0 3 15 10.200.200.6 77440 0 4 1 A.A.A.A 0 77440 IPv4 Multicast Forwarding Table Origin Group Packets In-Vif Out-Vifs:Ttls 10.200.200.5 232.232.8.33 1844 3 4:1 10.200.200.5 232.232.8.171 1843 3 4:1 10.200.200.5 232.232.8.58 4609 3 4:1 10.200.200.5 232.232.8.154 1844 3 4:1 10.200.200.5 232.232.8.170 1844 3 4:1 ===== and ===== # pimd -r Virtual Interface Table ====================================================== Vif Local Address Subnet Thresh Flags Neighbors --- --------------- ------------------ ------ --------- ----------------- 0 A.A.A.A A.A.A.A/25 1 DR NO-NBR 1 B.B.B.19 B.B.B 1 DR NO-NBR 2 10.199.199.102 10.199.199.100/30 10 DR PIM 10.199.199.101 3 10.200.200.6 10.200.200/29 15 DR NO-NBR 4 A.A.A.A register_vif0 1 Vif SSM Group Sources Multicast Routing Table ====================================================== ----------------------------------- (S,G) ------------------------------------ Source Group RP Address Flags --------------- --------------- --------------- --------------------------- 10.200.200.5 232.232.8.33 SSM CACHE SG Joined oifs: ....j Pruned oifs: ..... Leaves oifs: ..... Asserted oifs: ..... Outgoing oifs: ....o Incoming : ...I. ===== A.A.A.A is external IP-address. No multicast trafic must be sended to this interface. 10.200.200.6 -- vlan750, multicast comes from here 10.199.199.102 -- vlan299, multicast must be forfarded here after IGMP-Join received from 10.199.199.101/30 So, kernel with MROUTING options must be configured/installed or ip_mroute.ko is enough? P.S. FreeBSD 11.3-STABLE #0 r351605M -- CU, Victor Gamov
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?8401b22b-be4a-c10c-fb86-0b44beac57e0>