装修公司名字大全参考免费,百度seo不正当竞争秒收,网站开发全栈工程师技能图,哪个网站可以改字体ipv4和ipv6的兼容
现今大多知名网站都是同时支持ipv6和ipv4#xff0c;这种可以分为两种情况讨论#xff1a;
一个IPv4的网络和一个IPv6的网络通信;一个IPv6的网络和一一个IPv6的网络通信#xff0c;但是中间需要经过一一个IPv4的网络。
先以第一种为例#xff1a;
若一…ipv4和ipv6的兼容
现今大多知名网站都是同时支持ipv6和ipv4这种可以分为两种情况讨论
一个IPv4的网络和一个IPv6的网络通信;一个IPv6的网络和一一个IPv6的网络通信但是中间需要经过一一个IPv4的网络。
先以第一种为例
若一个ipv6服务器想要访问一个ipv4服务器具体步骤如下
客户端通过DNS64服务器查询AAAA记录IPv6客户端向DNS64服务器查询目标域名的AAAA记录。DNS64是一种将IPv6地址和IPv4地址兼容的DNS服务。当目标域名只有IPv4地址时DNS64服务器会合成一个伪造的AAAA记录。DNS64服务器返回含IPv4地址的AAAA记录如果目标域名只有IPv4地址DNS64服务器会查询该域名的A记录然后将其转换为IPv6地址通常以特定前缀例如64:ff9b::/96 开头并返回给客户端一个伪造的AAAA记录。如果目标域名本身有AAAA记录DNS64服务器会直接返回这些记录。客户端将请求发送给NAT64路由器客户端接收到伪造的AAAA记录后将其作为目标地址并根据此地址生成IPv6报文。这个报文被发送到NAT64路由器。NAT64路由器将IPv6地址转换为IPv4地址并访问IPv4网络NAT64路由器识别出伪造的IPv6地址中的IPv4部分将该地址转换为真实的IPv4地址并将IPv6报文转换为IPv4报文。然后NAT64路由器将IPv4报文发送到目标IPv4服务器。消息返回到客户端目标IPv4服务器处理请求并返回响应响应报文到达NAT64路由器后NAT64路由器将其转换回IPv6报文然后将其转发给IPv6客户端。
整个过程的关键是DNS64和NAT64的协调工作确保IPv6客户端能够通过伪造的AAAA记录访问仅有IPv4地址的服务器。这样客户端对目标服务器的访问是透明的无需知道其实际的IPv4地址。
在这个过程中其实dns64就相当于提前转换及生成ipv6nat64相当于双方在进行数据交换过程中的转换 问题
大家可能在阅读中唯一的疑问就是当客户端先前往dns64进行目标ipv4转假ipv6的过程中并未事先通知nat64为什么nat64能直接从假ipv6中获取到真ipv4呢这是因为这个转换是可逆的。
具体规则如下由IETF制定的 RFC 6146NAT64和 RFC 6147DNS64标准
IPv4 嵌入 IPv6 地址 当 DNS64 服务器将 IPv4 地址转换为 IPv6 地址时它会使用一个特定的前缀例如 64:ff9b::/96。这个前缀是预定义的用于标识这些地址。IPv4 地址的32位部分被嵌入到 IPv6 地址的后32位中。例如一个 IPv4 地址 192.0.2.33 被转换为 IPv6 地址 64:ff9b::c000:0221。 IPv6 地址中的 IPv4 提取 当 IPv6 客户端向伪造的 IPv6 地址例如 64:ff9b::c000:0221发送请求时NAT64 路由器会识别这个前缀64:ff9b::/96。NAT64 路由器提取 IPv6 地址的后32位将其转换回原始的 IPv4 地址192.0.2.33。
示例
假设 IPv4 地址是 203.0.113.1它在 DNS64 的转换下会变成如下的 IPv6 地址
原始 IPv4 地址203.0.113.1IPv6 地址前缀64:ff9b::转换后的 IPv6 地址64:ff9b::cb00:7101
当 NAT64 路由器接收到这个 IPv6 地址时它会识别前缀 64:ff9b::然后将后32位 cb00:7101 转换回 IPv4 地址 203.0.113.1。
是不是瞬间清醒了。
另一种一个IPv6的网络和一个IPv6的网络通信但是中间需要经过一个IPv4的网络。
这个时候需要用到隧道tunnel技术隧道技术有很多种但原理基本差不多就选一种方式详细讲一下
6to4 隧道工作流程
生成 6to4 地址 每个 IPv6 节点使用其 IPv4 地址公共ipv4地址生成一个 6to4 地址。6to4 地址的前缀为 2002::/16IPv4 地址嵌入在地址的后部分。 封装 IPv6 报文 当节点 A 发送一个 IPv6 报文时它将报文封装在 IPv4 报文中。封装后的 IPv4 报文包含 IPv6 报文数据。 通过 IPv4 网络传输 封装后的 IPv4 报文通过 IPv4 网络传输到节点 B。 解封装 IPv6 报文 节点 B 接收到 IPv4 报文后将其解封装提取出原始的 IPv6 报文。
示例详细步骤
假设节点 A 和 B 的具体情况如下
节点 A 公共 IPv4 地址192.0.2.1生成的 6to4 地址2002:c000:0201::/48 节点 B 公共 IPv4 地址198.51.100.1生成的 6to4 地址2002:c633:6401::/48
节点 A 向节点 B 发送数据
IPv6 报文 源地址2002:c000:0201::目的地址2002:c633:6401::数据Hello 封装为 IPv4 报文 IPv4 源地址192.0.2.1IPv4 目的地址198.51.100.1
封装后的 IPv4 报文通过 IPv4 网络传输到节点 B。
节点 B 接收并解封装
IPv4 报文 IPv4 源地址192.0.2.1IPv4 目的地址198.51.100.1包含封装的 IPv6 报文数据 解封装 节点 B 提取出原始的 IPv6 报文 源地址2002:c000:0201::目的地址2002:c633:6401::数据Hello
节点 B 发送响应
IPv6 报文 源地址2002:c633:6401::目的地址2002:c000:0201::数据Hi 封装为 IPv4 报文 IPv4 源地址198.51.100.1IPv4 目的地址192.0.2.1
封装后的 IPv4 报文通过 IPv4 网络传输回节点 A。
节点 A 接收并解封装
IPv4 报文 IPv4 源地址198.51.100.1IPv4 目的地址192.0.2.1包含封装的 IPv6 报文数据 解封装 节点 A 提取出原始的 IPv6 报文 源地址2002:c633:6401::目的地址2002:c000:0201::数据Hi
是不是很神奇这个已经说的很清楚了如果还是没有看懂不妨下去再查一查相关的知识。