По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Умение настраивать VLAN (Virtual Local Area Network) или виртуальные локальные сети - одно из самых базовых умений, которым должен обладать системный администратор. Сегментирование сети с помощью VLAN-ов строго необходимо для PCI, HIPAA и прочих стандартов безопасности, и, кроме того, это помогает сохранять “чистоту” и порядок в больших сетях. Настройка VLAN-ов на маршрутизаторах MikroTik не является сложной задачей, подробнее о шагах настройки вы можете прочесть ниже. Дизайн VLAN в организации Первым шагом в сегментировании сети должен быть не настройка маршрутизатора, а понимание будущей схемы в целом - предпочтительно нарисовать схему на листе бумаги, использовать ПО наподобие Microsoft Visio и т.д. К тому же, если ваша сеть должна соответствовать стандартам безопасности, которые были перечислены выше, то практически не нужно ничего придумывать - в описании стандартов есть подробные инструкции что и как должно быть сегментировано. Однако, чаще всего, сегментирование происходит для общей оптимизации сети - и тут необходимо будет что-то придумать самому. На наш взгляд, проще всего отразить структуру организации в схеме VLAN-ов. Каждый департамент должен находится в собственном VLAN-е, т.к каждый департамент обладает своими собственными уникальными функциями, и, скорее всего, различными правами доступа. Также в отдельные VLAN-ы необходимо поместить сервера и дисковые хранилища. Для серверов и хранилищ рекомендуется использовать отдельные коммутаторы, но, для маленьких компаний это часто невозможно из-за лимитированного бюджета. К тому же, с помощью таких инструментов как Torch или NetFlow можно будет контролировать и мониторить трафик каждого департамента. Гостевая сеть также должна быть помещена в отдельный VLAN, который будет полностью изолирован от внутренней сети. Беспроводные сети также должны находится в своем VLAN, таким образом весь трафик мессенджеров, обновлений мобильных приложений и т.д будет полностью отделен от основной сети. Транковые протоколы VLAN В нашем сценарии у нас есть только один роутер, и создадим VLAN-ы для HR (192.168.105.0/24), бухгалтерии (192.168.155.0/24) и гостевую сеть (192.168.1.175.0/24). Если у вас получится создать три VLAN-а, то, очевидно, получится создать и сто - в нашем примере мы описываем создание только трех VLAN-ов для простоты и прозрачности примера. IP-адреса для каждого VLAN-а также были выбраны случайным образом - для вашей организации, скорее всего, адресация будет иной. В нашем случае, маршрутизатор подключен к коммутатору по интерфейсу ether2, с 802.1q транком между ними - эта схема также известна под именем “роутер на палке” (router on a stick). Мы не будем углубляться в детали касаемо свитча - это может быть Cisco, HP и т.д - потому что 802.1q транки одинаковы практически на всех платформах - если у вас какой-нибудь необычный свитч, то вам стоит просто обратиться к документации и прочесть, как выполняется конфигурация транкового порта. Наш маршрутизатор также обладает подключением к WAN на порту ether1 - все пользователи в VLAN-ах будут использовать его для доступа к интернету. Создание VLAN-ов на MikroTik Сперва необходимо создать VLAN-ы на маршрутизаторе и назначить их на интерфейс ether2. После этого, интерфейс ether2 будет автоматически настроен как 802.1q транк и не будет доступен для трафика без тэгов, что означает, что до конца настройки этот линк будет “лежать” - поэтому строго рекомендуется выполнять эти действия во в нерабочее время. /interface vlan add comment="HR" interface=ether2 name="VLAN 105 - HR" vlan-id=105 add comment="Accounting" interface=ether2 name="VLAN 155 - Accounting" vlan-id=155 add comment="Guests" interface=ether2 name="VLAN 180 - Guests" vlan-id=180 Крайне рекомендуется всегда давать понятные имена интерфейсам и писать комментарии - в дальнейшем это может сильно облегчить администрирование сети и обучение новых системных администраторов. Как мы упомянули выше, создание VLAN-ов и назначение их на физический порт ether2 автоматически изменит тип инкапсуляции на 802.1q, но вы нигде этого не увидите - даже если выведете всю информацию об интерфейсе. Назначаем IP-адреса Далее, необходимо назначить сетевые адреса, чтобы VLAN интерфейсы могли работать как шлюзы: /ip address add address=192.168.105.1/24 comment="HR Gateway" interface="VLAN 105 - HR" add address=192.168.155.1/24 comment="Accounting Gateway" interface="VLAN 155 - Accounting" add address=192.168.180.1/24 comment="Guests Gateway" interface="VLAN 180 - Guests" На всякий случай, еще раз обращу ваше внимание на то, как важно комментировать интерфейсы для удобства в дальнейшем. На данном моменте у нас уже настроены VLAN-ы и у них назначены сетевые адреса. Если у вас не используется DHCP, а используется статическая адресация - на этом настройка VLAN в общем-то закончена. Следующим шагом (этот шаг, соответственно, опционален) является настройка DHCP на VLAN интерфейсах, для того чтобы клиенты внутри каждого VLAN могли автоматически получить динамический IP-адрес. DHCP для VLAN Для начала, необходимо установить адресные пулы для каждого из VLAN-ов: /ip pool add name=HR ranges=192.168.105.2-192.168.105.254 add name=Accounting ranges=192.168.155.2-192.168.155.254 add name=Guests ranges=192.168.180.2-192.168.180.254 Далее, настраиваем DHCP с опциями для DNS и шлюзов: /ip dhcp-server network add address=192.168.105.0/24 comment="HR Network" dns-server=8.8.8.8,8.8.4.4 gateway=192.168.105.1 add address=192.168.155.0/24 comment="Accounting Network" dns-server=8.8.8.8,8.8.4.4 gateway=192.168.155.1 add address=192.168.180.0/24 comment="Guest Network" dns-server=8.8.8.8,8.8.4.4 gateway=192.168.180.1 В данном случае мы используем DNS сервис от Google. Далее, добавляем ранее настроенные пулы на VLAN интерфейсы: /ip dhcp-server add address-pool=HR disabled=no interface="VLAN 105 - HR" name=HR add address-pool=Accounting disabled=no interface="VLAN 155 - Accounting" name=Accounting add address-pool=Guests disabled=no interface="VLAN 180 - Guests" name=Guests Адресные пулы соответствуют настроенным сетям, и именно такие DHCP опции как шлюз и DNS присваиваются конкретной DHCP инстанции. Смысл присвоения DHCP для каждого VLAN в том, чтобы у вас была возможность контролировать сроки выдачи адреса (lease times), опции и т.д для каждого сегмента сети, что дает большой простор для оптимизации и контроля DHCP в вашей организации. Настройка VLAN на коммутаторе На данном этапе настройки вам необходимо будет назначить порты доступа на ваших свитчах на конкретные VLAN-ы, и клиенты, которые будут подключены к этим портам будут находится в их VLAN и получать соответствующие IP-адреса по DHCP. Теперь уже вам решать, какие VLAN будут полностью изолированы друг от друга, а какие смогут “общаться” - осталось только настроить соответствующие правила на фаерволле. Как правило, мы разрешаем доступ только абсолютно необходимого трафика в VLAN - если разрешить весь трафик, тогда теряется смысл сегментирования.
img
Helm — это инструмент развертывания Kubernetes для автоматизации создания, упаковки, настройки и развертывания приложений и служб в кластерах Kubernetes. Kubernetes — это мощная система управления контейнеризацией для развертывания приложений. Для этого существует несколько независимых ресурсов, и для каждого требуется отдельный YAML-файл манифеста. В этой статье расскажем, что такое Helm и Helm Charts, а также как автоматизировать развертывание приложений в Kubernetes. Что такое Helm? Если бы Kubernetes был операционной системой, то Helm был бы менеджером пакетов. Ubuntu использует apt, CentOS использует yum, а Kubernetes использует helm. Helm развертывает пакетные приложения в Kubernetes и структурирует их в чарты (Helm Charts). Чарты содержат все предустановленные ресурсы приложения вместе со всеми версиями, которые помещены в один легко управляемый пакет. Helm упрощает установку, обновление, вызов зависимостей и настройку развертываний в Kubernetes с помощью простых CLI-команд. Пакеты программного обеспечения находятся в репозиториях или создаются. Почему нам нужен Helm? Объектами Kubernetes сложно управлять. Благодаря полезным инструментам освоение Kubernetes становится плавным и удобным. Helm автоматизирует обслуживание YAML-файлов для объектов Kubernetes, упаковывая информацию в чарты и анонсируя их в кластере Kubernetes. Helm отслеживает историю версий для каждой установки и изменения чарта. Откат к предыдущей версии или обновление до более новой выполняется понятными командами. Доступные команды: Completion — создает сценарий автозаполнения для указанной оболочки. Create — создает новый чарт с заданным именем. Dependency — управление зависимостями чарта. Env — информация о клиентской среде Helm. Get — загрузка расширенной информации об именованном релизе. Help — помощь по любой команде. History — получить историю релизов. Install — установить чарт. Lint — проверить чарт на возможные проблемы. List — список релизов. Package — упаковать каталог чарта в архив чарта. Plugin — установить, внести в список или удалить плагины Helm. Pull — загрузить чарт из репозитория или (опционально) распаковать его в локальный каталог. Repo — установка, внесение в список, удаление, обновление и индексация репозиториев чартов. Rollback — откат релиза к предыдущей версии. Search — поиск в чарте по ключевым словам. Show — показать информацию о чарте. Status — отображение статуса названного релиза. Template — локальное отображение шаблонов. Test — запустить тесты релиза. Uninstall — деинсталлировать релиз. Upgrade — обновить релиз. Verify — проверить, что чарт по указанному пути подписан и действителен. Version — распечатать информацию о версии клиента. Что вы можете сделать с помощью Helm? Helm позволяет разработчикам программного обеспечения развертывать и тестировать среду самым простым способом. Требуется меньше времени, чтобы перейти от разработки к тестированию и продакшену. Помимо повышения производительности, Helm предоставляет разработчикам удобный способ упаковки и отправки приложений конечным пользователям для установки. Как работает Helm? Helm и Kubernetes работают как клиент-серверное приложение. Клиент Helm отправляет ресурсы в кластер Kubernetes. Серверная часть зависит от версии: Helm 2 использует Tiller, тогда как Helm 3 избавился от Tiller и полностью полагается на Kubernetes API. Что такое Helm Charts? Чарты Helm (Helm Charts) — это пакеты Helm, состоящие из файлов и шаблонов YAML, которые преобразуются в файлы манифеста Kubernetes. Чарты могут повторно использоваться кем угодно и в любой среде, что уменьшает сложность и количество дубликатов. Папки имеют следующую структуру: Как работают чарты Helm? Три основные концепции чартов Helm: Чарт — предварительно настроенный шаблон ресурсов Kubernetes. Релиз — чарт, развернутый с помощью Helm в кластере Kubernetes. Репозиторий — общедоступные чарты. Рабочий процесс заключается в поиске чартов через репозитории и создании релизов путем установки чартов в кластеры Kubernetes. Структура чарта Helm Файлы и каталоги чарта Helm имеют определенную функцию: Название Тип Функция charts/ Каталог Каталог для управляемых вручную зависимостей чарта. templates/ Каталог Написанные на языке Go файлы шаблонов, объединенные с конфигурационными значениями из файла values.yaml и предназначенные для генерации манифестов Kubernetes. Chart.yaml Файл Метаданные о чартах, такие как: версия, имя, ключевые слова для поиска и так далее. LICENSE (опционально) Файл Лицензия на чарт в текстовом формате. README.md (опционально) Файл Удобочитаемая информация для пользователей чарта. requirements.yaml (опционально) Файл Список зависимостей чарта. values.yaml Файл Настройки чарта по умолчанию. Создавайте чарты Helm вручную или собирайте общедоступные чарты из репозиториев. Репозитории чартов Helm Репозитории содержат чарты, которые могут быть установлены или предоставлены для доступа другим пользователям. Helm обеспечивает поиск напрямую из клиента. Существует два основных типа поиска: helm search hub — поиск через Artifact Hub из множества репозиториев. helm search repo — поиск через репозитории, добавленные в локальном клиенте Helm с помощью helm repo add. Без каких-либо фильтров в результатах поиска отображаются все доступные чарты. Чтобы уточнить запрос, добавьте условие поиска. Например: helm search hub wordpress Когда найдете подходящий чарт, установите его с помощью helm install. Релизы чартов При установке чарта создается новый пакет. Команда helm install принимает два аргумента: helm install <release name> <chart name> Запуск helm install выводит полезную информацию и указывает, следует ли вам предпринять какие-либо действия для установки. Чарты кастомизируемы и легко настраиваются перед установкой. Релизы Helm легко поддерживать и откатывать в случае любых нежелательных изменений.
img
Итак, у нас загрузилось ядро операционной системы. Далее отрабатывают системы инициализации операционной системы. Три варианта: SysV, systemd, Upstart. Init в стиле SysV Init в стиле SysV данная процедура инициализации, самая старая она более классический Unix вариант инициализации операционной системы. Для того, чтобы понять, как происходит инициализация необходимо понять, что такое режимы загрузки (они же runlevel), разобраться как между ними переключатся, рассмотреть работу со службами. Обычно есть 7 уровней выполнения по умолчанию: Выключение Однопользовательский режим (чаще всего используется для отладки и настройки операционной системы) DebianUbuntu по умолчанию RedHatSuse по умолчанию текстовый режим. WildCard (программируемый режим, можно сюда поставить любой) RedHatSuse GUI (Graphical User Interface) Перезагрузка. Но существуют операционные системы, где 10 уровней по умолчанию. Конечно речь идет о самых распространенных ядрах и сборках *nix образных операционных системах. Для дальнейших пояснений, как работает инициализация в стиле sysV нам необходим операционная система CentOS 5.4 или ниже, потому что в более новых операционных системах данный процесс давно уже заменен. Отроем файл настроек текстовым редактором vi или любым другим удобным для вас. Мы можем увидеть содержание файла. Те самые уровни о которых шла речь выше. Плюс прописан уровень используемые при загрузке по умолчанию. Строчка id:3:initdefault: Мы данный параметр можем отредактировать и например сказать, чтобы операционная система загружалась по умолчанию в Single Mode например. Если мы посмотрим далее файл, мы можем увидеть настройку, которая описывает действия нажатия клавиш Ctrl+alt-delete. А также наглядно прописано, что запуск определенного уровня - это запуск определённого скрипта. Все скрипты запускаются из папки /etc/rc.d/ Все дальнейшие варианты инициализации растут, вот из этого варианта. И этой процедуры инициализации. Перейдем в директорию, где лежат все скрипты инициализации и выполняются данные скрипты при старте системы. В данной папке куча скриптов, которые запускают определенные службы, например, ssh запускает демона ssh для подключения клиентом по 22 порту. Т.е здесь куча служб и запускаются они этими скриптами. Если мы например хотим остановить какую нибудь службу то набираем ./rsync stop , ну и соответственно ./rsync start для запуска данной службы. Аналогично мы можем управлять через команду service, например: service rsync restart . Поднимемся на уровень выше cd .. Найдем все файлы, которые начинаются с rc. Для этого набираем: ls -l | grep rc. В результате мы увидим несколько скриптов. Посмотрим rc3.d . А для этого перейдем в эту директорию. В ней можно увидеть кучу скриптов. В вариации Ubuntu современной и затем в вариации CentOS 5.4 Те скрипты, которые начинаются с буквы K, эти скрипты при старте убивают сервис, те скрипты, которые имеют первой букву S запускают сервис. Ну и соответственно порядковый номер исполнения скрипта в очереди. Для каждого runlevel свой набор скриптов. Основные команды Init управление инициализацией с помощью нее можно перемещаться между runlevel. Telinit управление процессом init , в старых дистрибутива использовалась именно эта команда. Wall вывод сообщения пользователям системы Halt - выключение компьютера Reboot перезагрузка компьютера Shutdown - запланированное выключение Service service_name start|stop|reload|restart Для того, чтобы перемещаться по уровням загрузки, нам необходимо понять на каком уровне мы находимся сейчас. Набираем runlevel . Соответственно, если мы хотим переключится telinit 1 отрабатывают скипты мы попадаем в однопользовательский режим 1. Для того, чтобы послать сообщение все пользователям на данной машине необходимо набрать с соблюдением регистра wall "Abrakadabra". У всех пользователей появится данное сообщение на экране. Для выключения сейчас компьютера можно использовать shutdown h now. Init в стиле Systemd Init в стиле Systemd более современная система инициализации операционной системы Linux. Необходимым элементом работы системы systemd , являются Unit. Unit- это модуль которыми оперирует systemd: .service службы .mount точки монтирования .device устройства .socket сокеты Если при работе в консоли мы не указывает расширение юнита, то в принципе system может догадаться в каком случае, что используется. В операционной системе существуют 2 папки в которых хранятся Unit: /usr/lib/systemd директория с Units по умолчанию, в которой создаются units при установке какого либо программного обеспечения. /etc/systemd директория с управляемыми Units. Тут лежат те Unit которыми может управлять админ, добавлять , редактировать. Посмотрим, что находится в данных директориях переходим в /usr/lib/system Нам интересны 2 директории system и user. Содержимое папки system выглядит вот так. В данной директории лежат все необходимые Units для системы в директории user для пользователя. Картинка будет примерно аналогичная. Директория /etc/systemd. Тут точно также есть две папки system и user, а также конфигурационные фалы. Данные конфигурационные файлы и отвечают за настройку systemd. Это те файлы которые пришли на замену /etc/inittab, предыдущей версии инициализации операционной системы. Файлы юнитов в директориях system и user мы можем редактировать для каких-то своих целей и даже писать targets. Далее мы можем посмотреть запущенные Units. Для этого мы можем выполнить systemctl команду, она отвечает за все действия с systemd. Для примера команда systemctl list-units нам выведет все запущенные Units, сокеты ,устройства ,точки монтирования. Можно посмотреть юниты, которые не стартанули systemd failed. А также мы можем управлять юнитами systemctl status|start|stop|restart crond. Так же Systemd работает с Target (целями). Есть target которые работают так же как runlevel в классической процедуре инициализации, они не пронумерованы в отличии от runlevel у них есть конкретные имена. В табличке можно посмотреть какие target соотносятся с какими runlevel. Их этих target может быть несколько, потому что target бывают не только загрузочные. Данная система использования target обратно совместимая с системой инициализации. Для переключения мы можем использовать команду telinit. Сами по себе target есть некая группировка юнитов, последовательность вызова юнитов. Это может быть target последовательного вызова нескольких служб и ниже стоящий target. Текущий уровень мы можем посмотреть командой runlevel. По умолчанию это будет 3. Далее мы можем написать systemctl list-units --type=target И можно увидеть, что находимся на 3-м уровне также т.к target соответствует. Так же мы можем переключатся между runlevel командой telinit. Например, для перехода в однопользовательский режим telinit 1. А так же мы можем использовать через синтаксис systemctl isolate reboot.target. Для того чтобы поставить какой-то загрузочный target по умолчанию, необходимо отредактировать загрузчик, вставить параметры ядра, которые будут запускаться. Или сделать проще командой systemctl set-default f multi-user.target (использование например 3 runlevel по умолчанию). Одной из особенностей system является интересная система журналирования journald. Демон журналов. Эта система уникальна тем, что собирает информацию из разных источников событий и привязывает их к конкретным юнитам и сервисам. Благодаря этому мы можем всю диагностическую информацию просматривать в одном месте. Соответственно находить неисправности и их устранять. Работает следующим образом: Journalctl f - показывает события по мере их возникновения. Journalctl n 10 вывод последних 10 событий Инициализация Init в стиле Инициализация Init в стиле upstart это система инициализации, в том стиле которая задумывалась для Ubuntu, и заменила процедуру инициализации, которая пришла из Unix стандартную init процедуру. Процедура инициализации upstart контролирует инициализацию демонов и служб в течении загрузки системы и их остановку если у нас система выключается или нужно переключится в другой режим. Основное отличие от классической процедуры инициализации в том, что задачи и службы останавливаются по событиям и сами события могут генерироваться задачами и службами, могут приняты быть от любого процесса системы. Могут быть службы перезапущены в автоматическом режиме если они вдруг были завершены в аварийном режиме. Еще одно отличие в том, что у данного режима инициализации есть задачи (tasks). Основными понятиями являются службы и задачи. Основное отличие службы от задачи в том, что служба перезапускается если была аварийно завершена, а задача нет. Процесс инициализации системы по upstart берет конфигурацию из файлов каталога /etc/init каталог файлов-заданий (jobs). Каждый файл отвечает за запуск каждого задания или службы и должен заканчиваться с расширением .conf . Уровни инициализации остались те же самые. Определение и переключение между уровнями выполняются теми же командами, описанными выше. Изменился файл, в котором мы описываем runlevel запуска по умолчанию. И для управления upstart используется утилита initctl. Как мы видим в каталоге /etc/init находятся конфигурационные файлы Jobs. Каждый отвечает за запуск отдельной службы. Смотрим файл конфигурации простейшего файрвола операционной системы cat ufw.conf Как мы видим ufw стартует при условии, описанном start on, выключается на определенных runlevel. Файл конфигурации с runlevel по умолчанию находится в файле cat /etc/init/rc-sysinit.conf Управляются службы простыми командами status ufw start ufw stop ufw. В данной статье мы рассмотрели различные вариации инициализации. Думаю, информация будет очень полезной.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59