kern/103950: Broadcast packets are not forwarded
DEVILLE Damien
damien.deville at netasq.com
Tue Oct 3 08:40:29 PDT 2006
>Number: 103950
>Category: kern
>Synopsis: Broadcast packets are not forwarded
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Tue Oct 03 15:40:22 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator: DEVILLE Damien
>Release: FreeBSD 6.1-STABLE i386
>Organization:
NETASQ
>Environment:
System: FreeBSD darkstar.netasq.com 6.1-STABLE FreeBSD 6.1-STABLE #1: Thu May 11 11:43:31 CEST 2006 vanhu at darkstar.netasq.com:/home/vanhu/work/FreeBSD/src-RELENG6/sys/i386/compile/GENERIC.IPSEC i386
>Description:
On a FreeBSD gate, broadcasts received on an interface with a destination
belonging to another interface are not correctly forwarded because
IP_ALLOWBROADCAST is not set in ip_output() call from ip_forward().
>How-To-Repeat:
Set up a gate with 2 NICs (for example 192.168.1.0/24 and 192.168.2.0/24).
>From a host on 192.168.1.0/24, do a ping to 192.168.2.255.
The packet will go through ip_forward(), but will be dropped in
ip_output().
>Fix:
--- sys/netinet/ip_input.c.orig Fri Sep 29 11:35:14 2006
+++ sys/netinet/ip_input.c Fri Sep 29 11:35:22 2006
@@ -2006,7 +2006,7 @@
RTFREE(rt);
}
- error = ip_output(m, NULL, NULL, IP_FORWARDING, NULL, NULL);
+ error = ip_output(m, NULL, NULL, IP_FORWARDING|IP_ALLOWBROADCAST, NULL, NULL);
if (error)
ipstat.ips_cantforward++;
else {
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-bugs
mailing list