воскресенье, 21 ноября 2010 г.

RIP

Routing Information Protocol - самый старый динамический протокол маршрутизации. Относится к к протоколам внутреннего шлюза (IGP), тип - дистанционно-векторный протокол, т.е. о полной топологии сети не знает, знает только дистанцию (метрику) и вектор (next-hop адрес). Изначально был разработан компанией Xerox, но со временем многие включили его в свои продукты (к примеру BSD) и по этому получил широкое распространение.

Описан в RFC 1058 - RIPv1, RFC 2453 - RIPv2 и RFC 2080 - RIPng (ipv6).

Основные характеристики RIPv2.
- бесклассовый протокол ( в обновления включает маску сети)
- понимает VLSM и CIDR
- поддерживает не соприкасающиеся (discontiguous) сети
- периодические обновления (каждые 30сек)
- для рассылки обновлений используется  мультикастовый адрес 224.0.0.9
- в обновления отсылает всю табличку маршрутизации
- ограниченная масштабируемость, не более 15 хопов
- поддерживает авторизацию (для безопасного обмена сообщениями) plane text и md5
- административная дистанция 120
- метрика хопы (т.е. количество роутеров до назначения)
- медленная сходимость сети
- умеет балансировку трафика на 4 маршрутах с одинаковой метрикой
- прост в настройке и управлении
- поддерживается большинством оборудования

Для отправки сообщений RIP использует протокол UDP, порт источника == порт назначения == 520. Так же в помимо адреса сети и маски сети в обновления включается адрес next-hop и метрика маршрута. У RIP два основных типа сообщений - запрос (request) используется при первоначальном включении для опроса соседей, и ответ (reply) используется для отправки обновлений. Максимальное количество маршрутов в одном сообщении 25.
Для объявления анонсируемых сетей используем команду network adress. Адрес записывается в классовом виде, без указания маски (маску RIP возьмет посмотрев на соответствующий интерфейс).

Для различных нужд RIP использует таймеры:
1. Таймер обновлений (update timer) - по умолчанию 30 сек. Каждые 30 сек он отсылает обновления соседям.
2. Таймер недействительности (invalid timer) - по умолчанию 180 сек (т.е. три update timer), если за это время обновлений о маршруте не поступало он помечается как недействительный.
3. Таймер Очистки (flush timer) - по умолчанию 240 сек (на 60 сек больше invalid timer). Т.е. через 60 сек после пометки маршрута недействительным он вычищается из таблицы маршрутизации.

Из-за 30ти секундных обновлений, для того чтобы сеть сошлась полностью должно пройти достаточно большое количество времени. Пока сеть полностью не сойдется, т.е. пока все роутеры не будут знать всех маршрутов, сеть не может функционировать в полной мере, так же возможны петли маршрутизации (routing loops). Для борьбы с петлями RIP использует несколько различных техник:
1. Расщепление горизонта (Split Horizont) - получив обновления на какой либо порт, роутер не отсылает на него те же самые обновления, т.е. не включает в обновление маршруты уже полученные с того же самого порта.
2. Таймер удержания (Holddown Timer) - цисковская модификация, в оригинальном RIP его нет.  Если один из маршрутов роутера более недоступен, он включает для него таймер 180 с и в течение этого времени не принимает обновлений для этого маршрута с большей метрикой. А так же сразу сообщает соседям и они тоже включают таймер на указанный маршрут.
3. Отравление маршрута (Route poisoning) - если маршрут становится недоступен, роутер ставит маршруту метрику 16 и сообщает всем что у данный маршрут с метрикой 16, т.е. не достижимый. В паре с этой техникой еще используется метод Poison reverse, отправляя "отравленный" маршрут дальше роутер на всякий случай отправляет тот же маршрут обратно на тот порт с которого он его получил.

При помощи RIP (как и других протоколов маршрутизации) раздавать статический маршрут по умолчанию (0.0.0.0/0) дабы не настаивать его на всех роутерах вручную. Делается это командой default information originate.

По умолчанию при настройке RIP включается автоматическая суммаризация. Есть смыслее отключать (при правильно спланированной адресации сети она может быть удобной), так как RIP суммаризует маршруты только по классовой границе, т.е. суммаризовать маршруты с маской меньше классовой не позволяет. Так же RIP позволяет объявлять суммарные маршруты вручную, но вышеуказанное ограничение остается в силе. Для решения этой проблемые можно использовать суммарный статический маршрут с редистрибьюцией его соседям, суммарные статические супернет маршруты RIP вполне себе понимает и в таблицу маршрутизации записывает. Для этого используем команду redistribute static.

Так как по умолчанию RIP рассылает обновления через все интерфейсы, рекомендуется запрещать ему это делать на тех интерфейсы где это не нужно или даже нарушает безопасность сети. Делается это командой passive-intreface fa 0/0 к примеру. RIP перестает отсылать на данный интерфейс обновления, но продолжает его слушать и соответственно принимать. Чтобы закрыть и эту дыру в безопасности можно настроить авторизацию между роутерами по md5. Т.е. обновления присылаемые без авторизации будут игнорироваться. 

3 комментария:

  1. Наверное не следует писать разные гадости, но по-моему не сложно объявить три сетки показать длиннющий вывод и гнобить других за правописание.Сам то схемку содрал где-то ...
    Если Вы сударь имеете документы , подтверждающие Вашу компетентность добро пожаловать на netconfig.org в качестве editor . А за критику спасибо!

    ОтветитьУдалить
  2. почему же содрал? это стандартная схема. личной мной сделаная в пакетрейсере, в чем проблема? я что утверждал что я сам ее придумал? ничего подобного более того я не считаю что она представляет какую либо интеллектуальную ценность.

    я ничего не имею против netconfig.org, единственно что грамматические ошибки в тексте просто мешают читать, то и дело обращаешь на них внимание забывая о главном.

    ОтветитьУдалить
  3. Спасибо. Хорошая краткая выжимка. Для себя нашел полезным

    ОтветитьУдалить

Примечание. Отправлять комментарии могут только участники этого блога.