独立主机面临的困境是它们只有一个活动的网络设备,即环回设备,通常分配的地址是 127.0.0.1。然而,在某些情况下,您需要将数据发送到本地主机的“官方” IP 地址。例如,考虑笔记本电脑 vlite,在本例中,它已与任何网络断开连接。vlite 上的应用程序现在可能想要将一些数据发送到同一主机上的另一个应用程序。在 /etc/hosts 中查找 vlite 会得到 IP 地址 191.72.1.65,因此应用程序尝试发送到此地址。由于环回接口当前是机器上唯一活动的接口,内核不知道此地址实际上指向自身!结果,内核丢弃了数据报,并向应用程序返回错误。
这就是虚拟设备介入的地方。它通过简单地充当环回接口的另一个自我来解决困境。在 vlite 的情况下,您只需为其分配地址 191.72.1.65 并添加指向它的主机路由。然后,每个发往 191.72.1.65 的数据报都将在本地交付。正确的调用方式是
# ifconfig dummy vlite # route add vlite安德鲁·安德森