LINUX.ORG.RU

При попытке добавить маршрут - No such process


0

1

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

sudo route add default gw 192.168.123.2

No such process, говорит он мне. Что это?? Не могу понять)

> 192.168.123.2, линуху - 192.168.122.2 192.168.123.2

И небойсь во всех этих хостах маска 255.255.255.0

Tok ★★
()
Ответ на: комментарий от farewell

У тебя должен быть примежутачный комп\ВМ чтоб работала как маршрутизатор... и находилась одновременно в двух этих подсетях.. 192.168.122.2 192.168.123.2 ... а так как ты сделаешь это не по ГЗОТУ.....

Tok ★★
()
Ответ на: комментарий от uspen

В одну подсеть нельзя, по заданию. Можно поподробнее «через общий шлюз» = ? В винде, когда я айпишник вбивал, я шлюз выбрал такой: 192.168.123.1. Как такой же в линухе вбить?

farewell
() автор топика
Ответ на: комментарий от Tok

2 компа в разных подсетях успешно обмениваются пакетами и плачут от счастья. Никаких промежуточных пунктов нет, все сделано при помощи таблиц маршрутизации..

farewell
() автор топика

Это переводится на русский как «чувак, я НЕ УМЕЮ обращаться к хосту 192.168.123.2, у меня нет для этого маршрута».

thesis ★★★★★
()
Ответ на: комментарий от thesis

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

farewell
() автор топика
Ответ на: комментарий от farewell

Суть проблемы в том что линукс и винда находятся в разных подсетях...

Грубо говоря.. Линукс знает куда слать пакеты только хостам с 192.168.122.1 по 192.168.122.254... ВСЁ надругие хосты линукс слать не умеет и не должен уметь .... Чтоб он мог добратся до хоста 192.168.123.2.. должен быть промижутачный хост (маршрутизатор\шлюз) который одновременно должен находится в этих подсетях... тоесть

Маршрутизатор; Интерфейс1 = 192.168.122.254 Интерфейс2 = 192.168.123.254

Тогда ты говоришь линуксу либо

route add default gw 192.168.122.254 - Если хост-цель находится за приделами 192.168.122.1 - 192.168.122.254 то пересылать его сразуже через хост 192.168.122.254 Либо

route add -net 192.168.123.0/24 gw 192.168.122.254 - Если хост-цель находится из подсети 192.168.123.1 по 192.168.123.254 то переслать его через хост 192.168.122.254

ПОДРУГОМУ НЕ КАК....

--- Чит Данный способ не есть нормальным и так машины в сети не должны себя вести... Это не по стандарту и Cisco такой подход не одобряет ... НО линукс умеет игнорировать данные запреты и можно заставить линукс передавать пакеты на хосты которые не есть с его подсети..

ip r a 192.168.123.0/24 dev eth0 src 192.168.122.2

НО ЭТО НЕ ПОПРАВИЛАМ... поэтому в задании решением токим способом не может быть ...

Tok ★★
()

Linux, добавить маршрут для сети, в которой находится windows, затем добавить маршрут до хоста, хотя может уже и не понадобится маршрут до хоста.

route add 192.168.123.0/24 dev eth0
route add 192.168.123.2/24 dev eth0
Windows:
route add 192.168.122.0 mask 255.255.255.0 192.168.123.2
route add 192.168.122.2 192.168.123.2

kostik87 ★★★★★
()
Ответ на: комментарий от Tok

Зачем вам шлюз, можно просто добавить маршрут через интерфейс на нужную сеть, вот мой пример, правда я здесь указал добавление также маршрутов до хостов, но в принципе после добавления маршрута на сеть это не обязательно.

kostik87 ★★★★★
()
Ответ на: комментарий от Tok

Понял, спасибо. Там чувак написал внизу способ, сейчас его опробую..

farewell
() автор топика
Ответ на: комментарий от kostik87

машинально... тогда

route add -host 192.168.123.2 dev eth0 

Но даное правило не нужно если есть

route add -net 192.168.123.0/24 dev eth0

Tok ★★
()
Ответ на: комментарий от Tok

