第2章 网络编址
网络地址是对网络中每个节点的一个唯一标识,实际上,网络中每个节点都有两类地址标识:网络层地址(逻辑地址)和数据链路层地址(物理地址)。本章从物理地址开始,介绍网络中各种地址的概念。通过各种地址的阐述和使用范围,读者能认识各种地址在网络中的作用以及各种地址之间的关系;通过地址的转换,读者能认识各种地址存在的意义;通过域名和地址,读者能认识域名存在的重要性;通过地址的划分,读者能认识地址表示的灵活性和使用范畴。
2.1 物理地址
网卡物理地址存储器中存储单元对应的实际地址称为物理地址,与逻辑地址相对应。所以,网卡地址又称为物理地址或MAC(Media Access Control)地址、硬件位址、链路地址,用来定义网络设备的位置。在OSI模型中,网络层负责IP地址,数据链结层负责MAC位址。因此一个主机有一个IP地址,而每个网络位置有一个专属于它的MAC位址。
2.1.1 物理地址概述
网络中的地址分为物理地址和逻辑地址两类,局域网的MAC层地址是由硬件来处理的,IP地址、传输层的端口号和应用层的用户名由软件来处理。
在通常的计算机使用过程中,IP地址只要规划合理,可以更改IP地址,修改的方法也比较简单,只要在对应网卡的TCP/IP上双击,然后修改IP地址就可以。在OSI/RM中,第2层为数据链路层。MAC地址由网络设备制造商生产时写在硬件内部。IP地址和MAC地址在计算机里都以二进制表示,IP地址是32位,MAC地址是48位,通常表示为12个十六进制数,每2个十六进制数之间用冒号隔开。例如,08:00:20:0A:8C:6D就是一个MAC地址,其中前6位08:00:20代表网络硬件制造商的编号,由IEEE(电气与电子工程师协会)分配,后6位0A:8C:6D代表该制造商所制造的某个网络产品(如网卡)的系列号。MAC地址在世界上是唯一的,不管主机是连接在哪个局域网上,也不管这台主机移到什么位置,这个主机的物理地址就是08:00:20:0A:8C:6D。当主机A发送一帧时,网卡执行发送程序时,直接将这个地址作为源地址写入该帧。当主机接收一帧时,直接将这个地址与接收帧的目的地址比较,以决定是否接收该帧。物理地址一般记为08-00-20-0A-8C-6D。
2.1.2 MAC地址的作用
一个节点的IP地址可以在任意一个网卡上设置,即IP地址与MAC地址并不存在着绑定关系。如果一个网卡坏了,可以被更换,而无须更换一个新的IP地址。如果一个IP主机从一个网络移到另一个网络,可以给它一个新的IP地址,而无须换一个新的网卡。当然,MAC地址除了这个功能外,还有帮助传输数据的功能。
为什么要用到MAC地址?这是由组网方式决定的,如今比较流行的接入Internet的方式是把主机通过局域网组织在一起,再通过交换机与Internet相连接。这样就出现了如何区分具体用户、防止盗用的问题。由于IP只是逻辑上标识,任何人都随意修改,因此不能用来标识用户;MAC地址则不然,它是固化在网卡里面的。
基于MAC地址的这种特点,局域网采用了用MAC地址来标识具体用户的方法。在交换机内部通过“表”的方式把MAC地址与IP地址一一对应,也就是所说的IP和MAC绑定。
具体的通信方式是:接收过程,当有发给本地局域网内一台主机的数据包时,交换机接收下来,然后把数据包中的IP地址按照“表”中的对应关系映射成MAC地址,转发到对应的MAC地址的主机上,即使某台主机盗用了这个IP地址,但由于没有这个MAC地址,因此也不会收到数据包。发送过程与接收过程类似。
无论是局域网还是广域网中的计算机之间的通信,最终都表现为将数据包从某种形式的链路上的初始节点出发,从一个节点传递到另一个节点,最终传送到目的节点。数据包在这些节点之间的移动都是由地址解析协议(Address Resolution Protocol,ARP)负责将IP地址映射到MAC地址上来完成的。
2.1.3 与MAC地址相关的命令与软件
在网络中,往往只知道IP地址,并不会去过多地关心MAC地址,可以使用一些方法去查看MAC地址。在Windows中可用“ipconfig-all”命令获得。
使用命令只能单条获得MAC地址,网管人员更希望有一种简单化操作的软件,如利用“MAC扫描器”远程批量获取MAC地址。它是用于批量获取远程计算机网卡物理地址的一款网络管理软件,运行于网络(局域网、Internet)内的一台机器上,如可监控整个网络的连接情况,实时检测各用户的IP、MAC、主机名、用户名等并记录,以供查询;可以进行跨网段扫描,可以与数据库中的IP和MAC地址进行比较,对使用虚假MAC地址的报警。
2.2 地址解析协议
2.2.1 地址解析协议概述
地址解析协议是在仅知道主机的IP地址时确定其物理地址的一种协议。因IPv4和以太网的广泛应用,ARP主要负责将局域网中的32位IP地址转换为对应的48位物理地址(网卡的MAC地址),其转换过程是一台主机先向目标主机发送包含IP地址信息的广播数据包,即ARP请求,然后目标主机向该主机发送一个含有IP地址和其MAC地址的数据包,最后,通过MAC地址两个主机就能实现数据传输。某节点的IP地址的ARP请求被广播到网络上后,这个节点会收到确认其物理地址的应答,这样的数据包才能被传送出去。RARP(逆向ARP)经常在无盘工作站上使用,以获得它的逻辑IP地址。
2.2.2 地址解析协议原理
下面以一个例子来理解地址解析协议的工作原理。假设计算机A的IP为192.168.1.1,MAC地址为00-11-22-33-44-01;计算机B的IP为192.168.1.2,MAC地址为00-11-22-33-44-02。
在TCP/IP通信中,A给B发送IP包,在包头中需要填写B的IP为目标地址,但这个IP包在以太网上传输时还需要进行一次以太帧的封装。这个以太帧中的目标地址就是B的MAC地址。
计算机A是如何得知B的MAC地址的呢?解决问题的关键就在于ARP。
在A不知道B的MAC地址的情况下,A就广播一个ARP请求包,请求包中填上了B的IP(192.168.1.2),以太网中的所有计算机都会接收这个请求,而正常的情况下只有B会给出ARP应答包,应答包中就填充上了B的MAC地址,并回复给A。A得到ARP应答后,将B的MAC地址放入本机缓存,便于下次使用。本机MAC缓存是有生存期的,生存期结束后,将再次重复上面的过程。
ARP并不只在发送了ARP请求才接收ARP应答。当计算机接收到ARP应答数据包的时候,就会对本地的ARP缓存进行更新,将应答中的IP和MAC地址存储在ARP缓存中。因此,当局域网中的某台机器B向A发送一个自己伪造的ARP应答,而如果这个应答是B冒充C伪造的,即IP地址为C的IP,而MAC地址是伪造的,则当A接收到B伪造的ARP应答后,就会更新本地的ARP缓存,这样在A看来C的IP地址没有变,而它的MAC地址已经不是原来那个了。由于局域网的网络流通不是根据IP地址进行,而是按照MAC地址进行传输,所以那个伪造出来的MAC地址在A上被改变成一个不存在的MAC地址,这样就会造成网络不通,导致A不能连通C。
2.2.3 ARP显示和修改
在安装了以太网网络适配器的计算机中都有专门的ARP缓存,包含一个或多个表,用于保存IP地址和经过解析的MAC地址。在Windows中,要查看或者修改ARP缓存中的信息,可以使用arp命令来完成,如在命令提示符窗口中输入“arp-a”或“arp-g”,可以查看ARP缓存中的内容,输入“arp-d IP-address”,表示删除指定的IP地址项(IP-address表示IP地址)。arp命令的其他用法可以输入“arp/?”来查看。
2.3 IP地址
2.3.1 地址空间和表示方法
1.地址空间
IP定义的地址具有地址空间。地址空间就是协议所使用的地址总数。如果协议使用n位来定义地址,那么地址空间就是2n,因为每位可以有两种值(1或0)。
现在采用的IP协议版本为IPv4。IPv4使用32位地址,表示地址空间是232,或4294967296(超过40亿)。这就表明,从理论上讲,可以有超过40亿个设备连接到Internet。但实际使用的数字要远小于这个数值。
2.IP地址的表示方法
IP地址有3种常用的表示方法:二进制表示法、点分十进制表示法和十六进制表示法。
(1)二进制表示法
在二进制表示法中,IP地址表现为32位。为了使这个地址有更好的可读性,通常在每个字节(8位)之间加上一个或更多的空格。下面是二进制IP地址的示例:
01110101100101010001110111101010
(2)点分十进制表示法
为了使32位地址更加简洁和更容易阅读,Internet的地址通常以小数点将各字节分隔开的形式,如图2-1所示。注意,因为每个字节仅有8位,因此在点分十进制表示法中的每个数值一定在0至255之间。
图2-1 点分十进制的IP地址表示
(3)十六进制表示法
有时会见到十六进制表示法的IP地址。每个十六进制数字等效于4位,也就是说,一个32位的地址要用8个十六进制数字来表示。这种表示方法常用于网络编程中,如10000001100110110000101111101010表示十六进制数819B0BEA。
2.3.2 地址的分类
在IP地址使用初期,使用分类的概念,这种体系结构叫做分类编址。在20世纪90年代中期,一种叫做无分类编址的新的体系出现了,这种体系将最终代替原来的体系。但是,绝大多数的Internet地址目前还是使用分类编址。“分类”的概念有助于理解“无类”的概念。
对于同一网络上的所有节点,IP地址必须满足以下规定:
●每个IP地址的网络号部分相同。
●网络上每个节点的IP地址必须是唯一的。
IP地址可分成5类,即A类、B类、C类、D类和E类。A类地址占据了整个地址空间的一半,B类地址占据了整个地址空间的1/4,C类地址占据地址空间的1/8,而D类和E类地址各占据地址空间的1/16,如表2-1所示。
表2-1 IPv4的五类地址
A类地址的最高位0和随后的7位是网络号部分,剩下的24位表示网内主机号。这样在一个互连网络内可能会有126个A类网络(网络号1~126,号码0和127保留),而每个A类网络中允许有1600多万个节点。A类地址适用于有大量主机的大型网络。
B类地址的最高2位10和随后的14位是网络号部分,剩下的16位表示网内的主机号。在某种互连环境下可能有约16000个B类网络,而每个B类网络中可以有6.5万多个节点。一般大单位和大公司营建的网络使用B类地址。
C类地址的最高3位110和随后的21位是网络号部分,剩下的8位表示网内主机号。一个互连网络允许包含200万个C类网络,每个C类网络中最多可以有254个节点,较小的单位和公司都使用C类地址。
D类地址的最高4位为1110,表示多播地址,即一个多播组的组号。
2.3.3 网络掩码和默认掩码
网络掩码是一个32位数。当使用网络掩码和地址段中的一个地址按位相“与”(AND)时,就可得出该地址段的第一个地址,称为网络地址。网络掩码中二进制位为1的位代表该位为网络位,二进制位为0的位代表该位为主机位。A、B、C三类地址中的默认子网掩码见表2-2。
表2-2 默认掩码
当网络没有划分子网时,默认掩码就已经被使用了。当划分子网时,就不再是使用默认掩码了,这时子网掩码有更多的1。网络掩码产生了网络地址,子网掩码则产生子网地址。
1.子网掩码规则
子网掩码都使用连续的掩码,即一串1后面跟随一串0。
例如,11111111111111111111000000000000(即255.255.240.0)是合法的子网掩码,而11111111111111111100001100000000(即255.255.195.0)是非法的子网掩码。
2.计算子网地址
只要给出了IP地址,就可以对地址进行掩码运算,从而找出子网地址。有两种方法:直接的或快捷的。
(1)直接的方法
使用直接的方法时,把二进制表示法的地址和掩码进行“与”操作,找出子网地址。若主机地址是136.45.34.56,而子网掩码是255.255.240.0,则求子网地址的过程如下:
主机地址 10001000001011010010001000111000
子网掩码 11111111111111111111000000000000
子网地址 10001000001011010010000000000000
子网地址是:136.45.32.0
(2)快捷的方法
●若掩码中的字节是255,就复制IP地址中相应的字节到地址中。
●若掩码中的字节是0,就在IP地址中用0代替之。
●若掩码中的字节既不是255也不是0,就用二进制写出掩码和地址,然后使用“与”运算。
以上示例,可以采取这种方法来计算:
主机地址 136.45.00100010.56
子网掩码 255.255.11110000.0
子网地址 136.45.00100000.0
则子网地址是:136.45.32.0。
3.子网数和每个子网内的地址数
计算在使用子网掩码时给默认掩码增加的1的个数,就可以找出子网数。例如,在上例中,额外增加的1的个数为4,因此,子网数是24=16。
计算子网掩码中0的个数就可找出每个子网的地址数。例如,在上例中,0的个数是12,因此在每个子网中可能的地址数是212=4096。
但是,每个子网中的第一个地址(即主机位全0的地址)是子网地址。每个子网中的最后一个地址(即主机位全1的地址)是广播地址,保留在子网内进行受限广播地址之用。故在每个子网内有效的主机地址数是2n-2,这里的n为子网掩码中0的个数。
2.3.4 特殊地址
A类、B类和C类地址中的某部分空间可用作特殊的地址,如表2-3所示。
表2-3 特殊地址
1.网络地址
对于A、B、C类地址中的第一个地址定义了该主机所在的网络地址。例如,主机123.50.16.90所在的网络地址为123.0.0.0。
2.直接广播地址
在A、B、C类地址中,若主机位是全1,则这个地址称为直接广播地址。路由器使用这种地址把一个数据包发送到一个特定网络上的所有主机。所有主机都会收到具有这种类型目的地址的数据包。注意,这个地址在IP数据包中只能用作目的地址,这个特殊的地址也减少了A类、B类和C类地址中每个网络中的可用主机数。例如,路由器发送数据报,目的地址为221.45.71.255,而该网络内采用默认的子网掩码255.255.255.0分配IP地址,则这个网络上的所有设备都接收和处理这个数据包,即以221.45.71开头的所有设备。
3.受限广播地址
在A、B、C类地址中,若网络位和主机位都是全1(32位),即255.255.255.255,则这个地址用于定义在当前网络上的广播地址。一个主机若想把报文发送给所有其他主机,就可使用这样的地址作为数据包中的目的地址。但路由器把具有这种类型地址的数据包阻挡住,使这样的广播只局限在本地网络。应注意,这种地址属于E类地址。例如,主机可以发送使用全1目的IP地址的数据包,在该网络上的所有设备都接收和处理这个数据包。
4.环回地址
第一个字节等于127的IP地址用作环回地址,这个地址用来测试机器的TCP/IP协议是否安装正常。当使用这个地址时,数据包永远不离开这台机器;这个数据包就简单地返回到TCP/IP。因此这个地址可用于测试IP软件。例如,像“PING”这样的应用,可以发送把环回地址作为目的地址的数据包,以便测试IP软件能否接收和处理数据包。另一个示例就是客户进程(运行着的程序)用环回地址发送数据包给同样机器上的服务器进程。注意,这种地址在数据包中只能用作目的地址。
2.3.5 私有IP地址
私有IP就是在本地局域网上的IP,与之对应的是公有IP(在互联网上的IP)。
随着私有IP网络的发展,为节省可分配的注册IP地址,有一组IP地址被专门用于私有IP网络,称为私有IP地址。
私有IP地址中,A类、B类、C类各有一部分,其范围是:
A类:10.0.0.0~10.255.255.255/8
B类:172.16.0.0~172.31.255.255/12
C类:192.168.0.0~192.168.255.255/16这些地址是不会被Internet分配的,它们在Internet上也不会被路由,虽然它们不能直接与Internet连接,但通过技术手段仍旧可以与Internet通信。可以根据需要来选择适当的地址类,在内部局域网中将这些地址像公用IP地址一样地使用。在Internet上,有些不需要与Internet通信的设备,如打印机、可管理交换机等也可以使用这些地址,以节省IP地址资源。
2.3.6 单播、多播和广播地址
Internet上的通信可用单播、多播和广播来完成。
(1)单播地址
单播通信是一对一的。单播通信就是从单个的源端将数据包发送到单个的目的端。Internet上的所有系统必须至少有一个唯一的单播地址。单播地址可以是A类、B类和C类。
(2)多播地址
多播,又称为组播。多播通信是一对多的。多播通信就是从单个的源端把数据包发送到一组目的端。多播地址是D类地址。整个地址定义了一个组号。在Internet上的系统可以有一个或多个D类多播地址(除了它的一个或多个单播地址外)。如果某个系统(通常是个主机)有7个多播地址,就表示它属于7个不同的组。注意,D类地址只能用作目的地址,不能用作源地址。
Internet上的多播可以是本地级的,也可以是全局级的。在本地,局域网上的一些主机可构成一个组,并被指派一个多播地址。在全局,不同网络上的一些主机可构成一个组,并被指派一个多播地址。
(3)广播地址
广播通信是一对所有的。Internet只允许进行本地级广播。已经看到在本地级使用的两个广播地址:受限广播地址(全1)和直接广播地址(主机位全1)。
广播不允许在全局级进行。这表示一个系统(主机或路由器)不能向Internet上的所有主机或路由器发送数据包。
2.4 VLSM地址划分
为了有效地使用无类别域间路由(CIDR)和路由汇总来控制路由表的大小,可使用一个名为VLSM的IP寻址技术。CIDR是一个将好几个IP网络结合在一起,使用一种无类别的域间路由选择算法。它可以减少由核心路由器运载的路由选择信息的数量。
VLSM可以对子网进行层次化编址,这种IP寻址技术允许对已有子网进行划分,以便有效的利用现有的地址空间。
2.4.1 VLSM概述
VLSM其实就是相对于类的IP地址来说的。A类的第一段是网络号(前8位),B类地址的前两段是网络号(前16位),C类的前三段是网络号(前24位)。而VLSM的作用就是在类的IP地址的基础上,从其主机号部分借出相应的位数来做网络号,也就是增加网络号的位数。各类网络可以用来再划分子网的位数为:A类有24位可以借,B类有16位可以借,C类有8位可以借。可以再划分的位数就是主机号的位数,实际上不可以都借出来,因为IP地址中必须要有主机号的部分,而且主机号部分剩下一位是没有意义的,所以在实际中可以借的位数是在那些可借的数字中减去2,借的位作为子网部分。
这是一种产生不同大小子网的网络分配机制,指一个网络可以配置不同的掩码。开发可变长度子网掩码的想法就是在每个子网上保留足够的主机数的同时,把一个子网进一步分成多个小子网时有更大的灵活性。如果没有VLSM,一个子网掩码只能提供给一个网络,这样就限制了要求的子网数上的主机数。另外,VLSM是基于比特位的,而类网络是基于8位组的。
在实际工程实践中,能够进一步将网络划分成三级或更多级子网。同时,能够考虑使用全0和全1子网,以节省网络地址空间。比如,某局域网上使用了27位的掩码,则每个子网可以支持30台主机(25-2=30);而对于WAN连接而言,每个连接只需要2个地址,理想的方案是使用30位掩码。
2.4.2 VLSM和CIDR的区别
CIDR是把几个标准网络合成一个大的网络,VLSM是把一个标准网络分成几个小型网络(子网):CIDR是子网掩码往左边移了,VLSM是子网掩码往右边移了。
CIDR(Classless Inter.Domain Routing)是无类别域间路由,VLSM(Variable Length Subnetwork Mask)是可变长子网掩码。
2.4.3 VLSM实例分析
假设某公司有两个主要部门:市场部和技术部。技术部又分为硬件部和软件部两个部门。该公司申请到了一个完整的C类IP地址段210.31.233.0,子网掩码255.255.255.0。为了便于分级管理,该公司采用了VLSM技术,将原主网络划分称为两级子网(未考虑全0和全1子网)。
市场部分得了一级子网中的第1个子网,即210.31.233.64,子网掩码255.255.255.192,该一级子网共有62个IP地址可供分配。
技术部将所分得的一级子网中的第2个子网210.31.233.128,子网掩码255.255.255.192。又进一步划分成了两个二级子网。其中第1个二级子网210.31.233.128,子网掩码255.255.255.224划分给技术部的下属分部-硬件部,该二级子网共有30个IP地址可供分配。技术部的下属分部-软件部分得了第2个二级子网210.31.233.160,子网掩码255.255.255.224,该二级子网共有30个IP地址可供分配。
VLSM技术对高效分配IP地址(较少浪费)以及减少路由表大小都起到非常重要的作用,这在超网和网络聚合中非常有用。注意,使用VLSM时,所采用的路由协议必须能够支持它,这些路由协议包括RIP2、OSPF、EIGRP、IS-IS和BGP。
无类路由选择网络可以使用VLSM,而有类路由选择网络中不能使用VLSM。
2.4.4 VLSM下的子网掩码值
1.A类地址子网掩码的值
①掩码255.0.0.0:/8
②掩码255.128.0.0:/9
③掩码255.192.0.0:/10
④掩码255.224.0.0:/11
⑤掩码255.240.0.0:/12
⑥掩码255.248.0.0:/13
⑦掩码255.252.0.0:/14
⑧掩码255.254.0.0:/15
⑨掩码255.255.0.0:/16
2.B类地址子网掩码的值
①掩码255.255.128.0:/17
②掩码255.255.192.0:/18
③掩码255.255.224.0:/19
④掩码255.255.240.0:/20
⑤掩码255.255.248.0:/21
⑥掩码255.255.252.0:/22
⑦掩码255.255.254.0:/23
⑧掩码255.255.255.0:/24
3.C类地址子网掩码的值
①掩码255.255.255.128:/25
②掩码255.255.255.192:/26
③掩码255.255.255.224:/27
④掩码255.255.255.240:/28
⑤掩码255.255.255.248:/29
⑥掩码255.255.255.252:/30
2.4.5 VLSM划分子网的几个捷径
①所选择的子网掩码将会产生多少个子网?
2的x次方(x代表掩码位,即二进制为1的部分)。
②每个子网能有多少主机?
2的y次方-2(y代表主机位,即二进制为0的部分)。
③有效子网块大小是多少?
有效子网块大小=256-十进制的子网掩码(结果叫做block size或base number)。
④每个子网的广播地址是多少?
广播地址=下个子网号-1。
⑤每个子网的有效主机分别是什么?
忽略子网内全为0和全为1的地址剩下的就是有效主机地址。
最后一个有效主机地址=下一个子网号-2(即广播地址-1)。
【例2-1】C类地址例子。假设网络地址192.168.10.0,子网掩码255.255.255.192(/26)。
(1)子网数=2×2=4。
(2)主机数=26-2=62。
(3)有效子网块大小=256-192=64,第1个子网为192.168.10.0,第2个为192.168.10.64,第3个为192.168.10.128,第4个为192.168.10.192。
(4)广播地址:下个子网-1。所以4个子网的广播地址分别是192.168.10.63、192.168.10.127、192.168.10.191、192.168.10.255。
(5)有效主机范围:第1个子网的主机地址是192.168.10.1~192.168.10.62,第2个的是192.168.10.65~192.168.10.126,第3个的是192.168.10.129~192.168.10.190,第4个的是192.168.10.193~192.168.10.254。
【例2-2】B类地址例子1。假设网络地址为172.16.0.0,子网掩码为255.255.192.0(/18)。
(1)子网数=2×2=4。
(2)主机数=214-2=16382。
(3)有效子网块大小=256-192=64,所以第1个子网为172.16.0.0,第2个为172.16.64.0,第3个为172.16.128.0,第4个为172.16.192.0。
(4)广播地址:下个子网-1。所以4个子网的广播地址分别是172.16.63.255、172.16.127.255、172.16.191.255、172.16.255.255。
(5)有效主机范围:第1个子网的主机地址是172.16.0.1~172.16.63.254,第2个的是172.16.64.1~172.16.127.254,第3个的是172.16.128.1~172.16.191.254,第4个的是172.16.128.1~172.16.255.254。
【例2-3】B类地址例子2。假设网络地址为172.16.0.0,子网掩码为255.255.255.224(/27)。
(1)子网数=211=2048,因为B类地址默认掩码是255.255.0.0,所以网络位为8+3=11。
(2)主机数=25-2=30。
(3)有效子网块大小=256-224=32,所以第1个子网的主机地址为172.16.0.0,第2个子网的主机地址为172.16.0.32,最后一个子网的主机地址为172.16.255.224。
(4)广播地址:下个子网-1。所以第1个子网、第2个子网和最后一个子网的广播地址分别是172.16.0.31、172.16.0.63和172.16.255.255。
(5)有效主机范围:第1个子网的主机地址是172.16.0.1~172.16.0.30,第2个子网的主机地址是172.16.0.33~172.16.0.62,最后一个的是172.16.255.225~172.16.255.254。
2.5 IPv6地址
IPv6是Internet Protocol Version 6的缩写,也被称为下一代互联网协议,是由IETF小组(Internet工程任务组Internet Engineering Task Force)设计的用来替代现行的IPv4的一种新的IP协议。
2.5.1 如何理解IPv6的地址表示方法
IPv6的记录长度要比IPv4要长很多,以前没有考虑兼容IPv6的都需要增加长度。
目前的IPv4地址表现形式采用的是点分十进制形式,那么下一代的IPv6地址如何表达呢?由于IPv6地址长度4倍于IPv4地址,所以表达起来比IPv4地址复杂得多。IPv6地址的基本表达方式是x:x:x:x:x:x:x:x。其中,x是一个4位十六进制整数,占16位二进制数。每个IP地址包括8个整数,共计128位(4×4×8=128)。例如,下面是一些合法的IPv6地址:
CDCD:901A:2222:5498:8475:1111:3900:2020
1030:0:0:0:C9B4:FF12:48AA:1A2B
2000:0:0:0:0:0:0:1
注意这些整数是十六进制整数。地址中的每个整数都必须表示出来,但起始的0可以不必表示。上面给出的是一种比较标准的IPv6地址表达方式,此外还有另外两种更加清楚和易于使用的方式。
某些IPv6地址中可能包含一长串的0(就像上面的第二和第三个例子一样)。当出现这种情况时,标准中允许用“空隙”来表示这一长串的0。换句话说,地址2000:0:0:0:0:0:0:1可以被表示为2000::1。这两个冒号表示该地址可以扩展到一个完整的128位地址。在这种方法中,只有当16位组全部为0时才会被两个冒号取代,且两个冒号在地址中只能出现一次,以避免混淆。
在IPv4和IPv6的混合环境中还可能有第三种表达方法。IPv6地址中的最低32位可以用于IPv4地址的表示方法,该地址可以按照一种混合方式表达,即x:x:x:x:x:x:d.d.d.d,x表示一个16位整数,d表示一个8位十进制整数。例如,地址0:0:0:0:0:0:10.0.0.1就是一个合法的IPv4地址。把两种可能的表达方式组合在一起,该地址也可以表示为::10.0.0.1。
IPv6地址和IPv4地址还有一个区别,即地址类型。众所周知,目前的IPv4地址有3种类型:单播(unicast)地址,组播(multicast)地址,广播(broadcast)地址。而IPv6地址虽然也是3种类型,但是已经有所改变,它们是单播(unicast)、组播(multicast)、任播(anycast)。
单播地址:一个网络接口的地址。送往一个单播地址的包将被传送至该地址标识的接口上。
组播地址:一组接口(一般属于不同节点)的网络地址。送往一个组播地址的包将被传送至有该地址标识的所有接口上。
任播地址:一组接口(一般属于不同节点)的网络地址。送往一个泛播地址的包将被传送至该地址标识的接口之一(根据选路协议对于距离的计算方法选择“最近”的一个)。
广播地址:一个网段内的所有节点。送往一个广播地址的包将被送至网段内的所有节点。
在IPv6地址中之所以要去掉广播地址,而重新定义任播地址,主要是考虑到网络中由于大量广播包的存在,容易造成网络的阻塞,而且由于网络中各节点都要对这些大部分与自己无关的广播包进行处理,对网络节点的性能也造成影响。
2.5.2 解决IP地址耗尽的措施
Internet的主机都有一个唯一的IP地址,现有的IP地址用一个32位二进制的数表示一个主机号码,但32位地址资源有限,已经不能满足用户的需求了,因此Internet研究组织发布新的主机标识方法,即IPv6。IPv4只能支持32位的地址长度,因此所能分配的地址数目也是有限的,大致相当于4294967296,即232。在IP最早使用的时候,这个数字还是相当可观的,但是随着近几年全球范围内计算机网络的爆炸性增长,可以使用的IPv4地址空间已经越来越有限。为了从根本上解决IP地址空间不足的问题,提供更加广阔的网络发展空间,人们对IPv4进行改进,推出功能更加完善和可靠的IPv6。IPv6对地址分配系统进行了改进,支持128位的地址长度,在性能和安全性上有所增强。
2.5.3 IPv6的基本首部
①IPv6的地址用16字节表示,地址空间是IPv4的296倍,相当于地球表面的每平方米面积都有大约6×1023个具唯一性的地址。无论未来怎样发展,看来这么多的地址也是够用的。
②简化了IP分组头,包含8个段(IPv4是12个段)。这一改变使得路由器能够更快地处理分组,从而可以改善吞吐率。
③IPv6更好地支持选项。这一改变对新的分组头很重要,因为一些从前是必要的段现在变成可选的了。此外,表示选项的方式也有所不同,使得路由器能够简单地跳过跟它们无关的选项。这一特征加快了分组处理速度。
④安全性。身份验证和保安功能是这个新的IP的关键特征。
⑤有关资源分配的。取代IPv4的服务类型段,IPv6的流标记段支持对属于一个特别的交通流(对应的发送端可能请求特别的处理)的标记,从而能够支持诸如实时视频这样的特殊交通。
2.5.4 IPv6的扩展首部
IPv6标准建议在使用多个扩展头时,IPv6的头以下列次序出现:
①IPv6头,总是出现在开头位置。
②按跳段逐级处理的选项头。
③目的地选项头,用于被在IPv6目的地地址段中出现的第一个目的地处理的选项,该选项也会被随后在路由选择头中列出的目的地处理。
④路由选择头。
⑤分割IPv6头。
⑥身份验证IPv6头。
⑦加密安全性载荷头。
⑧目的地选项头:用于仅被分组的最终目的地处理的选项。
2.5.5 IPv6的地址空间
1.128位的地址空间
IPv6允许3种地址。
①单投点:标识单个接口。发送给单投点地址的分组被投递给用那个地址标识的接口。
②任意投点:标识一组接口(典型地属于不同的节点)。一个发送给任意投点的分组被投递给以那个地址标识的所有接口中的一个接口(根据路由协议测量的距离最近的一个)。
③多投点:标识一组接口(典型地属于不同的节点)。发送给多投点地址的分组被投递给用那个地址标识的所有接口。
IPv6使用冒号十六进制记法:
68E6:8C64:FFFF:FFFF:0:1180:960A:FFFF
FF05:0:0:0:0:0:0:B3
写成:FF05::B3
规定:在任一地址中只能使用一次零压缩,冒号十六进制记法可以结合点分十进制记法的后缀。如:
0:0:0:0:0:0:128.10.2.1或::128.10.2.1。
2.地址空间的分配
IPv6将地址空间分为两大部分,第一部分时可变长度的类型前缀,它定义了地址的目的,第二部分是地址的其余部分,其长度也是可变的。
2.5.6 从IPv4向IPv6过渡
1.双协议栈
在完全过渡到IPv6之前,使一部分主机和路由器装有两个协议,一个IPv4协议和一个IPv6协议;
2.隧道技术
在IPv4区域中打通了一个IPv6隧道来传输IPv6数据分组。
2.5.7 ICMPv6
跟IPv4一样,IPv6也要使用ICMP。RFC1885定义了新版本的ICMP,称为ICMPv6。它具有下列主要特征:
使用一个新的协议号,以区别于跟IPv4一起使用的ICMP。
使用与ICMPV4相同的头格式。
删去了一些较少使用的ICMP报文。
ICMP报文的最大尺寸被定义成576个字节(包括IPv6头)。
与IPv4的ICMP的使用相同,ICMPv6提供了在IPv6节点之间传送错误报文和信息性报文的手段。在大多数情况下,ICMPv6报文都是作为对一个IPv6分组的响应而发送的,要么由沿着分组的通路上的路由器发送,要么由指定的目的地节点发送。ICMPv6报文封装在IPv6分组中传送。
IPv6就是能够无限地增加IP网址数量、拥有巨大网址空间和卓越网络安全性能等特点的新一代互联网协议。IPv6的技术特点:地址空间巨大即IPv6地址空间由IPv4的32位扩大到128位,2的128次方形成了一个巨大的地址空间。采用IPV6地址后,未来的移动电话、冰箱等信息家电都可以拥有自己的IP地址。
2.5.8 Windows下的IPv6配置命令
Windows XP里面虽然自带有IPv6协议包,但默认是没有安装的。在Windows XP下安装IPv6协议的方法和其他相关命令如下。
(1)安装IPv6协议
选择“开始”→“运行”,输入“cmd”,然后在命令提示符下输入“ipv6 install”,进行IPv6协议栈的安装。正常情况下会提示“Installing...Succeeded.”。
如果想卸载IPv6,那么执行命令“ipv6 uninstall”,然后重新启动计算机即可。
(2)ipv6 [-v]if [ifindex]
这条命令将显示IPv6所有接口界面的配置信息。在IPv6中,所有接口都是通过接口索引来标识的,执行“ipv6 if”,将能看到所有的支持IPv6的接口及其相关信息(包括接口索引)。如果需要察看某个具体接口,如接口4,则执行“ipv6 if 4”。
通常情况下,安装IPv6协议栈后,一块网卡默认网络接口有4个。Interface 1用于回环接口;Interface 2用于自动隧道虚拟接口;Interface 3用于6to4隧道虚拟接口;Interface 4用于正常的网络连接接口,即IPv6地址的单播接口。如果有多块网卡,则后面还有其他接口。
(3)ipv6 [-p]adu ifindex/address [ life validlifetime ]
通过这条命令能够给某个接口添加IPv6地址。[-p]表示把所做的配置保存,如果不加此参数进行配置,则当计算机关机后配置将丢失。其他命令中的[-p]参数作用相同。[life validlifetime]设置IPv6地址的存活时间。
例如,如果要给接口4添加IPv6地址3ffe:321f::1/64,则需要执行如下命令:
ipv6 adu 4/3ffe:321f::1
要删除上面指定的IPv6地址,可以执行如下命令:
ipv6 adu 4/3ffe:321f::1 life 0
ipv6 adu命令不能指定子网掩码,所以必须指定一条路由,说明接口4是属于什么样的子网的,比如:
ipv6 rtu 3ffe:321f::/64 4
路由表项的删除与接口地址的删除方法一样,把lifetime设为0。例如,要删除上面指定的默认路由,可以执行如下命令:
ipv6 rtu 3ffe:321f::/64 4 life 0
(4)ipv6 ifcr v6v4 v4src v4dst
这条命令用来建立IPv6/IPv4隧道(tunnel)。例如,要与另一台机器建立IPv6/IPv4隧道,本机IPv4地址是166.111.8.28,对方的IPv4地址是202.38.99.9,那么可以执行如下命令来建立IPv6/IPv4隧道:
ipv6 ifcr v6v4 166.111.8.28 202.38.99.9
执行完这条命令之后,系统会告诉新创建的接口的索引值。
(5) ipv6 ifd ifindex
这条命令用来删除一个接口。比如,新建了一条IPv6/IPv4隧道,其接口索引为5,如果不再用这条隧道,则可以执行如下命令将它删除:
ipv6 ifd 5
(6)ping6 address
这条命令用来检查能否到达对方设备。比如,
ping6 3ffe:321f::1
2.6 域名地址
2.6.1 域名地址概述
纯数字形式的IP地址不便记忆和使用,为了向用户提供直观的主机标识符,Internet引入了分布式管理的域名系统(Domain Name System,DNS)。
DNS的主要功能有两个:一是定义了一组为网上主机定义域名的规则,二是将域名转成实际的IP地址。
每个IP网的主机或网关都有相应的域名,一个主机域名唯一确定一个IP地址,但是一个域名如果还有若干别名的话,一个IP地址却对应着若干个域名。为了从域名找到相应的IP地址,在网间网中提供了一套域名服务系统,由若干级的域名服务器组成。用户习惯使用的是域名,而系统内部使用的必须是IP地址,因此从域名到IP地址的转换工作由DNS服务器来完成。
2.6.2 DNS定义规则
1.域名层次
域名采用分层次命名的方法,每一层又称为子域名,子域名之间用句点作为分隔符,从右到左分别是最高层域名、机构名、网络名或主机名。根据Internet域名管理系统DNS规定,域名采用的层次结构为:
…次次高层.次高层.最高层Internet最高层域名是由DDN NIC授权登记的,在美国国内用于区分机构,在美国之外用于区分国家或地区。美国国内Internet最高层域名是:
.int—国际组织 .com—商业组织
.edu—教育组织 .gov—政府组织
.mil—军事组织 .org—非商业组织
.net—网络组织 .firm—商业公司
.store—商品销售企业 .web—与www相关的实体
.art—文化和娱乐实体 .info—提供信息服务的实体
.nom—个体或个人
各个国家的Internet最高层域名由两个字母的国家名组成,如CN(中国)、UK(英国)、FR(法国)、CA(加拿大)等。
我国自登记了最高层域名cn以后,规定了自己的第二级(次高层)域名,例如:
.edu—教育机构 .co—公司
.go—政府机构 .or—非营利组织
.ac—大学、研究所内的学术机构 .bj—北京地区
.sh—上海地区 .js—江苏省
2.域名管理
Internet域名的管理方式也是层次式的分配,只是某一层的域名需向上一层的名称服务器注册,而该层以下的域名则由该层自行管理。图2-4,是Internet采用的域名层次结构命名树,域名系统是一个分布式主机信息库,采用客户机-服务器结构。用户向本地域名服务器查询地址,本地域名服务器向上级服务器查询,逐级查到各服务器,最后即可查出该地址的情况。由于管理机构是逐级授权的,所以最终的域名都必须得到NIC(Network Information Center)的认可,成为Internet全网中的正式域字。域名既可以标识主机,也可以标识信箱,甚至用户等。
这种层次型域名,只要保证同层次的名字不重复,就可以在Internet中保证主机名的唯一性,不同层对象取相同名是可以的。这样,上层不必关心下层的命名问题,下层名字的变化不会反过来影响上层的状态。层次型域名的主要优点是将大量对象的管理转化为分层的少量对象管理。
图2-2 域名管理
3.域名解析
用域名表示虽然便于记忆和使用,但不能用域名寻址,因为主机在发收数据时使用的是IP地址。当用户使用主机域名进行通信时,必须将域名转换成IP地址,这种将主机域名转换成IP地址的过程称为“域名解析”。
域名解析包括正向解析(从域名到IP地址)和逆向解析(从IP地址到域名),Internet的域名系统DNS完成域名解析任务。
习题2
1.简述几种网络分类方法及主要的网络拓扑结构。
2.简述IP地址的作用及其分类方法。
3.简述子网划分的方法。
4.若主机地址是19.30.80.5,网络掩码是255.255.192.0,求其子网地址和广播地址。
5.某个公司分到的地址是201.70.64.0,公司需要6个子网。试设计这个子网。
6.已知一个C类网段,要求划分10个以上子网,每个子网主机数不得少于14台。请求出子网掩码。
7.192.168.1.30/27和192.168.1.65/27是否能够直接访问?
8.假设有一个IP地址是192.168.6.38/28,请问它所在子网的广播地址、网络编号、子网掩码分别是什么?
9.下列关于ARP哪些是正确的?
A.工作在应用层
B.工作在网络层
C.将MAC地址转换为IP地址
D.将IP地址映射为MAC地址