1.动态路由概述
(1)静态路由
(2)动态路由
1.1动态路由分类
(1)按工作区域分类
(2)按工作机制及算法分类
2.路由递归
路由必须有直连的下一跳才能够指导转发,但是路由生成时下一跳可能不是直连的,因此需要计算出一个直连的下一跳和对应的出接口,这个过程就叫做路由递归。
路由递归也被称为路由迭代。路由的下一跳必须可达,该路由才可以放入路由表中。
例如:去往30.1.2.0/24的路由,下一跳为20.1.1.3,非本地直连网络,如果路由表中没有去往20.1.1.3的路由,该静态路由将不会生效,无法作为有效路由条目,并不会出现在路由表。
为什么不会出现在路由表?原因是它的下一跳不可达,所以该路由不会生效,因此也不会放入路由表中。比如说,你想要去俄罗斯,假设你住的城市没有飞机场,你想要直接去那是无法抵达,可能你需要到北京,或者上海等可以去到俄罗斯目的地的机场才能够抵达。
实验例子:
(1)配置RTA、RTB和RTC
(2)查看RTA的路由表
RTA路由表信息生成直连的路由,下一跳为10.0.0.1。
(3)在RTA上添加一条到达30.1.2.0/24的静态路由,查看路由表信息。
结果可以看到该路由是无效的,因为它的下一跳是不可达。
(4)想要它能够到达的话,需要添加一条去往20.1.1.3的路由,下一跳为直连网络内的IP地址10.0.0.2。 去往30.1.2.0/24的路由通过递归查询得到一个直连的下一跳,该路由因此生效。
想要去往30.1.2.0,下一跳是20.1.1.3,想要去到20.1.1.3,他就需要递归,然后下一跳为10.0.0.2。
3.等价路由和浮动路由
3.1等价路由
路由表中存在等价路由之后,前往该目的网段的IP报文路由器会通过所有有效的接口、下一跳转发,这种转发行为被称为负载分担。
3.2浮动路由
静态路由支持配置时手动指定优先级,可以通过配置目的地址/掩码相同、优先级不同、下一跳不同的静态路由,实现转发路径的备份。
浮动路由是主用路由的备份,保证链路故障时提供备份路由。主用路由下一跳可达时该备份路由不会出现在路由表。
当去往20.0.0.0,下一跳10.1.1.2这一条链路(RTA连接RTB)断开了,那么下一跳10.1.2.2就会浮现出来,接替第一条路由去转发信息。
示例:
4.浮动路由实验配置
实验需求:内网用户优先使用移动网络访问外网,联通作为备份。
现实中无论你使用移动网络还是联通网络都是可以访问到腾讯视频,本实验就在R2和R3创建LoopBack0接口模拟访问腾讯视频。
(1)拓扑的搭建
(2)配置PC1和PC2信息
(3)配置R1、R2和R3接口信息
R1:
R2:
R3:
(4)配置静态路由
访问外网通过配置缺省路由去到达
R1:
R2:
R3:
(5)连通测试ping
(6)模拟主线路出现故障,启用备用线路
模拟环境中切换会比较慢,在R1的E0/0/1接口进行shutdown模拟
思考:如果想实现等价负载分担该如何配置?
想要实现等价负载分担,需要把上面实验的备份线路更改优先级和主线路的一样即可,记得把R1模拟E0/0/1接口开起来(undo shutdown),接着在R1进行操作。由于模拟环境是有限,无法去验证测试,在真实的环境中,可以让设备基于数据流的方式进行等价的转发。
R1:
5.路由汇总
5.1 CIDR
CIDR(classless inter-domain routing,无类别域间路由)采用IP地址加掩码长度来标识网络和子网,而不是按照传统A、B、C等类型对网络地址进行划分。
CIDR容许任意长度的掩码长度,将IP地址看成连续的地址空间,可以使用任意长度的前缀分配,多个连续的前缀可以聚合成一个网络,该特性可以有效减少路由表条目数量。
5.2路由汇总需求
子网划分、VLSM解决了地址空间浪费的问题,但同时也带了新的问题:路由表中的路由条目数量增加。
为减少路由条目数量可以使用路由汇总。
5.3路由汇总简介
(1)路由汇总将一组具有相同前缀的路由汇聚成一条路由,从而达到减小路由表规模以及优化设备资源利用率的目的。
(2)路由汇总采用了CIDR的思想:将相同前缀的地址聚合成一个。
(3)我们把汇聚之前的这组路由称为精细路由或明细路由,把汇聚之后的这条路由称为汇总路由或聚合路由。
5.4汇总计算
(1)基于一系列连续的、有规律的IP网段,如果需计算相应的汇总路由,且确保得出的汇总路由刚好“囊括”上述IP网段,则需保证汇总路由的掩码长度尽可能长。
(2)诀窍在于:将明细路由的目的网络地址都换算成二进制,然后排列起来,找出所有目的网络地址中“相同的比特位”。
5.5汇总引发的问题
(1)路由汇总带来的环路问题
(2)解决方案
5.6精确汇总
为了让RTA能够到达RTB上的172.16.1.0/24-172.16.31.0/24网段,配置了一条静态的汇总路由,这条网段虽然优化了网络配置,但是汇总的范围太广,将RTC上的网段也包括在内,导致前往RTC上网段的流量到达RTA之后会被发往RTB,造成数据包的丢失,这种路由为不精确的路由。为此配置汇总路由时要尽量精确,刚好包括所有明细路由。
精确计算汇总后的网络号、掩码,避免汇总后掩码过小。
5.7路由汇总总结
路由汇总导致的问题:环路
解决方案:
(1)配置指向Null 0 口静态路由
(2)精确路由汇总
6.路由汇总实验配置
实验需求:假设内网192168.X.0/24(X=0-7)有8个网段,合理配置静态路由使得内网用户可以访问外网(7.7.7.7)。
- 为避免路由表项太大,不要出现过多的明细路由。
- 降低环路出现的可能性。
(1)拓扑搭建
(2)配置PC
(3)配置R1和R2接口IP信息
R1:
sys
un in en
sysn R1
int e0/0/0
ip add 192.168.0.1 24
int e0/0/1
ip add 192.168.1.1 24
int g0/0/0
ip add 192.168.7.1 24
int g0/0/1
ip add 192.168.12.1 24
R2:
sys
un in en
sysn R2
int e0/0/0
ip add 192.168.12.2 24
q
int LoopBack 0
ip add 7.7.7.7 24
(4)配置静态路由
R1:ip route-static 0.0.0.0 0 192.168.12.2
R2:
在R1已经配置了去包路由,要在R2配置回包路由,
假设我们指向内网8个网段,那么配置量就会很大。
例如:
ip route-static 192.168.0.0 24 192.168.12.1
ip route-static 192.168.1.0 24 192.168.12.1
ip route-static 192.168.2.0 24 192.168.12.1
ip route-static 192.168.3.0 24 192.168.12.1
ip route-static 192.168.4.0 24 192.168.12.1
ip route-static 192.168.5.0 24 192.168.12.1
ip route-static 192.168.6.0 24 192.168.12.1
ip route-static 192.168.7.0 24 192.168.12.1
如果配置ip route-static 192.168.0.0 16 192.168.12.1,这一条路由可以到达内网的所有网段,但是汇总过大,会产生环路。
假设要去往192.168.100.2;
通过tracert 192.168.100.2来观察其转发现象,数据包会在R1和R2之间发来发去,原因:R1走的是缺省路由,R1匹配上转发给R2;到达R2,R2的汇总路由过大,包含了192.168.100.2,又会转发回去给R1,所以导致了环路,直到TTL值等于0,就会丢弃该数据包。
解决方案一:
在R1上配置一条路由指向null0(黑洞路由),起到防环的作用。
ip route-static 192.168.0.0 16 NULL 0
tracert 192.168.100.2 这时候到达R1就被丢弃了。
解决方案二:
可以写一个精确的路由,192.168.0.0/16这个目的网段太大了。
通过对比进行分割,得到新的汇总网段192.168.0.0/21
R1:
undo ip route-static 192.168.0.0 255.255.0.0 NULL0
R2:
undo ip route-static 192.168.0.0 255.255.0.0 192.168.12.1
ip route-static 192.168.0.0 21 192.168.12.1
思考:如果内网段是192.168.X.0/24(X=0-8)
如果回包路由直接配置192.168.0.0/20,它虽然包含了192.168.8.0,同时会有192.168.9.0-192.168.15.0这些网段。
如何解决呢?
可以通过在R1配置一条黑洞路由,同时在R2配置涵盖192.168.8.0/24网段的汇总路由。
R1:
ip route-static 192.168.0.0 20 NULL 0
R2:
ip route-static 192.168.0.0 20 192.168.12.1
例如:
添加一个192.168.8.0网段
在R1添加上了黑洞路由之后,tracert 192.168.9.2,防止了环路。