静态路由比动态路由使用更少的带宽,并且不占用CPU资源来计算和分析路由更新,一般比较适用于比较简单的小型网络环境,需要手工进行配置。静态路由有5个主要的参数:目的地址和掩码、出接口和下一跳、优先级,即是告诉路由器到某个目的网络(由目的地址和掩码共同确定)从哪个接口转发出去发给谁(下一跳),是否从这条路转发(优先级)。下面以图1为例,聊一下静态路由的几个特点。
图1
一、关于下一跳
我们配置静态路由时,通常指定其下一跳是本路由器接口直接相连的下一个路由器接口IP地址,例如R1左侧10.1.1.0/24网络中某台主机要访问R3右侧192.168.1.0/24网络中某个主机时,一般我们在R1上配置到192.168.1.0/24的静态路由时的下一跳是R2左侧接口C的接口地址,即:
[R1]ip route-static 192.168.1.0 255.255.255.0 12.12.12.2
不过这样一来,可能给人的错觉是这个“下一跳”必须是直接相连的路由器接口地址,其实这个“下一跳”可以不是必须直接相连的,我们也可以将其下一跳配置为R3左侧接口E的接口地址,即:
[R1]ip route-static 192.168.1.0 255.255.255.0 23.23.23.2
这种“下一跳”不是直接相连的情况在动态路由中遇到的时候更多一些。
当路由的下一跳不是直接相连的路由器接口地址时,就有了下面的第二个特点。
二、关于迭代性
当路由条目的下一跳不是直接相连的路由器接口地址时,如果要能访问目的网络,则需要保证这个“下一跳”路由可达。例如在R1上配置到192.168.1.0/24的静态路由时的下一跳是R3左侧接口E的接口地址23.23.23.2,即:
[R1]ip route-static 192.168.1.0 255.255.255.0 23.23.23.2
那么R1的路由表中要有到达23.23.23.2的路由,也即我们需要在R1上再配置一条到23.23.23.0/24的静态路由,即:
[R1]ip route-static 23.23.23.0 255.255.255.0 12.12.12.2
如此一层一层迭代,最终会出现一条路由的下一跳是直接相连的路由器接口地址。
三、关于单向性
还是以图1为例,当我们在R1上配置到192.168.1.0/24的静态路由后,数据可以从R1 -> R3的方向发送,但此时从R3 -> R1方向还无法转发数据,还需要在R3上配置到10.1.1.0/24的路由——因此说静态路由是单向的,需要双向手工配置。
四、关于优先级
不同厂家的静态路由的优先级可能不同。例如思科设备实现的静态路由的默认优先级一般是优于动态路由协议;华为设备实现的静态路由的默认优先级为60,低于OSPF和IS-IS。因此在华为的路由器中同时配置动态路由协议和静态路由后,在路由表中可能看不到我们配置的静态路由。