青蛙不是癞蛤蟆

CCNA Chpater 5

Chapter 5 IP Routing
Routing Basic
Routing protocol用于路由器动态寻找最优路径,并使路由器都拥有路由表,R/p决定了数据包的上行路径,eg:RIP IGRP EIGRP OSPF,被动路由协议被分配到接口上并决定数据数据包的传送方式,eg: IP  IPX

Router:把一个数据包从一个设备发送到其他网络的另一个设备,但是不care host ,只care 网络状态,和数据包转发的最佳路径。

一个路由器必须了解:
1.    目的地址
2.    相邻路由器,并可以从哪里获得远程网络的信息
3.    到所有远程网络的可能路由
4.    到达每个远程网络的最佳路由
5.    如何维护并验证路由信息

The IP routing Process
路由过程:同一子网内机器发送数据包,直接转到相应目的ip地址的主机,对于不同网段的ip,要找到能转发这个包的router,否则,就用default gateway转发。router 转发IP 包时,只根据IP 包目的IP 地址的网络号部分,选择合适的接口,把IP 包送出去.
同主机一样,router 也要判定接口所接的是否是目的子网,如果是,就直接把包通过接口送到网络上,否则,也要选择下一个router 来传送包.router 也有它的缺省网关,用来传送不知道往哪儿送的IP 包.这样,通过router 把知道如何传送的IP 包正确转发出去,不知道的IP 包送给缺省网关,这样一级级地传送,IP 包最终将送到目的地,送不到目的地的IP 包则被网络丢弃了。
当主机A 发送个IP 包到主机B,目标MAC 地址使用的是默认网关的以太网接口地址.这是因为帧不能放置在远端网络.

Router#sh ip route
察看路由信息

Configuring IP Routing in a Large Network
几种不同类型的路由:
1.    静态路由(static routing)
2.    默认路由(default routing)
3.    动态路由(dynamic routing)
Static Routing
静态路由:手动填加路由线路到路由表中,

优点是:
1.没有额外的router 的CPU 负担
2.节约带宽
3.增加安全性

缺点是:
1.网络管理员必须了解网络的整个拓扑结构
2.如果网络拓扑发生变化,管理员要在所有的routers 上手动修改路由表
3.不适合在大型网络中

静态路由的配置命令:
ip route [dest-network] [mask] [next-hop address 或exit interface] [administrative distance] [permanent]
ip route:创建静态路由
dest-network:决定放入路由表的路由表
mask:掩码
next-hop address:下1 跳的router 地址
exit interface:如果你愿意的话可以拿这个来替换next-hop address,但是这个是用于点对点
(point-to-point)连接上,比如广域网(WAN)连接,这个命令不会工作在LAN 上
administrative distance:默认情况下,静态路由的管理距离是1,如果你用exit interface代替next-hop address,那么管理距离是0
permanent:如果接口被shutdown 了或者router 不能和下1 跳router 通信,这条路由线路将自动从路由表中被删除.使用这个参数保证即使出现上述情况,这条路线仍然保持在路由表中
eg
 
