From owner-FreeBSD-tech-jp@jp.freebsd.org  Thu Jun 12 11:24:42 1997
Received: by jaz.jp.freebsd.org (8.8.5+2.7Wbeta5/8.7.3) id LAA06692
	Thu, 12 Jun 1997 11:24:42 +0900 (JST)
Received: by jaz.jp.freebsd.org (8.8.5+2.7Wbeta5/8.7.3) with ESMTP id LAA06679
	Thu, 12 Jun 1997 11:24:28 +0900 (JST)
From: candy@fct.kgc.co.jp
Received: from uucp1.iij.ad.jp (uucp1.iij.ad.jp [202.232.2.201]) by mail0.iij.ad.jp (8.8.5+2.7Wbeta5/3.5Wpl4-MAIL) with SMTP id LAA24005; Thu, 12 Jun 1997 11:24:27 +0900 (JST)
Received: (from uucp@localhost) by uucp1.iij.ad.jp (8.6.12+2.4W/3.3W9-UUCP) with UUCP id LAA03701; Thu, 12 Jun 1997 11:24:26 +0900
Received: from xxx.fct.kgc.co.jp by vvv.kgc.co.jp (8.8.5/3.5Wpl7:97050817) id LAA02060; Thu, 12 Jun 1997 11:11:08 +0900 (JST)
Received: from localhost by xxx.fct.kgc.co.jp (8.8.5/3.3W8:95062916) id LAA13527; Thu, 12 Jun 1997 11:11:08 +0900 (JST)
Message-Id: <199706120211.LAA13527@xxx.fct.kgc.co.jp>
To: FreeBSD-users-jp@jp.freebsd.org
cc: FreeBSD-tech-jp@jp.freebsd.org
In-reply-to: YANO's message of 12 Jun 1997 08:40:06 +0900
References: <199706112253.HAA15664@Postbox.BNN-Net.OR.JP>
X-Mailer: Mew version 1.69 on Emacs 19.28.2 / Mule 2.3
Content-Type: Text/Plain; charset=iso-2022-jp
Content-Transfer-Encoding: 7bit
Date: Thu, 12 Jun 1997 11:11:07 +0900
Reply-To: FreeBSD-tech-jp@jp.freebsd.org
Precedence: bulk
X-Distribute: distribute [version 2.1 (Alpha) patchlevel=19]
X-Sequence: FreeBSD-tech-jp 265
Subject: [FreeBSD-tech-jp 265] How to forward broadcasts? (was Re: iij-ppp TunelDevice Netmask)
Errors-To: owner-FreeBSD-tech-jp@jp.freebsd.org
Sender: owner-FreeBSD-tech-jp@jp.freebsd.org

