[转]《TCP/IP路由技术(第一卷)(第二版)》一1.3 IPv4 地 址

本节书摘来自异步社区《TCP/IP路由技术(第一卷)(第二版)》一书中的第1章,第1.3节,作者【美】Jeff Doyle,CCIE #1919

1.3 IPv4 地 址

IPv4地址长度为32位。像所有其他网络层地址一样,IPv4地址也包括网络号和主机号两部分。网络号部分惟一地标识了一条物理链路或逻辑链路,对于与该链路相连的所有设备来说网络号部分是共同的。而主机号部分惟一地标识了该链路上连接的具体设备。

有几种方式可以表示IP地址的32位。举例来说,32位的IP地址 00001010110101100101011110000011可以用十进制表示为181 819 267。

由此可见用二进制表示IP地址十分麻烦,而全部32位数字用十进制格式表示计算起来又很耗时。图1-4给出了一种更好的表示方法。

32位的地址包含4个字节,每个字节均可以用0~255之间的十进制数表示,而每个十进制数之间用点号分隔。在图1-4中,将32位的地址映射到用点分十进制法表示的地址上。[8]

0f9098c2cd60ee8bdf5c7d701d679857a734a17e

在使用IPv4地址时需要记住一点,点分十进制表示法便于人们阅读和书写,而路由器更适合使用32位的二进制串,而不是按照4个八位组的方式读取地址。牢记这一点可以避免许多易犯的错误。如果读者没有接触过二进制数,特别是二进制与十进制之间的转换方法,那么建议读者在继续学习这一章的内容之前可以阅读一下附录A的内容。

IP地址与众不同的特性可能就是,IPv4地址不像其他网络层地址的网络号和主机号是固定不变的,IP地址的网络号和主机号可以在32位的界线内发生变化。也就是说,IP地址的网络号和主机号都有可能占据32位中的大多数位,也可能两者平分32位。例如NetWare和AppleTalk协议,由于它们主要用于相对较小的网络,所以协议的网络层地址的网络号和主机号长度是固定。这样的安排的确使得工作更加容易,接收设备可以从地址中读入固定的位来获取网络号,剩下的位便是主机号。

然而,TCP/IP从最初设计出来到现在可以灵活地应用于任何网络,从很简单的几个功能发展成为一个庞大的协议簇。TCP/IP这种适应性使得IP地址的管理更加困难。本节仅介绍了IP地址管理的一些基本内容,在第6章中将会介绍一些更高级的技术。

1.3.1 首个八位组字节规则

如果不对网络作太过精确的划分,那么网络可以按照主机数量分为3类:大型网络、中型网络和小型网络。

  • 大型网络——可以定义为包含大量主机的网络。大型网络的数量相对很少。
  • 小型网络——作为大型网络的对照,它仅仅包含很少数量的主机,但小型网络的数目很多。
  • 中型网络——相对于大型和小型网络来说,包含的主机数量中等,而且中型网络的数量也中等。

对于这3种规模的网络,高层的地址划分要求有3种类型的网络地址。面向大型网络的地址需要有能力为大量的主机编址,但是由于大型网络的数量有限,所以大型网络仅需要少量的网络地址。

而对小型网络来说情况又颠倒过来了,因为小型网络数量庞大,所以需要大量的小型网络的网络地址。但是小型网络主机有限,所以仅需要少量主机地址。

对于中等规模的网络来说,网络地址和主机地址的需求量均趋于中等水平。

图1-5显示了3类IPv4地址的网络号和主机号是怎样划分的。

13521349300e890aab1ae6e13bcf7146c6284998

迄今为止,对于所描述的大型、中型和小型网络,是按照如下方式映射到各类地址的:

A类地址——用于大型网络,第1个八位组是网络号,后3个八位组是主机号。8位的网络号最多可以表示256个网络,而每个网络地址的主机号可以提供的主机数量为224或16 777 216。
B类地址——用于中型网络。前2个八位组表示网络号,后2个八位组表示主机号。网络号和主机号的数量均为216或65 536个。
C类地址——对应于A类IP地址。前3个八位组表示网络号,最后1个八位组表示主机号。
因为所有的IPv4地址都是32位二进制字符串,所以需要某种方法来区分一个特定地址到底是属于哪一类地址。表1-3所示的首个八位组规则提供了这种方法,如下所述:

对于A类地址,首个八位组的第1位,即32位字符串最左边的1位,总是被设置为0。因此,通过设置首个八位组的剩余位为0(最小)或为1(最大),我们可以找到A类地址范围中的最小数和最大数。于是我们可以得到最小数和最大数分别为0和127,但是这里有几个例外:0被保留作为缺省地址部分(参见第12章),127被保留为内部回送地址。[9] 剩下的十进制数则是1~126。因此任何首个八位组落在1和126之间的IP地址均属于A类地址。

86c2b7b410f672024827fe0540bc2d0249c8120c

  * 0和127保留。

