我有一个由控制PC,两层交换机和50个定制设备组成的系统。 个人电脑连续不断地将5.8MB /秒(6000个以太网帧/秒)stream送到设备。
我发现每个设备端点都可以看到所有这些stream量,而不仅仅是针对该设备的stream量。 这会导致设备上的固件窒息一点。
我为什么会这样发生的理论是:PC设置了静态ARP表。 设备发送数据的唯一时间是响应ICMP回应或ARP请求。 由于我们在正常操作期间没有ping设备,而且由于PC的ARP表是静态的(因此没有发出ARP请求),所以设备不会发送任何数据,交换机也不会学习它们的MAC地址。
问题1 :这个分析是否正确?
我必须解决这个问题。 有四个选项:
所以, 问题2 :scheme1是绝对正确的方法吗?
现在,选项1的问题是交换机是非托pipe的,我不能configuration它们。 为了使用选项1,我们需要用交换机replace交换机。 我相信从长远来看,这是值得的,但现在由于多种原因,这是不可行的。
我不想使用选项3或4,因为我希望此问题的解决scheme对于控制PC和各种其他原因是透明的(特别是选项4在此应用程序中有微妙但明显的性能问题,下面)。
所以我正在追求选项2。 我已经select修改每台设备上的固件,大约每30秒发送一次广播MAC目的地的免费ARP请求。 我select了ARP,因为它在概念上似乎是最合适的,尽pipe我也可以发送例如空白的以太网帧。 我select了广播目的地,希望数据包能够通过L2交换机并到达L1交换机,并使它们也更新表。
问题3:虽然这可能不是最正确的select,它会起作用吗? 定期从所有50个设备发送免费ARP请求会导致任何意想不到的副作用? 我不知道开关的凸轮表项是什么,我随便选了30秒。
问题4:我还没有考虑另一个select吗?
问题:由于无用的MAC表,以太网交换机会泛滥所有端口上的数据包,并且此stream量正在导致某些设备出现问题。
解决scheme:正如你已经想到的:产生一些stream量,所以MAC表build成。 一种方法是让networking监视程序ping每个设备。 这两个都将获得MAC表,并允许您检查某些设备是否有时从networking上脱落。
注意:删除了一个错误的答案,以获得有关ARP的sidetracked