6to4

6to4是一种IPv6转换传输机制，是将IPv6的数据包直接封装在IPv4的数据包中，并通过内嵌于IPv6地址的IPv4地址信息实现无需显式配置隧道就可以直接在IPv4网络上传输。同时一种特殊配置的中继路由允许其能与原生IPv6网络进行通信。

在从纯IPv4网络完全过渡到纯IPv6网络完全部署前，6to4技术尤其重要，因为这请求主机和目标主机之间都不需要IPv6网络支持，但是这是一种过渡性的转换传输机制，并不意味永久使用。

6to4可以使用在一台单独主机上，或一个本地网络上。如果是单独主机的话，则该主机需要一个非专用的公开IPv4地址，并且实现对IPv6数据包装解封，如果这台主机是服务于本地网并能转发本地网络其他主机的通信，则其作为该IPv6本地网络的路由器。

6to4不利于仅支持IPv4的主机和仅支持IPv6的主机之间的互操作。 6to4只是一个透明机制，用作IPv6节点之间的传输层。

由于大量主机配置错误和性能较差，2011年8月发布了应如何部署6to4的建议。 - Advisory Guidelines for 6to4 Deployment由于6to4的任播前缀操作问题无法解决，该部分标准在2015年已弃用。 - Deprecating the Anycast Prefix for 6to4 Relay Routers

运作方法
6to4解决了以下三个功能：
 如何一个公共IPv4地址去为一台独立主机或本地网络申请一个IPv6网络前缀。
 使用6in4的数据包封装机制封装IPv6数据包。
 如何与6to4网络和纯IPv6网络的网络流量路由。
地址块申请
6to4定义了一个网络前缀2002::/16用于表达这是一个6to4网络整体，任何一个公共IPv4地址将地址的十六进制值加在6to4网络前缀之后，从而产生一个前缀数为48的相应IPv4的6to4子网的网络前缀，而且其仍然可以继续分割至最小前缀数为64的子网段用于区分出这个6to4子网的子网。另外，所定义的专用网络地址不能用于6to4子网的申请，因为通信回应时无法将按照IPv4专用网络地址送回发起处。

例如，IPv4地址192.0.2.4能够申请到2002:c000:0204::/48网络前缀（c000:0204为192.0.2.4的十六进制值），而48到64之间还有16位的地址空间可用于再划分更小的子网。

封装与传输
6to4的封装是使用6in4的封装，将IPv6的数据包直接跟接着IPv4的数据包头，并且IPv4数据包的协议号为41。IPv4数据包的源地址是派生自封装的IPv6数据包源地址中的内嵌IPv4地址，而目的地址则根据封装的IPv6数据包目的地址而不同。这些6to4的IPv4数据包如普通的IPv4一样在IPv4网络中路由转发。

与6to4网络和纯IPv6之间的路由
为了使6to4网络的主机或网络能够与其他“原生”IPv6网络通信，这需要到“中继路由器（relay routers）”。这些路由器连接着IPv4和IPv6网络，会在IPv6网络对2002::/16进行路由宣告以使其他IPv6网络的流量能够通过这些路由器进行IPv4的封装和转发到相应目标的6to4网络。而6to4网络的IPv4出口侧需要一个默认网关用于将6to4中已封装IPv6数据包的IPv4流量传入到IPv6网络，为了避免用户手工配置的麻烦，定义了一个任播IPv4地址192.88.99.1 - An Anycast Prefix for 6to4 Relay Routers，其可以配置给多个中继路由器，用于接受6to4已封装IPv6数据包的IPv4流量并将其解封后转发至IPv6之中，但由于无法解决的操作问题，此用法已被弃用。“6to4中继路由器”不一定就是“6to4边界路由器”。“边界路由器”是支持一个6to4伪接口的IPv6路由器，用于宣告其IPv4对应6to4前缀。“中继路由器”则负责完整6to4网络与纯IPv6网络之间数据包的解封装。“中继路由器”应该对IPv6网络宣告整个2002::/16的路由而不区分基于IPv4的子网区分，避免IPv4的路由污染到IPv6的路由表。

对于6to4子网络之间的路由，则直接根据封装的IPv6包目的地址为6to4地址中内嵌IPv4地址，按照普通的IPv4流量在IPv4网络中直接发送。

反向DNS委派
如果使用6to4的站点有着固定的全域IPv4地址，则其6to4IPv6网络前缀也是固定的。可以通过6to4.nro.net网站向号码资源组织申请在2.0.0.2.ip6.arpa添加一个前缀48为单位的反向DNS委派域，可以自动化申请。

安全要点
根据，6to4的边界路由器和中继路由器被要求：
任何被封装的IPv6数据包的源地址或目的地址都应该6to4的网络前缀2002::/16。
如果IPv6源地址是6to4 IPv6地址，則其對應的6to4路由器IPv4地址與IPv4封裝頭中的IPv4源地址匹配。
同樣，如果IPv6目標地址是6to4 IPv6地址，則其對應的6to4路由器IPv4地址與IPv4封裝頭中的IPv4目標地址匹配。
任何6to4路由器嵌入的IPv4地址都是全球單播的。

参考文献

外部链接
 "Routing IPv6 over IPv4" article by Cisco
 IPv6 6to4 tunnel configuration example

Category:IPv6
Category:网络协议