花了一个周末,两天一夜,把OpenVPN数据通道移植进了Linux内核。今天小小生病,没去上班,晚上正好总结一下,因为TODO的事情实在太多,又
到年底了,公司家里的事情实在太多,可能没有多少时间让我这么折腾了。回到家里应该把时间全部留给我可爱的小小,路上的时间要留给那本厚厚的GEB...
总之,没时间折腾VPN了。
OpenVPN内核版留下了一堆的TODO,作为一个储备,等到真的用到的时候再完善吧。TODO列表如下:
1.OpenVPN进程和内核之间的event接口
这
个event接口实在重要,因为诸如keepalive/ping/ping-restart...都要使用。内核需要为一个
multi_instance维护一个流量计数器,并保留上一次收到数据包的时间,这样用户态可以按照定时器的设置来查询,从而触发ping-
restart...
2.优化控制通道
数据通道不再被OpenVPN进程处理,OpenVPN进程完全留给了控制通道,因此便可以做更多的事了,肢解是一种会带来快感的艺术。
3.内核态需要一个强大且通用的类似OpenSSL EVP操作集
我本来准备参考PolarSSL的,也就是说将PolarSSL的部分接口在内核重实现的,我觉得这花不了太多的时间,但是毕竟不是没有时间么..1000块钱不多,但就是没有。
4.短路操作是否可以更短些
我用一个ioctl命令将一个UDP socket和tun网卡LINK在一起(短接在一起),这真的是名副其实的短路啊,完全绕过了OpenVPN这个巨大电阻!!但是能都更短些呢?
5.TODO
...
突然觉得〈亡灵序曲〉很好听,特别是死亡金属版本的,是不是该去殴两盘魔兽了啊...
时间: 2024-10-25 05:45:08