По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Контейнеры Docker и Kubernetes - движущая сила современного жизненного цикла разработки программного обеспечения. Хотя Docker - более безопасный вариант, чем работа непосредственно на главном компьютере, при работе с контейнерами может возникнуть множество потенциальных проблем безопасности. В эту статью включены десять рекомендаций по безопасности контейнеров, которые помогут предотвратить атаки и нарушения безопасности. 1. Регулярно обновляйте Docker и хост Убедитесь, что ваш хост и Docker обновлены. Используйте последнюю версию ОС и программное обеспечение для контейнеризации, чтобы предотвратить уязвимости системы безопасности. Каждое обновление включает критические исправления безопасности, необходимые для защиты хоста и данных. Обновление Docker не ограничивается самой платформой. Запущенные контейнеры не обновляются автоматически. Вы также должны обновить контейнеры и образы, на которых они основаны. 2. Настройте квоты ресурсов. Чтобы избежать взлома контейнеров, которые чрезмерно потребляют ресурсы, установите ограничения на использование памяти и ЦП Docker. Не настраивая квоты ресурсов, вы предоставляете контейнеру доступ ко всем ресурсам ОЗУ и ЦП хоста. Поскольку это настройка по умолчанию, рекомендуется ограничить количество ресурсов, которые может использовать контейнер, чтобы это не нарушило работу других служб. Это не только предотвращает использование контейнером всех ресурсов, но также помогает поддерживать эффективность среды Docker. Квоты ресурсов обеспечивают работу контейнеров с ожидаемой скоростью и повышают безопасность. 3. Используйте пользователей без полномочий root Docker позволяет запускать контейнер в привилегированном режиме. Хотя это может быть более быстрый способ обойти некоторые протоколы безопасности, вы всегда должны воздерживаться от использования этой практики. Опасность запуска привилегированного контейнера заключается в том, что он открывает дверь для потенциальной вредоносной активности. Привилегированный пользователь Docker имеет те же привилегии, что и root. Это означает, что у него есть доступ к функциям ядра и другим устройствам на хосте. Злоумышленник может войти в вашу хост-систему через контейнер и подвергнуть опасности все, что находится на ней. Придерживаться исключительно пользователей без полномочий root просто, так как это настройки Docker по умолчанию. Чтобы изменить конфигурацию по умолчанию, вам нужно будет добавить флаг --privileged в команду docker run. Однако это серьезная угроза безопасности и не должна использоваться. 4. Ограничьте возможности Контейнеры имеют ограниченный набор возможностей Linux. Например, они могут позволить пользователю запускать контейнер с эффективностью root, но без полных привилегий root. Ограниченные возможности Docker являются настройками безопасности по умолчанию, и они одинаковы для каждого контейнера. Поэтому рекомендуется изменить возможности, чтобы включить только то, что необходимо. Администратор управляет ими с помощью параметров --cap-add и --cap-drop. Самый безопасный способ настроить возможности контейнера - удалить все (используя параметр --cap-drop = ALL), а затем добавить необходимые. 5. Запретить новые привилегии Как видно из приведенного выше примера, Docker позволяет изменять возможности и привилегии контейнеров после их запуска. Чтобы предотвратить атаки повышения привилегий, рекомендуется определить привилегии контейнера. Чтобы запретить процессам-контейнерам получать новые привилегии, используйте флаг --security-opt со значением no-new-privileges: true. Добавление флага в команду docker run перезаписывает все правила, которые вы установили с помощью параметров --cap-add и --cap-drop. Кроме того, вы можете удалить или отключить двоичные файлы setuid и setgid в образах. Это гарантирует, что функция не будет использоваться для обхода/инъекции пути, переполнения буфера и атак с повышением привилегий. 6. Используйте надежные образы При извлечении образа из онлайн-реестров убедитесь, что оно из безопасного и надежного источника. Самый безопасный вариант - использовать официальный центр Docker. Избегайте общедоступных сторонних реестров, в которых отсутствуют политики контроля. При использовании онлайн-библиотек всегда просматривайте содержимое внутри образа. Кроме того, используйте инструменты сканирования образов для поиска уязвимостей перед загрузкой чего-либо в хост-систему. Лучше всего зайти в Docker Hub и посмотреть, сможете ли вы найти там нужный образ. Это крупнейшая в мире библиотека и сообщество Docker с более чем 100 000 образов контейнеров. 7. Держите образы и контейнеры легковесными Сведите к минимуму поверхность атаки контейнеров Docker, используя минимальный базовый образ и уменьшив количество компонентов контейнера. Сохранение небольшого размера образа помогает предотвратить нарушения безопасности и ускоряет работу контейнера. 8. Безопасные реестры Реестр Docker - это система доставки контента, используемая для хранения и предоставления образов для ваших контейнеров. Вы можете использовать официальный онлайн-реестр Docker или настроить частный реестр на своем хосте. Для решения для хранения образов корпоративного уровня следует использовать доверенный реестр Docker (DTR - Docker Trusted Registry ). Вы можете установить реестр за брандмауэром, чтобы предотвратить возможные нарушения. 9. Не открывайте сокет демона Docker Docker взаимодействует с сокетом домена UNIX, который называется /var/run/docker.sock. Это основная точка входа для Docker API. Любой, у кого есть доступ к сокету демона Docker, также имеет неограниченный root-доступ. Разрешение пользователю писать в /var/run/docker.sock или открывать сокет контейнеру - это серьезная угроза безопасности для остальной системы. По сути, это дает ему привилегии root. Установка сокета Docker внутри контейнера не ограничивает его привилегированным доступом внутри контейнера. Это позволяет контейнеру полностью контролировать хост и все другие контейнеры. Следовательно, это не рекомендуемая практика. 10. Отслеживайте API и сетевую активность. API и сети играют решающую роль в безопасности Docker. Контейнеры Docker обмениваются данными через API и сети. Следовательно, чтобы избежать вторжения, архитектура должна быть настроена безопасно. Администраторы безопасности недавно обнаружили новый тип атаки, использующий неправильно настроенные API-интерфейсы Docker. Хакеры используют плохо настроенные API-интерфейсы и сетевую безопасность, используют их для развертывания образа и запуска вредоносного контейнера в хост-системе. Помимо безопасной настройки сетей и API, вам также необходимо отслеживать действия для выявления потенциальных аномалий.
img
Это первая статья цикла. Продолжение: 2 часть Плоскость данных Начнем с того, что основная задача сети-перенос данных с одного подключенного хоста на другой. Это может показаться простым на первый взгляд, но на самом деле это чревато проблемами. Здесь может быть полезна иллюстрация; рисунок № 1 используется для иллюстрации сложности проблемы. Начиная с верхнего левого угла иллюстрации: Приложение генерирует некоторые данные. Эти данные должны быть отформатированы таким образом, чтобы принимающее приложение могло понять, что было передано, - данные должны быть упорядочены. Механизм, используемый для упорядочения данных, должен быть эффективным во многих отношениях, включая быстрое и простое кодирование, быстрое и простое декодирование, достаточно гибкий, чтобы можно было вносить изменения в кодирование, не нарушая слишком много вещей, и добавлять наименьшее количество накладных расходов, возможных во время передача данных. Сетевое программное обеспечение должно инкапсулировать данные и подготовить их к фактической передаче. Каким-то образом сетевое программное обеспечение должно знать адрес хоста назначения. Сеть, которая соединяет источник и пункт назначения, является общим ресурсом, и, следовательно, должна быть доступна некоторая форма мультиплексирования, чтобы источник мог направлять информацию в правильный пункт назначения. Как правило, это будет связано с определенной формой адресации. Данные должны быть перемещены из памяти в источнике и непосредственно в сеть - фактический провод (или оптический кабель, или беспроводное соединение), который будет передавать информацию между устройствами, подключенными к сети. Сетевые устройства должны иметь какой-то способ обнаружить конечный пункт назначения информации - вторую форму проблемы мультиплексирования - и определить, требуется ли какая-либо другая обработка информации, когда она находится в пути между источником и пунктом назначения. Информация, прошедшая через сетевое устройство, должна быть снова закодирована и перенесена из памяти в провод. В любой точке, где информация перемещается из памяти в какую-либо форму физического носителя, информация должна быть поставлена в очередь; часто бывает больше данных для передачи, чем может быть помещено на любой конкретный физический носитель в любой момент времени. Здесь в игру вступает качество услуг. Информация, передаваемая по сети, теперь должна быть скопирована с физического носителя и обратно в память. Он должен быть проверен на наличие ошибок - это контроль ошибок - и у приемника должен быть какой-то способ сообщить передатчику, что ему не хватает памяти для хранения входящей информации - это контроль потока. Особый интерес представляет сетевое устройство в середине диаграммы. Сетевое устройство-например, маршрутизатор, коммутатор или middle box—соединяет два физических носителя вместе для построения реальной сети. Возможно, самый простой вопрос для начала заключается в следующем: зачем вообще нужны эти устройства? Маршрутизаторы и коммутаторы — это, очевидно, сложные устройства со своей собственной внутренней архитектурой и зачем добавлять эту сложность в сеть? Есть две фундаментальные причины. Первоначальная причина создания этих устройств заключалась в соединении различных видов физических носителей вместе. Например, внутри здания может быть практично работать ARCnet или thicknet Ethernet (приведены примеры из времени, когда были впервые изобретены сетевые устройства). Расстояние, которое эти носители могли преодолеть, однако, очень мало-порядка сотни метров. Каким-то образом эти сети должны быть расширены между зданиями, между кампусами, между городами и, в конечном счете, между континентами, используя своего рода мультиплексированную (или обратную мультиплексированную) телефонную сеть, такую как T1 или DS3. Эти два различных типа носителей используют различные виды сигналов; должно быть какое-то устройство, которое переводит один вид сигналов в другой. Вторая причина заключается в следующем — это масштаб и это стало проблемой. Природа физического мира такова, что у вас есть два варианта, когда дело доходит до передачи данных по проводу: Провод может соединять напрямую два компьютера; в этом случае каждая пара компьютеров должна быть физически соединена с каждым другим компьютером, с которым она должна взаимодействовать. Провод может быть общим для многих компьютеров (провод может быть общим носителем информации). Чтобы решить проблему первым способом, нужно много проводов. Решение проблемы вторым способом кажется очевидным решением, но оно представляет другой набор проблем - в частности, как пропускная способность, доступная по проводам, распределяется между всеми устройствами? В какой-то момент, если на одном общем носителе достаточно устройств, любая схема, используемая для обеспечения совместного использования ресурсов, сама по себе будет потреблять столько же или больше пропускной способности, как любое отдельное устройство, подключенное к проводу. В какой-то момент даже 100-гигабайтное соединение, разделенное между достаточным количеством хостов, оставляет каждому отдельному хосту очень мало доступных ресурсов. Решением этой ситуации является сетевое устройство - маршрутизатор или коммутатор, который разделяет два общих носителя, передавая трафик между ними только по мере необходимости. При некотором логическом планировании устройства, которые должны чаще общаться друг с другом, можно размещать ближе друг к другу (с точки зрения топологии сети), сохраняя пропускную способность в других местах. Конечно, маршрутизация и коммутация вышли далеко за рамки этих скромных начинаний, но это основные проблемы, которые системные администраторы решают, внедряя сетевые устройства в сети. Есть и другие сложные проблемы, которые необходимо решить в этом пространстве, помимо простого переноса информации из источника в пункт назначения; Во многих случаях полезно иметь возможность виртуализировать сеть, что обычно означает создание туннеля между двумя устройствами в сети. Сети всегда создавались для одной цели: передачи информации от одной подключенной системы к другой. Дискуссия (или, возможно, спор) о наилучшем способе выполнения этой, казалось бы, простой задачи длилась долго. Эту дискуссию можно грубо разбить на несколько, часто пересекающихся, этапов, каждый из которых задавал свой вопрос: Должны ли сети быть с коммутацией каналов или с коммутацией пакетов? Должны ли сети с коммутацией пакетов использовать кадры фиксированного или переменного размера? Как лучше всего рассчитать набор кратчайших путей через сеть? Как сети с коммутацией пакетов должны взаимодействовать с качеством обслуживания (QoS)? Должна ли плоскость управления быть централизованной или децентрализованной? На некоторые из этих вопросов давным-давно был дан ответ. С другой стороны, некоторые из этих вопросов все еще актуальны, особенно последний. Коммутация каналов Первое большое обсуждение в мире компьютерных сетей было то, должны ли сети быть с коммутацией каналов или с коммутацией пакетов. Основное различие между этими двумя понятиями заключается в концепции схемы: нужно ли передатчику и приемнику «видеть» сеть как один провод или соединение, предварительно сконфигурированное (или настроенное) с определенным набором свойств прежде чем они начнут общаться? Или они «видят» сеть как общий ресурс, где информация просто генерируется и передается «по желанию»? Первый считается с коммутацией каналов, а второй считается с коммутацией пакетов. Коммутация каналов имеет тенденцию обеспечивать больший поток трафика и гарантии доставки, в то время как коммутация пакетов обеспечивает доставку данных при гораздо меньших затратах - первый из многих компромиссов, с которыми вы столкнетесь при проектировании сетей. Рисунок 2 будет использован для иллюстрации коммутации каналов с использованием мультиплексирования с временным разделением (TDM) в качестве примера. На рисунке 2 общая пропускная способность каналов между любыми двумя устройствами разделена на восемь равных частей; A отправляет данные E, используя временной интервал A1 и F, используя временной интервал A2; B отправляет данные в E с использованием временных интервалов B1 и F с использованием временных интервалов B2. Каждый фрагмент информации имеет фиксированную длину, поэтому каждый из них может быть помещен в один временной интервал в текущем потоке данных (следовательно, каждый блок данных представляет фиксированное количество времени или интервала в проводе). Предположим, что где-то есть контроллер, назначающий слот в каждом из сегментов, через которые будет проходить трафик: Для трафика [A, E]: На C: слот 1 от A переключен на слот 1 в направлении D На D: слот 1 от C переключен на слот 1 в направлении E Для трафика [A, F]: На C: слот 4 от A переключен на слот 4 в направлении D На D: слот 4 от C переключен на слот 3 в направлении F Для трафика [B, E]: На C: слот 4 от B переключен на слот 7 в направлении D На D: слот 7 от C переключен на слот 4 в направлении E Для трафика [B, F]: На C: слот 2 от B переключен на слот 2 в направлении D На D: слот 2 от C переключен на слот 1 в направлении F Ни одно из устройств обработки пакетов в сети не должно знать, какой бит данных идет куда; до тех пор, пока C берет все, что находится в слоте 1 в потоке данных A в каждом временном интервале, и копирует его в слот 1 в своем исходящем потоке в направлении D, А D копирует его из слота 1 входящего из C в слот 1 исходящего в E, трафик, передаваемый A, будет доставляться в E. Есть интересный момент, который следует отметить об этом виде обработки трафика—для пересылки трафика ни одно из устройств в сети на самом деле не должно знать, что является источником или назначением. Блоки данных, передаваемые по сети, не обязательно должны содержать адреса источника или назначения; куда они направляются и откуда поступают, все решения основываются на знании контроллерами открытых слотов в каждом канале. Набор слотов, назначенных для любой конкретной связи между устройствами, называется схемой, потому что это пропускная способность и сетевые ресурсы, выделенные для связи между одной парой устройств. Основные преимущества сетей с коммутацией каналов включают в себя: Для коммутации пакетов устройствам не нужно читать заголовок или выполнять какую-либо сложную обработку. Это было чрезвычайно важно в первые дни работы сети, когда аппаратное обеспечение имело гораздо меньшее количество транзисторов и переключателей, скорость линии была ниже, а время обработки пакета в устройстве составляло большую часть общей задержки пакета через сеть. Контроллер знает доступную полосу пропускания и трафик, направляемый к периферийным устройствам по всей сети. Это делает его несколько простым, учитывая, что на самом деле имеется достаточная пропускная способность, для организации трафика для создания наиболее оптимальных путей через сеть. Есть и недостатки, в том числе: Сложность контроллера значительно возрастает по мере того, как сеть и услуги, которые она предлагает, растут в масштабе. Нагрузка на контроллер может стать подавляющей, фактически вызывая перебои в работе сети. Пропускная способность на каждом канале используется не оптимально. На рис. 1-3 блоки времени (или ячейки), содержащие*, по существу являются потерянной полосой пропускания. Слоты назначаются определенной схеме заранее: слоты, используемые для трафика [A, E], не могут быть «заимствованы» для трафика [A, F], даже если A ничего не передает в сторону E. Время, необходимое для реагирования на изменения в топологии, может быть довольно длительным с точки зрения сети; локальное устройство должно обнаружить изменение, сообщить о нем контроллеру, и контроллер должен перенастроить каждое сетевое устройство вдоль пути каждого затронутого потока трафика. Системы TDM внесли ряд идей в развитие сетей, используемых сегодня. В частности, системы TDM сформировали большую часть ранних дискуссий о разбиении данных на пакеты для передачи по сети и заложили основу для гораздо более поздней работы в области QoS и управления потоком. Одна довольно важная идея, которую эти ранние системы TDM завещали большему сетевому миру, - это network planes. В частности, системы TDM делятся на три плоскости: Плоскость управления - это набор протоколов и процессов, которые формируют информацию, необходимую сетевым устройствам для пересылки трафика через сеть. В сетях с коммутацией каналов плоскость управления является полностью отдельной плоскостью; обычно существует отдельная сеть между контроллером и отдельными устройствами (хотя и не всегда, особенно в новых системах с коммутацией каналов). Плоскость данных (также известная как плоскость пересылки) - это путь информации через сеть. Это включает в себя декодирование сигнала, полученного в проводе, в кадры, обработку их и передачу их обратно в провод, закодированный в соответствии с физической транспортной системой. Плоскость управления ориентирована на управление сетевыми устройствами, включая мониторинг доступной памяти, мониторинг глубины очереди, а также мониторинг, когда устройство отбрасывает информацию, передаваемую по сети, и т. д. Часто бывает трудно различить уровни управления и плоскости управления в сети. Например, если устройство вручную сконфигурировано для пересылки трафика определенным образом, является ли это функцией плоскости управления (потому что устройство настраивается) или функцией плоскости управления (потому что это информация о том, как пересылать информацию)? Коммутация пакетов В начале-середине 1960-х годов коммутация пакетов находилась в состоянии «in the air». Много людей переосмысливали то, как сети были построены, и рассматривали альтернативы парадигме коммутации каналов. Paul Baran, работавший в RAND Corporation, предложил сеть с коммутацией пакетов в качестве решения для обеспечения живучести; примерно в то же время Donald Davies в Великобритании предложил такой же тип системы. Эти идеи попали в Lawrence Livermore Laboratory, что привело к созданию первой сети с коммутацией пакетов (названной Octopus), введенной в эксплуатацию в 1968 году. ARPANET, экспериментальная сеть с коммутацией пакетов, начала функционировать вскоре после этого, в 1970 году. Существенное различие между коммутацией каналов и коммутацией пакетов заключается в роли отдельных сетевых устройств в передаче трафика, как показано на рис.3. На рисунке 3, A создает два блока данных. Каждый из них включает в себя заголовок, описывающий, как минимум, пункт назначения (представлен H в каждом блоке данных). Этот полный пакет информации - исходный блок данных и заголовок - называется пакетом. Заголовок также может описывать, что находится внутри пакета, и может включать любые специальные инструкции по обработке, которые устройства пересылки должны принимать при обработке пакета - их иногда называют метаданными или «данными о данных в пакете». Есть два пакета, произведенных A: A1, предназначенный для E; и A2, предназначенный для F. B также отправляет два пакета: B1, предназначенный для F, и B2, предназначенный для E. Когда C получает эти пакеты, он считывает небольшую часть заголовка пакета, часто называемого полем, чтобы определить место назначения. Затем C обращается к локальной таблице, чтобы определить, по какому исходящему интерфейсу должен быть передан пакет. D делает то же самое, перенаправляя пакет из правильного интерфейса к месту назначения. Этот способ пересылки трафика называется переадресацией по частям, поскольку каждое устройство в сети принимает совершенно независимое решение о том, куда пересылать каждый отдельный пакет. Локальная таблица, к которой обращается каждое устройство, называется таблицей пересылки; обычно это не одна таблица, а множество таблиц, потенциально включающих в себя базу информации маршрутизации (RIB) и базу информации пересылки (FIB). В оригинальных системах с коммутацией каналов плоскость управления полностью отделена от пересылки пакетов по сети. С переходом от коммутации каналов к коммутации пакетов произошел соответствующий переход от решений централизованного контроллера к распределенному протоколу, работающему в самой сети. В последнем случае каждый узел способен принимать свои собственные решения о пересылке локально. Каждое устройство в сети запускает распределенный протокол, чтобы получить информацию, необходимую для построения этих локальных таблиц. Эта модель называется распределенной плоскостью управления; таким образом, идея плоскости управления была просто перенесена из одной модели в другую, хотя на самом деле они не означают одно и то же. Сети с коммутацией пакетов могут использовать централизованную плоскость управления, а сети с коммутацией каналов могут использовать распределенные плоскости управления. В то время, когда сети с коммутацией пакетов были впервые спроектированы и развернуты, однако они обычно использовали распределенные плоскости управления. Software-Defined Networks (SDN) вернули концепцию централизованных плоскостей управления в мир сетей с коммутацией пакетов. Первым преимуществом сети с коммутацией пакетов над сетью с коммутацией каналов является парадигма пересылки hop-by-hop. Поскольку каждое устройство может принимать полностью независимое решение о пересылке, пакеты могут динамически пересылаться в зависимости от изменений в топологии сети, что устраняет необходимость связываться с контроллером и ждать решения. Пока существует как минимум два пути между источником и пунктом назначения (сеть имеет два подключения), пакеты, переданные в сеть источником, в конечном итоге будут переданы в пункт назначения. Вторым преимуществом сети с коммутацией пакетов по сравнению с сетью с коммутацией каналов является то, как сеть с коммутацией пакетов использует пропускную способность. В сети с коммутацией каналов, если конкретная схема (действительно временной интервал в приведенном примере TDM) не используется, то слот просто тратится впустую. При переадресации hop-by-hop каждое устройство может наилучшим образом использовать пропускную способность, доступную на каждом исходящем канале, чтобы нести необходимую нагрузку трафика. Хотя это локально сложнее, это проще глобально, и это позволяет лучше использовать сетевые ресурсы. Основным недостатком сетей с коммутацией пакетов является дополнительная сложность, особенно в процессе пересылки. Каждое устройство должно быть в состоянии прочитать заголовок пакета, найти пункт назначения в таблице, а затем переслать информацию на основе результатов поиска в таблице. В раннем аппаратном обеспечении это были сложные, трудоемкие задачи; коммутация каналов была обычно быстрее, чем коммутация пакетов. Поскольку со временем аппаратное обеспечение усовершенствовалось, то скорость переключения пакета переменной длины, как правило, достаточно близка к скорости переключения пакета фиксированной длины, так что между пакетной коммутацией и коммутацией каналов небольшая разница. Управление потоками в сетях с коммутацией пакетов В сети с коммутацией каналов контроллер выделяет определенную полосу пропускания для каждого канала, назначая временные интервалы от источника до назначения. Что происходит, если передатчик хочет отправить больше трафика, чем выделенные временные интервалы будут поддерживать? Ответ — прост-это невозможно. В некотором смысле, таким образом, возможность управлять потоком пакетов через сеть встроена в сеть с коммутацией каналов; и нет способа отправить больше трафика, чем может передать сеть, потому что «пространство», которое имеет передатчик в своем распоряжении для отправки информации, предварительно выделяется. А как насчет сетей с коммутацией пакетов? Если все звенья сети, показанные на рис. 3, имеют одинаковую скорость соединения, что произойдет, если и А, и В захотят использовать всю пропускную способность соединения в направлении С? Как C решит, как отправить все это в D по каналу связи, который пропускает вдвое меньше трафика, необходимого для обработки? Здесь можно использовать методы управления транспортными потоками. Как правило, они реализованы в виде отдельного набора протоколов / правил, «движущихся поверх» базовой сети, помогая «организовать» передачу пакетов путем создания виртуального канала между двумя взаимодействующими устройствами. Протокол управления передачей (TCP) обеспечивает управление потоком для сетей с коммутацией пакетов на основе Интернет-протокола (IP). Этот протокол был впервые указан в 1973 году Vint Cerf и Bob Kahn. онтроллер выделяет определенную полосу пропускания для каждого канала, назначая временные интервалы от источника до назначения. Что происходит, если передатчик хочет отправить больше трафика, чем выделенные временные интервалы будут поддерживать? Ответ — прост-это невозможно. В некотором смысле, таким образом, возможность управлять потоком пакетов через сеть встроена в сеть с коммутацией каналов; и нет способа отправить больше трафика, чем может передать сеть, потому что «пространство», которое имеет передатчик в своем распоряжении для отправки информации, предварительно выделяется. А как насчет сетей с коммутацией пакетов? Если все звенья сети, показанные на рис. 3, имеют одинаковую скорость соединения, что произойдет, если и А, и В захотят использовать всю пропускную способность соединения в направлении С? Как C решит, как отправить все это в D по каналу связи, который пропускает вдвое меньше трафика, необходимого для обработки? Здесь можно использовать методы управления транспортными потоками. Как правило, они реализованы в виде отдельного набора протоколов / правил, «движущихся поверх» базовой сети, помогая «организовать» передачу пакетов путем создания виртуального канала между двумя взаимодействующими устройствами. Протокол управления передачей (TCP) обеспечивает управление потоком для сетей с коммутацией пакетов на основе Интернет-протокола (IP). Этот протокол был впервые указан в 1973 году Vint Cerf и Bob Kahn.
img
Привет! Сегодня в статье мы рассмотрим базовую настройку IP-АТС компании Cisco – CME – Call Manager Express, или как теперь он называемся Cisco Unified Communications Manager Express – CUCME. Также мы покажем как зарегистрировать телефоны, работающие по протоколам SCCP и SIP. Чтобы понять, что необходимо настроить, рассмотрим, что происходит во время загрузки телефона. Процесс загрузки IP-телефона Cisco можно разделить на несколько этапов: Телефон получает питание по Ethernet кабелю используя PoE (Power over Ethernet 802.3af), либо через блок питания; Коммутатор присылает информацию о голосовом VLAN’e, используя протокол CDP (Cisco Discovery Protocol); Телефон высылает DHCP запрос в голосовой VLAN, а в ответ DHCP сервер присылает информацию о IP адресации, включая DHCP Option 150, где указан адрес TFTP сервера; Телефон связывается с TFTP сервером и скачивает конфигурационный файл и прошивку. В конфигурационном файле находятся данные об адресе и номере порта CME, а также название прошивки, которую он должен использовать. При первом подключении он отсутствует, и телефон скачивает файл по умолчанию XMLDefault.cnf.xml; На основании IP адреса, указанного в конфигурационном файле телефон связывается с сервером обработки вызовов (в нашем случае это CME); Теперь можем приступать к настройке оборудования. Настройка voice VLAN Чтобы разделить голосовой трафик и трафик с данными необходимо настроить голосовой VLAN на каждом порту коммутатора, который соединяется с IP телефонами. switch#conf t – переход в режим конфигурации switch(config)#interface fa0/1 – переход в режим конфигурации интерфейса switch(config-if)#switchport mode access – настройка порта в качестве access switch(config-if)#switchport voice vlan 100 – создание голосового VLAN с id 100 switch(config-if)#switchport access vlan 200 – создание VLAN данных с id 200 switch(config-if)#spanning-tree portfast – включение протокола STP Настройка DHCP Теперь необходимо настроить роутер Cisco как DHCP сервер для голосового VLAN. Команда Option 150 используется для указания адреса TFTP сервера, где хранятся конфигурационные файлы и прошивки. router#ip dhcp pool VOICE – создание DHCP пула router(dhcp-config)#network 192.168.1.0 255.255.255.0 – выделение подсети router(dhcp-config)#default-router 192.168.1.1 – default gateway router(dhcp-config)#option 150 192.168.1.1 – адрес TFTP сервера router(dhcp-config)#dns-server 4.2.2.2 – адрес DNS сервера Настройка NTP Перейдем к настойке времени c использованием протокола NTP, при помощи которого мы сможем выставить корректные дату и время на всех телефонах. router#conf t router(config)#ntp server 64.209.210.20 – указываем адрес NTP сервера router(config)#clock timezone MSK 3 – указываем временную зону Настройка TFTP Хотя маршрутизаторы Cisco можно использовать в качестве TFTP сервера, стоит заметить что для больших телефонных сетей лучше иметь отдельный TFTP сервер, поскольку файлы прошивки и конфигурации могут быстро заполнить всю доступную flash-память. При использовании маршрутизатора в роли TFTP сервера необходимо вручную указать все файлы для скачивания, которые мы поместили во flash-памяти. В нашем примере файлы находятся в папке phone/7940-7960/ router#conf t router(config)#tftp-server flash:/phone/7940-7960/P00308000500.bin alias P00308000500.bin router(config)#tftp-server flash:/phone/7940-7960/P00308000500.loads alias P00308000500.loads router(config)#tftp-server flash:/phone/7940-7960/P00308000500.sb2 alias P00308000500.sb2 router(config)#tftp-server flash:/phone/7940-7960/P00308000500.sbn alias P00308000500.sbn Здесь в команде tftp-server после alias указываем название файла прошивки, который будет запрашивать телефон, поскольку телефон не знает полный путь до файла, а запрашивает его только по названию. Базовые настройки CME и регистрация телефонов Теперь настроим необходимые параметры IP Source Address, Max-DN (Directory Number) и Max-Ephones для работы с протоколом SCCP. router(config)#telephony-service – режим настройки телефонии router(config-telepony)#ip source-address 192.168.1.1 – адрес, на который должны приходить запросы на регистрацию от телефонов router(config-telepony)#max-ephones 24 – максимальное количество поддерживаемых телефонов router(config-telepony)#max-dn 48 – максимальное количество поддерживаемых номеров Параметры max-ephones и max-dn напрямую влияют на объем памяти, которую резервирует маршрутизатор для поддержки службы CME. При установке значения намного выше, чем необходимо, система может резервировать чрезмерные ресурсы и влиять на другие сетевые службы. Кроме того, параметр max-ephones не должен превышать количество приобретенных лицензий на функции. После этого телефоны начнут процесс регистрации. Проверить статус регистрации можно командой show ephone summary Настройка Ephone и Ephone-DN Для начала попробуем разобраться, что это такое и в чем их отличие. Ephone можно представить в качестве физического телефона с MAC адресом, а Ephone-DN в качестве телефонного номера, который мы связываем с телефонным аппаратом. Создадим номер Ephone-DN с номером 101: router#conf t router(config)#ephone-dn 1 – создание номера router(config-ephone-dn)#number 101 – указываем номер router(config-ephone-dn)#description Alexey Dobronravov – описание в CME router(config-ephone-dn)#name Alexey Dobronravov – описание на телефоне Теперь создадим Ephone и свяжем его с реальным телефоном по MAC-адресу: router#conf t router(config)#ephone 1 – создание образа телефона router(config-ephone)#mac-address 0014.1c48.acb1 – указываем MAC-адрес router(config-ephone)#button 1:1 – привязываем номер к аппарату Мы привязываем номер к телефону на его физические кнопки, которые обычно находятся возле экрана. На них как раз можно привязывать линии, и телефон может одновременно несколько номеров. Синтаксис команды через которую идет привязка телефона выглядит как button [физическая кнопка] : [ephone-dn] . Таким образом, в примере мы привязали первой кнопке на телефоне созданный нами номер ephone-dn 1. Теперь можем подключать наш телефон к сети, он пройдет все шаги загрузки и зарегистрируется на нашем CME. Таким же образом настраиваем другие телефоны и номера, после чего мы сможем совершать звонки между телефонами. Проверить статус телефона можно командой show ephone. Регистрация SIP телефона Теперь настроим CME для работы с телефонами по протоколу SIP. Первым делом разрешим звонки между SIP телефонами: router#conf t router(config)#voice service voip router(config-voice)#allow-connections sip to sip Настраиваем период регистрации телефонов (число – это время в секундах, по умолчанию 3600): router#conf t router(config)#voice service voip router(config-voice)#registrar server expires max 3600 min 3600 Создаем класс кодеков, в котором указываем кодеки, которые будут использованы: router#conf t router(config)#voice class codec 1 router(config-voice)#codec preference 1 g711alaw - кодек первого приоритета router(config-voice)#codec preference 1 g711ulaw - кодек второго приоритета router(config-voice)#codec preference 1 g729br8 - кодек третьего приоритета Создаем DN: router#conf t router(config)#voice register dn 1 – создаем DN router(config-voice-register-dn)#number 201 – указываем номер Настраиваем телефон: router#conf t router(config)#voice register pool 1 router(config-voice-register-pool)#id mac 0014.1c48.acb2 – указываем MAC телефона router(config-voice-register-pool)#number 1 dn 1 – привязываем номер к первой линии router(config-voice-register-pool)#voice-class codec 1 – используем созданный нами набор кодеков router(config-voice-register-pool)#username admin password pass – создаем аутентификационные данные После этого подключаем SIP телефон к сети и заходим по его веб-интерфейс черз бразуер по IP-адресу, находим настройки первой линии, где указываем адрес сервера 192.168.1.1 и логин с паролем admin/password, которые мы создали. Теперь таким образом можно регистрировать SIP телефоны на CME.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59