B类地址总是把左边的第1位设置为1,第2位设置为0。那么再次通过设置首个八位组的剩余位为0或为1,我们依然可以找到最小数和最大数。在图1-4中,我们可以看到首个八位组落在128和191之间的IP地址属于B类地址。
在C类地址中,前2位均被设置为1,第3位被设置为0。这样设置的结果是首个八位组在192和223之间。[10]
到目前为止,IPv4的编址看上去并不是十分困难。路由器和主机通过首个八位组字节规则能够很容易地确定IP地址的网络号。如果第1位是0,需要读取前8位才能获取网络地址;如果前两位是10,那么需要读取16位;如果前3位是110,则需求读取24位才能获取网络号。不幸的是,事情并不会这样简单。

1.3.2 地址掩码(Address Mask)

表示整个数据链路的地址——非特指某台主机的网络地址,可以用IP地址的网络部分来表示,其中主机位全部为0。例如,IP地址管理机构[11]可以将172.21.0.0[12]分配给一个申请者。因为172在128和191之间,所以这是一个B类地址,其中后两个八位组作为主机位,全部被设置为0。虽然前16位(172.21.)已经被指定,但是地址所有者有权决定后16位主机位的使用。

每一台设备和接口都将被分配一个惟一的、主机号明确的地址,例如172.21.35.17。不管设备是路由器还是主机,显然都需要知道自身的地址,而且它还需要能够确定它所属的网络,在这个案例中,它属于172.21.0.0。

这一任务通常由地址掩码来完成。地址掩码是一个32位的字符串,与IPv4地址的每一位相对应。掩码也可以像IPv4地址一样用点分十进制表示。这种表示方法会成为某些初学者的绊脚石。虽然地址掩码可以用点分十进制书写,但是它并不是一个地址。表1-4给出了对应于3类IPv4地址的标准地址掩码。

759a414c84a08f4d5b4eed505184455a3575b279

对于每一位IPv4地址位,设备会拿它与地址掩码的对应位进行布尔(逻辑)AND操作。AND函数表述如下:

比较两位并得出结果。当且仅当两位全部为1时,结果为1。如果两位中任意一位为0,则结果为0。

对于一个指定的IPv4地址,图1-6给出了怎样用地址掩码确定网络地址。地址掩码值为1 的位对应于地址的网络位,值为0的位对应于主机位。因为172.21.35.17是B类地址,所以掩码前两个八位组必须全部设置为1,后两个八位组,即主机号的所有位必须设置为0。参见表1-4,这个掩码的点分十进制表示为255.255.0.0。

在IPv4地址和地址掩码的每一位上执行逻辑“与”(AND)操作,结果如图1-6所示。在结果中,网络位不变,所有主机位则变为0。通过向接口分配地址172.21.35.17和掩码255.255.0.0,设备将会知道接口属于网络172.21.0.0。对IPv4地址和掩码应用AND操作总能够得到网络地址。

866d255dd5d144de4b5415342d6e8da5a14b735b

通过下面命令可以向Cisco路由器的接口分配地址和掩码(本例中接口为E0):

Smokey(config)# interface ethernet 0
Smokey(config-if)# ip address 172.21.35.17 255.255.0.0

但是为什么要使用地址掩码?到目前为止,使用首个八位组字节规则看上去更简单一些。

1.3.3 子网和子网掩码

首先,决不要忽略网络层地址的必要性。为了完成路由选择,每个数据链路(网络)都必须有一个惟一的地址;另外,数据链路上的每台主机也必须有一个地址,这个地址不仅标识主机为一个网络成员,还可以把主机与网络上的其他主机区分开来。

到目前为止的定义中,一个A类、B类或C类地址仅仅能用在一个单一网络中;为了建立一个网络,每个数据链路都必须使用不同的地址,以便这些网络可以被惟一地标识。如果每一个数据链路都使用一个单独的A类、B类或C类地址,那么即使用尽所有的IPv4地址,也只能给少于1700万个数据链路分配地址。显然,这种方法是不切实际的,[13] 在前面的例子中,如果充分地使用主机地址空间,那么在数据链路172.21.0.0中的设备数目可以超过65 000!

使A类、B类或C类地址实用化的惟一方法是对主网地址进行划分,例如将172.21.0.0划分为子网地址。请回忆两个事实:

  • IPv4地址的主机部分可以随意使用。
  • IPv4地址的网络号由分配给接口的地址掩码确定。

如图1-7所示,分配给网络的地址为B类地址172.21.0.0。5个数据链路将主机和路由器互连起来,每个数据链路都需要一个网络地址。按照目前的情况,172.21.0.0必须分配给其中的一个数据链路,那么另外4个数据链路还需要4个地址。

注意图1-7所示,地址掩码并不是标准的16位B类地址掩码;而是被扩展了8位,以便IP地址的前24位都被解释为网络位。换句话说,掩码使路由器和主机把读取的前8位主机位作为网络地址的一部分。结果是,主网络地址应用于整个网络,而每一个数据链路则变为一个子网(subnet);一个子网是一个主A类、B类或C类地址空间的一个子集。

现在,IPv4地址包括3个部分:网络部分、子网部分和主机部分。地址掩码现在变为子网掩码,或比标准地址掩码长的掩码。地址的前两个八位组依然是172.21,但是第3个八位组——主机位已经由子网位代替——的变化范围为0~255。在图1-6中的网络有子网1、2、3、4和5(172.21.1.0~172.21.5.0)。在单一B类地址下最多可以有256个子网,对应的掩码如图1-7所示。

