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

如何在虚拟接口(即 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?

答案1

您实际上无法做到这一点。您的卡只有一个 MAC 地址,但有多个 IP 接口。它们需要静态分配地址。

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

DHCPOFFER 的问题在于,从第 2 层的角度来看,这两个“设备”(eth0eth0:1)是无法区分的,因此(从第 3 层的角度来看)DHCPOFFER 的目标地址是 255.255.255.255(因为eth0:1还没有 IP 地址)。

您可以使用 VLAN 来解决这个问题。VLAN 允许您使用同一个物理广播域,并将其视为多个“虚拟”广播域(因此得名)。

相关内容