IPv4和IPv6主机之间能够互相通信吗?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IPv4和IPv6主机之间能够互相通信吗?相关的知识,希望对你有一定的参考价值。

在设计综合组网方案时,我们一方面要考虑到IPv4/v6长期共存,另一方面也要考虑到将来网络全部采用IPv6的可能。因此,在技术研究时要注意所选技术能够支持网络的平滑过渡,不会形成将来网络过渡的新障碍,如题,在配置网络的时候IPV4和IPV6需不要什么特殊的配置才能将IPV4和IPV6才能相互共存,相互通信。

IPv4和IPv6主机之间可以互相通信,通过双协议栈技术 、隧道技术、网络地址转换技术等过渡技术可以实现。

1、IPv6/IPv4双协议栈技术 

双栈机制就是使IPv6网络节点具有一个IPv4栈和一个IPv6栈,同时支持IPv4和IPv6协议。IPv6和IPv4是功能相近的网络层协议,两者都应用于相同的物理平台,并承载相同的传输层协议TCP或UDP。

如果一台主机同时支持IPv6和IPv4协议,那么该主机就可以和仅支持IPv4或IPv6协议的主机通信。

2、隧道技术 

隧道机制就是必要时将IPv6数据包作为数据封装在IPv4数据包里,使IPv6数据包能在已有的IPv4基础设施(主要是指IPv4路由器)上传输的机制。随着IPv6的发展,出现了一些运行IPv4协议的骨干网络隔离开的局部IPv6网络,为了实现这些IPv6网络之间的通信,必须采用隧道技术。

隧道对于源站点和目的站点是透明的,在隧道的入口处,路由器将IPv6的数据分组封装在IPv4中,该IPv4分组的源地址和目的地址分别是隧道入口和出口的IPv4地址,在隧道出口处,再将IPv6分组取出转发给目的站点。

3、网络地址转换技术 

网络地址转换(NAT)技术是将IPv4地址和IPv6地址分别看作内部地址和全局地址,或者相反。例如,内部的IPv4主机要和外部的IPv6主机通信时,在NAT服务器中将IPv4地址(相当于内部地址)变换成IPv6地址(相当于全局地址),服务器维护一个IPv4与IPv6地址的映射表。

扩展资料:

IPv6的优势特点:

1、IPv6具有更大的地址空间。

2、IPv6使用更小的路由表。

3、IPv6增加了增强的组播支持以及对流的控制。

4、IPv6加入了对自动配置的支持。

5、IPv6具有更高的安全性。

6、IPV6允许协议进行扩充。

7、IPV6使用更好的头部格式。

8、IPV6有一些新的选项来实现附加的功能。

参考资料来源:百度百科-IPv6

参考技术A 通俗地讲,网站IPv6升级改造是指通过技术升级和改造,将涉及到网站业务交互的各类应用系统和设备全面支持IPv4和IPv6双协议栈,能同时完成基于IPv4和IPv6协议的业务交互;或者通过技术改造,在IPv6协议和IPv4协议之间建立映射联系,帮助IPv6用户能够正确获得IPv4的资源。
对于用户而言,整网的IPv6升级改造,涉及的内容和设施非常多,改造的周期漫长,改造的成本也相对较高,可谓任重而道远。因此,采用逐步改造的渐进式的方式是目前实现快速、安全、省钱升级目标的首选方式。
可行性方案来了解一下:
(一)
实现目标:不修改代码,不改造业务,不改造现有设备。
适用方案:云转换服务方案。
推荐理由:用户购买云转换服务,推荐使用中国移动SaaS云“IPv4/IPv6网站转换服务”,原IPv4网站不需要改造、不需要修改代码,不影响原有业务正常运行基础上,直接支持IPv6连接访问,解决由于外链引发的页面“天窗”问题,投资少,见效快。适合升级改造网站规模较小的用户,只需购买服务,并把DNS的 AAAA记录指向云转换平台,即可完成升级改造工作。
(二)

实现目标:不改变现有配置,实现网络层及应用层IPv4与IPv6平滑过渡,自由互通。
适用方案:宏图佳都的四六桥软硬一体化渐进式方案。
推荐理由:使用四六桥IPv4/IPv6转换技术体系,通过硬件设备和软件系统(包括IPv6升级改造设备、IPv4/IPv6地址转换系统等)的相融,对网站进行渐进式升级:保持现有配置不变,实现应用支持IPv6连接访问,并在其首页标示该应用已支持IPv6;总体规划,分步实施,实现网络层及应用层翻译,在网络演进的后期,支持IPv4用户对IPv6互联网门户网站的访问。该方案适用于政府、金融以及大型企事业单位,特别是对网站安全性要求较高、互联网业务系统需要密码验证、地址溯源等业务保障需求的客户。
参考技术B 在隧道口都会对数据包添加新的包头,进行封装,而这个新数据包传输到隧道的另一端时,又进行数据包的拆封,还原为之前的数据包。所以,不同协议之间的主机是不能进行直接通信的 参考技术C

    ipv4和ipv6主机之间是无法直接进行通信的。

    通常我们采用ipv4/ipv6双栈方式运行现有的设备。这样既可以使用ipv4,也可以使用ipv6.

    如果服务器只有ipv4地址,想要与ipv6地址进行通信,则需要进行NAT转换。反之亦然。

    能够支持ipv4 - ipv6 进行NAT转换的路由设备,通常都有一些软件版本要求,有些还有硬件要求。 建议你向相关的厂商进行咨询。

