《TCP/IP路由技术(第二卷)》一1.2 EGP的操作

本节书摘来自异步社区《TCP/IP路由技术(第二卷)》一书中的第1章,第1.2节,作者【美】Jeff Doyle,CCIE #1919 , Jennifer DeHaven Carroll , 更多章节内容可以访问云栖社区“异步社区”公众号查看

1.2 EGP的操作

TCP/IP路由技术(第二卷)
RFC 827中定义的是EGP版本1。EGP版本2对版本1做了少量修改,并在RFC 888中首次被提出,正式的EGPv2则由RFC 904进行定义。

1.2.1 EGP的拓扑结构问题

EGP邻居(也被称为对等体)之间需要交换EGP消息。如果邻居位于同一个AS之内,就被称为内部邻居(interior neighbours);如果邻居位于不同的AS之内,则被称为外部邻居(exterior neighbours)。EGP无邻居自动发现功能,需要用手工方式来配置邻居地址,邻居间交换的消息采用单播方式被传送到手工配置的邻居地址。

由于EGP消息只应该被传送给单一邻居,因而RFC 888建议将EGP消息的TTL(time-to-live,生存时间)设置为低值。不过,没有任何一种EGP功能需要EGP邻居共享同一条数据链路。例如,图1-1显示了两个被某台仅运行RIP的路由器所分隔的EGP邻居,由于EGP消息采用单播方式被传送到邻居,因而可以穿越该路由器边界。Cisco路由器将EGP消息的TTL设置为255。

image

EGP网关既可以是核心网关(core gateway),也可以是末梢网关(stub gateway)。这两种类型的网关都能接受来自其他自治系统中的网络信息,但末梢网关只能发送其自身AS的网络信息,只有核心网关才能发送从其他AS学习到的网络信息。

为了理解EGP为何要定义核心网关和末梢网关,需要先来了解EGP体系结构方面的局限性。如前所述,EGP并不是一种路由协议,其更新信息中仅列出了可达网络,并没有包含确定最短路径或防止路由环路的足够信息,因而建立起来的EGP拓扑结构必须没有环路。

图1-2显示的EGP拓扑结构中只有一个核心AS,其他自治系统(末梢自治系统)必须连接在该核心AS上。这种两级树状拓扑结构与OSPF的两级拓扑结构需求非常相似,而且作用也完全相同。《TCP/IP路由技术(第一卷)》中曾提到,域间OSPF路由在本质上属于距离向量路由,因而很容易形成路由环路。为此,OSPF要求所有非主干OSPF域之间的流量都必须经过主干域,利用这种强制性的无环路域间拓扑结构,可以大大降低路由环路的可能性。与此类似,要求末梢自治系统间的所有EGP可达性信息都必须经过核心AS,可以大大降低EGP拓扑结构潜在的路由环路可能性。

image

1.2.2 EGP功能

EGP由以下3种协议机制组成。

邻居获取协议(Neighbor Acquisition Protocol)
邻居可达性协议(Neighbor Reachability Protocol)
网络可达性协议(Network Reachability Protocol)
这3种协议机制利用10种消息类型来建立邻居关系,维护邻居关系,与邻居交换网络可达性信息,并向邻居通告程序或格式化差错。表1-1列出了所有的EGP消息类型以及使用每种消息类型的协议机制。

image

下面将逐一讨论上述3种EGP机制。1.2.3小节将详细讨论上述消息。

1.邻居获取协议
EGP邻居在正常交换可达性信息之前,必须首先确认兼容性问题。该功能由一个简单的双向握手过程来完成,由其中一个邻居发送Neighbor Acquisition Request(邻居获取请求)消息,而另一个邻居则响应Neighbor Acquisition Confirm(邻居获取确认)消息。

