guagga入门-我们对guagga的修改

本文介绍了对Guagga的修改,主要涉及管理接口过滤和动态路由信息的XML服务器对接。过滤通过netlink消息通知实现,对接则在路由表项变更时将信息写入XML文件并通知服务器加载。修改包括:netlink_route_multipath函数存储路由信息,eoi_route_list_timer定时器负责写入文件并触发服务器重新加载,同时详细说明了内核路由添加时distance和metric位置的互换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在虚拟化修改之前我们队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的位置,两个内容互相交换,目前已经不知道其意图了。。。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值