关于IPv6技术升级具体做了什么,在我脑海里只是更换了域名解析的IP而已,所以找了这篇文章,帮助初步解惑。

原文地址:https://www.maczd.com/post/web-ipv6-upgrading.html#prettyPhoto

网际协议第六版 IPv6(Internet Protocol version 6)是最新的互联网协议,协议标准最早诞生于 1998 年 12 月。IPv6 的出现解决了 IPv4 地址枯竭的问题和提升网络传输效率,不过由于开始时期 IPv6 的标准复杂以及需要硬件软件同时支持,运营商和用户对升级 IPv6 积极性并不高。

一、为什么要对网站进行 IPv6 改造

近些年来,IPv6 普及迅猛开来,许多国家的电信运营商纷纷跟进建设 IPv6。伴随着运营商旧设备的报废,新设备普遍支持 IPv6,一些 IPv6 的基础设施如 DNS 等也基本建立完成。

2011年 6 月 8 日,以 Google、Facebook、雅虎等互联网巨头网站相继开始支持 IPv6; 在 2017 年,Google 曾宣布大约有 20% 的访客使用 IPv6 进行搜索。

中国也印发了《推进互联网协议第六版(IPv6)规模部署行动计划》,计划到 2018 年末,中国 IPv6 用户不低于 2亿,占互联网用户比例不低于 20%,2020 年,IPv6 用户不低于 5 亿,占互联网用户比例不低于 50%,2025 年末,中国 IPv6 规模、用户规模世界第一。

资料来源:http://www.xinhuanet.com//politics/2017-11/26/c_1122012631.htm

在中国,三大基础运营商已经基本上完成了对 IPv6 的改造,如果您的设备支持 IPv6,现在基本上可以连接到 IPv6 网络。因此,现在有必要对现有网站进行 IPv6 升级改造,以便尽早支持 IPv6 访客。

二、如何对网站进行 IPv6 改造

网站 IPv6 改造主要是从以下方面:

(一)网站 IPv6 改造条件

1、域名支持 AAAA 解析
AAAA 解析是将域名解析为 IPv6 地址。目前几乎主流的域名商和提供的 DNS 解析服务都支持 AAAA 解析。

2、服务器系统软件支持 IPv6
目前几乎所有的操作系统和服务器软件都支持 IPv6。在软件上几乎不存在问题。

3、主机运营商提供 IPv6 地址
目前网站 IPv6 改造最主要的还是需要主机运营商的支持,需要提供和分配 IPv6 的地址。

(二)服务商提供的 IPv6 方式
目前国内的云主机服务商(2018年)主要有以下几种实现方法:

(1)IPv6 双栈
主要是华为云和景安云,同时为主机服务器提供 IPv6 和 IPv4 双地址,主机可以直接和 IPv6 和 IPv4 网络进行通信。

华为云 IPv6 解决方案
国外大部分的服务器也是使用类似的方案。

(2)IPv6 转换
主要是阿里云和百度云在用。运营商为服务器提供一个 IPv6 地址,但不是配置在主机网卡上,而是统一管理,在前端上对 IPv6 流量(TCP、UPD)转换成 IPv4 流量,再转发到后端的服务器,有点像于端口转发的应用层代理。

百度云 IPv6 终结

优点是不需要改变主机原有结构,特备是对于 HTTP 服务器可以做到快速实现。缺点是服务器不能主动的进行 IPv6 通信,同时一些软件会有异常,如 HTTP 服务器日志记录根本不到 IPv6 地址。

三、本站 IPv6 改造方案
本站一共使用了两台服务器,分别进行了网站 IPv6 支持改造,步骤如下:

(一)百度云 IPv6 改造步骤
本站托管于百度云中,目前百度云为客户提供了名为 IPv6 终结功能,就是上述所说的 IPv6 转换服务。目前还在内测阶段。经过申请,说明了使用目的后,客服为我分配了一个 IPv6 地址。详细的使用方法请参照IPv6终结者配置说明:IPv6终结功能

根据百度云IPv6 终结者服务说明,所有通过 IPv6 的流量,协议和目的端口不变,源地址转换为固定地址段内的IPv4地址(106.12.248.0/21)再转发到我的服务器上。

对于 7 层 HTTP 应用,会加入 X-Forwarded-For 来标注真实的 IPv6 地址,不然在自己的服务器看来,都是来自 106.12.248.0/21 这些地址。

不过由于我的网站使用了 HTTPS, X-Forwarded-For 这个 http 头不能正常写入。所有 IPv6 来的流量在我看来都是 来自106.12.248.0/21 这个网段。最后只要将 DNS 的国内 AAAA 记录解析到 这个地址即完成了网站 IPv6 的改造升级。

(二)Vultr 服务器 ipv6 改造步骤
对于 vultr 服务器为本站提供加速。vultr 使用的技术是 IPv6 双栈,并且给了我一个 /64 的子网,原则上为我分配了2的64次方的 IP 地址,这些 ipv6 地址默认是可用的。

简单通过配置为网卡指定了上述子网中任意的 IPv6 地址后,只要将 DNS 配置海外访客的 AAAA 解析结果配置到这个 IPv6 地址即可完成网站 IPv6 改造。后续会介绍如何为网卡指定 IPv6 地址。

需要注意的是 IPv6 防火墙和 IPv4 防火墙不同,需要单独配置,请一定要尽早配置,以免内部服务暴露在 IPv6 公网上。

四、结语
改造后网站将完全支持国内外的 IPv6 访客的访问,通过 DNS 将不同位置访客自动分配到不同的服务器,速度也都很不错。

这篇文章写于 2018年,预计未来的两年,将是世界 IPv6 快速发展的时代,预计越来越多的服务器、CDN 都会提供 IPv6 服务。本文介绍的方案仅适用于最近,若有不足之处,还请多提意见。

IPv6升级改造包括什么?的更多相关文章

  1. 数据平台调度升级改造 | 从Azkaban 平滑过度到 Apache DolphinScheduler 的操作实践

    Fordeal的数据平台调度系统之前是基于Azkaban进行二次开发的,但是在用户层面.技术层面都存在一些痛点问题难以被解决.比如在用户层面缺少任务可视化编辑界面.补数等必要功能,导致用户上手难体验差 ...

  2. 海豚调度5月Meetup:6个月重构大数据平台,帮你避开调度升级改造/集群迁移踩过的坑

    当今许多企业都有着技术架构的DataOps程度不够.二次开发成本高.迁移成本高.集群部署混乱等情况,团队在技术选型之后发现并不适合自己的需求,但是迁移成本和难度又比较大,甚至前团队还留下了不少坑,企业 ...

  3. HTML5音乐播放器(最新升级改造加强版)

    最近么,单位里面么老不顺心的,公司一直催要程序员要PHP,然后本宅好不容易推荐了一个,我日嘞,最后待遇变成1.3,吾师最后也同意1.3W,然后还说要考虑... 尼玛,4年多5年不到一点的工作经验,前端 ...

  4. 优雅对API进行内部升级改造

    优雅对API进行内部升级改造 背景 随着业务的快速发展老的系统将逐渐的无法快速支撑现有业务迭代重构一个必然的过程;然而在底层业务系统重构的过程中,对外提供的API也同时需要进行相应的升级替换;推动外部 ...

  5. AngularJS 遗留项目的升级改造之路(一)

    目录 序言 遗留项目概述 条件限制下的升级原则 升级改造的演进方向 遇到的主要难点 小结 参考 1. 序言 Angular 官方网站针对 从 AngularJS 升级到 Angular 提供了比较详细 ...

  6. IPv6升级测试指南(Android/iOS/Mac)

    目录 我们升级到IPv6的原因 测试的时候的注意要点 Android/IOS/MAC测试总结 Android测试IPv6的方法 IOS端测试IPv6的方法 MAC浏览器端测试IPv6的方法 升级IPV ...

  7. 四级地址插件升级改造(京东商城地址选择插件)city-picker

    最近公司做的项目要和京东的数据做对接,所以要做个类似京东商品的详情页.页面的数据,是可以从京东接口获取到的,但是地址插件选择的效果需要自己实现.前端的同事在之前的项目中,已经选择了一款地址插件(cit ...

  8. Nginx安装与升级(包括虚拟主机)

    Nginx WEB服务器最主要就是各种模块的工作,模块从结构上分为核心模块.基础模块和第三方模块,其中三类模块分别如下: 核心模块:HTTP模块.EVENT模块和MAIL模块等: 基础模块:HTTP ...

  9. 手动搭建I/O网络通信框架3:NIO编程模型,升级改造聊天室

    第一章:手动搭建I/O网络通信框架1:Socket和ServerSocket入门实战,实现单聊 第二章:手动搭建I/O网络通信框架2:BIO编程模型实现群聊 在第二章中用BIO编程模型,简单的实现了一 ...

随机推荐

  1. Android NDK编程

    1.首先需要声明native方法: public native String helloWorldNdk(); public native String hello_World_Ndk(); 2.然后 ...

  2. [转]bus error与segment error

    在c程序中,经常会遇到段错误(segment error)和总线错误(bus error),这两种问题出现的原因可能如下 段错误: 对一个NULL指针解引用. 访问程序进程以外的内存空间. 实际上,第 ...

  3. JS获取今天和上个月的今天

    function getLastMonth(){ var now=new Date(); var year = now.getFullYear();//getYear()+1900=getFullYe ...

  4. List Control控件

    List Control控件 显示方式 属性[View]选择成[Report]. 添加成员变量 绑定变量:m_listCtrl 设置值 // 表头添加 m_listCtrl.SetExtendedSt ...

  5. 【网络编程3】网络编程基础-arp请求(局域网主机扫描)

    ARP协议 ARP(Add ress Resolution Protocol)地址解析协议位于数据链路层,是根据IP地址获取MAC地址的一个协议. ARP 查看指令 arp -a 显示所有接口的当前A ...

  6. Python startswith() 函数 判断字符串开头

    Python startswith() 函数 判断字符串开头 函数:startswith() 作用:判断字符串是否以指定字符或子字符串开头 一.函数说明语法:string.startswith(str ...

  7. 用python查看windows事件日志的方法(待后续研究)

    #coding=utf8 import copy import ctypes from ctypes import byref, POINTER, cast, c_uint64, c_ulong, c ...

  8. Windows CreateFont:创建自己的字体

    原文地址:http://blog.csdn.net/softn/article/details/51718347 前面无论是使用文本输出函数还是 static 控件,字体都是默认的,比较丑陋,我们完全 ...

  9. centos系统初始化脚本

    #!/bin/bash #检测是否为root用户 ];then echo "Must be root can do this." exit fi #检测网络 echo " ...

  10. WebRTC服务器——Licode 环境搭建

    WebRTC服务器--Licode 环境搭建 系统配置 阿里云服务器 Ubuntu 14.04.5 LTS Docker 环境搭建 在一台空的机器上搭建docker环境,先要安装docker,执行下面 ...