第一 章 : 路 由 选 择 原 理
1.1 路由选择基础知识
路由是将对象从一个地方转达发到另一个地方的一个中继过程
学习和维持网络拓朴结构知识的机制被认为是路由功能。渡越数据流经路由器进入接口
穿过路由器被移送到外出接口的过程,是另一项单独的功能,被认为是交换/转发功能。路由设备必须同时具有路由和交换的功能才可以作为一台有效的中继设备。
为了进行路由,路由器必须知道下面三项内容:
l、路由器必须确定它是否激活了对该协议组的支持;
2、路由器必须知道目的地网络;
3、路由器必须知道哪个外出接口是到达目的地的最佳路。
路由选择协议通过度量值来决定到达目的地的最佳路径。小度量值代表优选的路径;如果两条或更多路径都有一个相同的小度量值,那么所有这些路径将被平等地分享。通过多条路径分流数据流量被称为到目的地的负载均衡。
执行路由操作所需要的信息被包含在路由器的路由表中,它们由一个或多个路由选择协议进程生成。路由表由多个路由条目组成,每个条目指明了以下内容:
*学习该路由所用的机制(动态或手动)
*逻辑目的地
*管理距离
*度量值(它是度量一条路径的总"总开销"的一个尺度)
*去往目的地下一HOP的中继设备(路由器)的地址;
*路由信息的新旧程度
*与要去往目的地网络相关联的接口
使用命令SHOW IP ROUTE可看到以上内容
缺省管理距离的预先分配原则是:人工设置的路由条目优先级高于动态学到路由条目,度量值算法复杂的路由选择协议优先级高于度量值算法简单的路由选择协议。
路由器一般选择具有最小度量值的路径;CISCO路由器的IP环境中如果同时出现了多条度量值最低且相同的路径,那么在这多条路径上将启用负载均衡,C ISCO默认支持4条相同度量值的路径,通过使用"maximum-paths"命令可以认CISCO路由器支持最多达6条相同度量值路径。
RIP是一种用在小到中型TCP/IP网络中采用的路由选择协议,它采用跳数作为度量值,它的负载均衡功能是缺省启用的,RIP决定最佳路径时是不考虑带宽的!!!
IGRP是一种用在中到大型TCP/IP网络中采用的路由选择协议,它采用复合的度量值,它考虑了带宽、延迟、可靠性、负载和最大传输单元(M TU),但缺省地使用了带宽和延时值。IGRP也能进行负载均衡。
在路由器启动之后,它立刻试图与其相邻路由设备建立路由关系。该初始通信的目的是为了识别相邻设备,并且开始进行通信并学习网络相结构。建立相邻关系的方法和对拓朴结构的初始学习随路由选择协议的不同而不同。
路由选择协议会交换定期的HELLO消息或定期的路由更新数据包,以维持相邻设备间进行着通信。
在了解了网络拓朴结构,且路由表中已包含了到已知地网络的最佳路径后,向这些目的地的数据转发就可以开始了;)
1.2 路由选择协议
有类别路由选取择(classful routing)概述
不随各网络地址发送子网掩码信息的路由选择协议被称为有类别的选择协议(RIPv1、IGRP)
当采用有类别路由选择协议时,属于同一主类网络(A类、B类和C类)有所有子网络都必须使用同一子网掩码。运行有类别路由选择协议的路由选择协议的路由器将执行下面工作的一项以确定该路由型网络部分:
*如果路由更新信息是关于在接收接口上所配的同一主类网络的,路由器将采用配置在接口上的子网掩码;
*如果路由更新是关于在接收接口上所配的不同主类的网络的,路由器将根据其所属地址类别采用缺省的子网掩码。
有类别归纳路由的生成是由有类别路由选择协议自动处理的
无类别路由选择(classless routing)概述
无类别路由选择协议包括开放最短路径优先(OSPF)、EIGRP、RIPV2、中间系统到中间系统(IS-IS)和边界网关协议版本4(BGP4)。
在同一主类网络中使用不同的掩码长度被称为可变长度的子网掩码(VLSM)。无类别路由选择路由选择协议支持VLSM,因此可以更为有效的设置子网掩码,以满足不同子网对不同主机数目的需求,可以更充分的利用主机地址。
多数距离矢量型路由选择协议产生的定期的、例行的路由更新只传输到直接相连的路由设备。
在纯距离矢量型路由环境中,路由更新包括一个完整的路由表,通过接收相邻设备的全路由表,路由能够核查所有已知路由,然后根据所接收到的更新信息修改本地路由表。解决路由问题的距离矢量法有时被称为" 传闻路由(routing by rumor)"
CISCO IOS支持几种距离矢量型路由选择协议,凶手RIPv1、RIPv2和IGRP。CISCO也直持EIGRP,它是一种高级的距离矢量型路由选择协议。
路由选择协议通常与协议组的网络层关联
大多数距离矢量型路由选择协议采用贝乐曼-福特(Bellman-Ford)算法来计算路由。EIGRP是一种高级的距离矢量路由协议,它采用弥散修正算法(D UAL)
Cisco的IP距离矢量型路由选择协议的比较
特征RIPv1RIPv2IGRPEIGRP
计数到无限XXX
横向距离XXXX
抑制计时器XXX
触发式更新,路由反向 XXXX
负载均衡-等成本路径XXXX
负载均衡-非等成本路径XX
VLSM支持XX
路由算法贝尔曼-福特贝尔曼-福特贝尔曼-福特DUAL
度量值跳数跳数复合复合
跳数限制1515100100
易扩展性小小中大
注:IGRP和EIGRP的跳数限制缺省为100,但是可以配置到最大为255。
链路状态型路由选择协议只当网络拓朴结构发生变化时才生成路由更新数据包。当链路状态发生变化时,检测到这一变化的设备就生成一个关于该链路(路由)的链路状态通告(L SA)。随后LSA通过一个特殊的多目组播地址被传播给所有相邻设备。每台路由设备都会保留LSA拷贝,并向其相邻设备转发该LSA(这个过程变称为扩散f looding)然后更新其拓朴结构数据库(这是一个包含网络所有链路状态信息表)。LSA扩散被用于确保所有路由设备都能了解到这个变化,这样它们就能够更新它们的数据,并生成一个更新过的、反映新的网络拓朴结构的路由表。
Cisco的链路状态型路由选择协议的比较
特征OSPFIS-ISEIGRP
要求体系化拓朴结构XX
保留对所有可能路由的了解XXX
路由归纳-人工XXX
路由归纳-自动X
事件触发式通告XXX
负载均衡-等成本路径XXX
负载均衡-非等成本路径X
VLSM支持XXX
路由算法DijkstraIS-ISDUAL
度量值链路成本(带宽)链路成本(带宽)复合
跳数限制无1024100
易扩展性大很大大
各路由器中的路由进程都必须留有到各可能目的地逻辑网络的无环路单路径,当所有路由表都达到同步,且每个路由表都包含有到各目的地网络的一条可用路由时,网络就达到了收敛状态。收敛是在网络拓朴结构发生变化后,比如增加了新的路由或现有路由的状态发生了变化后,与路由表同步相关联的活动。
收敛时间是网络中所有路由对当前拓朴结构的认知达到一致所需的时间,网络的大小、所使用的路由选择协议以及众多可配置的计时器都能够影响收敛时间。
有两种检测的方法:
*当物理层或数据链路层没能接收到一定数量(通常是3)的连续keepalive消息时,就认为该链路失效。
*当路由选择协议没能接收到一定数量(通常是3)的连续Hello消息或路由更新或相类似消息时,就认为该链路失效了。
大多数路由选择协议都具有防止在链路状态转换过程中产生拓朴结构环路用的计时器。
第 二 章 扩 展 I P 地 址
Internet的发展快的令人难以置信。这种迅猛发展导致了地址方面的两大挑战:
*IP地址的耗尽
*路由表的增长和可管理性
IP寻址解决方案:
通过在IP地址中启用更多的分级层来减慢IP地址的消耗及减少Internet路由表条目的
量。这些解决方案包括:
*子网掩码
*私有网络的地址分配
*网络地址转换(NAT)
*体系化编址
*可变长度子网掩码(VLSM)
*路由归纳
*无类别域间路由(CIDR)
IP地址所属类别:
地址的第一字节(十进制)地址类别
1~126A类
128~191B类
192~223C类
224~239D类
240~255E类
D类地址还没有被广泛使用,它是多目组播地址;一些路由选择协议所使用的D类多目组播地址如下:
OSPF-----224.0.0.5和224.0.0.6
RIPv2-----224.0.0.9
EIGRP----224.0.0.10
体系化编址:
体系化编址很像我们打电话一般,每个电话局并不需要知道全国的电话号码,你打电话如果第一位不是0的话总机就到自己的电话条目中找到链路然后接过, 如果是0,那么它就看是那个区号,比如是0791-6221155,它就把这信息传给南昌电话局(0791)由南昌话局找到6221155这链路并接通,这样自己的总机就不需要存有外地的话条目了, 让别人也有口饭吃吧J,原理同样可以用在路由器中.
体系化编址的优点:
*减少路由条目的数量
路由归纳是当我们采用了一种体系化编址规划后的一种用一个IP地址代表一组IP地址的集合的方法.通过对路由进行归纳,我们能够将路由表条目保持为可管理的, 而它可以带来以下益处:
------提高路由(转发)效率;
------当重新计算路由表或通过路由表条目检索一个匹配时,所需的CPU周期数减少了;
------降低了对路由器的内存需求
------在网络发生变化时可以更快的收敛
------容易排错
*有效的地址分配
体系化编址使我们能够利用所有可能的地址,因为我们的地址分组是连续的;
可变长度子网掩码 (VLSM)
VLSM提出供了在一个主类(A、B、C类)网络内包含多个子网掩码的能力,以及对一个子网的再进行子网划分的能力。它的优点如下:
*对IP地址更为有效的使用-如果不采用VLSM,公司将被限制为在一个A、B、C类网络号内只能使用一个子网掩码;
*就用路由归纳的能力更强-VLSM允许在编址计划中有更多的体系分层,因此可以在路由表内进行更好的路由归纳。
路由归纳
在大型互连网络中,存在着成百上千的网络。在这环境中,一般不希望路由器在它的路由表中保存所有的这些路由。路由归纳(也被子称为路由聚合或超网s upernetting)可以减少路由器必须保存的路由条目数量,因为它是在一个归纳地址中代表一系列网络号的一种方法。
在大型 、复杂的网络中使用路由归纳的另一个优点是它可以使其它路由器免受网络拓朴结构变化的影响。
只有在就用了一个正确的地址规划时,路由归纳才能可行和最有效,在子网环境中,当网络地址是以2的指数形式的连续区块时,路由归纳是最有效的。
路由选择协议根据共享网络地址部分来归纳或聚合路由。无类别路由选择协议---OSPF和EIGRP-支持基于子网地址,包括VLSM编者按址的路由归纳。有类别路由选择协议- RIPv1和IGRP-自动地在有类别网络的边界上归纳路由。有类别路由选择协议不支持在任何其它比特边界上的路由归纳,而无类别路由选择协议支持在任何比特边界上的路由归纳。
因为路由表的条目少了,路由归纳可以减少对路由器内存的占用,减少路由选择协议造成的网络流量。要使网络中的路由归纳能够正确的工作,必须满足下面要求:
*多个IP地址必须共享相同的高位比特;
*路由选择协议必须根据32比特的IP地址和高达32比特的前缀长度来作出路由转发决定
*路由更新必须将前缀长度(子网掩码)与32比特的IP地址一起传输。
Cisco路由器中路由归纳的操作
CISCO通过以下两种方法来管理路由归纳:
*发送路由归纳
*从路由归纳中选择路由
地址不连续的子网是指由其它不同的主类网络所分开的同一主类网络中的一些子网
路由选择协议对路由归纳的支持情况
协议是否在有类别网络边界自动归纳?能否关闭自动归纳是否能够在的类别网络边界之外进行归纳
RIPv1是否否
RIPv2是是否
IGRP是否
EIGRP是是是
OSPF否--是
无类别域间路由(CIDR)
CIDR是开发用于帮助减缓IP地址和路由表增大问题的一项技术。CIDR的理念是多个C类地址块可以被组合或聚合在一起生成更大的无类别I P地址集(也就是说允许有更多的主机)。成块的C类地址是分配给各个ISP的
在串行接口上使用无编号IP地址
要在不给接口分配一个明确IP地址的前提出下在串行接口上启用IP处理功能,可以使用 "ip unnumbered type number"接口配置命令。在该命令中"type number"是路由器上具有分配的IP地址的另一个接口(该接口被称为指定接口或参考接口,即无编号接口从其处借用IP地址的那个接口)的类型和编号。它不能是另一个无编号接口。如果要关闭串行接口中的I P处理功能,可心使用该命令的NO形式。
无编号接口的限制:
*使用HDLC、PPP、LAPB、SLIP协议的串行接口,以及隧道接口可以采用无编号方式。不能在X。25或交换式多兆位数据服务SMDS接口上使用无编号接口配置命令。
*我们不能使用PING命令来确定无编号接口是否已经UP了,因为该接口没有地址。SNMP可以远程监控该接口状态。
例子:
Interface Ethernet0 Ip address 10.1.1.1 255.255.255.0!interface Serial0 ip unnumbered Ethernet0
使用帮助地址(Helper Address)
路由器是不转达发广播的,帮助地址通过将这些广播数据包直接转发到目标服务器而帮助客户机和服务器建立联系。
帮助地址命令将广播性目的地地址改变为单点传达室送地址(或一个定向的广播-在某个子网内的本广播),使该广播消息可以被路由到一个具体的目的地而不是所有地方
使用"ip helper-address address"接口配置命令配置一个可能会接收到广播的接口。在该命令中"ADDRESS"是指在转发用户数据报协议(UDP)广播时所使用的目的地地址。该指定地址可以是远程服务器的单点传送地址或定向广播地址。
如果定义了"ip helper-address address"命令,为8个缺省UDP端口进行转发的功能就被自动启用,它们是:TFTP(69)、DNS(53)、时间(37)、NETBIOS服务(137)、N ETBIOS数据报服务(138)、BOOTP服务器(67)、BOOTP客户机(68)和终端访问控制器访问控制系统TACACS(49)。
如果定义了"ip helper-address address"命 令 和 指 定 了 这 8 个 U D P端 口 的"ip forward-protocol udp"命令,那么寻址这8个UDP端口的广播数据包将被自动转发。
"ip forward-protocol"描述:
"ip forward-protocol"命令描述
udpUDP-传输层协议
port(任选)当指定了"udp"关键字时,可以定义UDP目的地端口号或端口名
nd网络磁盘;无盘Sun工作站使用的一种老的协议
sdns网络安全协议
实例:
Interface Ethernet 0 Ip address 172.16.1.100 255.255.255.0 Ip helper-address 172.16.2.2!ip forward-protocol udp 3000no ip forward-protocol udp tftp
"ip helper-address"命令必须被配置在接收到最初客户广播数据包的路由器接口上。
第 三 章 在 单 个 区 域 办 配 置OSPF
OSPF是一项链路状态型技术,比如路由选择信息协议(RIP)这样的距离矢量型技术相对。OSPF协议完成各路由选择协议算法的两大功能:路径选择和路径交换。
OSPF是一种内部网关协议(IGP),也就是说它在属于同一自治系统的路由器间发布路由信息。
OSPF是为解决RIP不能解决的大型、可扩展的网络需求而写的OSPF解决了以下问题:
*收敛速率
*对可变长度掩码(VLSM)的支持
OSPF、RIPV2支持VLSM,RIP只支持固定长度子网掩码(FLSM)
*网络可达性
RIP跨度达16跳时被认为是不可达,OSPF理论上没有可达性限制
*带宽占用
RIP每隔30秒广播一次完整路由,OSPF只有链路发生变化才更新
*路径选择方法
RIP是基于跳数选择最佳路径的,OSPF采用一种路径成本(cost)值(对于Cisco路由器它基于连接速率)作为路径选择的依据。OSPF与RI P、IGRP一样直持等开销路径
OSPF信息在IP数据包内,使用协议号89
OSPF可以运行在广播型网络或非广播型网络上
在广播型多路访问拓朴结构中的OSPF运行
Hello协议负责建立和维护邻居关系
通过IP多目组广播224.0.0.5,也被称为ALLSPFROUTER (所有SPF路由器)地址,Hello数据包被定期地从参与OSPF的各个接口发送出去。
Hello数据包中所包含的信息如下:
l路由器ID
这个32比特的数字在一个自治系统内唯一的标识一个路由器。它缺省是选用活跃接口上的最高IP地址。这个标识在建立邻居关系和直辖市运行在网络中S PF算法拷贝的消息时是很重要的。
*HELLO间隔和DOWN机判断间隔(dead interval)
HELLO间隔规定了路由发送HELLO的时间间隔(秒)。DOWN机判定间隔是路由器在认为相邻路由器失效之前等待接收来自邻居消息的时间,单位为秒,缺省是H ELLO间隔的4倍。
*邻居
这些是已经建立了双向通信关系的相邻路由器
*区域ID
要能进行通信,两台路由器必须共享一个共同的网络分段
*路由器优先级
这8个比特数字指明了在选择DR和BDR时这台路由器的优先级。
lDR和BDR的IP地址
*认证口令
*未节(stb)区域标志
OSPF数据包头中的各个域:
*版本号 1(字节数)
*类型 1
HELLO
链路状态请求
链路状态更新
链路状态确认
*数据包长度 2
*路由器ID 4
*区域ID 4
*校验和 2
*认证类型 2
*认证 8
*数据 可变的
指定路由器DR和备用指定路由器BDR
在一个以太网分段这样的多路访问环境中的路由器必须选举一个DR和BDR来代表这个网络。在DR运行时,BDR不执行任何DR功能。但它会接收所有信息,只是不做处理而已,由D R完成转发和同步的任务。BDR只有当DR失效时才承担DR的工作,
DR和BDR的价值:
*减少路由更新数据流
DR和BDR为给定多路访问网络上的链路状态信息交换起着中心点的作用。每台路由器都有必须建立与DR和BDR的毗邻关系,DR向多路访问网中的所有其它路由器发送各路由的链路状态信息。这一扩散过程大大减少了网络分段上与路由器相关的数据流。
*管理链路状态同步
DR和BDR可保证网络上的其它路由器都有有关于网络的相同链路状态信息
毗邻关系是存在于路由器与其DR和BDR之间的关系。毗邻的路由器将具有同步的链路状态数据库
选举DR和BDR时,路由器将在HELLO数据包交换过程中查看相互之间的优先值。
根据下列条件确定DR与BDR
*有最高优先级值的路由器成为DR
*有第二高优先值的路由器被称为BDR
*优先级为0的路由器不能作茧自缚为DR或BDR,被称为Drother (非DR)
*如果一台优先级更高的路由器被加到了网络中,原来的DR与BDR保持不变,只有DR或BDR它们失效时才会改变
OSPF启动的过程:
1.交换过程(exchange process)
当一个路由器A启动时,它处于DOWN状态,它从其各个接口通过224.0.0.5发送HELLO数据包到其它运行OSPF的路由器,其它路由器收到这个H ELLO包后就会把它加入自己的邻居列表中,这叫"init"状态,之后发送一个单点传送回复HELLO包,其中包含着自己的和其它相邻路由器的信息,路由器A 收到这个HELLO后,会把其中有相邻关系数据库加入到自己的库中这叫"two-way"状态,此时就建立了双向通信。
2.发现路由
在选出了DR和BDR之后,路由器就被认为是处于"准启动(exstart)状态",并且已
准备好发现有关网络的链路状态信息,以及生成它们的链路状态数据库。用来发现网络路由的这个过程称为交换协议,它被执行来使用权路由器达到通信的" 全(FULL)"状态。在这个协议中的第一步是让DR和BDR建立起与其它各路由器的毗邻关系。当毗邻的路由器处于"全"状态时,它们不会重复执行交换协议,除非" 全"状态发生了变化。
3.选择路由
当路由器有了一个完整的链路状态数据库时,它就准备好要创建它的路由表以便能够
转发数据流。CISCO路由器上缺省的开销度量是基于网络介质的带宽。要计算到达目的地的最低开销,链路状态型路由选择协议(比如OSP F)采用Dijkstra算法,OSPF路由表中最多保存6条等开销路由条目以进行负载均衡,可以通过"maximum-paths"进行配置。
如果链路上出现fapping翻转,就会使路由器不停的计算一个新的路由表,就可能导致路由器不能收敛。路由器要重新计算客观存它的路由表之前先等一段落时间,缺省值为5 秒。在CISCO配置命令中 "timers spf spf-delay spy-holdtime"可以对两次连续SPF计算之间的最短时间(缺省值10秒)进配置。
4.维护路由信息
在链路状态型路由环境中,所有路由器的拓朴结构数据库必须保持同步这一点很重要。当链路状态发生了变化时,路由器通过扩散过程将这一变化通知给网络中其他路由器,链路状态更新数据包提供了扩散L SA的技术
各LSA都有有它自己的老化计时器,承载在LS寿命域内。缺省值为30分钟
在点对点拓朴结构中的OSPF运行
在点对点网络上,路由器通过向多目组播地址来检测它的邻居。不用进行选取举,因为点对点上没有DR与BDR的概念,在NBMA拓朴结构上缺省O SPF hello间隔和down机间隔为10秒和40秒
在非广播型多路访问(NBMA)拓朴结构中的OSPF运行
NBMA网络是指那些能够支持多台(两台以上)路由器但不具有广播能力的网络。
帧中继、ATM和X.25都是NBMA网络的例子
在NBMA拓朴结构上缺省OSPF hello间隔和down机间隔为30秒和120秒
下表是在各类拓朴结构上缺省OSPF hello间隔和down机间隔
OSPF环境Hello间隔Down机判定间隔
广播10秒40秒
点对点10秒40秒
NBMA30秒120秒
OSPF在NBMA拓朴结构中以两种正式模式之一运作:
*非广播多路访问
*点对多点
在NBMA拓朴结构中配置路由器时,通常采用子接口
可以通过下面的命令来创建子接口:
iterface serial number.subinterface-number {multpiont | point-to-point}
在大型网络中,采用点对多点模式可以减少完全连通所必需的PVC数量
点对多点有以下属性
*不需要全互连的网络
*不需要静态邻居配置
*使用一个IP子网
*复制LSA数据包
在NBMA拓朴结构上的OSPF小结
模式期望的拓朴结构子网地址毗邻关系RFC或Cisco定义
NBMA全互连邻居必须属于同一子网号人工配置选举DR/BDRRFC
广播全互连邻居必须属于同一子网号自动选举DR/BDRCisco
点对多点部分互边或星型邻居必须属于同一子网号自动,没有DR/BDRRFC
点对多点非广播部分互边或星型邻居必须属于同一子网号手工配置没有DR/BDRCisco
点对点通过子接口的部分互连或星型各子接口属于不同的子网自动,没有DR/BDRCisco
在单个区域内配置OSPF
要配置OSPF,我们必须执行以下步聚:
l通过"router ospf process-id"全局配置命令在路由上启动OSPF进程
process-id是一个内部编号
l通过"network area"路由器配置命令来标识路由器上哪些IP网络号是OSPF网络的一部分。
network address wildcard area area-id
要确认路由器的ID可以输入:show ip ospf interface 命令
修改路由器的优先级:router(config)#ip ospf priority number
number是1~255的数,缺省是`1,0表示不能被选举为DR或BDR
修改链路开销要通过"ip ospf cost cost"命令覆盖分配给一个OSPF接口的缺省开销值
要控制OSPF如何计算接口缺省度量值(开销)可以使用"auto-cost refence-bandwidth"
在接口配置模式下输入"ip ospf network"命令来指定OSPF网络模式配置