如何将复制的数据包路由到第二个接口?

如何将复制的数据包路由到第二个接口?

我有两个运行 CentOS 7 的 AWS 实例,A 和 B,我需要将所有复制的数据包从 A 发送到 B 上的第二个接口 ( eth1)。我已设置 IPTables 来复制和发送数据包:

iptables -t mangle -A PREROUTING -i eth0 -j TEE --gateway 10.0.3.101

我可以使用以下方法查看数据包的增量:

iptables -t mangle -L -n -v

我能够互相 ping 两个接口。路由设置如下:

default via 10.0.3.1 dev eth1 table 100
10.0.3.100 dev eth1 table 100

规则设定如下:

from 10.0.3.100 lookup table 100
to 10.0.3.101 lookup table 100

当我对 eth1 执行 tcpdump 时,我仅收到 ARP 请求和回复。当我从 ping10.0.3.100到 时10.0.3.101,我可以看到 ICMP 数据包。

源/目标检查已禁用。ip_forward在两个实例上均已启用。

如果在同一子网中的实例上设置单个接口,我可以看到复制的数据包。如果在两个不同的子网中设置具有两个接口的实例,我看不到任何复制的数据包,但我可以在两个实例上看到对它们的 ping 和响应。

  • 实例 A 位于eth010.0.3.100子网10.0.3.0/24)。
  • 实例 B 在10.0.4.100(子网) 上有 eth0,在(子网)10.0.4.0/24上有 eth1 。10.0.3.10110.0.3.1/24
  • 我正在尝试将复制的数据包从 发送10.0.3.10010.0.3.101

答案1

由于这是在 AWS 上,因此我没有禁用第二个接口上的源和目标检查。更正后,它就起作用了。

相关内容