Ifconfig DHCP 分配的别名地址

Ifconfig DHCP 分配的别名地址

我想为 eth0 创建多个别名,但地址由 DHCP 分配,而不是设置为静态 IP。这可能吗?

我见过的所有示例都使用以下命令分配静态 IP:

ifconfig eth0:0 192.168.1.11 up

谢谢

答案1

iproute2 有一个记录不太清楚的功能,它允许创建额外的虚拟网络接口,并为它们分配不同的 MAC 地址;然后您应该能够在每个接口上运行两个独立的 DHCP 客户端实例。

要创建虚拟接口,请执行以下操作

ip link add link eth0 name eth1 address 00:11:22:33:44:55 type macvlan

然后尝试运行 DHCP 客户端。

提出这样的要求是合理的为什么你想这样做。如果机器使用多个具有不同角色的地址,如果它们是动态的,机器将如何确定哪个地址用于哪个角色?

还要注意,带有后缀的 ifconfig 语法:0已被弃用;使用 iproute2,您可以简单地使用

ip addr add 10.0.0.1/24 dev eth0
ip addr add 10.0.0.2/24 dev eth0

依此类推,将多个地址分配给单个接口。

答案2

我不知道您到底想使用别名做什么,但是您可以通过创建具有多个虚拟接口(每个虚拟接口都有一个唯一的 mac 地址)的桥接接口,在一个物理接口上获得与 DHCP 一起工作的多个接口。

答案3

据我所知,这是不可能的。DHCP 根据 MA​​C 地址(和一些规则)分配地址,并且所有别名都基于同一个 MAC,因此 DHCP 服务器无法区分任何请求,因为它们都来自同一个 MAC。除此之外,一旦设置了基本 IP 地址,您将很难说服 DHCP 客户端它需要另一个地址。

答案4

我认为这可能是可取的,原因之一是:动态网络地址转换。这不是您通常想到的普通 Linux 伪装类型的端口地址转换,而是按需将一系列真实地址动态映射到需要使用它们的内部主机。

如果您使用动态 NAT,则无需将某些端口静态映射到单个主机。例如,如果我在私有网络中的多台计算机上运行魔兽世界更新程序,通过无处不在的端口地址转换(伪装),只有一个计算机能够参与它所做的类似 bittorrent 的共享,因为您只能将一个外部 IP 地址上的暴露端口映射到单个内部地址。但是,如果您有一个可以动态分配以进行完整地址转换的地址列表,则无需进行任何端口映射。由于许多有线电视提供商不允许您获得一系列 IP 地址的静态分配,因此您不得不使用 DHCP 请求每个地址,然后将这些地址动态 NAT 为内部地址。使用单独的物理接口进行动态 NAT 会很浪费,因为您真正需要的只是同一接口上的更多 MAC 地址。

有一件事此链接指出您不能在 macvlan 虚拟接口的父物理接口上使用 dhcp,因为这会混淆 dhcp。我还没有尝试过这些,实际上我非常想尝试使用 macvlan 接口在我的 cablemodem 上使用 dhcp,正如 @b0fh 和 @lars-bailey 所建议的那样。

相关内容