《路由技术基础知识详解6860.pdf》由会员分享,可在线阅读,更多相关《路由技术基础知识详解6860.pdf(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第 1 页 共 11 页 路由技术基础知识详解 1、带宽资耗尽。2、每台计算机都浪费许多时间处理无关的广播数据。3、网络变得无法管理,任何错误都可能导致整个网络瘫痪。4、每台计算机都可以监听到其他计算机的通信。把网络分段可以解决这些问题,但同时你必须提供一种机制使不同网段的计算机可以互相通信,这通常涉及到在一些ISO 网络协议层选择性地在网段间传送数据,我们来看一下网络协议层和路由器的位置。我们可以看到,路由器位于网络层。本文假定网络层协议为 IPv4,因为这是最流行的协议,其中涉及的概念与其他网络层协议是类似的。一、路由与桥接 路由相对于 2 层的桥接/交换是高层的概念,不涉及网络的物理细节
2、。在可路由的网络中,每台主机都有同样的网络层地址格式 如果你想把你的网络分成多个不同大小的子网,可以使用可变长子网掩码,每个子网可以使用不同长度的子网掩码。例第 2 页 共 11 页 如:如果你按部门划分网络,一些网络的掩码可以为255.255.255.0(多数部门),其它的可为 255.255.252.0(较大的部门)。6、无类别地址(CIDR)因特网上的主机数量增长超出了原先的设想,虽然还远没达到 232,但地址已经出现匮乏。1993 年发表的 RFC1519-无类别域间路由 CIDR(Classless Inter-Domain Routing)-是一个尝试 解决此问题的方法。CIDR
3、试图延长 IPv4 的寿命,与 128位地址的 IPv6 不同,它并不能最终解决地址空间的耗尽,但IPv6 的实现是个庞大的任务,因特网目前还没有做好准备。CIDR 给了我们缓冲的准备时间。基于类的地址系统工作的不错,它在有效的地址使用和少量的网络数目间做出了较好的折衷。但是随着因特网意想不到的成长出现了两个主要的问题:已分配的网络数目的增长使路由表大得难以管理,相当程度上降低了路由器的处理速度。僵化的地址分配方案使很多地址被浪费,尤其是 B 类地址十分匮乏。为了解决第二个问题,可以分配多个较小的网络,例如,用多个 C 类网络而不是一个 B 类网络。虽然这样能够很有效地分配地址,但是更加剧了路
4、由表的膨胀(第一个问题)。第 3 页 共 11 页 在 CIDR 中,地址根据网络拓扑来分配。连续的一组网络地址可以被分配给一个服务提供商,使整组地址作为一个网络地址(很可能使用超网技术)。例如:一个服务提供商被分配以256 个 C 类地址,从 213.79.0.0 到 213.79.255.0,服务提供商给每个用户分配一个 C 类地址,但服务提供商外部的路由表只通过一个表项-掩码为 255.255.0.0 的网络 213.79.0.0-来分辨这些路由。这种方法明显减少了路由表的增长,CIDR RFC 的作者估计,如果 90%的服务提供商使用了 CIDR,路由表将以每 3 年54%的速度增长,
5、而如果没有使用 CIDR,则增长速度为 776%。如果可以重新组织现有的地址,则因特网骨干上的路由器广播的路由数量将大大减少。但这实际是不可行的,因为将带来巨大的管理负担。四、路由 1、路由表 如果一个主机有多个网络接口,当向一个特定的 IP 地址发送分组时,它怎样决定使用哪个接口呢答案就在路由表中。来看下面的例子:目的 子网掩码 网关 标志 接口 201.66.37.0 255.255.255.0 201.66.37.74 U eth0 201.66.39.0 255.255.255.0 201.66.39.21 U eth1 第 4 页 共 11 页 主机将所有目的地为网络 201.66.
6、37.0 内主机(201.66.37.1-201.66.37.254)的数据通过接口 eth0(IP 地址为 201.66.37.74)发送,所有目的地为网络 201.66.39.0 内主机的数据通过接口 eth1(IP 地址为 201.66.39.21)发送。标志U 表示该路由状态为 up(即激活状态)。对于直接连接的网络,一些软件并不象上例中一样给出接口的 IP 地址,而只列出接口。此例只涉及了直接连接的主机,那么目的主机在远程网络中如何呢如果你通过 IP 地址为 201.66.37.254 的网关连接到网络 73.0.0.0,那么你可以在路由表中增加这样一项:标志 UG 接口 eth0
7、此项告诉主机所有目的地为网络 73.0.0.0 内主机的分组通过 201.66.37.254 路由过去。标志 G(gateway)表示此项把分组导向外部网关。类似的,也可以定义通过网关到达特定主机的路由,增加标志 H(host):目的 掩码 网关 标志 接口 91.32.74.21 255.255.255.255 201.66.37.254 UGH eth0 第 5 页 共 11 页 目的 掩码 网关 标志 接口 127.0.0.1 255.255.255.255 127.0.0.1 UH lo0 default 0.0.0.0 201.66.37.254 UG eth1 第一项是 loopb
8、ack 接口,用于主机给自己发送数据,通常用于测试和运行于 IP 之上但需要本地通信的应用。这是到特定地址 127.0.0.1 的主机路由(接口 lo0 是 IP 协议栈内部的假网卡)。第二项十分有意思,为了防止在主机上定义到因特网上每一个可能到达网络的路由,可以定义一个缺省路由,如果在路由表中没有与目的地址相匹配的项,该分组就被送到缺省网关。多数主机简单地通过一个网卡连接到网络,因此只有通过一个路由器到其它网络,这样在路由表中只有三项:loopback 项、本地子网项和缺省项(指向路由器)。2、重叠路由 假设在路由表中有下列重叠项:目的 掩码 网关 标志 接口 1.2.3.4 255.255
9、.255.255 201.66.37.253 UGH eth0 1.2.3.0 255.255.255.0 201.66.37.254 UG eth0 1.2.0.0 255.255.0.0 201.66.37.253 UG eth1 default 0.0.0.0 201.66.39.254 UG eth1 之所以说这些路由重叠是因为这四个路由都含有地址1.2.3.4,如果向 1.2.3.4 发送数据,会选择哪条路由呢在这第 6 页 共 11 页 种情况下,会选择第一条路由,通过网关 201.66.37.253。原则是选择具有最长(最精确)的子网掩码。类似的,发往1.2.3.5 的数据选择第
10、二条路由。注意:这条原则只适用于间接路由(通过网关)。把两个接口定义在同一子网在很多软件实现上是非法的。例如下面的设置通常是非法的(不过有些软件将尝试在两个接口进行负载平衡):接口 IP 地址 子网掩码 对于重叠路由的策略是十分有用的,它允许缺省路由作为目的为 0.0.0.0、子网掩码为 0.0.0.0 的路由进行工作,而不需要作为路由软件的一个特殊情况来实现。回头来看看 CIDR,仍使用上面的例子:一个服务提供商被赋予 256 个 C 类网络,从 213.79.0.0 到 213.79.255.0。该服务提供商外部的路由表只以一个表项就了解了所有这些路由:213.79.0.0,子网掩码为 2
11、55.255.0.0。假设一个用户移到了另一个服务提供商,他拥有网络地址 213.79.61.0,现在他是否必须 从新的服务提供商处取得新的网络地址呢如果是,意味着他必须重新配置每台主机的 IP 地址,改变 DNS 设置,等等。幸运的是,解决办法很简单,原来的服务提供商保第 7 页 共 11 页 持路由 213.79.0.0(子网掩码为 255.255.0.0),新的服务提供商则广播路由 213.79.61.0(子网掩码为 255.255.255.0),因为新路由的子网掩码较长,它将覆盖原来的路由。3、静态路由 回头看看我们已建立的路由表,已有了六个表项:目的 掩码 网关 标志 接口 127.
12、0.0.1 255.255.255.255 127.0.0.1 UH lo0 201.66.37.0 255.255.255.0 201.66.37.74 U eth0 201.66.39.0 255.255.255.0 201.66.39.21 U eth1 default 0.0.0.0 201.66.39.254 UG eth1 73.0.0.0 255.0.0.0 201.66.37.254 UG eth0 91.32.74.21 255.255.255.255 201.66.37.254 UGH eth0 这些表项分别是怎么得到的呢第一个是当路由表初始化时由路由软件加入的,第二、三个
13、是当网卡绑定 IP 地址时自动创建的,其余三个必须手动加入,在 UNIX 系统中,这是通过命令 route 来做的,可以由用户手工执行,也可以通过 rc 脚本在启动时执行。上述方法涉及的是静态路由,通常在启动时创建,并且没有手工干预的话将不再改变。4、路由协议 主机和网关都可以使用称作动态路由的技术,这使路由表可以动态改变。动态路由需要路由协议来增加和删除路由表第 8 页 共 11 页 项,路由表还是和静态路由一样地工作,只是其增添和删除是自动的。有两种路由协议:内部的和外部的。内部协议在自制系统(AS)内部路由,而外部协议则在自制系统间路由。自制系统通常在统一的控制管理之下,例如大的公司或大
14、学。小的站点常常是其因特网服务提供商自制系统的一部分。这里只讨论内部协议,很少有人涉及到甚至听说外部协议。最常见的外部协议是外部网关协议 EGP(External Gateway Protocol)和边缘网关协议 BGP(Border Gateway Protocol),BGP 是较新的协议,在逐渐地取代 EGP。5、ICMP 重定向 ICMP 通常不被看作路由协议,但是 ICMP 重定向却与路由协议的工作方式很类似,所以将在这里讨论一下。假设现在有上面所给的六个表项的路由表,分组被送往 201.66.43.33,看看路由表,除了缺省路由外,这并不能匹配任何路由。静态路由将其通过路由器 201
15、.66.39.254 发送(trip 1),但是,该路由器知道所有发向子网 201.66.43.0 的分组应该通过201.66.39.253,因此,它把分组转发到适当的路由器(trip 2)。但是如果主机直接把分组发到 201.66.39.253 就会提高效率(trip 3)。第 9 页 共 11 页 因为路由器把分组从同一接口发回了分组,所以它知道有更好的路由,路由器可以通过 ICMP 重定向指示主机使用新的路由。虽然路由器知道所有发向 201.66.43.0 子网的分组应该通过 201.66.39.253,它通常只发送特定的主机的 ICMP 重定向(此例中是 201.66.43.33)。主
16、机将在路由表中创建一个新的表项:目的 掩码 网关 标志 接口 201.66.43.33 255.255.255.255 201.66.39.253 UGHD eth1 注意标志 D,对所有由 ICMP 重定向创建的路由设置此标志。将来此类分组将通过新路由发送(trip 3)。6、RIP RIP 是一种简单的内部路由协议,已经存在很久,被广泛地实现(UNIX 的 routed 就使用 RIP)。它使用距离向量算法,所以其路由选择只是基于两点间的跳(hop)数,穿过一个路由器认为是一跳。主机和网关都可以运行 RIP,但是主机只是接收信息,而并不发送。路由信息可以从指定网关请求,但通常是每隔 30
17、秒广播一次以保持正确性。RIP 使用 UDP 通过端口520 在主机和网关间通信。网关间传送的信息用于建立路由表,由 RIP 选定的路由总是具有距离目的跳数最少的。RIP 版本 1 在简单、较小的网络中工作得不错,但是在较大的网络第 10 页 共 11 页 中,就出现一些问题,有些问题在 RIP 版本 2 中已纠正,但有些是由于其设计产生的限制。在下面的讨论中,适用于两种版本时简单称为 RIP,RIP v1 和 RIP v2 则指特定的版本。RIP 并没有任何链接质量的概念,所有的链路都被认为是相同的,低速的串行链路被认为与高速的光纤链路是同样的。RIP 以最小的跳数来选择路由,因此当在下面两
18、个路由中选择时:100Mbps 的光纤链路,路由器,然后是 10Mbps 的以太网 9600bps 的串行链路 RIP 将选择后者。RIP 也没有链路流量等级的概念。例如对于两条以太网链路,其中一个很繁忙,另一个根本没有数据流,RIP 可能会选择繁忙的那条链路。RIP 中的最大 hop 数是 15,大于 15 则认为不可到达。因此在很大的自制系统中,hop 数很可能超过 15,使用 RIP 是很不现实的。RIP v1 不支持子网,交换的信息中不含子网掩码,对给定路由确定子网掩码的方法各不相同,RIP v2 则弥补了此缺点。RIP 每隔 30 秒才进行信息更新,因此在大网中断链信息可能要花些时间才能传播开来,路由信息的稳定时间可能更长,并且在这段时间内可能产生路由环路。对此有一些解决办法,但这里不进行讨论。第 11 页 共 11 页 可以看出,RIP 是一个简单的路由协议,有一些限制,尤其在版本 1 中。不过,它常常是某些操作系统的唯一选择。