Router Network Address Interface Address
Lab_A     192.168.10.0 fa0/0 192.168.10.1
192.168.20.0 s0/0  192.168.20.1
Lab_ B    192.168.20.0 s0/0  192.168.20.2
192.168.40.0 s0/1  192.168.40.1
192.168.30.0 fa0/0 192.168.30.1
Lab_ C    192.168.40.0 s0/0  192.168.40.2
192.168.50.0 fa0/0 192.168.50.1
Config lab_A
Router>en
Router#config t
Router(config)#hostname Lab_A
Lab_A(config)#enable secret kaka
Lab_A(config)#interface fa0/0
Lab_A(config-if)#ip address 192.168.10.1 255.255.255.0
Lab_A(config-if)#description Lab_A LAN Connection
Lab_A(config-if)#no shut
Lab_A(config-if)#interface serial 0/0
Lab_A(config-if)#ip address 192.168.20.1 255.255.255.0
Lab_A(config-if)#description WAN Connection to Lab_B
Lab_A(config-if)#no shut
Lab_A(config-if)#exit
Lab_A(config)#line console 0
Lab_A(config-line)#password kaka
Lab_A(config-line)#login
Lab_A(config-line)#line aux 0
Lab_A(config-line)#password kaka
Lab_A(config-line)#login
Lab_A(config-line)#line vty 0 4
Lab_A(config-line)#password kaka
Lab_A(config-line)#login
Lab_A(config-line)#exit
Lab_A(config)#banner motd #
This is the Lab_A router
#
Lab_A(config)#^z
Lab_A#copy running-config startup-config
Destination filename [startup-config]? [Enter]
Lab_A#
Configuring router B
Router>en
Router#config t
Router(config)#hostname Lab_B
Lab_B(config)#enable secret kaka
Lab_B(config)#interface fa0/0
Lab_B(config-if)#ip address 192.168.30.1 255.255.255.0
Lab_B(config-if)#description Lab_B LAN Connection
Lab_B(config-if)#no shut
Lab_B(config-if)#interface serial 0/0
Lab_B(config-if)#ip address 192.168.20.2 255.255.255.0
Lab_B(config-if)#description WAN Connection to Lab_A
Lab_B(config-if)#clock rate 64000
Lab_B(config-if)#no shut
Lab_B(config-if)#interface serial 0/1
Lab_B(config-if)#ip address 192.168.40.1 255.255.255.0
Lab_B(config-if)#description WAN Connection to Lab_C
Lab_B(config-if)#clock rate 64000
Lab_B(config-if)#no shut
Lab_B(config-if)#exit
Lab_B(config)#line console 0
Lab_B(config-line)#password kaka
Lab_B(config-line)#login
Lab_B(config-line)#line aux 0
Lab_B(config-line)#password kaka
Lab_B(config-line)#login
Lab_B(config-line)#line vty 0 4
Lab_B(config-line)#password kaka
Lab_B(config-line)#login
Lab_B(config-line)#exit
Lab_B(config)#banner motd #
This is the Lab_B router
#
Lab_B(config)#^z
Lab_B#copy running-config startup-config
Destination filename [startup-config]? [Enter]
Lab_B#
Configuring router C
Router>en
Router#config t
Router(config)#hostname Lab_C
Lab_C(config)#enable secret kaka
Lab_C(config)#interface fa0/0
Lab_C(config-if)#ip address 192.168.50.1 255.255.255.0
Lab_C(config-if)#description Lab_C LAN Connection
Lab_C(config-if)#no shut
Lab_C(config-if)#interface serial 0/0
Lab_C(config-if)#ip address 192.168.40.2 255.255.255.0
Lab_C(config-if)#description WAN Connection to Lab_B
Lab_C(config-if)#no shut
Lab_C(config-if)#exit
Lab_C(config)#line console 0
Lab_C(config-line)#password kaka
Lab_C(config-line)#login
Lab_C(config-line)#line aux 0
Lab_C(config-line)#password kaka
Lab_C(config-line)#login
Lab_C(config-line)#line vty 0 4
Lab_C(config-line)#password kaka
Lab_C(config-line)#login
Lab_C(config-line)#exit
Lab_C(config)#banner motd #
This is the Lab_C router
#
Lab_C(config)# ^z
Lab_C#copy running-config startup-config
Destination filename [startup-config]? [Enter]
Lab_C#

验证配置:
Ping  telnet tracert来检查.


Default Routing
默认路由:一般使用在stub 网络中,stub 网络是只有1 条出口路径的网络.使用默认路由来发送那些目标网络没有包含在路由表中的数据包.根据上面的拓扑图,你就不能把默认路由定义在Lab_B 上,因为Lab_B 拥有不止1 个出口路径接口.其实你可以把默认路由理解成带通配符(wildcard)的静态路由
配置默认路由:
首先要去掉之前配置的静态路由
Lab_C(config)#no ip route 192.168.10.0 255.255.255.255 192.168.40.1
Lab_C(config)#no ip route 192.168.20.0 255.255.255.255 192.168.40.1
Lab_C(config)#no ip route 192.168.30.0 255.255.255.255 192.168.40.1
接下来配置默认路由:
Lab_C(config)#ip route 0.0.0.0 0.0.0.0 192.168.40.1
Lab_C(config)#ip default-network 192.168.40.1
额外的命令,使各个接口打破分类IP 规则,12.x 的IOS 默认包含这条命令,如下:
Lab_C(config)#ip classless

Dynamic Routing
自治系统(Autonomous System,AS):同1 个管理域的网络集合,意味着在这里面的所有routers
共享相同的路由表信息
IGP:在相同的AS 内交换路由信息
EGP:AS 间的通信

