По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Пока не создан единый протокол маршрутизации, управляющий остальными, существует необходимость в том, чтобы несколько протоколов маршрутизации мирно сосуществовали в одной сети. К примеру, одна компания работает с OSPF, а другая компания работает с EIGRP, и эти две компании слились в одно целое предприятие. Пока вновь образованный ИТ-персонал не перейдет для использования на единый протокол маршрутизации (возможно они когда-нибудь это сделают), маршруты, известные протоколу OSPF, необходимо объявить в часть сети, работающей под управлением EIGRP, и наоборот. Упомянутый выше сценарий возможен благодаря Route redistribution, и именно этому посвящена данная статья. Другие причины, по которым вам потребуется выполнить Route redistribution, это: различные части сети конкретной компании находятся под различным административным контролем; если необходимо объявить маршруты своему поставщику услуг через BGP, или, возможно, необходимо подключиться к сети делового партнера. Рассмотрим следующую базовую топологию. В простой топологии, показанной выше, мы хотим, чтобы OSPF и EIGRP объявляли друг другу маршруты, о которых они знают. Эта концепция называется взаимным перераспределением маршрутов. Поскольку роутер CENTR имеет один интерфейс в автономной системе OSPF (AS) и один интерфейс в EIGRP AS, он несет ответственность за выполнение Route redistribution. Seed Metrics Основная проблема, с которой мы сталкиваемся при Route redistribution между различными протоколами маршрутизации, заключается в разнообразных подходах, применяемых протоколами маршрутизации для измерения своих метрик. Например, OSPF использует cost-метрику, которая основана на bandwidth, в то время как EIGRP использует метрику, основанную на bandwidth и delay, но также может учитывать надежность или (и) нагрузку (и даже использовать Maximum Transmission Unit (MTU) в качестве прерывания связи). Итак, что же нам делать? Мы, как администраторы, можем настроить метрику, назначенную маршрутам, поступающим из одной AS, которые перераспределяются в другую AS. Если нам лень вручную настраивать метрику, которая будет использоваться для Route redistribution, то используется seed metric. В следующей таблице показаны seed metrics, используемые различными протоколами маршрутизации. Основываясь на приведенной выше таблице, мы видим, что, маршрутам, которые перераспределяются в OSPF по дефолту будет назначена метрика 20, если же маршруты, перераспределяются в протокол OSPF от протокола BGP, то им будет присвоено значение метрики 1. Интересно, что и RIP, и EIGRP по умолчанию имеют seed metrics бесконечности. Это означает, что любой маршрут, перераспределенный в эти протоколы маршрутизации, будет считаться недостижимым по умолчанию и поэтому не объявляются никаким другим роутерам. BGP, однако, перераспределяет маршрут, полученный из протокола внутреннего шлюза (IGP), используя исходную метрику этого маршрута. Пример базовой настройки Конечно, есть еще много вопросов, связанных с перераспределением маршрутов, таких как циклы маршрутизации, которые могут возникнуть, когда у нас есть несколько роутеров, соединяющих наши автономные системы, или выборочная фильтрация определенных маршрутов от перераспределения. Но мы вернемся ко всему этому в следующих статьях. А пока давайте разберемся, как выполнить базовую настройку Route redistribution (перераспределения маршрутов). Рассмотрим предыдущую топологию, на этот раз с добавлением информации о сети и интерфейсе: В этой топологии роутер CENTR изучает маршруты от OFF1 через OSPF и от OFF2 через EIGRP. Это видно в выходных данных команды show ip route, отображенной на CENTR: Однако ни роутер OFF1, ни роутер OFF2 не изучили никаких маршрутов, потому что роутер CENTR еще не выполняет Route redistribution. Об этом свидетельствует вывод команды show ip route, отображенной на OFF1 и OFF2: Теперь давайте добавим конфигурацию Route redistribution к роутеру CENTR. Чтобы подтвердить предыдущее утверждение о том, что seed metric для маршрутов, перераспределяемых в EIGRP, является бесконечностью, мы изначально не будем настраивать какие-либо метрики и позволим seed metric вступить в силу. CENTR# conf term Enter configuration commands, one per line. End with CNTL/ Z CENTR(config)#router ospf 1 CENTR(config-router)#redistribute eigrp 1 CENTR(config-router)#exit CENTR(config)#router eigrp 1 CENTR(config-router)# redistribute ospf 1 CENTR(config-router)#end CENTR# Команда redistribute применена в режиме конфигурации роутера для каждого протокола маршрутизации, и метрика не была указана. Важно, что, когда мы ввели команду redistribute eigrp 1 выше, мы не включили ключевое слово subnets в команду, которая заставляет как классовые, так и бесклассовые сети перераспределяться в OSPF. Однако, как видно из приведенных ниже выходных данных, ключевое слово subnets было автоматически добавлено для нас: Данное поведение автоматического добавления ключевого слова subnets наблюдается в последних версиях Cisco IOS. Некоторые, более старые версии Cisco IOS, не включают автоматически ключевое слово subnets, и вам может потребоваться вручную добавить его в команду redistribute. Давайте теперь взглянем на таблицы IP-маршрутизации на роутерах OFF1 и OFF2, чтобы увидеть, какие маршруты они изучили (и не изучили). Приведенные выше выходные данные показывают нам, что роутер CENTR успешно перераспределил маршруты, известные EIGRP в OSPF, которые затем были изучены роутером OFF1. Обратите внимание, что перераспределенные маршруты, известные роутеру OFF1, имеют метрику 20, которая является seed metrics OSPF. Однако роутер OFF2 не изучал никаких новых маршрутов, потому что, когда роутер CENTR перераспределял маршруты в EIGRP, он использовал seed metrics EIGRP бесконечность (что означает недостижимость). В результате эти маршруты не были объявлены роутеру OFF2. Чтобы решить эту проблему, нам нужно назначить метрику маршрутам, перераспределяемым в EIGRP. Существует три основных способа присвоения не дефолтных метрик маршрутам, перераспределяемым в протокол маршрутизации.. Установите метрику по умолчанию для всех протоколов маршрутизации, перераспределяемых в определенный протокол маршрутизации. Установите метрику как часть команды redistribute. Установите метрику используя route-map Чтобы проиллюстрировать первый вариант, давайте настроим метрику для назначения всем маршрутам, перераспределяемым в EIGRP. CENTR#configuration terminal Enter configuration commands, one per line. End with CNTL/Z. CENTR (config)#router eigrp 1 CENTR (config-router)#default-metric ? 1-4294967295 Bandwidth in Kbits per second CENTR (config-router)#default-metric 1000000 ? 0-4294967295 delay metric in 10 microsecond units CENTR(config-router)#default-metric 1000000 1 ? 0-255 Reliability metric where 255 is 100% reliable CENTR (config-router)#default-metric 1000000 1 255 ? 1-255 Effective bandwidth metric (Loading) where 255 is 100% loaded CENTR (config-router)#default-metric 1000000 1 255 1 ? 1-65535 Maximum Transmission Unit metric of thenpath CENTR (config-router)#default-metric 1000000 1 255 1 1500 CENTR (config-router)#end CENTR# Контекстно-зависимая справка была использована в приведенном выше примере для отображения каждого компонента метрики, назначаемого маршрутам, перераспределяемым в EIGRP. Однако последняя команда была default-metric 1000000 1 255 1 1500. Если бы мы устанавливали default-metric для OSPF, мы могли бы использовать такую команду, как default-metric 30, чтобы назначить стоимость 30 OSPF маршрутам, перераспределяемым в OSPF. Однако в этом примере мы указали только default-metric для EIGRP. Давайте теперь проверим таблицу IP-маршрутизации на роутере OFF2, чтобы увидеть, были ли маршруты OSPF успешно объявлены в EIGRP. Прекрасно! Роутер OFF2 изучил маршруты, происходящие из OSPF AS. Мы знаем, что маршруты первоначально пришли из-за пределов EIGRP, из-за кода EX, появляющегося в каждом из этих маршрутов. Второй вариант установки метрики на Route Redistribution состоял в том, чтобы назначить метрику как часть команды redistribute, которая позволяет нам указать различные метрики для различных протоколов маршрутизации, перераспределяемых в процесс маршрутизации. Чтобы проиллюстрировать этот подход, давайте удалим предыдущие команды default-metric и redistribute из роутера CENTR и введем команду redistribute, которая определяет метрику, которая будет назначена. CENTR#configuration terminal Enter configuration commands, one per line. End with CNTL/Z. CENTR(config)#router eigrp 1 CENTR(config-router)#no default-metric 1000000 1 255 1 1500 CENTR(config-router)#no redistribute ospf 1 CENTR(config-router)#redistribute ospf 1 ? Match Redistribution of OSPF routes metric Metric for redistributed routes route-map Route map reference cr CENTR(config-router)#redistribute ospf 1 metric 1000000 1 255 1 1500 CENTR(config-router)#end CENTR# Если мы сейчас вернемся к роутеру OFF2, то получим тот же результат, что и раньше: Третьим вариантом установки метрики для Route Redistribution использовании маршрутной карты (route-map). Маршрутные карты являются супермощными и могут быть использованы для различных конфигураций. По сути, они могут соответствовать определенному трафику и устанавливать один или несколько параметров (например, IP-адрес следующего прыжка) для этого трафика. Однако в нашем контексте мы просто будем использовать route-map для указания значения метрики, а затем применим ее к команде redistribute. В следующем примере показано, как мы можем удалить нашу предыдущую команду redistribute из роутера CENTR, создать route-map, а затем ввести новую команду redistribute, которая ссылается на нашу карту маршрута (route-map): CENTR#configuration terminal Enter configuration commands, one per line. End with CNTL/Z. CENTR(config)#router eigrp 1 CENTR(config-router)#no redistribute ospf 1 metric 1000000 1 255 1 1500 CENTR(config-router)#exit CENTR(config)#route-map SET-МETRIC-DEMO CENTR(config-route-map)#set metric 1000000 1 255 1 1500 CENTR(config-route-map)#exit CENTR(config)#router eigrp 1 CENTR(config-router)#redistribute ospf 1 route-map SET-МETRIC-DEMO CENTR(config-router)#end CENTR# В приведенном выше примере, после удаления нашей команды redistribute, мы создали карту маршрута с именем SET-METRIC-DEMO. Это был очень простой route-map, которая не должна была соответствовать никакому траффику. Он был просто использован для установки метрики. Однако в следующей статье мы увидим, что route-map может быть использована, чтобы дать нам больше контроля над нашим перераспределением маршрутов. В нашем текущем примере карта маршрута была затем применена к нашей новой команде redistribute. Опять же, это дает нам тот же результат с точки зрения таблицы IP-маршрутизации роутера OFF2: OSPF E1 или E2 Routes Прежде чем мы закончим эту статью в нашей серии Route redistribution, давайте еще раз рассмотрим таблицу IP-маршрутизации на роутере OFF1: Обратите внимание, что каждый из маршрутов, перераспределенных в OSPF, отображается в таблице IP-маршрутизации роутера OFF1 с кодом E2. Однако наблюдаются также код E1, оба указывающих, что маршрут возник из-за пределов OSPF AS роутера. Итак, в чем же разница между этими двумя кодами? Код E2 указывает, что маршрут несет метрику, назначенную роутером, выполняющим перераспределение, который известен как автономный системный пограничный роутер (ASBR). Это означает, что независимо от того, сколько дополнительных роутеров в OSPF мы должны пересечь, чтобы вернуться к ASBR, метрика остается такой же, какой она была, когда ASBR перераспределил ее. Когда мы перераспределяем маршруты в OSPF, эти маршруты, по дефолту, являются этими External Type 2 (E2). Код E1 указывает, что метрика маршрута состоит из первоначальной стоимости, назначенной ASBR, плюс стоимость, необходимая для достижения ASBR. Это говорит о том, что маршрут Е1, как правило, более точен, и на самом деле это так. Хотя наличие кода E1 не дает нам никакого преимущества в простой топологии, как у нас, где роутер OFF1 имеет только один путь для достижения ASBR (т. е. CENTR), и где есть только один способ для маршрутов EIGRP быть введенными в наш OSPF AS (т. е. через роутер CENTR). Если мы хотим перераспределить маршруты E1 в OSPF вместо маршрутов E2, то это можно сделать с помощью команды redistribute. В следующем примере мы удаляем нашу команду redistribute для процесса маршрутизации OSPF на роутере CENTR, а затем повторно применяем команду redistribute, указывающую, что мы хотим, чтобы External Type 1 (E1) применялись к перераспределенным маршрутам. CENTR#configuration terminal Enter configuration commands, one per line. End with CNTL/Z. CENTR(config)#router ospf 1 CENTR(config-router)#no redistribute eigrp 1 subnets CENTR(config-router)#redistribute eigrp 1 metric-type ? 1 Set OSPF External Туре 1 metrics 2 Set OSPF External Туре 2 metrics CENTR(config-router)#redistribute eigrp 1 metric-type 1 CENTR(config-router)#end CENTR#show Давайте проверим таблицу IP-маршрутизации на роутере OFF1, чтобы увидеть, изменились ли параметры на основе этой новой команды redistribute, введенной на роутере CENTR. В приведенных выше выходных данных обратите внимание, что маршруты, перераспределенные в OSPF, имеют код E1, а не дефолтный код E2. Кроме того, обратите внимание, что это приводит к тому, что метрика этих маршрутов будет немного выше. В частности, роутер CENTR перераспределил EIGRP-изученные маршруты в OSPF, используя начальную метрику OSPF 20. Однако существует стоимость OSPF 1, чтобы добраться от роутера OFF1 до роутера CENTR. Таким образом, поскольку перераспределенные маршруты были сконфигурированы как маршруты E1, стоимость этих маршрутов с точки зрения роутера OFF1 является стоимостью, первоначально назначенной роутером OFF1, которая составляла 20, плюс стоимость для OFF1, чтобы добраться до CENTR, который равен 1, итого общей стоимости 21. Отлично, теперь вы знаете, как делать перераспределение маршрутов. Теперь почитайте, как сделать Фильтрацию маршрутов с помощью карт маршрутов.
img
Виртуальные сети - это, в простейшем виде, создание логических топологий, построенных на основе физической топологии. Эти логические топологии часто называют виртуальными топологиями - отсюда и концепция виртуализации сети. Эти топологии могут состоять из одного виртуального канала в более крупной сети, называемого туннелем, или набора виртуальных каналов, которые кажутся полной сетью поверх физической сети, называемой наложением. Этот раздел лекций начнется с обсуждения того, почему создаются и используются виртуальные топологии, проиллюстрированные двумя примерами использования. Во втором разделе этих лекций будут рассмотрены проблемы, которые должно решить любое решение виртуализации, а в третьем разделе будут рассмотрены сложности при виртуализации сети. Далее будут рассмотрены два примера технологий виртуализации: сегментная маршрутизация (segment routing-SR) и программно - определяемые глобальные сети (Software-Defined Wide Area Networks- SD-WAN). Понимание виртуальных сетей Виртуализация усложняет проектирование протоколов, сетей и устранение неполадок, так зачем же виртуализировать? Причины, как правило, сводятся к разделению нескольких потоков трафика в одной физической сети. Это может показаться подозрительно похожим на другую форму мультиплексирования, потому что это еще одна форма мультиплексирования. Основные различия между рассмотренными до сих пор формами мультиплексирования и виртуализацией заключаются в следующем: Позволяет нескольким плоскостям управления работать с различными наборами информации о достижимости в рамках одной физической топологии; Позволяет нескольким наборам достижимых пунктов назначения работать в одной физической топологии без взаимодействия друг с другом; Рассмотренные до этого момента методы мультиплексирования были сосредоточены на том, чтобы позволить нескольким устройствам использовать одну физическую сеть (или набор проводов), позволяя каждому устройству взаимодействовать с любым другим устройством (при условии, что они знают друг о друге с точки зрения достижимости). Виртуализация направлена на разбиение одной физической сети на несколько доменов достижимости, где каждое устройство в домене достижимости может взаимодействовать с любым другим устройством в том же домене достижимости, но устройства не могут связываться между доменами достижимости (если нет какой-либо точки соединения между достижимостью домены). На рисунке 1 показана сеть с виртуальной топологией, расположенной поверх физической топологии. На рисунке 1 виртуальная топология была создана поверх физической сети, с виртуальным каналом [C,H], созданным для передачи трафика по сети. Чтобы создать виртуальную топологию, C и H должны иметь некоторую локальную информацию пересылки, отделяющую физическую топологию от виртуальной топологии, которая обычно проходит либо через E, либо через D. Это обычно принимает форму либо специального набора записей виртуального интерфейса в локальной таблице маршрутизации, либо таблицы виртуальной маршрутизации и пересылки (VRF), содержащей только информацию о виртуальной топологии. Рассмотрение потока пакетов через виртуальную топологию может быть полезно для понимания этих концепций. Как бы выглядел поток пакетов, если бы C и H имели виртуальные интерфейсы? Рисунок 2 демонстрирует это. На рисунке 2 процесс пересылки выполняется следующим образом: A передает пакет к M. C получает этот пакет и, исследуя свою локальную таблицу маршрутизации, находит, что кратчайший путь к месту назначения лежит через виртуальный интерфейс к H. Этот виртуальный интерфейс обычно называется туннельным интерфейсом; он выглядит с точки зрения таблицы маршрутизации, как и любой другой интерфейс маршрутизатора. Виртуальный интерфейс, через который необходимо передать пакет, имеет инструкции перезаписи, которые включают добавление нового заголовка, заголовка туннеля или внешнего заголовка в пакет и пересылку полученного пакета. Исходный заголовок пакета теперь называется внутренним заголовком. C добавляет внешний заголовок и обрабатывает новый пакет для пересылки. Теперь C исследует новый пункт назначения, которым является H (помните, что исходным пунктом назначения был M). H не подключен напрямую, поэтому C необходимо выяснить, как достичь H. Это называется рекурсивным поиском, поскольку C ищет путь к промежуточному месту назначения, чтобы доставить пакет к конечному месту назначения, но не к нему. Теперь C поместит правильную информацию в пакет в заголовок link local, чтобы перенаправить трафик на E. Когда E получает этот пакет, он удаляет внешнюю информацию о переадресации, Заголовок link local и пересылает трафик на основе первого заголовка C, помещенного в пакет, во время первоначального поиска. Этот внешний заголовок говорит E переслать пакет в H; E не видит и не включает исходный внутренний заголовок, помещенный на пакет A. E добавит новый Заголовок link local, чтобы пакет был правильно переадресован в H, и передаст пакет по правильному интерфейсу. Когда H получает пакет, он удаляет Заголовок link local и обнаруживает внешний заголовок. Внешний заголовок говорит, что пакет предназначен для самого H, поэтому он очистит этот заголовок и обнаружит исходный заголовок пакета или внутренний заголовок. Теперь H посмотрит в своей локальной таблице маршрутизации и обнаружит, что M локально подключен. H поместит правильный Заголовок link local в пакет и передаст его через правильный интерфейс, чтобы пакет достиг M. Если C и H используют VRF, а не туннельные интерфейсы, процесс в предыдущем списке изменяется на шагах 2 и 8. На шаге 2 C будет искать M как пункт назначения в VRF, связанном каналом [A, C]. Когда C обнаруживает, что трафик к M должен пересылаться через виртуальную топологию через H, он помещает внешний заголовок в пакет и снова обрабатывает пакет на основе этого внешнего заголовка через базовый VRF или, скорее, таблицу маршрутизации, представляющую физическую топологию. Когда H получает пакет, он удаляет внешний заголовок и снова обрабатывает пакет, используя VRF, к которому подключен M, для поиска информации, необходимой для пересылки трафика в его конечный пункт назначения. В этом случае интерфейс туннеля заменяется отдельной таблицей пересылки; вместо того, чтобы обрабатывать пакет через одну и ту же таблицу дважды с использованием двух разных адресатов, пакет обрабатывается через две разные таблицы пересылки. Термин туннель имеет много различных определений; в этих статьях туннель будет использоваться для описания виртуального канала, где внешний заголовок используется для инкапсуляции внутреннего заголовка, и: Внутренний заголовок находится на том же уровне или более низком уровне, чем внешний заголовок (например, заголовок Ethernet, переносимый внутри заголовка IPv6; обычно IPv6 переносится внутри Ethernet). По крайней мере, некоторые сетевые устройства на пути, будь то виртуальные или физические, пересылают пакет только на основе внешнего заголовка. Переход от виртуальных интерфейсов к VRFs концептуально отличается достаточно, чтобы породить различные описательные термины. Underlay -это физическая (или потенциально логическая!) топология, через которую туннелируется трафик. Overlay - это набор туннелей, составляющих виртуальную топологию. В большинстве случаев термины Underlay и Overlay не используются с отдельными туннелями или в случае службы, работающей через общедоступный Интернет. Сервис, который создает виртуальную топологию через общедоступный Интернет, часто называют сервисом over-the-top. Опять же, эти термины используются в некоторой степени взаимозаменяемо и даже очень небрежно в более широком мире сетевой инженерии. На этом фоне пора перейти к вариантам использования, чтобы узнать о наборе проблем, которые необходимо решить виртуализацией. Предоставление услуг Ethernet по IP-сети. Хотя приложения не должны создаваться с использованием подключения Ethernet в качестве базового, многие из них это делают. Например: Некоторые поставщики систем хранения данных и баз данных строят свои устройства с предположением, что подключение Ethernet означает короткое расстояние и короткую задержку, или они проектируют системы поверх проприетарных транспортных протоколов непосредственно поверх кадров Ethernet, а не поверх пакетов интернет-протокола (IP). Некоторые продукты виртуализации включают в свои продукты предположения о возможности подключения, такие как надежность кеширования Ethernet для IP-адресов для шлюза по умолчанию и других доступных мест назначения. Для таких приложений требуется то, что выглядит как соединение Ethernet между устройствами (физическими или виртуальными), на которых работают различные узлы или копии приложения. Помимо этого, некоторые сетевые операторы считают, что запуск большого плоского домена Ethernet проще, чем запуск крупномасштабного IP-домена, поэтому они предпочли бы создавать самые большие домены Ethernet, которые они могут ("коммутация, где можно, маршрутизация, где необходимо", была распространенная поговорка в те времена, когда коммутация выполнялось аппаратно, а маршрутизация выполнялась программно, поэтому коммутация пакетов выполнялась намного быстрее, чем их маршрутизация). Некоторые кампусы также построены с основной идеей - никогда не просить устройство коммутировать свой IP-адрес после подключения. Поскольку пользователи могут быть подключены к разным сегментам Ethernet в зависимости от их домена безопасности, каждый сегмент Ethernet должен быть доступен в каждой точке беспроводного доступа и часто на каждом порте Ethernet в кампусе. Учитывая сеть, основанную на IP, которая предполагает Ethernet как один из многих транспортных средств, поверх которых будет работать IP, как вы можете обеспечить подключение Ethernet к устройствам, связанным по IP-сети? На рисунке 3 показаны задачи, которые необходимо решить. На рисунке 3 процесс, работающий на A с IP-адресом 2001:db8:3e8:100::1, должен иметь возможность взаимодействовать со службой, работающей на B с IP-адресом 2001:db8:3e8:100::2, как если бы они находились в одном сегменте Ethernet (две службы должны видеть друг друга в обнаружении соседей и т. д.). Чтобы сделать проблему более сложной, служба на A также должна иметь возможность перемещаться в K без изменения своего локального кэша обнаружения соседей или маршрутизатора по умолчанию. Сама сеть, является маршрутизируемой сетью, работающей под управлением IPv6. Что необходимо для выполнения требований? Должен быть способ передачи кадров Ethernet по IP-сети, разделяющей серверы. Обычно это будет своего рода туннельная инкапсуляция, как описано в начале этого раздела. Туннелирование позволило бы принимать кадры Ethernet на C, например, инкапсулированные в какой-то внешний заголовок, чтобы их можно было транспортировать по маршрутизируемой сети. Когда пакет, содержащий кадр Ethernet, достигает D, этот внешний заголовок может быть удален, и кадр Ethernet пересылается локально. С точки зрения D, фрейм имеет локальное происхождение. Должен быть способ узнать о пунктах назначения, доступных через туннель, и привлечь трафик в туннель. На самом деле это две отдельные, но взаимосвязанные проблемы. Привлечение трафика в туннель может включать запуск второй плоскости управления с ее собственными VRFs или добавление дополнительной информации в существующую плоскость управления об адресах Ethernet Media Access Control (MAC), доступных на каждом пограничном маршрутизаторе. Может потребоваться перенести маркировку качества обслуживания (QoS) из внутреннего заголовка во внешний заголовок, чтобы трафик обрабатывался правильно при его пересылке. Виртуальный частный доступ к корпоративной сети. Почти в каждой организации есть какие-то удаленные сотрудники, либо на полную ставку, либо просто люди, которые перемещаются, и у большинства организаций есть какие-то удаленные офисы, где часть сотрудников работает вдали от главного офиса, чтобы напрямую взаимодействовать с местным организациями в некоторых отраслях, например, с покупателями или поставщиками. Все эти люди по-прежнему нуждаются в доступе к сетевым ресурсам, таким как электронная почта, системы путешествий, файлы и т. д. Эти службы, конечно, не могут быть доступны в общедоступном Интернете, поэтому необходимо предоставить какой-то другой механизм доступа. На рисунке 4 показаны типичное проблемное пространство. В этом варианте использования есть две основные проблемы: Как можно защитить трафик между отдельным хостом - B - и тремя хостами в небольшом офисе - C, D и E - от перехвата и чтения злоумышленником? Как можно защитить сами адреса назначения от попадания в публичную сеть? Эти проблемы связаны с некоторой защитой, которая, в свою очередь, подразумевает некоторую форму инкапсуляции пакетов. Как можно управлять качеством работы пользователей в этих удаленных местах для поддержки передачи голоса по IP и других приложений в реальном времени? Поскольку провайдеры в Интернете не поддерживают QoS, необходимо обеспечить другие формы гарантии качества. Таким образом, задача, которую необходимо решить, включает еще две общие проблемы. Должен быть способ инкапсулировать трафик, передаваемый по общедоступной сети, без раскрытия исходной информации заголовка и без подвергания информации, содержащейся в пакете, для проверки. Самым простым решением этих проблем является туннелирование (часто в зашифрованном туннеле) трафика от A и F к граничному маршрутизатору в сети организации G, где инкапсуляция может быть удалена, а пакеты перенаправлены на A. Должен быть способ объявить достижимые пункты назначения от G к удаленным пользователям, а также существование (или достижимость) удаленных пользователей к G и сети позади G. Эта информация о достижимости должна использоваться для привлечения трафика в туннели. В этом случае плоскости управления может потребоваться перенаправить трафик между различными точками входа и выхода в общедоступную сеть и попытаться контролировать путь трафика через сеть, чтобы обеспечить удаленным пользователям хорошее качество работы. Подведем итоги Два варианта использования, показанные выше, актуализируют два вопроса, которые должно решить каждое решение сетевой виртуализации: Как трафик инкапсулируется в туннель, чтобы можно было отделить пакеты и информацию плоскости управления от базовой сети? Решением этой проблемы обычно является некоторая форма инкапсуляции, в которую помещается исходный пакет, когда он передается по сети. Основное внимание при инкапсуляции - поддержка аппаратной коммутации в базовой сети, чтобы обеспечить эффективную пересылку инкапсулированных пакетов. Второстепенным соображением является размер формата инкапсулирующего пакета; каждый октет дополнительного заголовка инкапсуляции уменьшает объем полезной нагрузки, которую туннель может нести (если нет разницы между максимальной единицей передачи или MTU в сети, предназначенной для учета дополнительной информации заголовка, налагаемой туннелированием). Примечание Path MTU Detection (PMTUD) часто плохо определяет MTU инкапсулированных пакетов. Из-за этого часто требуется ручная настройка MTU в точке наложения заголовка туннеля. Как пункты назначения достигаются через туннель, объявленный через сеть? В более общих туннельных решениях туннель становится "просто еще одним звеном" в общей топологии сети. Пункты назначения, доступные через туннель, и дополнительная виртуальная связь просто включены как часть плоскости управления, как и любые другие пункты назначения и каналы. В этих решениях существует одна таблица маршрутизации или пересылки в каждом устройстве, и рекурсивный поиск используется для обработки пакета посредством пересылки в точке, где трафик входит в туннель или головной узел туннеля. Трафик привлекается в туннель путем изменения метрик таким образом, чтобы туннель был более желательным путем через сеть для тех пунктов назначения, которые оператор сети хотел бы получить через туннель. Это обычно означает в основном ручные решения проблемы привлечения трафика в туннель, такие как установка метрики туннеля ниже пути, по которому проходит туннель, а затем фильтрация пунктов назначения, объявленных через туннель, чтобы предотвратить объявления пунктов назначения, которые должны быть недоступны через туннель. На самом деле, если пункты назначения, достижимые через туннель, включают конечную точку туннеля (хвост туннеля), может образоваться постоянная петля маршрутизации, или туннель будет циклически переключаться между правильной переадресацией трафика и не переадресацией трафика вообще. В решениях с overlay и over-the-top развертывается отдельная плоскость управления (или передается отдельная база данных с информацией о доступности для адресатов, достижимых в underlay и overlay в единой плоскости управления). Пункты назначения, доступные через underlay и overlay, помещаются в отдельные таблицы маршрутизации (VRF) на головной станции туннеля, а таблица, используемая для пересылки трафика, основана на некоторой форме системы классификации. Например, все пакеты, полученные на конкретном интерфейсе, могут быть автоматически помещены в оверлейный туннель, или все пакеты с определенным классом обслуживания, установленным в их заголовках пакетов, или весь трафик, предназначенный для определенного набора пунктов назначения. Механизмы полного наложения и верхней виртуализации обычно не полагаются на метрики для привлечения трафика в туннель на головной станции. Еще одно необязательное требование - обеспечить качество обслуживания либо путем копирования информации QoS из внутреннего заголовка во внешний заголовок, либо путем использования какой-либо формы проектирования трафика для передачи трафика по наилучшему доступному пути.
img
Цель данной статьи, чтобы разобраться с тем как поправить незначительные ошибки, возникающие в файловых системах. Файловых систем много, поэтому много различных инструментов для работы с ними. Поэтому будет рассказано об основных инструментах к основным стандартным системам Linux. И рассмотрим несколько инструментов к рекомендованным LPIC файловым системам. Рассмотрим, так же журналируемые файловые системы и посмотрим индексные дескрипторы. Проверка целостности файловой системы; Проверка свободного пространства и индексных дескрипторов в файловой системе; Исправление проблем файловой системы. Список утилит: df, du, fsck, debugfs – общие утилиты для всех Linux систем mke2fs, e2fsck, dumpe2fs, tune2fs – утилиты для файловой системы ext xfs_check, xfs_repair, xfs_info, xfs_metadump – утилиты для файловой системы xfs Совершенно понятно, что для других файловых систем есть свои утилиты для работы с данными файловыми сиcтемами. Первая утилита df: man df Данная утилита показывает использование дискового пространства. У данной утилиты достаточно много ключей. Её особенностью является то, что она показывает дисковое пространство в 1 кбайт блоках. Данные цифры не очень понятны и удобны, для того чтобы было удобно можно использовать ключ –h и тогда вид станет удобно читаемым. В выводе команды мы сразу видим размер, сколько использовано, процент использование и точка монтирования. Как мы видим на новом перемонтированном разделе /dev/sdc1 занят 1% дискового пространства. Если посмотреть в папку монтирования раздела, то мы увидим там папку lost+found. Данная папка пуста, но занимает 37 МБ. Есть такое понятие индексные дескрипторы в журналируемых файловых системах inode. Inode – это метка идентификатора файла или по другому индексный дескриптор. В этих индексных дескрипторах хранится информация о владельце, типе файла, уровне доступа к нему. И нужно понимать, что для каждого файла создается свой отдельный inode. Команда df –I может показать нам inode. Число, например, inode напротив /dev/sda2 показывает сколько inode всего может быть на устройстве, далее сколько используется и сколько свободно. Обычно под inode отдается примерно 1% жесткого диска. И получается, что больше чем число inode на устройстве файлов и папок быть не может. Количество inode зависит от типа файловой системы. Далее мы рассмотрим, как пользоваться inode. Следующая команда du man du Данная команда показывает, что и сколько занимает у нас места на жестком диске, а именно размер папок в текущей директории. Если посмотреть вывод данной команды без ключей, то мы увидим список папок в текущей директории и количество блоков, с которым очень неудобно работать. Чтобы перевести данные блоки в человеческий вид, то необходимо дать ключ –h. А для еще большего удобства, можно установить замечательную утилиту ncdu простой командой. sudo apt install ncdu –y После установки нужно запустить ncdu. И мы увидим очень красивую картинку. Но вернемся к стандартной утилите du. С помощью данной утилиты мы можем указать в какой папке необходим просмотр папок и вывод их размера. du –h /home К сожалению данная утилита умеет взвешивать вес только каталогов и не показывает размер файлов. Для того, чтобы посмотреть размер файлов, мы конечно же можем воспользоваться командой ls –l. А также если мы запустим данную команду с ключем –i мы увидим номера inode файлов. Как вы видите у каждой папки и у каждого файла есть свой индексный дескриптор. Далее команды, которые нам позволят проверить целостность файловой системы. Команда fsck man fsck Как написано в описании утилиты она позволяет проверять и чинить Linux файловую систему. Мы можем видеть, например, в oперационной системе Windows, что в случае некорректного завершения работы операционной системы, операционная система запускает утилиту проверки целостности checkdisk. В случае необходимости данная утилита исправляет найденные ошибки в файловой системе. Следовательно, в Linux данные операции выполняет утилита fsck, причем может работать с различными файловыми системами Linux операционных систем. Мы можем попробовать воспользоваться утилитой fsck /dev/sdc1. В ответ от операционной системы мы получим следующее: Как мы видим операционная система вернула в ответ на команду для работы с данным разделом, что данный раздел с монтирован и операция прервана. Аналогичную ситуацию мы будем наблюдать в операционной системе Windows, если мы будем пытаться рабочий раздел проверить на ошибки. Т.е возникнет следующая ситуация. Если мы будем проверять дополнительный логический диск, где не установлена операционная система Windows, то данный раздел на время проведения тестов будет отключен и будут идти проверки. А если мы попытаемся проверить основной раздел, куда установлена операционная система Windows, то операционная система не сможет запустить данную утилиту и попросит перезагрузиться для запуска данной утилиты. В нашем случае придется делать точно так же. Поэтому, чтобы проверить необходимо отключить (от монтировать раздел) и после уже этого запускать утилиту. Из вывода можно заметить утилита пыталась запустить другую утилиту e2fsck, которая в данном случае отвечает за проверку файловых систем extext2ext3ext4. О чем достаточно подробно написано в описании данной утилиты. По сути fsck запускает утилиту ту, которая идет в пакете утилит для конкретной файловой системы. Бывает такое, что fsck не может определить тип файловой системы. Для того, чтобы утилита все-таки проверила файловую систему, необходимо отмонтировать логический раздел. Воспользуемся командой umount /mnt. И запускаем непосредственно саму проверку fsck –t ext4 /dev/sdc1 Проходит проверка моментально. Команда fsck запустилась и запустила необходимую утилиту для файловой системы. По результатам проверки файловая система чистая, найдено 11 файлов и 66753 блока. При обнаружении проблем, утилита предложила нам исправить. Для того, чтобы посмотреть на проверку другой файловой системы, необходимо переформатировать раздел. mkfs –t xfs –f /dev/sdc1 При попытке запуска проверки без указания типа файловой системы fsck /dev/sdc1 Как мы видим, утилита fsck отказалась проверять или вызывать утилиту, а явно указала на ту которую необходимо использовать в данном случае. Для проверки используем xfs_ncheck /dev/sdc1. А для починки файловой системы xfs_repair /dev/sdc1. Перемонтируем обратно наш раздел mount /dev/sdc1 /mnt Теперь можно получить информацию по разделу xfs_info /dev/sdc1 Или сделать дамп файловой системы xfs_metadump /dev/sdc1 dump.db Переформатируем файловую систему ext4 на разделе обратно /dev/sdc1. Перемонтируем в папку mnt. Создадим текстовый файл с текстом на данном разделе nano /mnt/test.txt Далее мы можем посмотреть следующую утилиту man debugfs. Данная утилита умеет очень многое: очень много ключей и различных опций. Чистит, удаляет, чинит, работает с inodes. Зайти в данную утилиту можно debugfs –w /dev/sdc1. Набираем help и видим кучу опций. Можно попросить данную утилиту вывести содержимое нашего тома. ls В результате данной команды мы увидим 2 объекта с номерами их inode. Теперь мы можем сказать rm test.txt и файл будет удален, точнее не сам файл а его индексный дескриптор., если посмотреть опять с помощью команды ls. То будет видно, что количество объектов не изменилось. Следовательно, мы этот файл в журналируемых файловых системах можем восстановить, восстановив его индексный дескриптор. Но только до тех пор, пока на место удаленного файла не был записан другой. Именно поэтому если требуется восстановление информации на диске, рекомендуется немедленно отключить ПК и после этого отдельно подключать носитель информации для процедуры восстановления. Так же на данном принципе основано сокрытие информации в Информационной безопасности, когда на носитель информации в 2 или 3 прохода записываются псевдослучайные данные. Для восстановления данных мы можем использовать команду lsdel. Данная команда показывает удаленные файлы. В принципе на данном debugfs и основаны многие программы для восстановления данных. На скриншоте хорошо видно, что был удален 1 inode с номером 12 дата и время, другие параметры. Для выхода используем q. Для восcтановления используем undel test.txt, команда, номер индексного дескриптора и имя файла с которым оно восстановится. Убедиться, что файл на месте можно с помощью команды ls. Утилита debagfs помогает восстанавливать файлы и вообще работать с файловой системой на низком уровне. Конечно восстанавливать по 1 файлу, это очень трудозатратно. Поэтому вот эти низкоуровневые утилиты используют более современные программы. Еще одна утилита dumpe2fs. Можно вызвать справку по данной утилите man dumpe2fs Данная команда делает дамп информации, которая хранится на данных томах. Выполним данную команду для /dev/sdc1 Мы получим следующий вывод информации. Данный вывод был сделан на стандартный вывод – т.е экран. Сделаем вывод в файл, например: dumpe2fs /dev/sdc1 > /tmp/output.txt Мы можем просмотреть информацию в выведенную в файл поэкранно с помощью less /tmp/output.txt В выводе мы сможем увидеть основные опции данной файловой системы. Переделаем файловую систему, текущую ext4 в ext2. Это можно сделать 3-мя способами с помощью утилит: mkfs, mke2fs, mkfs.ext2. Перед переформатирование необходимо отмонтировать файловую систему. После форматирования и перемонтируем. Опять снимаем дамп и передаем по конвееру на команду grep чтобы посмотреть features. Получаем следующее: dumpe2fs /dev/sdc1 | grep features И видим, что файловые системы отличаются, более новая файловая система имеет фишку журналирования has_jounal. Данная опция так же присутствует в ext3. Т.е в данных файловых системах имеются журналы с помощью которых удобно восстанавливать. Есть интересная утилита tune2fs – настраивать файловую систему. man tune2fs Данная утилита, как следует из описания настраивает настраиваемые параметры файловых систем. Например, у нас есть не журналируемая файловая система ext2. Мы даем команду tune2fs –O has_journal /dev/sdc1. Данная утилита добавляет опцию ведения журнала к файловой системе ext2. Или можем наоборот сказать удалить опцию поставив значок ^.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59