How to configure a tunnel

Masaki Hirabaru masaki@merit.edu
Thu, 25 Jul 1996 19:14:17 -0400


6bone folks,

Bernard Tuy writes,
> |   automatic tunneling. I next tried to check freebsd INRIA version,
> |   which supports automatic tunneling, but I'm not sure if it
> |   supports configured tunneling.
> 
> ====BT: Yes it does! since we -G6/France- and some others right now are
> 	running it for that purpose.

After exchanging a couple of messages with Francis Dupont, we
finally found that one file (netinet/in.c) had been missing in
the released package of INRIA ipv6 for freebsd. It was very tiny
modification, but confused me. I attached a diff based on
Francis's information.

So, Merit has become completely ready for making a tunnel to
6bone now. I'm waiting.

For making a private (non-routable) ipv6 testing prefix for the
private part of Merit ipv6 testbed network, we may use one of
private AS numbers.

FYI: Here is our /etc/rc.ipv6 on a INRIA ipv6 freebsd machine.
Plese note if you have more than two interfaces, you have to add
"options MULTI_HOMED" and "pseudo-device llink" in your kernel
configuration in this release. And also, in order to use lnc and
ep devices under ipv6, you have to modify these driver source
codes.

#! /bin/sh
autoconf6 -v
ifconfig lnc0 inet6 5f00:ed00:c66c:3c00::153 prefixlen 80 alias
ifconfig lnc0 inet6 first 5f00:ed00:c66c:3c00::153 prefixlen 80
ifconfig ep0 inet6 5f00:ed00:c0a8:0c00::153/80 prefixlen 80 alias
ifconfig ep0 inet6 first 5f00:ed00:c0a8:0c00::153/80 prefixlen 80
sysctl -w net.inet6.ipv6.forwarding=1
ndpd-router
route -n add -inet6 -net 5f00:ed00:c0a8:0a00::/80 ::192.168.10.103

The last line is making a configured tunnel to 192.168.10.103
which is on 5f00:ed00:c0a8:0a00::/80.

Masaki Hirabaru
Merit

*** in.c.orig   Sat Jul 22 23:38:11 1995
--- in.c        Wed Jul 24 15:10:35 1996
***************
*** 209,220 ****
--- 209,222 ----
                                    ifra->ifra_addr.sin_addr.s_addr)
                                        break;
                        }
+ #ifndef INET6
                        if ((ifp->if_flags & IFF_POINTOPOINT)
                            && (cmd == SIOCAIFADDR)
                            &&
(ifra->ifra_dstaddr.sin_addr.s_addr
                                == INADDR_ANY)) {
                                return EDESTADDRREQ;
                        }
+ #endif
                }
                if (cmd == SIOCDIFADDR && ia == 0)
                        return (EADDRNOTAVAIL);