网络协议实践课程第4章20140402要点_第1页
网络协议实践课程第4章20140402要点_第2页
网络协议实践课程第4章20140402要点_第3页
网络协议实践课程第4章20140402要点_第4页
网络协议实践课程第4章20140402要点_第5页
已阅读5页,还剩90页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Computer NetworkingInternet Protocol Action李毅超李毅超2011.12第四章第四章 网络层协议网络层协议引引 言言 网络层提供端到端的路由和分组的传送。 网际协议(Internet Protocol, IP)是建立在分组交换原理基础之上的因特网的网络层协议。 在一个分组交换网络中,每个分组都被独立地从源端发送到目的端,而不考虑同一数据流中其他分组的发送路径。 本章中,我们将考察分组是如何在基于IP协议的因特网中流动的。第四章第四章 网络层协议网络层协议 实验4. 1,介绍IP协议基础知识,包括IP数据报的格式。讨论IP地址如何分配以提供高效的路由,以及

2、终端主机如何通过DHCP获得IP地址。比较当前IP版本IPv4和下一代IP协议IPv6的特点。分析在穿过网络时,IP数据报是如何分片的。 实验4. 2,介绍ping和traceroute两个强大的网络工具.通过观察ping和traceroute的跟踪来理解它们如何依赖于网际控制报文协议(Internet Control Message Protocol, ICMP),ICMP是IP协议的伴随协议。观察一个多跳路径,并说明IP数据报穿越该路径时会发生什么变化。 实验4. 3,讨论如何建立因特网路径,以及如何通过动态路由协议来维护。用Ethereal跟踪来验证在一个由两台主机和五个中间路由器组成的

3、小型本地网中,使用动态路由协议对提供端到端的连通性的影响。 实验4. 4,解释因特网是如何被划分成多个称为自治系统(Autonomous Sys-terns , AS )的可管理单元的,并且展示在自治系统内和自治系统之间对动态路由如何进行不同的处理。介绍边界网关协议(Border Gateway Protocol, BGP)一种运用于AS之间的标准动态路由协议。实验实验4. 14. 1连接因特网:连接因特网:IP IP与与DHCPDHCP介绍介绍简介简介 因特网内的每台主机都有一个IP地址。数据以称作数据报的分组形式从一个主机发送到另一个主机。每个数据报都标记有源IP地址和目的IP地址,然后被

4、发送到网络中。如果源主机和目的主机不在同一个本地网中,那么一个被称为路由器的中间机器将接收被传输的数据报,并且将其发送到距离目的端更近的下一个路由器。这个过程就是分组交换。 像电话网一类的全球通信网络在发送端和接收端之间建立了一个固定线路,所有的通信都通过该连接发送到对方。而分组交换网络中,分组并不是在已经建立的线路上传输,相反,它们通过网络独立寻址和路由。 IP允许数据报从源端途经不同的网络到达目的端。每个网络规定的最大传输单元各不相同,但IP允许将数据报分片并在目的端重组来满足不同网络的规定。 IP数据报的格式如图数据报的格式如图4.1.1所示。所示。 获取IP地址的过程被严格管理,由因特

5、网名称和地址分配机构ICANN和地区性因特网注册管理机构RIR。那些需要大量IP地址的组织(如ISP、大型企业、大学等)将向其本地的RIR申请IP地址空间,而需要少量IP地址的组织将直接从他们的ISP那里获取IP地址。 各机构通常使用动态主机配置协议DHCP自动给计算机分配IP地址。 IP数据报首部的第一个字段包含版本号,IPv4是当今因特网使用的主流版本。在RFC791中有对它的描述。IP的新版IPv6也已经制订。预计所有可能的32位的IPv4地址将在2010年被用尽。IP地址的长度从32位扩展到128位。新的128位IP地址将在地球上每平方英尺的范围内提供约1500个IP地址。IPv6还具

6、有一些其他的特性,如可扩展链接首部以及支持在分组交换网络上的模拟电路的流动标记等。 许多操作系统都包含了IPv6的实现。然而,IPv6的推广速度很慢。一部分是因为IPv6和IPv4很难共存。仅有一小部分主机和路由器支持IPv6。这些使用IPv6进行通信的主机和路由器必须将IP的数据报转换为IPv4,也就是说要将IPv6数据报放在IPv4数据报的数据部分中。这样的配置方式能够测试IPv6,但不能发挥它的长处。有人认为只有当所有IP地址都被耗尽时,才可能产生一个实质的转变。一、配置一、配置二、实验二、实验 使用使用DHCP获取获取IP地址地址台式机运行Windows操作系统,打开命令行界面,然后启

7、动Ethereal跟踪,输入下列命令: 结果保存于dhcp_isolated.cap观察分析观察分析 分组1用来释放机器的当前IP地址192. 168. 0. 100。 分组2是一个DHCP Discover报文,使用作为源地址,广播地址255. 255. 255. 255作为目的地址。(理论上255. 255. 255. 255能够广播到整个因特网,但实际上路由器为了防止大量的请求信息淹没因特网,不会将这样的广播发送到本地网之外) 在option“Parameter Request List”(参数请求列表)中包含了除客户端希望得到的本地网络的IP之外的其他数据项。这些数据项中

