LINUX.ORG.RU
решено ФорумAdmin

Добавление маршрута через шлюз из другой подсети

 , ,


0

2

Добрый день! В Linux’e можно добавить статический маршрут через шлюз из другой подсети (не direct connected)?

То есть, таблица маршрутизации:

default via 192.168.0.78 dev eth0 
169.254.0.0/16 dev eth0 scope link metric 1002 
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.238
192.168.1.0/24 via 192.168.0.78 dev eth0 

Нужно трафик к хосту 178.238.26.69/32 отправлять через 192.168.1.1. Соответственно проблема:

[root@srv-est-zbx-03 ~]# ip route add 178.238.26.0/24 via 192.168.1.1 dev eth0
RTNETLINK answers: Network is unreachable

Спасибо

Нет, нельзя.

Шлюз должен быть в непосредственно подключенной сети.

Есть исключение - маршрутизация через интерфейс point-to-point.

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

вообще никак? Роутеры на базе unix умеют, может есть какое-то решение не стандартное?

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

Это какие умеют? Оффторик позволял ставить любые адреса шлюзов при явном задании интерфейса, но оно после этого тупо не работало.

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

Есть вариант: вычислить через ip ro get remote_gw | awk '$2 == "via"{print $3}' для не локального адреса шлюза по текущей таблице маршрутизации маршрут и взять из него шлюз для добавляемого маршрута.

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

Это какие умеют?

Juniper умеет, Mikrotik вроде тоже.

Есть вариант: вычислить через ip ro get remote_gw | awk ‘$2 == «via»{print $3}’ для не локального адреса шлюза по текущей таблице маршрутизации маршрут и взять из него шлюз для добавляемого маршрута.

Извините, чёт не понял. Всё равно ведь получу шлюз 192.168.0.78 или нет?

hudsucker ()
Ответ на: комментарий от Morin

add route -net

Поддерживаю vel’a на счёт поподробнее. У меня через add route -net те же пироги что и через ip route add

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

Роутеры на базе unix умеют, может есть какое-то решение не стандартное?

Не имеют права уметь: это неопределённое поведение, tcp/ip так не работает.

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

Juniper умеет, Mikrotik вроде тоже.

Создать такую запись в RT не сложно, но вот как оно при этом будет работать?

Как ты думаешь, на какой ip/mac в твоей ситуации должен уходить пакет адресованный в 178.238.26.0/24 с хоста 192.168.0.238 ?

Извините, чёт не понял. Всё равно ведь получу шлюз 192.168.0.78 или нет?

Именно так.

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

Да, я понял, работать не будет в любом случае

А на счёт unix-based роутеров, это я рекурсивную маршрутизацию имел в виду, это не то

Буду настраивать policy-based routing на шлюзе

Всем спасибо за помощь!

hudsucker ()
Последнее исправление: hudsucker (всего исправлений: 1)
Ограничение на отправку комментариев: только для зарегистрированных пользователей