В принципе да, но я явно указывать "-net" или "-host" не нужно, на это указывает маска «/24», в данном случае при такой маске, если последние 8 бит равны нулю, то это адрес сети, если не не равны нулю, то адрес хоста, исключая «255» - широковещательный адрес для этой сети.

kostik87 ★★★★★
()
Ответ на: комментарий от farewell

Ну по если играь по правилам то всё оно верно тебе говорит .... А так срано.. что за версия ядра линукс ? uname -a

Tok ★★
()
Ответ на: комментарий от farewell

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

Перезагрузитесь и выполните эти две команды:

Linux:
route add 192.168.123.0/24 dev eth0

Windows:
route add 192.168.122.0 mask 255.255.255.0 192.168.123.2

kostik87 ★★★★★
()
Ответ на: комментарий от Tok

2.6.35 - 22 Ну да разве это важно? Давайте лучше разберемся с ответом от kostik87. Я пытаюсь прописать маршрут до сети, в которой винда, а он говорит, что Netmask 000000ff doesn't make sense with the host route. Что это значит, если по-русски?

farewell
() автор топика
Ответ на: комментарий от kostik87

Что-то ты делаешь по своему в man к route написано использйте -net, -host ... и оно у товарища не работает что ты насоветовал... проверил бы на работу способность сначала....

Tok ★★
()
Ответ на: комментарий от farewell

И будет вам счастье ...

route add -net 192.168.123.0/24 dev eth0
route add -host 192.168.123.2 dev eth0

Tok ★★
()
Ответ на: комментарий от Tok

Да видимо немного напутал, я последнее время пользовался утилитами из пакета iproute2, там можно писать так:

ip route add 192.168.123.0/24 dev eth0

А для старого route нужно писать всё же так:

route add -net 192.168.123.0/24 dev eth0
Извиняйте.

kostik87 ★★★★★
()
Ответ на: комментарий от kostik87

Я тоже пользуюсь пакетом iproute2 и я ТС предлогал пример

ip r a 192.168.123.0/24 dev eth0 src 192.168.122.2

НО поватарюсь... ЭТО НЕ ПО ПРАВИЛАМ.. это не верное повидение системы относительно стандартам...

Tok ★★
()
Ответ на: комментарий от kostik87

Сейчас затестю. Сначала, значит, впишем маршрут до подсети с виндой, а потом маршрут до самой винды, так? С помощью add -host.

farewell
() автор топика
Ответ на: комментарий от farewell

На обоих системах должно хватить маршрута до сети со второй системой.

kostik87 ★★★★★
()
Ответ на: комментарий от kostik87

Добавил подсеть, а потом хост. Это все на линуксе. Понимаю, что вряд ли сейчас они должны пинговаться, но все-таки проверил - не пингуются. Так и надо? На винде пока не вбивал данные в таблицу, там вообще отдельная история - ЕГГОГ: (Destination&Netmask) != Destination.

farewell
() автор топика
Ответ на: комментарий от farewell

А как вам Windwos пришлёт ответный icmp пакет ? Она не «видит» хост, послаашй icmp запрос, вот когда добавите на windows маршрут до сети с Linux тогда и пингуйте.

kostik87 ★★★★★
()

Спасибо, друзья! Все работает и пингуется.

farewell
() автор топика
Ответ на: комментарий от farewell

>2 компа в разных подсетях успешно обмениваются пакетами и плачут от счастья. >Никаких промежуточных пунктов нет, все сделано при помощи таблиц >маршрутизации..
Кооонечно. Сам им был не раз.
Во сколько это пива и не рассказарых рассказов... :)
Я имею ввиду про статику маршрутиризации.

hbars ★★★★★
()

sudo route add default gw 192.168.123.2

А кто напишет dev ethX ???

no-dashi ★★★★★
()
Ответ на: комментарий от Tok

Это хорошо, но получается с вашей точки зрения логичнее было бы тогда создать alias на сетевую карту, предположим eth0:0 и дать ему ip адрес из сети windows., а потом уже назначить маршрут, тогда с вашей точки зрения обе машины будут в одной сети и шлюз не нужен, да и маршрут назначать тоже наверно не придётся.

kostik87 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.