isc dhcp改造产品系统

我要开发同款
widon11042025年12月28日
17阅读

技术信息

语言技术
C
系统类型
Linux
行业分类
企业服务

作品详情

行业场景

使用c语言,维护开发无线AC设备上的应用程序,如dhcp server,dhcpwrap,dhcprelay等
改造 ISC DHCP:多线程优化(20 → 700 IP/s)、冗余备份、老化机制红黑树化
开发 dhcpwrap CLI 工具与配置管理模块

功能介绍

使用c语言,系统为linux,对isc dhcp程序进行改造,使其有更高性能,便于下发配置,维护和其它模块的交互等
主要职责:针对dhcp server
1)优化性能,先使用gprof分析程序,得到耗时多的函数,然后进行针对性的优化。添加多线程支持,一个接收线程,三个处理线程。把dhcp pool池里面的资源,平均分给这3个处理线程。接收线程收到dhcp请求以后把请求平均分给这3个处理线程。最后修复改造多线程引起的bug,改造完毕以后达到700个每秒的分配ip速率,修改之前只有大约20个每秒的速率。
2)添加dhcp redundancy(冗余备份)功能,使用hash表来存储binding表,如果hash表中的node内容有更新,就把这个node加到一个发送链表上面,然后向对方发送链表里面的内容,发送一个就等待对方回一个ack,回了ack以后把这个node从链表里面移除,然后再发下一个。
3)优化dhcp的老化机制。以前使用的是链表,维护排序的链表太耗时,改为使用红黑树来老化,红黑树插入删除是O(lgN)的算法,而且node是排序的。
4)使用epoll替代select,因为使用select会遇到侦听描述符过多的化会有select溢出的bug。设备上面网络接口需要设置信任,dhcp server才会监听。
新写一个dhcpwrap程序,主要工作有:
1)注册cli命令,下发配置
2)维护dhcp的配置文件等
3)请求dhcp server的信息,如ip binding表信息,然后进行处理,或显示在cli上面。

项目实现

我主要负责维护开发这个改造的dhcp程序,添加了dhcp redundancy,优化了老化机制,用epoll替代select,新写一个dhcpwrap程序

示例图片

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论