如果交换路由信息使用的是RIP、EIGRP、OSPF、BGP路由协议,那么都要使用IP路由表。因为这些路由协议都是工作在TCP/IP协议架构之上的,交换的路由信息都会途经IP层,由IP层提供路由服务,而IP路由服务必须使用IP路由表。

路由器与路由器之间怎样传输(路由器之间交互路由信息)(1)

如果交换路由信息使用的是IS-IS路由协议,那么就不需要使用IP路由表。因为IS-IS路由协议并不工作在TCP/IP协议架构之上。所以,交换的IS-IS路由信息压根不会进入TCP/IP协议栈,而是有自己独立的一套协议栈,从高(路由协议/四层)到低(网络层/三层),流经以太网卡(链路层/二层),最后经物理层(一层)流出。值得指出的是,即使是IS-IS协议,也要流经协议栈的网络层,而网络层同样有IS-IS路由表,网络层同样要依赖于这个IS-IS路由表提供路由服务。

综上所述,交换路由信息时,都需要通过路由表查表寻找出接口。工作在TCP/IP协议架构之上的RIP、EIGRP、OSPF、BGP协议,查IP路由表。不工作在TCP/IP协议架构之上的IS-IS查IS-IS路由表

这里产生了一个“先有鸡还是现有蛋”悖论。既然路由表是由路由协议交换路由信息产生,而路由协议要交换路由信息,前提条件是必须要有路由表的存在,这不自相矛盾吗?

并不矛盾。路由协议不能没有路由表,但是路由表可以没有路由协议。产生路由表的源头有:直连路由、静态路由、动态路由(路由协议产生)。

当你配置一个路由器接口IP地址、网络掩码时,TCP/IP协议栈自动生成不少于一条直连路由,其中包括单播路由、组播路由、广播路由。

如果这个接口连着另外一个路由器的接口,且其接口的IP地址、网络掩码处于同一个网段/广播域时,双方就可以通过单播路由、组播路由、广播路由通信。RIP(IP/UDP 520)、EIGRP(IP 88)、OSPF(IP 89)、BGP(IP/TCP 179)就可以通过这些直连路由通信了。两者交换路由信息之后还不算完,还要和自己的其它邻居交头接耳,将收集到的路由信息(谣言)传播出去,当所有的邻居收集到所有的路由(谣言),所有路由器保持路由同步,此为网络收敛(路由同步稳定状态)。星星之火,可以燎原。

即使什么接口也不配置,TCP/IP天然拥有一个软件接口127.0.0.1/8,也会自动产生多条直连路由,包括单播路由、组播路由、广播路由,用于计算机内部进程之间的通信。这里进程之间的通信是指进程使用TCP/IP作为通信的桥梁。如果进程之间的通信不使用TCP/IP作为桥梁,那么进程通信就不会使用IP路由表。

需要指出的是,路由协议产生的路由表,并不都是可以进入TCP/IP的全局路由表。需要竞标,谁的优先级大谁进。这里就会有一个隐含问题,一旦路由协议的路由表进入TCP/IP的全局路由表,并将自身赖以生存的路由表(原有的)挤出TCP/IP的全局路由表的时候,路由协议自身还能存活吗?

自然不能!

作者|车小胖谈网络|公众号

,