8、许多都是一台即将连入因特网的计算机所需要的数据。 分组4IP地址为192. 168. 0. 1的DHCP服务器回复了一个DHCP OFFER报文。目的地址为广播地址。 分组5客户端通过发送DHCP Request报文表明自己接收到的IP地址。 分组6中DHCP服务器确认请求的地址并结束对话。 分组3和分组7-13都是ARP请求。前4个ARP请求3、7、8、9都没有回应。分组10到13中,DHCP服务器再次询问哪个主机拥有IP地址192. 168. 0. 100,台式计算机两次回答它占有该IP同时提供了自己的以太网地址。 分组14 DHCP Request请求更新了192. 168. 0. 10

9、0的租用期。分组15 DHCP ACK包括租用期的长度(在这个例子里是一天)。通过DHCP分配的IP地址有特定的租用时间,为了保持对某个IP的租用,客户端必须更新租用期,14和15说明了更新租用期的过程。它们是我们输入的第二个命令ipconfig /renew的结果。如果在租用到期之前没有DHCP Request发送,DHCP服务器有权将该IP地址重新分配给其他主机。 分组16是ipconfig /release命令的结果。在DHCP服务器接收到这个报文之后,客户停止对该IP的使用。如有需要DHCP服务器有权重新对该IP地址进行分配。 IPv4中的分片中的分片因特网是由许多具有各自物理特性的不

10、同种类的网络组成的。处理这样的差异是连接异构网络形成一个因特网的主要难题之一。 这类差异性导致的一个问题是不同的网络会对在其上传输的数据报的大小作出不同的限制。IP或者要求所有网络都使用不同网络传输单元中的最小值,或者采用一种方法来适应这种差异。IP支持分片和重组。分片指的是当原始数据报大小超过某个本地网的最大传输单元的限制时,将该数据报分为多个数据片。重组则是指在目的端将各分片重新进行正确的组合。 为了做分片实验,使用ttcp的工具发送比本地网最大传输单元大的数据。我们在最大支持1514个字节的数据报的网络上发送两个大小为5000字节的报文。数据从IP地址为192. 168. 0. 100的

11、台式机发送到IP地址为192. 168. 0. 102的便携式电脑上。我们将这个跟踪中发送的具体分组保存在fragment _5000_isolated.cap 。分组1到4和分组5到8分别代表了先后发送的两个UDP数据报。当IP层接收到5008字节的UDP数据报时,它的工作是将其作为IP数据报在以太网上传输。以太网要求一次传输的长度不大于1514个字节,其中有14字节是以太网帧首部。IP将原始数据报的前1480个字节(含8个字节的UDP首部和1472个字节的数据)放在第一个分片中。后面两个分片每个均含1480个字节的数据,最后一个分片中包含的数据为568个字节。为了能让接收端重组原始数据报,

12、IP使用首部的特殊字段对分片进行了编号。标识字段用于将所有的分片连接在一起。分组1到4含有相同的标识号0 xfd2b,分组5到8的标识号是0 xfd2c。片偏移量指明了分组中数据的第一个字节在UDP数据报中的偏移量。例如,分组1和分组5的片偏移量都是0,因为它们都是第一个分片。在标志字段中有一位用来指明这个分片后是否还有分片。如图4. 1. 4所示,分组1到分组3和分组5到分组7均对该位进行了置位。分组4和分组8由于是最后一个分片而没有对该位置位。 IPv6中的中的ping命令命令为了给实验作准备,我们在台式机和便携式电脑的命令提示符后分别输入ipv6 install命令来激活IPv6。然后再

13、输入ping6命令从台式机发送4个数据报到便携式电脑,便携式电脑以4个数据报应答。将得到的跟踪保存在文件ping_ipv6.cap。说明了IPv6如何在IPv4的基础上使用“隧道技术”,即IPv6数据报被封装在IPv4数据报的数据部分中。 注意,IPv6的源地址和目的地址都远远长于IPv4地址。还要注意,机器的IPv6地址是以高位96位0 xfe0800000000000000005efe作为前缀后面跟上IPv4地址而形成的(见图4.1.5)。这是由于部分IPv6地址空间是为了满足与现存的IPv4地址兼容而设计的。如果IPv6成为因特网上使用的IP的标准版本,IPv6首部将紧跟在以太网帧首部后

14、面,数据报中不再出现IPv4首部。小节 在本实验中,首先,观察通过DHCP获取IP地址,然后分析IPv4通信来说明控制分片和重组的几个IPv4字段的用途,最后查看如何使用隧道技术将IPv6通信封装在IPv4数据报中。从而完成了对IPv4和DHCP协议及其细节的直观认识。实验实验4. 2 ping4. 2 ping和和traceroutetraceroute 简介简介 ping向因特网中的某个特定的主机发送特殊的探测报文并等待表明主机在线的回复。ping这个名字来源于由声纳设备使用回声来定位船舶位置的原理。traceroute能够映射出通往特定的因特网主机途经的所有中间主机。 Ping www.

15、 iana. org 注意,ping报告往返时间的信息。 用traceroute来识别路径中的每个中间节点及其往返时间。traceroute可用于大多数平台。在Windows平台上可用的版本叫tracert而不是traceroute。 Traceroute www. iana. org 注意,最大延迟发生在第10跳和第11跳之间。从显示看出,中间节点10位于东海岸(纽约),中间节点11位于西海岸(洛杉矶)。这并不代表在这两台主机间有一条直接的物理连接。有可能这个通信是通过电话或通信公司提供的远程链路发送的。 traceroute和ping命令都依赖于ICMP。ICMP可以看作是IP协议的伴随协

