Наш сервер имеет три интерфейса 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
к вашей информации, и я мощь иметь возможность поставить дальнейшую диагностику и предложить решение.
У вас есть два шлюза по умолчанию с одной и той же метрикой, что в основном сбивает с толку механизм маршрутизации (он не может принять четкое решение, какой из них использовать). Увидев, что у вас есть маршрутизатор, я бы посоветовал вам поставить сервер с другой стороны и оставить маршрутизацию маршрутизатору.
В качестве альтернативы, если вы хотите (или должны) оставить сервер в вашей сети:
echo 1 >/proc/sys/net/ipv4/ip_forwardи что ваш брандмауэр правильно обрабатывает пересылку.
Зависание маршрута на третьих строках вызвано тем, что у вас либо вообще нет внутреннего DNS, либо DNS-сервер недоступен с сервера (что может быть вызвано проблемой маршрутизации), либо у него нет имя для адреса 192.168.2.1 (т.е. записи указателя настроены некорректно или вообще).