2

不知道我做错了什么。我有两台机器使用这个 ebtable 规则设置背靠背连接:

ebtables -A OUTPUT -p ARP --arp-op Request --nflog-group 100 -j DROP

我有一个监听 netlink 组 100 的进程。我在两台机器上都有以下设置,/etc/network/interface让我们称之为peer1

auto e101-001-0 iface e101-001-0 inet manual auto bond100 iface bond100 inet manual bond-slaves e101-001-0 bond-mode 4 bond-miimon 100 iface bond100.100 inet manual vlan-raw-device bond100 auto br100 iface br100 inet static bridge_ports bond100.100 address 10.1.1.1 netmask 255.255.255.0

peer2具有相同的设置,只是 ip 地址是10.1.1.2. 当我尝试从peer1peer2发送 ping 时,我无法到达目的地。使用arp -n我看到它没有解决。我使用 tcpdump 并看到 ARP 请求是在peer1网桥上发出的,但 peer2 在它的网桥上没有收到它。我知道有三种方法可以通过 ping:

  1. 擦除 peer1 上的 ebtable规则
  2. 不要使用桥梁。如果我只是在物理接口之间 ping,这很好用。
  3. 将此行添加到上面的 etable 规则中:--nflog-range 32. 我可以低至 22,它仍然可以工作。它在 17 点左右开始失败。

任何低于 32 的值似乎都会使其停止工作。我的问题是:

  1. 如果未明确设置,是否有默认的 nflog 范围大小?
  2. 是否有影响 nflog-range 大小的内核配置?

我知道这一切都是内核的一部分,所以如果有帮助,我将使用默认的 Debian Stretch 内核(Debian 4.9.110-3+deb9u4)(没有特殊的内核配置)。peer2在修改过的内核上运行并且已知可以正常工作。如果我有两个与peer2具有相同规格的系统,则一切正常,这使我相信这可能是内核配置问题。

谢谢阅读。

4

0 回答 0