![如何在具有 2 个 NIC 的 Ubuntu 盒子上设置 3 个网络?](https://linux22.com/image/653173/%E5%A6%82%E4%BD%95%E5%9C%A8%E5%85%B7%E6%9C%89%202%20%E4%B8%AA%20NIC%20%E7%9A%84%20Ubuntu%20%E7%9B%92%E5%AD%90%E4%B8%8A%E8%AE%BE%E7%BD%AE%203%20%E4%B8%AA%E7%BD%91%E7%BB%9C%EF%BC%9F.png)
我需要在我的 Ubuntu 机器上配置 3 个网络(OpenStack 网络节点)
我拥有的 /etc/network/interfaces 是:
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
# OpenStack management interface
auto eth1
iface eth1 inet static
address 192.168.1.13
netmask 255.255.255.0
gateway 192.168.1.1
broadcast 192.168.1.255
dns-nameservers 8.8.8.8
# OpenStack instance tunnels interface
auto eth1:0
iface eth1:0 inet static
address 192.168.3.1
netmask 255.255.255.0
# OpenStack The external network interface
auto eth2
iface eth2 inet manual
up ip link set dev $IFACE up
down ip link set dev $IFACE down
eth1 和 eth1:0 工作正常。此外,当我发出 ifconfig 时,列表中只显示 eth1 和 eth1:1,但没有显示 eth2。
我还测试了在 eth1:1 上定义第 3 个接口(同一个 eth1 接口上的 3 个网络),使用以下命令:
auto eth1:1
iface eth1:1 inet manual
up ip link set dev $IFACE up
down ip link set dev $IFACE down
或者在 eth0 上,但在这两种情况下,这个第三个接口都没有出现在 ifconfig 中,这怎么可能呢?
该机器有2个NIC:
lspci | grep Ethernet
00:19.0 Ethernet controller: Intel Corporation 82579LM Gigabit Network Connection (rev 04)
02:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection
我如何知道链接到它们的接口的名称? eth1 似乎正在工作,但我如何确保 eth0 正在工作?
** 更新 **
使用 eth2 是一件愚蠢的事情。我没有尝试使用一个接口来映射 3 个网络,而是使用了 eth0 并正确插入了 NIC。
auto eth0
iface eth0 inet manual
up ip link set dev $IFACE up
down ip link set dev $IFACE down
答案1
我们通常这样做:
auto eth1
iface eth1 inet static
address 243.124.38.195
broadcast 243.124.38.207
gateway 243.124.38.193
netmask 255.255.255.240
dns-nameservers 127.0.0.1
dns-search sample.xyz
## virtual ip4 interfaces
up ip addr add 192.168.1.1/28 dev $IFACE
down ip addr del 192.168.1.1/28 dev $IFACE || true
up ip addr add 243.124.38.196/28 dev $IFACE
down ip addr del 243.124.38.196/28 dev $IFACE || true
up ip addr add 243.124.38.206/28 dev $IFACE
down ip addr add 243.124.38.206/28 dev $IFACE || true
## virtual ip6 interfaces
up ip -6 addr add 2001:120:402d::c3/64 dev $IFACE
down ip -6 addr del 2001:120:402d::c3/64 dev $IFACE || true
up ip -6 addr add 2001:120:402d::c4/64 dev $IFACE
down ip -6 addr del 2001:120:402d::c4/64 dev $IFACE || true
这种方法的优点是,243.124.38.195
除非软件主动绑定到不同的接口,否则系统始终使用传出的 ip4 连接。
我也建议使用
ip addr show
查看您的网络配置。