'ipv6' type in /etc/protocols ?

John Hay jhay at icomtek.csir.co.za
Wed Jan 14 01:58:33 PST 2004


On Wed, Jan 14, 2004 at 01:29:13AM -0800, Luigi Rizzo wrote:
> hi,
> in implementing ipv6 support for ipfw2, i hit the following
> problem: /etc/protocols has an entry:
> 
> 	ipv6    41      IPV6            # ipv6
> 
> which is somewhat confusing for the parser -- if you
> type something like
> 
> 	ipfw add allow ipv6 from foo to bar
> 
> the "ipv6" will match in the call to getprotobyname() and
> the above will be translated into a rule that matches packets with
> ip->ip_proto == 41 (6 is TCP, 17 is UDP, etc.), while i presume
> that what one would really want with the above notation is to
> match IPv6 packets, i.e.
> 
>   + layer2 packets with mac-type 0x86dd (ipv6)
>   + layer3 packets with ip->ip_v == 6
> 
> Now, i can put a special case for the keyword 'ipv6', but
> I wonder, what do we do with ip->ip_proto == 41 ? Does it
> make sense to handle this request ? And in this case,
> what name do we use for it to avoid conflicts ?
> Looking at /sys/netinet/in.h, it appears that
> ip_proto == 4 and 41 refer to encapsulations of ipv4 and ipv6
> into ip...

That is used when transporting IPv6 packets over parts of the network
that doesn't have native IPv6 support. It is used when configuring a
gif(4) tunnel for instance:

ifconfig gif0
gif0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1280
        tunnel inet xxx.xx.8.68 --> xxx.xx.223.30
        inet6 fe80::290:27ff:fe06:5b24%gif0 prefixlen 64 scopeid 0x5 

John
-- 
John Hay -- John.Hay at icomtek.csir.co.za / jhay at FreeBSD.org


More information about the freebsd-net mailing list