原創 VPP使用心得(十六)靜態路由添加流程

    通過ip route add可以添加靜態路由。

    添加一條靜態路由 ip route add 10.10.10.0/24 via 10.10.1.3,其中,vpp中有一個host-vpp1out的接口,其接口IP爲10.10.1.2/24.

    命令觸發後,會生成對應的fib_entry(具體的路由條目),fib_entry_source(路由產生的源信息)、fib_path_list(下一跳列表)、fib_path(具體的下一跳信息)。由於這條命令觸發的路由爲迭代路由,VPP還會爲10.10.1.3這個下一跳創建一個32位掩碼的路由,類型爲RR,其下一跳是ATTACH_AND_NEXTHOP。

    這兩條路由生成後,還會生成對應的DPO信息,10.1.1.3/32這條路由的是一個LOAD_BALANCE的DPO,然後在鏈接一個ADJ的DPO,10.10.10.0/24這條路由會複製10.1.1.3/32的DPO。

    路由生成後會解析下一跳,其中10.1.1.3/32這條路由就是10.10.10.0/24這條路由在解析下一跳時生成的。解析主要是迭代出最後的路由出接口和下一跳地址信息(ADJ)。在VPP中,會爲ADJ的DPO嘗試發送ARP請求。

    解析完後會驗證一下增加這條路由後,是否存在路由迭代循環,這裏是一個遞歸函數處理的。

    之後會把路由添加到MTIRE表和HASH表中,分別供轉發和控制使用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章