1. ">IPv6隧道
这是Linux隧道能力的另一个应用。这在IPv6的早期实现中非常流行。下面动手试验的例子当然不是实现IPv6隧道的唯一方法。然而,它却是在Linux与支持IPv6的CISCO路由器之间搭建隧道的常用方法,经验证明多数人都是照这样做的。八成也适合于你。
简单谈谈IPv6地址:
相对于IPv4地址而言, IPv6地址非常大,有128bit而不是32bit。这让我们得到了我们需要的东西——非常非常多的IP地址。确切地说,有340,282,266,920,938,463,463,374,607,431,768,211,465个。同时,IPv6(或者叫Ipng,下一代IP)还能让Internet上的骨干路由器的路由表变得更小、设备的配置更简单、IP层的安全性更好以及更好地支持QoS。
例如: 2002:836b:9820:0000:0000:0000:836b:9886
写下一个IPv6地址确实是件麻烦事。所以我们可以使用如下规则来进行简化 :
• 数字打头的零不要写,就像IPv4一样。
• 每16bit或者两个字节之间使用冒号分隔。
• 当出现很多连续的零时可简写成“::”。在一个地址中只能使用一次。
例如:地址2002:836b:9820:0000:0000:0000:836b:9886可以写成:2002:836b:9820::836b:9886,看上去更简单些。
另一个例子:地址3ffe:0000:0000:0000:0000:0020:34A1:F32C可以写成3ffe::20:34A1:F32C,要短得多。
IPv6将可能取代现有的IPv4。因为它采用了相对更新的技术,所以现在还没有全球范围的IPv6网络。为了能够平滑地过渡,引入了6bone计划。
IPv6网络中的站点通过现有的IPv4体系互联,把IPv6数据包封装在IPv4数据包中进行传输。
这就是为什么引入隧道机制的原因。
为了能够使用IPv6,我们需要一个能够支持它的内核。现在有很多文档都很好地说明了这个问题。不外乎以下几步:
• 找到一个新版的Linux发行版,要有合适的glibc库。
• 找到一份最新的内核源代码。
都准备好了以后,就可以继续编译一个带IPv6支持的内核了:
• cd /usr/src/linux
• make menuconfig
• 选择“Networking Options”
• 选择“The IPv6 protocol”、“IPv6: enable EUI-64 token format”, “IPv6: disable provider based addresses”
提示:不要编译成内核模块,那样经常会出问题。换句话说,就是把IPv6内置入内核。
然后你就可以象往常一样保存配置并编译内核了。
提示:在编译之前,可以修改一下Makefile,把EXTRAVERSION = -x变成EXTRAVERSION = -x-IPv6
有很多文档都很好地说明了如何编译并安装一个内核,我们这篇文档不是讨论这个问题的。如果你在这个过程中出现了问题,请参阅合适的资料。你可以先看看/usr/src/linux/README。
当你完成之后,用新的内核重启系统,你可以输入“/sbin/ifconfig -a”看看有没有新的“sit0-device”设备。SIT的意思是“简单Internet过渡”(Simple Internet Transition)。如果到这里没有问题,你就可以奖励自己了,你已经向着下一代IP网络迈进了一大步。
现在继续下一步。你需要把你的主机,或甚至整个局域网连接到另外一个IPv6网络上。这个网络很可能是“6bone”,它就是为了这个特定的目的而专门设立的。