这似乎工作正常:
dhclient eth0
ifconfig eth0:1 192.168.1.105 up
但不是这个:
ifconfig eth0 192.168.1.105 up
dhclient eth0:1
有没有什么办法可以在虚拟地址上获取 dhcp?
答案1
您实际上无法做到这一点。您的卡只有一个 MAC 地址,但有多个 IP 接口。它们需要静态分配地址。
当 DHCP 服务器发回 DHCPOFFER 时,它是如何传递到的?eth0:1
而不是传递到eth0
?eth0:1
通过广播发出 DHCPDISCOVER 或 DHCPREQUEST。DHCP 服务器以 DHCPOFFER 响应,以通知客户端其 IP 地址。但如果eth0:1
还没有 IP 地址,DHCPOFFER 将如何到达?DHCP 服务器广播回来并依靠链路层将以太网帧(其上堆叠了其他相关层)正确地传送到正确的 MAC 地址。现在您的设备有一个 IP 地址。
DHCPOFFER 的问题在于,从第 2 层的角度来看,这两个“设备”(eth0
和eth0:1
)是无法区分的,因此(从第 3 层的角度来看)DHCPOFFER 的目标地址是 255.255.255.255(因为eth0:1
还没有 IP 地址)。
您可以使用 VLAN 来解决这个问题。VLAN 允许您使用同一个物理广播域,并将其视为多个“虚拟”广播域(因此得名)。