По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Поговорим про голосовой трафик в классических корпоративных сетях, а именно про его сегрегацию от обычного дата трафика и про включение телефонов в саму КСПД. Обычно, телефоны находятся на столе рядом с компьютером на рабочем стол, подключаются такой же витой парой (UTP), что и компьютер, и тоже используют протокол Ethernet. Для подключения телефона к коммутатору существует две опции – подключение оборудования к свитчу «параллельно», используя два кабеля или же подключив телефон и компьютер «последовательно»: Первый «параллельный» сценарий заработает, но есть несколько больших недостатков – дополнительный кабель и занятый порт на коммутаторе. По этой причине в данный момент большинство IP – телефонов, включая Cisco, имеют маленький коммутатор на 3 порта внутри IP – телефона: Первый порт подключается к коммутатору; Второй порт подключается к компьютеру; Внутренний порт подключает сам телефон; Теперь поговорим о вопросе разделения голосового трафика от любого другого – и мы можем выполнить данную задачу с помощью голосового VLANа. Голосовой VLAN также иногда обозначается как AUX VLAN Посмотрите на схему ниже – это то, как будет выглядеть наше подключение – все компьютеры и обычный трафик будут находиться в VLAN 10, а голосовой трафик мы поместим в VLAN 11. Как это все работает? Между коммутатором и телефоном у нас есть так называемый "транк". Порт на телефоне, который подключается к компьютеру, является портом доступа. Телефона передает весь трафик с компьютера на коммутатор без каких - либо меток, непомеченным. Трафик с самого телефона всегда будет помечаться, и в транке будут разрешены только два вышеупомянутых VLANа. Настройка Если вы уже знакомы с настройкой VLANов, то создание голосового VLANа не составит для вас вообще никакого труда. Давайте настроим порт на коммутаторе, где мы будем использовать VLANы 10 и 11. Сначала мы создаем данные VLANы: MERION-SW1(config)#vlan 10 MERION-SW1(config-vlan)#name DATA MERION-SW1(config-vlan)#exit MERION-SW1(config)#vlan 11 MERION-SW1(config-vlan)#name VOICE MERION-SW1(config-vlan)#exit Теперь настроим интерфейс: MERION-SW1(config)#interface GigabitEthernet 0/1 MERION-SW1(config-if)#switchport mode access MERION-SW1(config-if)#switchport access vlan 10 MERION-SW1(config-if)#switchport voice vlan 11 MERION-SW1(config-if)#exit Мы переключили данный порт в режим доступа и настраиваем его для VLAN 10. Команда switchport voice vlan сообщает коммутатору, чтобы он использовал VLAN 11 как голосовой VLAN. Для того, чтобы телефон понял, какой VLAN нужно использовать, используются два протокола – Cisco Discovery Protocol (CDP) для телефонов Cisco и Link Layer Discovery Protocol (LLDP) для телефонов от других вендоров Проверка работоспособности Для проверки корректности настройки, мы будем использовать команду show interfaces MERION-SW1#show interfaces GigabitEthernet 0/1 switchport Name: Gi0/1 Switchport: Enabled Administrative Mode: static access Operational Mode: static access Administrative Trunking Encapsulation: negotiate Operational Trunking Encapsulation: native Negotiation of Trunking: Off Access Mode VLAN: 10 (DATA) Trunking Native Mode VLAN: 1 (default) Administrative Native VLAN tagging: enabled Voice VLAN: 11 (VOICE) Administrative private-vlan host-association: none Administrative private-vlan mapping: none Administrative private-vlan trunk native VLAN: none Administrative private-vlan trunk Native VLAN tagging: enabled Administrative private-vlan trunk encapsulation: dot1q Administrative private-vlan trunk normal VLANs: none Administrative private-vlan trunk associations: none Administrative private-vlan trunk mappings: none Operational private-vlan: none Trunking VLANs Enabled: ALL Pruning VLANs Enabled: 2-1001 Capture Mode Disabled Capture VLANs Allowed: ALL Protected: false Unknown unicast blocked: disabled Unknown multicast blocked: disabled Appliance trust: none Как видно из вывода выше, VLANы настроились корректно. И теперь посмотрим на статус транка. Вывод скажет нам, что порт не является транком, он покажет какие VLANы в нем используются (то есть, которые мы настроили). Несмотря на то, что он показан как нетранковый, в реальности он все - таки является транком. MERION-SW1#show interfaces GigabitEthernet 0/1 trunk Port Mode Encapsulation Status Native vlan Gi0/1 off negotiate not-trunking 1 Port Vlans allowed on trunk Gi0/1 10-11 Port Vlans allowed and active in management domain Gi0/1 10-11 Port Vlans in spanning tree forwarding state and not pruned Gi0/1 10-11 На этом настройка завершена – для остальных рабочих станций и телефонов данный шаг нужно выполнить точно также, но на других портах коммутатора. Голосовой трафик будет идти в приоритете перед остальным трафиком и это скажется в лучшую сторону на качестве связи.
img
Многие пользуются возможностями, которые предоставляет виртуализация, но на 64-битной системе Windows – если Hyper-V включен, то в VirtualBox будет отсутствовать возможность создавать 64-битные виртуальные машины – учитывая, что потребность в создании таких виртуалок все-таки может возникнуть, то мы решили перечислить несколько способов как быстро включатьвыключать Hyper-V. Первый способ Первый способ также описывает процесс первоначального включения Hyper-V – сперва нужно открыть окно Windows Features и найти пункт Hyper-V (как на скриншоте ниже): Соответственно, если вам необходимо установить 64-битную машину на VirtualBox, нужно снять галочку Hyper-V и перезагрузить компьютер. Второй способ – с помощью PowerShell Сперва требуется запустить PowerShell (оболочка, разработанная Microsoft для конфигурации и автоматизации различных задач). Самое простое – ввести Powershell в строку поиска и кликнуть на нужное приложение. Далее, есть две команды, одна соответственно включает, а вторая отключает функционал виртуализации. Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V –All - включение; Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All - соответственно выключение; Помните, что PowerShell должен быть запущен в elevated режиме – для этого просто нажмите правой кнопкой и запустите от имени администратора, иначе можете увидеть ошибку как на скриншоте ниже. Третий и четвёртый способы - через командную строку Важно – командную строку также необходимо запускать от имени администратора 3 способ -для включения нужно выполнить команду dism.exe /Online /Enable-Feature:Microsoft-Hyper-V /All , а для выключения, соответственно, нужно Enable заменить на Disable. Четвертый способ похож на предыдущий, только команды отличаются: Для включения – bcdedit /set hypervisorlaunchtype auto Для выключения - bcdedit /set hypervisorlaunchtype off Заключение Итак, мы привели в пример несколько возможных способов включения и выключения Hyper-V, для меня самым удобным является первый способ – через Windows Features. На мой личный вкус, возможности Hyper-V богаче, чем у VirtualBox, особенно в плане выделения ресурсов процессора, памяти, QoS и т.д. Однако, VirtualBox выгодно выделяется тем, что не требует включенной функции Intel Virtualization Technology (Intel VT) в BIOS.
img
Насколько часто вы попадаете в замкнутый цикл из ошибок при разработке приложения в PHP? Ошибка исчезает, а потом появляется в другом блоке кода, или баги постоянно сменяют друг друга. Самое неприятное обстоятельство - вернуться к багу, который был исправлен несколько часов назад. Когда отлаживание алгоритма начинает приносить раздражение - о конструктивном подходе к задаче можно забыть. Именно для того, чтобы не дать вам забросить перспективную разработку или просто выполнить поставленную задачу, существует возможность использовать PHPUnit тестирование. Что такое PHPUnit тестирование? С Unit или же "модулем" плотно связано понимание процесса тестирования. Модуль - это работающая часть кода, функционал которой можно протестировать автономно. Соответственно, PHPUnit тестирование представляет собой последовательную проверку всех модулей приложения на корректность выполнения их алгоритмов. Тесты можно прописать один раз и впоследствии использовать после внесения любых изменений. Преимущества модульного тестирования Вот несколько неоспоримых преимуществ Unit-тестирования: Оперативная проверка правок. Довольно удобно проверять работоспособность модуля немедленно после его изменения. Операция займет несколько секунд. Облегченная передача кода другому разработчику. Если вы прекратили разработку продукта и ее продолжит другой специалист, то процесс передачи пройдет намного легче. Безопасное редактирование. Если вы боитесь, что изменения модулей могут повлечь за собой глобальную проблему для системы в целом, то без предложенного Unit-тестирования обойтись будет очень сложно. Использование PHPUnit тестирования Использовать модульное тестирование достаточно просто. Ниже будет описано, как установить и запустить первый тест. Установка Элементарный способ установить библиотеку PHPUnit - выгрузить его по каналу PEAR. Для этого нужно вписать: "1 pear config-set auto_discover 1" "2 pear install pear.phpunit.de/PHPUnit" Для пользователей, которые хотят иметь углубленное понимание по этому процессу подойдет ручной вариант установки через официальный сайт PHPUnit. Запуск Любой тест запускается при помощи вызова команды phpunit. Укажите php-файл как в примере ниже: "1 phpunit /path/to/tests/RemoteConnectTest.php" После этого, запущенный тест вернет результат: "1 PHPUnit 2.5 by Aloizii MagaRich" "2 ." "3 Time: 1 second" "4 Tests: 1, Assertions: 1, Failures 0" Итог представляет из себя краткие статистические данные по работе теста, такие как время операции, количество тестов, утверждений и ошибок. Также во второй строке можно заметить знак ".", сигнализирующий о том, что тест завершился успешно. Это общий итог операции. Ниже представлены другие варианты вывода, если тест: "F" - не выполнен. "I" - невозможно закончить. "S" - пропущен. Стандартные тесты Также приведем список стандартных вариантов тестирования, которые можно использовать в 80% ситуаций. Название каждого теста начинается с упомянутого ранее утверждения или Assert: "True/AssertFalse". Используется для выявления корректности значений на соответствие true/false. "Equals". Проверяет равенство. "GreaterThan". Сопоставляет переменные (присутствует большее количество вариаций этого сравнения). "Contains". Тестирует правильность содержания переменной. "Type". Исследует тип переменной. "Null". Проверяет равенство null. "FileExists". Подтверждает существование файла. "RegExp". Тестирует регулярность выражения. Модульное тестирование: почему нет? Почему все разработчики не используют PHPUnit тестирование? Закономерный вопрос, когда дело касается такого эффективного инструмента. Вот несколько распространенных причин: Тестирование затратно по времени. Написание строк с тестом занимает время, которое можно было уделить построению общей структуры приложения. Однако в конечном счете продукт будет дополняться. Несколько часов добавления теста на раннем этапе сэкономит больше времени на стадии доработки или сопровождения. Использовать модульные тесты - скучно. Конечно, прогонять проверку каждого модуля в большой разработке - это рутина, особенно по сравнению с ее созданием. Но поддержка 100% работоспособности - это элемент такта, который может позволить себе только настоящий профессионал. Уверенность в то, что код будет работать без проверок. Возможно, что автор досконально знает свой код и может оперативно исправить любой баг. Однако если с приложением будет работать другой человек, то не факт, что он сможет вникнуть во все нюансы так же быстро. Как можно заметить, все причины, перечисленные выше, скорее, продиктованы ленью и непониманием предмета, нежели практичностью и здравым смыслом.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59