在Linux中是否有像'route'这样的工具来configuration转发条目(dst mac address – > interface)

我在configurationLinux中的转发表时遇到问题。
我们在第3层调用IP表,在第2层调用转发表的MAC表。
现在我想在转发表中添加一个条目。 我知道可以使用tool route命令在路由表中添加路由条目,如:

#[root]#route add -net 192.168.10.0 netmask 255.255.255.0 dev eth0

那么,有没有像'路线'这样的工具可以让我在转发表中添加条目,如:

#[root]#'command name'add 01:02:03:04:05:06 dev eth1

我所需要的只是如何将目标MAC地址绑定到一个固定的networking接口?!


谢谢你们所有人的回复。 现在看来我没有清楚地介绍自己的目标,所以大部分人都在想我的要求。 我们正在进行一个数据中心networking实验,主要关注交换机的转发表大小。 在这种情况下,它是一个胖树拓扑,另一个研究小组已经开发了一种新的寻址和路由方法,可以保证两个属性:多path和小转发表大小。 在这里,我们将第二层表称为转发表,因为它与思科的呼叫是相同的。 这个networking中有一个控制器,所以所有的转发表都可以通过这个控制器的工作来获得。 实验现在正在烦恼如何编写从控制器到交换机的转发表。 这意味着,如何编写条目,如MAC_ADDR —> OUTPUT INTERFACE 。 请注意,这个networking就像一个很大的“局域网”,不需要做IP路由。

你应该可以使用'arp'工具来做到这一点。

arp -i eth0 -s

在Linux上,您应该始终使用ip命令更改networkingconfiguration。 route命令在那里,但不能访问所有的Linux路由function。 现在,MAC转发通常被称为桥接,您可以使用brctl工具。 但是从这个问题来看,如何使用MAC地址还不是很清楚。

首先,几点意见。 路由是find方向的过程。 通过转发TCP / IP数据包称为转发 。 这就是为什么有叫做net.ipv4.ip_forward sysctl和名为FORWARD netfilter的链。 有dynamic和静态路由,我应该添加。 什么切换称为(惊喜) 切换

OSI的第二级交换机使用MAC_Dest-PortNum对应表只是因为这些端口是第二级 – 这足以将以太网帧切换到特定的端口(或在没有特定表项的情况下广播)。

Linux的networking接口不仅仅是交换端口,它们是接口 。 TCP / IP包(数据报)的转发包括查找(在路由表caching内)相应的输出接口。 而我从来没有听说过任何有关Linux支持切换的内容

结论 :如果你想通过Linux系统find数据包,你必须使用路由表。 你可以使用arptables / ebtables / iptables来对这些数据包进行一些欺骗,但是由于你没有描述为什么你需要它,所以你的目标是否能够实现以及如何实现尚不清楚。

尽我所知,您要告诉内核,发往特定MAC的以太网帧应该被传送到特定的接口。 但是,这应该自动完成。 只要你的两个接口桥接在一起,以太网帧将穿过桥梁,并find他们的目的地就好了。 当然,您必须遵守某些准则,包括在networking上的多个点之间没有太多的切换。

如果您已经将系统作为网桥运行,并且您的以太网帧未到达正确的位置,则可能是networking中存在错误; 你需要仔细检查一下,确保你的networking连线没有任何环路,等等。

如果你有一个更大的networking,那么IP子网就是要走的路。 这样你就可以运行完整的路由器,以任何需要移动的方式移动第三层数据包。 一般来说,你会希望在第二层使用巧妙的技巧进行IP子网划分。除非你使用它们作为日志logging的关键字,否则你不需要使用MAC地址。 你当然不希望任何安全的基础上,因为MAC地址很容易被欺骗/克隆。