16、议。ICMP报文被封装在IP数据报中发送,但是理论上,ICMP能够报告网络层事件的状态。 一些ICMP报文会请求信息。例如,在ping中,一个ICMP回应请求报文被发送给远程主机。如果对方主机存在,期望它们返回一个ICMP回应应答报文。 一些ICMP报文在网络层发生错误时发送。例如,有一种ICMP报文类型表示目的不可达。造成不可达的原因很多,ICMP报文试图确定这一问题。例如,可能是主机关机或整个网络连接断开。 有时候,主机本身可能没有问题,但不能发送数据报。例如,IP首部有个协议字段,它指明了IP数据报中的数据部分是作什么协议处理。 IANA公布了代表协议的数字的列表。例如,如果该字段是6,

17、那就代表TCP报文段,IP层就会把数据传给TCP层进行处理;如果该字段是1,则代表ICMP报文,IP层会将该数据传给ICMP层处理。如果操作系统不支持到达数据报中协议字段的协议号,它将返回一个指明“协议不可达”的ICMP报文。IANA同样公布了ICMP报文类型清单。 traceroute是基于ICMP的灵活用法和IP首部的生存时间字段的。发送数据报时生存时间字段被初始化为能够穿越网络的最大跳数。每经过一个中间节点,该数字将减1。当该字段为0时,保存该数据报的机器将不再转发它。相反,它将向源IP地址发送一个ICMP生存时间超时报文。 生存时间字段用于避免数据报在网络上无休止地传输下去。回顾前面的

18、内容,数据报的发送路径是由中间路由器决定的。通过与其他路由器交换信息,路由器决定数据报的下一条路径。最好的“下一跳”经常由于网络环境的变化而动态改变。这可能导致路由器形成选路循环也会导致正确路径冲突。在路由循环中这种情况很可能发生。例如,路由器A认为数据报应该发送到路由器B,而路由器B又认为该数据报应该发送回路由器A,这时数据报便处于选路循环中。 生存时间字段长为8位,所以因特网路径的最大长度为28-1即255跳。大多数源主机将该值初始化为更小的值(例如128或64 )。将生存时间字段设置过小可能会使数据报不能到达远程目的主机,而设置过大又可能导致处于无限循环的选路中。 traceroute利

19、用生存时间字段来映射因特网路径上的中间节点。为了让中间节点发送ICMP生存时间超时报文,从而暴露节点本身信息,可以故意将生存时间字段设置为一个很小的数。具体来说,首先发送一个生存时间字段为1的数据报,接收到中间主机或目的主机的ICMP超时报文时,记录下该ICMP超时报文的源IP地址和往返时间。之后,通过发送生存时间字段设置为2的数据报来重复上述过程,依次类推,直到发送ICMP生存时间超时报文的机器是目的主机自身为止。 分组交换网络中每个数据报是独立路由的,所以由traceroute发送的每个数据报的传送路径实际上可以互不相同。 每个数据报沿着一条路径对中间节点进行取样,因此traceroute

20、可能暗示一条主机间并不存在的连接。因特网路径经常变动。在不同的日子或一天的不同时间对同一个目的主机执行几次traceroute命令来探询这种变动是一个很有趣的测试。一、配置一、配置二、实验二、实验 本地本地ping和远程和远程pingping_private.cap中捕获了在私有网络上运行两个ping命令产生的网络通信。第一个ping命令是对IP地址192. 168. 0. 1进行的,这个IP地址是本地路由器的地址。第二个ping是对主机名www. iana. org进行的。输出保存在文件ping_private_commands. txt中。向对于每个目的端发送4个回应请求分组并接收到4个I

21、CMP回应应答分组。分组3到10显示的是与192. 168. 0. 1的交换,分组13到20显示的是与www. iana. org的交换。每个请求通过ICMP序号字段与其相应的回应应答连接起来。回应请求的ICMP类型号为8,回应应答的ICMP类型号为0。注意ICMP报文被包含在IP数据报的数据部分中。且IP首部的协议字段被置为1,表明数据部分包含ICMP报文。分组1和2说明为了向192. 168. 0. 1发送ICMP报文,需要ARP解析其以太网地址(00:06:25:8d:be:1d),因为其在本地网络上。分组11和12表明为了将ICMP报文发送到www. ,需要DNS解析其

22、IP地址(192. 0. 34. 162)。由于该IP地址不在本地网中(由源主机IP地址与本地子网掩码决定),因此数据报首先要发送到本地路由器的物理地址,然后由它转发到下一个中间路由器上。这便是为什么两个ping命令的ICMP回应请求分组都发往同一个以太网地址。 本地本地traceroute在两台在同一大学网上由中间路由器分隔的主机上执行traceroute,两台机器之间路由的跳数为2。分别在源主机和目的主机跟踪了这一活动。这两个跟踪分别保存在traceroute1_src.cap和traceroute1_dst.cap中。下面是在bgpdata. sclab. clarkson. edu (

23、128. 153. 145. 86 )上运行traceroute命令的输出:分组1和2包含DNS分组,用来将softeng. camp. clarkson. edu转换成其IP地址128. 153. 11. 150。在分组3中,traceroute发送它的第一个探测分组。它是一个UDP分组,并且IP首部中的生存时间字段被置为1。分组4中间路由器128. 153. 144. 1回复一个ICMP生存时间超时报文。然后分组5和6traceroute发送一个DNS PTR查询来将这个IP地址转换为可读的主机名gw. sclab. clarkson. edu。分组7 traceroute再次发送生存时间

