По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Первоначально BGP был разработан как протокол Внешнего шлюза (Exterior Gateway Protocol - EGP), что означает, что он предназначался для подключения сетей или автономных систем (AS), а не устройств. Если BGP является EGP, это должно означать, что другие протоколы маршрутизации, такие как RIP, EIGRP, OSPF и IS-IS, должны быть протоколами внутренних шлюзов (Interior Gateway Protocols- IGP). Четкое определение внутренних и внешних шлюзов оказалось полезным при проектировании и эксплуатации крупномасштабных сетей. BGP является уникальным среди широко распространенных протоколов в том, что касается расчета пути без петель. Существует три широко используемых протокола векторов расстояний (Spanning Tree, RIP и EIGRP). Существует два широко используемых протокола состояния канала связи (OSPF и IS-IS). И есть еще много примеров этих двух типов протоколов, разработанных и внедренных в то, что можно было бы считать нишевыми рынками. BGP, однако, является единственным широко развернутым протоколом вектора пути. Каковы наиболее важные цели EGP? Первый - это, очевидно, выбор путей без петель, но это явно не означает кратчайшего пути. Причина, по которой кратчайший путь не так важен в EGP, как в IGP, заключается в том, что EGP используются для соединения объектов, таких как поставщики услуг, поставщики контента и корпоративные сети. Подключение сетей на этом уровне означает сосредоточение внимания на политике, а не на эффективности - с точки зрения сложности, повышение состояния с помощью механизмов политики при одновременном снижении общей оптимизации сети с точки зрения передачи чистого трафика. BGP-пиринг BGP не обеспечивает надежной передачи информации. Вместо этого BGP полагается на TCP для передачи информации между одноранговыми узлами BGP. Использование TCP гарантирует: Обнаружение MTU обрабатывается даже для соединений, пересекающих несколько переходов (или маршрутизаторов). Управление потоком осуществляется базовым транспортом, поэтому BGP не нуждается в непосредственном управлении потоком (хотя большинство реализаций BGP действительно взаимодействуют со стеком TCP на локальном хосте, чтобы повысить пропускную способность, в частности, для BGP). Двусторонняя связь между одноранговыми узлами обеспечивается трехсторонним рукопожатием, реализованным в TCP. Несмотря на то, что BGP полагается на базовое TCP-соединение для многих функций, которые плоскости управления должны решать при построении смежности, по-прежнему существует ряд функций, которые TCP не может предоставить. Следовательно, необходимо более подробно рассмотреть процесс пиринга BGP. Рисунок 1 позволяет изучить этот процесс. Сеанс пиринга BGP начинается в состоянии ожидания (idle state). A отправляет TCP open на порт 179. B отвечает на временный порт (ephemeral port) на A. После завершения трехстороннего подтверждения TCP (сеанс TCP успешен), BGP перемещает состояние пиринга для подключения. Если пиринговый сеанс формируется через какой-либо тип фильтрации на основе состояния, такой как брандмауэр, важно, чтобы открытое TCP-сообщение передавалось «изнутри» фильтрующего устройства. В случае сбоя TCP-соединения состояние пиринга BGP переводится в активное. A отправляет BGP open в B и переводит B в состояние opensent. В этот момент A ожидает от B отправки сообщения keepalive. Если B не отправляет сообщение keepalive в течение определенного периода, A вернет сеанс обратно в состояние ожидания (idle state). Открытое сообщение содержит ряд параметров, например, какие семейства адресов поддерживают два спикера BGP и hold timer. Это называется согласованием возможностей. Самый низкий (минимальный) hold timer из двух объявленных выбирается в качестве hold timer для однорангового сеанса. Когда B отправляет A сообщение keepalive, A переводит B в состояние openconfirm. На этом этапе A отправит B сообщение keepalive для проверки соединения. Когда A и B получают сообщения поддержки активности друг друга, пиринговый сеанс переходит в established state. Два узла BGP обмениваются маршрутами, поэтому их таблицы обновлены. A и B обмениваются только своими лучшими путями, если какая-либо форма многонаправленного распространения BGP не поддерживается и не настроена на двух спикерах. Чтобы уведомить A, что он завершил отправку всей своей локальной таблицы, B отправляет A сигнал End of Table (EOT) или End of RIB (EOR). Существует два типа пиринговых отношений BGP: одноранговые узлы BGP в одной и той же автономной системе (AS, что обычно означает набор маршрутизаторов в одном административном домене, хотя это довольно общее определение) называются внутренними одноранговыми узлами BGP (internal BGP - iBGP) и Одноранговые узлы BGP между автономными системами называются внешними (или внешними - exterior) узлами BGP (eBGP). Хотя два типа пиринговых отношений BGP построены одинаково, у них разные правила объявления. Процесс выбора оптимального пути BGP Поскольку BGP предназначен для соединения автономных систем, алгоритм наилучшего пути ориентирован в первую очередь на политику, а не на отсутствие петель. Фактически, если вы изучите какое-либо стандартное объяснение процесса наилучшего пути BGP, то, является ли конкретный путь свободным от петель, вообще не будет учитываться в процессе принятия решения. Как же тогда BGP определяет, что конкретный узел объявляет маршрут без петель? Рисунок 2 демонстрирует это. На рисунке 2 каждый маршрутизатор находится в отдельной AS, поэтому каждая пара спикеров BGP будет формировать сеанс пиринга eBGP. A, который подключен к 2001: db8: 3e8: 100 :: / 64, объявляет этот маршрут к B и C. Объявления маршрута BGP несут ряд атрибутов, одним из которых является путь AS. Перед тем, как A объявит 100 :: / 64 для B, он добавляет свой номер AS в атрибут AS Path. B получает маршрут и объявляет его D. Перед объявлением маршрута к D он добавляет AS65001 к AS Path. Тогда путь AS, прослеживающийся от A до C, на каждом шаге выглядит примерно так: Получено B: [AS65000] Получено C: [AS65000, AS65001] Получено D: [AS65000, AS65001, AS65003] Когда D получил маршрут от B, он анонсирует его обратно в C (в BGP нет split horizon). Предположим, что C, в свою очередь, объявляет обратный маршрут к A по какой-то причине (в этой ситуации это не так, потому что путь через A был бы лучшим путем к месту назначения, а просто для демонстрации предотвращения петель), A будет проверять AS Path и обнаружение его локальной AS находится в AS Path. Это явно петля, поэтому A просто игнорирует маршрут. Поскольку этот маршрут игнорируется, он никогда не помещается в таблицу топологии BGP. Следовательно, с использованием процесса наилучшего пути BGP сравниваются только маршруты без петель. В большинстве реализаций процесс наилучшего пути BGP состоит из 13 шагов (первый шаг реализуется не всегда, так как это локальное решение со стороны узла BGP): Выбирается маршрут с наибольшим весом. Некоторые реализации не используют вес маршрута. Выбирается маршрут с наивысшим местным предпочтением (local preference- LOCAL PREF). Local preference собой политику выхода локальной AS - какую точку выхода из доступных точек выхода предпочел бы владелец этой AS, как и узел BGP. Предпочитайте маршрут с локальным происхождением, то есть на этом узле BGP. Этот шаг редко используется в процессе принятия решения. Предпочитайте путь с самым коротким AS Path. Этот шаг предназначен для выбора наиболее эффективного пути через объединенную сеть, выбора пути, который будет проходить через наименьшее количество автономных систем для достижения пункта назначения. Операторы часто добавляют записи AS Path, чтобы повлиять на этот шаг в процессе принятия решения. Предпочитайте путь с наименьшим значением координат. Маршруты, которые перераспределяются из IGP, предпочтительнее маршрутов с неизвестным происхождением. Этот шаг редко оказывает какое - либо влияние на процесс принятия решений. Предпочитайте путь с самым низким multiexit discriminator (MED). MED представляет входную политику удаленной AS. Таким образом, MED сравнивается только в том случае, если от одной и той же соседней AS было получено несколько маршрутов. Если один и тот же маршрут получен от двух разных соседних автономных систем, MED игнорируется. Предпочитайте маршруты eBGP маршрутам iBGP. Предпочитайте маршрут с наименьшей стоимостью IGP до следующего перехода. Если политика локального выхода не задана (в форме локального предпочтения), и соседняя AS не установила политику входа (в форме MED), то путь с ближайшим выходом из локального маршрутизатора выбирается как точка выхода. Определите, следует ли устанавливать несколько путей в таблице маршрутизации (настроена некоторая форма multipath). При сравнении двух внешних маршрутов (полученных от однорангового узла eBGP) предпочтите самый старый маршрут или маршрут, изученный первым. Это правило предотвращает отток маршрутов только потому, что маршруты обновляются. Предпочитайте маршрут, полученный от однорангового узла с наименьшим идентификатором маршрутизатора. Это просто средство разрешения конфликтов для предотвращения оттока в таблице маршрутизации. Предпочитайте маршрут с наименьшей длиной кластера. Предпочитайте маршрут, полученный от однорангового узла с наименьшим адресом пиринга. Это, опять же, просто тай-брейк, выбранный произвольно, чтобы предотвратить ненужные связи и вызвать отток в таблице маршрутизации, и обычно используется, когда два одноранговых узла BGP соединены по двум параллельным каналам. Хотя это кажется долгим процессом, почти каждое решение наилучшего пути в BGP сводится к четырем факторам: локальному предпочтению (local preference), MED, длине AS Path и стоимости IGP. Правила объявления BGP BGP имеет два простых правила для определения того, где объявлять маршрут: Объявляйте лучший путь к каждому пункту назначения каждому узлу eBGP. Объявляйте лучший путь, полученный от однорангового узла eBGP, для каждого однорангового узла iBGP. Еще один способ сформулировать эти два правила: никогда не объявлять маршрут, полученный от iBGP, другому узлу iBGP. Рассмотрим рисунок 3. На рисунке 3 A и B - это одноранговые узлы eBGP, а B и C, а также C и D - одноранговые узлы iBGP. Предположим, A объявляет 2001: db8: 3e8: 100 :: / 64 для B. Поскольку B получил это объявление маршрута от однорангового узла eBGP, он объявит 100 :: / 64 на C, который является одноранговым узлом iBGP. C, изучив этот маршрут, не будет объявлять маршрут к D, поскольку C получил маршрут от однорангового узла iBGP, а D также является одноранговым узлом iBGP. Таким образом, на этом рисунке D не узнает о 100 :: / 64. Это не очень полезно в реальном мире, однако ограничение присутствует не просто так. Рассмотрим, как BGP предотвращает образование петель маршрутизации - передавая список автономных систем, через которые прошел маршрут, в самом объявлении маршрута. При объявлении маршрута от одного спикера iBGP к другому AS Path не изменяется. Если узлы iBGP объявляют маршруты, полученные от одноранговых узлов iBGP, одноранговым узлам iBGP, петли маршрутизации могут быть легко сформированы. Одним из решений этой проблемы является простое построение многоуровневых пиринговых отношений между B и D (помните, что BGP работает поверх TCP. Пока существует IP-соединение между двумя узлами BGP, они могут построить пиринговые отношения). Предположим, что B строит пиринговые отношения с D через C, и ни B, ни D не строят пиринговые отношения с C. Что произойдет, когда трафик переключается на 100 :: / 64 посредством D на C? Что будет с пакетами в этом потоке на C? У C не будет маршрута к 100 :: / 64, поэтому он сбросит трафик. Это может быть решено несколькими способами - например, B и D могут туннелировать трафик через C, поэтому C не обязательно должен иметь доступность к внешнему пункту назначения. BGP также можно настроить для перераспределения маршрутов в любой основной запущенный IGP (это плохо - не делайте этого). Для решения этой проблемы были стандартизированы рефлекторы маршрутов BGP. Рисунок 4 иллюстрирует работу отражателей маршрута. На рисунке 4 E сконфигурирован как рефлектор маршрута. B, C и D настроены как клиенты рефлектора маршрутов (в частности, как клиенты E). A объявляет маршрут 2001: db8: 3e8: 100 :: / 64 к B. B объявляет этот маршрут E, потому что он был получен от однорангового узла eBGP, а E является одноранговым узлом iBGP. E добавляет новый атрибут к маршруту, список кластеров, который указывает путь обновления в AS через кластеры отражателя маршрута. Затем E объявит маршрут каждому из своих клиентов. Предотвращение зацикливания в этом случае обрабатывается списком кластеров. Подведение итогов о BGP Хотя изначально BGP был разработан для соединения автономных систем, его использование распространилось на центры обработки данных, передачу информации о виртуальных частных сетях. Фактически, использование BGP практически безгранично. Постепенно BGP превратился в очень сложный протокол. BGP можно описать как: Проактивный протокол, который узнает о достижимых местах назначения через конфигурацию, локальную информацию и другие протоколы. Протокол вектора пути, который объявляет только лучший путь к каждому соседу и не предотвращает образование петель в автономной системе (если не развернуты рефлекторы маршрута или какая-либо дополнительная функция) Выбор путей без петель путем изучения пути, по которому может быть достигнут пункт назначения Проверка двустороннего подключения и MTU за счет использования TCP в качестве основы для передачи информации.
img
FOP2 - одна из лучших панелей для IP – АТС Asterisk, которая позволяет наблюдать за телефонной активностью АТС, такой как разговоры сотрудников, количество вызовов в очереди, продолжительность и прочие. Помимо этого, панель позволяет управлять текущим вызовом пользователя. В этой статье мы покажем легкий способ решить проблему с парковкой вызова. Многие пользователи обратили внимание, что при нажатии на парковочный слот, а затем инициации парковки с помощью кнопки Transfer вызов обрывается. Помимо этого, обрыв случается при парковке через кнопку в верхней панели управления Park, которая выглядит как булавка :) Сгенерирован ли диалплан для FOP2? В процессе инсталляции, многие пользователи забывают сгенерировать диалплан для FOP2. Есть ли у вас в директории /etc/asterisk/ файл extensions_override_fop2.conf? Если нет, то воспользуйтесь следующей командой: /usr/local/fop2/generate_override_contexts.pl -write Доработка из консоли Теперь нужно внести некоторый правки в конфигурацию FOP2. Открываем файл extensions_override_fop2.conf: vim /etc/asterisk/extensions_override_fop2.conf Найдите контекст [fop2-park] и сделайте его содержание следующим: [fop2-park] exten => _X.,1,Set(ARRAY(RETURN_EXTENSION,RETURN_CONTEXT,PARKBUTTON)=${CUT(EXTEN,:,1)},${CUT(EXTEN,:,2)},${CUT(EXTEN,:,3)}) exten => _X.,2,GotoIf($["${PARKBUTTON}" = "PARK/DEFAULT"]?5) exten => _X.,3,GotoIf($["${PARKBUTTON}" = ""]?5) exten => _X.,4,Set(PARKINGLOT=${PARKBUTTON:5}) exten => _X.,5,Park(default,${RETURN_CONTEXT},${RETURN_EXTENSION},1,s) Доработка из консоли Прыгаем в FreePBX. Переходим по пути Applications → Parking и сделайте имя для слота (Parking Lot Name) равным значению default: Сохраняем настройки. Проверка Проверяем, что у нас получилось: Делаем звонок из города на номер оператора FOP2; Выбираем парковочный слот и нажимаем Transfer; Видим, что вызов попал в парковочный слот :)
img
Sudo означает SuperUser DO и используется для доступа к файлам и операциям с ограниченным доступом. По умолчанию Linux ограничивает доступ к определенным частям системы, предотвращая компрометацию конфиденциальных файлов. Команда sudo временно повышает привилегии, позволяя пользователям выполнять конфиденциальные задачи без входа в систему как пользователь root. В этом руководстве вы узнаете, как использовать команду sudo в Linux с примерами. Как использовать команду sudo Установка sudo Пакет sudo установлен в большинстве дистрибутивов Linux. Чтобы проверить есть ли у вас эта комманда введите sudo. Вы увидите справочное сообщение или сообщение о том что комнада не найдена. Чтобы установить sudo используйте для Ubuntu и Debian: apt install sudo или для CentOS и Fedora yum install sudo sudo была разработана как способ временного предоставления пользователю административных прав. Чтобы заставить ее работать, используйте sudo перед ограниченной командой, которую можно выполнить только из под рута. Тогда система запросит ваш пароль. После его ввода система запускает команду. Синтаксис sudo [команда] Опции sudo можно использовать с дополнительными параметрами: -h - отображает синтаксис и параметры команды -V - отображает текущую версию приложения sudo -v - обновить лимит времени на sudo без запуска команды -l - перечисляет права пользователя или проверяет конкретную команду -к - завершить текущие привилегии sudo Дополнительные параметры можно найти с помощью ключа -h. Примечание. Оставаться в системе как администратор ставит под угрозу безопасность сервера. Раньше администраторы использовали su (substitute user) для временного переключения на учетную запись администратора. Однако для команды su требуется вторая учетная запись пользователя и пароль, что не всегда возможно. Когда используется команда sudo, в системные журналы заносится метка времени. Пользователь может запускать команды с повышенными привилегиями в течение короткого времени (по умолчанию 15 минут). Если пользователь, не принадлежащий к sudo группе, пытается использовать команду sudo, это регистрируется как событие безопасности. Предоставление привилегий sudo Для большинства современных дистрибутивов Linux пользователь должен входить в группу sudo, sudoers или wheel, чтобы использовать команду sudo. По умолчанию однопользовательская система предоставляет своему пользователю права sudo. Система или сервер с несколькими учетными записями пользователей могут исключать некоторых пользователей из привилегий sudo. Рассмотрим как добавить пользователя в эту группу. RedHat и CentOS В Redhat и CentOS wheel группа контролирует пользователей sudo. Добавьте пользователя в группу wheel с помощью следующей команды: usermod –aG wheel [username] Замените [username] фактическим именем пользователя. Возможно, вам потребуется войти в систему как администратор или использовать команду su. Debian и Ubuntu В Debian и Ubuntu группа sudo (sudo group) контролирует пользователей sudo. Добавьте пользователя в группу sudo с помощью следующей команды: Использование visudo и группы sudoers В некоторых современных версиях Linux пользователи добавляются в файл sudoers для предоставления привилегий. Это делается с помощью команды visudo. Используйте команду visudo для редактирования файла конфигурации: sudo visudo Это откроет /etc/sudoers для редактирования. Чтобы добавить пользователя и предоставить полные права sudo, добавьте следующую строку: [username] ALL=(ALL:ALL) ALL Сохраните и выйдите из файла. Вот разбивка предоставленных привилегий sudo: [username] [any-hostname]=([run-as-username]:[run-as-groupname]) [commands-allowed] Примечание. Проще добавить пользователя в группу sudo или wheel, чтобы предоставить права sudo. Если вам нужно отредактировать файл конфигурации, делайте это только с помощью visudo. Приложение visudo предотвращает сбои, ошибки и неправильные настройки, которые могут нарушить работу вашей операционной системы. Тайм-аут пароля sudo По умолчанию sudo просит вас ввести пароль после нескольких минут бездействия. Изменить это время ожидания по умолчанию, можно отредактировав файл sudoers с помощью visudo и измените время ожидания, добавив строку как в примере, где 10 - это время ожидания, указанное в минутах: sudo visudo Defaults timestamp_timeout=10 Если вы хотите изменить время ожидания для определенного пользователя, то добавьте имя пользователя. Defaults:user_name timestamp_timeout=10 Примеры sudo в Linux Основное использование Sudo 1. Откройте окно терминала и попробуйте выполнить следующую команду: apt-get update 2. Вы должны увидеть сообщение об ошибке. У вас нет необходимых разрешений для запуска команды. 3. Попробуйте ту же команду с sudo: sudo apt-get update 4. При появлении запроса введите свой пароль. Система выполнит команду и обновит репозитории. Выполнить команду от имени другого пользователя 1. Чтобы запустить команду от имени другого пользователя, введите в терминале следующую команду: whoami 2. Система должна отображать ваше имя пользователя. Затем выполните следующую команду: sudo –u [другое_имя_пользователя] whoami 3. Введите пароль для другого пользователя, и команда whoami запустится и отобразит другого пользователя. Переключиться на root пользователя Эта команда переключает вашу командную строку на оболочку BASH от имени пользователя root: sudo bash Ваша командная строка должна измениться на: root@hostname:/home/[имя пользователя] Значение имени хоста будет сетевым именем этой системы. Имя пользователя будет текущим именем пользователя, вошедшим в систему. Выполнить предыдущие команды с помощью sudo В командной строке Linux хранятся записи о ранее выполненных командах. Доступ к этим записям можно получить, нажав стрелку вверх. Чтобы повторить последнюю команду с повышенными привилегиями, используйте: sudo !! Это также работает со старыми командами. Укажите исторический номер следующим образом: sudo !6 В этом примере повторяется 6-я запись в истории с командой sudo. Запуск нескольких команд в одной строке Соедините несколько команд вместе, разделенных точкой с запятой: sudo ls; whoami; hostname Добавить строку текста в существующий файл Добавление строки текста в файл часто используется для добавления имени репозитория программного обеспечения к исходному файлу без открытия файла для редактирования. Используйте следующий синтаксис с командами echo, sudo и tee: echo ‘string-of-text’ | sudo tee –a [path_to_file] Например: echo "deb http://nginx.org/packages/debian `lsb_release -cs` nginx" | sudo tee /etc/apt/sources.list.d/nginx.list Заключение Теперь вы узнали про команду sudo и про то, как ее использовать.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59