FreeBSD-tech-jp $B$K(B Cc: $B$7$D$D!"JX>h<ALd$G$9!#(B

> $B!!(#(!(!(!(!(!(!(!(!($(B
> $B!!("(BPPP-Client Win95$B("(B
> $B!!("(BIP Address$B!!!!!!("(B
> $B!!("(B***.***.178.28$B!!("!!!!!!!!!!(#(!(!(!($(B
> $B!!("(BNetmask $B!!!!!!!!('(!(!(!(!(!()(BModem $B("(B
> $B!!("(B***.***.255.192 $B("!!!!!!!!!!(&(!(!(!(%(B
> $B!!(&(!(!(!(!(!(!(!(!(%!!!!!!!!!!!!!!!?(B
> $B!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!?(B
> $B!!(#(!(!(!(!(!(!(!(!($!!!!!!!!!!!!!!!?(B
> $B!!("(BPPP-Server$B!!!!!!("!!!!!!!!!!(#(!(!(!($(B
> $B!!("(BIP Address$B!!!!!!('(!(!(!(!(!()(BModem $B("(B
> $B!!("(B***.***.178.62$B!!("(Btun0  $B!!!!(&(!(!(!(%(B
> $B!!("(BNetmask $B!!!!!!!!("(B
> $B!!("(B***.***.255.192 $B("(B
> $B!!(&(!(!(!(((!(!(!(!(%(B
> $B(!(!(!(!(!(*(!(!(!(!(!(!(BNetwork ***.***.178.0
>                         Netmask 255.255.255.192
                       (broadcast ***.***.178.63)

> $B$&!<$`!"(BPPP$B%5!<%P!<B&$N%M%C%H%^%9%/$r$A$c$s$H;XDj$7$F$b!"$&$^(B
> $B$/9T$+$J$$%"%W%j%1!<%7%g%s$,$"$j$^$9$M!#(B
> $B<B$O!"$=$N$&$^$/9T$C$F$$$J$$%"%W%j%1!<%7%g%s$H$O!"(Bipmsg$B$H$$$&(B
> $B$b$N$J$N$G$9!J<B$O!"$=$l$rF0$+$7$?$$$@$1$J$s$G$9$h(B...$B!#!K(B

$B$3$3$G$NLdBj$O!"$*$=$i$/(B FreeBSD box $B$,<+J,08$N(B broadcast packet $B$r%U%)(B
$B%o!<%I(B(?)$B$7$J$$;v$,860x$@$H;W$$$^$9!D(B

- Ethernet $B$KN.$l$k(B *.*.178.63 $B08$N(B broadcast $B$,(B tun0 $B$K=P$F9T$+$J$$!#(B
- tun0 $B$+$iF~$C$?(B *.*.178.63 $B08$N(B broadcast $B$,(B Ethernet $B$K=P$F9T$+$J$$!#(B
- $B$?$@$7%f%K%-%c%9%H$O$A$c$s$H%U%)%o!<%I$5$l$k!#(B

$B$H$$$&;v$G$9$h$M(B? $B$3$J$$$@<B83$7$^$7$?$,!"$3$l$O(B Ethernet $B4V$N%k!<%?$H(B
$B$7$F;H$C$?>l9g$G$bF1MM$G$7$?!#$G!"<ALd$J$N$G$9$,!"(B

if0, if1 $B$,(B BROADCAST $B$N%M%C%H%o!<%/%$%s%?!<%U%'!<%9$@$H$7$F!"(B
 - if0 $B$+$iF~$C$?(B if1 $B$N(B broadcast address $B08$N%Q%1%C%H$r(B
   if1 $B$K%U%)%o!<%I$7$F!"(B
 - $B$+$D<+J,(B(FreeBSD)$B$O!"$=$N%Q%1%C%H$r$?$@0lEY$@$1=hM}$9$k!#(B

$B$H$$$&6q9g$K$7$?$$$N$G$9$,!"$I$3$r$I$&$$$8$l$PNI$$$N$G$7$g$&(B?

$B$A$g$C$H(B FreeBSD 2.2.1 $B$N%=!<%9$rD/$a$?$N$G$9$,!"%Q%1%C%H%U%)%o!<%I$9(B
$B$k!&$7$J$$$O(B /usr/src/sys/netinet/ip_input.c $B$N(B ip_input()$B$"$?$j$GH=Dj(B
$B$5$l$k$h$&$G$9!#(B

void
ip_input(struct mbuf *m)
{
[snip1]
		if (IA_SIN(ia)->sin_addr.s_addr == ip->ip_dst.s_addr)
			goto ours;
		if (ia->ia_ifp && ia->ia_ifp->if_flags & IFF_BROADCAST) {
			if (satosin(&ia->ia_broadaddr)->sin_addr.s_addr ==
			    ip->ip_dst.s_addr)
				goto ours;
			if (ip->ip_dst.s_addr == ia->ia_netbroadcast.s_addr)
				goto ours;
		}
[snip2]
	if (ipforwarding == 0) {
		ipstat.ips_cantforward++;
		m_freem(m);
	} else
		ip_forward(m, 0);
	return;

ours:


$B$3$3$G(B 2 $BHVL\$+(B 3 $BHVL\$N(B goto ours; $B$r(B
	if (ipforwarding != 0)
		ip_forward(m, 0);
	goto ours;

$B$_$?$$$J46$8$K$9$l$PNI$$$N$G$7$g$&$+(B? $BC1$K(B ip_forward() $B$7$?$@$1$G$O!"(B
$B$=$N%Q%1%C%H$r$^$?=&$C$F!"$^$?(B ip_forward() $B$7$F!D!D$H!"L58B%k!<%W$K$J(B
$B$j$=$&$G$9!#(B

$B?@EDIR9-(B <candy@fct.kgc.co.jp>