24、字段设置为1的探测分组。分组8中间路由器128. 153. 144. 1以ICMP生存时间超时报文来响应。分组9和10同样,这些额外的探测分组使得traceroute对路径中遇到的变化进行报警,还能够报告往返时间的平均测量值。分组11包含生存时间为2的第1个探测分组。 11-18类似3-7从目的主机的角度来观察整个网络活动。这可以在文件traceroute1_dst. cap中找到。大多数通信到达不了实际的目的主机,其中包括生存时间为1的探测分组和DNS请求。到达目的主机的通信流能够直接与前一次跟踪中的分组关联起来。例如,分组1即是traceroute1_src.cap中的分组11。仔细比较两

25、次跟踪中的这个分组,非常能说明IP通信的多跳特性。注意,分组到达目的机的时候,生存时间字段为1。这是因为分组经过gw. sclab. clarkson. edu时跳数减1。还要注意,尽管有相同的源IP地址和目的IP地址,但源以太网地址和目的以太网地址却不相同。 在第一个本地网中,分组从bgpdata.sclab. clarkson. edu上的以太网接口发送到gw. sclab. clarkson. edu的以太网接口。实际上,这台机器有多个以太网接口一个在与bgpdata. sclab相同的网络上,另一个在与softeng. camp相同的网络上。每个接口都有自己的以太网地址、IP地址和主机

26、名。在相反的方向(从softeng到bgpdata)执行了traceroute。再次跟踪两端的通信流。这些跟踪记录保存在traceroute2_src.cap和traceroute2_ dst.cap中。traceroute的输出:这些跟踪记录与第一次相似,但新增了一些重要信息。例如,从softeng执行traceroute探测网关的接口,并确定其IP地址,路由器每个接口都有自己的IP地址。 根据这些信息,可以勾画出一幅相对详细的两台机器间的连接的网络图(见图4.2.4)。体现了ping和traceroute这样的工具在映射因特网中主机间的连接方面的重要作用。 远程远程t

27、raceroute使用UC Berkeley的traceroute服务器执行一次到softeng. camp. clarkson. edu的traceroute。然后,再执行一次返回到traceroute服务器的traceroute。在softeng上捕获跟踪记录,将跟踪记录并保存在tracerouteBerkeley.cap。同时将两次traceroute的输出保存在tracerouteBerkelyOutput.txt。 研究进入和外出路径尽管两者相似,但没有一个中间IP地址是重复的。从softeng到Berkeley的路径的跳数比从Berkeley到softeng的跳数多1 。 在某些情

28、况下,这些IP地址是同一台机器的不同接口。 在另外一些情况下,它可能是通过一个大型过渡网络的不同路径。小节 本实验中,我们通过ping和traceroute两个工具的实验对网络层ICMP协议有了直观的细节认识,并且对这两个测试工具的用途和原理也有了深刻的理解。实验实验4. 3 RIP4. 3 RIP动态路由动态路由 静态路由在网络拓扑结构发生的任何变化都需要人工地改变静态路由在网络拓扑结构发生的任何变化都需要人工地改变静态配置。有些网络拓扑结构过于复杂,即使没有大量的变静态配置。有些网络拓扑结构过于复杂,即使没有大量的变动,手工输入配置规则也有相当的难度。动,手工输入配置规则也有相当的难度。

29、替代静态路由的方法是动态路由,路由器与其他路由器进行替代静态路由的方法是动态路由,路由器与其他路由器进行交流来获得通往其他网络的较好的路径。交流来获得通往其他网络的较好的路径。 主要的动态路由算法有两种主要的动态路由算法有两种:一种是链路状态算法,另一种是一种是链路状态算法,另一种是距离向量算法。距离向量算法。 链路状态算法:每个路由器都需要向其他所有的路由器发送链路状态算法:每个路由器都需要向其他所有的路由器发送报文,向它们通告自己的本地链路状态。一旦路由器接收到报文,向它们通告自己的本地链路状态。一旦路由器接收到来自其他所有路由器的报文,它就知道了网络中的每一条连来自其他所有路由器的报文,

30、它就知道了网络中的每一条连接。换句话说,路由器对整个网络结构有一个全盘的掌握。接。换句话说,路由器对整个网络结构有一个全盘的掌握。从某种意义上,有些信息是多余的。一个路由器只要知道发从某种意义上,有些信息是多余的。一个路由器只要知道发送分组的方向而没有必要知道通往目的主机的完整路径。送分组的方向而没有必要知道通往目的主机的完整路径。 距离向量算法距离向量算法:每个路由器不会试图收集整个网络的信息。每每个路由器不会试图收集整个网络的信息。每个路由器仅仅通过邻接路由器给它的个路由器仅仅通过邻接路由器给它的“传言传言”知道网络的其知道网络的其他部分。路由器开始是向它们的邻居路由器他部分。路由器开始是

