原创 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表中,分别供转发和控制使用。

你可能感兴趣的:(原创 VPP使用心得(十六)静态路由添加流程)