以太网环回插件 - 运行 ping

J. *_*fer 4 linux tcpip ethernet testing ping

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

Ex:  ping -I AddressA AddressB
Run Code Online (Sandbox Code Playgroud)

这甚至可能吗?

此外,是否有可用的测试可以使用环回插头仅在 L2/MAC 地址级别上测试以太网接口?如果我还记得,RealTek 为他们的 8139 以太网适配器提供了一个诊断工具,该工具执行了各种 L2 环回测试,我想知道是否有一个 linux 工具可以执行相同的操作。

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

Mar*_* M. 5

当然 :)

# 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
Run Code Online (Sandbox Code Playgroud)

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

我不确定 L2 是否真的可以工作,但是ip neigh你应该也可以修改 arp 缓存(对于简单的来说太多了)

  • 这些 ping 真的会连接到线路上,还是机器的 IP 堆栈会意识到目标 IP 是同一接口上的另一个地址并在内部生成响应? (2认同)