Destination host unreachable что значит linux

Обновлено: 06.07.2024

У меня есть маршрутизатор ActionTech v1000h от Telus. Я был в контакте с одним из их представителей клиентов, и они сказали, что не должно быть причин, по которым два устройства не могут пинговать друг друга в сети.

Я полностью в растерянности, у любого из вас есть идеи?

Компьютер 1:

sudo iptables -L

Компьютер 2:

sudo iptables -L

Изменить: Пример ошибки, когда компьютер 1 пытается выполнить ping-компьютер 2:

Изменить 2: arp -a обоих компьютеров

Изменить 3: nmap -sn 192.168.1.0/24 на компьютере 2

Изменить 4: Журналы tcpdump на обоих компьютерах при первом пинге 192.168.1.254, а затем друг другу:

Изменить 5: Установите статические ips для обоих компьютеров etho0 и подключите их с помощью интернет-кабеля. Оба компьютера могут определенно пинговать друг друга через кабель Ethernet! ifconfig -a eth0 результатов:

ping-шлюз с обоих компьютеров ping 192.168.1.254 затем попытайтесь выполнить команду ping comp1 в compt2 и comp2 в comp1 затем опубликуйте результаты arp -a из BOTH boxes

Интересно, что-то блокирует трафик

запустите sudo tcpdump -ni wlan0 arp в одном окне на обоих компьютерах, а затем попытайтесь выполнить pinging друг друга и шлюз из другого окна на оба снова и опубликовать результаты

Edit3 ПК делают то, что они предполагают, выставляя ARP, но они не получают, что указывает на маршрутизатор. Может быть, отключить настройку брандмауэра, сомневаюсь, что он поддерживает VLAN? Kinda желает, чтобы вы позволили ему работать немного дольше 22: 45: 48.379058 , ваш маршрутизатор отправил свой собственный запрос ARP, когда он искал PC1 22:45:48.379058 ARP, Request who-has 192.168.1.77 tell 192.168.1.254, length 28 , и оба ПК должны были его видеть, мы можем видеть, что PC1 увидел его и ответил своим IP-адресом, но не мог сказать, получил ли PC2 его с тех пор, как вы остановили его, остановившись только на 22: 45: 09.796214 . Предположим, что вы синхронизированы с NTP.

Посмотрите, что он все еще не разрешен. Не видел, что у вас есть эти адаптеры на обоих ПК. Можете ли вы подключиться к маршрутизатору на eth вместо wlan и посмотреть, сможете ли вы пинговать? Или получить еще один маршрутизатор? Или сделать горячую точку на телефоне подключить оба компьютера и попытаться выполнить ping? Также удивлен, увидев, что вы смогли подключить два компьютера вместе и пинговать друг друга, вы использовали кроссоверный кабель?

You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!

Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.

If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:727 errors:0 dropped:0 overruns:0 frame:0
TX packets:727 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:52749 (51.5 Kb) TX bytes:52749 (51.5 Kb)

An external card (eth0) in the PCI slot is working fine. When connected to the router from eth0 instead of eth1, by giving the same Static IP Address(192.168.15.7), I am able to ping the outside world. The ifconfig details for the eth0 NIC as follows:

I have 3 VMs with Ubuntu 12.10: m1, m2 and m3. Here are their IPs

When I try to ping between them, I get a destination host unreachable. If I set them to 192.168.1.X, then the ping works fine, so the VM setup is working fine. The issue is when I put them in a different 192.168.X ip.

destination host unreachable linux

2 Answers 2

You will have to look for the network settings config options.

Change the subnet mask accordingly: in your case, 255.255.0.0

destination host unreachable linux

destination host unreachable linux

Related

Hot Network Questions

To subscribe to this RSS feed, copy and paste this URL into your RSS reader.

site design / logo © 2019 Stack Exchange Inc; user contributions licensed under cc by-sa 4.0 with attribution required. rev 2019.11.15.35459

Существуют Linux-команды, которые всегда должны быть под рукой у системного администратора. Эта статья посвящена 7 утилитам, предназначенным для работы с сетью.

