近几年来,计算机网络迅猛发展,基于ip协议的Internet已发展成为当今世界上规模最大,并拥有最多用户、最多资源的一个超大型计算机网络。IP协议也因此成为事实上的工业标准,IP网络也成为计算机网络的主流。
一、Internet 中的IP地址
IP地址标识了IP网络中的一个通信实体,一台主机可以有多个IP地址。IP分组中的IP源/目的地址在网络传输过程中保持不变,因而总是由确定的源通信实体送往指定的目的通信实体。
从网络的层次结构考虑,一个IP地址必须指明两点:
属于哪个网络
是这个网络中的哪台主机
于是,IP地址的格式为:网络号、主机号。
IP地址的类型及其表示
现在的IP网络使用32位地址,通常由点分十进制表示,如:202.112.14.1。它主要由两部分组成:一部分是用于标识所属网络的网络地址;另一部分是用于标识给定网络上的某个特定的主机的主机地址。
为了给不同规模的网络提供必要的灵活性,IP的设计者将IP地址空间划分为几个不同的地址类别。
地址分类如下表所示:
网络编号是由Internet权力机构分配的,目的是为了保证网络地址的全球唯一性。主机地址是由各个网络的的系统治理员统一分配的。因此,网络地址的唯一性与网络内主机地址的唯一性,就确保了IP地址的全球唯一性。
有类地址的局限性
最初的Internet设计者没有预想到网络会有如此快速地发展,因此现在网络面临的问题都可以追溯到Internet发展的早期决策上,在IP地址的分配上更是能够看到这点。
在Internet早期,地址空间在表面上看来几乎是无限的,人们便将IP地址基于其申请而分配给某个组织或者公司,而很少会考虑到是否真的需要这个地址空间,没有考虑到IP地址空间最终会用尽。
IPv4使用32位的地址,即在IPv4的地址空间中只有232(4,294,967,296,低于43亿)个地址可用。与此相比,世界人口数已达60多亿。也就是说,将出现IP地址的赤贫人群。因此,IP地址的长度决定了IPV4的地址空间,决定了地址的有限。
另外,IPv4的地址是按照网络的大小(所使用的IP地址数)来分类的,它的寻址方案使用“类”的概念。A、B、C三类IP地址的定义很轻易理解,也很轻易划分,但是在实际网络规划中,他们并不利于有效地分配有限的地址空间。对于A,B类地址,很少有这么大规模的公司能够使用,对于C类地址所容纳的主机数又相对太少。所以有类别的IP地址并不适用于网络规划。
在这种情况下,人们开始致力于下一代Internet技术的研究。但是,由于现在在IPv6下的互连网设施还不完善,IPv4上的资源有待进一步利用,因此,我们仍有必要在IPv4上实现网络和网络互连。因此,IPv4到IPv6的完全过渡将是一个比较长的过程。
二、IP地址与路由的关系
为了提高IP地址使用效率及路由效率,在基础的IP地址分类上对IP编址进行了相应改进。
子网编址
一般地,32的IP地址被分为两部分,即网络号和主机号。为提高IP地址的使用效率,子网编址的思想是将主机号部分进一步划分为子网号和主机号:
网络号 子网号 主机号
在原来的IP地址模式中,网络号部分就标识一个独立的物理网络, 引入子网模式后,网络号部分加上子网号才能全局唯一地标识一个物理网络。
子网编址使得IP地址具有一定的内部层次结构,这种层次结构便于IP地址分配和治理。
它的使用要害在于选择合适的层次结构—如何既能适应各种现实的物理网络规模,又能充分地利用IP地址空间(即:从何处分隔子网号和主机号)。
子网路由
在子网编址模式下,仅凭地址类别提取地址的网络号和主机号将是不正确的,而必须在路由表的每一个表目中加入子网掩码,于是子网编制模式下的路由表条目变为:
{子网掩码,目的网络地址,下一路由器地址}
这样可以用子网掩码的设置来区分不同的情况,使路由算法更为简单。
子网结构
设子网掩码,子网掩码与目的地址相与,获得子网地址。
特定主机
掩码32位为全“1”,将32位地址全部截下。
缺省路由
掩码为全“0”,目的地址也为全“0”,将报文直接送往缺省端口地址。
无子网结构
掩码中“1”的个数与网络号位数相同。
VLSM可变长子网掩码
VLSM(Variable Length Subnet Mask, 可变长子网掩码),这是一种产生不同大小子网的网络分配机制。VLSM将答应给点到点的链路分配子网掩码255.255.255.252,而给Ethernet网络分配255.255.255.0。VLSM技术对高效分配IP地址(较少浪费)以及减少路由表大小都起到非常重要的作用。但是需要注重的是使用VLSM时,所采用的路由协议必须能够支持它,这些路由协议包括RIP2,OSPF,EIGRP和BGP。
CIDR无类别编址
1992年引入了CIDR,它意味着在路由表层次的网络“类”的概念已经被取消,代之以“网络前缀”的概念。Internet中的CIDR(Classless Inter-Domain Routing, 无类别域间路由)的基本思想是取消地址的分类结构,取而代之的是答应以可变长分界的方式分配网络数。它支持路由聚合,可限制Internet主干路由器中必要路由信息的增长。
IP地址中A类已经分配完毕,B类也已经差不多了, 剩下的C类地址已经成为大家瓜分的目标。显然,对于一个国家、地区、组织来说分配到的地址最好是连续的, 那么如何来保证这一点呢?
于是提出了CIDR的概念。CIDR是Classless Inter Domain Routing 的缩写, 意为无类别的域间路由。
“无类型”的意思是现在的选路决策是基于整个32位IP地址的掩码操作。而不管其IP地址是A类、B类或是C类,都没有什么区别。
它的思想是: 把许多C类地址合起来作B类地址分配。采用这种分配多个IP地址的方式,使其能够将路由表中的许多表项归并(summarization)成更少的数目。
要使用这种归并,必须满足以下三种特性。
为进行选路要对多个IP地址进行归并时,这些IP地址必须具有相同的高位地址比特。
路由表和选路算法必须扩展成根据32位IP地址和32位掩码做出选路决策的算法。
必须扩展选路协议使其除了32位地址外,还要有32位掩码。OSPF和RIP-2都能够携带第4版BGP所提出的32位掩码。
通过这种方式,每个地区拥有约3200万的地址,另有约3200万的地址204.0.0.0 ~ 223.255.255.255保留备用。
这种分配方式的优点是很明显的:
1. 地址的分配是连续的
2. CIDR使路由表的设置更轻易
因此,我们在做IP规划的时候,刻意将子网作成2^n模式,目的便是为了尽量支持路由归并,以减少路由表规模。此外,2^n子网规划模式也是为了保证IP地址划分的规范性。
通过以上几种方法,一方面可以在一段时间内保障IP地址的耗尽,另一方面可以使路由表更加简洁查找更加高效。
技术小窍门――子网的计算
有不少学员在进行IP规划时,总是头疼子网和掩码的计算,其主要原因是对十进制和二进制的转换不熟练。现在给一窍门,可以解决这个问题。首先,我们看一个例子:
一个主机的IP地址是202.112.14.37,掩码是255.255.255.240,要求计算这个主机所在网络的网络地址和广播地址。
常规办法是把这两个都换算成二进制,然后相与,就可得到网络地址。其实大家只要仔细想想,可以得到一个方法:掩码为255.255.255.240那么可以知道这个掩码所容纳的IP地址有256-240=16个(包括网络地址和广播地址),那么具有这种掩码的网络地址一定是16的倍数。而网络地址是子网IP地址的开始,广播地址是结束,可使用的IP地址在这个范围内,因此比37刚刚小的,又是16的倍数的数只有32,所以得出网络地址为202.112.14.32。而广播地址就是下一个网络的网络地址减一。而下一个16的倍数是48,因此可以得到广播地址为202.112.14.47。
那么,假如给定一IP地址范围,根据每个网络的主机数量,要进行IP地址规划,可以按照同样原则进行计算。比如一个子网有13台主机,那么对于这个子网就需要22+1+1+1=25个IP地址。(注重加的第一个1是指这个网络连接时所需的网关地址,接着的两个1分别是指网络地址和主机地址。)那么大于或等于25,又是2^n的数目是32,因此子网部分的掩码只有256-32=224,最后得到掩码255.255.255.224。
引伸:到后面学习中,学员在学习访问控制表,可能碰到通配符的计算。同样道理计算出需要设置的网络大小即掩码,然后用255.255.255.255减去掩码,就得到通配符。注重这只对一个完整的网络校验有效,对于子网中部分主机限制就无效了。