Как узнать скорость копирования по fibre channel. Протоколы frame relay, fibre channel, hippi

Стати́ческая маршрутиза́ция - вид маршрутизации, при котором маршруты указываются в явном виде при конфигурации маршрутизатора. Вся маршрутизация при этом происходит без участия каких-либо протоколов маршрутизации.

При задании статического маршрута указывается:

Адрес сети (на которую маршрутизируется трафик), маска сети

Адрес шлюза (узла), который отвечает за дальнейшую маршрутизацию (или подключен к маршрутизируемой сети напрямую)

(опционально) метрика (иногда именуется также "ценой") маршрута. При наличии нескольких маршрутов на одну и ту же сеть некоторые маршрутизаторы выбирают маршрут с минимальной метрикой

В некоторых маршрутизаторах возможно указывать интерфейс, на который следует направить трафик сети и указать дополнительные условия, согласно которым выбирается маршрут (например, SLA в маршрутизаторах cisco).

Достоинства

Основные:

Лёгкость отладки и конфигурирования в малых сетях.

Отсутствие дополнительных накладных расходов (из-за отсутствия протоколов маршрутизации)

Мгновенная готовность (не требуется интервал для конфигурирования/подстройки)

Предсказуемость в каждый момент времени

Недостатки

Очень плохое масштабирование (добавление (N+1)-ой сети потребует сделать 2*(N+1) записей о маршрутах, причём на большинстве маршрутизаторов таблица маршрутов будет различной, при N>3-4 процесс конфигурирования становится весьма трудоёмким).

Низкая устойчивость к повреждениям линий связи (особенно, в ситуациях, когда обрыв происходит между устройствами второго уровня и порт маршрутизатора не получает статус down).

Отсутствие динамического балансирования нагрузки

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

Использование

В реальных условиях статическая маршрутизация используется в условиях наличия шлюза по умолчанию (узла, обладающего связностью с остальными узлами) и 1-2 сетями. Помимо этого статическая маршрутизация используется для "выравнивания" работы маршрутизирующих протоколов в условиях наличия туннеля (для того, чтобы маршрутизация трафика, создаваемого туннелем, не производилась через сам туннель).

18. Маршрутизация. Динамическая маршрутизация.

Динамическая маршрутизация - вид маршрутизации, при котором таблица маршрутизации редактируется программно. В случае UNIX-систем демонами маршрутизации; в других системах - служебными программами, которые называются иначе, но фактически играют ту же роль.

Демоны маршрутизации обмениваются между собой информацией, которая позволяет им заполнить таблицу маршрутизации наиболее оптимальными маршрутами. Протоколы, с помощью которых производится обмен информацией между демонами, называется протоколами динамической маршрутизации.

Протоколы динамической маршрутизации:

Когда маршрутизатор отправляет обновление RIP, он добавляет к метрике маршрута, которую он использует, 1 и отправляет соседу. Сосед получает обновление, в котором указано какую метрику для полученного маршрута ему использовать.

Маршрутизатор отправляет каждые 30 секунд все известные ему маршруты соседним маршрутизаторам. Но, кроме этого, для предотвращения петель и для улучшения времени сходимости, используются дополнительные механизмы:

Split horizon - если маршрут достижим через определенный интерфейс, то в обновление, которое отправляется через этот интерфейс не включается этот маршрут;

Triggered update - обновления отправляются сразу при изменении маршрута, вместо того чтобы ожидать когда истечет Update timer;

Route poisoning - это принудительное удаление маршрута и перевод в состояние удержания, применяется для борьбы с маршрутными петлями.

Poison reverse - Маршрут помечается, как не достижимый, то есть с метрикой 16 и отправляется в обновлениях.

В обновлениях RIPv2 могут передаваться до 25 сетей.

