路由原理什么是路由选择一个将数据包发往某个目标网段或主机的路径就是路由的过程。172.16.1.010.1.1.0路由器的功能•作用–实现不同IP网段主机间的相互访问–实现不同通信协议网段主机间的相互访问–不转发广播数据包•功能–基于IP地址的寻径和转发–不同通信协议的转换–特定IP数据包的分片和重组路由器转发数据过程1、路由器从接口收到数据包,读取数据包里的目的IP地址2、根据目的IP地址信息查找路由表进行匹配3、匹配成功后,按照路由表中转发信息进行转发4、匹配失败,将数据包丢弃,并向源发送方返回错误信息报文Packet路由表目的网段转发方式192.168.1.0从F1口发出192.168.2.0从F2口发出172.16.1.0交给B路由表的产生方式----直连路由1.1.1.01.1.2.01.1.3.0路由器会自动生成本路由器激活端口所在网段的路由条目路由表的产生方式----静态路由在简单拓扑结构的网络里,网络管理员手动输入路由条目。路由表产生的方式----动态路由•动态路由协议学习到的路由–在大型网络环境下,依靠路由协议比如OSPF、RIP路由协议学习路由表198.113.181.0[170/304793]192.150.42.17702:03:50D198.113.178.0192.168.96.0192.168.97.0[110/9936]192.150.42.17702:03:50O192.150.42.17700:00:20RC[120/3]Ethernet0Ethernet0Ethernet0Ethernet0AgeSourceNetwork#InterfaceNextHopMetric管理距离管理距离(distance):是衡量一条路由好坏的一个标准,越小路径越好。路由分类路由选择方式有两种:静态路由和动态路由。静态路由是在路由器中设置的固定的路由表。除非网络管理员干预,否则静态路由不会发生变化。由于静态路由不能对网络的改变作出反映,一般用于网络规模不大、拓扑结构固定的网络中。静态路由的优点是简单、高效、可靠。在所有的路由中,静态路由优先级最高。当动态路由与静态路由发生冲突时,以静态路由为准。路由的花费(Metric),静态路由的花费值(也叫度量值)为0。动态路由是网络中的路由器之间相互通信,传递路由信息,利用收到的路由信息更新路由器表的过程。它能实时地适应网络结构的变化。如果路由更新信息表明发生了网络变化,动态路由协议就会重新计算路由,并发出新的路由更新信息。这些信息通过各个网络,引起各路由器重新启动其路由算法,并更新各自的路由表以动态地反映网络拓扑变化。动态路由适用于网络规模大、网络拓扑复杂的网络。当然,各种动态路由协议会不同程度地占用网络带宽和CPU资源。静态路由:稳定、不智能;动态路由:智能、有一定的开销。iprouteprefixmask{address|interface}[distance][permanent]router(config)#core1#configtcore1(config)#iproute10.2.0.0255.255.0.010.1.1.1•建立静态路由core1#showiprouteoutputomittedS10.2.0.0/16[1/0]via10.1.1.1•路由表显示静态路由的结果配置静态路由配置静态缺省路由浮动静态路由动态路由分类1)、根据是否在一个自治域内部使用,动态路由协议分为内部网关协议(IGP)和外部网关协议(EGP)。这里的自治域指一个具有统一管理机构、统一路由策略的网络。自治域内部采用的路由选择协议称为内部网关协议,常用的有RIP、OSPF;外部网关协议主要用于多个自治域之间的路由选择,常用的是BGP4。2)、按照寻径方式分类:距离向量(RIP,IGRP);链路状态(OSPF,ISIS);混合型路由协议(EIGRP,BGP)。3)、根据协议在更新时是否携带掩码分为:Classless和Classful两大类。RIPv1以及IGRP属于Classful(有类),它们在做路由广播时不带掩码信息;OSPF,EIGRP,BGP4是Classless(无类),它们在做路由广播时带掩码信息。Classful路由协议•Classful路由协议在路由更新时不携带掩码•Classful路由协议只能支持定长子网掩码(FLSM)同一个大类网络下的子网信息当掩码长度一致时可以相互穿越。掩码长度不一致时子网信息不能传递。•Classful路由协议不支持非连续的子网(Discontiguoussubnet)子网信息穿过另外一个大类网络时将在网络边界做自动汇总(10.2.0.0和10.3.0.0进入路由器C时被自动汇总为10.0.0.0,这样在C上会产生路由混乱)在TCP/IP协议中,RIPv1以及IGRP属于Classful路由协议。无类路由的概述–无类(classless)路由协议通告路由的时候包括子网掩码.–无类路由协议支持VLSM.–在网络中可以手工控制路由汇总.解释:VLSM是可变长子网掩码,它把一个24位的掩码拆成30位来用,可以对IP地址更加有效的使用。相反的路由归纳(也叫路由聚合或者超网),它减少了路由表的数量。CIDR为无类别域间路由。比如192.168.8.0/24、192.168.9.0/24……192.168.15.0/24通过CIDR可以变成192.168.8.0/21•路由汇总的好处:1减少路由表条目的数量从而节省内存及CPU资源2可以使得路由变化的影响本地化(Localize)•Classful路由协议只支持自动汇总•Classless路由协议支持手动汇总•缺省情况下,RIPv2,EIGRP以及BGP做自动汇总(noauto-summary关闭自动汇总)。•做汇总的路由器将自动产生一条目的地为汇总地址指向NULL0的路由以避免路由环路及路由黑洞。路由汇总NULL0路由避免路由环路internet路由器D宣告路由给Internet时做172.16.12.0/22的汇总,同时由于是Internet接入路由器所以通常会有缺省路由,这样Internet路由器会有一条172.16.12.0/22的路由,假如有HACKER发送一个目的地为172.16.19.0的数据包,Internet路由器会把包转发给路由器D,D收到以后会通过最长匹配原则根据缺省路由将包又发送给Internet路由器从而形成路由的环路及黑洞。如果在路由器D上有NULL0路由则可以避免此问题(该路由是自动产生的)。不同路由协议汇总的配置•RIPv2基于端口进行汇总,IPSUMMARY–ADDRESSRIPnetworkmask•EIGFRP基于端口进行汇总,IPSUMMARY-ADDRESSEIGRP[AS-NUMBER][ADDRESS][MASK]•OSPF的汇总只能在ABR以及ASBR上基于进程进行•ABR进行区域间汇总:areaarea-idrangeaddressmask•ASBR进行外部路由汇总:summary-addressaddressmask•BGP汇总基于进程:aggregate-addressip-addressmask[summary-only][as-set]•Note:除BGP外,其它路由协议做了汇总后将自动抑制具体路由,而缺省情况下,BGP会将汇总路由和具体路由都宣告给邻居,如果要抑制具体路由必须加上关键字summary-only。协议端口,以及可靠性路由协议对照表默认计时器的对照路由优化和更新路由过滤:•Distribute-List,根据网络地址过滤路由,适合于任何路由协议及环境可以引用Access-List或者Prefix-list定义需要过滤的路由,Prefix-List更加灵活,推荐用Prefix-List。•Route-Map主要用在路由重分发-redistribute以及BGP协议中,可以根据网络地址及路由属性控制路由的过滤,比Distribute-List更加灵活。路由重分发:•做多点双向重分发时容易导致路由回馈(包括路由环路及非最佳路径的选择),能避免尽量避免,不能避免则要于路由过滤以及修改AD值结合在一起。策略路由(PBR):•相对于普通路由(Destination-BasedRouting)而言,基于策略进行路由,通过Route-Map实现路由过滤•Hidesnetwork10.0.0.0usinginterfacefilteringPBR•Alltrafficusingadefaultrouteandsourcedfromsubnet1.1.0.0shouldgothroughISPA.•Alltrafficusingadefaultrouteandsourcedfromsubnet1.2.0.0shouldgothroughISPB.PBR配置•RouterA(config)#access-list1permitip1.1.0.00.0.255.255•RouterA(config)#access-list2permitip1.2.0.00.0.255.255•RouterA(config)#route-mapequal-accesspermit10•RouterA(config-route-map)#matchipaddress1•RouterA(config-route-map)#setipdefaultnext-hop6.6.6.6•RouterA(config-route-map)#route-mapequal-accesspermit20•RouterA(config-route-map)#matchipaddress2•RouterA(config-route-map)#setipdefaultnext-hop7.7.7.7•RouterA(config-route-map)#route-mapequal-accesspermit30•RouterA(config-route-map)#setdefaultinterfacenull0•RouterA(config)#interfaceethernet0•RouterA(config-if)#ipaddress1.1.1.1255.255.255.0•RouterA(config-if)#ippolicyroute-mapequal-access•RouterA(config)#interfaceserial0•RouterA(config-if)#ipaddress6.6.6.5255.255.255.0•RouterA(config)#interfaceserial1•RouterA(config-if)#ipaddress7.7.7.6255.255.255.0