From owner-FreeBSD-users-jp@jp.freebsd.org  Fri Jun 13 02:46:44 1997
Received: by jaz.jp.freebsd.org (8.8.5+2.7Wbeta5/8.7.3) id CAA28390
	Fri, 13 Jun 1997 02:46:44 +0900 (JST)
Received: by jaz.jp.freebsd.org (8.8.5+2.7Wbeta5/8.7.3) with ESMTP id CAA28385
	Fri, 13 Jun 1997 02:46:30 +0900 (JST)
Received: from bimota.imada.math.human.nagoya-u.ac.jp (koji@bimota.imada.math.human.nagoya-u.ac.jp [133.6.251.3]) by bimota.imada.math.human.nagoya-u.ac.jp (8.8.5/3.4W2) with ESMTP id CAA03431; Fri, 13 Jun 1997 02:45:32 +0900 (JST)
Message-Id: <199706121745.CAA03431@bimota.imada.math.human.nagoya-u.ac.jp>
To: FreeBSD-tech-jp@jp.freebsd.org, takayuki@moon.trad.pfu.co.jp
Cc: FreeBSD-users-jp@jp.freebsd.org
From: Koji Imada - je4owb/2 <koji@math.human.nagoya-u.ac.jp>
In-Reply-To: Your message of "Thu, 12 Jun 1997 11:50:06 +0900"
References: <199706120250.LAA00828@moon.trad.pfu.co.jp>
X-Mailer: Mew version 1.54 on Emacs 19.28.3, Mule 2.3
Mime-Version: 1.0
Content-Type: Text/Plain; charset=iso-2022-jp
Content-Transfer-Encoding: 7bit
Date: Fri, 13 Jun 1997 02:45:25 +0900
Reply-To: FreeBSD-users-jp@jp.freebsd.org
Precedence: bulk
X-Distribute: distribute [version 2.1 (Alpha) patchlevel=19]
X-Sequence: FreeBSD-users-jp 14129
Subject: [FreeBSD-users-jp 14129] Re: [FreeBSD-tech-jp 266] Re: How to forward broadcasts? (was Re: iij-pppTunelDevice
	 Netmask) 
Errors-To: owner-FreeBSD-users-jp@jp.freebsd.org
Sender: owner-FreeBSD-users-jp@jp.freebsd.org

$B:#ED!wL>8E20Bg3X$G$9!#(B

>>>>> "candy" == candy  <candy@fct.kgc.co.jp> writes:

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

$B$9$$$^$;$s!"(BFreeBSD-users-jp $B$K$OF~$C$F$J$$$N$G7P0^$,$o$+$j$^$;$s$,!#(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
 candy>                        (broadcast ***.***.178.63)

