静态路由介绍

12 Jun

网络上通过各种设备传递数据,最常见的就是路由器和交换机。本篇介绍路由器的静态路由协议。先简要说一下路由条目和路由表(熟悉的可略过):

一个数据包从源IP地址到目标IP地址间可能穿过多个路由器,也可能有多条路径通往目标IP地址。那路由器收到数据后,如何知道哪个端口能通往目标 地址呢?如果多个端口都可通往目标地址,选择用哪个端口才是最优路径呢?依据的就是路由表。路由表就是路由器的灵魂,是多个路由条目的集合。路由条目必须 有5个项目:前缀,掩码,下一跳,管理距离AD,度量。

1.前缀和掩码

参照IPv4协议及VLSM可变长子网划分和CIDR无类域间路由

2.下一跳

路由器根据路由表将数据转发到下一个端口地址

3.管理距离AD

路由器可能从多种途径获得同一路由,可以来自RIP,也可以是OSPF等。不同途径获得的路由可能采取不同的路径到达目的网络。AD越小,说明路由 的可信度越高。直连路由的AD是0,静态路由的AD是1,RIP是120,EIGRP是90,OSPF是110。收到所有协议提交的路由会比较它们的管理距离AD值,比较的结果将写入路由表

4.度量

测量同一路由协议内到达目的的网络的最佳路径的方法。路由协议会给每一条路径计算出一个数,这个数就是度量值,通常这个值是没有单位的。值越小,路径越佳。最后会选出该协议认为的最优路由,提交给路由表

路由条目格式知道后可以开始生成路由表了。路由表生成3种途径:直连自动生成,静态路由协议,动态路由协议。路由表生成后,路由器就可以根据路由表转发数据包。转发原则:有匹配就转发,没有就丢弃。匹配多条时遵循最长匹配原则。直连没什么好说的,动态路由协议以后介绍,先介绍静态路由(配置静态路由,静态汇总路由,静态默认路由,负载均衡,浮动静态路由)

配置静态路由

路由器不像交换机,新的路由器必须配好IP和路由才能使用,先如下图配好路由器各端口和环回口IP:

20151127221904027

提供一下R1的配置命令(R2和R3同样配置即可)

20151127211046175

配好IP地址后,来试试ping:

20151127212034685

可见路由器光配置好IP地址是不够的,还需要配置路由,否则只能ping通直连的端口:

上面讲到路由条目的基本信息是:前缀,掩码,下一跳,AD,度量。先暂时忽略AD和度量,R1要ping通R2的环回口的话需要设置:22.1.1.0(前缀) 255.255.255.0(掩码)12.1.1.2(下一跳),全部配置如下:20151127222636258

(类似地配置R2和R3路由器的IP和路由)现在可以两两ping通了。

静态汇总路由:

20151127223218410

上面静态路由的配置例子中,要实现两两ping通,需要设8条路由(R1和R3各三条,R2两条),现在为R2增加两个环回口:loopback1:22.1.0.1/24,loopback2:22.1.2.3/24,均和原先的loopback0:22.1.1.1/24 处于不同网段:

20151127223843733

要让R1和R3 ping通R2上新增的两个环回口需要各自增加2条指向环回口的新路由,很麻烦,可以配一条汇总路由:

(汇总的思想就是改变掩码的网络号长度,不明白的话可以参照IPv4协议及VLSM可变长子网划分和CIDR无类域间路由

20151127225120059

(R3同样设置即可)现在在R1和R3能ping通R2上的3个环回口了。

静态默认路由:

默认路由就是0.0.0.0/0表示所有路由(先将刚才设的汇总路由去掉):

20151127233505418

上面设好的默认路由表示R1上所有路由均由12.1.1.2端口转发出去。但实际上此时R1去ping R2的环回口22.1.1.1/24,仍会选择之前设置的静态路由,而非选择默认路由,原因就是最长匹配原则。显然上图中的22.1.1.0/24比 0.0.0.0/0掩码更长更精确,所以路由器会选择更精确的路由条目。可以认为默认路由是保底用的,其他都匹配不了,才选择默认路由。

负载均衡:

20151128091543297

(基本配置请参照上面,不再赘述)为R2配置两条通往R1环回口的路由,分别从R2的f0/0口和f1/0口出去

20151128093457217

配完之后,如图中红色箭头所示,R2有两条路径可以访问R1,两条路径有相同的前缀(均为11.1.1.0),相同的掩码 (255.255.255.0),相同的AD值(静态路由均为1),区别仅仅是下一跳不同(从R2的f0/0口出去的下一跳是12.1.1.1/24,从 R2的f1/0口出的下一跳是23.1.1.3/24)。路由器无法通过最长匹配原则选择出最优路径,以路由器的视角来看,两条路径是等优的,因此通过负 载均衡来平衡带宽:在R2上ping 11.1.1.1:

20151128100610397

浮动静态路由:

路由图仍旧参照上图,除IP地址外,可以将无关的路由去掉。

20151128105423881

在前缀和掩码相同时,AD值小的才会加入路由表。如上例仅AD值不同时,AD值小的那条路由才被加入路由表供路由器使用。但AD值大的那条路由并非 被丢弃了,而是沉入水中,等待时机,一旦路由表中的那条路由出问题不能用了,才浮出水面被加入进路由表。因此叫浮动静态路由很形象。

PS:上面介绍的路由条目时提到的AD值和度量和路由器的最长匹配原则,这3者可能有点搞,需要解释一下:

度量是同一路由协议内选出到达目的地最小开销的那条路径,将这条路径提交给路由表。注意此时只是提交给路由表并没有真正写入,是否需要写入得靠AD值判断。

AD值是用于确认是否能加入路由表。前缀和掩码相同时AD值小的才加入路由表。当然如果前缀和掩码任一不同,则不论AD值大小,统统加入路由表。

路由条目被写入路由表后,具体选择哪条路由用最长匹配原则。

所以3者关系是:度量提供路由条目给路由表。AD值决定哪些路由条目可以最终被加入路由表。最长匹配原则决定已被加入路由表中的哪个路由条目最终被路由器使用。

Leave a Reply

Your email address will not be published. Required fields are marked *