在几台Linux远程主机上,我想测试相应的远程DHCP服务器(这些服务器位于不同的主机上,我无权访问它们)。
我使用 ssh 连接到这些主机,并且不想重新启动它们,也不想修改 eth0 配置。
我知道如何获取一些基本的 DHCP 信息:nmap --script broadcast-dhcp-discover
这提供了一些非常有用的信息。但我们处理的是有缺陷的 DHCP 服务器,所以我想设置一个“真正的”网络接口来长期测试它们。
如果我使用网络接口 eth0:1 则 dhclient 拒绝执行该工作:
ip addr add 192.168.0.123/24 label eth0:1 dev eth0
dhclient -v eth0:1
# --> dhclient displays: Bind socket to interface: No such device
然后我尝试创建一个虚拟网络接口并桥接它。但这会修改 eth0 的配置,这是不需要的:
ip link add br0 type bridge # create a bridge
# in one line, so the ssh connection is not lost (can additionnaly be wise
# to use "screen" but I currently do the tests on a local computer):
ip addr del 192.168.0.30/24 dev eth0; \
ip addr add 192.168.0.30/24 dev br0; \
ip link set dev eth0 master br0; \
ip link set dev br0 up
modprobe dummy # create dummy0
ip link set dev dummy0 master br0
现在我可以为 eth0 租用 DHCP:dhclient -v eth0
效果很好。
但dhclient -v dummy0
永远不会获得任何 DHCP 租约(不显示错误)。
--> 如何创建一个正确桥接到物理网络的网络接口,而不接触 eth0(使 eth0 成为网桥一部分的装置)?