我有一个关于 Linux netfilter/iptables 交互的具体问题。假设我有一个 IP 数据包 P1 位于另一个 IP 数据包 P2 中(也就是说,P1 是通过隧道传输的)。
现在的问题是:是否可以检查“外部”数据包 P2 的特定头字段(例如 MAC 源地址),然后根据某个 iptables 链将“内部”数据包 P1 发送到某个 iptables 链?检查的领域?
举个小例子:假设我在 FORWARD 表中有 3 个链,C1 到 C3。现在,如果 P2 的 MAC 源地址值为 17,我想将“内部”数据包 P1 发送到 C1。如果MAC源地址是28,我想将P1发送到C2。否则,我想将 P2 发送到 C3。
我绝对不确定是否可以在 iptables 中这样做。也许这也可以通过将一些 C 代码挂钩到特定的 netfilter 挂钩来实现。
我知道这是某种奇怪的用例,但我只是很好奇。
提前致谢!