31、向它们的邻居路由器“传言传言”其他邻其他邻居路由器,完成一次居路由器,完成一次“传言传言”会话后,路由器将得到它们邻会话后,路由器将得到它们邻居的邻居的信息,在两次会话后,它们将得到它们邻居的邻居的邻居的信息,在两次会话后,它们将得到它们邻居的邻居的邻居的信息,以此类推,以这样的方式,好的路由的信居的邻居的信息,以此类推,以这样的方式,好的路由的信息将一个路由器接一个路由器地传播到整个网络中。息将一个路由器接一个路由器地传播到整个网络中。 链路状态算法链路状态算法:每个路由器要向其他每台路由器发送包含了路每个路由器要向其他每台路由器发送包含了路由器自己的链路信息的报文由器自己的链路信息的报文

32、(很多的小报文很多的小报文)。 距离向量算法距离向量算法:相邻路由器之间仅需要交换它们听说的到每个相邻路由器之间仅需要交换它们听说的到每个目的地的最佳路径信息目的地的最佳路径信息(几个大报文几个大报文)。 由于网络拓扑和拥塞状况的变化,动态路由协议要求路由器由于网络拓扑和拥塞状况的变化,动态路由协议要求路由器周期性地发送更新信息。周期性地发送更新信息。一、配置一、配置二、实验二、实验 没有启用没有启

33、用RIP每个接口分配每个接口分配IP地址和子网掩码。同网段的接口配置相应地址和子网掩码。同网段的接口配置相应IP地址。将路由器地址。将路由器1设置成便携式电脑设置成便携式电脑A的的默认网关。的的默认网关。同样地,也为其他三个便携式电脑分配默认网关。路由器同样地,也为其他三个便携式电脑分配默认网关。路由器4不连接到不连接到/24网络。网络。所有便携式电脑上启动所有便携式电脑上启动Ethereal ,从路由器从路由器1ping便携式便携式电脑,捕获跟踪。我们将来自便携式电脑电脑,捕获跟踪。我们将来自便携式电脑A的跟踪保存在的跟踪保存在1_LAPA_NoRIP.cap中。中。2

34、7个分组中个分组中14个路由器例行向自身接口发送个路由器例行向自身接口发送Loopback帧,帧,3个周期性个周期性CDP报文,报文,10个个ICMP Echo Request或或Reply报文。报文。此时便携式电脑不能此时便携式电脑不能ping通路由器通路由器2-5以及其他电脑。以及其他电脑。 仅两端路由器启用仅两端路由器启用RIP仅路由器仅路由器1和和5启用启用RIP2_LAPA_RIP_R1_R5.cap中看到中看到RIP报文(分组报文(分组2、6、9、14、18,差不多,差不多30秒发送一个秒发送一个RIP报文)报文)RIP通告通告(如分组如分组2),通告了一条到,通告了一条到201.

35、100.2.0网络的网络的路由,距离度量路由,距离度量(metric)为为1,网络是将网络是将路由器路由器1和路由器和路由器2连在一起的网络,距离度量为连在一起的网络,距离度量为1意味意味着路由器着路由器1到达这个网络的跳数为到达这个网络的跳数为1。两个路由器仍然无法彼此发送通告报文,它们的邻居路由两个路由器仍然无法彼此发送通告报文,它们的邻居路由器既不听也不发送通告报文器既不听也不发送通告报文 除一台路由器(除一台路由器(R3)外都启用)外都启用RIP仅路由器仅路由器R3不启用不启用RIP3_LAPA_RIP_R1_ R2_R4_R5.cap中,分组中,分组4、8、12

36、、16、21路由器路由器1通告直接相连的网络通告直接相连的网络(201. 100. 2. 0 ),距离度量为,距离度量为1,还包含从路由器,还包含从路由器2获知的网络获知的网络(201.100. 3. 0)。注意,它通告的这个新网络的距离。注意,它通告的这个新网络的距离度量为度量为2。见下页截图。见下页截图路由器路由器R3左边或右边的机器都可以左边或右边的机器都可以Ping通,但是左右两通,但是左右两边的机器不能互通。边的机器不能互通。RIP通告网络地址无子网掩码,只通告网络地址无子网掩码,只RIPv2才能通告才能通告CIDR无类域间路由网络地址。另外,无类域间路由网络地址。另外,RIP局限于