没有任何一个RFC说明了两个EGP邻居是如何初次发现对方的。在实际应用中,EGP网关都是通过手工配置邻居的IP地址来获知其邻居的。之后,该网关将向该手工配置的邻居发送一条单播Neighbor Acquisition Request(邻居获取请求)消息,该消息申明了一个Hello间隔(即该网关同意从其邻居接受的两条Hello消息之间的最小间隔)和Poll间隔(即该网关同意因路由更新而被其邻居轮询的最小间隔)。该邻居的响应消息Neighbor Acquisition Confirm(邻居获取确认)中也将包含其Hello间隔和轮询间隔,如果邻居双方就这两个间隔值达成一致,那么就可以交换网络可达性信息了。

当网关学习到邻居之后,将认为邻居处于Idle(空闲)状态;在发送第一条Neighbor Acquisition Request(邻居获取请求)消息之前,网关会将邻居的状态转换为Acquire(获取)状态,当网关接收到Neighbor Acquisition Confirm(邻居获取确认)消息之后,则将邻居的状态转换为Down(停用)状态。

注意:

RFC 904中详细解释了EGP的有限状态机。
如果网关的响应消息不是Neighbor Acquisition Confirm(邻居获取确认),而是Neighbor Acquisition Refuse(邻居获取拒绝),则表示拒绝该邻居。Neighbor Acquisition Refuse(邻居获取拒绝)消息中可以包含拒绝理由,如表空间不足,当然,也可以无任何特定理由即可拒绝该邻居。

利用Neighbor Cease(邻居终止)消息,网关可以随时终止已建立的邻居关系。与Neighbor Acquisition Refuse(邻居获取拒绝)消息一样,发起Neighbor Cease(邻居终止)消息的网关既可以在消息中包含终止原因,也可以什么原因都不说。邻居收到Neighbor Cease(邻居终止)消息之后,回应Neighbor Cease Acknowledgment(邻居终止确认)消息。

邻居获取进程的最后一种情况就是网关发送Neighbor Acquisition Request(邻居获取请求)消息,而邻居无任何响应。RFC 888建议“以一个合理的速率(如每隔30s)”来重传Neighbor Acquisition Request(邻居获取请求)消息,但Cisco的EGP实现并不仅仅在固定周期内重传未确认的消息,而是在初次发送Neighbor Acquisition Request(邻居获取请求)消息之后的30s重传未确认的Acquisition(获取)消息,之后在再次重传之前需要等待60秒钟的时间。如果在第三次重传之后的30s之内仍未收到响应消息,网关就将邻居的状态由Acquire(获取)转换为Idle(空闲),如例1-1所示。网关将Idle(空闲)状态保持到300秒(5分钟)之后,将Idle(空闲)状态转换到Acquire(获取)状态,并重新开始上述邻居获取进程。

例1-1:命令debug ip egp transactions的输出结果显示了EGP的状态转换过程。
image

需要注意的是,例1-1中的每条EGP消息都有一个序列号,利用该序列号可以表示EGP消息对(如Neighbor Acquisition Request/Confirm、Request/Refusal以及Cease/Cease-Ack消息对)。后面“网络可达性协议”部分将详细解释序列号的使用方式。

当两个EGP网关成为邻居之后,其中一个为active(主动)邻居,另一个是passive(被动)邻居。总是由主动网关发送Neighbor Acquisition Request(邻居获取请求)消息来发起邻居关系,被动网关从不发送Neighbor Acquisition Request(邻居获取请求)消息,它们仅响应主动网关发出的Neighbor Acquisition Request(邻居获取请求)消息。Hello/I-Heard-You消息对也是如此,由主动邻居发送Hello消息,而被动邻居则回应I-Heard-You(I-H-U)消息。不过,被动网关可以发起Neighbor Cease(邻居终止)消息,此时主动网关必须回应Neighbor Cease Acknowledgment(邻居终止确认)消息。

核心网关(可以是位于多个其他自治系统的路由器的邻居)既可能是某个邻居邻接(neighbor adjacency)关系的主动网关,也可能是其他邻居邻接关系的被动网关。Cisco的EGP实现利用AS作为决定因素,即AS号小的邻居成为主动邻居。