9ffb64a634722264f271dcf113d948d73e839eda

下面给出两点告诫。首先,并不是所有路由选择协议都支持子网地址,即子网位全0或全1。因为这些协议是有类别化协议,它们不能区分一个全0子网和主网络号。例如,在图1-7中子网0为172.21.0.0;而主网IP地址也为172.21.0.0。没有更多信息将无法区分二者。

同样的,有类别路由选择协议也不能区分全1子网的广播地址和一个所有子网的广播地址。[14]例如,图1-7中的全1子网为172.21.255.0。对于这个子网,广播地址是172.21.255.255,但是这也是在主网172.21.0.0的所有子网上所有主机的广播地址。没有更多的信息也无法区分二者。第1版RIP协议和IGRP协议都是有类别路由选择协议;第7章将会介绍无类别路由选择协议,这种路由选择协议才可以真正地使用全0或全1子网。

其次是与子网及其掩码的口头表述有关。在图1-7中,对B类地址的第3个八位组进行子网划分是非常普遍的,但还常常听到人们这样表述子网设计:“B类地址使用C类地址掩码”,或者“将B类地址划分为C类地址”。这两种表述都是错误的。它们常常会对子网设计引起误解或者是不准确的理解。对于图1-6中所示的子网划分图解的正确表述应该是“一个使用8位进行子网划分的B类地址”或者“一个带有24位掩码的B类地址”。

可以用以下3种格式中的任何一种表示子网掩码:

点分十进制:255.255.255.0

位计数:172.21.0.0/24

十六进制:0xFFFFFF00

虽然位计数格式变得渐渐流行起来,但是点分十进制暂时一段时期仍旧经常使用在一些软件里面。与点分十进制相比,位计数格式更容易书写(地址后面是/,/后面紧跟着是网络部分的位计数)。另外,位计数格式可以更清楚地描述掩码的实际作用,因而可以避免前面段落出现的语义误解问题。某些UNIX系统使用十六进制格式。

虽然在Cisco路由器中必须使用点分十进制方式表示地址掩码,但是在行配置模式下使用命令ip netmask-format[decimal|hexadecimal|bit-count],可以设置使用3种格式中的任何一种格式显示掩码。例如,为使路由器以位计数格式显示掩码,配置如下:

Gladys(config) # line vty 0 4  
Gladys(config-line)# ip netmask-format bit-count

1.3.4 子网规划

如前面部分所述,在有类别地址环境中,子网位不能全部为0或全部为1。同样的,一个主机的IPv4地址也不能将主机位全部设置为0,这种用法是为路由器保留的,用于表示网络和子网自身。当然IPv4地址的主机位也不能全部被设置为1,因为它用于表示广播地址。所有这些限制无一例外地适用于IP地址的主机位,并且这也是子网规划的起点。除了这些限制,网络设计人员还需要根据地址空间与网络详细的匹配程度来选择最合理的子网划分方案。

在规划子网和子网掩码时,可以使用相同的公式计算一个主网地址下可用的子网数以及每个子网内可用的主机数,公式为:2n−2,其中n表示子网位数或主机空间,2表示减去全0和全1两个不可用地址。例如,给定一个A类地址10.0.0.0,子网掩码10.0.0.0/16(255.255.0.0)意味着有8位子网空间,也就是可以产生28−2 =254个子网,每个子网可以有216−2=65 534个主机地址。 另一方面,掩码10.0.0.0/24(255.255.255.0)表示有16位子网空间,可以产生65 534个子网,其中8位主机空间可以在某个子网中产生254个主机地址。

下面是IPv4地址子网划分的步骤:

步骤1:确定需要多少个子网,每个子网需要多少台主机。

步骤2:为了满足第1步提出的需求,使用公式2n−2确定子网位数和主机位数。如果存在多个子网掩码可以满足第1步需求,那么选择最能够符合未来需求的一个。例如,如果网络最有可能通过增加子网发展起来,那么选择子网位最多的掩码;如果网络最有可能借助增加现有子网内的主机数发展起来,则选择主机位最多的掩码。为了避免所选择的方案中的子网及子网内的主机地址被迅速地用完,需要为将来的发展预留一些空间。

步骤3:使用二进制进行计算,在子网空间中确定所有的位组合方式。在每种组合方式中,将所有主机位都设置为0,将得到的子网地址转换为点分十进制格式。最终结果就是子网地址。

步骤4:对于每一个子网地址,再次使用二进制,在保持子网位不变的情况下写出所有主机位组合,并将结果转换成点分十进制格式。最终结果就是每个子网的可用主机地址。

这里没有过分强调在最后两步中使用二进制的重要性。当进行子网划分时,最主要的惟一错误根源就是,在没有理解在二进制上会发生什么的情况下试图使用点分十进制方法。此外,点分十进制表示法对于人们读写IPv4地址十分方便。但是路由器和主机却把地址看作32位二进制字符串;为了顺利地完成地址操作,必须采用路由器和主机处理地址的方式。

就目前给出的例子而言,作者在前面的段落中似乎有点多虑了。在没有限定必须使用二进制方式表示地址和掩码的时候,子网模式和主机地址看上去还是十分清楚的。下面小节将讨论使用4个步骤完成子网规划,在那里点分十进制表示法将十分不明确。

