我得到以下方案:
/-----\
------------- ( ISP )
+---------+ / \-----/
| 0 --/ +---------+
| gateway 1 ---------- |L2 switch| --- ~5-10 clients
| 2 --\ +---------+
+---------+ \ +--------+
--- |Blackbox|
+--------+
0、1 和 2 位数字代表 eth? 索引。
网关为 10.0.1.1/24,它通过 dnsmasq 提供 DHCP 和 DNS 服务。它使用 iptables 伪装为客户端提供外部世界访问。
客户端是10.0.1.x的机器,分别从网关获取IP,这是一个混合OS的环境。
问题在于“Blackbox”主机,它包含一些我无法满足的要求: - 它必须连接到网关的 eth2 - 它应该能够通过 DHCP 获取 IP - 它应该可以从网关访问 - 它应该可以从客户端主机访问,而无需在每台机器上手动添加路由
为什么是“黑匣子”?我对它的工作原理一无所知,也无法使用它。
我目前正尝试为 Blackbox 提供来自同一 10.0.1.0/24 子网的 IP,但网关上的默认路由指向 eth1 设备,因此我被迫添加一条静态路由,例如:
ip r add 10.0.1.${blkbx} dev eth2
它使 Blackbox 可以从网关访问,但客户端看不到它。它们甚至无法到达网关,traceroute 显示在第一跳就失败了。
您能否提出一个简单且清晰的方案来完成这项任务?您能否描述一下,eth2 是否应该具有来自同一子网的 IP?我是否应该提供来自同一子网的 Blackbox IP 以避免设置任何新路由?我是否应该桥接 eth1 和 eth2?
我拥有网关主机的 root 访问权限,可以添加/删除路由、管理网关 IP 和 DHCP 租约。当然,如果您有任何问题,我随时准备回答您的问题。
尝试了几个小时才打败它,但至今没有成功。:(
答案1
我目前正尝试为 Blackbox 提供来自同一 10.0.1.0/24 子网的 IP
请不要为 eth2 分配相同的子网。实际上,您的 Linux 服务器(网关)充当路由器。在物理路由器(Cisco)上不允许在不同的接口上分配相同的子网。这称为重叠。
你需要在 eth2 上分配不同的子网,例如 10.0.2.0/24。另外,你还需要修改 DHCP 和 iptables 的配置,以便黑盒能够获取 IP 地址,并且从黑盒到互联网的流量可以正确进行 NAT。
希望这可以帮助。