iPtables的替代方案
Alternatives for iptables?
我正在开发一个应用程序,其中我严重依赖iptables
来路由流量。我只是通过调用iptables
作为我的应用程序的外部过程来设置表。
我想知道是否有一种直接与iptables依赖的内核模块(NetFilter)进行交谈的方法
欢迎其他路由解决方案的建议。
我认为NetFilter没有任何问题。您可以在任何NetFilter Hooks上绑定回调,并且内核将在Hook Event上调用您的回调。您正在通过nf_register_hook
进行此操作。您甚至可以跟踪Conntrack
示例在这里。
有关官方文档上黑客攻击的更多信息
如果我的理解是正确的,则要求使用一个用于配置Iptables的程序性接口。不幸的是,iptables(libiptc)没有给出用于配置或查询它们的API接口,在堆栈中的方式太低。
我可以建议的一种替代方案是内核IP集。IPSET实际上是iPtables的扩展名,它允许创建一次匹配整个地址集的规则。iptables在IP集存储在索引数据结构中的情况下是线性遍历的。这使其非常有效。
https://packages.debian.org/sid/net/ipset
这可能不是您问题的直接答案,但希望它会有所帮助。
相关文章:
- 运行同一解决方案的另一个项目的项目
- Project Euler问题4的错误解决方案
- 计算每个节点的树高,帮助我解释这个代码解决方案
- C++:Application.cpp中抛出了未解析的外部符号(解决方案在问题的末尾,供未来的读者参考)
- visual c++,如何获取解决方案目录中的代码
- 有没有办法在远程设备上打开和编辑visual Studio 2017解决方案
- C++Matching Brackets 2解决方案不起作用
- 在 ubuntu3 上C++ goto 定义有什么解决方案吗16.04?
- C++11 中不同类型的对象的 std::array 的替代方案
- 在 leetcode 上提交解决方案时出现堆栈缓冲区溢出错误
- 别名模板的专业化 C++11 中没有开销的最佳替代方案
- 我的固定时间步长与增量时间和插值的解决方案是错误的吗?
- 无法在问题解决方案中执行输出逻辑
- 最大的回文产品 - 程序未运行,编写解决方案但无法理解问题
- 从预序遍历构造 bst 的 c++ 和 python 解决方案之间的区别
- 在一个解决方案中针对第三方静态库 (Creo) 的不同版本(版本)进行构建
- 如何巧妙地编写两个函数——一个用于检查是否存在解决方案,另一个用于获取所有解决方案
- 使用 Git 处理 C++ Visual Studio 2019 解决方案的外部依赖项源代码管理的最佳方法是什么?
- N-queen问题:无法弄清楚为什么我的解决方案不起作用
- iPtables的替代方案