本帖最后由 CQxxk 于 2019-8-14 13:04 编辑
背景 2017年中共某公司 某公司印发《推进互联网协议第六版(IPv6)规模部署行动计划》,计划中指出用5到10年时间,形成下一代互联网自主技术体系和产业生态,建成全球最大规模的IPv6商业应用网络,实现下一代互联网在经济社会各领域深度融合应用,成为全球下一代互联网发展的重要主导力量。因此IPv6改造是当前的热门话题。 由于多方面原因在IPv6改造过程中存在很多问题,其中有一个场景便是内部网络完成了IPv6改造,但是很多网站没有完成改造,大量的IPv4的网站无法访问,那么这个问题如何解决呢? 某公司的负载均衡AD设备,通过支持DNS64转换来解决前面提到的问题,我们来一探究竟。 网络拓扑 本次实验拓扑如下所示: 功能原理 AD代理客户端访问IPv4网站,通过NAT64转换走IPv4线路去代理访问IPv4网站,实现IPv6客户端可以访问IPv4网站。 实验步骤 实验环境准备
1、 配置IPv6客户端: 2、配置AD网络接口: 3、 AD没有做DNS64之前,IPv6客户端无法访问IPv4网站,如baidu.com 配置DNS代理 1、配置IPv4线路的DNS服务器,用于AD做代理解析时的DNS服务器: 2、代理全部的DNS请求,IPv6监听地址为IPv6客户端配置的DNS服务器地址: 3、启用DNS64、配置IPv6前缀、代理方式: 结果验证 AD启用DNS64之后,IPv6客户端可以正常访问IPv4网站: 说明 IPv6前缀 将A记录的IP加上此IPv6前缀作为AAAA记录返回给客户端,注意此IP地址不要跟网口上面的ipv6地址冲突,默认值即可(默认为IPv6协议标准建议指定的前缀64:ff9b::/96); 代理方式 客户端域名请求到达AD,AD具体以什么方式进行代理,三种解释如下: 1、响应优先 AD同时查询域名AAAA记录和A记录,哪个先应答就使用哪个方式上网。 适用场景:AD有ipv6上网链路,v4v6链路都可以上网,不想指定链路。 2、AAAA记录优先 AD先向DNS服务器查询域名AAAA记录,再查询A记录,客户端优先通过AAAA记录的IP(网站真实ipv6地址)上网。 适用场景:AD有ipv6上网链路,v4v6链路都可以上网,并且优先使用v6链路。 3、仅A记录 AD向DNS服务器只查询域名A记录,不查询AAAA记录。 适用场景:AD没有ipv6上网链路,全部需要通过ipv4链路才能上网。 抓包分析 1、 在IPv6客户端使用wireshark抓取客户端访问流量,可以看到PC客户端向AD发起了AAAA记录解析请求
2、在AD的IPv4的外网口抓包,发现AD向114.114.114.114发起了A记录请求
3、根据抓包内容我们看到AD解析到的地址是180.97.33.107和180.97.33.108,而客户端拿到的地址是64:ff9b::b461:216b和64:ff9b::b461:216c,这两者之间的关系是如何对应呢?
这里就要提到前面配置DNS代理时配置了IPv6前缀64:ff9b::,同时将4段8位二进制的IPv4的地址转为2段16位二进制的地址添加为后缀返回给客户端。 |