По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Перед началом, советуем почитать материал про плоскость управления. Топология - это набор связей (или ребер) и узлов, которые описывают всю сеть. Обычно топология описывается и рисуется как граф, но она также может быть представлена в структуре данных, предназначенной для использования машинами, или в дереве, которое обычно предназначено для использования людьми. Топологическую информацию можно обобщить, просто сделав так, чтобы пункты назначения, которые физически (или виртуально) соединены на расстоянии нескольких прыжков, казались непосредственно присоединенными к локальному узлу, а затем удалив информацию о связях и узлах в любой маршрутной информации, переносимой в плоскости управления, с точки суммирования. Рисунок 4 иллюстрирует эту концепцию. Изучение топологии Казалось бы, достаточно просто узнать о топологии сети: изучить подключенные каналы передачи данных. Однако то, что кажется простым в сетях, часто оказывается сложным. Изучение локального интерфейса может рассказать вам о канале, но не о других сетевых устройствах, подключенных к этому каналу. Кроме того, даже если вы можете обнаружить другое сетевое устройство, работающее с той же плоскостью управления по определенному каналу, это не означает, что другое устройство может вас обнаружить. Таким образом, необходимо изучить несколько вопросов. Обнаружение других сетевых устройств Если маршрутизаторы A, B и C подключены к одному каналу, как показано на рисунке 5, какие механизмы они могут использовать для обнаружения друг друга, а также для обмена информацией о своих возможностях? Первое, что следует отметить в отношении сети, показанной в левой части рисунка 5, - это то, что интерфейсы не соответствуют соседям. Фактические отношения соседей показаны в правой части рисунка 5. У каждого маршрутизатора в этой сети есть два соседа, но только один интерфейс. Это показывает, что плоскость управления не может использовать информацию об интерфейсе для обнаружения соседей. Должен быть какой-то другой механизм, который плоскость управления может использовать для поиска соседей. Ручная настройка - одно из широко распространенных решений этой проблемы. В частности, в плоскостях управления, предназначенных для перекрытия другой плоскости управления, или плоскостях управления, предназначенных для построения отношений соседства через несколько маршрутизируемых переходов по сети, ручная настройка часто является самым простым доступным механизмом. С точки зрения сложности, ручная настройка очень мало добавляет к самому протоколу. Например, нет необходимости в какой-либо форме многоадресного объявления соседей. С другой стороны, ручная настройка соседей требует настройки информации о соседях, что увеличивает сложность с точки зрения конфигурации. В сети, показанной на рисунке 5, маршрутизатор A должен иметь отношения соседства, настроенные с помощью B и C, маршрутизатор B должен иметь отношения соседства, настроенные с помощью A и C, а маршрутизатор C должен иметь отношения соседства, настроенные с помощью A и B. Даже если настройка соседей автоматизирована, ручная настройка углубляет и расширяет поверхности взаимодействия между плоскостями управления и контроля. Определение соседей из маршрутных объявлений - это решение, которое когда-то было широко распространено, но стало менее распространенным. В этой схеме каждое устройство периодически объявляет информацию о доступности и / или топологии. Когда маршрутизатор впервые получает информацию о маршрутизации от другого устройства, он добавляет удаленное устройство в локальную таблицу соседей. Пока соседнее устройство продолжает отправлять информацию о маршрутизации на регулярной основе, отношения между соседями будут считаться активными или активными. При выводе соседей из объявлений о маршрутизации важно иметь возможность определить, когда сосед вышел из строя (чтобы информация о достижимости и топологии, полученная от соседа, могла быть удалена из любых локальных таблиц). Наиболее распространенный способ решения этой проблемы - использование пары таймеров: таймера задержки или отключения и таймера обновления или объявления. Пока сосед отправляет обновление или объявление в пределах таймера отключения или задержки, он считается включенным или активным. Если весь "мертвый" период проходит без получения каких-либо обновлений, сосед считается "мертвым", и предпринимаются некоторые действия, чтобы либо проверить информацию о топологии и доступности, полученную от соседа, либо он просто удаляется из таблицы. Нормальная взаимосвязь между таймером отключения и таймером обновления составляет 3× - таймер отключения установлен на трехкратное значение таймера обновления. Следовательно, если сосед не отправляет три подряд обновления или объявления, таймер бездействия активируется и начинает обработку неработающего соседа. Явные приветствия являются наиболее распространенным механизмом обнаружения соседей. Пакеты приветствия передаются на основе таймера приветствия, и сосед считается "мертвым", если приветствие не получено в течение интервала таймера ожидания или объявления. Это похоже на таймеры dead и update, используемые для вывода соседей из объявлений маршрутизации. Приветствия обычно содержат информацию о соседней системе, такую как поддерживаемые возможности, идентификаторы уровня устройства и т. д. Централизованная регистрация - это еще один механизм, который иногда используется для обнаружения и распространения информации о соседних устройствах. Каждое устройство, подключенное к сети, будет отправлять информацию о себе в какую-либо службу и, в свою очередь, узнавать о других устройствах, подключенных к сети, из этой централизованной службы. Конечно, эту централизованную службу нужно каким-то образом обнаружить, что обычно осуществляется с помощью одного из других упомянутых механизмов. Обнаружение двусторонней связи В плоскостях управления с более сложными процессами формирования смежности - особенно протоколами, которые полагаются на приветствия для формирования отношений соседства - важно определить, могут ли два маршрутизатора видеть друг друга (осуществлять двустороннюю связь), прежде чем формировать отношения. Обеспечение двусторонней связи не только предотвращает проникновение однонаправленных каналов в таблицу пересылки, но также предотвращает постоянный цикл формирования соседей - обнаружение нового соседа, построение правильных локальных таблиц, объявление о доступности новому соседу, тайм-аут ожидания hello или другую информацию, удаление соседа или поиск нового соседа. Существует три основных варианта управления двусторонним подключением между сетевыми устройствами. Не утруждайте себя проверкой двусторонней связи. Некоторые протоколы не пытаются определить, существует ли двусторонняя связь между сетевыми устройствами в плоскости управления, а скорее предполагают, что сосед, от которого принимаются пакеты, также должен быть доступен. Перенос списка доступных соседей, услышанных на линии связи. Для протоколов, которые используют приветствия для обнаружения соседей и поддержания работоспособности, перенос списка доступных соседей по одному и тому же каналу является распространенным методом обеспечения двусторонней связи. Рисунок 6 иллюстрирует это. На рисунке 6 предположим, что маршрутизатор A включен раньше B. В этом случае: A отправит приветствия с пустым списком соседей, поскольку он не получил приветствия от любого другого сетевого устройства по каналу. Когда B включен, он получит приветствие A и, следовательно, включит A в список соседей, которые он слышал в своих hello пакетах. Когда A получает приветствие B, он, в свою очередь, включает B в свой список "услышанных" соседей в своих пакетах приветствия. Когда и A, и B сообщают друг о друге в своих списках соседей, которые "слышно от", оба маршрутизатора могут быть уверены, что двустороннее соединение установлено. Этот процесс часто называют трехсторонним рукопожатием, состоящим из трех шагов: A должен послать привет B, чтобы B мог включить A в свой список соседей. B должен получить приветствие A и включить A в свой список соседей. A должен получить приветствие B с самим собой (A) в списке соседей B. Положитесь на базовый транспортный протокол. Наконец, плоскости управления могут полагаться на базовый транспортный механизм для обеспечения двусторонней связи. Это необычное решение, но есть некоторые широко распространенные решения. Например, протокол Border Gateway Protocol (BGP), опирается на протокол управления передачей (TCP), чтобы обеспечить двустороннюю связь между спикерами BGP. Определение максимального размера передаваемого блока (MTU) Для плоскости управления часто бывает полезно выйти за рамки простой проверки двусторонней связи. Многие плоскости управления также проверяют, чтобы максимальный размер передаваемого блока (MTU) на обоих интерфейсах канала был настроен с одинаковым значением MTU. На рисунке 7 показана проблема, решаемая с помощью проверки MTU на уровне канала в плоскости управления. В ситуации, когда MTU не совпадает между двумя интерфейсами на одном канале, возможно, что соседние отношения сформируются, но маршрутизация и другая информация не будут передаваться между сетевыми устройствами. Хотя многие протоколы имеют некоторый механизм для предотвращения использования информации о результирующих однонаправленных каналах при вычислении путей без петель в сети, все же полезно обнаруживать эту ситуацию, чтобы о ней можно было явным образом сообщить и исправить. Протоколы плоскости управления обычно используют несколько методов, чтобы либо явно обнаружить это условие, либо, по крайней мере, предотвратить начальные этапы формирования соседей. Протокол плоскости управления может включать локально настроенный MTU в поле в пакетах приветствия. Вместо того чтобы просто проверять наличие соседа во время трехстороннего рукопожатия, каждый маршрутизатор может также проверить, чтобы убедиться, что MTU на обоих концах линии связи совпадает, прежде чем добавлять новое обнаруженное сетевое устройство в качестве соседа. Другой вариант - добавить пакеты приветствия к MTU локального интерфейса. Если дополненный пакет приветствия максимального размера не получен каким-либо другим устройством в канале связи, начальные этапы отношений соседства не будут завершены. Трехстороннее рукопожатие не может быть выполнено, если оба устройства не получают пакеты приветствия друг друга. Наконец, протокол плоскости управления может полагаться на базовый транспорт для регулирования размеров пакетов, чтобы коммуникационные устройства могли их принимать. Этот механизм в основном используется в плоскостях управления, предназначенных для наложения какой-либо другой плоскости управления, особенно в случае междоменной маршрутизации и виртуализации сети. Плоскости управления наложением часто полагаются на обнаружение MTU пути (Path MTU) для обеспечения точного MTU между двумя устройствами, подключенными через несколько переходов. Сам размер MTU может оказать большое влияние на производительность плоскости управления с точки зрения ее скорости сходимости. Например, предположим, что протокол должен передавать информацию, описывающую 500 000 пунктов назначения по многопоточному каналу с задержкой 500 мс, и для описания каждого пункта назначения требуется 512 бит: Если MTU меньше 1000 бит, для плоскости управления потребуется 500 000 циклов туда и обратно для обмена всей базой данных доступных пунктов назначения, или около 500 000 × 500 мс, что составляет 250 000 секунд или около 70 часов. Если MTU составляет 1500 октетов или 12000 битов, плоскости управления потребуется около 21000 циклов туда и обратно для описания всей базы данных доступных пунктов назначения, или около 21000 × 500 мс, что составляет около 175 минут. Важность сжатия такой базы данных с использованием какого-либо оконного механизма для сокращения числа полных обходов, необходимых для обмена информацией о достижимости, и увеличения MTU вполне очевидна. Далее почитайте материал о том, как происходит обнаружение соседей в сетях.
img
Термин chroot jail появился еще в 1992 году но часто используется сегодня. Что же это означает и для чего используется эта операция? Что такое chroot jail? Chroot (сокращение от change root) - это операция Unix, которая изменяет видимый корневой каталог на тот, который задан пользователем. Любой процесс, который вы запускаете после операции chroot, имеет доступ только к новому определенному корневому каталогу и его подкаталогам. Эта операция широко известна как chroot jail, поскольку эти процессы не могут читать или писать вне нового корневого каталога. Для чего используется chroot jail? Chroot jail используется для создания ограниченной «песочницы» для запуска процесса. Это означает, что процесс не может злонамеренно изменять данные за пределами предписанного дерева каталогов. Еще одно применение chroot jail - это замена виртуальным машинам. Этот метод называется виртуализацией на уровне ядра и требует меньше ресурсов, чем виртуальные машины. Эта операция позволяет пользователям создавать несколько изолированных инстансов в одной системе. Как использовать chroot jail Рассмотрим на примере как создать и настроить chroot jail, чтобы он мог запускать команды bash и ls. 1. Создайте новый каталог с именем chroot_jail: mkdir chroot_jail Если мы попытаемся использовать chroot на этом каталоге, мы получим следующий вывод: Вы должны включить команду bash, прежде чем сможете использовать chroot на новом каталоге. Для этого необходимо скопировать командный файл и все связанные библиотеки в новый корневой каталог. 2. Создайте новое дерево подкаталогов внутри chroot_jail: mkdir -p chroot_jail / bin chroot_jail / lib64 / x86_64-linux-gnu chroot_jail / lib / x86_64-linux-gnu В этих подкаталогах будут храниться все необходимые элементы команд bash и ls. 3. Использование команды cp с командой which позволяет копировать команды bash и ls без указания пути, из которого вы копируете. Для этого используйте: cp $(which ls) chroot_jail/bin/ cp $(which bash) chroot_jail/bin/ Примечание. Если ваша команда bash или ls имеет псевдоним, вам необходимо снять его перед копированием. Используйте unalias [command], где [command] - это имя команды, которую вы хотите удалить. 4. Чтобы bash и ls работали в новой корневой папке, добавьте все связанные библиотеки в chroot_jail/libraries. Используйте команду ldd, чтобы узнать, какие библиотеки связаны с какой командой: ldd $(which bash) ldd $(which ls) 5. Скопируйте соответствующие библиотеки в подкаталоги lib и lib64. Для команды bash: cp /lib/x86_64-linux-gnu/libtinfo.so.6 chroot_jail/lib/x86_64-linux-gnu/ cp /lib/x86_64-linux-gnu/libdl.so.2 chroot_jail/lib/x86_64-linux-gnu/ cp /lib/x86_64-linux-gnu/libc.so.6 chroot_jail/lib/x86_64-linux-gnu/ cp /lib64/ld-linux-x86-64.so.2 chroot_jail/lib64/ Для команды ls: cp /lib/x86_64-linux-gnu/libselinux.so.1 chroot_jail/lib/x86_64-linux-gnu/ cp /lib/x86_64-linux-gnu/libc.so.6 chroot_jail/lib/x86_64-linux-gnu/ cp /lib/x86_64-linux-gnu/libpcre2-8.so.0 chroot_jail/lib/x86_64-linux-gnu/ cp /lib/x86_64-linux-gnu/libdl.so.2 chroot_jail/lib/x86_64-linux-gnu/ cp /lib64/ld-linux-x86-64.so.2 chroot_jail/lib64/ cp /lib/x86_64-linux-gnu/libpthread.so.0 chroot_jail/lib/x86_64-linux-gnu/ 6. Используйте команду chroot, чтобы изменить root на каталог chroot_jail: sudo chroot chroot_jail Примечание. При изменении корневого каталога на каталог chroot_jail запускается новый экземпляр оболочки bash. Используйте команду ls, чтобы вывести список всех файлов и каталогов в новом корневом дереве каталогов: ls -R 7. Как только вы закончите использовать новую корневую папку, выйдите из оболочки: exit Заключение После выполнения этого руководства вы сможете настроить chroot jail вместе с необходимыми ресурсами для запуска процессов и команд в новом корневом каталоге.
img
Как стать Python-разработчиком и почему этот язык программирования стал самым популярным Python — самый популярный язык программирования в рейтинге Tiobe. Ребята из этой компании оценивают популярность языков программирования на основе поисковых запросов. Для расчета рейтинга используются популярные поисковые системы, такие как Google, Bing, Yahoo!, Wikipedia, Amazon, YouTube и Baidu.Python широко используется в различных областях благодаря своей простоте, гибкости и богатым библиотекам. Свое название Python получил не в честь змеи, а благодаря Британскому комедийному шоу «Летающий цирк Монти Пайтона». Так что откладываем в сторону шутки про заклинателя змей и попытаемся разобраться, почему Python последние несколько лет стал самым популярным языком, как стать Python-разработчиком и что нужно знать для старта в этой профессии. indian Немного об истории создания Python Автором Python является голландский программист Гвидо ван Россум. Примечательно, что он самостоятельно изучил двенадцать языков программирования, а потом психанул придумал за три недели Python. Одной из базовых идей нового языка было то, что его код должен быть понятен, как простой английский. На нем можно было бы не только писать программы, но и передавать с его помощью идеи между разработчиками. Также язык должен был быть мощным, как основные конкуренты, и подходить для решения повседневных задач. Подробнее об этом можно почитать здесь или посмотреть его интервью для Oxford Union. Где используется Python Гибкость этого языка позволяет использовать его во многих областях программирования и разработки. К примеру, это может быть веб-разработка, научные исследования, анализ данных, разработка и тестирование программного обеспечния и даже маркетинг и социология. Степень использования языка и набор навыков зависят от конкретной профессии и области применения. Вот несколько из них, в которых Python активно применяется: Веб-разработка. Чаще всего Python используют именно в ней. Для этого языка написано уже много фреймворков, например, таких как Django и Flask. Кроме того, на Python работает серверное обеспечение известных компаний: Google, Dropbox, Spotify, Netflix. Исследовательская деятельность при работе с данными. Для таких задач не нужно быть полноценным Python-разработчиком, достаточно знать необходимые инструменты для проведения вычислительных исследований, обработки данных и создания графиков: библиотеки NumPy, Pandas, SciPy, Matplotlib и другие. Тестирование: Python используется для написания тестов, автоматизации тестирования и создания инструментов для обеспечения качества ПО. Автоматизация задач. Python является отличным инструментом для автоматизации рутинных задач, обработки файлов, взаимодействия с операционной системой и создания скриптов. Искусственный интеллект. Нейросети требуют более продвинутого знания Python. Например, для того чтобы предложить вам рекоммендацию в Netflix, Spotify и Яндекс.Музыке, используются нейросетевые технологии и высокая скорость обработки данных. Игровая разработка. Некоторые компьютерные игры полностью или частично были написаны на Python. Он применяется для создания их прототипов и разработки скриптов в некоторых игровых движках. Необходимый набор знаний для старта Для старта в профессии в первую очередь необходимо знать синтаксис языка. Нужно понимать основные правила, по которым пишутся команды, знать, как обозначаются переменные, условия, циклы и функции. Изучить широко используемые библиотеки и фреймворки Python, такие как NumPy, Pandas, Flask и Django. Важно освоить основные инструменты и среды разработки, такие как Git для управления версиями кода. Звучит все это сложно и на первый взгляд невыполнимо. На самом деле начать работать с Python и присоединиться к комьюнити разработчиков довольно просто. На официальном сайте можно скачать все необходимые данные или воспользоваться более удобной сборкой Anaconda. Там можно сразу написать свой первый проект. Кроме того, Merion academy подготовила курс «Python-программист с нуля», где за 4 месяца вы сможете стать разработчиком на одном из самых популярных языков программирования. Рубрика: сколько ты зарабатываешь? Средний размер оплаты труда Python-разработчика на конец 2023 года составляет 265 000 рублей в месяц. На уровень дохода влияей опыт работника. Джуниор-специалисты могут рассчитывать на 30 000—100 000 рублей в месяц. Middle может претендовать на доход от 200 000 рублей, Зарплата Python-разработчика уровня Senior — 300 000—350 000 рублей. oklad Заключение Стать Python-разработчиком может быть увлекательным и достижимым процессом, особенно если у вас есть интерес к программированию и решению задач. Практикуйтесь и не бойтесь сталкиваться с новыми вызовами. Со временем и накопленным опытом, вы сможете реализовать себя в этой профессии. Присоединиться к курсу можно тут
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59