Этот материал — первый в серии статей, построенных на рекомендациях, собранных от множества знатоков Linux. А именно, я спросил у наших основных разработчиков об их любимых Linux-командах, после чего меня буквально завалили ценными сведениями. А именно, речь идёт о 46 командах, некоторые из которых отличает тот факт, что о них рассказало несколько человек.


В данной серии статей будут представлены все эти команды, разбитые по категориям. Первые 7 команд, которым и посвящена эта статья, направлены на работу с сетью.

Команда ip

Команда ip — это один из стандартных инструментов, который необходим любому системному администратору для решения его повседневных задач — от настройки новых компьютеров и назначения им IP-адресов, до борьбы с сетевыми проблемами существующих систем. Команда ip может выводить сведения о сетевых адресах, позволяет управлять маршрутизацией трафика и, кроме того, способна давать данные о различных сетевых устройствах, интерфейсах и туннелях.

Синтаксис этой команды выглядит так:


Самое важное тут — это <OBJECT> (подкоманда). Здесь можно использовать, помимо некоторых других, следующие ключевые слова:

  • address — адрес протокола (IPv4 или IPv6) на устройстве.
  • tunnel — IP-туннель.
  • route — запись таблицы маршрутизации.
  • rule — правило в базе данных политики маршрутизации.
  • vrf — управление виртуальными устройствами маршрутизации и перенаправления трафика.
  • xfrm — управление IPSec-политикой.

Вывод IP-адресов, назначенных интерфейсу на сервере:


Назначение IP-адреса интерфейсу, например — enps03 :


Удаление IP-адреса из интерфейса:


Изменение статуса интерфейса, в данном случае — включение eth0 :


Изменение статуса интерфейса, в данном случае — выключение eth0 :


Изменение статуса интерфейса, в данном случае — изменение MTU eth0 :


Изменение статуса интерфейса, в данном случае — перевод eth0 в режим приёма всех сетевых пакетов:


Добавление маршрута, используемого по умолчанию (для всех адресов), через локальный шлюз 192.168.1.254, который доступен на устройстве eth0 :


Добавление маршрута к 192.168.1.0/24 через шлюз на 192.168.1.254:


Добавление маршрута к 192.168.1.0/24, который доступен на устройстве eth0 :


Удаление маршрута для 192.168.1.0/24, для доступа к которому используется шлюз 192.168.1.254:


Вывод маршрута к IP 10.10.1.4:

Команда ifconfig

Команда ifconfig до определённого времени представляла собой один из основных инструментов, используемых многими системными администраторами для настройки сетей и решения сетевых проблем. Теперь ей на замену пришла команда ip , о которой мы только что говорили. Но если вас, всё же, интересует эта команда, можете взглянуть на данный материал.

Команда mtr

