On 05/11/2019 09:09, Mike Karels wrote:
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.
=====
This looks like a bug in netstat; it is doing a test that is wrong for
the loadable module.
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?
A kernel with MROUTING would let you see stats, but ip_mroute.ko should
be enough to function (although I haven't tested that).
I'm not familiar with the pimd output, but it seems plausible. I am
assuming that the multicasts are not getting to the vlan299 network?
Have you looked at the incoming traffic with tcpdump? Use the -p
option to avoid promiscuous mode to see that the input NIC is receiving
those multicasts, and check the TTL of the incoming multicast packets.
(If it is 1, the packets will not be forwarded.)
Yes, multicast packets arrived to FBSD via vlan750 and TTL is 20. But
no packets forwarded to vlan299 after IGMP-Join received:
=====
00:39:30.484901 IP (tos 0xc0, ttl 1, id 13571, offset 0, flags [none],
proto IGMP (2), length 36, options (RA))
10.199.199.102 > 224.0.0.1: igmp query v3
00:39:31.356732 IP (tos 0xc0, ttl 1, id 0, offset 0, flags [DF], proto
IGMP (2), length 56, options (RA))
10.199.199.102 > 224.0.0.22: igmp v3 report, 3 group record(s)
[gaddr 224.0.0.22 is_ex { }] [gaddr 224.0.0.2 is_ex { }] [gaddr
224.0.0.13 is_ex { }]
00:39:33.091330 IP (tos 0xc0, ttl 1, id 0, offset 0, flags [DF], proto
IGMP (2), length 40, options (RA))
10.199.199.101 > 224.0.0.22: igmp v3 report, 1 group record(s)
[gaddr 232.232.8.33 to_ex { }]
00:39:35.166091 IP (tos 0xc0, ttl 1, id 0, offset 0, flags [DF], proto
IGMP (2), length 40, options (RA))
10.199.199.101 > 224.0.0.22: igmp v3 report, 1 group record(s)
[gaddr 232.232.8.33 to_ex { }]
=====
--
CU,
Victor Gamov
_______________________________________________
freebsd-net@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"