有我的网络架构
RED2和BLUE2之间的连接类似于“二极管”。它是硬件,这使我只能与一个方向进行通信-从BLUE2到RED2。我想将数据从BLUE1发送到RED1。
所有PC上都安装了Linux(opensuse飞跃)。
这是我的第一个可行的解决方案
BLUE2:
sysctl -w net.ipv4.ip_forward=1
arp -s 4.4.4.2 A:B:C:D:E:F
iptables -t nat -A PREROUTING -d 1.1.1.1 -j DNAT --to-destination 4.4.4.2
(A:B:C:D:E:F是RED1的MAC地址)
(静态arp输入是必需的,因为arp请求由于二极管不起作用)
RED1:
sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A PREROUTING -d 4.4.4.2 -j DNAT --to-destination 2.2.2.2
ip r a default via 4.4.4.1 (or ip r a default dev eth0)
一切正常,并且可以正常工作。但是我需要一些没有静态arp条目的解决方案。
我的第一个想法是使用广播。但是广播不允许路由-因此无法使用。
第二个想法-多播。但是iptables不允许将单播地址转换为多播地址。我发现了这个,尝试像示例一样在BLUE2上进行设置,但是不起作用。
有人知道吗 谢谢
您知道几乎所有IP协议,特别是TCP(ACK数据包)都需要双向通信吗?您的“二极管”会引起各种各样的麻烦。
—
dirkt
感谢您的答复。是的我知道。但是“二极管”对我来说非常重要。这种模式在高度复杂的网络中只是很小的一部分,现在我正在寻找可能性。“二极管”的目的是使从RED2到BLUE2的任何东西都不能通过。
—
2ndChosenOne
通常,您将为此使用防火墙,而不是任何类型的“二极管”。如您所见,ARP数据包也需要双向通信。您无法使用该设置进行任何正常的联网。您可以尝试发送自定义的以太网数据包,但仅此而已,您必须发明自己的协议栈。
—
2010年