关闭

guagga入门-我们对guagga的修改

标签: 动态路由虚拟化
152人阅读 评论(0) 收藏 举报
分类:
在虚拟化修改之前我们队guagga的修改很少主要包含两个部分:
1.管理接口的过滤;
2.server的对接
管理接口的过滤:
主要是为了让zebra等程序不需要再管理口上面运行动态路由的程序。过滤方式主要是在netlink消息通知;
修改文件rt_netlink.c中函数
netlink_routing_table与netlink_route_change函数中

2。server对接
需要在动态路由生成了路由表项的时候,将所有的表项写入到一个xml文件中。然后通知server去加载这个xml文件中;该修改也在rt_netlink.c中在函数netlink_route_multipath中调用

主要思路:
netlink_route_multipath在zebra往内核写路由的时候回调用这个函数,这个函数把内容写入自己定义的结构体中保存;
然后在eoi_route_list_timer中检查,当连续两次检查路由条目没有变化的时候写入文件中;并且执行通知server加载路由的操作,通知的行为是发送一个killall -39 server给server。
总结:
1。netlink_route_multipath只放到内存中;
2。eoi_route_list_timer定时写回到xml文件中(ospf_route.xml rip_route.xml bgp_route.xml)
3。写完文件后killall -39 server通知server重新加载路由
另外:
我们还修改了网内核添加路由时候的distance和metric的位置,两个内容互相交换,目前已经不知道其意图了。。。
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:102217次
    • 积分:2642
    • 等级:
    • 排名:第13831名
    • 原创:143篇
    • 转载:21篇
    • 译文:2篇
    • 评论:62条
    最新评论