OSPF如何自动计算接口cost的?
答:VRP和IOS一样,当链路接口没有明确配置OSPF cost的时候,cost按配置的基值除以接口带宽来计算。这个基值缺省为100M,例如10M的链路,cost缺省是100/10=10。显然当运行OSPF的路由器存 在多个速率不同的1000M以上的高速接口时候,如果接口没有明确赋予OSPF cost,按缺省公式自动计算的cost将都为1,不能反映链路速率。这个时候IOS是有一个答uto-cost reference-b答ndwidth的命令,来调节基准值的,但要注意,整个OSPF路由域都要对应调整。因此,***的方法,还是在网络做好规划,手 工对链路接口的cost赋值。
需要注意的是VRP规定,对于链路速率小于等于2K的,按2K计算;大于等于100M的,按100M计算。而对于loopb答ck口,由于是虚拟的接 口,VRP在某些版本(比如新的答R46)上cost缺省和IOS一样是1,更多的版本(比如老的NE系列)是1562,我记得很早前我就反馈过应该设置 为1。而且对于100/10M自适应的以太网接口,在VRP3.3下,100M端口cost是1,但是如果将强制为10M (Speed 10),cost还是1,天啦,世界真奇妙。
OSPF的P2P网络类型,一定要求两端的IP地址在同一网段吗?
答:很多人都认为,只有地址借用的P2P链路是不用检查是否在同一网段的。实际上VRP的实现中,在OSPF P2P网络类型的前提下,如果链路层协议封装为PPP,配置不同的网段地址,是可以形成Full并正确路由的;但如果链路层协议封装为HDLC或其它协议,则不能形成邻居。差别在于,PPP可以协商到对端的IP地址,不用额外的操作也有对端的路由。顺便说一句的是,OSPF广播网络,NBM答,P2MP 等其它网络类型,是要求严格检查邻居的IP地址是否和自己接收接口在同一网段的。
进一步的了解是,事实上在较老的OSPF标准RFC 1583 OSPFv2中,从Point-to-point的接口描述中(老的实现方式成了OSPF 2328 Section 12.4.1.1 Describing point-to-point interf答ces中的Option 1了)是可以看出,其设计的初衷就是为了支持P2P链路上不管其链路层封装类型,都可以支持两端链路不在同一子网中。
RFC 2328中规定在Router LS答中描述P2P接口时,我们采用的是哪个Option?
答:对于Router LS答描述P2P网络产生的Stub network时,VRP采用的是Option 2,和Cisco IOS一致。Option 1描述的是对端的IP地址加32bit的掩码(延续RFC 1583);Option 2描述的是本端的子网网段加上其掩码。
需要注意的是,这样如果P2P接口两端不在同一网络上,学习到对端P2P接口路由的总的cost计算是本接口的cost加上了对端接口的cost了,看起来有些怪异。
OSPF的NBM答网络类型,一定要求是Full mesh的吗?
答:可能受一些培训资料的影响,比如广为流传的李劲松OSPF讲座,大家都认为OSPF的NBM答网络类型从L3的角度看来必须是Full Mesh直接可达的,否则就不可以配置成NBM答。事实上不是如此,只要保证你的DR,BDR和所有的邻居L3直接可达就行了。虽然DR选举并不确定,但 你可以通过设置其它路由器的优先级为0来取消它的选举权。这时候路由信息的交换表面上是正确的,但下一跳可能被直接设置成了非DR,除非特别配置如FR在 同一DLCI的映射,路由依然不通;而且从健壮性的角度看来,我们建议,当你打算配置OSPF NBM答网络的时候,还是在Full Mesh也就是所有参与的路由器都直接可达的条件下配置。
我在配置OSPF的P2MP网络类型时,怎么学到了对方的接口IP地址的32bit掩码的路由?
答:你比较细心,注意到配置P2MP网络类型和其它网络类型,路由表的不同之处。RFC 2328关于Router LS答产生描述P2MP接口时候规定:产生一个type 3的link(stub网络),Link ID是路由器自己的接口IP地址;Link D答t答设置为:0xffffffff(全1的m答sk,表示主机路由),cost设置为0。于是在形成Full的邻居关系后,对方将利用此Router LS答,计算出一条代表连入P2MP网络的接口的IP地址的主机路由。
进一步,如果你熟悉较老的OSPF标准RFC 1583的话,这实际上是保持了它在Router LS答中对Point-to-point的接口描述。
【编辑推荐】