如何配置 Linux ipv6 6RD隧道


如何使用 Linux 6RD

©2010-2011 Nathan Lutchansky,保留所有权利

最后修改日期:2011-01-23

介绍


本文描述如何在Linux上安装基本的6RD支持,主要是针对Ubuntu 10.04。网络接口和路由设置必须手动完成:如果你不熟悉手动配置IPv6,请不要尝试。 这些说明不适用于IPv6或Linux新手!

什么是6RD?


IPv6快速部署IPv4基础设施(简称 6RD)是IETF最近标准化的自动隧道机制,允许ISP轻松地在现有IPv4网络上部署IPv6网络。家庭路由器可以使用ISP分配的IPv4地址和在DHCPv4 6RD选项中接收的一组静态配置参数 为LAN侧子网分配IPv6前缀,并通过IPv6-in-IPv4隧道配置到ISP的6RD边界的默认路由。

这种机制很容易扩展到大量的客户,因为ISP的6RD边界路由器和DHCPv4服务器都不需要手动配置每个6RD客户。

使用6RD的条件是什么?

首先,你的ISP必须提供6RD连接。在撰写本文时,只有少数互联网服务提供商部署了6RD,最突出的是在一个受控试验中部署6RD的康卡斯特。


第二,你的家庭路由器必须支持6RD,大多数情况并不支持。如果你有一个独立的无线路由器,如Linksys,D-Link生产的,你可以尝试谷歌搜索看看你的路由器是否支持6RD。

如果你的路由器使用标准Linux系统,它的内核版本必须不低于2.6.33, 并且需要 启用CONFIG_IPV6_SIT_6RD内核选项,以及iproute2版本不低于2.6.33(ss100224)。

检查你的内核是否支持6RD,运行:
$ grep 6RD /boot/config-$(uname -r)
CONFIG_IPV6_SIT_6RD=y
$

如果grep返回CONFIG_IPV6_SIT_6RD = y,那么你的内核支持6RD。如果没有得到结果或者显示“CONFIG_IPV6_SIT_6RD is not set”,那么你的内核不支持6RD。

要检查iproute2是否支持6RD,请运行:

$ ip tunnel help
Usage: ip tunnel { add | change | del | show | prl | 6rd } [ NAME ]
          [ mode { ipip | gre | sit | isatap } ] [ remote ADDR ] [ local ADDR ]
...

如果6rd显示在第一行,那么你的iproute2支持6RD。

如果你正在运行Ubuntu 10.04(Lucid),你的内核和iproute2都太旧了,所以你需要安装Maverick的反向运行Lucid版本。Maverick内核可以作为一个可选的包从官方Lucid来更新存储库,并且Maverick iproute2可以从 my iproute ppa安装

可以按照以下步骤安装这些软件包:

# add-apt-repository ppa:nathan-launchpad/iproute-lucid-ppa
# apt-get update
# apt-get install iproute linux-headers-generic-lts-backport-maverick linux-image-generic-lts-backport-maverick

运行add-apt-repository可能会提示你安装python-software-properties,安装便是。安装完这些软件包后,你需要重启系统,这时你就可以开始使用新的内核了。

如何启用6RD?

如果你使用的支持6RD的独立路由器设备,很可能你已经在使用6RD了!毕竟,6RD要做的事情就是不需要用户的做任何手动配置。请检查 我们的首页查看你是否已经使用IPv6网络连接到了这个web服务器。如果没有,你需要联系你的ISP或在其他地方来寻求帮助。

要在标准Linux系统上启用6RD,首先需要获取ISP的6RD参数。(Comcast用户可以从Comcast 6RD页面获取此信息。)将需要6RD前缀和6RD边界路由器的IPv4地址。如果的ISP不直接向提供这些,需要修改的DHCP客户端以显示DHCP 6RD 选项的内容,如下所示:

[TBD - 安装向导 this dhclient script ]

获得6RD参数后,你就可以确定代理的前缀。这个前缀将会用于本地网络的IPv6地址。

代理前缀是通过ISP分配的IPv4地址和到6RD前缀来构造的。例如,如果ISP分配的6RD前缀是 2001:db8::/32 ,分配的IPv4地址是192.0.2.100,并且的家庭网络连接到路由器的eth0接口,那么将配置路由器的LAN地址如下:

# printf "%02x%02x:%02x%02x\n" 192 0 2 100
c000:0264
# ip addr add 2001:db8:c000:0264::1/64 dev eth0
#

接下来,你将需要启动6RD隧道接口。假设你的ISP的6RD边界路由器地址是1.2.3.4:

# ip tunnel add 6rd mode sit local 192.0.2.100 ttl 64
# ip tunnel 6rd dev 6rd 6rd-prefix 2001:db8::/32
# ip addr add 2001:db8:c000:0264::1/32 dev 6rd
# ip link set 6rd up
# ip route add ::/0 via ::1.2.3.4 dev 6rd
#

就是这样搞!你的边界路由器现在应该可以ping IPv6地址了,如ipv6.google.com。

现在你可以进行radvd,ip6tables或其他与IPv6网络相关的配置了。

原文:http://www.litech.org/6rd/

你可能感兴趣的:(linux,ipv6)