Маршрутизаторы обмениваются hello-пакетами через все интерфейсы, на которых активирован OSPF. Маршрутизаторы, совместно использующие общий канал передачи данных, становятся соседями, когда они приходят к договоренности об определенных параметрах, указанных в их hello-пакетах.

На следующем этапе работы протокола маршрутизаторы будут пытаться перейти в состояние смежности со своими соседями. Переход в состояние смежности определяется типом маршрутизаторов, обменивающихся hello-пакетами, и типом сети, по которой передаются hello-пакеты. OSPF определяет несколько типов сетей и несколько типов маршрутизаторов. Пара маршрутизаторов, находящихся в состоянии смежности, синхронизирует между собой базу данных состояния каналов.

Каждый маршрутизатор посылает объявление о состоянии канала маршрутизаторам, с которыми он находится в состоянии смежности.

Каждый маршрутизатор, получивший объявление от соседа, записывает информацию, передаваемую в нем, в базу данных состояния каналов маршрутизатора и рассылает копию объявления всем другим своим соседям.

Рассылая объявления через зону, все маршрутизаторы строят идентичную базу данных состояния каналов маршрутизатора.

Когда база данных построена, каждый маршрутизатор использует алгоритм "кратчайший путь первым" (shortest path first) для вычисления графа без петель, который будет описывать кратчайший путь к каждому известному пункту назначения с собой в качестве корня. Этот граф - дерево кратчайшего пути.

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

RTP управляет процессом отправки и получения пакетов EIGRP.

RTP обеспечивает:

Гарантированную доставку пакетов. Для этого используется проприетарный алгоритм Cisco, reliable multicast. Пакеты отправляются на muilticast-адрес 224.0.0.10. Каждый сосед получивший такой пакет отправляет подтверждение отправителю пакета.

Сохранение порядка пакетов. В каждом пакете используется два номера последовательности (sequence). Каждый пакет включает в себя номер присвоенный ему отправителем. Этот номер увеличивается на единицу каждый раз, когда маршрутизатор отправляет новый пакет. Кроме того, отправитель помещает в пакет номер последнего полученного пакета от получателя.

В некоторых случаях RTP использует негарантированную доставку. В таких пакетах не проставляются номера последовательностей и они не требуют подтверждения о получении.

Все сообщения EIGRP инкапсулируются в IP-пакеты, номер EIGRP в поле protocol IP-пакета - 88.

EIGRP использует 5 типов сообщений:

Hello - маршрутизаторы используют hello-пакеты для обнаружения соседей. Пакеты отправляются multicast и не требуют подтверждения о получении.

Update - содержится информация об изменении маршрутов. Они отправляются только маршрутизаторам, которых касается обновление. Эти пакеты могут быть отправлены конкретному маршрутизатору (unicast) или группе маршрутизаторов (multicast). Получение update-пакета подтверждается отправкой ACK.

Query - когда маршрутизатор выполняет подсчет маршрута и у него нет feasible successor, он отправляет query-пакет своим соседям для того чтобы определить нет ли feasible successor для этого destination у них. Обычно query-пакеты отправляются multicast, но могут быть и unicast. Получение query-пакета подтверждается отправкой ACK получателем пакета.

Reply - маршрутизатор отправляет reply-пакет в ответ на query-пакет. Reply-пакеты отправляются unicast тому, кто отправил query-пакет. Получение reply-пакета подтверждается отправкой ACK.

ACK - пакет, который подтверждает получение пакетов update, query, reply. ACK-пакеты отправляются unicast и содержат в себе acknowledgment number. Фактически это hello-пакеты, которые не передают данных. Используется негарантированная доставка.

Таблица соседей (neighbor table) - список всех соседей BGP

Таблица BGP (BGP table, forwarding database, topology database):

Список всех сетей выученных от каждого соседа

Атрибуты BGP для каждого пути

Таблица маршрутизации - список лучших путей к сетям

По умолчанию BGP отправляет keepalive-сообщения каждые 60 секунд.