$B$3$l$C$F(B ***.***.178.62 $B$N(B tun0 $B$N(B address $B$O2?$G$7$g$&!)(B $B$=$b$=$b(B 
***.***.178.62 $B$G(B proxy arp $B$9$k$+(B host route $B$r;XDj$7$J$$$H(B 
***.***.178.0 $B$N(B network $B$+$i$O(B ***.***.178.28 $B$K(B IP datagram $B$rAw$l$J(B
$B$$$h$&$K8+$($^$9!#(B

$B$D$^$j(B ***.***.178.0 $B$N(B network $B$KD>@\7Q$C$F$J$$$N$K(B modem $B$N8~$&B&$N(B 
host $B$K(B ***.***.178.28 $B$H$$$&(B IP address $B$,@_Dj$5$l$F$k$N$,IT<+A3$G$9!#(B

$B!t(Btun0 $B$N(B IP address $B$O2?$@$m$&!)(B

bridging $B$7$F$k$J$iJL$G$9$,!#0J2<$G$O(B ***.***.178.28 $B$H(B ***.***.178.62 
$B$O(B point to point $B$G7k$P$l$F$k$b$N$H$7$^$9(B(bridge $B$G$O$J$$(B)$B!#(B

$B7kO@$+$i$$$&$H(B ***.***.178.28 $B$,(B point to point $B$G(B ***.***.178.62 $B$H7Q$C(B
$B$F$$$k$J$i!"$b$7(B ***.***.178.62 $B$,(B ***.***.178.63 $B$rE>Aw$7$F$/$l$F$b<u(B
$B$1<h$l$^$;$s!#(Bpoint to point link $B$G$O(B netmask $B$O$"$s$^$j;E;v$7$F$J$$(B
$B$7!"(Bbroadcast address $B$K;j$C$F$OB8:_$7$J$$$N$G!#(B

 >> $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

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

$B$3$l$O(B limited broadcast(255.255.255.255) $B$O(B forward $B$7$J$$$,@52r$G(B 
directly connected network $B$N(B directed broadcast(host part $B$,(B all 1) 
$B$O$I$&$9$k$+$C$A$e$&OC$K$J$k$H;W$&$N$G$9$,!#(B

$B$3$l$b$d$d$3$7$$$N$GL@3N$K$9$k$H$3$N>l9g$N(B ***.***.178.63 $B$O(B subnet
directed broadcast $B$J$N$G!"0J2<(B subnet directed broadcast $B$K$D$$$F8@5Z(B
$B$7$^$9!#(B

$B$3$l$O(B ***.***.178.0 $B0J30$N(B interface $B$+$iMh$?>l9g$O(B(link layer
broadcast $B$H$7$F(B)$BE>Aw$9$k$N$,@52r(B(4.4BSD $B$G$O!"E>Aw$9$k;~$K(B subnet
directed broadcast $B$H$7$FH=CG$5$l$l$P(B loopback $B$7$F<+J,<+?H$K$b(B copy 
$B$5$l$k(B)$B!#(B

$B5U$K(B ***.***.178.0 $B$N(B interface $B$+$iMh$?(B subnet directed broadcast $B$O(B
$BC1$K<+J,08$H$_$J$7$F<u$1<h$k$@$1$G$$$$$G$9!#$@$C$F(B subnet $B$O(B 
***.***.178.0 $B$J$s$@$+$i$=$3$+$iMh$?(B subnet directed broadcast $B$rE>Aw(B
$B$9$kI,MW$O$J$$$O$:$G$9!#(B

$B!t$A$J$_$K(B all subnet directed broadcast $B$O$I$A$i$N>l9g$bE>Aw$7$J$1$l(B
$B!t$P$J$j$^$;$s$,!"$=$&<BAu$5$l$F$k(B router $B$O>/$J$$$O$:$@$7!"(B4.4BSD $B$G(B
$B!t$O<BAu$5$l$F$^$;$s!#(B

$B$G!"(BFreeBSD 2.2.1R $B$N>l9g$G$9$,!"(B

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

$B$3$l$,4{$K$*$+$7$$Lu$G(B source $B$r8+$k$H$3$NJU$N(B check $B$,>JN,$5$l$F$$$^(B
$B$7$?!#$D$^$j$I$l$+$N(B interface $B$N(B directed broadcast $B$,$I$N(B interface 
$B$+$iMh$F$bC1$K<+J,$G!"<u$1<h$k$@$1$GE>Aw$7$^$;$s!#(B

$B$3$l$O(B rfc1812 $B$K=q$$$F$"$kF0:n$H0c$&5$$,$7$^$9!#(B4.4BSD $B$+$i$bJQ99$5$l(B
$B$F$^$9$M!#(B

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

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

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

$B$3$l$@$1(B(if0 $B$H(B if1 $B$N(B network address $B$,0c$&$N$OBgA0Ds(B)$B$J$i!"(B4.4BSD 
$B$N(B code $B$KLa$;$PNI$$$N$G$O!)(B NetBSD $B$O(B rfc1812 $B$G?d>)$5$l$F$k$h$&$K$3(B
$B$N5!G=$N(B enable/disable $B$b=PMh$k$h$&$K$J$C$F$k$N$G$=$C$A$r;2>H$9$l$P$h(B
$B$$$G$7$g$&!#(B

$B$A$e!<Lu$G:G8e$K<jH4$-(B version $B$N(B diff $B$D$1$H$-$^$9!#(B

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

$B$A$e!<Lu$G85$N(B 4.4BSD $B$N<BAu$O$3$C$A$rMxMQ$7$F$F!"(Bdirected broadcast 
$B$NF~$C$F$-$?(B interface $B$r(B check $B$7$F(B forward $B$7$J$$$J$i$=$N$^$^<u$1<h(B
$B$j!"(Bforward $B$9$k;~$O!"E>Aw;~$N(B loopback $B$G<+J,$K$b<u$1<h$i$;$F$^$9!#(B

>>>>> "|" == SAKUMA takayuki <takayuki@moon.trad.pfu.co.jp> writes:

 |> ip_forword()$B$N@h$H!$(Bgoto ours$B$N@h$G$=$l$>$l(Bmbuf$B$N2rJ|$,F~$k$G$7$g$&$+$i(B
 |> $B$=$3$@$19M$($l$P(B m_copym() $B$G%3%T!<$7$F$"$2$J$$$H$$$1$J$$$H;W$$$^$9!%(B

$B8f0U!#(B

 |> # $B$G$b!$(Bm_copym()$B$C$F!$<:GT$9$k$H85$N(Bmbuf$B$b2rJ|$7$F$7$^$&$+$i(B
 |> # $B$=$N%(%i!<=hM}$b9M$($J$-$c$J$i$s$G$9$M!%(B

$B$"$l!)(B FreeBSD 2.2.1 $B$N(B source(sys/kern/uipc_mbuf.c) $B$r8+$?8B$j$G$O$s(B
$B$J;v$J$$$G$9$1$I!#(Bnospace: $B$G(B m_freem $B$7$F$k$N$O?7$?$K3NJ]$7$?(B mbuf $B$N(B
$BJ}$G(B original $B$O$=$N$^$^$N$O$:$G$9!#6&M-$7$F$$$k(B mbuf cluster $B$NJ}$O(B 
copy $B$NCJ3,$GA}$d$7$?(B reference $B$r8:$i$7$F85DL$j$J$@$1$N$O$:$G$9!#(B

 |> $B$3$3$G(Bforward$B$7$?$H$7$F$b!$(Bifnet$B9=B$BN$N(BIFF_SIMPLEX$B%U%i%0$N0U?^$r9M$($k$H(B
 |> $B%k!<%W$OH/@8$7$F$7$^$&$+$b!%(Bchip$B$,<+?H$,H/9T$9$k(Bbroadcast packet$B$r<u?.(B
 |> $B$G$-$J$/$F$b!$$A$c$s$HFbIt@^$jJV$7$7$F$^$9$b$N$M!%(B

$B>.:Y9)$9$l$PIT2D$8$c$J$$$G$9$,!"?@ED$5$s$NMQES$@$HI,MW$J$$$G$9!#(B

--- start here ---
*** ip_input.c.orig	Fri Jun 13 02:29:53 1997
--- ip_input.c	Fri Jun 13 02:31:58 1997
***************
*** 365,371 ****
  
  		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;
--- 365,372 ----
  
  		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 &&
! 		    ia->ia_ifp == m->m_pkthdr.rcvif) {
  			if (satosin(&ia->ia_broadaddr)->sin_addr.s_addr ==
  			    ip->ip_dst.s_addr)
  				goto ours;
--- end here -----
--
   $B:#ED(B $B9(;J(B $B!J$$$^$@(B $B$3$&$8!K(Bje4owb/2 koji@math.human.nagoya-u.ac.jp
    $BL>8E20Bg3XBg3X1!?M4V>pJs3X8&5f2J(B $BJ*<A!"@8L?>pJs3X@l96>pJs4pACO@(B
          http://www.math.human.nagoya-u.ac.jp/~koji/
  PGP Key fingerprint: 9B E6 BA E5 CA CE 06 C2  B6 3D 95 1E 38 47 17 B8
