Тема сегодняшнего урока – RIP, или протокол маршрутной информации. Мы поговорим о различных аспектах его применения, о его настройке и ограничениях. Как я уже говорил, тема RIP не входит в учебный план курса Cisco 200-125 CCNA, однако я решил посвятить этому протоколу отдельный урок, так как RIP является одним из основных протоколов маршрутизации.
Сегодня мы рассмотрим 3 аспекта: понимание работы и настройка RIP в роутерах, таймеры RIP, ограничения RIP. Этот протокол был создан в 1969 году, так что это один из самых старых сетевых протоколов. Его преимущество заключается в необычайной простоте. На сегодня множество сетевых устройств, в том числе Cisco, продолжают поддерживать RIP, поскольку он является не проприетарным, как EIGRP, а общедоступным протоколом.
Существуют 2 версии RIP. Первая, классическая версия, не поддерживает VLSM — переменную длину маски подсети, на которой основана бесклассовая IP-адресация, поэтому мы можем использовать только одну сеть. Об этом я расскажу немного позже. Эта версия также не поддерживает аутентификацию.
Предположим, у вас есть 2 роутера, соединенные друг с другом. При этом первый роутер рассказывает соседу все, что знает. Допустим, к первому роутеру подсоединена сеть 10, между первым и вторым роутером расположена сеть 20, а за вторым роутером находится сеть 30. Тогда первый роутер говорит второму, что он знает сети 10 и 20, а роутер 2 сообщает роутеру 1, что он знает о сети 30 и сети 20.
Протокол маршрутизации указывает на то, что эти две сети нужно добавить в таблицу маршрутизации. В общем получается, что один роутер рассказывает о подсоединенных к нему сетях соседнему роутеру, тот – своему соседу, и т.д. Проще говоря, RIP- это протокол-сплетник, который служит тому, чтобы соседние роутеры делились друг с другом информацией, причем каждый из соседей безоговорочно верит тому, что ему сказали. Каждый роутер «слушает», не произошли ли в сети изменения, и делится ими со своими соседями.
Отсутствие поддержки аутентификации означает, что любой роутер, который будет подключен к сети, сразу становится её полноправным участником. Если я захочу обрушить сеть, то подсоединю к ней свой хакерский роутер с вредоносным обновлением, и поскольку все остальные роутеры ему доверяют, они обновят свои таблицы маршрутизации так, как нужно мне. Против такого взлома первая версия RIP не предусматривает никакой защиты.
В RIPv2 можно предусмотреть аутентификацию, настроив роутер соответствующим образом. В этом случае обновление информации между роутерами станет возможным только после прохождения сетевой аутентификации путем ввода пароля.
RIPv1 использует бродкастинг, то есть все обновления рассылаются с помощью широковещательных сообщений, так что их получают все участники сети. Допустим, к первому роутеру подсоединен компьютер, который ничего не знает об этих обновлениях, поскольку они нужны только устройствам маршрутизации. Однако роутер 1 будет рассылать эти сообщения всем устройствам, имеющим Broadcast ID, то есть даже тем, кто в этом не нуждается.
Во второй версии RIP эта проблема решена – здесь используется Multicast ID, или групповая передача трафика. В данном случае обновления получают только те устройства, которые указаны в настройках протокола. Кроме аутентификации, эта версия RIP поддерживает бесклассовую IP-адресацию VLSM. Это означает, что если к первому роутеру подсоединена сеть 10.1.1.1/24, то обновления также получают все сетевые устройства, чей IP-адрес находится в диапазоне адресов данной подсети. Вторая версия протокола поддерживает метод CIDR, то есть когда второй роутер получает обновление, он знает, какой конкретной сети или маршрута оно касается. В случае первой версии, если к роутеру подсоединена сеть 10.1.1.0, то обновления получат также устройства сети 10.0.0.0 и остальных сетей, относящихся к этому же классу. При этом роутер 2 также получит полную информацию об обновлении этих сетей, однако без CIDR он не будет знать, что эта информация касается подсети с IP-адресами класса А.
Вот что представляет собой протокол RIP в очень общих чертах. Теперь давайте рассмотрим, как его можно настроить. Вам нужно зайти в режим глобальной конфигурации настроек роутера и использовать команду Router RIP.
После этого вы увидите, что заголовок командной строки изменился на R1(config-router)#, потому что мы перешли на уровень подкоманд роутера. Второй командой будет Version 2, то есть мы указываем роутеру, что он должен использовать 2-ю версию протокола. Далее мы должны ввести адрес анонсируемой классовой сети, по которой должны передаваться обновления, с помощью команды network X.X.X.X. Эта команда имеет 2 функции: во-первых, она указывает, какую сеть нужно анонсировать, во-вторых, какой интерфейс нужно для этого использовать. Вы поймете, что я имею в виду, когда посмотрите на конфигурацию сети.
У нас здесь имеется 4 роутера и компьютер, подсоединенный к свитчу через сеть с идентификатором 192.168.1.0/26, которая подразделяется на 4 подсети. Мы используем только 3 подсети: 192.168.1.0/26, 192.168.1.64/26 и 192.168.1.128/26. У нас остается еще подсеть 192.168.1.192/26, но она не используется по причине ненадобности.
Порты устройств имеют такие IP-адреса: компьютер 192.168.1.10, первый порт первого роутера 192.168.1.1, второй порт 192.168.1.65, первый порт второго роутера 192.168.1.66, второй порт второго роутера 192.168.1.129, первый порт третьего роутера 192.168.1.130. В прошлый раз мы говорили о соглашениях, так вот я не могу следовать конвенции и присвоить второму порту роутера адрес .1, потому что .1 не является частью этой сети.
Далее я использую другие адреса, потому что у нас начинается другая сеть – 10.1.1.0/16, поэтому второй порт второго роутера, к которому подсоединена эта сеть, имеет IP-адрес 10.1.1.1, а порт четвертого роутера, к которому подсоединен свитч – адрес 10.1.1.2.
Чтобы настроить созданную мною сеть, я должен присвоить устройствам IP-адреса. Начнем с первого порта первого роутера.
Сначала создадим имя хоста R1, присвоим порту f0/0 адрес 192.168.1.1 и укажем маску подсети 255.255.255.192, поскольку у нас сеть вида /26. Завершим настройку R1 командой no shut. Второй порт первого роутера f0/1 получит IP-адрес 192.168.1.65 и маску подсети 255.255.255.192.
Второй роутер получит имя R2, первому порту f0/0 мы присвоим адрес 192.168.1.66 и маску подсети 255.255.255.192, второму порту f0/1 – адрес 192.168.1.129 и маску подсети 255.255.255.192.
Перейдя к третьему роутеру, мы присвоим ему имя хоста R3, порт f0/0 получит адрес 192.168.1.130 и маску 255.255.255.192, а порт f0/1 – адрес 10.1.1.1 и маску 255.255.0.0, потому что эта сеть /16.
Наконец, я перейду к последнему роутеру, присвою ему имя R4 и назначу порту f0/0 адрес 10.1.1.2 и маску 255.255.0.0. Итак, мы настроили все сетевые устройства.
Напоследок посмотрим на сетевые настройки компьютера – он имеет статический IP-адрес 192.168.1.10, маску полсети 255.255.255.192 и адрес шлюза по умолчанию 192.168.1.1.
Итак, вы посмотрели, как настраивается маска подсети для устройств в различных подсетях, это очень просто. Теперь включим маршрутизацию. Я захожу в настройки R1, задаю режим глобальной конфигурации и набираю команду router. После этого система выдает подсказки возможных вариантов протоколов маршрутизации для этой команды: bgp, eigrp, ospf и rip. Поскольку наш урок посвящен RIP, я использую команду router rip.
Если набрать знак вопроса, система выдаст новую подсказку для следующей команды с возможными вариантами функций этого протокола: auto-summary – автоматическое суммирование маршрутов, default-information – управление представлением информации по умолчанию, network – сети, тайминги и так далее. Здесь можно выбрать информацию, которой мы будем обмениваться с соседними устройствами. Самая важная функция – это версия, поэтому мы начнем с ввода команды version 2. Далее нам нужно использовать ключевую команду network, которая создает маршрут для указанной IP-сети.
Мы продолжим настраивать Router1 позже, а сейчас я хочу перейти к роутеру 3. Прежде чем я использую для него команду network, давайте посмотрим на правую часть топологии нашей сети. Второй порт роутера имеет адрес 10.1.1.1. Как же работает RIP? Даже во второй версии RIP, как довольно старый протокол, до сих пор использует свои собственные классы сетей. Поэтому, несмотря на то, что наша сеть 10.1.1.0/16 принадлежит к классу А, мы должны указать полную версию класса этого IP-адреса, использовав команду network 10.0.0.0.
Но даже если я наберу команду network 10.1.1.1 и посмотрю после этого на текущую конфигурацию, то увижу, что система исправила 10.1.1.1 на 10.0.0.0, автоматически использовав формат полноклассовой адресации. Так что если у вас на экзамене CCNA попадется вопрос о RIP, вы должны будете использовать полноклассовую адресацию. Если вместо 10.0.0.0 вы наберете 10.1.1.1 или 10.1.0.0, то совершите ошибку. Не смотря на то, что конвертация в полноклассовую форму адресации происходит автоматически, я советую вам изначально использовать правильный адрес, чтобы потом не ждать, пока система исправит ошибку. Запомните – в протоколе RIP всегда используется полноклассовая адресация сети.
После того, как вы использовали команду network 10.0.0.0, третий роутер вставит эту десятую сеть в протокол маршрутизации и разошлет обновление по маршруту R3-R4. Теперь нужно настроить протокол маршрутизации четвертого роутера. Я захожу в его настройки и последовательно ввожу команды router rip, version 2 и network 10.0.0.0. Этот командой я прошу R4 начать анонсировать сеть 10. по протоколу маршрутизации RIP.
Сейчас эти два роутера могли бы обменяться информацией, но это ничего бы не изменило. Использование команды show ip route показывает, что порт FastEthernrt 0/0 напрямую соединен с сетью 10.1.0.0. Четвертый роутер, получив анонс сети от третьего роутера, скажет: «отлично, приятель, я получил твой анонс десятой сети, но я и так об этом знаю, потому что напрямую соединен с этой сетью».
Поэтому мы вернемся к настройкам R3 и вставим другую сеть командой network 192.168.1.0. Я снова использую формат полноклассовой адресации. После этого третий роутер сможет анонсировать сеть 192.168.1.128 по маршруту R3-R4. Как я уже говорил, RIP – это «сплетник», который рассказывает о новых сетях всем свои соседям, передавая им информацию из своей таблицы маршрутизации. Если теперь посмотреть на таблицу третьего роутера, можно увидеть данные двух подсоединенных к нему сетей.
Он передаст эти данные в оба конца маршрута и второму, и четвертому роутеру. Перейдем к настройкам R2. Я ввожу те же команды router rip, version 2 и network 192.168.1.0, и тут начинается интересное. Я указываю сеть 1.0, но это и сеть 192.168.1.64/26, и сеть 192.168.1.128/26. Поэтому когда я указываю сеть 192.168.1.0, то технически обеспечиваю маршрутизацию для обоих интерфейсов этого роутера. Удобство состоит в том, что всего одной командой можно задать маршрутизацию для всех портов устройства.
Точно такие же параметры я указываю для роутера R1 и точно так же обеспечиваю маршрутизацию для обоих интерфейсов. Если теперь посмотреть на таблицу маршрутизации R1, можно увидеть все сети.
Этот роутер знает и о сети 1.0, и о сети 1.64. Он также знает о сетях 1.128 и 10.1.1.0, потому что использует RIP. На это указывает заголовок R в соответствующей строке таблицы маршрутизации.
Прошу вас обратить внимание на информацию [120/2] – это административное расстояние, то есть надежность источника маршрутной информации. Эта величина может иметь большое или меньшее значение, но по умолчанию для протокола RIP она равна 120. Например, статический маршрут имеет административное расстояние, равное 1. Тем меньше административное расстояние, тем надежнее протокол. Если у роутера будет иметься возможность выбирать между двумя протоколами, например между статическим маршрутом и RIP, то он выберет пересылку трафика по статическому маршруту. Второе значение в скобках, /2 – это метрика. В протоколе RIP метрика означает число хопов. В данном случае сеть 10.0.0.0/8 может быть достигнута за 2 хопа, то есть роутер R1 должен отправить трафик по сети 192.168.1.64/26, это первый хоп, и по сети 192.168.1.128/26, это второй хоп, чтобы попасть в сеть 10.0.0.0/8 через устройство с интерфейсом FastEthernet 0/1 с IP-адресом 192.168.1.66.
Для сравнения, роутер R1 может достичь сеть 192.168.1.128 с административным расстоянием 120 за 1 хоп через интерфейс 192.168.1.66.
Сейчас, если попробовать пропинговать с компьютера PC0 интерфейс роутера R4 с IP-адресом 10.1.1.2, он успешно вернется обратно.
Первая попытка окончилась неудачей с сообщением Request timed out, потому что при использовании ARP первый пакет пропадает, но зато три остальных успешно вернулись адресату. Таким образом происходит связь по типу «точка-точка» в сети, использующей протокол маршрутизации RIP.
Итак, для того, чтобы активировать использование роутером протокола RIP, нужно последовательно набрать команды router rip, version 2 и network < номер сети / идентификатор сети в полноклассовой форме >.
Зайдем в настройки R4 и введем команду show ip route. Вы видите, что сеть 10. подсоединена к роутеру напрямую, а сеть 192.168.1.0/24 доступна через порт f0/0 с IP-адресом 10.1.1.1 по протоколу RIP.
Если вы обратите внимание на вид сети 192.168.1.0/24, то заметите, что здесь имеет место проблема автосуммирования маршрутов. Если включено автосуммирование, протокол RIP будет суммировать все сети до 192.168.1.0/24. Давайте рассмотрим, что такое таймеры. Протокол RIP имеет 4 основных таймера.
Таймер Update отвечает за периодичность рассылки обновлений, каждые 30 секунд отправляя обновления протокола по всем интерфейсам, участвующим в маршрутизации RIP. Это означает, что он берет таблицу маршрутизации и рассылает её по всем портам, работающим в режиме RIP.
Представим, что у нас есть роутер 1, который соединен с роутером 2 сетью N2. Перед первым и после второго роутера имеются сети N1 и N3. Роутер 1 сообщает роутеру 2, что он знает сеть N1 и N2, и высылает ему обновление. Роутер 2 сообщает роутеру 1, что знает сети N2 и N3. При этом каждые 30 секунд порты роутеров обмениваются таблицами маршрутизации.
Представим, что по какой-то причине соединение N1-R1 разорвалось и роутер 1 больше не может связаться с сетью N1. После этого первый роутер станет посылать второму роутеру только обновления, касающиеся сети N2. Роутер 2, получив первое такое обновление, подумает: «отлично, теперь я должен поместить сеть N1 в таймер временно недоступных сетей Invalid Timer», после чего запустит таймер Invalid. В течение 180 секунд он не будет ни с кем обмениваться обновлениями сети N1, но по истечении этого периода времени остановит Invalid Timer и снова запустит Update Timer. Если в течение этих 180 секунд он не получит никаких обновлений состояния сети N1, то поместит её в таймер удерживания Hold Down длительностью 180 секунд, то есть таймер Hold Down стартует сразу после завершения таймера Invalid.
В это же время работает еще один, четвертый таймер Flush, который запускается одновременно с таймером Invalid. Этот таймер определяет временной интервал между получением последнего нормального обновления о сети N1 до момента исключения этой сети из таблицы маршрутизации. Таким образом, когда продолжительность этого таймера достигнет 240 секунд, сеть N1 автоматически исключится из таблицы маршрутизации второго роутера.
Итак, Update Timer рассылает обновления каждые 30 секунд. Invalid Timer, который запускается каждые 180 секунд, ждет, пока новое обновление не достигнет роутера. Если оно не приходит, он помещает эту сеть в состояние удержания, при этом Hold Down Timer запускается каждые 180 секунд. Но Invalid и Flush таймеры запускаются одновременно, так что через 240 секунд после запуска Flush сеть, которая не упоминается в обновлении, исключается из таблицы маршрутизации. Время действия этих таймеров задано по умолчанию, и его можно изменять. Вот что представляют собой таймеры RIP.
Теперь перейдем к рассмотрению ограничений протокола RIP, их довольно много. Одном из основных ограничений является автосуммирование.
Вернемся к нашей сети 192.168.1.0/24. Роутер 3 говорит роутеру 4 о целой сети 1.0, на что указывает /24. Это означает, что все 256 IP-адресов данной сети, включая идентификатор сети и широковещательный адрес, являются доступными, то есть сообщения от устройств с любым IP-адресом, находящимся в этом диапазоне, будут отправляться через сеть 10.1.1.1. Обратимся к таблице маршрутизации R3.
Мы видим сеть 192.168.1.0/26, разделенную на 3 подсети. Это значит, что роутер знает только о трех указанных IP-адресах: 192.168.1.0, 192.168.1.64 и 192.168.1.128, которые относятся к сети /26. Но он ничего не знает, например, об устройствах с IP-адресами, расположенными в диапазоне от 192.168.1.192 до 192.168.1.225.
Однако по какой-то причине R4 думает, что знает все о трафике, который направляет ему R3, то есть обо всех IP-адресах сети 192.168.1.0/24, что совершенно неверно. При этом роутеры могут начать отбрасывать трафик, потому что они «обманывают» друг друга – ведь роутер 3 не имеет права говорить четвертому роутеру, что знает всё о подсетях данной сети. Это происходит из-за проблемы, которая называется «автосуммированием». Она возникает при движении трафика по разным крупным сетям. Например, в нашем случае сеть с адресами класса С соединяется через роутер R3 с сетью с адресами класса А.
Роутер R3 считает эти сети одинаковыми и автоматически суммирует все маршруты в единый сетевой адрес 192.168.1.0. Вспомним, что мы говорили о суммировании маршрутов суперсетей в одном из предыдущих видео. Причина суммирования проста – роутер считает, что одна запись в таблице маршрутизации, у нас это запись 192.168.1.0/24 [120/1] via 10.1.1.1, лучше, чем 3 записи. Если сеть состоит из сотни мелких подсетей, то при отключении суммирования таблица маршрутизации будет состоять из огромного количества маршрутных записей. Поэтому для предотвращения накопления огромного количества информации в таблицах маршрутизации используется автоматическое суммирование маршрутов.
Однако в нашем случае автосуммирование маршрутов создает проблему, так как заставляет роутер обмениваться ложной информацией. Поэтому нам нужно зайти в настройки роутера R3 и ввести команду, запрещающую автосуммировать маршруты.
Для этого я последовательно набираю команды router rip и no auto-summary. После этого нужно подождать, пока обновление распространится по сети, а затем можно использовать команду show ip route в настройках роутера R4.
Вы видите, как изменилась таблица маршрутизации. Запись 192.168.1.0/24 [120/1] via 10.1.1.1 сохранилась из предыдущего варианта таблицы, а дальше следуют три записи, которые благодаря таймеру Update обновляются каждые 30 секунд. Таймер Flush обеспечивает то, что через 240 секунд после обновления плюс 30 секунд, то есть через 270 секунд, эта сеть будет удалена из таблицы маршрутизации.
Сети 192.168.1.0/26, 192.168.1.64/26 и 192.168.1.128/26 указаны правильно, поэтому теперь, если трафик будет предназначен для устройства 192.168.1.225, это устройство его отбросит, потому что роутер не знает, где находится устройство с таким адресом. Но в предыдущем случае, когда у нас было включено автосуммирование маршрутов для R3, этот трафик направлялся бы в сеть 10.1.1.1, что было совершенно неправильно, потому что R3 должен был бы сразу отбрасывать эти пакеты, не отсылая их дальше.
Как сетевой администратор, вы должны создавать сети с минимальным количеством лишнего трафика. Например, в данном случае нет никакой необходимости пересылать данный трафик через R3. Ваша задача – как можно больше увеличивать пропускную способность сети, предотвращая пересылку трафика тем устройствам, которые в этом не нуждаются.
Следующим ограничением RIP являются Loops, или маршрутные петли. Мы уже говорили о конвергенции сетей, когда происходит корректное обновление таблицы маршрутизации. В нашем случае роутер не должен получать обновления для сети 192.168.1.0/24, если ничего о ней не знает. Технически конвергенция означает, что таблица маршрутизации обновляется только корректной информацией. Такое должно происходить при отключении роутера, его перезагрузке, повторном подключении к сети и т.д. Конвергенция – это состояние, при котором выполнены все необходимые обновления таблиц маршрутизации и проведены все необходимые вычисления.
Протокол RIP характеризуется очень плохой конвергенцией, это очень и очень медленный протокол маршрутизации. Из-за такой медлительности и возникают маршрутные петли Loops, или проблема «бесконечного счетчика».
Я нарисую схему сети, аналогичную предыдущему примеру – роутер 1 соединен с роутером 2 сетью N2, к роутеру 1 подключена сеть N1, а к роутеру 2 – сеть N3. Предположим, что по какой-то причине соединение N1-R1 нарушено.
Роутер 2 знает, что сеть N1 достижима в один хоп через роутер 1, однако в данный момент эта сеть не работает. После выхода сети из строя запускается процесс таймеров, роутер 1 помещает её в состояние Hold Down и так далее. Однако у роутера 2 запущен таймер Update, и он в установленное время отсылает роутеру 1 обновление, в котором сказано, что сеть N1 доступна через него в два хопа. Это обновление приходит роутеру 1 до того, как он успевает отослать роутеру 2 обновление о выходе из строя сети N1.
Получив это обновление, роутер 1 думает: «я знаю, что сеть N1, которая подсоединена ко мне, по какой-то причине не работает, однако роутер 2 сообщил мне, что она доступна через него в два хопа. Я ему верю, поэтому добавлю один хоп, обновлю свою таблицу маршрутизации и вышлю роутеру 2 обновление, в котором скажу, что сеть N1 доступна через роутер 2 в три хопа!».
Получив это обновление от первого роутера, роутер 2 говорит: «ок, раньше я получил обновление от R1, в котором было сказано, что сеть N1 доступна через него в один хоп. Сейчас он сообщил мне, что она доступна в 3 хопа. Возможно, что-то поменялось в сети, я не могу ему не верить, поэтому обновлю свою таблицу маршрутизации, добавив один хоп». После этого R2 отсылает первому роутеру обновление, в котором говорится, что сеть N1 теперь доступна в 4 хопа.
Вы видите, в чем состоит проблема? Оба роутера отсылают друг другу обновления, каждый раз добавляя по одному хопу, и в конце концов число хопов достигает большого значения. В протоколе RIP максимальное количество хопов равно 16, и как только оно достигает этой величины, роутер понимает, что возникли неполадки и просто удаляет данный маршрут из таблицы маршрутизации. Вот в чем состоит проблема возникновения маршрутных петель в протоколе RIP. Это связано с тем, что RIP – дистанционно-векторный протокол, он наблюдает только за дистанцией, не обращая внимания на состояние участков сетей. В 1969 году, когда компьютерные сети работали намного медленней, чем сейчас, дистанционно-векторный подход себя оправдывал, поэтому разработчики RIP выбрали отсчет хопов в качестве основной метрики. Однако на сегодня этот подход создает множество проблем, поэтому в современных сетях повсеместно осуществлен переход на более прогрессивные протоколы маршрутизации, такие, как OSPF. Де-факто этот протокол стал стандартом для сетей большинства мировых компаний. Мы очень подробно рассмотрим этот протокол в одном из следующих видео.
Мы больше не станем возвращаться к RIP, потому на примере этого старейшего сетевого протокола я достаточно рассказал вам об основах маршрутизации и проблемах, из-за которых этот протокол стараются больше не использовать для крупных сетей. На следующих видеоуроках мы рассмотрим современные протоколы маршрутизации – OSPF и EIGRP.
Спасибо, что остаётесь с нами. Вам нравятся наши статьи? Хотите видеть больше интересных материалов? Поддержите нас оформив заказ или порекомендовав знакомым, 30% скидка для пользователей Хабра на уникальный аналог entry-level серверов, который был придуман нами для Вас: Вся правда о VPS (KVM) E5-2650 v4 (6 Cores) 10GB DDR4 240GB SSD 1Gbps от $20 или как правильно делить сервер? (доступны варианты с RAID1 и RAID10, до 24 ядер и до 40GB DDR4).
Dell R730xd в 2 раза дешевле? Только у нас 2 х Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 ТВ от $199 в Нидерландах! Dell R420 — 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB — от $99! Читайте о том Как построить инфраструктуру корп. класса c применением серверов Dell R730xd Е5-2650 v4 стоимостью 9000 евро за копейки?
Сегодня мы рассмотрим 3 аспекта: понимание работы и настройка RIP в роутерах, таймеры RIP, ограничения RIP. Этот протокол был создан в 1969 году, так что это один из самых старых сетевых протоколов. Его преимущество заключается в необычайной простоте. На сегодня множество сетевых устройств, в том числе Cisco, продолжают поддерживать RIP, поскольку он является не проприетарным, как EIGRP, а общедоступным протоколом.
Существуют 2 версии RIP. Первая, классическая версия, не поддерживает VLSM — переменную длину маски подсети, на которой основана бесклассовая IP-адресация, поэтому мы можем использовать только одну сеть. Об этом я расскажу немного позже. Эта версия также не поддерживает аутентификацию.
Предположим, у вас есть 2 роутера, соединенные друг с другом. При этом первый роутер рассказывает соседу все, что знает. Допустим, к первому роутеру подсоединена сеть 10, между первым и вторым роутером расположена сеть 20, а за вторым роутером находится сеть 30. Тогда первый роутер говорит второму, что он знает сети 10 и 20, а роутер 2 сообщает роутеру 1, что он знает о сети 30 и сети 20.
Протокол маршрутизации указывает на то, что эти две сети нужно добавить в таблицу маршрутизации. В общем получается, что один роутер рассказывает о подсоединенных к нему сетях соседнему роутеру, тот – своему соседу, и т.д. Проще говоря, RIP- это протокол-сплетник, который служит тому, чтобы соседние роутеры делились друг с другом информацией, причем каждый из соседей безоговорочно верит тому, что ему сказали. Каждый роутер «слушает», не произошли ли в сети изменения, и делится ими со своими соседями.
Отсутствие поддержки аутентификации означает, что любой роутер, который будет подключен к сети, сразу становится её полноправным участником. Если я захочу обрушить сеть, то подсоединю к ней свой хакерский роутер с вредоносным обновлением, и поскольку все остальные роутеры ему доверяют, они обновят свои таблицы маршрутизации так, как нужно мне. Против такого взлома первая версия RIP не предусматривает никакой защиты.
В RIPv2 можно предусмотреть аутентификацию, настроив роутер соответствующим образом. В этом случае обновление информации между роутерами станет возможным только после прохождения сетевой аутентификации путем ввода пароля.
RIPv1 использует бродкастинг, то есть все обновления рассылаются с помощью широковещательных сообщений, так что их получают все участники сети. Допустим, к первому роутеру подсоединен компьютер, который ничего не знает об этих обновлениях, поскольку они нужны только устройствам маршрутизации. Однако роутер 1 будет рассылать эти сообщения всем устройствам, имеющим Broadcast ID, то есть даже тем, кто в этом не нуждается.
Во второй версии RIP эта проблема решена – здесь используется Multicast ID, или групповая передача трафика. В данном случае обновления получают только те устройства, которые указаны в настройках протокола. Кроме аутентификации, эта версия RIP поддерживает бесклассовую IP-адресацию VLSM. Это означает, что если к первому роутеру подсоединена сеть 10.1.1.1/24, то обновления также получают все сетевые устройства, чей IP-адрес находится в диапазоне адресов данной подсети. Вторая версия протокола поддерживает метод CIDR, то есть когда второй роутер получает обновление, он знает, какой конкретной сети или маршрута оно касается. В случае первой версии, если к роутеру подсоединена сеть 10.1.1.0, то обновления получат также устройства сети 10.0.0.0 и остальных сетей, относящихся к этому же классу. При этом роутер 2 также получит полную информацию об обновлении этих сетей, однако без CIDR он не будет знать, что эта информация касается подсети с IP-адресами класса А.
Вот что представляет собой протокол RIP в очень общих чертах. Теперь давайте рассмотрим, как его можно настроить. Вам нужно зайти в режим глобальной конфигурации настроек роутера и использовать команду Router RIP.
После этого вы увидите, что заголовок командной строки изменился на R1(config-router)#, потому что мы перешли на уровень подкоманд роутера. Второй командой будет Version 2, то есть мы указываем роутеру, что он должен использовать 2-ю версию протокола. Далее мы должны ввести адрес анонсируемой классовой сети, по которой должны передаваться обновления, с помощью команды network X.X.X.X. Эта команда имеет 2 функции: во-первых, она указывает, какую сеть нужно анонсировать, во-вторых, какой интерфейс нужно для этого использовать. Вы поймете, что я имею в виду, когда посмотрите на конфигурацию сети.
У нас здесь имеется 4 роутера и компьютер, подсоединенный к свитчу через сеть с идентификатором 192.168.1.0/26, которая подразделяется на 4 подсети. Мы используем только 3 подсети: 192.168.1.0/26, 192.168.1.64/26 и 192.168.1.128/26. У нас остается еще подсеть 192.168.1.192/26, но она не используется по причине ненадобности.
Порты устройств имеют такие IP-адреса: компьютер 192.168.1.10, первый порт первого роутера 192.168.1.1, второй порт 192.168.1.65, первый порт второго роутера 192.168.1.66, второй порт второго роутера 192.168.1.129, первый порт третьего роутера 192.168.1.130. В прошлый раз мы говорили о соглашениях, так вот я не могу следовать конвенции и присвоить второму порту роутера адрес .1, потому что .1 не является частью этой сети.
Далее я использую другие адреса, потому что у нас начинается другая сеть – 10.1.1.0/16, поэтому второй порт второго роутера, к которому подсоединена эта сеть, имеет IP-адрес 10.1.1.1, а порт четвертого роутера, к которому подсоединен свитч – адрес 10.1.1.2.
Чтобы настроить созданную мною сеть, я должен присвоить устройствам IP-адреса. Начнем с первого порта первого роутера.
Сначала создадим имя хоста R1, присвоим порту f0/0 адрес 192.168.1.1 и укажем маску подсети 255.255.255.192, поскольку у нас сеть вида /26. Завершим настройку R1 командой no shut. Второй порт первого роутера f0/1 получит IP-адрес 192.168.1.65 и маску подсети 255.255.255.192.
Второй роутер получит имя R2, первому порту f0/0 мы присвоим адрес 192.168.1.66 и маску подсети 255.255.255.192, второму порту f0/1 – адрес 192.168.1.129 и маску подсети 255.255.255.192.
Перейдя к третьему роутеру, мы присвоим ему имя хоста R3, порт f0/0 получит адрес 192.168.1.130 и маску 255.255.255.192, а порт f0/1 – адрес 10.1.1.1 и маску 255.255.0.0, потому что эта сеть /16.
Наконец, я перейду к последнему роутеру, присвою ему имя R4 и назначу порту f0/0 адрес 10.1.1.2 и маску 255.255.0.0. Итак, мы настроили все сетевые устройства.
Напоследок посмотрим на сетевые настройки компьютера – он имеет статический IP-адрес 192.168.1.10, маску полсети 255.255.255.192 и адрес шлюза по умолчанию 192.168.1.1.
Итак, вы посмотрели, как настраивается маска подсети для устройств в различных подсетях, это очень просто. Теперь включим маршрутизацию. Я захожу в настройки R1, задаю режим глобальной конфигурации и набираю команду router. После этого система выдает подсказки возможных вариантов протоколов маршрутизации для этой команды: bgp, eigrp, ospf и rip. Поскольку наш урок посвящен RIP, я использую команду router rip.
Если набрать знак вопроса, система выдаст новую подсказку для следующей команды с возможными вариантами функций этого протокола: auto-summary – автоматическое суммирование маршрутов, default-information – управление представлением информации по умолчанию, network – сети, тайминги и так далее. Здесь можно выбрать информацию, которой мы будем обмениваться с соседними устройствами. Самая важная функция – это версия, поэтому мы начнем с ввода команды version 2. Далее нам нужно использовать ключевую команду network, которая создает маршрут для указанной IP-сети.
Мы продолжим настраивать Router1 позже, а сейчас я хочу перейти к роутеру 3. Прежде чем я использую для него команду network, давайте посмотрим на правую часть топологии нашей сети. Второй порт роутера имеет адрес 10.1.1.1. Как же работает RIP? Даже во второй версии RIP, как довольно старый протокол, до сих пор использует свои собственные классы сетей. Поэтому, несмотря на то, что наша сеть 10.1.1.0/16 принадлежит к классу А, мы должны указать полную версию класса этого IP-адреса, использовав команду network 10.0.0.0.
Но даже если я наберу команду network 10.1.1.1 и посмотрю после этого на текущую конфигурацию, то увижу, что система исправила 10.1.1.1 на 10.0.0.0, автоматически использовав формат полноклассовой адресации. Так что если у вас на экзамене CCNA попадется вопрос о RIP, вы должны будете использовать полноклассовую адресацию. Если вместо 10.0.0.0 вы наберете 10.1.1.1 или 10.1.0.0, то совершите ошибку. Не смотря на то, что конвертация в полноклассовую форму адресации происходит автоматически, я советую вам изначально использовать правильный адрес, чтобы потом не ждать, пока система исправит ошибку. Запомните – в протоколе RIP всегда используется полноклассовая адресация сети.
После того, как вы использовали команду network 10.0.0.0, третий роутер вставит эту десятую сеть в протокол маршрутизации и разошлет обновление по маршруту R3-R4. Теперь нужно настроить протокол маршрутизации четвертого роутера. Я захожу в его настройки и последовательно ввожу команды router rip, version 2 и network 10.0.0.0. Этот командой я прошу R4 начать анонсировать сеть 10. по протоколу маршрутизации RIP.
Сейчас эти два роутера могли бы обменяться информацией, но это ничего бы не изменило. Использование команды show ip route показывает, что порт FastEthernrt 0/0 напрямую соединен с сетью 10.1.0.0. Четвертый роутер, получив анонс сети от третьего роутера, скажет: «отлично, приятель, я получил твой анонс десятой сети, но я и так об этом знаю, потому что напрямую соединен с этой сетью».
Поэтому мы вернемся к настройкам R3 и вставим другую сеть командой network 192.168.1.0. Я снова использую формат полноклассовой адресации. После этого третий роутер сможет анонсировать сеть 192.168.1.128 по маршруту R3-R4. Как я уже говорил, RIP – это «сплетник», который рассказывает о новых сетях всем свои соседям, передавая им информацию из своей таблицы маршрутизации. Если теперь посмотреть на таблицу третьего роутера, можно увидеть данные двух подсоединенных к нему сетей.
Он передаст эти данные в оба конца маршрута и второму, и четвертому роутеру. Перейдем к настройкам R2. Я ввожу те же команды router rip, version 2 и network 192.168.1.0, и тут начинается интересное. Я указываю сеть 1.0, но это и сеть 192.168.1.64/26, и сеть 192.168.1.128/26. Поэтому когда я указываю сеть 192.168.1.0, то технически обеспечиваю маршрутизацию для обоих интерфейсов этого роутера. Удобство состоит в том, что всего одной командой можно задать маршрутизацию для всех портов устройства.
Точно такие же параметры я указываю для роутера R1 и точно так же обеспечиваю маршрутизацию для обоих интерфейсов. Если теперь посмотреть на таблицу маршрутизации R1, можно увидеть все сети.
Этот роутер знает и о сети 1.0, и о сети 1.64. Он также знает о сетях 1.128 и 10.1.1.0, потому что использует RIP. На это указывает заголовок R в соответствующей строке таблицы маршрутизации.
Прошу вас обратить внимание на информацию [120/2] – это административное расстояние, то есть надежность источника маршрутной информации. Эта величина может иметь большое или меньшее значение, но по умолчанию для протокола RIP она равна 120. Например, статический маршрут имеет административное расстояние, равное 1. Тем меньше административное расстояние, тем надежнее протокол. Если у роутера будет иметься возможность выбирать между двумя протоколами, например между статическим маршрутом и RIP, то он выберет пересылку трафика по статическому маршруту. Второе значение в скобках, /2 – это метрика. В протоколе RIP метрика означает число хопов. В данном случае сеть 10.0.0.0/8 может быть достигнута за 2 хопа, то есть роутер R1 должен отправить трафик по сети 192.168.1.64/26, это первый хоп, и по сети 192.168.1.128/26, это второй хоп, чтобы попасть в сеть 10.0.0.0/8 через устройство с интерфейсом FastEthernet 0/1 с IP-адресом 192.168.1.66.
Для сравнения, роутер R1 может достичь сеть 192.168.1.128 с административным расстоянием 120 за 1 хоп через интерфейс 192.168.1.66.
Сейчас, если попробовать пропинговать с компьютера PC0 интерфейс роутера R4 с IP-адресом 10.1.1.2, он успешно вернется обратно.
Первая попытка окончилась неудачей с сообщением Request timed out, потому что при использовании ARP первый пакет пропадает, но зато три остальных успешно вернулись адресату. Таким образом происходит связь по типу «точка-точка» в сети, использующей протокол маршрутизации RIP.
Итак, для того, чтобы активировать использование роутером протокола RIP, нужно последовательно набрать команды router rip, version 2 и network < номер сети / идентификатор сети в полноклассовой форме >.
Зайдем в настройки R4 и введем команду show ip route. Вы видите, что сеть 10. подсоединена к роутеру напрямую, а сеть 192.168.1.0/24 доступна через порт f0/0 с IP-адресом 10.1.1.1 по протоколу RIP.
Если вы обратите внимание на вид сети 192.168.1.0/24, то заметите, что здесь имеет место проблема автосуммирования маршрутов. Если включено автосуммирование, протокол RIP будет суммировать все сети до 192.168.1.0/24. Давайте рассмотрим, что такое таймеры. Протокол RIP имеет 4 основных таймера.
Таймер Update отвечает за периодичность рассылки обновлений, каждые 30 секунд отправляя обновления протокола по всем интерфейсам, участвующим в маршрутизации RIP. Это означает, что он берет таблицу маршрутизации и рассылает её по всем портам, работающим в режиме RIP.
Представим, что у нас есть роутер 1, который соединен с роутером 2 сетью N2. Перед первым и после второго роутера имеются сети N1 и N3. Роутер 1 сообщает роутеру 2, что он знает сеть N1 и N2, и высылает ему обновление. Роутер 2 сообщает роутеру 1, что знает сети N2 и N3. При этом каждые 30 секунд порты роутеров обмениваются таблицами маршрутизации.
Представим, что по какой-то причине соединение N1-R1 разорвалось и роутер 1 больше не может связаться с сетью N1. После этого первый роутер станет посылать второму роутеру только обновления, касающиеся сети N2. Роутер 2, получив первое такое обновление, подумает: «отлично, теперь я должен поместить сеть N1 в таймер временно недоступных сетей Invalid Timer», после чего запустит таймер Invalid. В течение 180 секунд он не будет ни с кем обмениваться обновлениями сети N1, но по истечении этого периода времени остановит Invalid Timer и снова запустит Update Timer. Если в течение этих 180 секунд он не получит никаких обновлений состояния сети N1, то поместит её в таймер удерживания Hold Down длительностью 180 секунд, то есть таймер Hold Down стартует сразу после завершения таймера Invalid.
В это же время работает еще один, четвертый таймер Flush, который запускается одновременно с таймером Invalid. Этот таймер определяет временной интервал между получением последнего нормального обновления о сети N1 до момента исключения этой сети из таблицы маршрутизации. Таким образом, когда продолжительность этого таймера достигнет 240 секунд, сеть N1 автоматически исключится из таблицы маршрутизации второго роутера.
Итак, Update Timer рассылает обновления каждые 30 секунд. Invalid Timer, который запускается каждые 180 секунд, ждет, пока новое обновление не достигнет роутера. Если оно не приходит, он помещает эту сеть в состояние удержания, при этом Hold Down Timer запускается каждые 180 секунд. Но Invalid и Flush таймеры запускаются одновременно, так что через 240 секунд после запуска Flush сеть, которая не упоминается в обновлении, исключается из таблицы маршрутизации. Время действия этих таймеров задано по умолчанию, и его можно изменять. Вот что представляют собой таймеры RIP.
Теперь перейдем к рассмотрению ограничений протокола RIP, их довольно много. Одном из основных ограничений является автосуммирование.
Вернемся к нашей сети 192.168.1.0/24. Роутер 3 говорит роутеру 4 о целой сети 1.0, на что указывает /24. Это означает, что все 256 IP-адресов данной сети, включая идентификатор сети и широковещательный адрес, являются доступными, то есть сообщения от устройств с любым IP-адресом, находящимся в этом диапазоне, будут отправляться через сеть 10.1.1.1. Обратимся к таблице маршрутизации R3.
Мы видим сеть 192.168.1.0/26, разделенную на 3 подсети. Это значит, что роутер знает только о трех указанных IP-адресах: 192.168.1.0, 192.168.1.64 и 192.168.1.128, которые относятся к сети /26. Но он ничего не знает, например, об устройствах с IP-адресами, расположенными в диапазоне от 192.168.1.192 до 192.168.1.225.
Однако по какой-то причине R4 думает, что знает все о трафике, который направляет ему R3, то есть обо всех IP-адресах сети 192.168.1.0/24, что совершенно неверно. При этом роутеры могут начать отбрасывать трафик, потому что они «обманывают» друг друга – ведь роутер 3 не имеет права говорить четвертому роутеру, что знает всё о подсетях данной сети. Это происходит из-за проблемы, которая называется «автосуммированием». Она возникает при движении трафика по разным крупным сетям. Например, в нашем случае сеть с адресами класса С соединяется через роутер R3 с сетью с адресами класса А.
Роутер R3 считает эти сети одинаковыми и автоматически суммирует все маршруты в единый сетевой адрес 192.168.1.0. Вспомним, что мы говорили о суммировании маршрутов суперсетей в одном из предыдущих видео. Причина суммирования проста – роутер считает, что одна запись в таблице маршрутизации, у нас это запись 192.168.1.0/24 [120/1] via 10.1.1.1, лучше, чем 3 записи. Если сеть состоит из сотни мелких подсетей, то при отключении суммирования таблица маршрутизации будет состоять из огромного количества маршрутных записей. Поэтому для предотвращения накопления огромного количества информации в таблицах маршрутизации используется автоматическое суммирование маршрутов.
Однако в нашем случае автосуммирование маршрутов создает проблему, так как заставляет роутер обмениваться ложной информацией. Поэтому нам нужно зайти в настройки роутера R3 и ввести команду, запрещающую автосуммировать маршруты.
Для этого я последовательно набираю команды router rip и no auto-summary. После этого нужно подождать, пока обновление распространится по сети, а затем можно использовать команду show ip route в настройках роутера R4.
Вы видите, как изменилась таблица маршрутизации. Запись 192.168.1.0/24 [120/1] via 10.1.1.1 сохранилась из предыдущего варианта таблицы, а дальше следуют три записи, которые благодаря таймеру Update обновляются каждые 30 секунд. Таймер Flush обеспечивает то, что через 240 секунд после обновления плюс 30 секунд, то есть через 270 секунд, эта сеть будет удалена из таблицы маршрутизации.
Сети 192.168.1.0/26, 192.168.1.64/26 и 192.168.1.128/26 указаны правильно, поэтому теперь, если трафик будет предназначен для устройства 192.168.1.225, это устройство его отбросит, потому что роутер не знает, где находится устройство с таким адресом. Но в предыдущем случае, когда у нас было включено автосуммирование маршрутов для R3, этот трафик направлялся бы в сеть 10.1.1.1, что было совершенно неправильно, потому что R3 должен был бы сразу отбрасывать эти пакеты, не отсылая их дальше.
Как сетевой администратор, вы должны создавать сети с минимальным количеством лишнего трафика. Например, в данном случае нет никакой необходимости пересылать данный трафик через R3. Ваша задача – как можно больше увеличивать пропускную способность сети, предотвращая пересылку трафика тем устройствам, которые в этом не нуждаются.
Следующим ограничением RIP являются Loops, или маршрутные петли. Мы уже говорили о конвергенции сетей, когда происходит корректное обновление таблицы маршрутизации. В нашем случае роутер не должен получать обновления для сети 192.168.1.0/24, если ничего о ней не знает. Технически конвергенция означает, что таблица маршрутизации обновляется только корректной информацией. Такое должно происходить при отключении роутера, его перезагрузке, повторном подключении к сети и т.д. Конвергенция – это состояние, при котором выполнены все необходимые обновления таблиц маршрутизации и проведены все необходимые вычисления.
Протокол RIP характеризуется очень плохой конвергенцией, это очень и очень медленный протокол маршрутизации. Из-за такой медлительности и возникают маршрутные петли Loops, или проблема «бесконечного счетчика».
Я нарисую схему сети, аналогичную предыдущему примеру – роутер 1 соединен с роутером 2 сетью N2, к роутеру 1 подключена сеть N1, а к роутеру 2 – сеть N3. Предположим, что по какой-то причине соединение N1-R1 нарушено.
Роутер 2 знает, что сеть N1 достижима в один хоп через роутер 1, однако в данный момент эта сеть не работает. После выхода сети из строя запускается процесс таймеров, роутер 1 помещает её в состояние Hold Down и так далее. Однако у роутера 2 запущен таймер Update, и он в установленное время отсылает роутеру 1 обновление, в котором сказано, что сеть N1 доступна через него в два хопа. Это обновление приходит роутеру 1 до того, как он успевает отослать роутеру 2 обновление о выходе из строя сети N1.
Получив это обновление, роутер 1 думает: «я знаю, что сеть N1, которая подсоединена ко мне, по какой-то причине не работает, однако роутер 2 сообщил мне, что она доступна через него в два хопа. Я ему верю, поэтому добавлю один хоп, обновлю свою таблицу маршрутизации и вышлю роутеру 2 обновление, в котором скажу, что сеть N1 доступна через роутер 2 в три хопа!».
Получив это обновление от первого роутера, роутер 2 говорит: «ок, раньше я получил обновление от R1, в котором было сказано, что сеть N1 доступна через него в один хоп. Сейчас он сообщил мне, что она доступна в 3 хопа. Возможно, что-то поменялось в сети, я не могу ему не верить, поэтому обновлю свою таблицу маршрутизации, добавив один хоп». После этого R2 отсылает первому роутеру обновление, в котором говорится, что сеть N1 теперь доступна в 4 хопа.
Вы видите, в чем состоит проблема? Оба роутера отсылают друг другу обновления, каждый раз добавляя по одному хопу, и в конце концов число хопов достигает большого значения. В протоколе RIP максимальное количество хопов равно 16, и как только оно достигает этой величины, роутер понимает, что возникли неполадки и просто удаляет данный маршрут из таблицы маршрутизации. Вот в чем состоит проблема возникновения маршрутных петель в протоколе RIP. Это связано с тем, что RIP – дистанционно-векторный протокол, он наблюдает только за дистанцией, не обращая внимания на состояние участков сетей. В 1969 году, когда компьютерные сети работали намного медленней, чем сейчас, дистанционно-векторный подход себя оправдывал, поэтому разработчики RIP выбрали отсчет хопов в качестве основной метрики. Однако на сегодня этот подход создает множество проблем, поэтому в современных сетях повсеместно осуществлен переход на более прогрессивные протоколы маршрутизации, такие, как OSPF. Де-факто этот протокол стал стандартом для сетей большинства мировых компаний. Мы очень подробно рассмотрим этот протокол в одном из следующих видео.
Мы больше не станем возвращаться к RIP, потому на примере этого старейшего сетевого протокола я достаточно рассказал вам об основах маршрутизации и проблемах, из-за которых этот протокол стараются больше не использовать для крупных сетей. На следующих видеоуроках мы рассмотрим современные протоколы маршрутизации – OSPF и EIGRP.
Спасибо, что остаётесь с нами. Вам нравятся наши статьи? Хотите видеть больше интересных материалов? Поддержите нас оформив заказ или порекомендовав знакомым, 30% скидка для пользователей Хабра на уникальный аналог entry-level серверов, который был придуман нами для Вас: Вся правда о VPS (KVM) E5-2650 v4 (6 Cores) 10GB DDR4 240GB SSD 1Gbps от $20 или как правильно делить сервер? (доступны варианты с RAID1 и RAID10, до 24 ядер и до 40GB DDR4).
Dell R730xd в 2 раза дешевле? Только у нас 2 х Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 ТВ от $199 в Нидерландах! Dell R420 — 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB — от $99! Читайте о том Как построить инфраструктуру корп. класса c применением серверов Dell R730xd Е5-2650 v4 стоимостью 9000 евро за копейки?