Если существует несколько путей к получателю, то маршрутизатор будет анонсировать соседям не все возможные варианты, а только лучший маршрут из таблицы BGP.

Маршрутизаторы могут быть уровня 1, уровня 2 или уровня 1-2:

Маршрутизаторы уровня 1 (как internal nonbackbone маршрутизаторы в OSPF) - знают маршруты в пределах зоны в которой они соединены;

Маршрутизаторы уровня 2 (как backbone маршрутизаторы в OSPF) - знают маршруты между зонами;

Маршрутизаторы уровня 1-2 (как ABR в OSPF) - знают маршруты и в пределах зоны в которой они соединены и между зонами. Это маршрутизаторы аналогичные ABR в OSPF.

Путь соединения маршрутизаторов уровня 2 и уровня 1-2 называется backbone.

Границы зон приходятся на каналы (links). Каждый маршрутизатор принадлежит только одной зоне. Соседние маршрутизаторы определяют в одной они зоне или в разных и устанавливают соответствующие отношения соседства: уровня 1, уровня 2 или обоих.

Демоны динамической маршрутизации:

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

Сами протоколы динамической маршрутизации можно классифицировать по нескольким критериям.

По алгоритмам:

Дистанционно-векторные протоколы (Distance-vector Routing Protocols);

Протоколы состояния каналов связи (Link-state Routing Protocols).

Иногда выделяют третий класс, усовершенствованные дистанционно-векторные протоколы (advanced distance-vector), для того чтобы подчеркнуть существенные отличия протоколов от классических дистанционно-векторных.

Компания Cisco ранее называла протокол EIGRP смешанный протокол, однако по своим принципам работы, EIGRP дистанционно-векторный протокол.

По области применения:

Междоменной маршрутизации;

Внутридоменной маршрутизации.

О чем эта статья

В статье описываются протоколы динамической маршрутизации, использующие для определения оптимальности того или иного маршрута различные алгоритмы – дистанционно-векторный и состояния связи. Приведен пример настройки конфигурации протокола OSPF для пакета Quagga. Описаны особенности демонов маршрутизации routed и gated.

Преимущества и недостатки динамической маршрутизации

Динамическая маршрутизация используется преимущественно в средних и крупных сетях со сложной, часто меняющейся инфраструктурой, где прежде всего важна оперативность отслеживания и устранения проблем связи. Это достигается за счет программного управления таблицами маршрутизации при помощи демонов (в unix-подобных системах для этих целей используются процессы routed и gated). Периодический обмен информацией между маршрутизаторами осуществляется с помощью соответствующих протоколов - на основании полученных данных корректируются записи в таблицах маршрутизации.

Использование протоколов динамической маршрутизации значительно сокращает затраты труда системного администратора по обслуживанию сети. Однако следует принимать во внимание тот факт, что при этом повышается нагрузка на процессоры маршрутизаторов и, как следствие, на сеть в целом. Отчасти данная проблема решается за счет использования динамической балансировки сетевой нагрузки и прописывания статических маршрутов отдельным сегментам сети. Но динамическая маршрутизация обладает и другим серьезным недостатком - возрастает риск DDOS-атак или перехвата сетевого трафика. В данных условиях повышение безопасности сети становится одной из приоритетных задач системного администратора.

Внутри- и междоменные протоколы динамической маршрутизации

По мере разрастания локальной сети вопрос эффективной организации динамической маршрутизации становится более актуальным из-за ограничения объема памяти маршрутизаторов и, как следствия, снижения быстродействия в результате увеличения нагрузки на сеть. Для его решения используется понятие «автономная система» (AS), которое представляет собой совокупность локальных сетей, объединенных единой маршрутной политикой. Протоколы, осуществляющие маршрутизацию внутри автономных систем в пределах домена, - RIP/RIPv2, IS-IS, IGRP, OSPF - входят в соответствующую группу «Interior Routing Protocols». В свою очередь, протоколы, выполняющие функцию организации маршрутизации между AS и являющиеся, своего рода, пограничными, или междоменными, - EGP, BGP - объединяются в группу Exterior Routing Protocols.

