所以我知道要转发一个报文,路由器需要3条信息:下一跳,出接口和邻接(二层信息)。 在Cisco路由器上,这将存储在FIB和CEF中。
令我困惑的是,出现下一跳只是为了找出邻接信息(通过ARP),因为在将IP数据包转发到下一个路由器时,确实只需要L2信息。
所以我的问题是为什么在下一跳 – >邻接之间存在这种间接性? 为什么不能直接收集这些邻接信息? 这个出口接口如何在路由器内部决定?
或者,如果有人能解释两张表(FIB和CEF)是如何填充的话,会更有帮助?
编辑:
我想我的问题本身很混乱。 所以我在这里试图使它更具体/清楚。
我知道有很多不同的路由协议。 但是,我的问题并不是关于如何接收或计算路线。 收到这些信息后,更符合路由器的情况。 更具体的说,在路由器中,邻接通常是通过ARP实例来插入的。 下一跳信息是由路由实例插入的信息。 所以在这里我假设下一跳已经被路由实例知道/计算了。
有大量的路由协议存在,唯一的目的是帮助路由器在它们之间交换路由并填充它们的路由表。
哪些是实际使用的,哪些信息传递取决于路由器的configuration和networking拓扑结构。