很多朋友都分不清路由表和路由转发表的区别,今天来给大家讲解一下。
什么是路由表呢?
路由表就是网络设备根据路由协议生成的表,华为设备display ip routing-table看到的就是路由表。
生成路由表条目的方法主要有以下几种方式:
1、通过路由协议生成,例如ospf、bgp、is-is、rip等动态路由协议生成;
2、通过静态路由的方式生成,例如ip route static xxx这样;
3、通过直连的方式生成。
什么是通过直连的方式生成呢?
就是如果你在网络设备上配置了一个接口IP后,三成网络设备会自动生成一个direct的路由表条目,下一跳地址是127.0.0.1.
目前,大家接触到最多的生成路由条目的方式就是这三个了,其实除了这几个还有其它的,例如url路由,这个是radius协议生成的路由条目。
言归正传,那路由表是什么样子的呢?
以华为ME60路由器为例,下图就是路由器的路由表了:
解析一下路由表。路由表由目的地址、子网掩码、协议、协议优先级、协议开销、flags位、下一跳、出接口组成。这里的每一个条目都是有它特定的作用的。
首先网络设备是根据最长匹配的原则来生成fib表的。
fib表是网络设备根据路由表生成的转发表,路由器MCU通过下发转发表给业务板卡对经过本地的流量进行转发。
fib表和路由表不一样的地方在于,路由表中可能存在下一跳非直连的情况,而fib表就不存在这种情况。
fib表通过下一跳迭代,避免了下一跳非直连的情况发生。
这里再普及一下,tunnel id是确定流量是走隧道转发还是直接转发的。
如果tunnel id是0x0,那么流量走的就是直接转发;如果是非0,流量走隧道。
看完今天的文章,大家分得清路由表和路由转发表了吗?