RIP (Routing Information Protocol) относится к протоколам дистанционного-векторного типа, использующим узел назначения и число хопов (переходов между транзитными узлами) до него в качестве простейшей метрики маршрутизации. В маршрутные таблицы RIP записывается информация об IP-адресах узла назначения и ближайшего шлюза, а также таймерах маршрута. Каждые 30 секунд маршрутизаторы отправляют широковещательные RIP-сообщения с текущими данными своей маршрутной таблицы, обновляя, таким образом, информацию о сети. В Unix и GNU/Linux поддержку протокола RIP первой версии (RIPv1) осуществляет демон маршрутизации routed.

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

RIP является одним из старейших протоколов динамической маршрутизации, в силу чего его возможности зачастую уступают более современным аналогам. Он прост в настройке, однако имеет ограничение на число хопов (всего 15). Это делает невозможным его использование в крупных сетях, несмотря на доработку протокола до версии RIPv2, в которой была добавлена поддержка VLSM-адресации (масок подсетей переменной длины), multicast-рассылки и возможность агрегации маршрутов. Тем не менее, RIPv2 может использоваться в малых и средних сетях как альтернатива статической маршрутизации.

Более эффективным способом организации динамической маршрутизации внутри AS является использование протоколов состояния связи (link-state protocols). При этом метрикой маршрутизации служит не узел назначения и его удаленность от источника, а коэффициент качества обслуживания канала ближайших маршрутизаторов, или «соседей». Решение об оптимизации маршрута принимается на основании данных о пропускной способности, периоде задержки, надежности и общей загрузке канала, что позволяет обслуживать средние и крупные сети со сложной инфраструктурой.

К протоколам состояния связи относится OSPF (Open Shortest Part First) , являющийся усовершенствованной версией протокола IS-IS и получивший широкое распространение в TCP/IP-сетях. Помимо стандартной поддержки VLSM-адресации, multicast-рассылки, возможности агрегации маршрутов и использования аутентификации, OSPF учитывает в формате рассылаемых сообщений данные поля TOS (Type-of-Service) для вычисления альтернативных маршрутов согласно текущему состоянию каналов связи. В Unix и Gnu/Linux OSPF входит в список протоколов, поддерживаемых демоном маршрутизации gated и пакетом GNU Zebra 1 или его усовершенствованной версией Quagga 2 .

Каждый маршрутизатор хранит информацию о состоянии соседних транзитных узлов, а также общую базу данных о топологии сети, представленную в виде графа. Актуальность состояния связей между соседними маршрутизаторами поддерживается за счет частого (от 10 до 30 секунд) обмена короткими hello-сообщениями. Информация об изменениях топологии всей сети передается с периодичностью раз в 30 минут отдельными пакетами «router links advertisment». Важной особенностью OSPF является поддержка разделения AS на несколько сегментов сети, каждый из которых имеет выделенный маршрутизатор (DR – Designated Router) и резервный (BDR – Backup Designated Router). Узлы, входящие в отдельный сегмент сети, получают информацию только от DR, который, в свою очередь, обменивается данными с другими выделенными маршрутизаторами. Такой метод позволяет поддерживать актуальность маршрутных таблиц и более эффективно распределять сетевую нагрузку.

При всех своих преимуществах, OSPF обладает некоторыми недостатками. В частности, даже при отсутствии ограничения на количество транзитных узлов в сети, не рекомендуется создавать отдельные сегменты, в которых количество маршрутизаторов превышает 50. В этом случае более эффективным будет равномерное распределение меньшего числа транзитных узлов по разным сегментам.

