所以我有三个虚拟机(虚拟盒)。
一是路由器/防火墙。它正在运行 snort + snortsam 。
这台机器在 tomcat 中运行一个 web 应用程序
我正在尝试从这台机器访问机器 2 上的 webapp。
机器 1 和 2 通过内部网络连接。机器 1 和 3 相同。
我想从机器 3 访问机器 2 webapp,但我无法做到这一点。
到目前为止,我在机器 1 上有这样的 iptables 配置:
iptables -A forward -p tcp -d <machine_2_ip> --dport http -j ACCEPT
iptables -A forward -p tcp -d <machine_2_ip> --dport https -j ACCEPT
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
我在机器 1 上使用 tcpdump 得到的信息是:
ARP, Request who-has <machine_2_ip> tell <machine_3_ip>, length 46
谁能帮我这个?
感谢您的关注。
编辑v2
编辑v3
因此,解决方案是在 M1 和 M3 上添加默认网关,并且它有效,但并不总是有效。有时我的 iptables 看起来像这样:
但事实并非如此。仅当显示:目的地 -> 192.136.200.3 而不是 cpe-192 时才有效...有谁知道如何解决此问题?
答案1
该 ARP 请求意味着 M3 错误地认为 M2 位于同一子网中,而不是位于网关 M1 后面。
几乎可以肯定,这是以下两件事之一:
- (至少)M3 上的子网掩码是错误的。
- 你配置了一些无意义的东西;例如,您在 M1/M3 和 M1/M2 网络上使用了相同的子网。
这很奇怪,因为您的图表显示了应该有效的内容,但我很确定该图表并未反映您实际配置的内容。通过检查所有三个(虚拟)框ip addr ls
和来确认ip route ls
。