37、局限于15跳,跳,16跳跳为网络不可到达。见下页截图为网络不可到达。见下页截图 所有路由器启用所有路由器启用RIP(增加路由器(增加路由器3上启用上启用RIP)4_LAPA_RIP_ALL_ LINE.cap,路由器之间共享的可达,路由器之间共享的可达信息增加了。第一个信息增加了。第一个RIP通告分组通告分组3和上一阶段的实验一和上一阶段的实验一样,它只包含对样,它只包含对201. 100. 2. 0网络和网络和201. 100. 3. 0网络网络的通告。随后在的通告。随后在RIP通告分组通告分组8、9添加了添加了网网络。再后面络。再后面RIP通告分组通告分组13又添加了

38、又添加了、网络。网络。注意每个网络的距离度量。类似地,在注意每个网络的距离度量。类似地,在4_LAPA_RIP ALL_ LINE. cap中,中,RIP通告展示了所有其他网络。但通告展示了所有其他网络。但这些距离度量与这些距离度量与4_LAPD_RIP_LINE.cap文件中的数据不文件中的数据不同。这是因为离便携式电脑同。这是因为离便携式电脑A最近的网络离便携式电脑最近的网络离便携式电脑D最远,反之亦然。最远,反之亦然。便携式电脑便携式电脑A traceroute D便携式电脑便携式电脑D traceroute A 注意注意:路由器应答使用的是更

39、接近目的端的接口的路由器应答使用的是更接近目的端的接口的IP地址。地址。 在网络拓扑图中增加一个环路在网络拓扑图中增加一个环路启用了路由器启用了路由器4和和201. 100. 1. 0网络之间的连接网络之间的连接5_LAPA_RIP_ALL_CIRCLE.cap,分组,分组32路由器路由器4在它在它新连接网络上发送第新连接网络上发送第1个个RIP请求报文而不是响应报文。请求报文而不是响应报文。最开始,路由器最开始,路由器4是向其他路由器请求路由,而不是通告是向其他路由器请求路由,而不是通告路由。路由。分组分组33路由器路由器1通过发送他拥有的所有的网络可达信息通过发送他拥有的所有的网络可达信息

40、来回复请求信息。来回复请求信息。分组分组34路由器路由器4报告了它到报告了它到201. 100. 4. 0网络和网络和201. 100. 5. 0网络的距离为网络的距离为1跳,到跳,到201. 100. 3. 0网络网络和和201. 100. 6. 0网络的距离为网络的距离为2跳,却没有报告它到跳,却没有报告它到201. 100. 2. 0网络的任何信息。这是因为在此之前路网络的任何信息。这是因为在此之前路由器由器1已经报告了到已经报告了到200. 1. 100. 2. 0网络的一条更好网络的一条更好的路径。对于的路径。对于RIP而言,路由器坏消息的而言,路由器坏消息的“传言传言”总是比总是比

41、不上好消息的传播快。不上好消息的传播快。 路由器路由器4将发送目的地为将发送目的地为201. 100. 2. 0网络的通信给网络的通信给路由器路由器1,结果它并不重复返回这个最佳开销路径信息给,结果它并不重复返回这个最佳开销路径信息给路由器路由器1。这对避免出现路由环路是非常重要的。在路由。这对避免出现路由环路是非常重要的。在路由环路中,两个路由器都认为对方是距离目的地更近的下一环路中,两个路由器都认为对方是距离目的地更近的下一跳,从而在它们之间来回发送分组给对方。跳,从而在它们之间来回发送分组给对方。便携式电脑便携式电脑A traceroute D 对一个故障链路的调整(断开路由器对一个故障

42、链路的调整(断开路由器5的网络连接)的网络连接)分组分组100路由器路由器4依然通告依然通告201. 100. 6. 0网络在网络在2跳跳可达,尽管我们已经接收不到从分组可达,尽管我们已经接收不到从分组51开始的开始的traceroute探测包的响应。探测包的响应。最后,在分组最后,在分组114中,中,RIP通告将通告将201. 100. 6. 0网络网络的距离度量改成的距离度量改成16,这意味着网络不可达。,这意味着网络不可达。分组分组115路由器路由器1也立即作出响应,指明它已经没有到也立即作出响应,指明它已经没有到201. 100. 6. 0网络的路由。网络的路由。 开放最短路径优先开放

43、最短路径优先开放最短路径优先协议开放最短路径优先协议(OSPF)的链路状态协议做了一个的链路状态协议做了一个类似的实验。便携式电脑类似的实验。便携式电脑A在相同网络拓扑,捕获跟踪保在相同网络拓扑,捕获跟踪保存于存于OSPF.cap。链路状态通告由链路状态通告由R1发起,并被转播到发起,并被转播到201. 100. 1. 0网络。网络。它报告了它报告了R5 (201. 100. 6. 1)也是通告路由器,而且也是通告路由器,而且有有2条附带的链路。它正确地指明条附带的链路。它正确地指明201. 100. 6. 0 /24网络为末梢网络网络为末梢网络(stub network) ,201.100.

44、5.0/24网络为中转网络网络为中转网络(transit network) 。小节 本堂课,通过一系列实验,让我们对本堂课,通过一系列实验,让我们对RIP、OSPF动态路由动态路由协议有了直观、细节的认识理解。协议有了直观、细节的认识理解。实验实验4. 4 4. 4 边界网关协议边界网关协议 简介简介 在因特网中无论是使用距离矢量路由协议还是在因特网中无论是使用距离矢量路由协议还是OSPF路由协议,都会周期性或在链路变更时发布动态路由协议报路由协议,都会周期性或在链路变更时发布动态路由协议报文,这样,动态路由协议报文将吞噬大量的可用网络带宽。文,这样,动态路由协议报文将吞噬大量的可用网络带宽。

45、 为了避免此问题,将网络划小成若干自治系统为了避免此问题,将网络划小成若干自治系统AS,每个每个AS内部的路由仍采用内部的路由仍采用RIPv2或或OSPF路由协议对因特网路由协议对因特网隐藏(域内路由),然后在隐藏(域内路由),然后在AS之间完成路由(域间路由)。之间完成路由(域间路由)。 这好比公路交通中既需要一个覆盖全国的公路图,又这好比公路交通中既需要一个覆盖全国的公路图,又需要一个更详细的城市道路图。全国公路图需要一个更详细的城市道路图。全国公路图=域间路由,城域间路由,城市道路图市道路图=域内路由。域内路由。 支持域内路由的协议支持域内路由的协议内部网关协议内部网关协议IGP。可以是

46、。可以是RIP也可以是也可以是OSPF。 支持域间路由的协议支持域间路由的协议-外部网关协议外部网关协议EGP。只能是一个标准。只能是一个标准BGP。 BGP是一种路径矢量协议。是一种路径矢量协议。相邻路由器之间宣告各自所知道的到所有目的地的最佳路相邻路由器之间宣告各自所知道的到所有目的地的最佳路径。相邻路由器并不简单地像径。相邻路由器并不简单地像RIP所规定的那样报告它们所规定的那样报告它们到目的地的路径与开销。而是会报告到每个目的地的整个到目的地的路径与开销。而是会报告到每个目的地的整个路径。路径。BGP以通往目的端路径上的自治系统号的序列的以通往目的端路径上的自治系统号的序列的形式给出。

47、形式给出。 BGP给出全部路径信息有以下几点好处:给出全部路径信息有以下几点好处:1. 有助于避免路由环路,如果一个自治系统在路径中出有助于避免路由环路,如果一个自治系统在路径中出现了多次,则显然是一个路由环路。现了多次,则显然是一个路由环路。2. 具有一个自治系统号序列,允许组织制定策略,比如具有一个自治系统号序列,允许组织制定策略,比如“我不想自己的分组穿越竞争对手的自治系统。我不想自己的分组穿越竞争对手的自治系统。”内部网关协议内部网关协议(如如RIP或或OSPF)主要是寻找一条从源端到主要是寻找一条从源端到目的端的最快路径,而目的端的最快路径,而BGP要考虑基于复杂策略的配置。要考虑基

48、于复杂策略的配置。 例如,例如,BGP相邻路由器并不自动地共享各自所知的所相邻路由器并不自动地共享各自所知的所有路由,相反,仅仅通报它们希望其他自治系统使用有路由,相反,仅仅通报它们希望其他自治系统使用的路由。的路由。 有些末梢网络,更是仅通报通往它们自己网络的路由,有些末梢网络,更是仅通报通往它们自己网络的路由,因为它们不想让其他网络使用自己的资源。因为它们不想让其他网络使用自己的资源。 另外一些中转网络提供因特网连通服务。中转网络必另外一些中转网络提供因特网连通服务。中转网络必须是多连接的,即它们必须有多个到其他自治系统的须是多连接的,即它们必须有多个到其他自治系统的连接。中转网络可以策略

49、的通告到这些连接的路由。连接。中转网络可以策略的通告到这些连接的路由。而末梢网络也可能是多连接的而末梢网络也可能是多连接的(如防止一个连接发生故如防止一个连接发生故障的多连接障的多连接),但末梢网络可以通过不通告到这些连接,但末梢网络可以通过不通告到这些连接的路由,来拒绝在这些连接间中转数据。的路由,来拒绝在这些连接间中转数据。在在IGP和和BGP之间另一个有趣的区别是之间另一个有趣的区别是IGP使用直接连接使用直接连接信息来鉴别相邻路由器,而信息来鉴别相邻路由器,而BGP规定每个路由器管理员规定每个路由器管理员可以手工指定可以手工指定BGP对等端列表。这些对等路由器无须物对等端列表。这些对等

50、路由器无须物理上直接相连。理上直接相连。 一个自治系统内使用一个自治系统内使用BGP发布路由的路由器被称为发布路由的路由器被称为BGP发起者。它要建立一个交换路由信息的发起者。它要建立一个交换路由信息的TCP连接。连接。这些这些BGP对等会话是由每个自治系统中的网络管理员对等会话是由每个自治系统中的网络管理员手工建立的。手工建立的。 在因特网上,有些路由器专门与其他自治系统建立对在因特网上,有些路由器专门与其他自治系统建立对等会话来收集因特网上所有有效的路由信息,这种路等会话来收集因特网上所有有效的路由信息,这种路由器被称为路由服务器。它们并不路由分组,也不共由器被称为路由服务器。它们并不路由

51、分组,也不共享它们从其他对等端获知的路由信息。它们仅被用作享它们从其他对等端获知的路由信息。它们仅被用作自治系统之间路由的一个窗口。自治系统之间路由的一个窗口。不同网络前缀或者独立的因特网目的端越多意味着对因特不同网络前缀或者独立的因特网目的端越多意味着对因特网核心的路由器来说是一个越大的负担。网核心的路由器来说是一个越大的负担。 观察路由服务器报告来观察网络前缀的平均大小、在观察路由服务器报告来观察网络前缀的平均大小、在一条路径上自治系统的平均数目、通告的一条路径上自治系统的平均数目、通告的IPv4地址空地址空间的百分比、相隔多久路由器变更一次信息以及其他间的百分比、相隔多久路由器变更一次信

52、息以及其他统计数据。这样可以确定因特网上路由的健壮性和稳统计数据。这样可以确定因特网上路由的健壮性和稳定性,从而汇编出高层次的网络连通图。定性,从而汇编出高层次的网络连通图。 访问访问Http:/ 来考察在俄勒冈大学来考察在俄勒冈大学的的Route Views项目项目(AS 6447)中的路由服务器发布中的路由服务器发布的的BGP统计数据。统计数据。一、配置一、配置二、实验二、实验 建立建立BGP对等路由器会话对等路由器会话先所有路由器上的先所有路由器上的BGP均未启用,然后所有便携式电脑均未启用,然后所有便携式电脑上启动上启动Ethereal,最后激活三个路由器上的,最

53、后激活三个路由器上的BGP。各电脑上捕获跟踪记录分别存放在:各电脑上捕获跟踪记录分别存放在:LAPA_BGP_INITIALCIRCLE.cap、 LAPB_BGP_INITIALCIRCLE.cap、LAPC_BGP_INITIALCIRCLE.capLAPA_BGP_INITIALCIRCLE.cap可以观察到可以观察到AS 100的的BGP发起者和发起者和AS 200的的BGP发起者之间的会话。这发起者之间的会话。这个对等个对等TCP会话开始于分组会话开始于分组15。如果选择如果选择Analyze菜单中的菜单中的Follow TCP Stream选项,选项,会发现会发现BGP与其他协议不

54、同,它不是基于文本方式的。与其他协议不同,它不是基于文本方式的。在在1_LAPA_BGP_INITIALCIRCLE.cap中,中,BGP对等路由器会对等路由器会话建立在话建立在的端口的端口11004和和的标准的标准BGP端口端口179之间。之间。在在1_LAPB_BGP_INITIALCIRCLE.cap中,中,BGP对等路由器会对等路由器会话建立在话建立在的端口的端口16839和和的标准的标准BGP端口端口179之间。之间。在在1_LAPC_BGP_INITIALCIRCLE.cap中,中,B GP对等

55、路由器对等路由器会话建立在会话建立在的端口的端口11003和和的标准的标准BGP端口端口179之间。之间。分组分组15、16、17三次握手建立连接三次握手建立连接BGP对等路由器会话上发送的第一个报文是对等路由器会话上发送的第一个报文是OPEN报文报文(见下图),会话双方都要发送该报文来建立会话。见下图),会话双方都要发送该报文来建立会话。分组分组18显示了由显示了由AS 100的的BGP发起者发送的发起者发送的OPEN报报文的细节。该报文包含了文的细节。该报文包含了AS号号100和其和其BGP标识符标识符。BGP标识符是用来惟一标识路