1.3.5 打破八位组界线

到目前为止,在给出的例子中,子网空间都是以八位组为界线的。但这并不总是最实用或最有效的选择。例如,如果你需要对一个B类地址进行子网划分,并满足以下需求:数据链路数为500,每个数据链路内主机数不超过100台,应该怎么办?这样的需求很容易得以满足,只要使用9位子网位,就可以得到29−2=510个子网,剩下7位做主机位,每个子网的可用主机数为27−2=126。除此不再有其他位组合可以满足上面的需求。

请注意,如果还是以八位组为界线的话,那么将无法对C类地址进行子网划分。如果要这样做就会占用最后1个八位组,那么就没有更多主机位了。因此,如下面的例子所示,子网位和主机位必须共享最后1个八位组。

图1-8与图1-7中显示的网络除了分配的地址是C类地址192.168.100.0之外,其他完全相同。

c0707f71cb241d20b4c67bfad9a05dc79fdbb1f1

在这个网络中共有5条数据链路,因此至少需要划分出5个子网地址。图中还指明了每个子网需要分配的主机数(包括路由器接口)。其中两个以太网最多需要25个主机地址。所以完整的子网划分最小需求是5个子网,每个子网至少需要25个主机地址。

使用公式2n−2可以计算出,3个子网位和5个主机位即可以满足需求:23−2=6,25−2=30。带有3位子网位的C类地址掩码可以用点分十进制表示为255.255.255.224。

图1-9给出了子网位的推导过程。用二进制表示第2步计算出的子网掩码,子网掩码下面是IP地址。垂直线标记了子网空间,从二进制0开始计数,在这一空间中的所有位组合均被写出。

6e179825d807a6fd8480e9e197bdfe5d1553334e

图1-9 从标记的子网空间中可以得到子网位,接着从二进制0开始计数,给出子网空间中所有可能的位组合

在图2-10中,不发生变化的网络位填写在子网空间的左边,全部为0的主机位填写在子网位的右边。结果被转换为点分十进制表示后,得到6个子网地址(记住,第一个和最后一个地址,即在子网空间中全部位为0和全部位为1的地址不能使用)。

22298977ef80740e0433fa52235a700182e84fab

最后一步是计算每个子网内的可用主机地址。这一步通过以下方式完成:首先选择一个子网地址,保持其中的网络位和子网位不变,从二进制0开始计数,写出主机空间中所有的位组合。图1-11给出了针对子网192.168.100.32的计算过程。

注意结果的模式:第一个地址所有主机位全部为0,这是子网地址。最后一个地址主机位全部为1,这是子网192.168.100.32的广播地址。主机地址从子网地址起到广播地址为止。按照顺序,下一个子网地址是192.168.100.64。

现在,在二进制层次上理解子网划分的重要性就显而易见了。给出一个地址,如192.168.100.160,你不能确定它是否是一个主机地址、子网地址或广播地址。甚至在子网掩码已知情况下,结论也并不总是明显的。

这里我们鼓励读者计算例子中所有余下子网的主机地址,并且仔细观察产生地址的模式,理解这些模式对下一部分的内容会有帮助。

41fdb33d9d9d79da235781eac60f1030420371de

1.3.6 子网掩码的故障诊断

在“解剖”一个给定的主机地址和掩码时,常常需要确定地址属于哪个子网。例如,如果在一个接口上配置了地址,一个很好的实践就是首先验证对于接口连接的子网来说该地址是否合法。

使用下面的步骤逆推一个IP地址:

步骤1:用二进制写下一个给定的子网掩码。

步骤2:用二进制写下一个主机IPv4地址。

步骤3:在知道一个地址的类别后,掩码的子网位便是显然的了。根据掩码位,在最后网络位和第1个子网位之间画一条线,在最后子网位和第1台主机之间也画另一条线。

步骤4:写下地址的网络位和子网位,设置所有的主机位为0。最终的结果就是主机地址所属的子网地址。

步骤5:再次写下地址的网络位和子网位,这次设置所有主机位为1。结果就是本子网的广播地址。

步骤6:按照顺序可以知道第一个地址是子网地址,最后一个地址是广播地址。而且还可以知道在这两个地址之间的所有地址都是合法的主机地址。

对于地址172.30.141/25,图1-12给出了以上步骤的示例。

这个地址是B类地址,所以前16位是网络位,25位掩码中的后9位是子网位。可以发现子网地址是172.30.0.128,广播地址是172.30.0.255。在这两个地址之间的主机地址对于这个子网来说都是合法的,如对子网172.30.0.128来说,172.30.0.129~172.30.0.254都是主机地址。

8c38a0a8e2e0f8fb333feb34266b7b53230bdb6e

在这个例子中,初次进行子网划分的人可能会受到以下几种情况的干扰。一种是地址的第3个八位组所有位都为0。另一种是最后一个八位组仅一个子网位。一些人可能会认为广播地址看上去不合法。所有这些不舒服的感觉都源自地址的点分十进制表示法。当使用二进制表示地址和掩码时,这些疑虑会被打消,任何事看上去都一切正常,掩码设定了9位子网空间——包括第3个八位组和第4个八位组的第1位。这个案例说明了如果使用二进制表示法时一切正常,那么就不必担心看上去有些奇怪的点分十进制表示法。