2.邻居可达性协议
网关获取到某个邻居之后,就通过发送周期性的Hell消息来维护邻居关系,而邻居则以I-H-U消息作为Hello消息的回应。RFC 904没有指定Hello消息的标准周期,Cisco使用的默认周期为60秒,也可以使用命令timers egp对其进行修改。

交换完Hello/I-H-U消息对之后,邻居的状态由Down(停用)变为Up(启用)(参见例1-2),之后邻居之间就可以交换网络可达性信息了,如下所述。

例1-2:命令debug ip egp transactions 的输出结果显示了双向握手成功以及EGP的状态转换。

image

如果主动邻居连续发送了3条消息之后仍未收到响应消息,那么邻居的状态将被转换为Down(停用)。网关以正常的Hello间隔发送3条以上的Hello消息,如果仍未收到响应消息,那么邻居的状态将被转换为Cease(终止)状态。网关按60秒的间隔时间发送3条Neighbor Cease(邻居终止)消息,如果邻居均回应Neighbor Cease Acknowledgment(邻居终止确认)消息,那么该网关就将邻居的状态转换为Idle(空闲)状态,并等待5分钟,之后再转换回Acquire(获取)状态,并尝试重新获取邻居。例1-3显示了该事件的顺序关系。

例1-3:地址为192.168.16.2的邻居停止回应,每条未被确认的EGP消息的间隔为
60秒。
image

例1-4给出了另一个沉寂(dead)邻居的例子,只是本例中处于被动模式下的核心网关(192.168.16.2)正在发现该沉寂邻居(192.168.16.1)。

例1-4:地址为192.168.16.1的邻居停止回应,debug消息来自处于被动模式下的核心网关(192.168.16.2)。

image

如果网关未在60s的Hello间隔内收到Hello消息,则将尝试“唤醒”其邻居。由于被动模式下的网关无法发送Hello消息,因而发送Poll(轮询)消息,之后该网关将等待一个Poll间隔。(Cisco的默认Poll间隔是180s,即3分钟。)如果网关未收到响应消息,将再次发送另一条Poll消息,并且再等待一个Poll间隔;如果仍未收到响应消息,网关就将邻居的状态更改为Down(停用),随后又更改为Cease(终止)状态。如例1-3所示,发送了3条Cease消息之后,邻居的状态被更改为Idle(空闲)。

3.网络可达性协议
当邻居的状态为Up(启用)时,EGP邻居之间可以开始交换可达性信息。每个网关都周期性地向其邻居发送包含了序列号的Poll(轮询)消息,邻居则以包含了相同序列号和可达网络列表的Update(更新)消息进行响应。例1-5解释了Cisco IOS软件对序列号的使用方式。

例1-5:EGP邻居之间进行周期性地相互轮询,以获得网络可达性更新。

image

邻居间交换的每对Hello/I-H-U消息中都包含了相同的序列号,直至发送Poll(轮询)消息时为止,Poll/Update消息对也使用相同的序列号。主动邻居每接收到一次Update(更新)消息,就将序列号加1,如例1-5所示,Poll/Update消息对中的序列号为120,之后被加1后变成了121。需要注意的是,本例中两个邻居都发送了Poll(轮询)消息,来自被动邻居(192.168.16.2)的Poll(轮询)消息带有完全不同的序列号(3),而邻居总是以包含了与Poll(轮询)消息中完全相同的序列号的Update(更新)消息作为响应消息。

Cisco IOS软件中的默认Poll间隔为180秒,也可以使用命令timers egp对其进行修改。通常情况下,只有当网关被轮询到时才发送Update(更新)消息,这就意味着拓扑结构的变化可能最多有3分钟时间无法向外部进行宣告。为此,EGP通过允许网关在每个Poll间隔内发送一条主动提供的(unsolicited)Update(更新)消息(即不作为Poll(轮询)响应消息的Update(更新))来解决这个问题,但Cisco不支持这种主动提供的Update(更新)。

注意:

也可以使用命令timers egp来修改Hello间隔,命令格式为timers egp hello polltime。
Poll(轮询)和Update(更新)消息中都包含了源网络的地址,例如,例1-5中的Poll(轮询)和Update(更新)消息中显示的源网络地址为192.168.16.0。这里所说的源网络指的是通过该网络可以测量所有的可达性信息——也就是说,通过连接在源网络上的路由器可以到达所有被请求或被宣告的网络。虽然源网络通常就是与两个邻居都相连的网络,但更准确地说法应该是:源网络就是Poll(轮询)正在请求消息的网络以及Update(更新)正在提供信息的网络。EGP完全是一种有类别协议,而且源网络(也就是列在Update中的网络地址)总是主类(major class)网络地址(从来都不会是子网)。

在源网络地址之后是一台或多台路由器以及通过这些路由器可以到达的网络列表,该列表上的路由器的共同特征是都连接在源网络上。如果该列表上的路由器不是发起Update(更新)消息的EGP网关,那么该路由器就是间接(indirect)或第三方(third-party)邻居。

图1-3解释了间接EGP邻居的概念,名为Moe的路由器是一台核心网关,与其他3台网关形成对等关系。

image

例1-5中的调试消息来自AS1中的路由器Shemp。需要注意的是,由路由器Moe(192.168. 16.2)发起的Update(更新)消息中,这3个网络都被列为可通过路由器Moe而到达,有4个网络可以通过路由器Larry(192.168.16.4)和Curly(192.168.16.3)而到达,而这2台路由器都是Shemp的间接邻居,需要通过Moe才能通达。AS3中的路由器Joe则不是一个间接邻居,因为该路由器并没有连接到源网络上,其网络仅仅被宣告为可以通过路由器Moe到达该网络。

间接路由器的宣告可以节省公共链路的带宽,但更为重要的是,通过消除不需要的路由器跳数可以大大提高路由效率。如图1-3所示,路由器Shemp仅与Moe形成对等关系,而事实上,路由器Larry并不运行EGP,只是通过RIP将其网络宣告给Moe,路由器Moe通过向Shemp告知有比自己更好的下一跳来执行“抢占重定向(preemptive redirect)”操作。

事实上,EGP的Update(更新)消息中也可以仅包含间接邻居——也就是说,消息发起方可能不将其作为通往其他网络的下一跳。此时,该发起方被称为route server(路由器服务器)。路由服务器通过IGP或静态路由可以学习到可达性信息,并将这些可达性信息宣告给EGP邻居,而自身并不执行任何包转发功能。

从EGP网关的角度来看,邻居既可以是内部网关,也可以是外部网关。如果位于同一个AS中,则邻居为内部网关,如果位于不同的AS中,则邻居为外部网关。图1-3中的所有EGP网关都将其邻居视为外部网关。如果路由器Larry也运行了EGP,而且与Moe形成对等关系,那么这两台路由器都会将对方视为内部网关。

EGP的Update(更新)消息中包含了两个用来描述其列表中的路由器是内部网关还是外部网关的字段(详见1.2.3小节)。下面来看一下例1-5的Update(更新)消息,可以看出这两个字段紧挨着源网络地址字段之前:IntGW=2以及ExtGW=1。这两个字段之和即为Update(更新)消息中列出的路由器数量。首先列出的是所有指定的内部网关,因而,如果IntGW=2以及ExtGW=1,则表示列出的前两个路由器为内部网关,最后一个路由器为外部网关。如果将例1-5中192.168.16.2的Update(更新)消息与图1-3相比较,可以看出,通过路由器Curly可达的3个网络都被列在Update(更新)的最后,并被标记为外部——也就是说,这3个网络可以通过路由器Moe的外部网关到达。由于末梢网关无法将网络宣告到本AS之外,因而只有核心网关的Update(更新)消息中才包含外部网关信息。

EGP的Update(更新)消息为每个列出的网络都关联一个距离值,距离字段为8bit,距离值范围为0~255。不过,除了将255表示为不可达网络之外,RFC 904并没有具体指定距离值的解析方式,而且也没有RFC定义任何利用该距离值来计算AS间最短路径的算法。Cisco则将距离值理解为跳数,如例1-5所示,其默认规则也非常简单:

如果网关在本AS内宣告所有网络,则距离值为0;
如果网关在本AS之外宣告所有网络,则距离值为3;
如果网关指示某网络不可达,则将其距离值设置为255。
以例1-5和图1-3为例,尽管网络172.20.0.0与路由器Moe之间存在一跳路由,但Moe宣告该网络时的距离值为0,即与其直接连接的网络172.17.0.0的距离值相同。Moe与网络10.0.0.0之间存在一跳路由,与网络172.18.0.0之间存在两跳路由,由于这两个网络与Moe处于不同的AS中,因而Moe宣告这两个网络时的距离值都为3。需要记住的一点是,从本质上来看,EGP所使用的距离值对确定到某个网络的最佳路径毫无用处。

例1-6给出了Shemp的路由表以及例1-5中的Update(更新)所产生的路由项。
例1-6:路由器Shemp的路由表。
image

例1-6中的路由表有两点值得注意。首先,EGP项的管理距离为140,该管理距离要高于所有的IGP(外部EIGRP 除外),因而路由器将总是选择IGP路由,即使EGP宣告的是同一个网络。

其次,每个由EGP宣告的网络的距离值都比例1-5 Update(更新)消息中显示的距离大1。这是因为,跟RIP路由算法一样,Cisco的EGP进程将所有的距离值都加1。

1.2.3 EGP消息格式

EGP使用5种不同的编码格式来表示表1-1中的10类消息,所有消息的头部格式都一样,如图1-4所示。

image

EGP消息的头部字段定义如下。

版本(Version):指定当前的EGP版本号。如果接收到的消息中的版本号与接收方的版本号不一致,则将拒绝该消息。当前所有EGP实现的版本号都是2。
类型(Type):指定头部后面是5种消息格式中的哪一个。表1-2给出了10类EGP消息及其使用的类型编号。
代码(Code):指定子类型。例如,如果类型为5,则代码可以指示消息是Hello还是I-Heard-You。
状态(Status):根据消息类型的不同而不同(就像代码字段一样)。例如,Neighbor Acquisition(邻居获取)消息可以利用状态字段来表示主动或被动模式,而Neighbor Reachability(邻居可达性)消息可以利用状态字段来表示Up(启用)或Down(停用)状态。
校验和(Checksum):是EGP消息和反码的反码,与IP、TCP和UDP使用的差错校验算法相同。
自治系统号(Autonomous System Number):指定消息发起方的AS号。
序列号(Sequence Number):用于同步消息对(如本章前面所述)。例如,Update(更新)消息中包含的序列号应始终与Poll(轮询)消息中的序列号一致。
image

1.Neighbor Acquisition(邻居获取)消息(EGP消息类型3)
Neighbor Acquisition(邻居获取)消息属于EGP类型3。表1-3列出了用于指示EGP消息的代码值,源自RFC 904的表1-4给出了状态字段的可能值以及可能使用某特定状态的原因。

image

图1-5给出了Neighbor Acquisition(邻居获取)的格式,Hello间隔和Poll(轮询)间隔字段仅出现在Neighbor Acquisition Request(邻居获取请求,代码0)和Neighbor Acquisition Confirm(邻居获取确认,代码1)消息中,其他Neighbor Reachability(邻居可达性)消息的格式与头部相同,不包含其他字段。

Hello间隔(Hello interval):表示发起方同意接收的两个Hello消息之间的最小间隔,以秒为单位。Cisco的默认Hello间隔为60秒,可以利用命令timers egp对其进行修改。
image

轮询间隔(Poll interval):表示发起方同意接收的两个Poll消息之间的最小间隔,以秒为单位。Cisco的默认Hello间隔为180秒,可以利用命令timers egp对其进行修改。
2.Neighbor Reachability(邻居可达性)消息(EGP消息类型5)
如图1-6所示,Neighbor Reachability(邻居可达性)消息就是EGP头部,类型字段为5。由于所有必需信息都包含在代码字段(参见表1-5)和状态字段(参见表1-6)中,因而Neighbor Reachability(邻居可达性)消息中不包含其他字段。