56、由器的。标识符是用来惟一标识路由器的。19号分组包含了来自号分组包含了来自AS 200的的BGP发起者的发起者的OPEN报报文。文。OPEN报文没有通告可达的网络,它仅仅将报文没有通告可达的网络,它仅仅将BGP对等路对等路由器介绍给对方并建立由器介绍给对方并建立BGP会话。会话。分组18 BGP OPEN报文分组19 BGP OPEN报文对等路由器将使用对等路由器将使用UPDATE报文向对方通告路径变化。报文向对方通告路径变化。即使网络中没有出现路径变化,也要周期性地交换即使网络中没有出现路径变化,也要周期性地交换KEEPALIVE报文。分组报文。分组20和和21展示双方发送的初始展示双方发送

57、的初始KEEPALIVE报文。报文。分组分组22是从是从AS 100到到AS 200的第一个的第一个UPDATE报文。报文。 这个报文报告了一条到网络这个报文报告了一条到网络/8的路由。在这里,的路由。在这里,AS路径中只有路径中只有AS 100,因为这是,因为这是AS 100本自治系统本自治系统的网络。报文报告了下一跳是的网络。报文报告了下一跳是201. 100. 1. 1 ,即到即到AS 200最近的路由器的最近的路由器的IP地址。报文还指出这是通过地址。报文还指出这是通过IGP获获知的。知的。 (见下页截图)(见下页截图)分组分组23包含了来自包含了来自AS 200的相似的

