Re: ISSUE: Linux bug/restriction prevents multicast participation

From: Andi Kleen (ak@suse.de)
Date: Thu Sep 14 2000 - 05:02:37 EST


On Thu, Sep 14, 2000 at 12:40:01AM -0700, Matthew Delco wrote:
> Bug report form (as suggested by the old mailing list FAQ)
> ----------------------------------------------------------
>
> Summary: A bug/misguided restriction in Linux prevents users from
> participating in certain multicast video sessions.
>
> Full description: Multicast standards prescribe that the port range
> 49152-65535 be used for video traffic. From my observations, Linux does not

Sounds like a bug in the protocols. Why this restriction?

> Other notes, patches, fixes, workarounds: No external solution is available,
> since sessions are announced using automated tools (SDR) on various OSes,
> and it's unreasonable to force users to recompile and run a hacked kernel to
> use multicast or run programs such as vic/vat as setuid root (assuming
> there's a way for root to get around this restriction, which I'm not sure is
> possible).

The workaround is to not enable CONFIG_IP_MASQUERADE in the kernel
configuration. 2.4 also does not have the problem. Here is a patch against
2.2.17. I'll submit it for 2.2.18.

--- linux-work/net/ipv4/af_inet.c-MC Sun Jul 30 02:04:11 2000
+++ linux-work/net/ipv4/af_inet.c Thu Sep 14 11:51:39 2000
@@ -538,7 +538,8 @@
         snum = ntohs(addr->sin_port);
 #ifdef CONFIG_IP_MASQUERADE
         /* The kernel masquerader needs some ports. */
- if((snum >= PORT_MASQ_BEGIN) && (snum <= PORT_MASQ_END))
+ if((snum >= PORT_MASQ_BEGIN) && (snum <= PORT_MASQ_END) &&
+ chk_addr_ret != RTN_MULTICAST)
                 return -EADDRINUSE;
 #endif
         if (snum && snum < PROT_SOCK && !capable(CAP_NET_BIND_SERVICE))

-Andi
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Fri Sep 15 2000 - 21:00:23 EST