作为Linux管理员,您已经安装了一个带有6个NIC eth0到eth5的新linux盒子.
eth0接口配置正确,所有其他接口当前处于up状态,但没有IP地址.网络人员只需将四根电缆连接到此盒子即可.两条LAN电缆用于将盒子连接到生产网络,两条用于将盒子连接到专用网络.您只知道eth0已连接到生产网络.但是您不知道哪个其他NIC连接到同一个交换机,因为有不同的服务器代和/或网络人员使用错误的NIC进行连接.
手头的任务
由于此设置是您的基础架构的典型设置,因此您希望自动配置绑定接口.现在您的任务是检测哪些NIC根本没有连接,哪些NIC链接到同一个交换机,以便它们可以绑定.您只能访问linux机器,无法查询交换机.
思路
检测链接状态很简单:
ethtool $device | grep 'link detected' | cut -d ':' -f 2
但是如何匹配连接到同一交换机的设备?
在HP-UX中,有一个名为linkloop [1]的工具.缺少官方的linux工具(虽然有一个旧的SourceForce项目).
我已经想到的可能的解决方案是:
>使用tcpdump监听所有接口.制作并发送ICMP(广播)数据包.看到该数据包的接口需要连接到同一个交换机. – >需要提供可能用于此的简单工具的建议.我想使用普通的shell命令或Python来编写脚本.
>尝试通过一些简单的协议(http?)与外部盒子通话,看看是否有响应. – >容易出错并且依赖于外部盒子.
您是否有进一步的想法或建议如何解决此任务?
提前感谢您的所有评论!
[1] http://linux.die.net/man/1/linkloop
解决方法 交换机可能已经在向您发送所需信息.如果它们是Cisco交换机,则默认情况下它们将使用称为CDP(思科发现协议)的进程,该进程将为您提供有关其所连接的交换机的信息.您可以使用tcpdump查看以下信息(替换相应的接口):
tcpdump -nn -v -i eth0 -s 1500 -c 1 'ether[20:2] == 0x2000'
基于标准的CDP版本是LLDP(链路层发现协议).一些供应商默认启用此功能,其他供应商关闭,因此您的里程会有所不同. linux有一些LLDP实现,但是如果你想要类似于上面的东西,你可以使用它(在Cisco交换机上设置LLDP并测试下面的内容,这与上面的更一致):
tcpdump -nn -v -i eth0 -s 1500 -c 1 'ether proto 0x88cc'
除此之外,我会说您提供的选项1的修改可能有效,但是,您可以尝试普通的ICMP(不是ARP表中的主机)并捕获ARP数据包,而不是发送广播ICMP.如果ARP请求发送到eth0并且您在eth1和eth3上收到它,那么您知道它们在同一VLAN上.最简单的命令如下:
tcpdump -i eth0 arp总结
以上是内存溢出为你收集整理的如何识别从Linux机箱连接到同一交换机的NIC?全部内容,希望文章能够帮你解决如何识别从Linux机箱连接到同一交换机的NIC?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)