LINUX.ORG.RU
ФорумAdmin

Помогите route настроить...


0

0

Есть два роутера (ADSL D-link 500T), назову их роутер-1 и роутер-2. За каждым из роутеров -- сетка. За роутером-1 сеть-1, за роутером-2 сеть-2.

Каждый роутер соединен через ppp с общим сетевым шлюзом (у обоих роутеров адрес шлюза совпадает). Этот шлюз является для них маршрутом по умолчанию.

Роутеры видят друг друга (пингуются между собой и т. п.).

С роутера-1 пытаюсь получить прописать маршрут к сети-2.

Пишу: route add -net 192.168.1.0/24 gw роутер-2

Получаю в ответ: "route: resolving 192.168.1.0/24" и в таблице маршрутизации (которую route) показывает ничего не прибавляется.

Прописываю тогда путь к роутеру-2 через шлюз: "route add роутер-2 gw шлюз". Маршрут добавляется, но это ничего не дает (все то-же "route: resolving 192.168.1.0/24" при попытке сделать "route add -net 192.168.1.0/24 gw роутер-2"

При проделывании аналогичных действий на роутере-2 (попытки соединения с сетью-1 через роутер-1 вылезает похожее сообщение: "route: can't resolve 192.168.8.0/24" (сеть-1). (сообщение немного отличается от сообщения роутера-1, т.к. пошивка у роутеров разная).

Вопросы: во первых, нужно-ли явно прописывать маршруты от одного роутера до другого в данно случае (они и так доступны друг для друга). Подозреваю что нет...

Во вторых: что я делаю не так, и как сделать доступной сеть за роутером-1 для роутера-2 и наоборот.

★★★★★

1. похоже, маршрут должен быть прописан еще и на "главном роутере" - который у них шлюз по умолчанию
2. а адреса ppp интерфейса роутера1 и роутера2 в одной подсети? если нет, то нет и смысла прописывать на них что-либо!

victorb ★★
()

На сколько я понял написанное, маршруты к сетям нужно прописывать на общем шлюзе, к которому модемы подключены по PPP.
Если он не доступени, просите его администратора.
Хотя если модемы пингуются по ppp, то долна работать маршрутизация
route add -net 192.168.8.0/24 gw ppp2 на 1-м модеме и
route add -net 192.168.1.0/24 gw ppp1 на 2-м.

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

>2. а адреса ppp интерфейса роутера1 и роутера2 в одной подсети? если нет, то нет и смысла прописывать на них что-либо!

У интерфейса ppp0 на роутерах стоит маска подсети 255.255.255.255. То есть подсети никакой нет ;)

Я все-таки думаю, есть какой-нибудь способ это сделать, ведь роутеры (модемы то есть) друг друга нормально видят.

В настоящее время организован доступ по ssh между компьютерами из разных подсетей (сеть-1 и сеть-2 в моем примере). Сделанно это через DNAT. То есть у компов из сети-1 есть нормальный доступ к роутеру-2. Но не дальше...

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

ну вот смотри, что происходит: комп в сети1 посылает запрос к компу2.
пакет приходит на роутер1. у роутера1 маршрут по умолчанию идет на "главный роутер". пакет уходит на "главный роутер". А "главный роутер" не знает куда слать пакет в сеть2, и шлет в инет. так этот пакет и гибнет. Короче, варианты
1. попросить админа "главного роутера" прописать марштуты
2. прописывать тунель между роутерами (гимор).

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

>Если он не доступени, просите его администратора.

Связи с администратором шлюза у меня нет. И админ таким заморачиваться точно не станет. Тем более, что связь от роутера-1 до роутера-2 есть.

>route add -net 192.168.8.0/24 gw ppp2 на 1-м модеме и >route add -net 192.168.1.0/24 gw ppp1 на 2-м.

У каждого роутера только один ppp интерфейс ;) Если прописать "route add -net сеть gw другой_роутер" то один роутер напишет: "route: resolving 192.168.1.0/24", а другой: "route: can't resolve 192.168.8.0/24"

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

Пусть адрес ppp1 10.1.1.2, а ppp2 10.1.1.3 (их общий шлюз 10.1.1.1)
Подставляешь в route add соответсвующие адреса и сети с масками.
Должно работать.

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

Админ "главного роутера" не станет прописывать маршрут из 192.168.1.0 в 192.168.8.0, так как сетка большая (локалка провайдера), и сетей "192.168.1.0" -- штук 30 точно.

>2. прописывать тунель между роутерами (гимор).

А он точно нужен? Именно тунель, а не маршрут?

Вопрос в том, почему маршрут не хочет устанавливаться. Или я что-то не так делаю, или софт глючит (busybox).

При чем тут "resolve"??? Я же не доменное имя пишу. В man route про resolvе ничего нет.

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

Да, попробовал.
Фиг вам: resolving, и маршрут не добавляется.
Тогда только VPN делать.

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