MTR (Matt's traceroute) — это программа, работающая в режиме командной строки, представляющая собой инструмент для диагностики сетей и устранения сетевых неполадок. Эта команда совмещает в себе возможности ping и traceroute . Она, как traceroute , может выводить сведения о маршруте, по которому сетевые данные идут от одного компьютера к другому. Она выводит массу полезных сведений о каждом шаге маршрутизации, например — время ответа системы. Благодаря использованию команды mtr можно получить довольно подробные сведения о маршруте, можно обнаружить устройства, которые вызывают проблемы при прохождении данных по сети. Если, например, наблюдается рост времени ответа системы, или рост числа потерянных пакетов, это позволяет с уверенностью говорить о том, что где-то между исследуемыми системами возникла проблема с сетевым соединением.

Синтаксис команды выглядит так:


Рассмотрим несколько распространённых способов применения mtr .

Если вызвать эту команду, указав лишь имя или адрес хоста — она выведет сведения о каждом шаге маршрутизации. В частности — имена хостов, сведения о времени их ответа и о потерянных пакетах:


Вот — вариант использования mtr , когда вместо имён хостов выводятся их IP-адреса (речь идёт о ключе -g , благодаря которому вместо имён выводятся числовые IP-адреса):


А следующий вариант команды позволяет выводить и имена, и IP-адреса хостов:


А так можно получить отчёт, содержащий результаты работы mtr :


Вот — ещё один вариант получения такого отчёта:


Для того чтобы принудительно использовать TCP вместо ICMP — надо поступить так:


А вот так можно использовать UDP вместо ICMP:


Вот — вариант команды, где задаётся максимальное количество шагов маршрутизации:


Так можно настроить размер пакета:


Для вывода результатов работы mtr в формате CSV используется такая команда:


Вот — команда для вывода результатов работы mtr в формате XML:

Команда tcpdump

Утилита tcpdump предназначена для захвата и анализа пакетов.

Установить её можно так:


Прежде чем приступить к захвату пакетов, нужно узнать о том, какой интерфейс может использовать эта команда. В данном случае нужно будет применить команду sudo или иметь root-доступ к системе.


Если нужно захватить трафик с интерфейса eth0 — этот процесс можно запустить такой командой:


Или — такой, с указанием (через ключ -c ) количества пакетов, которые нужно захватить:

▍ Захват трафика, идущего к некоему хосту и от него

Можно отфильтровать трафик и захватить лишь тот, который приходит от определённого хоста. Например, чтобы захватить пакеты, идущие от системы с адресом 8.8.8.8 и уходящие к этой же системе, можно воспользоваться такой командой:


Для захвата трафика, идущего с хоста 8.8.8.8, используется такая команда:


Для захвата трафика, уходящего на хост 8.8.8.8, применяется такая команда:

▍ Захват трафика, идущего в некую сеть и из неё

Трафик можно захватывать и ориентируясь на конкретную сеть. Делается это так:


Ещё можно поступить так:


Можно, кроме того, фильтровать трафик на основе его источника или места, в которое он идёт.

Вот — пример захвата трафика, отфильтрованного по его источнику (то есть — по той сети, откуда он приходит):


Вот — захват трафика с фильтрацией по сети, в которую он направляется:

▍ Захват трафика, поступающего на некий порт и выходящего из некоего порта

Вот пример захвата трафика только для DNS-порта по умолчанию (53):


Захват трафика для заданного порта:


Захват трафика для всех портов кроме 80 и 25:

Команда netstat

Инструмент netstat используется для вывода сведений о сетевых соединениях и таблицах маршрутизации, данных о работе сетевых интерфейсов, о masquerade-соединениях, об элементах групп многоадресной рассылки. Эта утилита является, как и ifconfig , частью пакета net-tools . В новом пакете iproute2 для достижения тех же целей используется утилита ss .

Если в вашей системе netstat отсутствует, установить эту программу можно так:


Ей, в основном, пользуются, вызывая без параметров:


В более сложных случаях её вызывают с параметрами, что может выглядеть так:


Можно вызывать netstat и с несколькими параметрами, перечислив их друг за другом:


Для вывода сведений обо всех портах и соединениях, вне зависимости от их состояния и от используемого протокола, применяется такая конструкция:


Для вывода сведений обо всех TCP-портах применяется такой вариант команды:


Если нужны данные по UDP-портам — утилиту вызывают так:


Список портов любых протоколов, ожидающих соединений, можно вывести так:


Список TCP-портов, ожидающих соединений, выводится так:


Так выводят список UDP-портов, ожидающих соединений:


А так — список UNIX-портов, ожидающих соединений:


Вот — команда для вывода статистических сведений по всем портам вне зависимости от протокола:


Так выводятся статистические сведения по TCP-портам:


Для просмотра списка TCP-соединений с указанием PID/имён программ используется такая команда:


Для того чтобы найти процесс, который использует порт с заданным номером, можно поступить так:

Команда nslookup

Команда nslookup используется для интерактивного «общения» с серверами доменных имён, находящимися в интернете. Она применяется для выполнения DNS-запросов и получения сведений о доменных именах или IP-адресах, а так же — для получения любых других специальных DNS-записей.

Рассмотрим распространённые примеры использования этой команды.

Получение A-записи домена:


Просмотр NS-записей домена:


Выяснение сведений о MX-записях, в которых указаны имена серверов, ответственных за работу с электронной почтой:


Обнаружение всех доступных DNS-записей домена:


Проверка A-записи для выяснения IP-адресов домена — это распространённая практика, но иногда нужно проверить то, имеет ли IP-адрес отношение к некоему домену. Для этого нужно выполнить обратный просмотр DNS:

Команда ping

Эта команда, при простом способе её использования, принимает лишь один параметр: имя хоста, подключение к которому надо проверить, или его IP-адрес. Вот как это может выглядеть:


В данном случае работу команды ping можно остановить, воспользовавшись сочетанием клавиш CTRL+C . В противном случае она будет выполнять запросы до тех пор, пока её не остановят. После каждой ping-сессии выводятся сводные данные, содержащие следующие сведения:

  • Min — минимальное время, которое требуется на получение ответа от пингуемого хоста.
  • Avg — среднее время, которое требуется на получение ответа.
  • Max — максимальное время, которое требуется на получение ответа.

Обычно, если запустить команду ping в её простом виде, не передавая ей дополнительные параметры, Linux будет пинговать интересующий пользователя хост без ограничений по времени. Если нужно изначально ограничить количество ICMP-запросов, например — до 10, команду ping надо запустить так:


А для того чтобы увидеть лишь итоговый отчёт работы ping — можно воспользоваться ключом -q :


В системах с несколькими сетевыми интерфейсами можно задавать конкретный интерфейс, которым должна пользоваться команда ping . Например, есть компьютер, имеющий интерфейсы eth0 и eth1 . Если нужно, чтобы команда ping использовала бы интерфейс eth0 — надо запустить её так:


Или можно указать адрес интерфейса. В данном случае речь идёт об IP-адресе 10.233.201.45:


Применяя эту команду, можно указать и то, какую версию протокола IP использовать — v4 или v6:

▍ Destination Host Unreachable

Вероятной причиной получения такого ответа является отсутствие маршрута от локальной хост-системы к целевому хосту. Или, возможно, это удалённый маршрутизатор сообщает о том, что у него нет маршрута к целевому хосту.

▍ Request timed out

▍ Unknown host/Ping Request Could Not Find Host

Такой результат может указывать на то, что неправильно введено имя хоста, или хоста с таким именем в сети просто не существует.

О хорошем качестве связи между исследуемыми системами говорит уровень потери пакетов в 0%, а так же — низкое значение времени получения ответа. При этом в каждом конкретном случае время получения ответа варьируется, так как оно зависит от разных параметров сети. В частности — от того, какая среда передачи данных используется в конкретной сети (витая пара, оптоволокно, радиоволны).

Итоги

Надеемся, вам пригодятся команды и примеры их использования, о которых мы сегодня рассказали. А если они вам и правда пригодились — возможно, вам будет интересно почитать продолжение этого материала.

У меня есть роутер ActionTech v1000h от Telus. Я связался с одним из их представителей клиентов, и они сказали, что не должно быть никаких причин, по которым два устройства не могут пинговать друг друга в сети.

Я в полном недоумении, у кого-нибудь из вас есть какие-нибудь идеи?

Компьютер 1:

sudo iptables -L

Компьютер 2:

sudo iptables -L

Редактировать: пример ошибки, когда компьютер 1 пытается пропинговать компьютер 2:

Редактировать 2: arp -a обоих компьютеров

Редактировать 3: nmap -sn 192.168.1.0/24 на компьютере 2

Редактировать 4: tcpdump регистрирует оба компьютера, в то время как первый пинг 192.168.1.254, а затем друг друга:

Редактировать 5: Установить статические ips для обоих компьютеров etho0 и подключить их с помощью интернет-кабеля. Оба компьютера могут определенно пропинговать друг друга через кабель Ethernet! ifconfig -a Результаты eth0:

Кто говорит вам, что «хост назначения недоступен» - ваш локальный адаптер или что-то еще? Пожалуйста, предоставьте копирование / вставку команд ping и их вывод. Возможно, вы блокируете ping в настройках вашего роутера? Я не верю, я прочесал настройки роутера за пару часов. Я также поговорил с представителем телусов, и он не дал мне никаких указаний на то, что это может быть проблемой.

ping gateway с обоих компьютеров, ping 192.168.1.254 затем попытайтесь пропинговать comp1 к compt2 и comp2 к comp1, а затем отправьте результаты arp -a из обоих блоков

редактировать

Интересно, что-то блокирует трафик

запустите sudo tcpdump -ni wlan0 arp в одном окне на обоих компьютерах, а затем попробуйте пропинговать друг друга и шлюз из другого окна снова и опубликовать результаты

Edit2

До сих пор это показывает, что comp1 делает то, что предполагает отправку запроса arp (запрашивает адрес etherner comp2s), но не получает ответа arp (ничего не слышит). Нужно увидеть tcpdump от PC2, чтобы увидеть полную картину. Либо запустите команду screen, либо сделайте это на ПК1 sudo tcpdump -w pc1.pcap -ni wlan0 arp & и на ПК2, sudo tcpdump -w pc2.pcap -ni wlan0 arp & и вы должны сбросить ее в фоновом режиме и вернуть запрос на пинг. После сбоя проверки связи верните задания на передний план с fg %1 остановкой ctrl+c и прочитайте записанные файлы с sudo tcpdump -r pc1/2.pcap

ПК Edit3 делают то, что они предполагают, выпуская ARP, но они не проходят через какие точки к маршрутизатору. Может быть, отключить настройку брандмауэра, сомневаюсь, что он поддерживает VLAN? Хотелось бы, чтобы вы позволили ему работать немного дольше в 22: 45: 48.379058, когда ваш маршрутизатор отправил свой собственный запрос ARP, когда он искал ПК1, 22:45:48.379058 ARP, Request who-has 192.168.1.77 tell 192.168.1.254, length 28 оба ПК должны были его видеть, мы можем видеть, что ПК1 видел его и ответил со своим IP, но не могу скажите, получил ли PC2 его с тех пор, как вы его остановили, остановитесь на 22: 45: 09.796214 . Предполагая, что ваши часы синхронизируются с NTP, то есть.

Edit4

Видите, это все еще не решено. Не видел, что у вас есть эти адаптеры на обоих ПК. Можете ли вы подключиться к маршрутизатору по eth вместо wlan и посмотреть, сможете ли вы пинговать тогда? Или получить другой роутер? Или сделать горячую точку на телефоне, подключить оба компьютера и попробовать пинговать? Кроме того, вы удивились, увидев, что вы смогли соединить два компьютера вместе и проверить связь друг с другом. Использовали ли вы перекрестный кабель?


Однако этот протокол не просто так называется Internet Message Control Protocol. Его функции далеко не только диагностические, а диагностические функции куда шире, чем «ответил — не ответил».

Что может сказать ping?

Но уж если тебе пришел ответ от промежуточного маршрутизатора, он обычно информативен. К примеру, ответ destination host unreachable должен отправляться только тогда, когда хост находится в одной локальной сети с маршрутизатором и не отвечает. Самый простой способ увидеть эту ошибку — пингануть заведомо несуществующий адрес в своей же сети: к примеру, если твоя сеть 192.168.0.0/24 и хоста 192.168.0.200 в ней нет, выполнить ping 192.168.0.200 .

Такой ответ может прийти только от последнего маршрутизатора на пути к хосту.

А вот network unreachable говорит об отсутствии маршрута к указанной сети у одного из хостов на пути. Эта ошибка может возникнуть в любом месте пути, поэтому нужно обратить внимание на отправителя.

Чаще всего эта проблема у тебя самого: слетели настройки маршрутов или хост не получил маршрут от сервера DHCP. Но такой ответ может прийти и от промежуточного маршрутизатора:

Если ты видишь такую картину, что-то серьезно пошло не так. Если хост достижим из других сетей, вполне возможно, что у провайдера проблема с настройками BGP. Я как минимум один раз сталкивался с тем, что крупный провайдер ошибочно фильтровал маршруты из сети, которую он считал зарезервированной для использования в будущем, хотя на тот момент IANA уже полгода как передала ее RIPE NCC и многие люди получили адреса из нее.

Если не хочешь быть как тот провайдер, можно воспользоваться автоматически обновляемыми списками несуществующих адресов вроде Cymru Bogon Reference

Ошибки семейства destination host/net prohibited означают, что пакет был отброшен правилом межсетевого экрана. Впрочем, никто не обязывает отвечать отправителю именно так или вообще отвечать. К примеру, в Linux правила вида iptables -j REJECT по умолчанию выдают destination port unreachable , если явно не указать --reject-with , причем указать можно любой тип, даже icmp-net-unreachable .

Но это все о простом ping без опций. Некоторые проблемы лучше всего выявляются дополнительными опциями.

Продолжение доступно только участникам

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Читайте также: