没有MAC地址即可到达目的地


0

有我的网络架构

在此处输入图片说明

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年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.