BGP (Border Gateway protocol) , или BGP4, является на сегодняшний день единственным междоменным протоколом, способным передавать информацию между отдельными AS. Он обеспечивает функционирование сети Интернет, используя для передачи данных маршруты, проходящие через наименьшее число AS. При этом каждые 30 секунд для проверки работоспособности узла происходит широковещательная рассылка TCP-пакетов (KEEPALIVE). Полученная информация добавляется в маршрутные таблицы только после инкрементного обновления. В дальнейшем AS обмениваются текущими изменениями.

Алгоритм работы BGP4 похож на векторно-дистанционный, с той разницей, что вектор пути ориентируется на номер сети и набор атрибутов, позволяющих принимать решение о выборе оптимального маршрута. В их число входят обязательные атрибуты AS_PATH (список AS, через которые должен проходить пакет) и NEXT_HOP (адрес следующего BGP-маршрутизатора), а также дополнительные параметры, отвечающие за агрегацию маршрутов, приоритет AS и маршрутизаторов и т. д.

BGP4 также поддерживает CIDR – бесклассовую маршрутизацию. В Unix и GNU/Linux BGP4, как и OSPF, настраивается при помощи gated или Quagga.

Демоны маршрутизации routed и gated

Routed 3 – стандартный демон маршрутизации, поддерживающий только протокол RIPv1. Он прост в использовании, так как не требует дополнительной настройки и самостоятельно вносит изменения в маршрутную таблицу при обнаружении более оптимальных маршрутов. Тем не менее, он обладает рядом недостатков, в частности, отсутствием поддержки других протоколов, неудобством при одновременном использовании статических и динамических маршрутов. В этом плане предпочтение отдается демону gated 4 , который обладает более широкими возможностями. В число поддерживаемых им протоколов входят RIPv2, OSPF, BGP4 и некоторые другие. Вместе с тем настройка конфигурационного файла /etc/gated.conf, в котором прописываются не только опции самого демона, но и настройки протоколов и маршрутов, и чей синтаксис схож с языками программирования, может показать достаточно сложной тем, кто впервые сталкивается с настройкой маршрутизации при помощи данной утилиты.

Настройка протокола OSPF при помощи Quagga

Пакет Quagga , разработанный как ответвление GNU Zebra, представляет собой набор утилит, предназначенных для настройки протоколов динамической маршрутизации в unix-подобных системах. Он входит в стандартную сборку большинства дистрибутивов, поддерживает все распространенные версии протоколов (OSPFv2, OSPFv3, RIPv1, RIPv2, RIPng, BGP4) и достаточно прост в настройке и использовании. При использовании Quagga под GNU/LInux рекомендуется проверять наличие выставленных параметров ядра CONFIG_NETLINK, CONFIG_RTNETLINK и CONFIG_IP_MULTICAST – они обеспечивают взаимодействие ядра и демона zebra, а также поддержку multicast-рассылки, используемой демонами ripd и osfpd.

В зависимости от задачи, после установки пакета необходимо выставить соответствующие настройки в конфигурационном файле для активации демонов:

# vim /etc/quagga/daemons zebra=yes ospfd=yes

Демоны, активация которые не нужна, по умолчанию выставлены с параметром no. Zebra активируется всегда, так как является управляющим и отвечает за внесение изменений в маршрутную таблицу ядра, а также координирует работу остальных демонов.

Для каждой установленной службы существует возможность редактирования конфигурационных файлов через отдельный интерфейс vty, подключение к которому реализуется при помощи telnet. Для этого автоматически выделяется номер порта, информацию о котором необходимо добавить в /etc/services:

zebra 2601/tcp # zebra vty ospfd 2604/tcp # ospfd vty

Для настройки демонов создается одноименный файл в /etc/quagga/ вида *.conf, при этом его владельцем должен быть пользователь quagga.

Запуск демонов осуществляется при помощи следующих команд:

# /usr/sbin/zebra –dk # запуск демона с сохранением уже сконфигурированных маршрутов # /usr/sbin/ospfd –d

