路由器之間交互路由信息,需要通過路由嗎?
如果交換路由信息使用的是RIP、EIGRP、OSPF、BGP路由協議,那么都要使用IP路由表。因為這些路由協議都是工作在TCP/IP協議架構之上的,交換的路由信息都會途經IP層,由IP層提供路由服務,而IP路由服務必須使用IP路由表。
如果交換路由信息使用的是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的全局路由表的時候,路由協議自身還能存活嗎?
自然不能!