我看了一下iproute2,但是我没有找到任何方法将每个数据包传递给外部程序,或者以某种方式为每个数据包动态选择路由.
所以问题是:最好的方法是什么?是否已经有朝这个方向发展的工具,或者我应该依靠自己制作的东西,并通过linux标准工具传递数据包?
解决方法 Netfilter(iptables)有 queue module将帧发送到用户空间程序.可以使用不同语言的库( c,python,perl等)来检查数据包.处理完帧后,您将返回ACCEPT或DROP判定,原始或修改的帧以及设置标记的选项.我猜你可以使用标记在netfilter链的其余部分以不同方式处理这个数据包,并更改路由标记以选择特定的路由表.
这将是一个比非常低级别的设备处理更优雅的解决方案,但可能是性能问题,具体取决于您的用户空间实现的选择.
我在另一个项目中使用它来修改来自损坏的客户端的传入DHCP帧但从未使用过该标记.
总结以上是内存溢出为你收集整理的linux – 使用外部程序进行高级动态路由全部内容,希望文章能够帮你解决linux – 使用外部程序进行高级动态路由所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)