> Вопрос в том, почему маршрут не хочет устанавливаться. При чем тут "resolve"???
Похоже, что синтаксис неправильный, попробуйте так:
route add -net 192.168.1.0 netmask 255.255.255.0 gw роутер-2

man route

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

>route add -net 192.168.8.0/24 gw ppp2 на 1-м модеме и >route add -net 192.168.1.0/24 gw ppp1 на 2-м. >Пусть адрес ppp1 10.1.1.2, а ppp2 10.1.1.3 (их общий шлюз 10.1.1.1) >Подставляешь в route add соответсвующие адреса и сети с масками. >Должно работать. Именно так и делаю. И получаю ошибки "route: can't resolve" Поискал только что такую фразу сначала на форуме d-link, потом в яндексе. Ничего не найденно.

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

>Похоже, что синтаксис неправильный, попробуйте так:

>route add -net 192.168.1.0 netmask 255.255.255.0 gw роутер-2

Spirit, Вы -- гений! Я бы еще день думал, почему все не работает. Откуда у меня такая привычка к /24 ? ;)

Теперь пишет: "SIOCADDRT: Network is unreachable". То есть тоже не рабоатет, но зато этому есть какие-то логические объяснения, и в инете инфы куча.

В общем, все пока спасибо. Потом может буду еще вопросы задавать ;)

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

Видимо формат route в busybox несколко отличается от обычного. Есть еще iproute. А вообще лучше трясти McMcc, но его давно не видно. Или спросить (или поискать) здесь: http://forum.ixbt.com/topic.cgi?id=14:34671-99

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

> Теперь пишет: "SIOCADDRT: Network is unreachable".
А можно увидеть вывод ifconfig на том маршрутизаторе, на котором добавляете маршрут, и полный вариант команды "route" (интересует параметр "gw роутер-2" - IP "роутера-2") ?

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

>А можно увидеть вывод ifconfig на том маршрутизаторе, на котором добавляете маршрут, и полный вариант команды "route" (интересует параметр "gw роутер-2" - IP "роутера-2") ?

Сейчас... Вот роутер, соединенный с сетью 192.168.8.0/24. Из него я пытаюсь добраться до сети 192.168.1.0/24 через другой роутер (87.228.42.8). Стоит прошивка от McMCC.

# uname -a
Linux router 2.4.17_mvl21-malta-mips_fp_le #1 Срд Окт 19 01:10:42 MSD 2005 mips unknown
# ifconfig ppp0
ppp0 Link encap:Point-Point Protocol
inet addr:87.228.41.228 P-t-P:83.217.192.134 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1492 Metric:1
RX packets:2026 errors:0 dropped:0 overruns:0 frame:0
TX packets:1900 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:1434886 (1.3 MiB) TX bytes:262453 (256.3 KiB)

# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
83.217.192.134 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
192.168.8.0 0.0.0.0 255.255.255.0 U 0 0 0 br0
192.168.0.0 0.0.0.0 255.255.0.0 U 0 0 0 ppp0
239.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 br0
10.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 ppp0
0.0.0.0 83.217.192.134 0.0.0.0 UG 0 0 0 ppp0
# ping -c 1 87.228.42.8
PING 87.228.42.8 (87.228.42.8): 56 data bytes
64 bytes from 87.228.42.8: icmp_seq=0 ttl=254 time=10.0 ms

--- 87.228.42.8 ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 10.0/10.0/10.0 ms
# route add -net 192.168.1.0 netmask 255.255.255.0 gw 87.228.42.8
route: SIOC[ADD|DEL]RT: Network is unreachable
#

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

В более удобночитаемой форме....

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
83.217.192.134  0.0.0.0         255.255.255.255 UH    0      0        0 ppp0
192.168.8.0     0.0.0.0         255.255.255.0   U     0      0        0 br0
192.168.0.0     0.0.0.0         255.255.0.0     U     0      0        0 ppp0
239.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 br0
10.0.0.0        0.0.0.0         255.0.0.0       U     0      0        0 ppp0
0.0.0.0         83.217.192.134  0.0.0.0         UG    0      0        0 ppp0

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

# ping -c 1 87.228.42.8 
PING 87.228.42.8 (87.228.42.8): 56 data bytes 
64 bytes from 87.228.42.8: icmp_seq=0 ttl=254 time=10.0 ms

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

Может стоит явно указать интерфейс ?
route add -net 192.168.1.0 netmask 255.255.255.0 gw 87.228.42.8 dev ppp0
(или не ppp0 ?)

Кстати, а почему такой gw, а не тот, что в ifconfig-е (P-t-P:83.217.192.134) ?

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

>Может стоит явно указать интерфейс ?

Может быть... Прийду домой -- попробую.

>route add -net 192.168.1.0 netmask 255.255.255.0 gw 87.228.42.8 dev ppp0 (или не ppp0 ?)

Ну да, ppp0

