OSPF路由协议是一种典型的链路状态的路由协议,一般用于同一个路由域内,在这里,路由域是指一个自治系统,即AS,它是指一组通过统一的路由政策或路由协议互相交换路由信息的网络。
在这个AS中,所有的OSPF路由器都维护一个相同的描述这个AS结构的数据库,该数据库中存放的是路由域中相应链路的状态信息,OSPF路由器正是通过这个数据库计算出其OSPF路由表的。
一、我们在配置完各接口的IP和OSPF 协议,路由器配置成帧中继交换机的,这样更有利于我们更好地理解帧中继,注意:在路由器的接口中,可以定义接口类型ip OSPF network broadcast 或者可以手动指定两个接口的邻居,不然的话会起不了邻居。
二、然后我们可以进各路由的接口下去手动指定cost 值,命令是进接口下:ip OSPF cost 注意:以太网口的默认COST值为1。广域网口默认为64,OSPF 的默认值100除以接口带宽1.544=64可以去show 接口查询,路由器源接口到别的网络时,是要取该接口的COST值大小做为路径取向。比如说:R3中S1/0 和S1/1如果S1/0不手动指定COST值。默认为64。那么R3到别的路由不会取S1/0这个接口。
三、通过常理分析路由器的cost最小,应该会取2这条路走,但事实却不是,发现走R2之后就直接丢给R1,而不去按照172.16.255.0网段这边的COST值为10。而去走R4,此路径也是SPF算出来的。
四、当R3把数据包转发给R2的时候,R2发现此数据包是要到达其它网络。
因此R2不会将数据包再转发给其相同区域的其它路由器。因为R2自己是ABR,他认为到达其它区域的数据包,需要直接转发给骨干区域。而自己也恰巧与骨干区域相连。因此R2直接将数据包转发给骨干区域的R1路由器。
正是因为这个原因,所以我们查看的路由跟实际转发数据包的路径不一致。
五、下面我们再来看一下R3-R2-R4,原本COST为:4,因为我定义了R2的F0/0 COST为2,注意:这段的COST不是1,因为以太网它会按出局接口来算,不是选这个网段的最小的COST值来进行路径的叠加,R3-R4,我们把R2 的f0/0 cost值再改为3。这样就是两条都是5,改完之后。
我们show ip route 看一下,发现到192.168.1.0这段段分别出现了两条路径的负载均衡。
作为一种链路状态的路由协议,OSPF将链路状态广播数据LSA传送给在某一区域内的所有路由器,这一点与距离矢量路由协议不同,运行距离矢量路由协议的路由器是将部分或全部的路由表传递给与其相邻的路由器。