linux - 修复内核丢弃来自外部网络的数据包

标签 linux networking libpcap

<分区>

我有以下配置:

我有一台机器(我称之为 1)有两个接口(interface),eth0 是外部接口(interface),拥有一个关联的 IP 地址,比方说网络 A,eth1 没有 IP 地址和嗅探网络 B 中的数据包使用 pcap。我的问题是我想将数据包从 eth0 发送到网络 B 内的一台机器(假设为 2)。

为此,我在 1 中添加了一个路由条目,其中包含到 2 (eth1) 的接口(interface)、2 的 IP 和 GW。

在我这样做之后,使用 wireshark 我可以在 2 中看到 UDP 数据包,但看起来内核没有将数据包转发给应用程序。我检查了字段,dest mac、port 和 dest Ip 是正确的,源 ip 和 mach 是来自 eth0 的,这也是正确的,因为 eth1 没有 IP。没有防火墙或 iptables 规则(一切都是默认设置),欺骗检查被禁用,在 iptables 输入中我可以看到计数器在每次数据包之一到达 2 时递增。

其他信息:两台机器都是ubuntu 14.02

最佳答案

我们软件的一项功能破坏了通信。一般在没有不规范的iptables规则或防火墙的情况下,增加一个arp表项就可以解决这类问题。

关于linux - 修复内核丢弃来自外部网络的数据包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38226932/

相关文章:

linux - Linux 上的 Blobfuse 与 Azure - 如何在 Azure 上创建 tmp-path

c - 有没有办法用 C ping 一个特定的 IP 地址?

linux - 如果使用 shell 脚本目录已存在,如何避免 mkdir?

ios - 如何以编程方式检测 iPhone 中的 EDGE 网络或不良网络?

php - 创建PHP P2P游戏客户端跟踪器

c - 为什么 pcap_loop() 和获取数据包之间有很长的延迟?

c - 缺少编译示例应用程序所需的 libpcap(-dev) 库

java - 实现 Arp 扫描

c - 写入 .txt 文件?

linux - 在多个内核上运行进程