如何在虚拟接口(即eth0:1)上请求dhcp(使用dhclient)

这似乎工作正常:

dhclient eth0 ifconfig eth0:1 192.168.1.105 up 

但不是这样的:

 ifconfig eth0 192.168.1.105 up dhclient eth0:1 

有什么办法让一个虚拟地址DHCP

你不能这样做。 您的卡只有一个MAC地址,但有多个IP接口。 他们将需要静态分配他们的地址。

当DHCP服务器发回DHCPOFFER时,它如何传送到eth0:1而不是eth0eth0:1通过广播发出DHCPDISCOVER或DHCPREQUEST。 DHCP服务器响应DHCPOFFER通知客户端其IP地址。 但是,如果eth0:1还没有IP地址,DHCPOFFER将如何到达? DHCP服务器广播回去,并依靠链路层将正确的以太网帧(堆叠在其上的其他相关层)传送到正确的MAC地址。 现在你的设备有一个IP地址。

DHCPOFFER的问题是,从第二层的angular度来看,两个“设备”( eth0eth0:1 )是难以区分的,所以(从第三层的angular度来看)DHCPOFFER的目的地址为255.255.255.255(因为eth0:1还没有IP地址)。

你可以通过使用VLAN来解决这个问题。 VLAN将允许您采取相同的物理广播域,并将其视为多个“虚拟”广播域(因此名称)。