>Кстати, а почему такой gw, а не тот, что в ifconfig-е (P-t-P:83.217.192.134) ?

Я думаю, не надо. Я не могу на этом гейтвее прописать свою маршрутизацию (это шлюз провайдера). То есть, когда туда прийдет пакет на адрес 192.168.1.х, то этот гейтвей не поймет, что с ним делать.

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

> Я думаю, не надо. Я не могу на этом гейтвее прописать свою маршрутизацию
А как это ? :-) Я ведь тоже много чего хочу, но не всегда все так, как хочу, бывает на самом деле.
Разве правила (читать "законы") маршрутизации пакетов зависят от того кто, что и где может/не может прописать ? :-))

> То есть, когда туда прийдет пакет на адрес 192.168.1.х, то этот гейтвей не поймет, что с ним делать.
В этом ответ и заключается ! Т.е. имеем ситуацию: из точки A надо передать пакет в точку B, но попути есть точка C, которая ничего не знает о точке B. Выход: передавать пакет в точку X, о которой знает точка C (шлюз провайдера), и которая знает о точке B (о сети 192.168.1.0/24).
По-русски: как вам уже советовали, создайте туннель между 87.228.41.228 (исходный router) и 87.228.42.8 ("роутер-2") через шлюз провайдера. И прописывайте маршрут к 192.168.1.0/24 через этот тунель, например:
route add -net 192.168.1.0 netmask 255.255.255.0 gw x.x.x.x dev tun0
где x.x.x.x - IP адрес на другом конце туннеля.

Или я что-то неправильно понял ?

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

>Разве правила (читать "законы") маршрутизации пакетов зависят от того кто, что и где может/не может прописать ? :-))

Абсолютно не хочется спорить, к тому же я плохо разбираюсь в маршрутизации, но если вырвать эту фразу из контекста и прочитать -- то мне начинает казаться, что именно от этого маршрутизация и зависит ;)

>В этом ответ и заключается ! Т.е. имеем ситуацию: из точки A надо передать пакет в точку B, но попути есть точка C, которая ничего не знает о точке B. Выход: передавать пакет в точку X, о которой знает точка C (шлюз провайдера), и которая знает о точке B (о сети 192.168.1.0/24).

Штука вся в том, что точка C знает о точке B. Я просто пытаюсь сделать из какого-нибдуь модема такую точку X.

>По-русски: как вам уже советовали, создайте туннель между 87.228.41.228 (исходный router) и 87.228.42.8 ("роутер-2") через шлюз провайдера. И прописывайте маршрут к 192.168.1.0/24 через этот тунель, например: route add -net 192.168.1.0 netmask 255.255.255.0 gw x.x.x.x dev tun0

Увы, модемы не понимают "dev tun" ... То есть такой функциональностью их не оснастили. На модеме с прошивкой от McMCC есть ip в busybox'овом варианте, который на команду "ip tunnel add netb mode gre remote 87.228.42.8 local 87.228.41.228 ttl 255" выдает: "ip: ioctl: No such device". Вообще-то я только сейчас понял, что это busybox, до этого думал, что туда нормальный iproute засунут. Почитаю потом доки по busybox'у. На другом модеме, со стандартной прошивкой "ip" отсутствует вообще. Хотя перепрошить -- не долго.

Еще как-нибудь тоннели делать можно на таких убогих устройствах?

Вообще-то я уже сделал ssh тунелирование из одной сети в другую (192.168.1.9 <--> 192.168.8.2). На модеме, примыкающем к 192.168.8.0/24 сделан проброс портов до 192.168.8.2. И все. Правда, пока все по конкретным портам (прокси и еще кое-что), нормальный доступ не делал (то есть маршрутизации не происходит, просто порт одного компа подрубается к порту другого компа).

Но я просто не могу понять, почему обычная маршрутизация не работает?

Ну и что, что между модемами -- шлюз, они же видят друг друга. А сети друг за другом -- нет, ни в какую. Не понимаю...

К примеру, есть комп в инете (77.77.77.77), с которым у меня есть связь, и я знаю, что за ним есть 10.0.0.0/8. Я не пойму, почему мне нельзя просто прописать на своем компе "route add -net 10.0.0.0 -netmask 255.0.0.0 gw 77.77.77.77", и, при минимальной настройке фаервола на 77.77.77.77 (просто что-бы он разрешал FORWARD с моего инетовского адреса к себе в сеть 10.0.0.0/24 и абратно, т.е. без всякого NATa). Так вот, почему нельзя так сделать и получить доступ к 10.0.0.0/24 ?

Ладно, в любом случае, spirit, спасибо за помошь!

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

Гмы... Прошу прощения у всех за свои тормоза, я все понял.

Маршрутизация не получится, как мне тут неоднократно сказали, потому-что шлюз провайдера не будет знать, куда отправлять пакеты с адресом 192.168.х.х.

Извините, что так долго тут всех мучал ;)

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