选择默认的网络接口


12

我有一台具有2个接口的服务器。eth0比eth1快100倍。尽管由于某种原因,每次重新启动,都会随机选择默认接口。为了使事情更烦人,它们都使用相同的网关,因此选择默认网关将无效。linux如何选择默认接口,以及如何选择默认接口?

这是我route -n要帮助解释的情况。

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
173.246.100.0   0.0.0.0         255.255.252.0   U     0      0        0 eth1
173.246.100.0   0.0.0.0         255.255.252.0   U     0      0        0 eth0
0.0.0.0         173.246.103.254 0.0.0.0         UG    0      0        0 eth1
0.0.0.0         173.246.103.254 0.0.0.0         UG    100    0        0 eth0

PS。这是一个VPS,因此我的提供商可能在某个地方也有问题。第二个接口的原因是要为dns使用另一个IP,因为它仅执行DNS,这非常慢。

编辑:这是一个Ubuntu 10.04服务器


有趣的是,ifconfig联机帮助页在“ metric”部分中对此进行了说明:此参数设置接口度量。在GNU / Linux下不可用。
wzzrd 2011年

1
很高兴您知道了这一点。如果没有其他人回答此问题,并且您的编辑代表了解决方案,则应在自己的回答部分中添加以下内容,然后接受它作为正确答案(在超时后)。请不要在问题部分中填写答案。
Caleb

@Caleb:我还在超时,我已经发布了答案-user163365 2011
6

Answers:


15

使用ifmetric改变两个接口的度量值。将eth1增加到eth0以上将使eth0用于所有连接。彻底解决问题。


2
这会立即更改默认网关还是在重启后更改默认网关?
CMCDragonkai 2015年

2

您应该禁用第二个慢速接口,然后将辅助IP添加到主IP。为此,请使用以下命令编辑接口文件:

sudo vi /etc/network/interfaces

访问网络文件后,可能会看到以下内容:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
    address 173.246.100.1
    network 173.246.100.0
    netmask 255.255.252.0
    broadcast 173.246.100.255
    gateway 173.246.103.254

auto eth1
iface eth0 inet static
    address 173.246.100.2
    network 173.246.100.0
    netmask 255.255.252.0
    broadcast 173.246.100.255
    gateway 173.246.103.254

重新配置为如下所示:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
    address 173.246.100.1
    network 173.246.100.0
    netmask 255.255.252.0
    broadcast 173.246.100.255
    gateway 173.246.103.254

iface eth0:1 inet static
    address 173.246.100.2
    network 173.246.100.0
    netmask 255.255.252.0

这会将两个IP分配给第一个NIC。完成此操作后,保存文件并运行:

/etc/init.d/networking restart

并且更改将被提交。

<-编辑->

以我的经验,即使位于同一虚拟交换机上也没关系,尽管托管环境可能会将其进一步锁定。不过,这可能值得一试,如果它不起作用,您可以要求托管公司将虚拟接口更改为功能更强大的设备。

<-编辑->

另外,如果您的主IP当前不为DNS提供服务,那为什么不也将其用于DNS?您可以在一个IP上托管多个不同的服务,因为它们使用不同的端口。


0

您似乎在同一子网中有两个接口,这有点奇怪。Linux(假设您使用的是Red Hat衍生产品)通过从中读取GATEWAY值来选择默认网关/etc/sysconfig/network。但是,此变量将IP地址保留为网关标识符,而不是接口名称。因此,在您的情况下,一个IP地址可以是两个接口的网关,从而导致(我认为)某种竞争状况。

我仍然不确定为什么需要第二个界面。如果完全关闭慢速界面,将会发生什么?


首先,我使用ubuntu,但是看到这不是网关问题,没关系。其次,如果我关闭第二个接口,流量将使用第一个接口,但是我丢失了第二个IP,这就是为什么我首先拥有第二个接口的原因。
user163365 2011年

1
您可以使用别名在一个接口上轻松配置两个地址。快速接口上的所有流量,配置了两个IP,问题解决了吗?考虑“ Linux如何选择默认接口,以及如何选择默认接口?”,这不是网关问题吗?
wzzrd 2011年

1
因为这些是虚拟接口,所以可能无法工作,它们可能配置为仅路由来自指定IP的数据。同样,此问题是关于接口而不是网关的,因为网关在两个接口中都是相同的。
user163365 2011年

2
传入的请求可能到达一个接口,但是传出的东西已经通过随机接口进行了传输。尝试建议,删除其中一个接口,将另一个IP放在另一个带有别名的IP上,看是否可行。如您所说,如果它们是虚拟的,那么为什么速度不同,为什么要分离?某些东西不会胶凝。
AugustBitTony
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.