LINUX.ORG.RU
ФорумAdmin

вопрос по поводу маршрутизации


0

1

Есть интерфейс eth0 с ip 192.168.4.32 и подсетью 255.255.255.0 , через него пробрасывается pppoe получаем виртуальный интерфейс ppp0 с ip 10.10.34.77 с подсетью 255.255.0.0 и шлюзом 10.10.10.1

Пытаюсь прописать следующий маршрут:

route add -net 10.10.0.0 netmask 255.255.0.0 gw 10.10.10.1 dev eth0
Выдаёт ошибку.

Делаю следующим образом:

route add -net 10.10.0.0 netmask 255.255.0.0 gw 10.10.10.1
или
route add -net 10.10.0.0 netmask 255.255.0.0 gw 10.10.10.1 dev ppp0

Вопрос. Почему не прописывается к eth0??? Потому что шлюз к которому прописывается маршрут находится в подсети которой не принадлежит интерфейс eth0???

★★

Потому что шлюз к которому прописывается маршрут находится в подсети которой не принадлежит интерфейс eth0???

Да. Если я все правильно понял, должно быть так:

ip route add 10.10.0.0/16 dev ppp0

dexpl ★★★★★ ()

Желательно озвучивать ошибки.

ppp0 замечательный интерфейс. Ничуть не хуже eth0. Что ты к eth привязался?

И зачем тебе маршрутизацию прописывать? Автоматом разве пакеты не по назначению ходят?

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

ip route add 10.10.0.0/16 dev ppp0

Ну да нужно так.

И зачем тебе маршрутизацию прописывать? Автоматом разве пакеты не по назначению ходят?

Ходят но дело не в этом.

Я просто не знал что если шлюз находиться в подсети другого интерфейса то к нему нельзя прописать маршрут.

v4567 ★★ ()

route add -net 10.10.0.0 netmask 255.255.0.0 gw 10.10.10.1 dev eth0

А в чём смысл такого маршрута?

shell-script ★★★★★ ()

ip-адрес шлюза в удаленной сети через не P2P интерфейс ? Отказать!

Почему ? Потому, что не определить MAC адрес.

Для интерфейса P2P не нужен ни адрес шлюза, ни МАС адрес.

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

Я просто не знал что если шлюз находиться в подсети другого интерфейса то к нему нельзя прописать маршрут.

Это неправильная формулировка, правильнее будет:

Для не point-to-point сетевых интерфейсов нельзя прописать маршрут через шлюз, который не входит в подсеть, назначенную на данный интерфейс.

Хотя это и не так, с помощью команды ″ip″ и волшебного слова ″onlink″ можно прописывать такие маршруты.

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

Потому, что не определить MAC адрес.

А если я знаю MAC адрес и пропишу его в ручную в arp таблицу, так то он не будет стираться при перезагрузке, всё время будет там.

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

так то он не будет стираться при перезагрузке, всё время будет там.

Как не будет? Ещё как при перезагруке будет стиратся, нужно будет, чтобы MAC-адрес прописывался в boot-скриптах.

Замечю, что когда вы заносите arp-запись, уже не важно, из какой подсети gateway, да и его ip-адрес не важен, и может быть любым, всё одно в пакетах, идущих через шлюз ip-адрес шлюза не фигурирует.

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

mky

Я уже немного и сам запутался, но сейчас вроде разобрался.

Получается следующее:

