我对网络管理完全陌生,因此发现事情有点困难。我有一台机器,我必须将其第一个接口设置为子网 10.0.20.0/24,另一个接口设置为 10.1.0.0/24,第三个接口设置为 10.128.0.0/24。我的 eth0 已经在运行,ifconfig 命令显示结果:
eth0 Link encap:Ethernet HWaddr fa:16:3e:31:bc:c9
inet addr:10.0.20.3 Bcast:10.0.20.255 Mask:255.255.255.0
inet6 addr: fe80::f816:3eff:fe31:bcc9/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1454 Metric:1
RX packets:8941 errors:0 dropped:0 overruns:0 frame:0
TX packets:5324 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:5662823 (5.6 MB) TX bytes:616960 (616.9 KB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:8 errors:0 dropped:0 overruns:0 frame:0
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:672 (672.0 B) TX bytes:672 (672.0 B)
看看这个和其他地方,我这样配置了我的 /etc/network/interfaces:
auto eth0
iface eth0 inet static
address 10.0.20.3
netmask 255.255.255.0
auto eth1
iface eth1 inet static
address 10.1.0.1
netmask 255.255.255.0
auto eth2
iface eth2 inet static
address 10.128.0.1
netmask 255.255.255.0
我没有对 eth0 做任何事情,因为它已经在运行了。我尝试了“sudo ifdown eth1”。我正进入(状态:
ifdown: interface eth1 not configured
我查看了这些论坛,人们正在谈论网关,但我不确定将该网关设置为什么以及用于哪个接口。有人可以帮我吗?
运行“sudo ifup eth1”时,我得到结果:
Cannot find device "eth1"
Failed to bring up eth1.
好的,这就是我所做的 - 我没有使用 eth1 和 eth2,而是分别用 eth0:1 和 eth0:2 替换它们,如下所示:
auto eth0:1
iface eth0:1 inet static
address 10.1.0.1
netmask 255.255.255.0
auto eth0:2
iface eth0:2 inet static
address 10.128.0.1
netmask 255.255.255.0
现在,当我执行“sudo ifup eth0:1”和“sudo ifup eth0:2”时,界面会正确启动。所以“ifconfig -a”的输出是:
eth0 Link encap:Ethernet HWaddr fa:16:3e:31:bc:c9
inet addr:10.0.20.3 Bcast:10.0.20.255 Mask:255.255.255.0
inet6 addr: fe80::f816:3eff:fe31:bcc9/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1454 Metric:1
RX packets:1498 errors:0 dropped:0 overruns:0 frame:0
TX packets:1220 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:149182 (149.1 KB) TX bytes:148374 (148.3 KB)
eth0:1 Link encap:Ethernet HWaddr fa:16:3e:31:bc:c9
inet addr:10.1.0.1 Bcast:10.1.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1454 Metric:1
eth0:2 Link encap:Ethernet HWaddr fa:16:3e:31:bc:c9
inet addr:10.128.0.1 Bcast:10.128.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1454 Metric:1
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:16 errors:0 dropped:0 overruns:0 frame:0
TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1184 (1.1 KB) TX bytes:1184 (1.1 KB)
但是,我还是很困惑。我应该对设备 eth1 和 eth2 执行相同的操作。如果这些接口不存在,如何添加它们?
好吧,我终于明白了。当我创建 OpenStack 实例时,我仅使用一个网络接口。因此只创建了 eth0。我删除了该实例并创建了一个新实例并指定了其他接口。 eth1和eth2配置成功!
答案1
命令ifup
和ifdown
使用下面的临时文件/var/lib
来记住哪个接口很快就会启动,哪个接口还没有启动。其他命令 ( ifconfig
) 不知道这一点。因此,如果您使用 来配置接口ifconfig
,则ifup
/ifdown
会认为接口尚未关闭。
1998 年左右,情况很快就这样了,可能没有人能说出原因。
编辑/etc/networking/interfaces
(或者可能是 中的另一个依赖于发行版的配置/etc
),并使用ifup
/ifdown
命令(如果可以的话)。这些设置将在重新启动之间被记住。祝你好运!