如何用真实的接口名称创buildLinux虚拟networking接口(别名)?

我想用一个真实的networking接口名称(如eth1)创build一个Linux虚拟networking接口(通常标记为eth0:0)。

换句话说,我可以让eth0和eth1有不同的IP地址,但使用相同的物理networking接口吗?

可能吗? 怎么样?

我有一个传统的应用程序,期望两个物理networking接口(eth0和eth1),我想安装在只有一个物理networking接口的平台上。

你所描述的不是虚拟接口,这只是一种方式(传统方式,现在你使用iproute的ip addr )来为一个接口分配多个IP地址。 从技术上讲, eth0:0只是eth0

一种解决scheme是在您的主机(或QEmu或其他某种虚拟化工具)上安装XEN,并使用两个networking接口来安装虚拟机。 然后在你的虚拟机上安装你的软件。

另一个选项可能是在eth0上设置2个VLAN。 假设你决定使用VLAN 100和101,那么你可以设置你的传统软件来使用eth0.100和eth0.101。 请注意,您的stream量将被标记(802.1q)退出您的主机,这可能不是你想要的。 如果您的主机连接到路由器,它可能会取消标记数据包做适当的路由。

如果您不关心应用程序需要的networking接口之一(例如,需要它发送您不关心的日志数据),则只需创build一个VLAN(例如eth0.100),然后将你的软件指向eth0(实际有用的交通,无标记)和eth0.100(标记和忽略)。

如果您的应用程序只需要多个本地IP地址,那么只需创build别名,例如:

 ifconfig eth0:0 192.168.99.5 netmask 255.255.255.0 

如果你能告诉我们更多关于你想要做什么的话,这可能是最好的。

在创buildNIC别名时,您必须使用别名语法。 ethN名称不能用于别名。 你必须坚持ethN:Mscheme。

为了在同一台机器上运行的服务使用不同的IP(即使在不可路由的范围内),我使用了NIC别名,但这只是一个用例。 一般来说,它增加了服务部署的灵活性。 关于红帽系统,我推荐这个虚拟网卡的howto ,它描述了如何在这些系统上进行修改。

使用两个虚拟网卡设置虚拟机,并连接到同一个VLAN。