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

изменить метрику маршрута, полученного по RIP

 ,


0

1

Есть железка (обозначим как host1) на Linux, которая должна общаться с двумя удаленными железками (host2 и host3). Железка подключенная двумя интерфейсами к двум... назовем это «маршрутизаторам» (хотя функционально ограниченными), R1 и R2. Каждый маршрутизатор соединен двумя каналами через внешние сети с обоими удаленными железкам (внешняя сеть не IP, для маршрутизатора каждый канал выглядит как выделенный).

Вот так: https://i.ibb.co/myfdxcB/net.png

Если какой-то канал (ch1 или ch2) становится недоступен, то на маршрутизаторе пропадает и соответствующий маршрут на удаленную железку. На host1 каждый маршрутизатор умеет сообщать свои маршруты только по RIPv2 и больше никак. При этом все активные маршруты передает с одинаковой метрикой.

Т.е., если все каналы работают, то на локальной железке есть по два маршрута на каждую удаленную железку с одинаковой метрикой. А нужно по другому - чтобы маршрут на host2 через R1 имел метрику ниже (приоритет выше), чем маршрут на host3 через R1. И маршрут на host3 через R2 имел метрику ниже, чем маршрут на host3 через R1.

Тогда в нормальной ситуации (все каналы в работе) трафик на host2 пойдет через R1, трафик на host3 - через R2. Если какой-то канал отвалился, то соответствующий маршрут в таблице на host1 пропадет, и трафик на удаленный хост пойдет через другой маршрутизатор.

Маршруты нужно именно получать по RIP, а не прописывать статически, т.к. именно по RIP я получаю информацию о падении каналов (исчезает соответствующий маршрут - не сразу, конечно, но это устраивает), использовать же другие протоколы динамической маршрутизации возможности нет.

Т.е. задача: средствами host1 (Linux) уметь принудительно изменить метрику маршрута, полученного по RIPv2, в зависимости от сети назначения и адреса шлюза.

я покопался в возможностях ip2, iptables - но что-то ничего похожего не нашел.


что используется для работы с RIP (gated,quagga,...)? Туда и смотреть. Есть сомнения, что для RIP такой функционал существует.

IMHO более правильное решение - изменить метрики интерфейсов на хостах 2 и 3.

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

IMHO более правильное решение - изменить метрики интерфейсов на хостах 2 и 3.

к сожалению, дальше с метриками ничего не сделать. R1 и R2 - некие «недомаршрутизаторы», назначать на них метрики на внешние каналы нельзя и все свои маршруты они могут отдавать по RIP только с одной метрикой. С любой, но только с одной, одинаковой для всех маршрутов.

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

отсюда и такая извращенная задача.

mik73 ()
Ответ на: В quagga есть от libert0

libert0

спасибо. помогло, работает как хотелось.

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