浅谈TCPIP协议栈(六)路由表与FIB表
转眼间就到了⼋⽉份,⽇⼦过得可真快,当初三⽉份开博客时,⽬标是⼀周⼀篇,现在看来这个⽬标还没有达成,还需要继续努⼒,⾔归正传,上⼀章介绍了路由的分类和优先级,这⼀章我们将更为深⼊地介绍路由,主要聚焦两张表项:路由表和FIB表。
上⼀节提出了路由的概念,并且为⼤家介绍了路由的分类以及如何选择合适的路由进⾏转发,还是要强调⼀句话,⽹络层中最主要的概念就是路由和转发,⽽路由器作为⽹络传输的载体,其最核⼼的功能也是路由和转发,⾄于怎么路由,怎么转发,会随着组⽹的复杂程度⽽不同,也可以是⼀座城市的⽹络,甚⾄可能是⼀个国家,⼀个⼤洲的⽹络,现在我们就来介绍路由器上存储的最为重要的两张表项——路由表和FIB表。
先来介绍⼀下两张表的基础概念:
路由表时⽤来将各种路由协议发现的路由保存起来,根据来源不同,路由表中的路由通常可以分为以下三类:
链路层协议发现的路由(也叫作接⼝路由或直连路由);
由⽹络管理员⼿⼯配置的静态路由;
tcpip协议pdf动态路由协议发现的路由。
这三类路由我们在上⼀节已经介绍过了,这⾥就不再赘述了。
FIB表(Forwarding Information Base)中每条转发表项都指明到达某⽹段或主机的报⽂应该通过路由器的哪个物理接⼝或逻辑⼝发送,然后就可到达该路径的下⼀个路由器,或者不再经过别的路由器⽽传送到直接相连的⽹络中的⽬的主机。
可以看到路由表和FIB表分别储存着⽹络传输中的两⼤关键点:路由功能和转发功能,⼆者之间关系密切,共同负责将报⽂按照最适合路径进⾏转发,下⾯我们就来看看这两张表项是如何⼯作的吧。。
先看路由器上的路由表的⼯作核⼼:
每台路由器都保存着⼀张本地核⼼路由表,同时各个路由协议也维护着⾃⼰的路由表。
协议路由表中存放着该协议发现的路由信息。
路由协议可以引⼊并发布其他协议⽣成的路由。例如在路由器上运⾏OSPF(Opne Shortest Path First)协议,需要使⽤OSPF协议通告直连路由,静态路由或IS-IS路由时,要将这些路由引⼊到OSPF协议的路由表中。
本地核⼼路由表⽤来保存协议路由和决策优选路由,并负责把优选路由下发到FIB,FIB进⾏知道转发。这张路由表依据各种路由协议的优先级和度量值来选取路由。
在路由器上,我们可以通过输⼊命令查看路由表,其具体内容如下所⽰:
可以看到,路由表根据⽬的地址,存储相应的路由类型,优先级数值,下⼀跳地址以及出接⼝,这些都是我们上⼀节讲路由是提到过的,每当有报⽂进⼊时,我们会从报⽂中封装的IP地址,通过查询路由表,到其最为合适的下⼀跳地址,并确定其出接⼝。
同样的,我们也可以在路由器上查询相应的FIB表,如下所⽰:
可以看到,FIB表箱存储的内容和路由表相似,但⼜是对路由表的⼀种补充,具体补充的是如何转发这⼀条报⽂,根据⽬的地址,确定下⼀跳,再确定耗时以及路由类型,最重要的当然还是出接⼝信息。在路由表选择出路由后,路由表会将激活路由下发到FIB表中。当报⽂到达路由器时,会通过查FIB表进⾏转发。FIB表的匹配遵循最长匹配原则。查FIB表是,报⽂的⽬的地址和FIB表中的各表项的掩码进⾏按位“逻辑与”,得到的地址符合FIB表项中的⽹络地址则匹配。最终选择⼀个最长匹配的FIB表项进⾏转发报⽂。
举个例⼦:⼀个⽬的地址为8.1.2.1的报⽂进⼊路由器,查对应的FIB表,⾸先,⽬的地址8.1.2.1与FIB表中各表项的掩码“0,8,16”作逻辑与运算,得到下⾯的⽹段地址:
0.0.0.0 8.0.0.0 8.1.0.0。这三个结果可以匹配到FIB表中对应的三个表项的匹配长度分别是0bit、8bit和16bit,最终,路由器会选择最长匹配8.1.0.0进⾏转发,也就是从接⼝GigabitEthernet2/0/0转发这条⽬的地址为9.1.2.1的报⽂。
好了,对于路由表和FIB表的介绍暂时告⼀段落,我想⼤家已经对⽹络层的转发有了基础的认识,下⼀届,我们开始介绍⽹络中的⼏种常见的协议,敬请期待!、
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论