Routing Protocol Basics

1.    AD<administrative Distances>
管理距离是用来衡量接受来自相邻路由器上路由选择信息的可信度的。一个管理距离是一个从0~255的整数值,0时最可信赖的,而255意味着不会有业务量从这个路由通过。假如router 收到远端的2条路由更新,router 将检查AD,AD 值低的将被选为新路线存放于路由表中.假如它们拥有相同的AD,将比较它们的度(metric).度低的将作为新线路.假如它们的AD和度都一样,那么将在2 条线路做均衡负载。
Route Source                  Default AD
Connected interface             0
Static route                    1
EIGRP                           90
IGRP                            100
OSPF                            110
RIP                             120
External EIGRP                  170
Unknown                         255 (this route will never be used
如上所述,如果配置了static route  RIP的ad高于static,故会优先考虑static route

Routing Protocols

3 种路由协议:
1.距离向量(distance vector)
2.链路状态(link state)
3.混合型(hybrid)
距离向量:用于根据距离(distance)来判断最佳路径,当1 个数据包每经过1 个router 时,被称之为经过1 跳.经过跳数最少的则作为最佳路径.这类协议的例子有RIP 和IGRP,它们将整个路由表向与它们直接相连的相邻routers

链路状态:也叫最短路径优先(shortest-path-first)协议.每个router 创建3 张单独的表,1 张用来跟踪与它直接相连的相邻router;1 张用来决定网络的整个拓扑结构;另外1 张作为路由表.所以这种协议对网络的了解程度要比距离向量高.这类协议例子有OSPF

混合型:综合了前2 者的特征,这类协议的例子有EIGRP

Distance-Vector Routing Protocols
距离矢量路由选择算法发送完整的路由选择表到相邻的路由器,然后,相邻的路由器会将接受岛的路由表项和自己原有的路由表进行组合,以完善路由器的路由表。由于远程网络的确认信息并没实地亲自去查找,故戏称为:传言路由.

RIP 就是距离向量协议的例子.RIP 使用跳数(hops)来决定最佳路径,假如到达1 个网络有2 条跳数相同的链路,那么将均衡负载在这2 条链路上,平均分配,RIP 最多支持6 条均衡链路针孔拥塞(pinhole congestion):假如2 条到达远端网络的链路1 和2 的跳数均为1,但是链路1的带宽是56kbps,2 的是T1 线路1544kbps,显然,走链路2 好过走链路1,但是RIP 使用跳数作为度,所以RIP 会把数据平均分配到链路1 和2 上,这就造成了pinhole congestion


RIP协议示例:
 
起初:路由表中只有本地端口的信息,通过RIP协议,产生一个会聚(converged),如下图,路由表将会被补全


但是RIP协议最大的问题,就是极其缓慢的会聚时间.且在会聚时间没有流量通过.如何快速会聚成了一个极为重要的问题
Routing Loops
Distance-Vector Routing Protocols通过向所有接口周期性的广播路由更新来跟踪整个网络的变化,这些广播包括了完整的路由表,但却给cpu和带宽增加了负担。若会聚更新过慢会产生路由环路
 
假如网络5 出问题了,不工作了,E 就发送更新给C 汇报情况,于是,C 开始停止通过E 来路由信息到网络5,但是这个时候A,B 和D 还不知道网络5 出问题了.所以它们仍然继续发送更新信息.C 发送更新给B说停止路由到网络5.但是此时A 和D 还没有更新,所以它们觉得网络5仍然可用,而且跳数为3.接下来,A发送更新说:嘿!网络5还可用.B 和D 接受到A 发来的更新后,没办法,也相同的觉得可用经过A到达网络5,并且认为网络5 可用.所以就这样,1 个目标网络是网络5 的数据包将进过A 到B,然后又回到A……

Maximum Hop Count
路由环路的问题可以简单描述为跳数无穷大counting to infinity).解决问题的办法可以定义一个最大的跳计数。
RIP max-Hop =15
Split Horizon
另外1 个解决办法就是水平分裂(split horizon),它规定由1 个接口发送出去的路由信息不能再朝这个接口往回发送.这个办法减少了路由信息的不正确性和负载
Route Poisoning
路由破坏(route poisoning)也用于避免不一致的更新信息来阻止网络循环.由刚才的拓扑图,当网络5 不可用了,E 将把这条线路的度变为16,即不可达,破坏这条线路.这样C 就不会发送错误的更新了.当C 收到E 的route poisoning 信息,,C 发送个叫做
Holddowns
抑制计时(holddown): 一条路由信息无效之后,一段时间内这条路由都处于抑制状态,即在一定时间内不再接收关于同一目的地址的路由更新.如果,路由器从一个网段上得知一条路径失效,然后,立即在另一个网段上得知这个路由有效.这个有效的信息往往是不正确的,抑制计时避免了这个问题,而且,当一条链路频繁起停时,抑制计时减少了路由的浮动,增加了网络的稳定性.它使用了触发更新(trigger update)来重新设定holddown 计时器触发更新:和一般的更新不一样,当路由表发生变化时,更新报文立即广播给相邻的所有路由器,而不是等待30 秒的更新周期.同样,当一个路由器刚启动RIP 时,它广播请求报文.收到此广播的相邻路由器立即应答一个更新报文,而不必等到下一个更新周期.这样,网络拓扑的变化会最快地在网络上传播开,减少了路由循环产生的可能性触发更新重新设定计时器的几个情况:

