Назад | Перейти на главную страницу

Сервер Ubuntu - два интерфейса, живущие вместе (в полной гармонии)

Наш сервер имеет три интерфейса Ethernet. У меня один подключен к кабельному модему (для статического IP-адреса), а другой подключен к маршрутизатору (для доступа к остальной рабочей сети). Я почти уверен, что у меня оба интерфейса работали одновременно под Xubuntu, но под Ubuntu Server я не могу этого добиться; если я подключаюсь к рабочей сети, мой статический ip перестает работать. Этот вид лишает смысла иметь более одного интерфейса Ethernet. Как мне сделать так, чтобы эти два интерфейса счастливо жили вместе?

route Вывод:
eth0 вниз

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
74.218.198.192  *               255.255.255.248 U     0      0        0 eth2
default         rrcs-74-218-198 0.0.0.0         UG    100    0        0 eth2

eth0 вверх (висит после первых двух строк, поэтому я использовал route -n)

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
74.218.198.192  0.0.0.0         255.255.255.248 U     0      0        0 eth2
192.168.2.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
0.0.0.0         192.168.2.1     0.0.0.0         UG    100    0        0 eth0
0.0.0.0         74.218.198.193  0.0.0.0         UG    100    0        0 eth2

У вас есть шлюзы по умолчанию для обоих интерфейсов? Если ответ положительный, отключите шлюз по умолчанию в конфигурации для eth0.

Я предполагаю, что ваш статический IP-адрес продолжает работать отлично, но настройка DHCP на другом сетевом адаптере делает его шлюзом по умолчанию в соответствии с инструкциями DHCP-сервера.

Чтобы проверить эту небольшую теорию, запустите route при подключении только к статической сетевой карте, при подключении только к локальной локальной сети и при подключении к обоим.

Вы должны увидеть что-то вроде:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.39.0    *               255.255.255.0   U     0      0        0 eth0
default         192.168.39.1    0.0.0.0         UG    0      0        0 eth0

Вы увидите больше линий при подключении через большее количество сетевых адаптеров и больше, если у вас настроена дополнительная сетевая маршрутизация (например, VPN). Важная линия - это линия, отмеченная как default в destination.

Изменить: с новой информацией, добавленной к вашему вопросу, я не совсем уверен, поскольку я не видел такой договоренности (я немного знаю о маршрутизации, но я не экспортирую!). Похоже, что определены два шлюза, по одному для каждого сетевого интерфейса. Это может означать, что нет фиксированного маршрута для пакетов на общедоступные адреса, и это оставляет две потенциальные проблемы: если локальная LAN не настроена так, чтобы пакеты от вас пересылались на общедоступные адреса, то они не будут выходить, и если вы используют DNS-серверы, которые доступны только по одной из линий, а другая линия используется, вы не получите никакого разрешения имен. Не могли бы вы добавить вывод nslookup example.com и cat /etc/resolve.conf к вашей информации, и я мощь иметь возможность поставить дальнейшую диагностику и предложить решение.

У вас есть два шлюза по умолчанию с одной и той же метрикой, что в основном сбивает с толку механизм маршрутизации (он не может принять четкое решение, какой из них использовать). Увидев, что у вас есть маршрутизатор, я бы посоветовал вам поставить сервер с другой стороны и оставить маршрутизацию маршрутизатору.

В качестве альтернативы, если вы хотите (или должны) оставить сервер в вашей сети:

  1. убедитесь, что существует только один шлюз по умолчанию (ваша третья линия предназначена для шлюза по умолчанию во внутреннюю сеть, что вряд ли будет работать в любом случае, если у шлюза нет другого отдельного маршрута в Интернет)
  2. убедитесь, что на вашем сервере включена переадресация IP:
    echo 1 >/proc/sys/net/ipv4/ip_forward
    и что ваш брандмауэр правильно обрабатывает пересылку.

Зависание маршрута на третьих строках вызвано тем, что у вас либо вообще нет внутреннего DNS, либо DNS-сервер недоступен с сервера (что может быть вызвано проблемой маршрутизации), либо у него нет имя для адреса 192.168.2.1 (т.е. записи указателя настроены некорректно или вообще).