image

3.Poll(轮询)消息(EGP消息类型2)
在EGP头部增加一个IP源网络(是指被请求了可达性信息的网络)字段即构成了Poll(轮询)消息(参见图1-7)。该字段中编码的IP地址总是A、B、C类网络地址,代码字段总是为0,所用的状态编号与表1-6相同(RFC 888将Poll(轮询)和Error(差错)消息中的状态字段列为未使用)。

4.Update(更新)消息(EGP消息类型1)
与Poll(轮询)消息一样,Update(更新)消息的代码字段始终为0,表1-7列出了状态字段的可能值,除了Unsolicited(主动提供的)值之外,其余均与表1-6一样。

image

状态字段的最高位是Unsolicited(主动提供的)bit,如果该bit被置位(即该字段值为128),则Update(更新)消息为主动提供的消息。Unsolicited(主动提供的)bit可以与其他各种状态值一起使用。

Update(更新)消息包含一个4级列表的分层结构,图1-8解释了Update(更新)消息的格式以及这些列表分层结构的组织方式。

分层结构的最高一层是所有直接连接到源网络的路由器列表,列表上的网关数量由# of Interior Gateways(内部网关数)和# of Exterior Gateways(外部网关数)字段之和来表示。

接下来的一层将内部网关和外部网关完全区分开来,首先列出的是所有内部网关(包括发起方);如果有外部网关,则全部列在内部网关之后。

在分层结构的第3层,每个被列出的网关都有一个距离列表,与内部网关和外部网关一样,该层有一个用来指示列表上距离数量的字段。

最后,每个列出的距离值都有一个在该距离下通过该网关可以到达的网络列表,该层有一个用来表示列表上网络数量的字段。

有关Update(更新)消息格式字段的完整描述如下。

内部网关数(# ofInterior Gateways):指定列表上内部网关的数量。
外部网关数(# of Exterior Gateways):指定列在内部网关之后的外部网关的数量。本字段与# of Interior Gateways(内部网关数)字段之和(如图1-8所示的N)表示Update(更新)消息中列出的所有网关数。
IP源网络(IP Source Network):指示网络正在提供的是哪种可达性信息。也就是说,通过连接在该网络上的网关可以到达Update(更新)消息中列出的所有网络,该字段中编码的IP地址总是主类(A、B、C类)网络。
网关IP地址(Gateway IP Address):指定连接在源网络上的网关的IP地址,仅列出主类(A、B或C类)地址的主机部分。该字段的长度是可变的,在C类地址时长度为1个8位组,在A类地址时长度为3个8位组,至于IP地址的网络部分,从IP源网络字段即可得知。
image

距离数量(# of Distances):指示所列网关全部被宣告的距离数量。
距离(Distance):指示所列网关被宣告的特定距离值。
网络数量(# of Networks):指示所列网关全部被宣告的网络数量。
网络(Network):指示被宣告的网络的IP地址。如图1-8所示,每个网络都属于某个特定网关、特定距离和网络列表中的特定顺序。与网关IP地址字段一样,网络字段的长度也是可变的,但是与网关IP地址字段不同的是,网络字段列出的是主类(A、B或C类)地址的网络部分,而不是主机部分。
5.Error(差错)消息(EGP消息类型8)
网关在任何时候都可以发送Error(差错)消息(如图1-9所示),向发送方指示EGP消息错误或字段值无效。Error(差错)消息中的代码字段总是为0,而状态字段的取值则如表1-7所示。

注意:

RFC 888将Error(差错)消息(与Poll(轮询)消息一样)中的状态字段说明为未用,而RFC 904说明的状态字段情况如表1-7所示。
image

Error(差错)消息的发起方可以使用任意值作为序列号。表1-8描述了各种可能的原因(Reason)字段(取自RFC 904),Error(差错)消息头部是EGP消息(提示差错信息)的前12个8位组。

image

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
中文名: 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 从IPv4向IPv6过渡 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、付费专栏及课程。

余额充值