静态路由
- 路由器能够自动发现直连路由并将其加载到路由表中,而对于到达非直连网络的路由,路由器就必须通过其他途径来获取,静态路由是一种最直接、最简单的方法。
- 静态路由,也就是网络管理员使用手工配置的方式为路由器添加的路由,通俗的说法是,网络管理员通过手工配置的方式告诉路由器:“你要到达目的地X,需把数据包从接口Y扔出去给下一跳Z"。
- 在网络中部署静态路由后,网络设备之间无需交互特别的协议报文(比如动态路由协议的报文交互)。
示例
如下图所示的网络拓扑中,
-
首先为两台PC设置网卡IP地址及默认网关地址,
-
然后完成R1及R2两台路由器的接口IP地址配置。
-
在初始情况下,每台路由器都自动学习直连接口所在网段的路由,并将直连路由加载到路由表中。
-
R1的路由表如下:
-
R2的路由表如下:
-
R1、R2两者直连,R1与R2是可以直接通信的,
-
当PC1要发送数据给PC2时,
- 它通过将目的IP地址((PC2的IP地址为192.168.2.1)、本地网卡的IP地址与网络掩码进行运算,发现该目的IP地址是本地网段之外的一个地址,因此它意识到需要将发往PC2的报文先发送给自己的默认网关,
- PC1的默认网关被设置为R1的GE0/0/1接口的IP地址,于是PC1将数据包发送给R1。
- 当R1收到这个数据包后,它在自己的路由表中查询报文的目的IP地址,结果发现并没有能够匹配该地址的路由条目,因此数据包被丢弃。
引入问题
基于上述条件,如何才能够使得R1正常地转发这个数据包呢?让PC1和PC2可以正常通信呢?
问题分析
很明显,R1路由表中缺乏相关的路由表项做指示。
解决方法
- R1的路由表中需要拥有相关的路由条目来做指示。
- 最简单的一种方式是使用手工配置的方式为R1添加到达192.168.2.0/24的路由条目,也就是为R1创建一静态路由:
[R1]ip route-static 192.168.2.0 24 GigabitEthernet 0/0/0 192.168.12.2
-
为R1的路由表添加一条静态路由,这条静态路由的目的网络地址及掩码长度为192.168.2.0/24,出接口为GE0/0/0且下一跳IP地址是192.168.12.2。
-
配置静态路由之后,R1的路由表:
-
当R1的路由表里出现了一个新增的条目192.168.2.0/24,R1收到PC1发往192.168.2.1的数据包时,它发现路由表中有一个静态路由条目匹配该数据包的目的IP地址,于是它将该数据包从GE0/0/0接口送出并转发给下一跳192.168.12.2。
-
当这个数据包到达R2后,R2也在其路由表中查询目的IP地址192.168.2.1,它发现该地址在本地路由表中有路由条目相匹配,而且该路由为直连路由,因此R2将数据包根据路由条目的指示从GE0/0/ 1接口转发出去,最终数据包到达PC2。
引入问题2
仅仅只是R1增加了这条静态路由后,PC1就能够与PC2正常地进行数据通信吗?
问题分析2
- 若仅仅只是R1增加一条静态路由,PC1就能够与PC2还是不能正常地进行数据通信!
- 两个设备要实现正常的双向通信,必须保证双向路径可达。
- 到目前为止,从PC1发往PC2的数据包确实是能够到达PC2的,但是从PC2回程的数据包却无法回到PC1。回程数据包的目的IP地址是192.168.1.1,这个数据包首先被PC2发往自己的默认网关,也就是R2,后者查询路由表,却没有发现匹配该目的地址的路由,于是只能将数据包丢弃。
解决方法
- 为了使得PC1与PC2之间能够正常地相互通信,不仅需要在R1上配置一条静态路由,还要在R2上也增加一条路由,路由的目的网络地
址及掩码长度是192.168.1.0/24,下一跳IP地址当然就是R1的接口地址192.168.12.1。 - R2的配置如下:
[R2]ip route-static 192.168.1.0 24 192.168.12.1
- 在上述配置中,虽然并没有指定路由的出接口,但是不会有问题,R2会根据下一跳IP地址192.168.12.1进行递归运算,也就是在路由表中查询到达192.168.12.1的路由,从而找到这个IP地址对应的出接口,并最终得到192.168.1.0/24路由的出接口GE0/0/0。
- 此时R2的路由表如下:
- R1、R2都配置一条所需的静态路由之后,PC1及PC2就可以正常地互相通信了。
静态路由的局限性
- 如果网络的规模比较小,全网部署静态路由似乎没有什么问题,
- 但是在一个大型网络中,如果完全使用静态路由来实现数据互通,工作量就十分繁重,毕竟大型网络中包含的网段数量非常多,这意味着如果要确保网络中的每台设备都能够到达全网各个网段,网络管理员就不得不配置大量的静态路由。
- 另外一个更重要的问题是,静态路由无法根据网络拓扑的变更作出动态调整,因此,在大规模网络中往往采用动态路由协议或者静态路由与动态路由协议搭配的方式来打通路由。