58、的相似的UPDATE报文。在报文。在本例中,本例中,UPDATE报文是与报文是与KEEPALIVE报文捎带在同报文捎带在同一个报文中的。一个报文中的。 (见再下页截图)(见再下页截图)如果没有连接上的变化,三个如果没有连接上的变化,三个BGP会话仍然会保持激活,会话仍然会保持激活,并且周期性地发出并且周期性地发出KEEPALIVE报文报文分组22 BGP UPDATE报文分组23 BGP UPDATE报文 撤销路由撤销路由 为了考察路由发生变化时会发生什么情况,我们在为了考察路由发生变化时会发生什么情况,我们在由便携式电脑由便携式电脑C监测的监测的 /24网络上断掉网络上断掉AS 100与与AS 300的连接。跟踪记录的连接。跟踪记录2_LAPC_BGP_BROKENCIRCLE .cap中。中。断开连接前,断开连接前,2_LAPC_BGP_BROKENCIRCLE.cap仅包含了仅包含了路由器产生的几个回送分组。最后一个这样的分组是分组路由器产生的几个回送分组。最后一个这样的分组是分组4,再后就看不到其他的数据交互,因为路由器从集线器,再后就看不到其他的数据交互,因为路由器从集线器断开了连接。断开了连接。2_LAPC_BGP_BROKENCIRCLE.cap2_LAPC_BGP_BROKENCIRCLE.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论