如何解决用于修改mac地址的netfilter模块
我正在尝试通过 netfilter 模块修改传出数据包的源 mac 地址,该模块基本上是 netfilter 的路由后链的钩子。而这些修改后的数据包永远不会基于 tcpdump 发送出去。
有什么问题吗?
基本上下面是这个模块的代码片段,在hdr_modify函数中,我只是试图改变数据包的源mac:
122 if (ip_header->protocol != IPPROTO_TCP) {
123 return NF_ACCEPT;
124 }
125 tcp_header = (struct tcphdr*)((unsigned char *)ip_header + (ip_header->ihl << 2));
126
127 if (ip_header->saddr == in_aton(ip_mark) && ntohs(tcp_header->source) == src_port) {
128 printk("from Post Routing.");
129 printk("src IP:'"NIPQUAD_FMT"',dst IP:'"NIPQUAD_FMT"',src port: %u\n",130 NIPQUAD(ip_header->saddr),NIPQUAD(ip_header->daddr),src_port);
131 hdr_modify(eth_header);
132 hdr_dump(eth_header);
133 dev_queue_xmit(skb);
134 return NF_STOLEN;
135 }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。