参考技术D 应当是可以兼容的。。并没有冲突。。

HAproxy配置IPv6和IPv4的互相代理实验

参考技术A 这里我们使用简单的 httpd 服务进行测试。

实验环境

测试IPv6访问

在机器 3 上安装 httpd,配置监听 IPv4 和 IPv6 的 80 端口。

文件:/etc/httpd/conf/httpd.conf

Listen10.144.85.73:80

Listen[fd88:5110:a240::886:f252]:80

在 1 上通过 curl 访问 :

curl10.144.85.73:80

IPv4 可以正常访问 ,返回数据较长,这里不再展示。

#curl-g[fd88:5110:a240::886:f252]:80

curl: (7)Failedconnecttofd88:5110:a240::886:f252:80;Connectionrefused

IPv6 地址无法访问到 httpd 服务。 IPv6 访问不稳定 ,有时可以正常返回数据。

机器 1 上抓包来看,数据包发送出去了:

23:42:52.924028IP6epic1.52564>fd88:5110:a240::886:f252.http:Flags[S],seq480439591,win28800,options[mss 1440,sackOK,TS val 17786404 ecr 0,nop,wscale 7],length0

23:42:52.924033ethertypeIPv6,IP6epic1.52564>fd88:5110:a240::886:f252.http:Flags[S],seq480439591,win28800,options[mss 1440,sackOK,TS val 17786404 ecr 0,nop,wscale 7],length0

23:42:52.924035ethertypeIPv6,IP6epic1.52564>fd88:5110:a240::886:f252.http:Flags[S],seq480439591,win28800,options[mss 1440,sackOK,TS val 17786404 ecr 0,nop,wscale 7],length0

23:42:52.937267ethertypeIPv6,IP6fd88:5110:a240::886:f252.http>epic1.52564:Flags[R.],seq0,ack480439592,win0,length0

23:42:52.937270ethertypeIPv6,IP6fd88:5110:a240::886:f252.http>epic1.52564:Flags[R.],seq0,ack1,win0,length0

23:42:52.937271IP6fd88:5110:a240::886:f252.http>epic1.52564:Flags[R.],seq0,ack1,win0,length0

此时机器 3 上抓不到包。

HAproxy 代理测试

在机器 1 上安装 HAproxy。

IPv6 代理 IPv4

我们配置 机器 1 的 IPv6 地址来代理 机器 3 的 IPv4 地址,配置如下:

另外,配置了 HAproxy 的管理页面,这里不再赘述。

理论上,可以在浏览器中输入http://[fd88:5110:a240::886:f250]:8080/,来测试。

由于公司环境,VPN 没有代理 IPv6 地址,所以只能通过 curl 的方式测试。

在机器 3 上访问:

curl -g [fd88:5110:a240::886:f250]:8080

数据可以正常返回,返回用时不稳定,大部分情况下 返回结果用时很长 ,用时近 15s。也有访问无返回的情况。

通过 机器 2 访问时,一切正常!返回速度也很快!

IPv4 代理 IPv6

现在机器 3 的 httpd 服务无法通过 IPv6 正常访问,我们只能采用 迂回的方式 来做这个测试了。

既然,在机器 2 上可以通过 IPv6 访问 HAproxy 代理的服务,那我们在机器 2 上再做一层 HAproxy。

机器 2 的 HAproxy 配置:

这里的后端 http1 的地址使用的是机器 2 上的 HAproxy 的对外地址。

这里,可以通过浏览器访问http://10.144.91.125:18080/:

正常访问

结论

1、通过 HAproxy 可以实现 IPv4 代理 IPv6,IPv6 代理 IPv4 ;

2、地址转换时感觉还是有些问题,不确定是否是 httpd 服务的问题还是机器;

3、下一步需要 部署真实服务再进行验证 ;

链接:https://www.jianshu.com/p/09e62aa8caff

以上是关于IPv4和IPv6主机之间能够互相通信吗?的主要内容,如果未能解决你的问题,请参考以下文章

网际协议IP基础

北京联通光猫支持 IPV6 吗

IPV4和IPV6

HAproxy配置IPv6和IPv4的互相代理实验

IPV6范围之间可以存在IPV4地址吗?

第11章 拾遗4:IPv6和IPv4共存技术_双栈技术和6to4隧道技术