本文为大家介绍IPV6,是启蒙类文章,也是网络基础部分的最后一篇纯讲原理的文章。(预警:本节篇幅略长,且学习过程可能引起强烈不适,如果觉得很煎熬,通读一遍有个印象即可(本文无实验),不用强求过多,毕竟IPV6还不是当下的主流)

IPV6-狼真的来了?

IPV4使用了32位二进制数来标识地址,从数学角度看约有40亿个可用的公网IP,从当今互联网的规模来看,这确实是个脑残的设计。加上各种各种物联网设备,IPV4未来必然难堪重负。

IPV6使用了128位二进制数来标识地址,可用IP数量多得吓人,号称能让地球上每一粒沙子都能分配到一个可用IP,可以说是一个绝佳的治本方案了,但是就是一个这么好的方案,却迟迟没有完全落地,主要原因有两点:

1、NAT技术大大延缓了IPV4的寿命。

NAT技术可以使得几千个用户能共用一个公网IP,换句话说,NAT技术使得IPV4总体可支撑的用户数量扩大了几千倍。在极限情况下,理论上现网架构的IPV4可以支撑几万亿个在网设备,而现在的网络用户规模还远远没有达到那么大。多久能达到这个极限呢?十年?二十年?五十年?暂时还不得而知,也许在不久的将来,科学家们有发明了一种方法,能够给IPV4再续命一波呢?因此在很多人看来,IPV6并不是刚需。

2、改造规模过于庞大

现网的IPV4用户数量极大,并且网络规模也极大;IPV4标准也渗透到了IT领域的方方面面,一夜之间推到重来是不可能的,演变的过程中,还要尽量保证在网业务不被中断。因此,唯一的方法就是让IPV4和IPV6可以和谐共处、让IT基础设施的升级能够和平演变。这样一个和平演变的过程是相当久的。这不仅是技术问题,更是历史问题、商业问题甚至政治问题(IPV4地址的分配是不均的,老美无疑是最受益者,对于IPV4地址较少的国家来说,对IPV6改造的需求可能更高)。

出于以上两种主要原因,虽然业内喊着IPV6改造的口号多年,却迟迟未完全落地。但是17年11月,国家发布了IPV6的部署计划,大家来感受一下国家的决心:

虽然说,支持IPV6和默认使用IPV6是两码事,但是从我国政策层面讲,IPV6改造进程会大大加快,提前了解一波IPV6知识绝对不亏。

IPV6报头格式

下面介绍工程师们日常分析须知的字段:

version:表明版本号,长度4bit,对于ipv6来说,该值为6

traffic class:类比IPV4的TOS字段,主要应用于QOS,用来表示IPV6数据包的优先级

payload lenth:用来表示IPV6数据包有效数据的长度

Hop limit:类比IPV4的TTL值

next header:上一层的协议类型(TCP,UDP,ICMP等)或“扩展头部”。扩展头部是IPV6新引入的一个概念,需要时,它可以为我们处理分片、认证等功能。

IPV6地址语法

ipv4是点分十进制数字表示,而IPV6是冒号分隔,16进制表示。128位的二进制地址用16进制表示,共32位十六进制数。(此处不理解的读者二进制转16进制运算不合格)。通常来说,每四个十六进制数就用冒号隔开,比如fe80:0000:0000:0000:3406:8d0c:59e4:ed7d。

由于IPV6的地址非常之长,而且通常会出现多个连续的0,所以IPV6提供了压缩格式:

每16比特的0可以缩写成一个,比如fe80:0000:0000:0000:3406:8d0c:59e4:ed7d可以缩写成:

fe80:0:0:0:3406:8d0c:59e4:ed7d

如果冒号两边出现多组0,可以合并成双冒号的形式,比如上面的IPV6地址可以进一步精简成

fe80::3406:8d0c:59e4:ed7d

注意:双冒号只能出现一次

IPV6单播地址类别

IPV6地址可分为三种:

单播地址。细分还有很多种类,下文会较详细地介绍。

组播地址。IPV6没有广播。广播的功能由组播代行。组播本身比较复杂,考虑到本文是入门型文章,因此对组播地址不作介绍

任播地址。IPV6引出的新概念。本文不做介绍。

下面介绍单播地址的分类

1)全球单播地址:

这种类型的单播地址类似于IPV4的公网地址,可以在公网上通信。它的显著特征是:128位二进制中,前三位固定为001。所以全球单播地址都是以2(0010)或者3(0011)开头的。全局单播地址有三个部分:

全局路由前缀(48位)

子网ID(16位)

接口ID(64位)

根据RFC4291的建议,通常全局路由前缀48位,子网ID16位,接口ID64位。全局路由前缀由ISP分配。不同于IPV4,IPV6没有子网掩码的概念,因为IPV6的地址范围太大了,几乎不需要变长子网这样在主机数和网络数中折中的解决方案,所以IPV6明确地划分了子网ID和接口ID。RFC4291的建议是子网ID16位,接口ID64位,已经被广泛采用。不过IPV6虽然不存在子网掩码的概念,但是IPV6也可以通过位数来界定一段前缀相同的地址,比如/64就表示前64位和该IP相同的IPV6地址。比如全球单播地址,前三位固定是001,我可以用2000::/3来表示。这种表示法还是很常见的。

接口ID可以理解为IPV4的主机位。在没有路由器路由的情况下,两台主机的全局路由前缀和子网ID需要一样才能通信。也就是说,IPV4中,我们说:同个二层网络要同网段才能通信;在IPV6中,同个二层网络下要全局路由前缀和子网ID相同才能通信。

2)链路本地地址

前10位固定是:1111111010,中间54位是0,最后64位是接口ID;(这段地址可以表示为FE80::/10,能理解不?)每一个网络接口都会有这样一个链路本地地址,同时还可以配置一个全球单播地址;链路本地地址类似于IPV4中的169.254段的地址(IPV4获取失败之后的地址),它存在自有其道理,但本文不过多阐述,了解即可。

3)唯一本地地址

以FC00::/7开头的地址。相当于IPV4的私网地址(10.0.0.0,172.16.0.0,192.168.0.0)。IPV6同样在很多场合需要私网,私网的出现并不仅仅是为了解决IP地址紧缺的问题。在私网-NAT的模型下,私网IP客户端可以通过NAT发起向公网IP服务器的连接请求,但是公网IP客户端却不能主动向位于私网的客户端发起连接请求,某种程度上降低了私网用户受到来自外网的网络攻击的可能性。因此,处于某些安全性和私密性的需要,IPV6很多时候也需要支持私网和NAT

IPV4网络如何向IPV6过渡

IPV4网络的改造非一朝一夕之功,需要多个IT产业从技术、商业、政策上共同协作。IPV4和IPV6会长久共存并缓慢迁移,目前致力于过渡的技术大致有:

  1. 操作系统内核对IPV4和IPV6进行双栈支持,目前无论是windows还是linux都实现了双堆栈。这样一来,在网络层面,在网设备可以支持两种协议报文的发送和接收,边界路由器可以对IPV4和IPV6报文按需进行灵活的转换;从应用层面,新版程序调用内核中的IPV6类库即可实现通信功能。
  2. 隧道技术。将IPV6数据包封装在IPV4数据包中,使得IPV6数据包能在IPV4网络中传输,最终由边界路由器剥去IPV4报头,使其得以到达远端的IPV6网络。隧道技术同样多种多样,现阶段知道有这么一回事就行。
  3. 协议转换技术。在IPV4和IPV6之间建立映射关系,典型实现有NAT64/DNS64技术。

目前centos7是默认支持ipv6的,具体的启用和停用可以通过控制内核参数和修改配置文件实现。本文篇幅有点长了,以后有机会给大家介绍。

基础部分的网络原理已经给大家介绍完毕了,下一节会给大家介绍ifcfg命令家族,是linux对网络控制命令的早期实现,至今仍有大量的工程师在使用。

关注本公众号获取最新更新

每周一、三、五稳定更新

Linux入门真经-049IPV6介绍相关推荐

  1. 嵌入式linux入门-常用命令介绍

    使用芯片手册的时候,会时常的看到芯片中有的位填写的数字有保留,那是为了以后芯片升级和扩展使用的,现在是不使用.如GPF4占用的[9:8] 00 = Input,01 = Output, 10 = EI ...

  2. Linux入门真经-037LVM逻辑卷扩容与快照

    本节介绍如何对LVM进行扩容. 1.扩展LV 上一节我们创建了两个PV:20G的sdb和5G的sdc1,并将他们组合成一个25G的VG:vgpool1,最后在vgpool1之上创建了一个20G的LV: ...

  3. Linux入门真经-029MBR格式分区与fdisk

    本节介绍MBR分区格式和fdisk这一分区工具. 1.硬盘分区格式 我们以前讲过文件的元数据:记录了文件的各种属性信息.同样的,硬盘的分区信息是不是也要占用一部分存储空间呢?答案是肯定的,因为硬盘总得 ...

  4. Linux入门真经-032文件系统的创建与管理

    本节介绍文件系统的创建与一些文件系统管理的相关知识. 1.创建文件系统 新建文件系统常用的是mkfs命令. mkfs说全了其实是:make filesystem 用法: mkfs.FILESYSTEM ...

  5. Linux入门真经-036LVM逻辑卷原理与创建

    ​有时候我们会面临这样一个窘境:分区内的数据快速增长,分区剩余空间几乎不够用了.这个时候你可能得想办法找个更大的硬盘或者分区,把数据挪过去,费时费力.有时候分区一开始分大了,很多空间又浪费了. 是否有 ...

  6. shell编程入门 linux解释器原理,Shell编程入门Linux解释器原理详细介绍 使用Shell进行工作的人们对.doc...

    Shell编程入门Linux解释器原理详细介绍 使用Shell进行工作的人们对 Shell编程入门:Linux解释器原理详细介绍使用Shell进行工作的人们对Unix/Linux下的Shell编程都很 ...

  7. linux入门详细介绍

    此文章较长,适合慢读,可查看linux入门大全:包括零基础入门.推荐Linux资源:linux视频文档资料下载 操作系统是一种特殊的软件,用来让计算机硬件和软件协同工作,并且处理我们敲打键盘和移动鼠标 ...

  8. linux 易语言窗口程序_浅谈Linux入门的基本知识

    浅谈Linux入门的基本知识 图形模式与文字模式的切换方式Linux预设提供了六个命令窗口终端机让我们来登录. 默认我们登录的就是第一个窗口,也就是tty1,这个六个窗口分别为tty1.tty2 - ...

  9. 分享:嵌入式Linux入门学习指导

    很多嵌入式linux初学者对嵌入式linux学习十分迷茫,不知道该怎么一步步学习,嵌入式linux学习方法,学习的流程步骤以及学习过程中需要看哪些好的书籍.下面凌阳教育嵌入式培训网就为大家整理的嵌入式 ...

最新文章

  1. 138.ssm 框架下 导出Excel
  2. 关于搭建fis3 工程的过程记录
  3. java面向_java是面向什么的语言?
  4. gitlab 汉化后502
  5. Vue之v-if, v-else, v-show, v-for, v-bind
  6. Genymotion安装apk问题,不能部署Genymotion-ARM-Translation_v1.zip
  7. Java分代垃圾回收机制:年轻代/年老代/持久代(转)
  8. 杭电OJ 1720 进制处理
  9. cad快捷栏怎么调出来_cad任务栏怎么调出来了
  10. 打印纸张尺寸换算_纸张尺寸对照表
  11. 百钱百鸡 公鸡5文钱一只,母鸡3文钱一只,小鸡3只一文钱
  12. linux之OPERATION(运维)一
  13. 大数据与云计算、物联网三者的区别和关联
  14. 阿里云Centos7安装mysql5.7
  15. (最新最详细)安装ubuntu18.04
  16. 资源调度源码分析和任务调度源码分析
  17. 用友GRP-U8Cloud V11.0 V11.21 行政业务高校 G C版
  18. 2022-07 Pandas进阶复盘汇总
  19. 2020 Winter Holiday Schedule
  20. INFRARED INDUSTRIES气体分析仪

热门文章

  1. 大计基作业记录(2)
  2. 心若天地宽,放眼尽欢颜
  3. html5实现贪吃蛇小游戏
  4. AOJ102材质贴图
  5. 在notepad++中安装jslint插件
  6. 完美解决Linux环境编译ffmpeg库
  7. Go语言go modure的使用以及第三方包的依赖管理
  8. (OK) Android-x86-7.1.1 - quagga - ospf6d - SIMP (Single-Interface MultiPath)
  9. Openstack_ocata部署
  10. 多多店铺基础优化经验分享