Subject: Re: New gre interface
To: None <tech-net@netbsd.org>
From: Hubert Feyrer <hubert.feyrer@rz.uni-regensburg.de>
List: tech-net
Date: 09/18/1998 10:20:58
Hi Heiko

Du solltest das an netbsd-announce@netbsd.org schicken.


 - Hubert

In article <19980913224613.10331@pilhuhn.de> you wrote:
> Hi,
> 
> I just commited gre(4) and greconfig(8)
> 
> I attached the readme below.
> 
> Have fun ;-)
> 
>    Heiko
> 
> 
> $Id: README.gre,v 1.4 1998/08/18 19:58:50 hwr Exp hwr $
> ---------------------------------------------------------------------------
>                       A GRE Tunnel for NetBSD
> 
>                               Heiko W.Rupp
>                             <hwr@pilhuhn.de>
> 
> This is a very alpha implementation of GRE packet encapsulation.
> Generic Route Encapsulation (GRE) is described in RFC 1701 and 1702.
> The interface also supports IPIP (protocol 4) encapsulation,
> as described in RFC 2003 but default is GRE mode.
> 
> Basically GRE allows to tunnel not only IP over IP, but also provides
> for other protocols like Appletalk etc. Cisco routers do their multicast
> tunnels over GRE (1). The hope is, that with GRE encapsulation, a method
> is found to encapsulate all other protocols with one mechanism and reduce
> the need for own tunneling in ip_mroute etc.
> 
> This implementation is (as said) still alpha, but works for me.
> Successful testing has been done for GRE encapsulation with Cisco routers
> and NetBSD boxes as remote and with Cisco routers and Linux 2.0.35 for
> IPIP encapsulation.
> 
> The files:
> 
>    net/if_gre.[ch]    : output interface, encapsulates packets.
>    netinet/ip_gre.[ch]: input part, deencapsulates packets. Is IP only
>                         at the moment and only supports GRE without options.
>    netinet/in.h       : Addition of IPPROTO_GRE
>    netinet/in_proto.c : Addition of protocol switch for GRE , additional
>                         protocol switch for IPIP, when MROUTING is not
>                         defined.
>    conf/files         : mention new files for GRE
>    greconfig.c        : Utility to set/display tunnel endpoints / mode.
>    greconfig.8        : Manpage for greconfig.
>    gre.4              : Documentation of driver plus example.
> 
> 
> Installation:
>  
>    On NetBSD: add "pseudo-device gre <n>"
>    to your kernel config file with <n> being the number of tunnel interfaces
>    you want. Then recompile and install the new kernel.
>  
>    Also compile greconfig.c:  cc -o greconfig greconfig.c
>    Grectl is used to set/display tunnel endpoints. In case when IP is
>    encapsulated, this is not needed, but e.g. in the AppleTalk over IP
>    case.
> 
> Todos/Bugs:
>   Support other protocols for encapsulation
> 
>   The compute_route() code in if_gre.c toggles the last bit of the
>   IP-address to provoke the search for a less specific route than the
>   one directly over the tunnel to prevent loops. This is possibly not
>   the best solution.
> 
>   GRE RFC not yet fully implemented (no GRE options), no other protocols
>   yet than IP over IP.
>   RFC 2003 also not yet fully supportet wrt. options etc.
> 
>   Code quality is surely not best and possibly not near anything like KNF
> 
>   Traceroute does not work yet over the tunnel :(
> 
>   BPF does probably not yet work (it might, but last time I looked, 
>   it bombed, so I #if 0'd it out). And also only in outgoing
>   direction.
> 
> ---------------------------------------------------------------------------
> 
> (1) tunnels that end on a mrouted have tunnel mode DVMRP set
> 
> -- 
>           See <a href="http://www.netbsd.org">NetBSD</a> for a multiplatform OS
> Nicht hupen - pilhuhn traeumt von neg
> 

-- 
Hubert Feyrer <hubert.feyrer@rz.uni-regensburg.de>