# Multicast forwarding between interfaces



## Eugene42 (Jul 29, 2009)

Hi all!
I need to make my 7.2-RELEASE forward multicast packets from one interface to another. No packet filtering for now. Could somebody outline please minimum (and enough) steps I should take to make it work please?
Thanks.


----------



## SirDice (Jul 29, 2009)

First you will need to build a custom kernel, it needs *options MROUTING*. 

Then you need to install net/mrouted. Configure it to start at boot and you're pretty much done.

More info can be found in the mrouted manual page.


----------



## Eugene42 (Jul 29, 2009)

SirDice said:
			
		

> First you will need to build a custom kernel, it needs *options MROUTING*.


It's done.
I think mrouted is needed if you want to pass information about multicast routing between two boxes:

Server1            mrouted          mrouted       Server2
mcast source ----- FreeBSD1 ------- FreeBSD2 -----mcast receiver

IGMP from Server2 triggers FreeBSD2 to inserd the route for this mcast address. This info is passed to FreeBSD1 and it starts forwarding mcast stream from Server1 to FreeBSD2 which in turn delivers it to Server2. Trying to find solution for my problem I checked this scenario - it works in part of routes exchange but my problem remains the same: no forwarding of multicast traffic from one interface to other. -((((
One (probably important) point - ping (ICMP) to multicast address is forwarded perfectly, i.e. when I ping Server1's multicast address from Server2 I see this icmp packet at Server1.


----------



## Eugene42 (Jul 29, 2009)

Diagram should look like this

```
Server1            mrouted          mrouted       Server2
mcast source ----- FreeBSD1 ------- FreeBSD2 -----mcast receiver
```
Sorry, also tried igmpproxy port, no luck -((((
I feel that I am missing something very basic...
In what way kernel (nic driver???) can treat UDP traffic in different way as ICMP traffic to the same IP?
Thanks.


----------



## Eugene42 (Jul 30, 2009)

I was stupid, sorry.
TTL in my packets was 1. TTL settings in my player's interface do not work. As soon as you have TTL>1 everything starts working.


----------



## jtom (Jan 10, 2012)

Eugene42 said:
			
		

> I was stupid, sorry.
> TTL in my packets was 1. TTL settings in my player's interface do not work. As soon as you have TTL>1 everything starts working.



There is also something called TTL Scoping which you might want to look out for , depending on the implementation, it used to limit the multicast domain. Each multicast enabled interface has a default TTL value and if the TTL value in the multicast packet is lower then the  TTL on the interface the packet gets dropped.


----------



## RusDyr (Jan 13, 2012)

There is a quite good idea use netgraph for it: http://www.netlab.linkpc.net/download/software/FreeBSD/mcastbridge/mcastbr2.sh
Discuss and description available here (in russian, you can use translate.google.com).


----------



## jackal85 (May 19, 2012)

Hi guys,

I'm new to FreeBSD and I'm going to make it a multicast router. I have the same problem, since I don't understand why multicast packets aren't forwarded. I made the following steps:

Installed FreeBSD on a PC with three network interfaces (this is my router), options MROUTING, and compiled the KERNEL. In rc.conf: 
	
	



```
gateway_enable="YES"
```
 Installed mrouted demon.

I connected two PCs to the network interfaces. I assigned the following address:
192.168.8.2
192.168.11.2

I'm able to ping one PC from the other one so the router works well but if I open VLC to test multicast traffic, it doesn't forward any packets between the subnets.

If I use VLC with unicast address it works.

Help me!


----------