Автономная система состоит из нескольких подсетей, объединенных тремя маршрутизаторами, которые также образуют отдельную подсеть (см. рис. 1) 5 . Один из маршрутизаторов является шлюзом по умолчанию для доступа в Интернет. Необходимо настроить динамическую маршрутизацию по протоколу OSPF между подсетями 192.168.10.0/24 и 192.168.12.0/24.


Для настройки OSPF необходимо установить пакет Quagga на каждом маршрутизаторе, а также отредактировать файл zebra.conf:

# vim /etc/quagga/zebra.conf !Имя хоста hostname Router1 !пароль для доступа в vty-интерфейс password zebra !пароль для административного доступа и настройки enable password zebra !путь к лог-файлу log file /var/log/quagga/zebra.log !интерфейс в подсеть 192.168.0.0/24 interface eth0 ip address 192.168.0.1./24 !шлюз в Интернет по умолчанию interface eth1 ip route 0.0.0.0./0 213.190.94.6 hostname Router2 password zebra enable password zebra log file /var/log/quagga/zebra.log interface eth0 ip address 192.168.0.2./24 interface eth1 ip address 192.168.12.1./24 hostname Router3 password zebra enable password zebra log file /var/log/quagga/zebra.log interface eth0 ip address 192.168.0.3./24 interface eth1 ip address 192.168.10.1./24

Таким же образом настраиваются конфигурационные файлы ospfd.conf:

# vim /etc/quagga/ospfd.conf hostname Router1 password zebra enable password zebra router ospf ospf router-id 192.168.0.1 #ID роутера network 192.168.0.0/24 area 0 #указание на подсеть и номер области, #которой она принадлежит default-information originate #анонсирование маршрута по умолчанию #происходит с данного шлюза log file /var/log/quagga/ospfd.log hostname Router2 password zebra enable password zebra router ospf ospf router-id 192.168.0.2 network 192.168.0.0/24 area 0 network 192.168.12.0/24 area 1 redistribute connected #все сети, подключенные к данным #интерфейсам, необходимо анонсировать #по ospf log file /var/log/quagga/ospfd.log hostname Router3 password zebra enable password zebra router ospf ospf router-id 192.168.0.3 network 192.168.0.0/24 area 0 network 192.168.10.0/24 area 2 redistribute connected log file /var/log/quagga/ospfd.log

После того как настройка закончена, необходимо запустить демоны и подключиться через telnet к tvy-интерфейсу ospfd:

# /usr/sbin/zebra –dk # /usr/sbin/ospfd –d # telnet localhost ospfd

Проверить работоспособность протокола можно, запустив в консоли Quagga команду show ip ospf neighbor, которая выводит список активных «соседних» маршрутизаторов. Команда show ip ospf route выводит список маршрутов, которые были получены по протоколу OSPF.

Средства мониторинга и анализа сети с динамической маршрутизацией

В большинстве случаев стандартные утилиты, при помощи которых конфигурируются протоколы динамической маршрутизации, уже содержат встроенные средства для ее мониторинга и анализа. Так, команда ospf_monitor, используемая в gated, позволяет увидеть подробную статистику по сконфигурированным маршрутным таблицам OSPF, а также информацию о соседних маршрутизаторах. Кроме того, поддержка логирования как в gated, так и в Quagga, позволяет системному администратору при создании соответствующего скрипта перенаправлять сообщения о критических ошибках на e-mail или другое средство оповещения.

Заключение

Использование динамической маршрутизации уместно в средних и крупных сетях с разветвленной и неоднородной топологией. Определенную поддержку здесь оказывают стандартные демоны либо специально разработанные утилиты, при помощи которых возможно создавать достаточно сложные конфигурации маршрутов. При этом в зависимости от поставленной задачи необходимо учитывать преимущества и недостатки каждого из протоколов динамической маршрутизации, выбранных для наиболее оптимального решения.



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: