gif(7P)
gif - Generic tunnel interface
Showing IRIX 6.5.30 (default release). Added in IRIX 6.5.19.
NAME gif - Generic tunnel interface SYNOPSIS pseudo-device gif [count] DESCRIPTION The gif interface is a generic tunnelling pseudo device for IPv4 and IPv6. It can tunnel IPv[46] traffic over IPv[46]. Therefore, there can be four possible configurations. The behavior of gif is mainly based on RFC1933 IPv6-over-IPv4 configured tunnel. To use gif, administrator needs to configure protocol and addresses used for the outer header. This can be done by using gifconfig(1), or SIOCSIFPHYADDR ioctl. Also, the administrator needs to configure protocol and addresses used for the inner header by using ifconfig(1). Note that IPv6 link-local address (those start with fe80::) will be automatically configured whenever possible. You may need to remove IPv6 link-local address manually using ifconfig(1), when you would like to disable the use of IPv6 as inner header (like when you need pure IPv4- over-IPv6 tunnel). Finally, use routing table to route the packets toward gif interface. gif interface can be configued to perform bidirectional tunnel, or multi-destination tunnel. This is controlled by IFF_LINK0 interface flag. Bidirectional and multi-destination mode Usually, gif implements bidirectional tunnel. gifconfig(1) should configure a tunnel ingress point (this node) and an egress point (tunnel endpoint), and one gif interface will tunnel to only a single tunnel endpoint, and accept from only a single tunnel endpoint. Source and destination address for outer IP header is always the ingress and the egress point configued by gifconfig(1). With IFF_LINK0 interface flag, gif can be configured to implement multi- destination tunnel. With IFF_LINK0, it is able to configure egress point to IPv4 wildcard address (0.0.0.0) or IPv6 unspecified address (0::0). In this case, destination address for the outer IP header is determined based on the routing table setup. Therefore, one gif interface can tunnel to multiple destinations. Also, gif will accept tunneled traffic from any outer source address. When finding a gif interface from the inbound tunneled traffic, bidirectional mode interface is preferred than multi-destination mode interface. For example, if you have the following three gif interfaces on node A, tunneled traffic from C to A will match the second gif interface, not the third one. o bidirectional, A to B o bidirectional, A to C o multi-destination, A to any Please note that multi-destination mode is far less secure than bidirectional mode. Multi-destination mode gif can accept tunneled packet from anybody, and can be attacked from a malicious node. Security Malicious party may try to circumvent security filters by using tunnelled packets. For better protection, gif performs martian filter and ingress filter against outer source address, on egress. Note that martian/ingress filters are no way complete. You may want to secure your node by using packet filters. As mentioned above, multi-destination mode (IFF_LINK0) is far less secure than bidirectional mode. SEE ALSO inet(7), inet6(7), gifconfig(1) R. Gilligan, and E. Nordmark, "Transition Mechanisms for IPv6 Hosts and Routers", RFC1933, April 1996, ftp://ftp.isi.edu/in-notes/rfc1933.txt. Sally Floyd, David L. Black, and K. K. Ramakrishnan, IPsec Interactions with ECN, December 1999, draft-ietf-ipsec-ecn-02.txt. HISTORY The gif device first appeared in WIDE hydrangea IPv6 kit. BUGS There are many tunnelling protocol specifications, defined differently from each other. gif may not interoperate with peers which are based on different specifications, and are picky about outer header fields. For example, you cannot usually use gif to talk with IPsec devices that use IPsec tunnel mode. The current code does not check if the ingress address (outer source address) configured to gif makes sense. Make sure to configure an address which belongs to your node. Otherwise, your node will not be able to receive packets from the peer, and your node will generate packets with a spoofed source address. gif(7) is an IFF_POINTOPOINT device, however, it supports NBMA behavior in multi-destination mode.