以太网环回插件 - 运行 ping

以太网环回插件 - 运行 ping

对于工作中的一个项目,我需要能够通过将各种以太网网卡连接到“环回适配器插头”来测试它们,例如这个在从生产装配线上下来的各种嵌入式 Linux 机箱上。我希望能够在一个以太网接口上设置两个不同的 IP 地址(地址 A 和地址 B),然后从地址 A 运行到地址 B 的 ping。

Ex:  ping -I AddressA AddressB

这可能吗?

另外,是否有可用的测试,可以使用环回插头在 L2/MAC 地址级别上单独测试以太网接口?如果我没记错的话,RealTek 有一个针对其 8139 以太网适配器的诊断工具,可以执行某种仅 L2 的环回测试,我想知道是否有一个 Linux 工具可以执行相同的操作。

更新: 在上面的评论中添加了关于我为什么要测试这些盒子的评论。这个周末我必须尝试一下这些想法,看看会发生什么。也许我会用一个 keystone 插孔 + 一些从五金店买来的电线制作我自己的“环回适配器插头”,并尝试看看我是否可以使用示波器或逻辑分析仪查看信号,以确保信号确实到达了电线。由于这似乎比预期的要难,我们工作团队决定通过拿起一个小型家用 NAT 路由器,然后 ping 路由器,并将其放入硬件测试装置中,来测试 Linux boxen 以太网端口。不过,我对这方面的技术方面很感兴趣,想自己试验一下这个主题。

答案1

一定 :)

# ip address list dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:1e:4f:9b:4a:ab brd ff:ff:ff:ff:ff:ff
    inet 10.10.141.83/24 brd 10.10.141.255 scope global eth0
    inet6 fe80::21e:4fff:fe9b:4aab/64 scope link 
       valid_lft forever preferred_lft forever
# ip address add 10.10.141.253/24 dev eth0
# ip address list dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:1e:4f:9b:4a:ab brd ff:ff:ff:ff:ff:ff
    inet 10.10.141.83/24 brd 10.10.141.255 scope global eth0
    inet 10.10.141.253/24 scope global eth0
    inet6 fe80::21e:4fff:fe9b:4aab/64 scope link 
       valid_lft forever preferred_lft forever
# ping -I 10.10.141.83 10.10.141.253
PING 10.10.141.253 (10.10.141.253) from 10.10.141.83 : 56(84) bytes of data.
64 bytes from 10.10.141.253: icmp_seq=1 ttl=64 time=0.050 ms
64 bytes from 10.10.141.253: icmp_seq=2 ttl=64 time=0.034 ms
64 bytes from 10.10.141.253: icmp_seq=3 ttl=64 time=0.038 ms
^C
--- 10.10.141.253 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1999ms
rtt min/avg/max/mdev = 0.034/0.040/0.050/0.010 ms
# ip address delete 10.10.141.253/24 dev eth0
# ping -I 10.10.141.83 10.10.141.253
PING 10.10.141.253 (10.10.141.253) from 10.10.141.83 : 56(84) bytes of data.
From 10.10.141.83 icmp_seq=1 Destination Host Unreachable
From 10.10.141.83 icmp_seq=2 Destination Host Unreachable
From 10.10.141.83 icmp_seq=3 Destination Host Unreachable
^C
--- 10.10.141.253 ping statistics ---
4 packets transmitted, 0 received, +3 errors, 100% packet loss, time 3016ms

其实非常简单。:)(只是开玩笑,如果你已经知道了,它总是很简单)

我不确定 L2 是否真的有效,但ip neigh你也可以修改 arp 缓存(非常简单)

答案2

你可能会发现阿尔平更有可能遇到网络问题,因为它使用了 arp,因此完全避免了 IP 堆栈。

答案3

在这种情况下,信号是否真的“到达线路”值得怀疑。由于设备将看到它已将两个 IP 地址分配给一个接口,因此所有 MAC 查找/路由(如果两个接口位于不同的子网中)都将在系统本身中进行,并且永远不会到达物理接口。

环回连接器可用于欺骗盒子将接口视为“启动”,以便您可以进行此测试,但只需使用普通电缆和备用交换机端口就可以完成同样的事情。

相反,如果您的意思是将在同一个盒子中将 eth0 连接到 eth1,那么您只需使用交叉电缆即可,但可能会发生与上述相同的事情。

以太网环回插头: http://www.tikkiweb.net/loopback

答案4

我做了一些研究,发现了这个关于将以太网信号转换为光并在环回配置中测试的页面: http://ronja.twibright.com/testing/ploss_tetrapolis_ping.php

不幸的是,这不是真正的 ping,因为您在 Wireshark/tcpdump 中只会看到两次相同的 ICMP 数据包。但它确实保证信号到达线路。

相关内容