今天咱也不扯其他的,就来好好和你聊聊关于网络中IP地址的那些事,学好了用对了,你可以躲避来自亲友的定位(和朋友彻夜嗨),学好了用不对,那么你就可以去警局里自首了。
(注意,本文章全是干货,需要一点点英文和一点点数学计算,并且还有些长。)
咱先来说说IP地址是个什么东西:
Internet依靠TCP/IP协议,在全球范围内实现不同硬件结构、不同操作系统、不同网络系统的互联。在Internet上,每一个节点都依靠唯一的IP地址互相区分和相互联系。传统的IP地址是一个32位二进制数的地址,也叫IPV4, 由4个8位字段组成。IPv6采用128位地址长度,8个十六进制。每个IP地址都包含两部分:网络ID和主机ID。网络ID标识在同一个物理网络上的所有主机,同时位数决定了可以分配的网络数目(2^网络号位数-2),主机ID 标识该物理网络上的每一个主机,同时决定了网络中最大的主机数(2^主机号位数-2)。
然而,由于整个互联网所包含的网络规模可能比较大,也可能比较小,设计者选择了一种灵活的方案:将IP地址空间划分成5种不同的类别,每一类具有不同的网络号位数和主机号位数,分别表示不同的网络数和该网络下能容纳的主机位数。
咱再来说说IP地址的分类:
A类地址【大规模网络】:一个A类IP地址由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”, 0是保留的并且表示所有IP地址,而127也是保留的地址,并且是用于测试环回用的,范围是从0.0.0.1 到126.0.0.0。可用的A类网络有126个,每个网络能容纳1亿多个主机(2的24次方的主机数目),以子网掩码来进行区别:255.0.0.0;
B类地址【中等规模网络】:一个B类IP地址由2个字节的网络地址和2个字节的主机地址组成,网络地址的最高位必须是“10”,地址范围从128.0.0.0到191.255.255.255。可用的B类网络有16382个,每个网络能容纳65534个主机 ,以子网掩码来进行区别:255.255.0.0;
C类地址【小规模局域网】:一个C类IP地址由3字节的网络地址和1字节的主机地址组成,网络地址的最高位必须是“110”,范围从192.0.0.0到223.255.255.255。C类网络可达209万余个,每个网络能容纳254个主机。以子网掩码来进行区别: 255.255.255.0;
D类地址【多播】:范围从224-239,D类IP地址第一个字节以“1110”开始,它是一个专门保留的地址。它并不指向特定的网络,目前这一类地址被用在多点广播(Multicast)中。多点广播地址用来一次寻址一组计算机,它标识共享同一协议的一组计算机;
E类地址【保留】:范围从240-254,以“11110”开始,为将来使用保留。 全零(“0.0.0.0”)地址对应于当前主机。全“1”的IP地址(“255.255.255.255”)是当前子网的广播地址。
除去特殊作用的D、E两类,剩下的A、B、C三类地址是我们常见的IP地址段,在这三类地址中,绝大多数的IP地址都是公有地址,需要向国际互联网信息中心申请注册。但是在IPv4地址协议中预留了3个IP地址段,作为私有地址,供组织机构内部使用。这三个地址段分别位于A、B、C三类地址内:
A类地址:10.0.0.0--10.255.255.255
B类地址:172.16.0.0--172.31.255.255
C类地址:192.168.0.0--192.168.255.255
常见的局域网由于容量小,一般选择C类的192.168.0.0作为地址段使用。需要补充说明的是,由于NAT和子网掩码的存在,实际在使用中,一个C类大小的局域网也可以选择A类的10.0.0.0网段作为自己的IP地址段。大多数局域网之所以仍然选择192.168.0.0/24或者192.168.1.0/24作为自己的IP地址段,更多的是因为约定成俗或者说网管个人习惯的关系。
说完是什么和分类咱再来说说局域网和广域网:
局域网:也就是指内网、私网,英文叫LAN,是在一个局部的地理范围内,将各种计算机设备、外部设备、数据库互相关联起来组成的计算机通信网。比如校园网,也比如公司中的内部网,甚至通过一个路由器连接形成的网络也叫局域网。
广域网:也叫外网、公网,简称WAN,是一种跨越大的、地域性的计算机网络集合、通常跨越省、市、国家。需要说明的是,局域网,广域网,城域网其实都是范围上的概念。而Internet就是特指那个将全球联系在一起提供公共服务的超大广域网。
其区别在于广域网IP地址一般要到ISP处注册、交费之后才能申请到,广域网IP地址不能重复;局域网上的每一台电脑(或其他网络设备)都有一个或多个局域网IP地址,局域网IP地址是局域网内部分配的,不同局域网的IP地址可以重复,不会相互影响。因此,使用同一台路由器的不同电脑,具有不同路由内的私域地址,一般都是以192.168开头,类似于192.168.0.100,这是局域网段,但却都具有相同的公网ip地址(在百度搜索ip地址时可以发现都一样) ,这个地址由运营商提供。那么如何通过私有ip去访问百度、淘宝等外部公网呢,这里就涉及到了地址转换技术NAT(Network Address Translation,网络地址转换)它是一个IETF(Internet Engineering Task Force, Internet工程任务组)标准,允许一个整体机构以一个公用IP(Internet Protocol)地址出现在Internet上。顾名思义,它是一种把内部私有网络地址(IP地址)翻译成合法网络IP地址的技术。
现在就得提提你们所见到的子网掩码:
子网掩码是一个32位的二进制数。也是一种有效的分割网络的方法,根据子网掩码可以知道网络又多少位,主机有多少位。使用自定义子网掩码之后,就不存在ABC网络的概念了,这类网络叫无线网络,需要靠IP地址的第一个字节数据范围来区分网络号的叫有类网络。比如一个A类地址能容纳的主机数有2^24-2个主机,一般一个组织是不可能用到这么多地址的,势必会造成浪费。但是我们可以通过子网掩码来将一个A类地址划分成多个子网,根据IP和子网掩码可以判断同一个网络地址下的主机是否在同一个网段。将十进制的IP地址和子网掩码转换为二进制形式,进行与计算,如果得到结果相同,则在同一个网段。当A机发送数据给B机时,会先将B机的IP与子网掩码进行&运算查看是否在同一个网段,如果不在同一网段内则会把数据发送给网关,在同一个网段的可以直接在数据链路层通信。知道子网数和ip地址可以计算其子网掩码,知道每个子网下的主机数目和ip地址也可以计算器子网掩码。
正常情况下,网络ip地址(也适用于位数)=网络地址+主机地址,同时一旦将网络划分为子网,那么ip地址(也适用于位数)=网络地址+子网地址+主机地址。
好,基础说完了,咱们进阶一下,说说IPv4和IPv6协议:
- 先说IPv4协议:
1.简介
网际协议版本4(英语:InternetProtocolversion4,IPv4),又称互联网通信协议第四版,是网际协议开发过程中的第四个修订版本,也是此协议第一个被广泛部署的版本。IPv4是互联网的核心,也是使用最广泛的网际协议版本,其后继版本为IPv6,直到2011年,IANAIPv4位址完全用尽时,IPv6仍处在部署的初期。
IPv4在IETF于1981年9月发布的RFC 791中被描述,此RFC替换了于1980年1月发布的RFC 760。
2.地址
IPv4使用32位(4字节)地址,因此地址空间中只有4,294,967,296(2)个地址。不过,一些地址是为特殊用途所保留的,如专用网络(约1800万个地址)和多播地址(约2.7亿个地址),这减少了可在互联网上路由的地址数量。随着地址不断被分配给最终用户,IPv4地址枯竭问题也在随之产生。基于分类网络、无类别域间路由和网络地址转换的地址结构重构显著地减少了地址枯竭的速度。但在2011年2月3日,在最后5个地址块被分配给5个区域互联网注册管理机构之后,IANA的主要地址池已经用尽。
这些限制刺激了仍在开发早期的IPv6的部署,这也是唯一的长期解决方案。
3.地址格式
IPv4地址可被写作任何表示一个32位整数值的形式,但为了方便人类阅读和分析,它通常被写作点分十进制的形式,即四个字节被分开用十进制写出,中间用点分隔。
下表展示了几种不同的格式:
格式 值 从点分十进制转换
点分十进制 192.0.2.235 不适用
点分十六进制 0xC0.0x00.0x02.0xEB 每个字节被单独转换为十六进制
点分八进制 0300.0000.0002.0353 每个字节被单独转换为八进制
十六进制 0xC00002EB 将点分十六进制连在一起
十进制 3221226219 用十进制写出的32位整数
八进制 030000001353 用八进制写出的32位整数
此外,在点分格式中,每个字节都可用任意的进制表达。如,192.0x00.0002.235是一种合法(但不常用)的表示。
4.分配
最初,一个IP地址被分成两部分:网上识别码在地址的高位字节中,主机识别码在剩下的部分中。
为了克服这个限制,在随后出现的分类网络中,地址的高位字节被重定义为网络的类(Class)。这个系统定义了五个类别:A、B、C、D和E。A、B和C类有不同的网络类别长度,剩余的部分被用来识别网络内的主机,这就意味着每个网络类别有着不同的给主机编址的能力。D类被用于多播地址,E类被留作将来使用。
1993年,无类别域间路由(CIDR)正式地取代了分类网络,后者也因此被称为“有类别”的。
CIDR被设计为可以重新划分地址空间,因此小的或大的地址块均可以分配给用户。CIDR创建的分层架构由互联网号码分配局(IANA)和区域互联网注册管理机构(RIR)进行管理,每个RIR均维护着一个公共的WHOIS数据库,以此提供IP地址分配的详情。
5.特殊用途的地址
保留的地址块
CIDR地址块 描述 参考资料
0.0.0.0/8 本网络(仅作为源地址时合法) RFC 5735
10.0.0.0/8 专用网络 RFC 1918
100.64.0.0/10 电信级NAT RFC 6598
127.0.0.0/8 环回 RFC 5735
169.254.0.0/16 链路本地 RFC 3927
172.16.0.0/12 专用网络 RFC 1918
192.0.0.0/24 保留(IANA) RFC 5735
192.0.2.0/24 TEST-NET-1,文档和示例 RFC 5735
192.88.99.0/24 6to4中继 RFC 3068
192.168.0.0/16 专用网络 RFC 1918
198.18.0.0/15 网络基准测试 RFC 2544
198.51.100.0/24 TEST-NET-2,文档和示例 RFC 5737
203.0.113.0/24 TEST-NET-3,文档和示例 RFC 5737
224.0.0.0/4 多播(之前的D类网络) RFC 3171
240.0.0.0/4 保留(之前的E类网络) RFC 1700
255.255.255.255 受限广播 RFC 919
6.专用网络
在IPv4所允许的大约四十亿地址中,三个地址块被保留作专用网络。这些地址块在专用网络之外不可路由,专用网络之内的主机也不能直接与公共网络通信。但通过网络地址转换(NAT),使用这些地址的主机可以像拥有共有地址的主机在互联网上通信。
下表展示了三个被保留作专用网络的地址块(RFC 1918):
名字 地址范围 地址数量 有类别的描述 最大的CIDR地址块
24位块 10.0.0.0–10.255.255.255 16,777,216 一个A类 10.0.0.0/8
20位块 172.16.0.0–172.31.255.255 1,048,576 连续的16个B类 172.16.0.0/12
16位块 192.168.0.0–192.168.255.255 65,536 连续的256个C类 192.168.0.0/16
7.虚拟专用网络
通常情况下,路由器根据数据报文的目的地址决定转发数据报文的下一跳地址。使用专用网络地址作为目的地址的数据包通常无法被公共路由器正确送达,因为公共路由器没有相应的路由信息,即无法得知如何才能转发到该IP地址。因此,这就需要通过一种方法,将指引数据报文转发的下一跳地址和真正要传输的目的地址分离开。于是就使用虚拟专用网,将IP报文封装在其他报文内,以便于通过公网上的公共路由器,达到能处理该报文内层数据的网络设备上解除报文后,该数据包可以被继续转发到目的地址。
将数据报文封装的过程中,可以将数据报文封装于IP报文中,也可以使用多协议标签交换协议等,通过其他协议引导数据报文转发。也可以封装同时加密数据,以保护数据内容。
8.链路本地地址
RFC 5735中将地址块169.254.0.0/16保留为特殊用于链路本地地址,这些地址仅在链路上有效(如一段本地网络或一个端到端连接)。这些地址与专用网络地址一样不可路由,也不可作为公共网络上报文的源或目的地址。链路本地地址主要被用于地址自动配置:当主机不能从DHCP服务器处获得IP地址时,它会用这种方法生成一个。
当这个地址块最初被保留时,地址自动配置尚没有一个标准。为了填补这个空白,微软创建了一种叫自动专用IP寻址(APIPA)的实现。因微软的市场影响力,APIPA已经被部署到了几百万机器上,也因此成为了事实上的工业标准。许多年后,IETF为此定义了一份正式的标准:RFC 3927,命名为“IPv4链路本地地址的动态配置”。
9.环回地址
地址块127.0.0.0/8被保留作环回通信用。此范围中的地址绝不应出现于主机之外,发送至此地址的报文被作为同一虚拟网络设备上的入站报文(环回),主要用于检查TCP/IP协议栈是否正确运行和本机对本机的链接。
以0或255结尾的地址
一个常见的误解是以0或255结尾的地址永远不能分配给主机:这仅在子网掩码至少24位长度时(旧的C类地址,或CIDR中的/24到/32)才成立。
在有类别的编址中,只有三种可能的子网掩码:A类:255.0.0.0,B类:255.255.0.0,C类:255.255.255.0。如,在子网192.168.5.0/255.255.255.0(即192.168.5.0/24)中,网上识别码192.168.5.0用来表示整个子网,所以它不能用来标识子网上的某个特定主机。
广播地址允许数据包发往子网上的所有设备。一般情况下,广播地址是借由子网掩码的比特反码并和网上识别码运行 OR 的比特运算得到,即广播地址是子网中的最后一个地址。在上述例子中,广播地址是192.168.5.255,所以为了避免歧义,这个地址也不能被分配给主机。在A、B和C类网络中,广播地址总是以255结尾。
但是,这并不意味着每个以255结尾的地址都不能用做主机地址。比如,在B类子网192.168.0.0/255.255.0.0(即192.168.0.0/16)中,广播地址是192.168.255.255(主机位全1)。在这种情况下,尽管可能带来误解,但192.168.1.255、192.168.2.255等地址可以被分配给主机。同理,192.168.0.0作为网上识别码不能被分配,但192.168.1.0、192.168.2.0等都是可以的。
随着CIDR的到来,广播地址不一定总是以255结尾(广播地址是指主机位都为1的地址,255只是其中一种情况)。比如,子网203.0.113.16/28的广播地址是203.0.113.31。过程如下:
网络:203.0.113.16
掩码:255.255.255.240
掩码反码:0.0.0.15
OR操作:
00010000 | 00001111 = 00011111 =31
一般情况下,子网的第一个和最后一个地址分别被作为网上识别码和广播地址,任何其它地址都可以被分配给其上的主机。
10.地址解析
互联网上的主机通常被指定,但IP报文的路由是由IP地址而不是这些名字决定的。这就需要将域名翻译(解析)成地址。
域名系统(DNS)提供了域名转换为IP地址的服务。与CIDR相像,DNS是层级结构。
11.地址空间枯竭
从20世纪80年代起,一个很明显的问题是IPv4地址在以比设计时的预计更快的速度耗尽。这是创建分类网络、无类别域间路由,和最终决定重新设计基于更长地址的互联网协议(IPv6)的诱因。
一些市场力量也加快了IPv4地址的耗尽,如:
互联网用户的急速增长;
总是开着的设备:ADSL调制解调器、缆线调制解调器等;
移动设备:笔记本电脑、PDA、移动电话等。
随着互联网的增长,各种各样的技术随之产生以应对IPv4地址的耗尽,如:
网络地址转换(NAT);
专用网络的使用;
动态主机设置协议(DHCP);
基于名字的虚拟主机;
区域互联网注册管理机构对地址分配的控制;
对互联网初期分配的大地址块的回收。
随着IANA把最后5个地址块分配给5个RIR,其主地址池在2011年2月3日耗尽。许多地址分配和消耗的模型都预测第一个耗尽地址的RIR会在2011年的下半年出现。
广泛被接受且已被标准化的解决方案是迁移至IPv6。IPv6的地址长度从IPv4的32位增长到了128位,以此提供了更好的路由聚合,也为最终用户分配最小为2个主机地址的地址块成为可能。迁移过程正在进行,但其完成仍需要相当的时间。
12.网络地址转换
对地址的快速分配和其造成的地址短缺促成了许多有效应用地址的方法,其中一种就是网络地址转换(NAT)。
13.分片和组装
互联网协议(IP)是整个互联网架构的基础,可以支持不同的物理层网络,即IP层独立于链路层传输技术。不同的链路层不仅在传输速度上有差异,还在帧结构和大小上有所不同,不同MTU参数描述了数据帧的大小。为了实现IP数据包能够使用不同的链路层技术,需要将IP数据包变成适合链路层的数据格式,IP报文的分片即是IP数据包为了满足链路层的数据大小而进行的分割。
在IPv6不要求路由器执行分片操作,而是将检测路径最大传输单元大小的任务交给了主机。
分片
当设备收到IP报文时,分析其目的地址并决定要在哪个链路上发送它。MTU决定了数据载荷的最大长度,如IP报文长度比MTU大,则IP数据包必须进行分片。每一片的长度都小于等于MTU减去IP首部长度。接下来每一片均被放到独立的IP报文中,并进行如下修改:
总长字段被修改为此分片的长度;
更多分片(MF)标志被设置,除了最后一片;
分片偏移量字段被调整为合适的值;
首部检验和被重新计算。
例如,对于一个长20字节的首部和一个MTU为1,500的以太网,分片偏移量将会是:0、(1480/8)=185、(2960/8)=370、(4440/8)=555、(5920/8)=740、等等。
如果报文经过路径的MTU减小了,那么分片可能会被再次分片。
比如,一个4,500字节的数据载荷被封装进了一个没有选项的IP报文(即总长为4,520字节),并在MTU为2,500字节的链路上传输,那么它会被破成如下两个分片:
# 总长 更多分片(MF)? DF 分片偏移量
首部 数据
1 2500 是 0 0
20 2480
2 2040 否 0 310
20 2020
假设下一跳的MTU为1,500字节,那么每一个分片都会被再次分成两片(由于数据片段只有在目的主机才重新被组成数据报,因此再次分片是针对每个在网络中传输的数据帧):
# 总长 更多分片(MF)? DF 分片偏移量
首部 数据
1 1500 是 0 0
20 1480
2 1020 是 0 185
20 1000
3 1500 是 0 310
20 1480
4 560 否 0 495
20 540
第3和4片是从原始第2片再次分片而来,所以除了分片后的最后一个分片外MF为都为1。
重组
当一个接收者发现IP报文的下列项目之一为真时:
DF标志为0;
分片偏移量字段不为0。
它便知道这个报文已被分片,并随即将数据、标识符字段、分片偏移量和更多分片标志一起储存起来。
当接受者收到了更多分片标志未被设置的分片时,它便知道原始数据载荷的总长。一旦它收齐了所有的分片,它便可以将所有片按照正确的顺序(通过分片偏移量)组装起来,并交给上层协议栈。
14.辅助协议
互联网协议定义并激活了网络层,它使用一个逻辑地址系统。IP地址并不以任何永久的方式绑定到硬件,而且事实上一个网络接口可以有许多IP地址。为了正确地交付一份报文,主机和路由器需要其它机制来识别设备接口和IP地址之间的关联。地址解析协议(ARP)为IPv4执行这种IP地址到物理地址(MAC地址)的转换。
此外,反向操作有时候也是必须的,比如,一台主机在启动时需要知道自己的IP地址(除非地址已经被管理员预先设置)。被用于这一用途的协议有动态主机设置协议(DHCP)、引导协议(BOOTP)和比较不常用的RARP。
- IPv4说完了咱再说说IPv6协议
1.发展历史
至1992年初,一些关于互联网地址系统的建议在IETF(互联网工程任务组)上提出,并于1992年底形成白皮书。在1993年9月,IETF建立了一个临时的ad-hoc下一代IP(IPng)领域来专门解决下一代IP的问题。这个新领域由Allison Mankin和Scott Bradner领导,成员由15名来自不同工作背景的工程师组成。IETF于1994年7月25日采纳了IPng模型,并形成几个IPng工作组。
从1996年开始,一系列用于定义IPv6的RFC发表出来,最初的版本为RFC1883。由于IPv4和IPv6地址格式等不相同,因此在未来的很长一段时间里,互联网中出现IPv4和IPv6长期共存的局面。在IPv4和IPv6共存的网络中,对于仅有IPv4地址,或仅有IPv6地址的端系统,两者无法直接通信的,此时可依靠中间网关或者使用其他过渡机制实现通信。
2003年1月22日,IETF发布了IPv6测试性网络,即6bone网络。它是IETF用于测试IPv6网络而进行的一项IPng工程项目,该工程目的是测试如何将IPv4网络向IPv6网络迁移。作为IPv6问题测试的平台,6bone网络包括协议的实现、IPv4向IPv6迁移等功能。6bone操作建立在IPv6试验地址分配基础上.并采用3FFE::/16的IPv6前缀,为IPv6产品及网络的测试和试商用部署提供测试环境。
截至2009年6月,6bone网络技术已经支持了39个国家的260个组织机构。6bone网络被设计成为一个类似于全球性层次化的IPv6网络,同实际的互联网类似,它包括伪顶级转接提供商、伪次级转接提供商和伪站点级组织机构。由伪顶级提供商负责连接全球范围的组织机构,伪顶级提供商之间通过IPv6的lBGP-4扩展来尽力通信,伪次级提供商也通过BGP-4连接到伪区域性顶级提供商,伪站点级组织机构连接到伪次级提供商。伪站点级组织机构可以通过默认路由或BGP-4连接到其伪提供商。6bone最初开始于虚拟网络,它使用IPv6-over-IPv4隧道过渡技术。因此,它是一个基于IPv4互联网且支持IPv6传输的网络,后来逐渐建立了纯IPv6链接。
从2011年开始,主要用在个人计算机和服务器系统上的操作系统基本上都支持高质量IPv6配置产品。例如,Microsoft Windows从Windows 2000起就开始支持IPv6,到Windows XP时已经进入了产品完备阶段。而Windows Vista及以后的版本,如Windows 7、Windows 8等操作系统都已经完全支持IPv6,并对其进行了改进以提高支持度。Mac OS X Panther(10.3)、Linux 2.6、FreeBSD和Solaris同样支持IPv6的成熟产品。一些应用基于IPv6实现.如BitTorrent点到点文件传输协议等,避免了使用NAT的IPv4私有网络无法正常使用的普遍问题。
2012年6月6日,国际互联网协会举行了世界IPv6启动纪念日,这一天,全球IPv6网络正式启动。多家知名网站,如Google、Facebook和Yahoo等,于当天全球标准时间0点(北京时间8点整)开始永久性支持IPv6访问。
根据飓风电子统计,截至2013年9月,互联网318个顶级域名中的283个支持IPv6接入它们的DNS。约占89.0%,其中276个域名包含IPv6黏附记录,共5,138,365个域名在各自的域内拥有IPv6地址记录 [3] 。
2017年11月26日,中共中央办公厅、国务院办公厅印发《推进互联网协议第六版(IPv6)规模部署行动计划》。
2018年7月,百度云制定了中国的IPv6改造方案 。11月,国家下一代互联网产业技术创新战略联盟在北京发布了中国首份IPv6业务用户体验监测报告显示,移动宽带IPv6普及率为6.16%,IPv6覆盖用户数为7017万户,IPv6活跃用户数仅有718万户,与国家规划部署的目标还有较大距离。
2019年4月16日,工业和信息化部发布《关于开展2019年IPv6网络就绪专项行动的通知》。
2020年3月23日,工业和信息化部发布《关于开展2020年IPv6端到端贯通能力提升专项行动的通知》,要求到2020年末,IPv6活跃连接数达到11.5 亿,较2019年8亿连接数的目标提高了43%。
2.组成结构
表示方法
IPv6的地址长度为128位,是IPv4地址长度的4倍。于是IPv4点分十进制格式不再适用,采用十六进制表示。IPv6有3种表示方法。
一、冒分十六进制表示法
格式为X:X:X:X:X:X:X:X,其中每个X表示地址中的16b,以十六进制表示,例如:
ABCD:EF01:2345:6789:ABCD:EF01:2345:6789
这种表示法中,每个X的前导0是可以省略的,例如:
2001:0DB8:0000:0023:0008:0800:200C:417A→ 2001:DB8:0:23:8:800:200C:417A
二、0位压缩表示法
在某些情况下,一个IPv6地址中间可能包含很长的一段0,可以把连续的一段0压缩为“::”。但为保证地址解析的唯一性,地址中”::”只能出现一次,例如:
FF01:0:0:0:0:0:0:1101 → FF01::1101
0:0:0:0:0:0:0:1 → ::1
0:0:0:0:0:0:0:0 → ::
三、内嵌IPv4地址表示法
为了实现IPv4-IPv6互通,IPv4地址会嵌入IPv6地址中,此时地址常表示为:X:X:X:X:X:X:d.d.d.d,前96b采用冒分十六进制表示,而最后32b地址则使用IPv4的点分十进制表示,例如::192.168.0.1与::FFFF:192.168.0.1就是两个典型的例子,注意在前96b中,压缩0位的方法依旧适用 。
3.报文内容
IPv6报文的整体结构分为IPv6报头、扩展报头和上层协议数据3部分。IPv6报头是必选报文头部,长度固定为40B,包含该报文的基本信息;扩展报头是可选报头,可能存在0个、1个或多个,IPv6协议通过扩展报头实现各种丰富的功能;上层协议数据是该IPv6报文携带的上层数据,可能是ICMPv6报文、TCP报文、UDP报文或其他可能报文。
版本号 表示协议版本.值为6
流量等级 主要用于QoS
流标签 用来标识同一个流里面的报文
载荷长度 表明该IPv6包头部后包含的字节数,包含扩展头部
下一报头 该字段用来指明报头后接的报文头部的类型,若存在扩展头,表示第一个扩展头的类型,否则表示其上层协议的类型,它是IPv6各种功能的核心实现方法
跳数限制 该字段类似于IPv4中的TTL,每次转发跳数减一,该字段达到0时包将会被丢弃
源地址 标识该报文的来源地址
目的地址 标识该报文的目的地址
扩展头部:IPv6报文中不再有“选项”字段,而是通过“下一报头”字段配合IPv6扩展报头来实现选项的功能。使用扩展头时,将在IPv6报文下一报头字段表明首个扩展报头的类型,再根据该类型对扩展报头进行读取与处理。每个扩展报头同样包含下一报头字段,若接下来有其他扩展报头,即在该字段中继续标明接下来的扩展报头的类型,从而达到添加连续多个扩展报头的目的。在最后一个扩展报头的下一报头字段中,则标明该报文上层协议的类型,用以读取上层协议数据 。
4.地址类型
IPv6协议主要定义了三种地址类型:单播地址(Unicast Address)、组播地址(Multicast Address)和任播地址(Anycast Address)。与原来在IPv4地址相比,新增了“任播地址”类型,取消了原来IPv4地址中的广播地址,因为在IPv6中的广播功能是通过组播来完成的。
单播地址:用来唯一标识一个接口,类似于IPv4中的单播地址。发送到单播地址的数据报文将被传送给此地址所标识的一个接口。
组播地址:用来标识一组接口(通常这组接口属于不同的节点),类似于IPv4中的组播地址。发送到组播地址的数据报文被传送给此地址所标识的所有接口。
任播地址:用来标识一组接口(通常这组接口属于不同的节点)。发送到任播地址的数据报文被传送给此地址所标识的一组接口中距离源节点最近(根据使用的路由协议进行度量)的一个接口。
IPv6地址类型是由地址前缀部分来确定,主要地址类型与地址前缀的对应关系如下:
地址类型 地址前缀(二进制) IPv6前缀标识
单播地址 未指定地址 00…0(128 bits) ::/128
环回地址 00…1(128 bits) ::1/128
链路本地地址 1111111010 FE80::/10
唯一本地地址 1111 110
FC00::/7
(包括FD00::/8和
不常用的FC00::/8)
站点本地地址(已弃用,被唯一本地地址代替) 1111111011 FEC0::/10
全局单播地址 其他形式 -
组播地址 11111111 FF00::/8
任播地址 从单播地址空间中进行分配,使用单播地址的格式
单播地址
IPv6单播地址与IPv4单播地址一样,都只标识了一个接口。为了适应负载平衡系统,RFC3513允许多个接口使用同一个地址,只要这些接口作为主机上实现的IPv6的单个接口出现。单播地址包括四个类型:全局单播地址、本地单播地址、兼容性地址、特殊地址。
一、全局单播地址:等同于IPv4中的公网地址,可以在IPv6 Internet上进行全局路由和访问。这种地址类型允许路由前缀的聚合,从而限制了全球路由表项的数量。
二、本地单播地址:
链路本地地址和唯一本地地址都属于本地单播地址,在IPv6中,本地单播地址就是指本地网络使用的单播地址,也就是IPV4地址中局域网专用地址。每个接口上至少要有一个链路本地单播地址,另外还可分配任何类型(单播、任播和组播)或范围的IPv6地址。
(1)链路本地地址(FE80::/10):仅用于单个链路(链路层不能跨VLAN),不能在不同子网中路由。结点使用链路本地地址与同一个链路上的相邻结点进行通信。例如,在没有路由器的单链路IPv6网络上,主机使用链路本地地址与该链路上的其他主机进行通信。
(2)唯一本地地址(FC00::/7):唯一本地地址是本地全局的,它应用于本地通信,但不通过Internet路由,将其范围限制为组织的边界。
(3)站点本地地址(FEC0::/10,新标准中已被唯一本地地址代替)
三、兼容性地址:在IPv6的转换机制中还包括了一种通过IPv4路由接口以隧道方式动态传递IPv6包的技术。这样的IPv6结点会被分配一个在低32位中带有全球IPv4单播地址的IPv6全局单播地址。另有一种嵌入IPv4的IPv6地址,用于局域网内部,这类地址用于把IPv4结点当作IPv6结点。此外,还有一种称为“6to4”的IPv6地址,用于在两个通过Internet同时运行IPv4和IPv6的结点之间进行通信。
四、特殊地址:包括未指定地址和环回地址。未指定地址(0:0:0:0:0:0:0:0或::)仅用于表示某个地址不存在。它等价于IPv4未指定地址0.0.0.0。未指定地址通常被用做尝试验证暂定地址唯一性数据包的源地址,并且永远不会指派给某个接口或被用做目标地址。环回地址(0:0:0:0:0:0:0:1或::1)用于标识环回接口,允许节点将数据包发送给自己。它等价于IPv4环回地址127.0.0.1。发送到环回地址的数据包永远不会发送给某个链接,也永远不会通过IPv6路由器转发 。
组播地址
IPv6组播地址可识别多个接口,对应于一组接口的地址(通常分属不同节点)。发送到组播地址的数据包被送到由该地址标识的每个接口。使用适当的组播路由拓扑,将向组播地址发送的数据包发送给该地址识别的所有接口。任意位置的IPv6节点可以侦听任意IPv6组播地址上的组播通信。IPv6节点可以同时侦听多个组播地址,也可以随时加入或离开组播组。
IPv6组播地址的最明显特征就是最高的8位固定为1111 1111。IPv6地址很容易区分组播地址,因为它总是以FF开始的 。
任播地址
一个IPv6任播地址与组播地址一样也可以识别多个接口,对应一组接口的地址。大多数情况下,这些接口属于不同的节点。但是,与组播地址不同的是,发送到任播地址的数据包被送到由该地址标识的其中一个接口。
通过合适的路由拓扑,目的地址为任播地址的数据包将被发送到单个接口(该地址识别的最近接口,最近接口定义的根据是因为路由距离最近),而组播地址用于一对多通信,发送到多个接口。一个任播地址必须不能用作IPv6数据包的源地址;也不能分配给IPv6主机,仅可以分配给IPv6路由器 [13] 。
使用协议
地址配置协议
IPv6使用两种地址自动配置协议,分别为无状态地址自动配置协议(SLAAC)和IPv6动态主机配置协议(DHCPv6)。SLAAC不需要服务器对地址进行管理,主机直接根据网络中的路由器通告信息与本机MAC地址结合计算出本机IPv6地址,实现地址自动配置;DHCPv6由DHCPv6服务器管理地址池,用户主机从服务器请求并获取IPv6地址及其他信息,达到地址自动配置的目的。
一、无状态地址自动配置
无状态地址自动配置的核心是不需要额外的服务器管理地址状态,主机可自行计算地址进行地址自动配置,包括4个基本步骤:
1. 链路本地地址配置。主机计算本地地址。
2. 重复地址检测,确定当前地址唯一。
3. 全局前缀获取,主机计算全局地址。
4. 前缀重新编址,主机改变全局地址 。
二、IPv6动态主机配置协议
IPv6动态主机配置协议DHCPv6是由IPv4场景下的DHCP发展而来。客户端通过向DHCP服务器发出申请来获取本机IP地址并进行自动配置,DHCP服务器负责管理并维护地址池以及地址与客户端的映射信息。
DHCPv6在DHCP的基础上,进行了一定的改进与扩充。其中包含3种角色:DHCPv6客户端,用于动态获取IPv6地址、IPv6前缀或其他网络配置参数;DHCPv6服务器,负责为DHCPv6客户端分配IPv6地址、IPv6前缀和其他配置参数;DHCPv6中继,它是一个转发设备。通常情况下。DHCPv6客户端可以通过本地链路范围内组播地址与DHCPv6服务器进行通信。若服务器和客户端不在同一链路范围内,则需要DHCPv6中继进行转发。DHCPv6中继的存在使得在每一个链路范围内都部署DHCPv6服务器不是必要的,节省成本,并便于集中管理 。
5.路由协议
IPSec机制协议安全的实现
IPSec机制协议安全的实现
IPv4初期对IP地址规划的不合理,使得网络变得非常复杂,路由表条目繁多。尽管通过划分子网以及路由聚集一定程度上缓解了这个问题,但这个问题依旧存在。因此IPv6设计之初就把地址从用户拥有改成运营商拥有,并在此基础上,路由策略发生了一些变化,加之IPv6地址长度发生了变化,因此路由协议发生了相应的改变。
与IPv4相同,IPv6路由协议同样分成内部网关协议(IGP)与外部网关协议(EGP),其中IGP包括由RIP变化而来的RIPng,由OSPF变化而来的OSPFv3,以及IS-IS协议变化而来的IS-ISv6。EGP则主要是由BGP变化而来的BGP4+ [17] 。
一、RIPng
下一代RIP协议(RIPng)是对原来的RIPv2的扩展。大多数RIP的概念都可以用于RIPng。为了在IPv6网络中应用,RIPng对原有的RIP协议进行了修改:
UDP端口号:使用UDP的521端口发送和接收路由信息。
组播地址:使用FF02::9作为链路本地范围内的RIPng路由器组播地址。
路由前缀:使用128位的IPv6地址作为路由前缀。
下一跳地址:使用128位的IPv6地址。
二、OSPFv3
RFC 2740定义了OSPFv3,用于支持IPv6。OSPFv3与OSPFv2的主要区别如下:
1. 修改了LSA的种类和格式,使其支持发布IPv6路由信息。
2. 修改了部分协议流程。主要的修改包括用Router-lD来标识邻居,使用链路本地地址来发现邻居等,使得网络拓扑本身独立于网络协议,以便于将来扩展。
3. 进一步理顺了拓扑与路由的关系。OSPFv3在LSA中将拓扑与路由信息相分离,在一、二类LSA中不再携带路由信息,而只是单纯的拓扑描述信息,另外增加了八、九类LSA,结合原有的三、五、七类LSA来发布路由前缀信息。
4. 提高了协议适应性。通过引入LSA扩散范围的概念进一步明确了对未知LSA的处理流程,使得协议可以在不识别LSA的情况下根据需要做出恰当处理,提高了协议的可扩展性。
三、BGP 4+
传统的BGP 4只能管理IPv4的路由信息,对于使用其他网络层协议(如IPv6等)的应用,在跨自治系统传播时会受到一定的限制。为了提供对多种网络层协议的支持,IETF发布的RFC2858文档对BGP 4进行了多协议扩展,形成了BGP4+。
为了实现对IPv6协议的支持,BGP 4+必须将IPv6网络层协议的信息反映到NLRl(Network Layer Reachable Information)及下一跳(Next Hop)属性中。为此,在BGP4+中引入了下面两个NLRI属性。
MP_REACH_NLRI:多协议可到达NLRI,用于发布可到达路由及下一跳信息。
MP_UNREACH_NLRI:多协议不可达NLRI,用于撤销不可达路由。
BGP 4+中的Next Hop属性用IPv6地址来表示,可以是IPv6全局单播地址或者下一跳的链路本地地址。BGP 4原有的消息机制和路由机制没有改变。
四、ICMPv6协议
ICMPv6协议用于报告IPv6节点在数据包处理过程中出现的错误消息,并实现简单的网络诊断功能。ICMPv6新增加的邻居发现功能代替了ARP协议的功能,所以在IPv6体系结构中已经没有ARP协议了。除了支持IPv6地址格式之外,ICMPv6还为支持IPv6中的路由优化、IP组播、移动IP等增加了一些新的报文类型 。
过渡技术
IPv6不可能立刻替代IPv4,因此在相当一段时间内IPv4和IPv6会共存在一个环境中。要提供平稳的转换过程,使得对现有的使用者影响最小,就需要有良好的转换机制。这个议题是IETF ngtrans工作小组的主要目标,有许多转换机制被提出,部分已被用于6Bone上。IETF推荐了双协议栈、隧道技术以及网络地址转换等转换机制:
一、IPv6/IPv4双协议栈技术
双栈机制就是使IPv6网络节点具有一个IPv4栈和一个IPv6栈,同时支持IPv4和IPv6协议。IPv6和IPv4是功能相近的网络层协议,两者都应用于相同的物理平台,并承载相同的传输层协议TCP或UDP,如果一台主机同时支持IPv6和IPv4协议,那么该主机就可以和仅支持IPv4或IPv6协议的主机通信。
二、隧道技术
6.隧道技术
隧道机制就是必要时将IPv6数据包作为数据封装在IPv4数据包里,使IPv6数据包能在已有的IPv4基础设施(主要是指IPv4路由器)上传输的机制。随着IPv6的发展,出现了一些运行IPv4协议的骨干网络隔离开的局部IPv6网络,为了实现这些IPv6网络之间的通信,必须采用隧道技术。隧道对于源站点和目的站点是透明的,在隧道的入口处,路由器将IPv6的数据分组封装在IPv4中,该IPv4分组的源地址和目的地址分别是隧道入口和出口的IPv4地址,在隧道出口处,再将IPv6分组取出转发给目的站点。隧道技术的优点在于隧道的透明性,IPv6主机之间的通信可以忽略隧道的存在,隧道只起到物理通道的作用。隧道技术在IPv4向IPv6演进的初期应用非常广泛。但是,隧道技术不能实现IPv4主机和IPv6主机之间的通信。
三、网络地址转换技术
网络地址转换(Network Address Translator,NAT)技术是将IPv4地址和IPv6地址分别看作内部地址和全局地址,或者相反。例如,内部的IPv4主机要和外部的IPv6主机通信时,在NAT服务器中将IPv4地址(相当于内部地址)变换成IPv6地址(相当于全局地址),服务器维护一个IPv4与IPv6地址的映射表。反之,当内部的IPv6主机和外部的IPv4主机进行通信时,则IPv6主机映射成内部地址,IPv4主机映射成全局地址。NAT技术可以解决IPv4主机和IPv6主机之间的互通问题 [19] 。
7.优势特点
与IPV4相比,IPV6具有以下几个优势:
一、IPv6具有更大的地址空间。IPv4中规定IP地址长度为32,最大地址个数为2^32;而IPv6中IP地址的长度为128,即最大地址个数为2^128。与32位地址空间相比,其地址空间增加了2^128-2^32个。
二、IPv6使用更小的路由表。IPv6的地址分配一开始就遵循聚类(Aggregation)的原则,这使得路由器能在路由表中用一条记录(Entry)表示一片子网,大大减小了路由器中路由表的长度,提高了路由器转发数据包的速度。
三、IPv6增加了增强的组播(Multicast)支持以及对流的控制(Flow Control),这使得网络上的多媒体应用有了长足发展的机会,为服务质量(QoS,Quality of Service)控制提供了良好的网络平台。
四、IPv6加入了对自动配置(Auto Configuration)的支持。这是对DHCP协议的改进和扩展,使得网络(尤其是局域网)的管理更加方便和快捷。
H3C IPv6网解决方案
H3C IPv6网解决方案
五、IPv6具有更高的安全性。在使用IPv6网络中用户可以对网络层的数据进行加密并对IP报文进行校验,在IPV6中的加密与鉴别选项提供了分组的保密性与完整性。极大的增强了网络的安全性。
六、允许扩充。如果新的技术或应用需要时,IPV6允许协议进行扩充。
七、更好的头部格式。IPV6使用新的头部格式,其选项与基本头部分开,如果需要,可将选项插入到基本头部与上层数据之间。这就简化和加速了路由选择过程,因为大多数的选项不需要由路由选择。
八、新的选项。IPV6有一些新的选项来实现附加的功能 。
8.安全性能
原来的Internet安全机制只建立于应用程序级,如E-mail加密、SNMPv2网络管理安全、接入安全(HTTP、SSL)等,无法从IP层来保证Internet的安全。IP级的安全保证分组的鉴权和私密特性,其具体实现主要由IP的AH(Authentication Header)和ESP(Encapsulating Security Payload)标记来实现。IPv6实现了IP级的安全。
一、安全协议套:是发送者和接收者的双向约定,只由目标地址和安全参数索引(SPI)确定。
二、包头认证:提供了数据完整性和分组的鉴权。
三、安全包头封装:ESP根据用户的不同需求,支持IP分组的私密和数据完整性。 它既可用于传送层(如TCP、UDP、ICMP)的加密, 称传送层模式ESP,同时又可用于整个分组的加密,称隧道模式ESP。
四、ESPDES-CBC方式:ESP处理一般必须执行DES-CBC加密算法,数据分为以64位为单位的块进行处理,解密逻辑的输入是现行数据和先前加密数据块的与或。
五、鉴权加私密方式:根据不同的业务模式,两种IP安全机制可以按一定的顺序结合,从而达到分组传送加密的目的。按顺序的不同,分为鉴权之前加密和加密之前鉴权 。
9.应用前景
虽然IPv6在全球范围内还仅仅处于研究阶段,许多技术问题还有待于进一步解决,并且支持IPv6的设备也非常有限。但总体来说,全球IPv6技术的发展不断进行着,并且随着IPv4消耗殆尽,许多国家已经意识到了IPv6技术所带来的优势,特别是中国,通过一些国家级的项目,推动了IPv6下一代互联网全面部署和大规模商用。随着IPv6的各项技术日趋完美,其成本过高、发展缓慢、支持度不够等问题将很快淡出人们的视野 。
说完了基础知识咱们说说如何更改你的IP地址:
其实更改IP地址主要是更改B类IP和C类IP地址。
咱们先说说如何更改C类IP地址:更改C类IP地址主要是更改你这个设备在某一个局域网内的IP地址,更改这个IP地址并不会有实质性效果,最大的效果也就只能让你网速快一点。改C类IP的方法就是:
把你的动态IP改为静态IP,但是,你所改的IP不能超过这个局域网所设定的DCHP地址池(也就是IP段)且不能改为192.168.1.1,因为192.168.1.1这个ip是这个局域网主机特有的IP。我们可以把DCHP地址池比作一辆公交车上的座位,假设这辆公交车除去司机位置(192.168.1.1)外还有32个座位(192.168.1.2~192.168.1.32),若此时公交车座位满了,你就无法乘坐这辆车。但是,公交公司出了一个规定,你可以卖某一辆车的某一个指定座位(静态IP),这样只要这辆车运行,你就可以随时上车并且坐到你所买的座位。改静态IP你可以对你的手机下手(教程各种短视频平台/百度都有,随便搜。)
咱们再说说如何修改B类IP地址:
你的亲友是如何通过软件定位你地址的,很大一部分就是靠B类IP来确定的,修改B类IP的方法就是使用合法节点连接到国际互联网(不懂节点/国际互联网是什么就自己百度去)或者你就满中国跑去,或者,你就关闭你设备上的一切能发送数据的东西。(第三个关闭一切发送数据的方法只适用于单身朋友,如果你有对象后果你知道)
温馨提示:节点一定要使用经广电局认证的节点,不然被网警抓到了你就只能牢饭管饱。
长知识了
w(゚Д゚)w
阁下何不趁风起
因为搞不动?
Fuck,这么多!
其实不多,就亿点点
我算是发了一章能和我认证一样的干货
意思是开vpn节点搜索我想要的定位?
非也
??