По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
YAML (YAML – Ain’t Markup Language, что можно перевести как "YAML – это не язык разметки"") считается языком сериализации по типу XML и JSON. Он представляет собой расширенную версию JSON, которая используется, в основном, для файлов конфигурации. Вы можете сохранить YAML-файл с расширением .yaml или .yml. Это удобочитаемый файловый формат, состоящий из пар «ключ-значение» и делающий акцент на отступы и отбивку строк. YAML активно используется в файлах конфигурации многих хорошо известных инструментов/технологий, по типу docker-compose, Kubernetes, Ansible и т.д. Ниже приведено сравнение YAML с XML и JSON. Теперь давайте обсудим синтаксис, типы данных и особенности YAML-файлов. Пары «ключ-значение» Пара «ключ-значение» – это базовая составляющая YAML. Каждый элемент в YAML-документе является членом как минимум одного словаря. Ключами чаще всего являются строки, а значением могут быть данные любого типа: число, логическое значение, строка, пустое значение, массив и объект. name: John age: 25 city: LA Числа Числа – это одни из скаляров, которые могут использоваться в качестве значения YAML-файлов. Числа бывают десятичными, с плавающей запятой, экспоненциальными, восьмеричными и шестнадцатеричными. Если добавлять их без одинарных или двойных кавычек, то они обрабатываются как строки. decimal : 10 float : 2.5 exponential : 5.0e+12 infinity : .inf octal : 0o12 hexadecimal : 0xF Примечание: Будьте осторожны при представлении некоторых стандартных типов чисел (время, восьмеричные и шестнадцатеричные коды и т.д.). Они могут быть некорректно интерпретированы. Вот несколько примеров. time : 6:00 hexval: 0x12 octval: 0o25 В этом примере время преобразуется в минуты, поэтому 6:00 интерпретируется как 360. 0x12 обрабатывается как шестнадцатеричный код, поэтому оно переводится в десятеричное значение 18, а 0o25 интерпретируется в десятеричное значение 21. Так что если вы не собираетесь использовать их в таком виде, то добавляйте эти значения в кавычках. Примечание: Начиная со спецификации YAML 1.2, 0o представляет восьмеричные значения. В более ранних версиях для этих целей использовался 0. Логические значения Логические значения похожи на другие языки программирования/представления с двумя состояниями: true или false. Логическими значениями в YAML-файлах считаются не только стандартные true/false, но также yes/no и on/off (исключение: если они добавлены в кавычках). Примечание: Следите за тем, как вы используете значения yes/no и on/off. Если добавлять их не в одинарных кавычках, то они будут интерпретироваться как логические значения true/false. Комментарии Вы можете комментировать содержимое YAML-файла с помощью символа #. Пример ниже: # This a comment on the first. # And this a commented second line. Строки В YAML-файле вы можете прописывать строки без кавычек. Либо добавлять их в одинарные или двойные кавычки. Можно даже пользоваться всеми тремя способами. Если в строке содержатся специальные символы, которые нужно экранировать с помощью , то добавлять такую строку нужно в двойных кавычках. Пример: signature: "John Williams Sales Executive XYZ Company LA." Но при использовании любого из специальных символов ниже: :, {, }, [, ], ,, &, *, #, ?, |, -, , =, !, %, @, ` не нужно ничего экранировать. Воспользуйтесь одинарными кавычками – с ними строка будет интерпретироваться как нужно. Одиночная строка Если вы хотите разбить одну строку на несколько строчек, но синтаксический анализатор должен будет интерпретировать их как одиночную строку, то сделайте следующее: message: > this is a normal string which spans more than multiple lines but needs to be treated as a single line. Начните код с символа > , а затем впишите содержимое строки в виде блока с отступами. В конце проанализированного содержимого добавляется . Если вам не нужен символ новой строки, то воспользуйтесь символом >-. Многострочное значение При добавлении строки, которая разделяется на несколько строк и анализируется так же, как написана, воспользуйтесь схемой ниже. message: | this is a multi-line string which spans across multiple lines and needs to be treated as a multi-line string. | добавляет в конце проанализированного содержимого символ перехода на новую строку. Если вы не хотите видеть в конце проанализированного содержимого символ , то лучше воспользуйтесь |-. Нулевые значения Вы можете представить нулевое значение с помощью ~ или null. Такие значения добавляются без кавычек. foo: ~ bar: null Массивы В YAML значения можно представить в форме массивов/списков. Пример массива данных: teams: - name: Australia rank: 3 - name: New Zealand rank: 4 - name: England rank: 1 - name: India rank: 2 В примере выше представлен массив объектов с названием и рангом команды. Обязательно проверьте, что отбивка строк и отступы заданы единообразно. В противном случае, файл будет некорректным. Каждый элемент массива обозначается через дефис -. Все элементы должны находиться на одном уровне с одинаковыми отступами. Если вместо объектов в массиве используются примитивные элементы, то их можно представить следующим образом: teams: [ Australia, New Zealand, England, India ] Объекты Объекты в YAML представляются так: student: name: John age: 22 city: NY college: NYU gpa: 3.5 Все атрибуты внутри объекта должны находиться на одном уровне и с одинаковым отступом. Именно это условие указывает на принадлежность к одному объекту и гарантирует корректность YAML-документа. Заключение В данной статье вы познакомились с базовыми концепциями при работе с YAML-файлами. Разобравшись в них, вы поймете, как правильно прописывать файлы для своих собственных инструментов и технологий.
img
Ищете возможность анализировать сетевой трафик/отправлять его на систему записи телефонных разговоров? Изи. Коммутаторы Cisco (да и многие другие) дают возможность копировать пакеты с определенного порта или VLAN и отправлять эти данные на другой порт для последующего анализа (Wireshark, например). Кстати, этот функционал полезен при использовании IDS (Intrusion Detection System) систем в целях безопасности. Мы уже рассказывали теоретические основы SPAN/RSPAN, поэтому, сегодняшняя статья будет посвящена практике настройке. Про настройку SPAN В рамках обычной SPAN сессии захват (копирование) сетевого трафика происходит с порта источника (source port) и отправляется на порт назначения (destination port). Обратите внимание на пример ниже: мы сделаем SPAN – сессию с порта fa 0/1 и отправим данные на порт fa 0/5: Важно! SPAN – сессия может работать только в рамках одного коммутатора (одного устройства). Конфигурация: switch# configure terminal switch(config)# monitor session 1 source interface fa0/1 switch(config)# monitor session 1 destination interface fa0/5 Просто, не правда ли? В рамках данной конфигурации весь трафик с порта fa 0/1 будет скопирован на порт fa 0/5. Интереснее: пример RSPAN Идем вперед. Более продвинутая реализация зеркалирования трафика это RSPAN (Remote SPAN). Эта фича позволяет вам зеркалировать трафик между различными устройствами (коммутаторами) по L2 через транковые порты. Копия трафика будет отправляться в удаленный VLAN между коммутаторами, пока не будет принята на коммутаторе назначения. На самом деле, это легко. Давайте разберемся на примере: как показано на рисунке, мы хотим копировать трафик с коммутатора №1 (порт fa 0/1) и отправлять трафик на коммутатор №2 (порт fa 0/5). В примере показано прямое транковое подключение между коммутаторами по L2. Если в вашей сети имеется множество коммутаторов между устройствами источника и назначения – не проблема. Конфигурация: //Настройки на коммутаторе источнике switch_source# config term switch_source(config)# vlan 100 //Создаем Remote VLAN на первом коммутаторе (в который будем передавать данные с source порта) switch_source(config-vlan)# remote span switch_source(config-vlan)# exit switch_source(config)# monitor session 10 source interface fa0/1 switch_source(config)# monitor session 10 destination remote vlan 100 //Настройки на коммутаторе получателе switch_remote# config term switch_remote(config)# vlan 100 //Создаем Remote VLAN на втором (удаленном) коммутаторе (в который будем передавать данные с source влана уже на порт назначения) switch_remote(config-vlan)# remote span switch_remote(config-vlan)# exit switch_remote(config)# monitor session 11 source remote vlan 100 switch_remote(config)# monitor session 11 destination interface fa0/5 Таким образом, весь трафик с интерфейса fa 0/1 на локальном коммутаторе (источнике) будет отправлен в vlan 100, и, когда коммутатор получатель (remote) получит данные на 100 VLAN он отправит их на порт назначения fa 0/5. Такие дела. Party Hard: разбираемся с ERSPAN ERSPAN (Encapsulated Remote Switched Port Analyzer) - фича, которая используется для копирование трафика в L3 сетях. В основе работы механизма лежит GRE инкапсуляция. Как показано ниже, между коммутатором источником и коммутатором получателем устанавливается GRE – туннель (между IP – адресами машин). Опять же, мы хотим отправить трафик с порт fa 0/1 на порт fa 0/5. Конфигурация: //Настройки на коммутаторе источнике switch_source(config)# monitor session 1 type erspan-source switch_source(config-mon-erspan-src)# source interface fa0/1 switch_source(config-mon-erspan-src)# destination switch_source(config-mon-erspan-src-dst)# erspan-id 111 //Это значение должно быть одинаковым на всех устройствах switch_source(config-mon-erspan-src-dst)# ip address 192.168.1.5 //IP - адрес коммутатора получателя switch_source(config-mon-erspan-src-dst)# origin ip address 192.168.2.5 //IP - адрес коммутатора отправителя (источника) //Настройки на коммутаторе получателе switch_remote(config)# monitor session 1 type erspan-destination switch_remote(config-mon-erspan-dst)# destination interface fa0/5 switch_remote(config-mon-erspan-dst)# source switch_remote(config-mon-erspan-dst-src)# erspan-id 111 switch_remote(config-mon-erspan-dst-src)# ip address 192.168.1.5 //IP - адрес коммутатора получателя (назначения) Траблшутинг Мониторинг трафика в указанном VLAN: monitor session 1 source vlan 13 Мониторинг входящего или только исходящего трафика: monitor session 1 source vlan 13 rx/tx Посмотреть конфигурацию сессии зеркалирования: show monitor session 1
img
Временные списки доступа ACL (Time Based Access-List) – это такие ACL, которые позволяют ограничивать или разрешать доступ до ресурсов в зависимости от времени. Например, запретить выход в интернет для компьютеров в нерабочее время. Настройка на оборудовании Cisco Про настройку стандартных ACL можно прочесть тут; Про настройку расширенных ACL можно прочесть здесь; Для реализации списков доступа, основанных на времени, существует несколько простых шагов: Определить временной диапазон когда должен действовать ACL Определить что должен ограничивать и разрешать ACL и применить к нему временной диапазон Применить ACL к нужному интерфейсу Сначала на маршрутизаторе создадим временной диапазон, используя команду time-range [имя_диапазона] . Затем определяем, будет он периодическим (задаем периоды работы) или абсолютным (задаем начало и конец). Если он будет периодическим, то мы используем команду periodic [день_недели][час:минуты]to[день_недели][час:минуты] (также можно использовать аргументы weekend - Суббота и Воскресенье, weekdays - с Понедельника по Пятницу, и daily - Каждый день), а если абсолютным, то используем команду absolute [дата_начала] [дата_конца] . Пример создания периодического временного диапазона: Router#conf t Router(config)#time-range weekends Router(config)#periodic weekend 08:00 to 22:00 Либо можно указать отдельные дни: Router#conf t Router(config)#time-range mwf Router(config)#periodic Monday Wendsday Friday 08:00 to 16:00 Пример создания абсолютного временного диапазона: Router#conf t Router(config)#time-range cisco Router(config)#absolute start 00:00 1 May 2018 end 00:00 1 April 2019 Далее создаем ACL и указываем в нем созданный диапазон при помощи аргумента time-range [название] Router(config)#ip access-list extended deny-weekends Router(config)#deny tcp any any eq 80 time-range weekens И после этого применим этот лист на интерфейсах: Router(config)#interface fa0/1 Router(config)#ip access-group deny-weekends out После этого лист контроля доступа будет применяться в зависимости от времени, выставленном на маршрутизаторе, поэтому очень важно, чтобы оно было выставлено верно. Посмотреть созданные временные диапазоны можно при помощи команды show time-range.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59