Вопрос или проблема
Обновление: Если я изменю IP на 10.0.0.11
, все начинает работать. Однако 10.0.1.1
все еще находится в том же диапазоне в подсети /22
, так что он должен работать?
У меня очень своеобразная проблема с Ubuntu 14.04. Я переехал и подключил её к новому роутеру с новым диапазоном IP. Я временно изменил IP-адрес моего ноутбука на старый диапазон, подключился к серверу по ssh и изменил его статический IP, чтобы он соответствовал новому диапазону:
auto p1p1
iface p1p1 inet static
address 10.0.1.1
netmask 255.255.252.0
gateway 10.0.0.1
dns-nameservers 8.8.8.8 8.8.4.4
Затем я отключился и подключился по ssh к 10.0.1.1, никаких проблем. Когда я попытался выполнить sudo apt-get update
, начались проблемы. Соединение застопорилось на Connecting to archive.ubuntu.com
. Быстрая перезагрузка не решила проблему. Я попробовал другой сетевой интерфейс, у него один на материнской плате и другой на PCI- карте. Безрезультатно. Другой кабель, тоже безрезультатно. На сервере нет активного фаервола.
Если я пингую шлюз по умолчанию 10.0.0.1, он отвечает, что Destination host unreachable
. arp -n
показывает, что HWAddress
для 10.0.0.1
является incomplete
. Если я подключаюсь к шлюзу по умолчанию по ssh и пингую сервер, он отвечает нормально! Если я ping 10.0.3.255 -b
, я получаю ответы только от моего ноутбука, который находится на Wi-Fi. Как-то сервер Ubuntu видит только мой ноутбук и ничего больше, даже если соединение проходит через точку доступа Wi-Fi. Также должно быть как минимум 10 других устройств, которые должны ответить. Что черт побери происходит?
Подведем итоги:
- Ноутбук по Wi-Fi и остальная сеть могут выходить в интернет без проблем.
- Ноутбук по Wi-Fi может подключиться к кабельному серверу Ubuntu.
- Сервер Ubuntu не может пинговать ничего, кроме вышеупомянутого ноутбука по Wi-Fi.
- Сервер Ubuntu
arp -n
показывает шлюз по умолчанию какincomplete
. - Шлюз по умолчанию может пинговать сервер Ubuntu.
- Сеть
10.0.0.0/22
.
Некоторые выводы команд, которые могут быть интересны:
% ifconfig -a
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:5128 errors:0 dropped:0 overruns:0 frame:0
TX packets:5128 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:985588 (985.5 KB) TX bytes:985588 (985.5 KB)
p1p1 Link encap:Ethernet HWaddr b0:48:7a:80:**:**
inet addr:10.0.1.1 Bcast:10.0.3.255 Mask:255.255.252.0
inet6 addr: fe80::b248:7aff:fe80:19aa/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2744 errors:0 dropped:0 overruns:0 frame:0
TX packets:2990 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:931523 (931.5 KB) TX bytes:284296 (284.2 KB)
p2p1 Link encap:Ethernet HWaddr 54:04:a6:60:**:**
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
.
% ping 10.0.3.255 -b
WARNING: pinging broadcast address
PING 10.0.3.255 (10.0.3.255) 56(84) bytes of data.
64 bytes от 10.0.0.44: icmp_seq=1 ttl=64 time=1.66 ms
64 bytes от 10.0.0.44: icmp_seq=1 ttl=64 time=92.9 ms (DUP!)
64 bytes от 10.0.0.44: icmp_seq=1 ttl=64 time=94.5 ms (DUP!)
64 bytes от 10.0.0.44: icmp_seq=2 ttl=64 time=1.73 ms
.
% arp -n
Address HWtype HWaddress Flags Mask Iface
10.0.0.1 (incomplete) p1p1
10.0.0.44 ether f4:5c:89:8b:**:** C p1p1
.
% route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.0.0.1 0.0.0.0 UG 0 0 0 p1p1
10.0.0.0 0.0.0.0 255.255.252.0 U 0 0 0 p1p1
Вместо broadcast ping вы должны использовать arping, чтобы проверить IP-адрес роутера
arping 10.0.0.1
Я думаю, что маска на роутере неправильная (например, 255.255.255.252 вместо 255.255.252.0)
.
Ответ или решение
Ваш Ubuntu сервер не может подключиться к шлюзу по умолчанию или Интернету. Данная проблема может быть вызвана несколькими факторами, начиная от некорректной настройки сети и заканчивая аппаратными неполадками. Рассмотрим вашу ситуацию более подробно и предложим возможные решения.
Причины проблемы
Как вы описали, ваш сервер с ОС Ubuntu 14.04 не может достичь шлюза 10.0.0.1, в то время как другие устройства в сети, включая ваш ноутбук, успешно подключаются к Интернету. При этом смена IP сервера на 10.0.0.11 решает проблему. Давайте проанализируем возможные причины:
-
Сетевая конфигурация:
- Вы используете статический IP-адрес 10.0.1.1 с маской подсети 255.255.252.0, что должно обеспечивать корректную работу в диапазоне сети 10.0.0.0/22. Однако возникновение ошибок связывает проблему с возможной ошибкой в настройках как на стороне сервера, так и на оборудовании маршрутизатора. Проверьте текущие настройки IP и маски подсети на маршрутизаторе, возможно они не совпадают с теми, что на сервере.
-
Недоступность ARP:
- Ваша команда
arp -n
показывает "incomplete" для адреса 10.0.0.1, что указывает на отсутствие ARP-записей для этого шлюза. Это может быть вызвано проблемами с кабелями, неправильно работающим сетевым оборудованием или настройками сетевого экрана.
- Ваша команда
-
Аппаратные проблемы или несовместимость:
- Возможно, ваша сетевая карта или роутер сталкиваются с несовместимостью, что приводит к неправильно формированным запросам ARP.
Рекомендуемые решения
Для устранения проблемы поступите следующим образом:
-
Проверка и изменение настроек сети:
- Перепроверьте конфигурацию сети как на роутере, так и на сервере. Убедитесь, что маска подсети на роутере и сервере совпадает и составляет 255.255.252.0.
- Попробуйте временно изменить IP-адрес сервера на другой в пределах вашей подсети, как, например, 10.0.0.11, поскольку ранее это решало проблему.
-
Использование arping:
- Вместо
ping
, используйтеarping
для проверки доступности вашего шлюза. Это поможет исключить проблемы с ARP таблицами.
- Вместо
arping 10.0.0.1
-
Проверка физического подключения:
- Убедитесь в целостности и исправности всех кабелей. Попробуйте использовать другой порт на роутере или даже другого роутер.
-
Проверка сетевых драйверов и оборудования:
- Иногда старые версии драйверов или несовместимость оборудования могут вызывать подобные неполадки. Проверьте наличие обновлений для сетевых драйверов.
-
Логирование и диагностика:
- Проанализируйте системные журналы (лог-файлы) на наличие сообщений об ошибках, которые могут прояснить ситуацию.
Путем систематического выполнения этих шагов, вы сможете выявить и устранить причину недоступности шлюза и, соответственно, Интернета на вашем Ubuntu сервере. Если проблема сохраняется, рекомендуется обратиться к специалистам по сетям для более глубокого анализа и помощи.