По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Привет, бро! В статье расскажем в чем разница между RIPv1 (Routing Information Protocol Version 1) и его продолжение RIPv2. Погнали? Про Routing Information Protocol Version 1 (RIPv1) Прямо и по пунктам: RIPv1 это Distance-Vector протокол. Если переводить на русский - дистанционно-векторный. ; Distance vector routing - так называемая дистанционно-векторная маршрутизация, главный принцип которой основан на вычислении специальных метрик, которые определяют расстояние (количество узлов) до сети назначения RIPv1 это classfull протокол. Это означает, что он не отправляет маску подсети в апдейтах маршрутизации; RIPv1 не поддерживает VLSM (Variable Length Subnet Masking); VLSM (Variable Length Subnet Masking) - метод эффективного использования IP – адресации, который избавляет от привязки к классу сети (класс A, класс B, класс C). VLSM позволяет дробить подсеть на подсеть и так далее. Тем самым, мы можем эффективно использовать адресное пространство согласно реальных потребностей, а не класса сети; RIPv1 поддерживает максимум 15 хопов! Это означает, что любой маршрутизатор, который расположен от вас в больше, чем 15 узлов (маршрутизаторов) будет отмечен как недоступный; Раз в 30 секунд RIPv1 отправляет широковещательные апдейты маршрутизации – каждый узел должен принять и обработать этот апдейт; Первая версия RIP не поддерживает авторизация апдейтов маршрутизации – это означает, что потенциально, роутер может обновить таблицу маршрутизации от любого источника; Вот такой он, RIP первой версии. Двигаем дальше и посмотрим, а на что способен его брат – RIP второй версии? Про Routing Information Protocol Version 2 (RIPv2) RIPv2 это гибридный протокол. Он реализован на базе Distance-Vector, но так же поддерживает часть алгоритмов Link State маршрутизации, то есть, может отслеживать состояние каналов; Link State routing - отслеживает состояние каналов и отправляет LSA (Link-state advertisement) пакеты, в которых рассказывает о состоянии своих каналов. Примером link state протокола маршрутизации является OSPF RIPv2 - classless протокол. В отличие от своего старшего брата первой версии, второая версия умеет отправлять маску подсети в апдейтах маршрутизации; RIPv2 поддерживает VLSM!; RIPv2, как и RIPv1 поддерживает максимум 15 хопов; RIPv2 отправляет мультикаст сообщения об апдейтах на адрес 224.0.0.9. Это уменьшает нагрузку на сеть и в первую очередь на узлы, на которых не запущен RIP; Вторая версия RIP поддерживает аутентификацию апдейтов маршрутизации. Это значит, что теперь нельзя будет подсунуть ложный апдейт роутеру (в целом, этим могли пользоваться злоумышленники) – только авторизированные источники;
img
Рассказываем про ещё один полезный инструмент на роутерах MikroTik - отправку e-mail сообщений по протоколу SMTP. Данный инструмент может быть использован для отправки на почту периодических бэкапов или же задействован для написания каких-нибудь скриптов. В интерфейсе WinBox, утилита Email расположена в разделе Tools → Email: Из командной строки - /tool e-mail. Первым делом нужно настроить сервер исходящей почты по протоколу SMTP. Доступны следующие параметры настройки: address - IPv4/v6 адрес, SMTP сервера; from - имя или название почтового ящика, который будет показан получателю; password - пароль, который используется для аутентификации на SMTP сервере. В этом случае аутентификации не будет шифроваться. Для включения шифрования можно использовать функцию start-tls; port - порт SMTP сервера, по умолчанию 25; start-tls - может принимать значения no, yes и tls-only - разрешает только TLS шифрования без поддержки SSL; user - имя пользователя, которое будет использоваться для аутентификации на SMTP сервере. Когда сервер будет настроен, можно начинать отправлять письма. Все параметры при отправке писем идут после команды /tool e-mail send: body - тело письма cc - данный параметр позволяет поставить в копию дополнительных получателей; file - позволяет добавлять один или несколько файлов во вложении к письму; from - название или почтовый адрес, который будет показан как отправитель. Если ничего не указано, то будет взят from, который указывался при настройке сервера SMTP; password - пароль, который используется для аутентификации на SMTP сервере. Если ничего не указано, то будет взят password, который указывался при настройке сервера SMTP; port - порт SMTP сервера. Если ничего не указано, то будет взят port, который указывался при настройке сервера; server - адрес SMTP сервера. Если не указано, то используется параметр сервера, указанный при настройке; start-tls - использовать ли TLS шифрование; subject - тема письма; to - адрес получателя, которому предназначено письмо; user - имя пользователя, для аутентификации на сервере. Если не указано, то будет использоваться user из настроек сервера. Теперь давайте применим механизм отправки писем на практике и создадим скрипт, который будет каждый день высылать файл с резервной копией конфигурации нам на почту. Вот как настройка будет выглядеть в командной строке: tool e-mail> set server=192.168.1.34 set port=25 from=”mnmikrotik@mndomain.ru” Теперь добавим новый скрипт, который будет делать бэкап конфигурации роутера: /export file=export /tool e-mail send to="mnadmin@mndomain.ru"subject="$[/system identity get name] export" body="$[/system clock get date] configuration file" file=export.rsc Добавим скрипт на выгрузку конфигурации в планировщик: /system scheduler add on-event="export-send" start-time=00:00:00 interval=24 Готово, теперь каждый день нам на почту mnadmin@mndomain.ru будет приходить свежая выгрузка резервной копии конфигурации нашего роутера. Для того, чтобы настроить отправку писем на почтовый ящик, требующий TLS шифрования (как например Google mail), нужно настроить следующие параметры отправителя: /tool e-mail set address= 192.168.1.34 set port=587 set from=mnaddress@gmail.com set user= mikrotik set password= supersecurepass При отправке письма на такой ящик, необходимо указать параметр start-tls. send to=mnadmin@mndomain.ru subject="HW!" body="Hello World!" start-tls=yes Если Вы предпочитаете настраивать роутер с помощью интерфейса WinBox, то откройте Tools → Email и настройте параметры сервера: Далее заходим в System → Scripts и добавляем новый скрипт на выгрузку конфигурации: Добавляем скрипт в планировщик, чтобы он срабатывал каждый день:
img
Перечисления, или перечисляемые типы данных, - это список постоянных значений с именами, которые удобны для разработчиков. В программировании они нужны для того, чтобы определить набор предопределенных значений, которые может принимать переменная. Определение списка значений Перечисления – это список значений, где каждое значение уникально. В перечислении не может быть двух значений с идентичными именами. Это весьма полезно, если нужно определить все возможные варианты значений, которые может обрабатывать функция.  Например, у вас есть перечисление под названием «Fruits». В нем хранится список фруктов, которые понятны для приложения. Именно в этом и есть ключевое отличие перечисления от использования строки для того, чтобы представить эту переменную, – строка может иметь бесконечное число возможных значений, а это перечисление – только три.  Это перечисление вы можете использовать в своем коде, например, для того, чтобы проверить, соответствует ли тип пользовательского ввода элементу Apple, или для передать его оператору switch/case в качестве аргумента для того, чтобы выполнить определенные действия для каждого типа возможного значения.  С точки зрения внутренней структуры перечисления сами по себе являются значениями. Это, конечно, зависит от реализации языка, но, например, в C# перечисления по умолчанию являются целыми значениями. Значения по умолчанию начинаются с 0, 1, 2, 3 и т.д., но их можно изменить вручную. Можно установить определенное значение для каждого элемента перечисления. Например, это могут быть коды состояния HTTP: Они могут преобразовываться из значения в перечисление и наоборот с помощью простого приведения типов: Перечисления не просто полезны для определения набора элементов, но они также неплохо помогают разработчикам. Даже если вы конвертируете данные в строковый или целочисленный тип перед тем, как отправить их в API, использования перечислений в вашей кодовой базе в любом случае обеспечит большую гибкость и приведет ваш код в порядок.  К тому же, наличие выпадающих списков с автозаполнением со списком возможных значений может помочь не только вам, но и любому, кто будет работать с вашей кодовой базой в дальнейшем. Никто не хочет сопровождать программный код, который в качестве аргументов принимает строки и выполняет случайные действия, основываясь на входных данных. Использование перечислений, напротив, строго определяет то, как себя будет вести приложение.  Недостатки использования перечислений Основной недостаток перечислений заключается в том, что, как только они перестают находиться в вашей кодовой базе, они теряют свое особое значение. Например, у вас есть API, в котором вы сохраняете и отправляете данные. Для начала вам необходимо сериализовать перечисление, которое, скорее всего, по умолчанию принимает базовые значения 0, 1, 2 и т.д. Некоторые языки программирования поддерживают перечисления с базовыми строковыми значениями или настраивают правила сериализации перечислений так, чтобы сгладить эту проблему.  Проблемой может стать и изменение перечислений. Как только вы начинаете использовать перечисление, вы не можете больше менять порядок элементов. У вас есть право только добавить элементы в конец списка. В противном случае хранящиеся данные, которые используют старую версию перечисления, перестанут быть актуальными и будут искажены.  Перечисления как флаги Еще одно популярное направление использования перечислений – это определение битовых флагов. Это достаточно продвинутая концепция, но по сути речь идет о том, что каждое значение перечисления – это логическое значение. Все эти перечисления можно хранить вместе в одном целом числе и использовать для выполнения быстрого поиска логических данных. Это действительно работает, потому что каждое значение перечисления соответствует разным битам базового числа. Для двоичного представления значения перечисления будут следующие: 0, 1, 2, 4, 8, 16 и т.д. И вы можете соединить их вместе, чтобы получить список логических значений.  Почему именно такой вариант, а не несколько логических значений? Что ж, во-первых, это экономит место, а это в некоторых ситуациях (когда у вас их много) может быть очень на руку. Но, что еще важнее, при таком подходе можно очень быстро получить доступ к каждому значению, особенно если вам нужно получить доступ к нескольким значениям. Например, вы хотите проверить, выходной сегодня или нет. Вы можете проверить суббота сегодня или воскресенье ( Saturday | Sunday ), и все это из того же байта, что был загружен в память. Центральному процессору необходимо извлечь лишь один элемент, чтобы получить список всех флагов. 
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59