本书是一本详细而又完整地介绍互连网络内部网关协议(IGP)的专业书籍,堪称有关IGP方面不可多得的经典之作。 本书共分三个部分。第一部分主要介绍了网络和路由选择的基本知识,其中包括IPv4协议、IPv6协议和路由技术。第二部分是本书的精华,这一部分详细、深入地讲述了各种常用的内部路由协议,如RIP、RIPv2、RIPng、无类别路由选择、EIGRP、OSPFv2、OSPFv3、IS-IS等协议,每一章除了对该协议的实现机制和参数详尽阐述,使读者对协议的实现原理有一个清晰的理解外,还通过在实际网络环境中的实例,详细地论述了该协议在Cisco路由器上的配置和故障处理方法,帮助读者获取大量解决实际问题的专业技能。第三部分介绍了如路由重新分配、缺省路由/按需路由选择、路由过滤、路由映射等多种重要而有效的路由控制工具,用来创建和管理多个IP路由选择协议的协调和互操作。附录部分讲述了二进制、十六进制换、访问列表、CCIE提示等内容。. 相对于第一版,本书第二版具有以下更新:在第一版详细讲述IPv4协议中IGP的基础上,大量增加了相应协议在IPv6协议中的实现和配置,其中单独一章用来讲述IPv6中应用的OSPFv3协议,这是本书新版的一大亮点;同时本书根据Internet和CiscoIOS系统的最新发展,适当地删减了如网桥、IGRP等过时的内容,并增加了许多新的IOS增强特性的讲解。.. 本书的读者不仅是那些准备CCIE考试的考生,也是任何需要完整理解IPv4,特别是IPv6下TCPIP内部路由选择协议实现的网络设计和工程人员。本书中对协议细节的讲解和对网络实例的探讨相信会让读者获益匪浅。...
本书是一本详细而又完整地介绍互连网络内部网关协议(IGP)的专业书籍,堪称有关IGP方面不可多得的经典之作。 本书共分三个部分。第一部分主要介绍了网络和路由选择的基本知识,其中包括IPv4协议、IPv6协议和路由技术。第二部分是本书的精华,这一部分详细、深入地讲述了各种常用的内部路由协议,如RIP、RIPv2、RIPng、无类别路由选择、EIGRP、OSPFv2、OSPFv3、IS-IS等协议,每一章除了对该协议的实现机制和参数详尽阐述,使读者对协议的实现原理有一个清晰的理解外,还通过在实际网络环境中的实例,详细地论述了该协议在Cisco路由器上的配置和故障处理方法,帮助读者获取大量解决实际问题的专业技能。第三部分介绍了如路由重新分配、缺省路由/按需路由选择、路由过滤、路由映射等多种重要而有效的路由控制工具,用来创建和管理多个IP路由选择协议的协调和互操作。附录部分讲述了二进制、十六进制换、访问列表、CCIE提示等内容。. 相对于第一版,本书第二版具有以下更新:在第一版详细讲述IPv4协议中IGP的基础上,大量增加了相应协议在IPv6协议中的实现和配置,其中单独一章用来讲述IPv6中应用的OSPFv3协议,这是本书新版的一大亮点;同时本书根据Internet和CiscoIOS系统的最新发展,适当地删减了如网桥、IGRP等过时的内容,并增加了许多新的IOS增强特性的讲解。.. 本书的读者不仅是那些准备CCIE考试的考生,也是任何需要完整理解IPv4,特别是IPv6下TCPIP内部路由选择协议实现的网络设计和工程人员。本书中对协议细节的讲解和对网络实例的探讨相信会让读者获益匪浅。...
中文名: TCP.IP路由技术[第二卷](CCIE职业发展系列) 原名: Routing TCP.IP,Volume 2 作者: Jeff Doyle译者: 毕立波资源格式: PDF 版本: 扫描版 出版社: 人民邮电出版社书号: 9787115100962发行时间: 2002年 地区: 大陆 语言: 简体中文,英文 简介: 掌握BGP-4(事实上的路由协议标准)的操作、配置及故障检测与排除:理解NAT的操作、配置及故障检测与排除:   通过一系列案例研究及练习题来理解IP多播路由的部署、配置及故障检测与排除;   熟悉IPv6(下一代IP协议)的设计目标以及当前的发展状态;通过大最经专家验证的方法来管理路由器:   通过大量实用且全面的复习题、配置练习题及故障检测与排除练习题来测试和验证各种所学知识:   在掌握高级TCPIP路由技术的同时。还可以进一步加强CCIE的认证准备工作。 为了管理日益增大的互连网络,需要全面理解路由器的操作行为,理解外部网关协议的各种复杂运行机制,包括TCP连接、消息状态、路径属性、内部路由协议互操作。以及建立邻居连接等内容。本书为读者全面理解BGP一4(边界网关协议版本4)、多播路由、NAT(网络地换)、IPv6,以及有效管理路由器等提供了各种翔实的专业知识。Jeff Doyle丰富的实践经验,易于阅读的写作风格及内容全面的论述。使得本书成为所有网络专家的案头宝典。 本书大大扩展了第一卷的主题内容:网络增长所带来的可扩展性和管理性要求。第二卷从第一卷的内部网关协议扩展到了自治系统间的路由协议,以及包括多播和IPv6在内的许多特殊路由问题,并且沿用了在第一卷中所采取的有效的信息组织结构。即在讨论完主题基础知识之后,辅之以一系列能充分展现现实网络世界中各种概念的配置案例。并通过各种经过验证的故障检测与排除方法来解决网络中可能出现的各种问题。本书不但可以帮助广大读者在自己的名字之后获得极具价值的CCIE。号。而且还能帮助大家掌握现实网络中所需的大量专家级网络知识和技巧。无论您是在准备CCIE认证考试。还是在准备CClE再认证考试,或是在寻求有关高级路由问题的专家建议。本书都将帮助您理解各种基本概念,并应用各种最佳实践技巧来应对网络的日益增长和有效管理等问题。内容简介本书在《TCP/IP路由技术第一卷)》的基础上,深入系统地阐述了TCP/IP相关高级路由技术,包括BGP、多播、IPv6以及网络管理等内容。为便于读者深入掌握各章所学知识,本书提供了大量的案例分析材料,内容涵盖协议配置、故障检测与排除等方方面面。并且,在各章结束时都提供了大量的复习题和练习题,以加强读者对所学知识的记忆与理解。   本书除了面向众多备考的准CCIE以及需要通过再认证的CCIE之外,还非常适合从事大型IP网络规划、设计和实施工作的工程技术人员及网络管理员参考。 作者简介 Jeff Doyle,(CCIE#1919)是科罗拉多州丹佛市JuniperNetworks公司的专业服务咨询师,其主要研究方向是IP路由协议和MPLS流量工程技术。Jeff曾经设计和实现的大规模Intemet服务提供商网络遍及北美、欧洲和亚洲?并且在NANOG(NorthAmerican Network Operators’Group,北美网络运营团体)和APRICOT(Asia Pacific Regional Internet Conference onOperational Technologies,亚太地区互联网运营技术协会)等服务提供商论坛讲授高级网络互联技术。在加入Juniper Neworks公司之前,Jeff曾经是INS(Intemational Network Services,国际网络服务)公司的高级网络系统咨询师。 书摘与插图第1部分 外部网关协议   第1章 外部网关协议   聪明的读者一定会问(也应该问):“为什么要浪费纸张专门花一个章节来描述像EGP(Exterior Gateway Protocol,外部网关协议)这样一种已经被废除了的协议?”毕竟EGP已经被’BGP(Border-Gateway Protocol,边界网关协议)协议广泛替代了。该问题的答案有二。   首先,虽然目前已经很少有人在用EGP了,但某些特殊场合仍然会遇到。例如,在写作本书时仍然可以在某些美国军用互联网络中见到EGP的影子。因而作为一名CCIE,仍然应该为这种罕见应用做好知识储备。   其次,本章内容作为一种历史铺垫,其目的是解释外部网关协议的发展驱动力,并说明最初的外部网关协议存在的不足,以便引出后面两章的内容。而且,在了解了BGP的演进根源之后,可以更好地认识到BGP的重要性。   1.1 EGP的起源   在20世纪80年代早期,构成.ARPANET(现代互联网的前身)的路由器(网关)设备上都运行了一种距离向量路由协议——GGP(Gateway-to-Gateway Protocol,网关到网关协议)。但是随着ARPANET的不断发展,与当今许多负责管理日益增长的互联网络的网管员一样,ARPANET的架构师们也预见到了相同的问题:现在运行的路由协议没有很好的扩展性。 目录: 第一部分 外部网关协议(EGP) 第1章 外部网关协议 2 1.1 EGP的起源 2 1.2 EGP的操作 3 1.2.1 EGP拓扑问题 3 1.2.2 EGP的功能 5 1.2.3 EGP消息格式 12 1.3 EGP的不足 18 1.4 配置EGP 19 1.4.1 案例研究:一个EGP末梢网关 19 1.4.2 案例研究:一个EGP核心网关 22 1.4.3 案例研究:间接邻居 25 1.4.4 案例研究:缺省路由 27 1.5 EGP的故障排除 28 1.5.1 解释邻居表 29 1.5.2 案例研究:聚合到Syrup的速度 30 1.6 尾注 31 1.7 展望 32 1.8 复习问题 32 1.9 配置练习 33 1.10 故障排除练习 36 第2章 BGP4简介 38 2.1 无类路由 38 2.1.1 归纳摘要 39 2.1.2 无类路由 40 2.1.3 路由总结:优势、劣势以及不对称性 43 2.1.4 Internet:经过多年后还保持着分层结构 45 2.1.5 CIDR:减轻了路由表的爆炸性增长 48 2.1.6 CIDR:降低了B类地空间的消耗 51 2.1.7 CIDR遇到的问题 51 2.2 谁需要BGP 54 2.2.1 一个单宿主自治系统 55 2.2.2 多宿主到一个单一的AS 57 2.2.3 多宿主到多个自治系统 60 2.2.4 “负载均衡”中应当注意的一个问题 62 2.2.5 BGP的危险 63 2.3 BGP基础知识 64 2.3.1 BGP消息类型 66 2.3.2 BGP有限状态机 67 2.3.3 路径属性 70 2.3.4 管理权值 78 2.3.5 AS_SET 79 2.3.6 BGP决策过程 80 2.3.7 路由抑制 82 2.4 IBGP和IGP的同步 83 2.5 管理大型BGP对等关系 88 2.5.1 对等组 88 2.5.2 团体 88 2.5.3 路由反射器 88 2.5.4 联盟 93 2.6 BGP消息格式 94 2.6.1 Open消息 95 2.6.2 Update消息 96 2.6.3 Keepalive消息 97 2.6.4 Notification消息 97 2.7 尾注 99 2.8 展望 99 2.9 推荐的读物 99 2.10 复习题 99 第3章 BGP4的配置以及故障排除 105 3.1 基本的BGP配置 105 3.1.1 案例研究:建立BGP路由器之间的对等 105 3.1.2 案例研究:向BGP中注入IGP路由 110 3.1.3 案例研究:向IGP注入BGP路由 115 3.1.4 案例研究:没有IGP的IBGP 120 3.1.5 案例研究:IGP上的IBGP 126 3.1.6 案例研究:EBGP多跳 132 3.1.7 案例研究:聚合路由 135 3.1.8 管理BGP连接 150 3.2 路由策略 153 3.2.1 重置BGP连接 153 3.2.2 案例研究:通过NLRI过滤路由 155 3.2.3 案例研究:通过AS_PATH过滤路由 161 3.2.4 案例研究:通过路由图过滤路由 164 3.2.5 案例研究:管理权值 166 3.2.6 案例研究:管理距离以及后门路由 173 3.2.7 案例研究:使用LOCAL_PREF 属性 178 3.2.8 案例研究:使用MULTI_EXIT_DISC属性 182 3.2.9 案例分析:附加AS_PATH 187 3.2.10 案例分析:路由标记 190 3.2.11 案例分析:路由抑制 194 3.3 大型BGP 197 3.3.1 案例分析:BGP对等组 198 3.3.2 案例分析:BGP 团体 201 3.3.3 案例分析:专用AS号 212 3.3.4 案例分析:BGP 联盟 215 3.3.5 案例分析:路由反射器 225 3.4 展望 230 3.5 推荐的读物 230 3.6 命令归纳 231 3.7 配置练习 235 3.8 故障排除练习 240 第二部分 高级IP路由问题 第4章 网络地翻译 250 4.1 NAT的操作 250 4.1.1 NAT的基本概念 250 4.1.2 NAT和IP的保存 252 4.1.3 NAT和ISP的变更 254 4.1.4 NAT和多宿主AS 255 4.1.5 端口地翻译 257 4.1.6 NAT和TCP负载分配 258 4.1.7 NAT和虚拟服务器 259 4.2 NAT的问题 260 4.2.1 信头校验和 260 4.2.2 分段 260 4.2.3 加密 260 4.2.4 安全性 261 4.2.5 具体协议涉及到的问题 261 4.3 配置NAT 268 4.3.1 案例研究:静态NAT 268 4.3.2 案例研究:动态NAT 274 4.3.3 案例研究:网络合并 278 4.3.4 案例研究:用NAT实现ISP多宿 281 4.3.5 端口地翻译 286 4.3.6 案例研究:TCP负载均衡 287 4.3.7 案例研究:服务分配 288 4.4 NAT故障排除 290 4.5 尾注 292 4.6 展望 292 4.7 命令归纳 292 4.8 配置练习 293 4.9 故障排除练习 295 第5章 IP多播路由介绍 297 5.1 对IP多播的要求 299 5.2 组成员概念 303 5.2.1 加入和退出组 304 5.2.2 因特网组管理协议(IGMP) 308 5.2.3 Cisco组员资格协议(CGMP) 313 5.3 多播路由的问题 320 5.3.1 多播的前 320 5.3.2 多播路由 321 5.3.3 稀疏与密集拓扑的比较 322 5.3.4 隐式加入与显式加入的比较 323 5.3.5 基于源的树与共享树的比较 325 5.3.6 多播的范围 326 5.4 距离向量多播路由协议(DVMRP)的操作 329 5.4.1 对邻居的发现和维护 330 5.4.2 DVMRP路由表 330 5.4.3 DVMRP包的前 332 5.4.4 DVMRP消息的格式 332 5.5 MOSPF的操作 338 5.5.1 MOSPF基础 339 5.5.2 区间的MOSPF 340 5.5.3 AS间的MOSPF 342 5.5.4 MOSPF扩展的格式 343 5.6 基于核心的树(CBT)的操作 345 5.6.1 CBT基础 345 5.6.2 寻找核心 346 5.6.3 CBT指定路由器 347 5.6.4 成员与非成员的多播源 348 5.6.5 CBT消息格式 349 5.7 与协议无关的多播(PIM)的介绍 353 5.8 与协议无关多播,密集模式(PIM-DM)的操作 354 5.8.1 PIM-DM基础 354 5.8.2 Prune 消息的覆盖 359 5.8.3 单播路由的改变 361 5.8.4 PIM-DM指定路由器 361 5.8.5 PIM前器的选举 361 5.9 与协议无关的多播,稀疏模式(PIM-SM)的操作 364 5.9.1 PIM-SM基础 364 5.9.2 查找会聚点 365 5.9.3 PIM-SM和共享树 367 5.9.4 源的注册 369 5.9.5 PIM-SM与最短路径树 375 5.9.6 PIMv2消息格式 379 5.10 尾注 385 5.11 展望 386 5.12 推荐读物 386 5.13 命令归纳 386 5.14 复习问题 388 第6章 IP多播路由的配置和故障排除 394 6.1 配置IP多播路由 394 6.2 案例研究:配置与协议无关多播,密集模式(PIM-DM) 395 6.3 配置与协议无关多播,稀疏模式(PIM-SM) 403 6.3.1 案例研究:静态配置RP 403 6.3.2 案例研究:配置Auto-RP 409 6.3.3 案例研究:配置稀疏——密集模式 416 6.3.4 案例研究:配置自举协议 419 6.4 案例研究:多播负荷分担 423 6.5 IP多播路由的故障排除 429 6.5.1 使用mrinfo 430 6.5.2 mtrace与mstat的使用 432 6.6 展望 436 6.7 配置练习 436 6.8 排错练习 438 第7章 大范围IP多播路由 441 7.1 多播范围控制 441 7.2 案例学习:多播穿过非多播 443 7.3 连接到DVMRP网络 445 7.4 AS间多播 448 7.4.1 BGP的多协议扩展(MBGP) 450 7.4.2 多播源发现协议(MSDP)运行 451 7.4.3 MSDP消息格式 453 7.5 案例学习:配置MBGP 456 7.6 案例学习:配置MSDP 460 7.7 案例学习:MSDP全连接组 464 7.8 案例学习:泛播 RP 466 7.9 案例学习:MSDP缺省对等实体 470 7.10 命令归纳 473 7.11 尾注 474 7.12 展望 474 7.13 复习问题 474 第8章 IPv6 476 8.1 IPv6的设计目标 476 8.1.1 提高可扩展性 477 8.1.2 易于配置 477 8.1.3 安全性 478 8.2 当前IPv6状态 478 8.2.1 IPv6规范(RFC) 478 8.2.2 厂商支持 479 8.2.3 实现 479 8.3 IPv6包格式 480 8.3.1 IPv6地 480 8.3.2 地空间 481 8.3.3 地的文字表示 481 8.3.4 地前缀的文字表示 482 8.3.5 地类型分配 482 8.4 地结构 484 8.4.1 可聚合全球地格式 484 8.4.2 IPv6头 493 8.5 IPv6功能 497 8.5.1 在Cisco路由器上使能IPv6能力 497 8.5.2 ICMPv6 498 8.5.3 邻居发现 499 8.5.4 自动配置 506 8.5.5 路由 509 8.5.6 泛播处理过程 521 8.5.7 多播 522 8.5.8 服务质量 526 8.6 从IPv4IPv6过渡 526 8.6.1 双协议栈 527 8.6.2 DNS 527 8.6.3 IPv4中的IPv6隧道 528 8.6.4 网络地翻译-协议翻译 530 8.7 尾注 530 8.8 展望 530 8.9 推荐书目 531 8.10 复习问题 531 8.11 参考文献 533 第9章 路由器管理 535 9.1 规则和程序定义 536 9.1.1 服务等级协议 536 9.1.2 改变管理 536 9.1.3 扩大提交过程程序 538 9.1.4 更新规则 538 9.2 简单网络管理协议 538 9.2.1 SNMP概述 538 9.2.2 CiscoWorks 540 9.2.3 路由器的SNMP配置 540 9.3 RMON 545 9.3.1 RMON概述 545 9.3.2 路由器的RMON配置 546 9.4 记录日志 548 9.5 系统日志(Syslog) 551 9.5.1 Syslog概述 551 9.5.2 路由器上Syslog的配置 552 9.6 网络时间协议(NTP) 553 9.6.1 NTP概述 553 9.6.2 路由器的NTP配置 554 9.7 记账 557 9.7.1 IP记账 558 9.7.2 NetFlow 559 9.8 配置管理 564 9.9 故障管理 565 9.10 性能管理 567 9.11 安全管理 567 9.11.1 口令类型和加密 568 9.11.2 控制交互式访问 568 9.11.3 减少拒绝服务攻击的危险 569 9.11.4 TACACS+ 570 9.11.5 RADIUS 575 9.11.6 安全的命令解释器 576 9.12 设计支持管理程序的服务器 577 9.13 网络健壮性 577 9.13.1 HSRP 577 9.13.2 多组HSRP 578 9.13.3 配置HSRP 579 9.13.4 配置MHSRP 582 9.14 实验室 583 9.15 推荐书目 584 9.16 尾注 585 9.17 展望 585 9.18 命令归纳 585 9.19 复习问题 589 9.20 配置练习 590 9.21 参考文献 590 第三部分 附录 附录A show ip bgp neighbors的显示 594 附录B 正则表达式指南 599 附录C 保留的多播地 603 附录D 复习问题的答案 619 附录E 配置练习的答案 631 附录F 故障排除练习答案 664
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值