«Destination Host Unreachable» and ssh » No route to host»
При попытке пинга с Убунты локальной машины центос пишет
При попытке подключиться по ssh
На центосе стоит 2 сетевые карты с этими айпи. И нету подключения к интернету.
При попытке пинга с Убунты локальной машины центос пишет
Чего? Ты с локальной машины с убунтой пингуешь сам себя и тебе отвечает центос?
Я с Убунты(192.168.8.101) пытаюсь пинговать центос(192.168.100.166 и 192.168.8.1) На центосе установлены 2 сетевые карты с такими айпи. К 166 подключен кабель от глобальной сетки, а со второй карты идет кабель в роутер и от роутера второй кабель идет в убунту.
Не судите, но тут думаю есть проблема.
Ну так у Вас просто сеть не работает.
Начинать надо сначала — приведите список и параметры сетевых интерфейсов на локальной машине (команда ifconfig), а также таблицу маршрутизации (команда ip route).
Ну и проверьте, есть ли сеть физически (в логах dmesg должны быть строчки, что сетевые интерфейсы подняты).
Это с какой машины таблица маршрутизации?
фаерволы на обеих машинах выключил?
С обеих машин
ip a
ip r
ip ru
ip r g адрес_другого_компуктера
iptables-save
Во-первых, где шлюз по умолчанию?
Во-вторых, я правильно понимаю, что enp2s5 имеет адрес 192.168.100.166, а enp2s2 — 192.168.8.1?
Если это так, то что Вы хотите сказать вот этой строкой:
Вот это тоже лишнее:
Вместо них добавьте шлюз по умолчанию
(ip route add default gw $IP)
где $IP — IP-адрес шлюза.
Впрочем, связь между Ubuntu и CentOS должна и без шлюза по умолчанию заработать.
Да выходит что s5=100.166, s1=8.1 Я убрал эти значения что вы указали как лишние. Какой тогда использовать шлюз?
Другая информация была выше.
Выходит что мне должен раздавать интернет 166 айпи, к которому и подключен сам по себе сетевой кабель. А 8.1 быть как проводником к роутеру и от роутера до машины убунты с айпи 8.101 Как я понимаю эту схему.
Приведите новую таблицу маршрутизации с CentOS.
Связь между Ubuntu и CentOS должна и без шлюза появиться — они у Вас в одной сети (192.168.8.0/24) находятся.
А по поводу шлюза — Вам виднее, как сеть организована. Через какую машину в в интернет выходите?
Я к роутеру подкидываю сетевой кабель, от которого ща и получаю интернет. А когда тестирую связь машин, то откидаю кабель.
Выходит что мне должен раздавать интернет 166 айпи, к которому и подключен сам по себе сетевой кабель.
В этом случае в сети 192.168.100.0/24 должен быть шлюз, через который идет интернет. Вот его и объявляйте шлюзом по умолчанию.
А 8.1 быть как проводником к роутеру и от роутера до машины убунты с айпи 8.101
А вот тут поподробнее, пожалуйста. Как физически организована сеть между CentOS и Ubuntu? Из Ваших конфигов следует, что эти машины находятся в одной локальной сети.
Если это так, то о каком роутере между ними идет речь? Если нет, то конфиги надо менять, но чтобы понять, как именно, надо знать физическую конфигурацию сети.
А когда тестирую связь машин, то откидаю кабель.
Я правильно понимаю, что машины CentOS и Ubuntu напрямую соединены сетевым кабелем? Без роутеров и свичей между ними?
Источник
«Destination Host Unreachable» and ssh » No route to host»
При попытке пинга с Убунты локальной машины центос пишет
При попытке подключиться по ssh
На центосе стоит 2 сетевые карты с этими айпи. И нету подключения к интернету.
Нужно прописать маршруты до сети 192.168.100.0 из сети 192.168.8.0 и маршрут до 192.168.8.0 из 192.168.100.0.
Для узлов в сети 192.168.100.0 прописывайте маршрут на их шлюзе, а для 192.168.8.101 прописывайте маршрут на нём.
На убунте использую
Обе сети должны знать как с друг другом связаться.
Т.е. на хостах 192.168.100.0 должен быть маршрут до 192.168.8.0 и на 192.168.8.0 должен быть маршрут до 192.168.100.0, если на всех хостах сети 192.168.100.0 шлюзом указан 192.168.100.254, то пропиши на нём маршрут до сети 192.168.8.0 через 192.168.100.166, а на 192.168.8.101 пропиши либо маршрут до сети 192.168.100.0 через 192.168.8.1, либо пропиши его шлюзом.
Ну и правила iptables тоже.
Затем разрешение продвижения пакетов нужно настроить через sysctl.
все работает на центосе и убунта пингует центос.
Отлично, рад за Вас.
Но вот на убунте нету интернета, а на центосе все есть.
Все верно, так и должно быть. Чтобы появился интернет, нужно NAT настроить. И лучше это делать не на CentOS, а на шлюзе во внешнюю сеть (возможно, в Вашем случае это машина 192.168.100.254). Потому что, если Вы настроите на CentOS, интернет на Ubuntu, конечно, появится, но технически пакеты будут подвергаться двойному NAT — один раз на CentOS и второй — на шлюзе (т. к. CentOS не имеет публичного IP). Так что если есть доступ к шлюзу, настраивайте NAT на нем. И не забудьте прописать маршруты в сеть 192.168.8.0/24.
Я не имею доступу к машине с айпи 254. Есть только 2 полигонные машины центос и убунту. Вот как советует Константин попрописую шлюзы и как я понимаю уж препятствий для получения интернета на убунте не должно быть. Сейчас построю цепочку связи сети и буду прописывать.
forward на центосе прописан 1 в самих конфигах.
В общем я использовал это
Я не имею доступу к машине с айпи 254.
iptables -A FORWARD -s 192.168.8.0/24 -d 192.168.100.0/24 -j ACCEPT
iptables -A FORWARD -s 192.168.100.0/24 -d 192.168.8.0/24 -j ACCEPT
Этого мало. Надо на машине с CentOS разрешить forward всего трафика из сети 192.168.8.0/24 в обоих направлениях.
И вот это лишнее:
iptables -t nat -A POSTROUTING -o enp1s1 -j MASQUERADE
Вам надо маскарадить трафик, который идет на Ваш шлюз (192.168.100.254). Чтобы он воспринимал трафик из сети 192.168.8.0.24 (про которую он ничего не знает) как исходящий с машины с CentOS. Поэтому оставляете это правило только на интерфейсе с IP-адресом 192.168.100.166.
После этого, по идее, на машине с Ubuntu должен появиться интернет.
Это все лучше сделать через создание таблицы и что бы оно работало после ребута системы
Этого мало. Надо на машине с CentOS разрешить forward всего трафика из сети 192.168.8.0/24 в обоих направлениях.
Этим вы говорите о какой именно команде?
Глупо конечно, но может быть тут мешается центосовский firewalld?
Чем он может мешать? Я думаю просто не все правила внес, потому и нету самого доступа к интернету.
Так как писал ранее пингуются машины между собой и 254 айпи так же с 8.8.8.8, а вот если пропинговать google.com или ya.ru и так же попытаться подключится на убунте к интернету, то глухо.
Подожди, у тебя пингуется с убунты 8.8.8.8?
а в /etc/resolv.conf что нибудь есть?
Я потому и не могу понять, если пингуется 8.8.8.8 то по сути должен же быть доступ к интернету, так как это гугловский айпи. Но вот прописав google.com или ya.ru, к примеру, я не получаю пинга и браузер молчит.
В таком случае, что выдает ping google.com?
Да и куда прописать
это IP ya.ru. если пинг есть, то у тебя проблема не в машрутах и форвардинге, а в настройках DNS
А чем сеть на центосе поднимается? NetworkManager?
Пинг по айпи идет на всех машинах, тогда где все таки это днс?
А чем сеть на центосе поднимается? NetworkManager?
Да, на NetworkManager
Дописал в конфиге на центосе днс и теперь пингуется гугл и я.ру. Но с убунты нету пинга. Хотя даже вбивал при подключении днс который добавлен на центосе.
Да и куда прописать. . Что бы после перезагрузки сохранялись настройки.
Я не знаю, как именно в Ubuntu это делается, но обычно существует файл /etc/rc.local или /etc/init.d/rc.local (зависит от настроек системы инициализации Вашего дистрибутива), который является исполняемым sh-скриптом, и куда можно добавлять свои команды.
В ubuntu у Вас в качестве DNS-сервера указана машина CentOS. Там действительно DNS-сервер запущен?
Хотя даже вбивал при подключении днс который добавлен на центосе.
Если на машине с Ubuntu в файл /etc/resolv.conf добавить строку (предварительно убрав/закомментировав все остальные):
доменные имена начинают разрешаться?
Нет, доменные имена не разрешаются. Все так же. Возможно нужно вбить дополнительную команду? Так как вы выше писали что данных команд мало.
Нет, доменные имена не разрешаются. Все так же. Возможно нужно вбить дополнительную команду?
Погодите, Вы утверждаете, что машина 8.8.8.8 пингуется с Ubuntu? И при этом использовать ее в качестве DNS-сервера не получается?
Я правильно Вас понял? Тогда надо разбираться, что происходит с пакетами, отсылаемыми на 53 порт. Возможно, у Вас на шлюзе заблокированы DNS-запросы к внешним DNS-серверам.
Как проверить — запустить сниффер (например, tcpdump) и посмотреть, какие пакеты и куда идут при DNS-запросах. DNS-запросы можно генерировать командами host, nslookup или dig (см. соответствующие man’ы с описанием синтаксиса и ключей команд). Если запросы уходят, а ответов нет, Ваш шлюз блокирует DNS-запросы. В этом случае должен существовать собственный DNS-сервер в Вашей сети, стоит узнать его адрес у администратора и прописать в /etc/resolv.conf.
Да пинг идет. Вот что мы имеем.
И вот что мы имеем с Centos
И вот такая картина c Ubuntu
Очевидно, кто-то рубит пакеты, идущие на 53 порт с машины с Ubuntu. И скорее всего, это происходит на машине с CentOS. Если на ней tcpdump запустить в момент DNS-запросов с Ubuntu, что будет? Последовательно на двух интерфейсах — сначала на том, который в одной сети с Ubuntu, потом на внешнем.
Ну и еще раз призываю разрешить форвардинг всех пакетов на CentOS (сделать политику по умолчанию в цепи FORWARD ACCEPT).
Centos ip — 100.166
На 8.1 просто летят логи, а на 100.166 только это.
Вот что получилось.
Я так и не понял из треда, тебе нужны фаерволы на обоих ПК? Если нет, то отключи их.
Мне нужно настроить сеть в которой моя машина на убунте будет получать интернет от центоса на которой 2 сетевухи и в дальнейшем при запросе 192.168.100.166:10022 выполнялся запрос как 192.168.8.101:22 (ssh)
Не, это неинформативно. В первом случае все забито пакетами ssh — я так понимаю, что Вы не за консолью сидите на CentOS, а по ssh туда заходите. Ограничьте tcpdump по протоколу (udp) и порту (53) — нас сейчас именно dns-пакеты интересуют. Нужен трафик, снятый в момент dns-запросов с Ubuntu. С обоих интерфейсов CentOS.
Вот когда я пытаюсь пингонуть google.com
В общем, все подтверждается — машина с centOS блокирует DNS-запросы.
Смотрите настройки файрвола на CentOS.
Еще был вариант что сторонние программы мешали. Но я стопнул и перепроверил. Не дало результата. На счет настройки файрвола, что именно может блокировать?
На счет настройки файрвола, что именно может блокировать?
Я Вам несколько раз уже про это писал — проверьте параметры цепочки forward. Для начала установите политику по умолчанию для этой цепи на пропуск всех пакетов (iptables -P FORWARD ACCEPT). Если поможет, значит, Вы нашли виновника, надо детально разбираться в настройках iptables на машине с CentOS.
Да я прописывал и данную команду, но видимо что то могу упускать. Пересмотрел доки и все команды которые могли бы помочь были использованы и опробованы. Я вижу что вы пишите и ценю ваши порывы помочь мне. Просто я хочу до конца разобраться в этом и доделать. Просто из-за моего «опыта», которого нет в этом направлении, мне сложнее быстрее адаптироваться и направиться в нужном направлении.
Пробовал так прописывать.
Рад за Вас. Правда, не понял, зачем Вы сервисы поостанавливали.
По поводу настроек iptables. Все Ваши записи с модификациями цепочки FORWARD (iptables -A FORWARD. ) в данном контексте бессмысленны, т. к. политика по умолчанию задана на пропуск пакетов.
Тут есть два варианта. Если Вы полностью доверяете машинам в сети 192.168.8.0, то можете так и оставить настройки. При этом все правила модификации цепи FORWARD можно убрать, оставить только задание политики (iptables -P FORWARD ACCEPT).
Ну и второй вариант — разрешить форвардинг только тех портов и протоколов, которые необходимы. Например, полезно закрыть соединения на 25 порт tcp-протокола, исходящие с машин сети 192.168.8.0/24 — этим Вы нейтрализуете активность спамовых бот-сетей, которые могут завестись на машинах сети 192.168.8.0/24.
Если Вы пойдете по этому варианту, то нужно будет вернуть политику по умолчанию для цепи FORWARD в состояние DROP и тщательно настроить саму цепь с помощью iptables.
Источник
network: destination host unreachable
I am using Linux oess (CentOS). I am working on a VM:
In the terminal, I’m trying to:
to see my connectivity. It says:
Now I’m doing the same ping and it says:
for all the sequences.
What is the source of the problem?
route output:
8 Answers 8
try DHCP for the network interface
first things first. can you ping 192.168.56.1 ? if so then you have an IP connection to the router, set this as your default route. otherwise try pinging 192.168.56.255 (broadcast) to see on what address you might get replies. see arp -a to check what addresses you can find.
can you ping 8.8.4.4 (google) after changing the default route? if so you have internet access. if not check the router.
can you ping www.google.com? if not you might have a dns problem
do you get results from nslookup www.google.com ?
check the network card of the VM in the virtualization software. is it in «bridged» mode? or in a «NAT» or «host-only» mode?
in the last case change it to bridged and try $sudo dhclient
in the first case, see if the hypervisor itself can ping to its default gw and 8.8.4.4
There are two cases what a computer can do, when it has to forward an IP package:
First case: Say the destination IP of the incoming package is 10.20.30.40 and the interface on which the package arrives is configured to be 10.20.30.1 netmask 255.255.255.0 . This is, the packages destination subnet and the interfaces subnet are the same. Then your OS will forward the package to the broadcast 10.20.30.255 (it says «Here is a package that is addressed for someone in my own hood, so please take it!»).
Second case: Say the destination IP of the incoming package is 10.20.40.40 and the interface on which the package arrives is configured to be 10.20.30.1 netmask 255.255.255.0 . Then the
destination address lies outside of the interfaces subnet. So it does not know where to send it. So it forwards it to the default gateway
which in turn tries to find the destination.
In your case the default gateway is exactly the same as your interface IP. That means: When your computer does not know where to send a package it sends it to itself respectively to one of its own interfaces. That sounds strange — and it is. An interface gateway should be in the same subnet as the interface itself, but it should never BE itself. You need another default gateway in the same subnet to be happy.
If you don’t know your default gateway for this interface, so try to get a valid default gateway for this interface via DHCP configuration (configure this interface to be a DHCP client).
In the case you are working in a VM (I see it is Virtual Box) try to find out the IP address of the «Virtual Box Host Only Adapter» on your host machine (command: ifconfig or ipconfig). Then configure the IP address of the VM host only adapter to be the default gateway of your VM guest.
On your host machine your should activate ipv4-forwarding and NAT to get internet access:
If your want to use the «Host Only Adapter» then it may be possible, that you first have to create an «Host Only Network» under File->Preferences choosing the tab «Host Only Networks».
Источник