静态路由笔记.docx
- 文档编号:24723034
- 上传时间:2023-05-31
- 格式:DOCX
- 页数:29
- 大小:257.43KB
静态路由笔记.docx
《静态路由笔记.docx》由会员分享,可在线阅读,更多相关《静态路由笔记.docx(29页珍藏版)》请在冰豆网上搜索。
静态路由笔记
静态路由笔记
Pt.1theRouteTable
当frame到达路由器的接口以后,路由器检查frame中的目标地址,如果目标地址为路由器的接口的地址或广播地址的时候,路由器把packet从frame中剥离出来,传递给NetworkLayer.然后packet中的目标地址将被检查,接下来还要检查protocol字段.最后再发送给合适的进程
如果packet是可路由的,路由器会查找自己的路由表寻找相应的路由条目.路由条目至少包含以下2个要素:
1.目标地址,这个地址是路由器能够到达的地址,
2.到达目标地址的指向,这个指向也就是所谓的nexthop(下一跳)
路由器在地址匹配过程中按最大程度进行匹配,地址按精确程度递减的排列,如下:
1.主机地址
2.子网
3.汇总(summary)地址
4.主网络号
5.超网(supernet)
6.默认(default)地址
如果在地址匹配过程中,不能和路由表中任何条目所匹配,packet将被丢弃,然后,一个名为DestinationUnreachable(目标不可达)的ICMP信息将发回给源地址
要检查IP路由表,在enablemode下使用showiproute,如下:
RTA#shiproute
Codes:
C–connected,S–static,I–IGRP,R-RIP,M–mobile,B-BGP,D–EIGRP,EX–EIGRPexternal,O–OSPF,IA–OSPFinterarea,N1-OSPFNSSAexternaltype1,N2-OSPFNSSAexternaltype2,E1-OSPFexternaltype2,E2–OSPFexternaltype2,E–EGP,i-IS-IS,L1–IS-ISlevel-1,L2–IS-ISlevel-2,*-candidatedefault,U–per-userstaticroute,o–ODR
Gatewayoflastresortisnotset
10.0.0.0/24issubnetted,2subnets
S 10.1.3.0[1/0]via10.1.4.1
C 10.1.4.0isdirectlyconnected,Serial0
RTA#
gatewayoflastresortisnotset这句话是指的是默认路由,[1/0]为[administrativedistance/metric]
Pt.2ConfiguringStaticRoutes
本部分析一些案例研究
CaseStudy:
SimpleStaticRoutes
先看一个拓扑图,如下:
此主题相关图片如下:
一般配置静态路由的步骤如下:
1.为每条链路确定地址(包括子网地址和网络地址)
2.为每个路由器,标识非直连的链路地址
3.为每个路由器写出未直连的地址的路由语句(写出直连地址的语句是没必要的)
比如如上面那个拓扑,写出所有链路的地址,如下:
10.1.0.0/16
10.4.6.0/24
10.4.7.0/24
192.168.1.192/27
192.168.1.64/27
192.168.1.0/27
接下来以路由器Piglet为例,写出非直连的地址,如下:
10.4.6.0/24
10.4.7.0/24
192.168.1.64/27
192.168.1.0/27
最后把这些没有直连的语句写出来,如下:
Piglet(config)#iproute192.168.1.0255.255.255.224192.168.1.193
Piglet(config)#iproute192.168.1.64255.255.255.224192.168.1.193
Piglet(config)#iproute10.4.6.0255.255.255.0192.168.1.193
Piglet(config)#iproute10.4.7.0255.255.255.0192.168.1.193
Piglet(config)#ipclassless
Piglet(config)#ipsubnet-zero
上面的192.168.1.193是nexthop地址.还有种方法就是使用出口接口(exitinterface)来代替下一跳地址,假设192.168.1.1是路由器Tigger的e0口,上面的其中一条语句就可以写成:
Piglet(config)#iproute10.4.7.0255.255.255.0e0
这两种方式是存在区别的,如下,先在使用下一跳地址的配置上查看路由表信息:
Piglet#shiproute
(略)
S 10.4.7.0255.255.255.0[1/0]via192.168.1.193
(略)
再在使用exitinterface代替下一跳地址的配置上查看路由表信息,如下:
Piglet#shiproute
(略)
S 10.4.7.0255.255.255.0isdirectlyconnected,Ethernet0
(略)
CaseStudy:
SummaryRoutes
汇总路由可以将多个网络地址汇总成一个网络地址(如果能够进行汇总的话).路由汇总可以减少路由表的条目,减轻路由器的负担
还是刚才那个拓扑,使用汇总路由,就可以按如下语句设置:
Piglet(config)#iproute192.168.1.0255.255.255.0192.168.1.193
Piglet(config)#iproute10.4.0.0255.255.0.0192.168.1.193
(汇总地址的算法这里不再赘述)
CaseStudy:
AlternativeRoutes
拓扑图如下:
此主题相关图片如下:
如图,在路由器Pooh和Eeyore之间新增一条链路.如果我们希望除了到10.4.7.25外从Pooh到网络10.0.0.0都采用新链路,在路由器Pooh上设置如下:
Pooh(config)#iproute192.168.1.192255.255.255.224192.168.1.66
Pooh(config)#iproute10.0.0.0255.0.0.0192.168.1.34
Pooh(config)#iproute10.4.7.25255.255.255.255192.168.1.66
第三条语句为hostroute,并把下一跳地址设置为192.168.1.66
现在使用debugippacket命令监视packet的走向,如下:
Pooh#debugippacket
IPpacketdebuggingison
Pooh#
IP:
s=192.168.1.15(Ethernet0),d=10.4.7.25(Serial0),g=192.168.1.66,forward
IP:
s=10.4.7.25(Serial0),d=192.168.1.15(Ethernet0),g=192.168.1.15,forward
Pooh#
IP:
s=192.168.1.15(Ethernet0),d=10.4.7.100(Serial1),g=192.168.1.34,forward
IP:
s=10.4.7.100(Serial0),d=192.168.1.15(Ethernet0),g=192.168.1.15,forward
Pooh#
从上述4句调试信息可以看出packet的走向
总结,静态路由的2个特征:
1.当拓扑发生变化以后,路由器的静态路由要重新配置
2.可以根据特殊的要求来定义静态路由(如本例,控制来回流量采用不同的走向)
CaseStudy:
FloatingStaticRoutes
还有种静态路由叫浮动(floating)静态路由,它不是永久保存在路由表中,它只出现在当首选路由失败以后
拓扑图如下:
此主题相关图片如下:
如图,路由器Rabbit和Piglet之间有2条链路,其中1条作为备份链路,并且路由器的子网掩码更改为/24
在路由器Piglet上建立浮动静态路由的语句如下:
Piglet(config)#iproute192.168.1.0255.255.255.0192.168.1.193
Piglet(config)#iproute10.4.0.0255.255.0.0192.168.1.193
Piglet(config)#iproute10.1.30.0255.255.255.010.1.10.2
Piglet(config)#iproute10.1.30.0255.255.255.010.1.20.250
在路由器Rabbit上的设置如下:
Rabbit(config)#iproute10.4.0.0255.255.0.010.1.10.1
Rabbit(config)#iproute10.4.0.0255.255.0.010.1.20.150
Rabbit(config)#iproute10.1.5.0255.255.255.010.1.10.1
Rabbit(config)#iproute10.1.5.0255.255.255.010.1.20.150
Rabbit(config)#iproute192.168.0.0255.255.0.010.1.10.1
Rabbit(config)#iproute192.168.0.0255.255.0.010.1.20.150
这里的50为administrativedistance(AD),采用下一跳地址的AD为1,采用exitinterface的话AD为0
验证下路由表里的信息,如下:
Rabbit#shiproute
(略)
S 10.1.0.0255.255.0.0[1/0]via10.1.10.1
(略)
Rabbit#
%LINEPROTO-5-UPDOWN:
LineprotocolonInterfaceSerial0,changedstatetodown
%LINK-3-UPDOWN:
InterfaceSerial0,changedstatetodown
如上,收到trapmessage,显示主链路down掉,再次验证路由表信息如下:
Rabbit#shiproute
(略)
S 10.1.0.0255.255.0.0[50/0]via10.1.20.1
(略)
Rabbit#
CaseStudy:
LoadSharing
上一个例子里,假如主链路不出问题的话,备份链路就永远用不到,带宽也就浪费掉了,loadsharing,也叫loadbalancing(负载均衡),允许在所有可用的链路上传输packet
均衡负载还分为等价(equal-cost)和非等价(unequal-cost).静态路由只支持等价的均衡负载
按刚才的那个拓扑,如果要在路由器Piglet上做均衡负载,设置如下:
Piglet(config)#iproute192.168.1.0255.255.255.0192.168.1.193
Piglet(config)#iproute10.4.0.0255.255.0.0192.168.1.193
Piglet(config)#iproute10.1.30.0255.255.255.010.1.10.2
Piglet(config)#iproute10.1.30.0255.255.255.010.1.20.2
路由器Rabbit的设置如下:
Rabbit(config)#iproute10.4.0.0255.255.0.010.1.10.1
Rabbit(config)#iproute10.4.0.0255.255.0.010.1.20.1
Rabbit(config)#iproute10.1.5.0255.255.255.010.1.10.1
Rabbit(config)#iproute10.1.5.0255.255.255.010.1.20.1
Rabbit(config)#iproute192.168.0.0255.255.0.010.1.10.1
Rabbit(config)#iproute192.168.0.0255.255.0.010.1.20.1
查看路由表信息,如下:
Rabbit#shiproute
(略)
S 10.1.5.0/24[1/0]via10.1.10.1
[1/0]via10.1.20.1
(略)
均衡负载可以是基于目标地址或者是基于每个packet的
所谓机遇目标地址的均衡负载,是说假如有2条到达目标地址的路径,那么第一个packet将通过第一条链路到达第一个目标设备,第二个packet将通过第二条链路到达第二个目标设备,第三个packet又将通过第一条链路到达第三个目标设备等等,以次类推.当Cisco路由器工作在默认的交换模式,FastSwitching(快速交换)模式下,就使用这种类型的均衡负载
FastSwitching的工作原理是:
当路由器对第一个packet进行发往目标地址的处理的时候,先查看路由表和选择出口接口,然后获取组成frame的信息(比如ARP表的查询)并进行封装,然后传输.之前获取的这些路由和数据链路信息将被保存在快速交换的cache中.接下来,当有要到达和第一个包相同的目标地址的包的时候,就可以不进行路由表和ARP表的查询,直接对packet进行交换
快速交换降低了CPU的占用和处理时间,并意味着去往某个目标地址的packet都从相同的路由器接口被路由出去.当有到达同一网络不同主机的packet,路由器可能会吧这些packet通过另外一条链路进行路由.因此,路由器能做的最好的就是给予目标地址的均衡负载
所谓基于基于packet的均衡负载,是说假如有2条到达目标地址的路径,那么第一个packet将通过第一条链路到达目标设备,第二个packet将通过第二条链路到达目标设备,第三个packet又将通过第一条链路到达目标设备等等,以次类推.(这里考虑的是等价的均衡负载)
Cisco路由器工作在ProcessSwitching(进程交换)模式的时候就采用基于packet的均衡负载
进程交换,是指每次对packet的交换,都要查询路由表,选择出口接口和查询数据链路信息,因为每次的路由决策都是独立的.要在某个接口打开进程交换模式,使用noiproute-cache命令
CaseStudy:
RecursiveTableLookups
使用递归查询,可以使得路由器不必把所有的条目都指向下一跳,例子如下图:
此主题相关图片如下:
假设路由器Woozle弃用,路由器Sanderz只使用路由器Heffalump到达其他网络,那么在路由器Sanderz的配置如下:
Sanderz(config)#iproute10.45.2.0255.255.255.010.87.14.1
Sanderz(config)#iproute10.10.3.0255.255.255.010.87.14.1
Sanderz(config)#iproute10.18.186.0255.255.255.010.87.14.1
Sanderz(config)#iproute172.17.23.0255.255.255.010.87.14.1
Sanderz(config)#iproute192.168.100.0255.255.255.010.87.14.1
Sanderz(config)#iproute192.168.200.0255.255.255.010.87.14.5
Sanderz(config)#iproute192.168.150.0255.255.255.010.87.14.5
Sanderz(config)#iproute172.17.30.0255.255.255.010.87.14.5
Sanderz(config)#iproute10.20.30.0255.255.255.010.87.14.5
Sanderz(config)#iproute172.18.250.0255.255.255.010.87.14.25
Sanderz(config)#iproute172.19.10.0255.255.255.010.87.14.25
Sanderz(config)#iproute10.20.30.0255.255.255.010.87.14.25
Sanderz(config)#iproute10.87.14.0255.255.255.010.23.5.20
假如在这样的一个环境里,你想放弃使用路由器Hemffalump,改而使用路由器Woozle,根据递归查询的规则,实际上只需要修改上述配置中最后一条从Sanderz指向Hemffalump的路由,如下:
Sanderz(config)#iproute10.87.14.0255.255.255.010.23.5.95
Sanderz(config)#noiproute10.87.14.0255.255.255.010.23.5.20
这样免去了手动修改前12条条目的麻烦.但是在实际情况中,多次的查询会占用额外的路由器的硬件资源.快速交换限制了递归查询的次数,它只对到达某个目标网络的第一个packet进行查询
Pt.3TroubleshootingStaticRoutes
本部分叙述如何对一些网络进行排错
CaseStudy:
TracingaFailedRoute
拓扑图如下:
此主题相关图片如下:
假设在这个环境里,各个路由器的配置如下:
Pooh(config)#iproute10.0.0.0255.0.0.0192.168.1.34
Pooh(config)#iproute10.4.7.25255.255.255.255192.168.1.66
Pooh(config)#iproute192.168.1.192255.255.255.224192.168.1.66
Eeyore(config)#iproute10.1.0.0255.255.0.010.4.6.1
Eeyore(config)#iproute192.0.0.0255.0.0.010.4.6.1
Tigger(config)#iproute10.1.0.0255.255.0.0192.168.1.194
Tigger(config)#iproute10.4.7.0255.255.255.010.4.6.2
Tigger(config)#iproute192.168.1.0255.255.255.0192.168.1.65
Piglet(config)#iproute10.4.0.0255.255.0.0192.168.1.193
Piglet(config)#iproute192.168.1.0255.255.255.0192.168.1.193
位于子网192.168.1.0/27中的PC可以和位于子网10.1.0.0/16中的设备通信,但是,从和子网192.168.1.0/27相连的路由器Pooh上ping和路由器Piglet相连的子网10.1.0.0/16,却出现失败
到底是哪出错了?
先来检查各个路由器的路由表,如下:
Pooh#shiproute
(略)
S 10.0.0.0255.0.0.0[1/0]via192.168.1.34
(略)
Eeyore#shiproute
(略)
S 10.1.0.0255.255.0.0[1/0]via10.4.6.1
(略)
Tigger#shiproute
(略)
S 10.4.7.0255.255.255.0[1/0]via10.4.6.2
S 10.1.0.0255.255.0.0[1/0]via192.168.1.194
192.168.1.0255.255.255.224issubnetted,3subnets
C 192.168.1.64isdirectlyconnected,Serial0
S 192.168.1.0255.255.255.0[1/0]via192.168.1.65
C 192.168.1.192isdirectlyconnected,Ethernet0
(略)
Piglet#shiproute
(略)
C 10.1.0.0isdirectlyconnected,Ethernet1
S 192.168.1.0255.255.255.0[1/0]via192.168.1.193
(略)
可见从源设备Pooh发出去的ICMPechoreply(请求)packet能够到达目标设备Piglet.那么问题可能出在ICMPechoreply(应答)packet上.接下来跟踪ICMPechoreplypacket的行走路径.ICMPechoreplypacket的目标地址就是ICMPechoreplypacket的源地址,也就是路由器发出这个请求包的接口的地址,那么这里应答包的目标地址就是路由器Pooh的s1口,192.168.1.33
由于目标地址192.168.1.33匹配路由器Piglet路由表的条目
S 192.168.1.0255.255.255.0[1/0]via192.168.1.193
所以这个应答包将被转发给192.168.1.193.再看路由器Tigger的路由表中的条目:
Tigger#shiproute
(略)
S 10.4.7.0255.255.255.0[1/0]via10.4.6.2
S 10.1.0.0255.255.0.0[1/0]via192.168.1.194
192.168.1.0255.255.255.224issubnetted,3subnets
C 192.168.1.64isdi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 静态 路由 笔记