img

为什么要用IPv6

如今互联网主要使用IPv4, 感觉已经蓬勃发展了够用了,那为什么还需要使用IPv6呢?主要有如下原因:

  • IPv4地址匮乏
  • NAT非根本解决办法,破坏了端到端模型
  • 新技术对IP协议催生了更多的需求
  • 政策驱动: 计划使用5-10年的时间建成全球最大的IPv6商用网络。

随着5G、IOT万物互联的到来,IPv4已经不方便或不能承载如此大的需求了,更多的应用呼吁着IPv6尽快落地。

IPv6优势

既然IPv4有以上不足,那IPv6有什么优势呢?主要如下:

  • 近乎无限的地址空间
  • 更简洁的报文头部
  • 内置的安全性
  • 更好的QoS支持
  • 更好的移动性
  • 编址层次等级

IPv6技术

标准(RFC)

IPv6协议由很多RFC组成,IPv6协议族RFC如下, 其中
img
RFC5942 - IPv6子网模式:链路和子网前缀间的关系
RFC5569 - IPv4/IPv6过渡技术之—— 6rd
RFC3056 - IPv4/IPv6过渡技术之—— 6to4
RFC2473 - IPv6标准中的通用分组隧道化
RFC6333 - IPv4/IPv6过渡技术之——双栈精简版
RFC5214 - IPv4/IPv6过渡技术之——ISATAP
RFC4213 - IPv6主机和路由器的基本转换机制-双栈和隧
RFC3775 - IPv6中的移动性支持
RFC3053 - IPv4/IPv6过渡技术之——隧道代理
RFC6434 - 对IPv6节点的要求
RFC4294 - 对IPv6节点的要求
RFC4294 - IPv6的默认地址选择
RFC6071 - IP安全(IPsec)
RFC5340 - IPv6的动态路由协议OSPFv3
RFC3315 - DHCPv6

报文格式

IPv6报文格式与IPv4有一定相似,但比它简化和固定了好多,这样更容易解析与传输。
img

地址

巨大的地址空间, 相当于地球上每粒沙子都有自己的地址。

IPv4
地址长度:32位
地址空间:2的32次方,约42亿(世界上平均3个人有2个IP地址)

IPv6
地址长度:128位
地址空间:2的128次方,约3.4 x 10^38个(地球上的每一粒沙子都有IP地址)

表示

非压缩: 2001:0da8:0207:0000:0000:0000:8207
压缩前导0:2001:0da8:0207:0:0:0:0:8207
压缩: 2001:0d08:0207::8207 注:只能有一个::
内嵌IPv4地址: ::192.168.1.1
img

分类

IPv6也分单播、组播,但没有了广播,增加了任播anycast,它允许同一个IP配置在多台服务器上,通过路由的方式自动访问离用户的最近的服务器上去。
img

手工配置

  1. 添加IPv6地址

    ip -6 addr add <ipv6address>/<prefixlength> dev <interface>
    
    ip -6 addr add 2001::1/64 dev eth0
    
    ifconfig <interface> inet6 add <ipv6address>/<prefixlength> 
    
    ifconfig eth0 inet6 add 2001::1/64
    
  2. 添加默认路由

    ip -6 route add <ipv6address>/<prefixlength> via <ipv6address>
    
    ip -6 route add default via 2001::1 
    
    route -A inet6 add <ipv6address>/<prefixlength> gw
    
    route -A inet6 add default gw 2001::1 
    
  3. 查看路由

    ip -6 route show
    
    route -6
    

无状态配置

IPv6的无状态配置是比较吸引我的一个特点,只要路由器支持插上网线就自动分配到全球唯一的地址就能自动联网。
img

img

常用命令

查看ip

ip -6 addr 

查看路由

ip -6 route

查看多播地址

ip -6 maddr
netstat -gn

查看dns AAAA记录(走IPv4路线)

dig -t AAAA www.xxx.com
nslookup -query=AAAA www.xxx.com

查看dns AAAA记录(走IPv6路线)

dig @2001::1 -6 -t AAAA www.xxx.com
nslookup -query=AAAA www.xxx.com 2001::1

查看dns AAAA记录(走IPv6路线, 最完整,最靠谱的办法)

dig @2001::1 -6 -t AAAA www.xxx.com +trace

curl

curl -6 https://www.xxx.com

ping

ping6 www.xxx.com

trace route

mtr -6 www.xxx.com
traceroute6 www.xxx.com 
tracert6 www.xxx.com 
tracepath6 www.xxx.com 

ping

ping6 www.xxx.com

邻居地址解析,类似IPv4中的arping

ndisc6 -n 2001::1 eth0

iptables

ip6tables-save

tcpdump

tcpdump -nnn -i eth0 ip6

在线工具

公共dns列列表

地址: http://dns.icoa.cn/ipv6/

查询⽹网站是否提供IPv6

地址:
https://ready.chair6.net/
http://ip6tools.com/#checkWebServer

查询我⾃自⼰己是否拥有公⽹网IPv6地址

地址:
http://www.test-ipv6.com
http://ip6tools.com/#WhatisMyIPv6Address

协议栈

IPv6与IPv4协议栈比较相似,经过精心设计后去掉了不少冗余或不合理部分,代码部分将近少了一半,使得更加简洁强大。
img

现状

IPv6目前用户覆盖率还不高,尤其是中国, 主要原因是钱,运营商通过维护或改造现有IPv4网络基本满足了目前大家的使用要求,在没有其他利益或政策驱动下很难主动自己贴钱去升级网络,再者需要大家都升级后才能完全使用,谁不愿意劳民伤财的去干这件事。但随着中国想努力引领世界,在政策与应用驱动下IPv6将大大加快。
img

过渡技术

img
过渡技术主要解决IPv4和IPv6网络共存情况下的互联互通,主要由三种策略:

  • 双栈协议:设备升级到IPv6同时保留IPv4支持,应用程序可以选择使用IPv4或IPv6; 协议应用允许应用逐渐从IPv4过渡到IPv6。
  • 隧道封装:IPv6报文作为IPv4的载荷,或由MPLS承载在IPv4 internet海洋中连接多个IPv6孤岛
  • 协议转换:提供IPv4和IPv6的互通动作,如NAT-PT等提供IPv6与IPv4互相访问的技术,适用于IPv6 internet与IPv4 internet共存,而两者又需要互相通讯的需求。

双栈协议

设备升级到IPv6的同时保留IPv4支持,应用程序可以选择使用IPv6或IPv4协议。
所有的过渡技术都是基于双协议栈实现的。
优点:互通性好、易于理解、实现简单。
缺点:

  • 对每个IPv4节点都要升级,成本较大,没有解决IPv4地址紧缺的问题。
  • 部署复杂,所有设备都同时配置IPv4和IPv6;
  • 对设备性能要求高,既要运行IPv6,又要运行IPv4。

隧道封装

  • IPv6 over IPv4 手动隧道(配置隧道):隧道两端的边界路由器上通过静态指定隧道的源IPv4地址和目的IPv4地址而创建的隧道。
  • IPv6 over IPv4 GRE隧道(GRE隧道): 使用IPv4的GRE隧道上承载IPv6流而实现IPv6互通。

展望

随着IPv6的普及与更多的应用落地, 使得人与人、物与物之间通信更加频繁,将催生出很多革命创新型应用或巨头公司,谁主沉浮,让我们拭目以待吧。
img

微信扫一扫

作者:mospan
微信关注:墨斯潘園
本文出处:http://mospany.github.io/2019/08/09/ipv6-base/
文章版权归本人所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。