1.计时器超时
2.收到1 个拥有更好的度的更新
3.刷新时间(flush time)

Routing Information Protocol(RIP)
Rip协议是一个真正的距离矢量路由选择协议,默认每30s发送完整的路由表到所有激活的端口。Rip是用hops来决定到达远程网络的最佳方式,并且在默认是他所允许的最大跳计数为15,小型网络中 rip会运行良好,但对于慢速WAN连接的大型网络或者对于安装有大量路由器的网络来说效率低下。
RIP 版本1(RIPv1)使用分级路由(classful routing),意思是在网络的所有设备必须使用相同的子网掩码;
RIP 版本2(RIPv2)使用无分类路由(classless routing).可以支持VLSM


RIP timers:
1.路由更新计时(route update timer)
2.路由无效计时(route invalid timer)
3.保持计时器(holddown timer)
4.路由刷新时间(route flush timer)

路由更新计时:router 发送路由表副本给相邻router 的周期性时间,30 秒
路由无效计时:如果经过180 秒,一个路由的选项都没有得到确认,router 就认为它已失效了
保持计时器:当router 得知路由无效后,router 将进如holddown 状态,默认时间是180 秒,如果
在这180 秒里,router 接收到路由更新以后或者超过180 秒,保持计时器停止计时
路由刷新时间:如果经过240 秒,路由表的选项仍没有得到确认,它就被从路由表中删除

Configuring the Routing Information Protocols
                                                  
Lab_A(config)#no ip route 192.168.30.0 255.255.255.0 192.168.20.2
Lab_A(config)#no ip route 192.168.40.0 255.255.255.0 192.168.20.2
Lab_A(config)#no ip route 192.168.50.0 255.255.255.0 192.168.20.2
Lab_A(config)#router rip
Lab_A(config-router)#network 192.168.10.0
Lab_A(config-router)#network 192.168.20.0
Lab_A(config-router)#^Z
Lab_A#

Lab_B#config t
Enter configuration commands, one per line. End with CNTL/Z.
Lab_B(config)#no ip route 192.168.10.0 255.255.255.0 192.168.20.1
Lab_B(config)#no ip route 192.168.50.0 255.255.255.0 192.168.40.2
Lab_B(config)#router rip
Lab_B(config-router)#network 192.168.20.0
Lab_B(config-router)#network 192.168.30.0
Lab_B(config-router)#network 192.168.40.0
Lab_B(config-router)#^Z
Lab_B#

Lab_C#config t
Enter configuration commands, one per line. End with CNTL/Z.
Lab_C(config)#no ip route 0.0.0.0 0.0.0.0 192.168.40.1
Lab_C(config)#router rip
Lab_C(config-router)#network 192.168.40.0
Lab_C(config-router)#network 192.168.50.0
Lab_C(config-router)#^Z
Lab_C#

Holding Down RIP Propagation
如果你想阻止RIP 更新信息传播到LANs 和WANs 上,可以使用passive-interface 命令,这条命令可以防止RIP 更新信息广播从你定义了的接口上发送出去,但是这个接口仍然可以接受到更新信息,如下:
Lab_A(config)#router rip
Lab_A(config-router)#network 192.168.10.0
Lab_A(config-router)#passive-interface s 0/0
          RIPv2支持:
Lab_A(config)#router rip
Lab_A(config-router)#network 192.168.10.0
Lab_A(config-router)#network 192.168.20.0
Lab_A(config-router)#version 2


 

Interior Gateway Routing Protocol(IGRP)
IGRP 是Cisco 私有的距离向量路由协议,意思是说只有Cisco 的routers 才可以运行IGRP.IGRP 的一些特点有:最大跳数255,默认100 跳,这样就比较适合中大型网络.而且,IGRP默认使用带宽和延迟(delay)作为度来寻找最佳路径,这样的度就叫复合度(composite metric).当你配置IGRP 的时候,你必须以AS 号作为配置参数,所有的routers 必须使用相同的AS 号来共享路由表信息. IGRP 支持6 条链路的均衡负载

下面是一些你在RIP 中找不到的,IGRP 专有的特征:
1.IGRP 可以在1 个大型组网中使用到
2.使用AS 号
3.每90 秒发送完整的路由更新
4.使用带宽和延迟作为度
IGRP Timers
1.路由更新计时:默认90 秒
2.路由无效计时:默认270 秒
3.保持计时器:默认280 秒(3 倍更新时间+10 秒)
4.路由刷新时间: 默认630 秒

相对于RIP协议,只需在配置时加入AS自治号
Lab_A(config)#router igrp 10
其他类似Lab_A(config)#netw 192.168.20.0

Verifying the IGRP Routing Tables
我们来验证下:
Lab_A#sh ip route
(略)
I 192.168.50.0 [100/170420] via 192.168.20.2, Serial0/0
(略)
I 代表IGRP[100/170420]为AD 和复合度,度越低越好
Verifying Your Configurations
一些验证性的命令:
show protocols:显示所有的可路由协议和查看接口及其相关协议,如下:
Lab_B#sh protocols
Gloabal values:
Internet Protocol routing is enabled
FastEthernet0 is up, line protocol is up
Internet Address is 192.168.30.1/24
Serial0/0 is up, line protocol is up
Internet Address is 192.168.20.2/24
Serial0/1 is up, line protocol is up
Internet Address is 192.168.40.1/24
Lab_B#
show ip protocols:显示router 上配置好了的路由协议,如下:
Lab_B#sh ip protocols
Routing Protocols is “rip”
(略)
debug ip rip:发送控制台消息显示有关在router 接口上收发RIP 数据包的信息,关闭debug,使
用undebug all 或者no debug all 命令,如下:
Lab_B#debug ip rip
RIP protocol debugging is on
Lab_B#
07:12:56: RIP: received v1 update from 192.168.40.2 on Serial0/1
07:12:56: 192.168.50.0 in 1 hops
(略)
Lab_B#undebug all
All possible debugging has been turned off
Lab_B#
debug ip igrp events:提供在网络中运行的IGRP 路由选择信息的概要,关闭使用undebug ip
igrp events 或undebug all 命令,如下:
Lab_B#debug ip igrp events
IGRP event debugging is on
07:13:50: IGRP: received request from 192.168.40.2 on Serial0/1
07:13:50: IGRP: sending update to 192.168.40.2 via Serial1(192.168.40.1)
07:13:51: IGRP: Update contains 3 interior, 0 system, and 0 exterior routes
07:13:51: IGRP: Total route in update: 3
(略)
Lab_B#un all
All possible debugging has been turned off
debug ip igrp transactions:显示来自相邻router 要求更新的请求消息和由router 发到相邻router
的广播消息,关闭使用undebug all,如下:
Lab_B#debug ip igrp transactions
07:14:05: IGRP: received request from 192.168.40.2 on Serial1
07:14:05: IGRP: sending update to 192.168.40.2 via Serial1(192.168.40.1)
07:14:05: subnet 192.168.30.0, metric=1100
07:14:05: subnet 192.168.20.0, metric=158250
(略)
Lab_B#un all
All possible debugging has been turned off
Lab_B#

posted on 2006-08-17 09:27 学习资料库 阅读(451) 评论(0)  编辑 收藏 引用 网摘 所属分类: Lan Switch


只有注册用户登录后才能发表评论。
网站导航: