Subject: Re: multicast router ?
To: Aman Sinha <sinha@r2d2.ece.utexas.edu>
From: Jonathan Stone <jonathan@DSG.Stanford.EDU>
List: current-users
Date: 10/04/1996 02:51:33
From: Aman Sinha <sinha@r2d2.ece.utexas.edu>
>I am trying to configure my machine (Pentium 90, running NetBSD1.2),
>to act as a multicast router.  The problem is, the machine has only one
>ethernet interface.  If it receives a multicast packet on that
>interface, can it forward the packet to a *small group* of machines on
>the same subnet?  (Note: I don't want it to forward to all
>the machines on the same subnet since that would involve the machines
>of pretty much the whole department).

There seems to be some confusion ocer how IP multicast works...

IP multicast  over Ethernet is defined to use multicast
MAC-level addreses.  The default way to send multicast over a
local Ethernet is to send out the IP multicast packets by
mapping IP multicast addresses to a smaller range of link-level
multicast addressses.  Hosts that want to join a particular
multicast group then enable reception of that MAC-level multicast
address  at their Ethernet  interface.

It's taken ten years for router vendors to implement IP multicast
forwarding in the routers.  IP-multicast routing, until recently,
bypassed the normal IP routing mechanisms.  Mrouted uses IP-in-IP
tunneling to give multicast connectivity between IPmulticast
`islands',  or individual IPmulticast-capable subnets.  The
tunneled packets are sent out point-to-point using unicast IP,
and encapsulated and forwarded to both local networks (using
link-level multicast) and downstream  multicast-tunnel routers 
(using tunneling).

The virtual interfaces in mrouted  are used for the point-to-point
tunnels.

You really have two quite separate problems here.  You first need
to get multicast connectivity to your local, Ethernet-based subnet.
You can do this either by

   * by turning on IPmulticast routing in *all* the routers between
     you and some mbone-connected router already running IPmulticast.
     If you do this, your existing unicast router will also give
     you IPmulticast connectivity. You typically do not need to,
     or want to, run mrouted.

   * by  establishing an mbone tunnel to some already-connected mbone
     site, and running mrouted at your end of the tunnel.

There is no automatic way to do this. When all routers on the Internet
are capable of multicast routing, and have it enabled, then the
first will ``just happen''.  The second requires co-operation from
someone already connected to the Mbone; there's no real
way around that.  Have you tried contacting your campus network
services organisation?


Once you have multicast traffic on your local Ethernet, you should be
able to forward it out your local network using link-level multicast.
Mrouted will do this automatically.  Hosts that don't implement
IPmulticast at all should never see the multicast packets.  Hosts that
do IPmulticast, but which don't join the multicast groups, will see
only a small amount of IGMP activity (plus any pings to 224.0.0.1).

In other words, forwarding local multicast traffic to a ``small group''
of local is exactly what IPmulticast does. The multicast packets
do go by each and every machine on your departmental network.
The machines not participating in the multicast session ignore
those packets, just as they ignore unicast packets to other
hosts on the shared network.  Perhpas you're confusing multicast and 
broadcast?

Lastly, under no circumstances should you be changing the unicast
routing policy (e.g,. /etc/mygate) on the endpoint hosts to which you
want multicast connectivity.  Multicast routing is based on explicit
group joins.  These group joins, and leaves, are sent on the local
network via IGMP.  It's then up to the local multicast routers to
forward multicast packets accordingly.   This has nothing to do
with the unicast routing tables of individual multicast end-hosts
(e.g., the default router) on your local net.