У меня есть сервер с 2 интерфейсами. eth0 в 100 раз быстрее, чем eth1. Хотя по какой-то причине при каждой перезагрузке интерфейс по умолчанию выбирается случайным образом. Чтобы сделать вещи более раздражающими, они оба используют один и тот же шлюз, поэтому выбор шлюза по умолчанию не будет работать. Как 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, поэтому мой провайдер тоже может быть где-то виноват. Причиной второго интерфейса является наличие другого IP-адреса для DNS, поскольку он работает только с DNS, он очень медленный.
РЕДАКТИРОВАТЬ: Это сервер Ubuntu 10.04
linux
networking
route
interface
user163365
источник
источник
Ответы:
Используйте
ifmetric
для изменения значения метрики обоих интерфейсов. Увеличение eth1 выше eth0 приведет к тому, что eth0 будет использоваться для всех соединений. Решает проблему полностью.источник
Вы должны отключить второй, медленный интерфейс, а затем добавить дополнительный IP-адрес на основной. Для этого отредактируйте ваш интерфейсный файл с помощью:
Получив доступ к сетевому файлу, вы, вероятно, увидите что-то вроде следующего:
Переконфигурируйте это так:
Это назначит оба IP-адреса первому NIC. После этого сохраните файл и запустите:
И изменения будут совершены.
<- РЕДАКТИРОВАТЬ ->
По моему опыту, если он находится на том же виртуальном коммутаторе, это не должно иметь значения, хотя размещенные среды могут блокировать его дальше. Возможно, стоит попробовать, если это не сработает, вы можете попросить вашу хостинговую компанию изменить виртуальный интерфейс на более мощный.
<- РЕДАКТИРОВАТЬ ->
Кроме того, если ваш основной IP в настоящее время не обслуживает DNS, то почему бы не использовать его и для DNS? Вы можете разместить несколько разных сервисов на одном IP, так как они используют разные порты.
источник
Кажется, у вас есть два интерфейса в одной подсети, что немного странно. Linux (при условии, что вы используете производную от Red Hat) выбирает шлюз по умолчанию, считывая значение GATEWAY из
/etc/sysconfig/network
. Однако эта переменная содержит IP-адрес в качестве идентификатора шлюза, а не имя интерфейса. Таким образом, в вашем случае один IP-адрес может быть шлюзом для обоих интерфейсов, что приводит (я думаю) к некоторому состоянию гонки.Я до сих пор не уверен, зачем вам второй интерфейс. Что произойдет, если вы полностью отключите медленный интерфейс?
источник