У меня есть два интерфейса: eth0 и ppp0 Касательно интерфейса eth0 - прописан маршрут только к под сети (в которой соответственно находится интерфейс eth0). Касательно интерфейса ppp0 - прописан маршрут к под сети (в которой соответственно находится интерфейс ppp0) и прописан маршрут по умолчанию к шлюзу который находится в этой под сети - ppp0 Я пытаюсь прописать маршрут к шлюзу который физически (и по ip то же, его ip принадлежит под сети ppp0) находится в под сети ppp0 но в команде ставлю dev eth0 - у меня ничего не получается, потому что тогда некому будет отсылать пакеты. ip этого шлюза принадлежит под сети ppp0 (а у меня бы, если бы мне разрешили прописать маршрут к этому шлюзу, пакеты направлялись бы в под сеть eth0) и в под сети eth0 не прописан маршрут ни к какому шлюзу (прописан маршрут только к под сети eth0). Поэтому есть 2 варианта: 1. В команде ставить dev ppp0 2. Прописать маршрут к какому нибудь шлюзу находящемуся в под сети eth0 - тогда если я смогу прописать маршрут к шлюзу находящемуся в под сети ppp0, при этом в команде поставить dev eth0 и ошибку мне уже не выдаст и маршрут пропишется. В 1 варианте будет всё работать, а вот во 2 работать будет если шлюз находящийся в под сети eth0 связан напрямую или через другие шлюзы с под сетью ppp0. Если же он не никак не связан с под сетью ppp0 то работать не будет, хотя правило о котором мы говорим пропишется и ошибок при написании не выдаст. Надо будет попробовать на самом деле проделать то о чём я здесь написал - выбрав просто какой нибудь ip из под сети eth0 и прописать к нему маршрут как к шлюзу. Получается MAC адрес тут не причём (ведь когда например я по веб интерфейсу захожу на mail.ru всё ведь работает, и MAC адреса ихних серверов я не знаю).

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

2. Прописать маршрут к какому нибудь шлюзу находящемуся в под сети eth0 - тогда если я смогу прописать маршрут к шлюзу находящемуся в под сети ppp0, при этом в команде поставить dev eth0 и ошибку мне уже не выдаст и маршрут пропишется. В 1 варианте будет всё работать, а вот во 2 работать будет если шлюз находящийся в под сети eth0 связан напрямую или через другие шлюзы с под сетью ppp0. Если же он не никак не связан с под сетью ppp0 то работать не будет, хотя правило о котором мы говорим пропишется и ошибок при написании не выдаст.

Очень смутно понял о чём это. Одно точно, что если прописывать маршруты от балды, то работать не будет :-)

По поводу MAC-адреса. Он нужен только если прописывается маршрут через интерфейс ethernet. Я вам пытался объяснить, что когда вы пишете:

route add -net 10.10.0.0 netmask 255.255.0.0 gw 10.10.10.1 dev eth0

то совсем не нужно, чтобы в сети eth0 была машинка с адресом 10.10.10.1, необходимо, чтобы ваш компьютер каким-то образом знал MAC-адрес шлюза (10.10.10.1).

у меня ничего не получается, потому что тогда некому будет отсылать пакеты. ip этого шлюза принадлежит под сети ppp0

Ещё раз повторю, что дело не в том, что ip шлюза пренадлежит подсети ppp0, а в том, что ip-шлюза не принадлежит ни одной из подсетей, назначенных на eth0.

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

mky Спасибо за помощь и разъяснения!

У меня ещё есть пару вопросов:

Есть прописанный маршрут по умолчанию в виртуальном интерфейсе.

Destination     Gateway      Genmask    Use Iface
0.0.0.0         0.0.0.0      0.0.0.0     ppp0

Destination - 0.0.0.0 это понятно маршрут по умолчанию. Genmask - 0.0.0.0 это то же понятно маска как бы ко всей сети. Gateway - 0.0.0.0 а вот это не понятно, шлюз, но что за ip????

И второй вопрос.

При подключении по vpn получаю виртуальный интерфейс и по команде ifconfig имею:

ppp0     ip1 p-to-p ip2

Какой ip присвоен компьютеру с которого соединяются по vpn, а какой серверу????

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

Gateway - 0.0.0.0 а вот это не понятно, шлюз, но что за ip?

Когда маршрут прописывается прямо в интефейс, то шлюза нет. Но команда ″route″ должна что-то вывести в этом поле, чтобы вывод имел вид таблицы. Посмотрите маршруты в варианте команды ″ip route″.

ppp0 ip1 p-to-p ip2

Это какой то странные ifconfig. У меня выводится:

inet addr:ip1  P-t-P:ip2  Mask:255.255.255.255
Двоеточия там не просто так стоят.

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

mky

Двоеточия там не просто так стоят.

Согласен не точно написал. Так какой из них присваивается компьютеру, а какой серверу?

Когда маршрут прописывается прямо в интефейс, то шлюза нет.

Получается это не маршрут по умолчанию?

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

inet addr — данному компьютеру (где запускался ifconfig), P-t-P — противоположной стороне.

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