工作记录- 移植BGP md5支持到linux 2.6.16

需求

客户需要BGP协议支持MD5加密这种安全性,所以需要实现IPv6两种协议的支持,然而标准内核在2.6.20才支持这个功能,所以,我们的活儿来了。

移植

参考Linux-2.6.20 将这个setsocketopt的操作抽象为回调函数,这样方便同时支持两种协议。
然后就参照实现,自己添加喽,计算md5的方式参考IPv4实现,其他的参考新的内核实现。

问题

由于对IPv6 md5使用的不熟悉,测试的同仁也不知道怎么测试,又产生了一大堆问题,后来总结出来就是,默认IPv4的不加密都是开启的,除非强制指定,ipv6相关则需要指定协议,指定加密,两端协商一致才可以。和Cisco联调才没有问题。

总结

不管是哪种情况,自己测试应该全面,和不同设备联调保证兼容性很重要。

你可能感兴趣的:(Problem,KnowHow,Linux)