пїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅ 5 пїЅпїЅпїЅпїЅпїЅ
Слишком длинный поисковый запрос.
По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие
наши статьи:
В этой статье мы разберем принцип работы и настройку IP-телефонии по Ethernet сетям.
В мире IP-телефонии телефоны используют стандартные порты Ethernet для подключения к сети, и поэтому для отправки и приема голосового трафика, передаваемого посредством IP-пакетов, они используют стек протоколов TCP/IP. Чтобы это работало, необходимо, чтобы порт коммутатора работал как порт доступа, но, в то же время, этот порт работал как магистраль для передачи другого трафика.
Принцип работы VLAN для передачи данных и голоса
До IP-телефонии компьютер и телефон располагались на одном рабочем месте. Телефон подключался по специальному телефонному кабелю (телефонный UTP-кабель). Причем этот телефон был подключен к специальному голосовому устройству (часто называемому voice switch или частной телефонной станцией private branch exchange [PBX]). ПК, конечно же, подключался с помощью Ethernet кабеля (UTP витой пары) к обычному коммутатору локальной сети, который находился в коммутационном шкафу - иногда в том же коммутационном шкафу, что и голосовой коммутатор (voice switch). На рисунке показана эта идея.
Предположим, что у нас есть три виртуальные сети VLAN1, VLAN2 и VLAN3. Виртуальные сети VLAN 1 и VLAN 3 содержат по две пары ПК, которые подключаются к коммутатору через отдельные интерфейсы. Для сети VLAN 1 отведены четыре интерфейса "fa0/12", "fa0/11", "fa0/22", и "fa0/21" соответственно. Аналогично, 4 интерфейса отведены для сети VLAN 3 - "fa0/15", "fa0/16", "fa0/23", и "fa0/24" соответственно. Сеть VLAN 2 состоит из двух ПК, которые подключаются к коммутатору через интерфейсы "Fa0/13" и " Fa0/14". Два коммутатора соединены между собой через магистраль, и интерфейсы "Gi0/1" и "Gi0/2".
Термин IP-телефония относится к отрасли сети, в которой телефоны используют IP-пакеты для передачи и приема голоса, представленного битами в части данных IP-пакета. Телефоны подключаются к сети, как и большинство других устройств конечных пользователей, используя либо кабель Ethernet, либо Wi-Fi. Новые IP-телефоны не подключаются непосредственно по кабелю к голосовому коммутатору, а подключаются к стандартной IP-сети с помощью кабеля Ethernet и порта Ethernet, встроенного в телефон. После чего телефоны связываются по IP-сети с программным обеспечением, которое заменило операции вызова и другие функции АТС.
Переход от использования стационарных телефонов, которые работали (некоторые работают по сей день) с использованием телефонных кабелей к новым IP-телефонам (которые нуждались в UTP-кабелях, поддерживающих Ethernet) вызвал некоторые проблемы в офисах.
В частности:
Старые, не IP-телефоны, использовали категорию UTP-кабелей, у которых частотный диапазон не поддерживал скорость передачи данных в 100-Mbps или 1000-Mbps.
В большинстве офисов был один кабель UTP, идущий от коммутационного шкафа к каждому столу. Теперь же на два устройства (ПК и IP-телефон) требовалось два кабеля от рабочего стола к коммутационному шкафу.
Прокладка нового кабеля к каждому рабочему месту вызовет дополнительные финансовые затраты, и плюс потребуется больше портов коммутатора.
Чтобы решить эту проблему, компания Cisco встроила небольшие трехпортовые коммутаторы в каждый телефон.
IP-телефоны включают в себя небольшой коммутатор локальной сети, расположенный в нижней части телефона. На рисунке показаны основные кабели, причем кабель коммутационного шкафа подключается напрямую к одному физическому порту встроенного коммутатора телефона, ПК подключается патч-кордом к другому физическому порту телефона, а внутренний процессор телефона подсоединяется к внутреннему порту коммутатора телефона.
Компании, использующие IP-телефонию, теперь могут подключать два устройства к одному порту доступа. Кроме того, лучшие практики Cisco, для проектирования IP-телефонии, советуют поместить телефоны в один VLAN, а ПК в другой VLAN. Чтобы это работало, порт коммутатора действует частично в режиме канала доступа (для трафика ПК) и частично как магистраль (для трафика телефона).
Особенности настройки VLAN’ов на этом порту:
VLAN передачи данных: та же идея настройки, что и VLAN доступа на access порту, но определенная как VLAN на этом канале для пересылки трафика для устройства, подключенного к телефону на рабочем месте (обычно ПК пользователя).
Voice VLAN: VLAN для пересылки трафика телефона. Трафик в этой VLAN обычно помечается заголовком 802.1 Q.
На рисунке изображена типичная конструкция локальной сети. Имеется коммутатор, подключенный к двум последовательным уровням сетей, VLAN 11 и VLAN 10, где сеть VLAN 11- Voice VLAN, содержащая 4 IP-телефона, и сеть VLAN 10 - Data VLAN, состоящая из 4 ПК.
Настройка и проверка работы Data и Voice VLAN
Для настройки порта коммутатора, который сможет пропускать голосовой трафик и информационные данные, необходимо применить всего несколько простых команд. Однако разобраться в командах, позволяющих просмотреть настройки режима работы порта, непросто, так как порт действует как access порт во многих отношениях.
Ниже показан пример настройки. В данном примере используются четыре порта коммутатора F0/1F0/4, которые имеют базовые настройки по умолчанию. Затем добавляются соответствующие VLAN’ы: VLAN 10 Data Vlan, VLAN 11- Voice Vlan. Далее все четыре порта настраиваются как порты доступа и определяется VLAN доступа (Vlan 10 Date Vlan). В конце настройки определяем на порт VLAN для передачи голосовых данных (Vlan 11- Voice Vlan). Данный пример иллюстрирует работу сети, изображенную на рисунке:
При проверке состояния порта коммутатора, из примера выше, увидим разницу в отображаемой информации выходных данных, по сравнению с настройками по умолчанию порта доступа и магистрального порта. Например, команда show interfaces switchport показывает подробные сведения о работе интерфейса, включая сведения о портах доступа. В примере 2 отображены эти детали (подчеркнуты) для порта F0/4 после добавления настроек из первого примера.
Первые три выделенные строки в выходных данных отображают детали настройки, соответствующие любому порту доступа. Команда switchport mode access переводит порт в режим порта доступа. Далее, как показано в третьей выделенной строке, команда switchport access vlan 10 определила режим доступа VLAN.
Четвертая выделенная строка показывает новый фрагмент информации: идентификатор Voice VLAN, активированная командой switchport voice vlan 11. Эта небольшая строка является единственной информацией об изменении состояния порта.
Подмодули Git – это способ добавления одного репозитория Git в качестве подкаталога другого репозитория. Такая вложенная структура исходного кода может оказаться довольно полезной в проектах, где нужен более точный контроль над зависимостями и процессом сборки. Кроме того, эта структура довольно проста с точки зрения создания.
Для чего нужны подмодули?
Когда вы добавляете подмодуль в репозиторий Git, вы фактически создаете связь между двумя репозиториями. Основной репозиторий и репозиторий подмодуля могут обновляться независимо друг от друга. Родительский репозиторий будет содержать удаленный URL, а также ссылку на полученный ID коммита в истории подмодуля. Кроме того, при клонировании родительского модуля, подмодули также будут клонироваться.
Это может оказаться довольно полезным, особенно если у вас есть проект, который зависит от кода другого проекта, и вы хотите, чтобы эти проекты (и их истории версий) хранились отдельно, но при этом вы могли бы легко работать с ними обоими.
Основной аналог подмодулей – это менеджеры пакетов, например, NPM, NuGet или Maven. Менеджеры пакетов предоставляют централизованный репозиторий, в котором хранятся пакеты и библиотеки, которые вы можете легко установить и обновить. Но при этом вы обязаны огласить конкретную версию каждого пакета, который намерены использовать. А если ваш код не является общедоступным, то вы должны использовать свой собственный частный реестр пакетов.
Подмодули Git, в отличие от большинства менеджеров пакетов, позволят вам более тщательно управлять зависимостями. С помощью подмодулей вы можете однозначно выбрать, какие версии зависимостей вы хотите добавить в свой проект. Кроме того, куда как проще обновить ID коммита, чем публиковать новый пакет.
Помимо всего прочего, подмодули упрощают сопровождение и использование ответвлений общих библиотек, и это то, что выбирают многие компании, когда им нужен дополнительный функционал и настройка. В конце концов, если вы сопровождаете репозиторий для модуля и вам необходим очень точный контроль над вашими зависимостями, то вы вполне можете рассмотреть подмодули в качестве альтернативы менеджерам пакетов.
Как пользоваться подмодулями Git?
Если вы клонируете репозиторий, который использует подмодули, то считайте, что большую часть работы за вас уже сделали. Ваш клиент Git должен также автоматически клонировать репозиторий подмодуля, а также обновлять его каждый раз, когда другие специалисты по сопровождению вносят изменения в подмодуль.
Если же это не так, то вам нужно запустить команду
git clone
с флагом
--recursive
который просканирует и обновит все подмодули.
Процесс добавления нового подмодуля довольно простой. Если вы пытаетесь добавить новый подмодуль из репозитория исходного кода, то вам нужно просто запустить команду
git submodule add
:
git submodule add URL submodule_directory
Эта команда загрузит репозиторий подмодуля, находящийся по указанному URL-адресу, и клонирует его в папку
submodule_directory
.
Но если вы хотите преобразовать уже существующую папку, то процесс будет немного сложнее. Процесс клонирования включает в себя повторное клонирование вашего основного репозитория, фильтрацию истории коммитов для того, чтобы добавить только каталог модуля, и отправку подмодуля в новый репозиторий.
После того, как вы добавите подмодуль, вам нужно будет зафиксировать изменения в родительском репозитории. Таким образом, вы обновите конфигурацию для всех тех, кто будет извлекать этот родительский репозиорий.
git commit -m "Added submodule submodule_directory"
Обновление подмодулей Git
Если кто-то другой обновил подмодуль или вам необходимо получить обновления из репозитория подмодуля, то вам нужна команда
git submodule update
:
git submodule update --remote
Но если вам самим нужно внести изменения, здесь все гораздо сложнее. Внесение изменений в код в подмодулях Git требует гораздо большей осторожности, нежели обновление кода в обычном репозитории Git. В целом, у вас есть два варианта:
Вы можете внести изменения в отдельный репозиторий для подмодуля и в обычном порядке зафиксировать и обновить их. А для того, чтобы получить новые изменения, вам нужно будет запустить команду
git submodule update
в родительском репозитории.
Вы можете внести изменения в родительский репозиторий. А так как подмодуль – это, по сути, встроенный репозиторий Git, то вы можете перейти в каталог подмодуля с помощью команды
cd
и запускать команды Git в обычном порядке. Это одно из основных преимуществ подмодулей – у вас есть возможность сопровождать отдельные репозитории, работая и там, и там.
Если вы вносите изменения внутри родительского репозитория, то вы должны перейти в подмодуль с помощью команды
cd
и обновить его:
cd submodule_dirgit commit -am "submodule commit"git push
После чего вы должны вернуться в родительский репозиторий и отправить в него обновления подмодуля:
cd ..git commit -am "updated submodule"git push
Теперь вы должны видеть изменения как в репозитории подмодуля, так и в родительском репозитории.
1. Краткий обзор
Говоря простым языком, Maven – это инструмент командной строки, предназначенный для создания и управления любыми Java-проектами.
Для нашего удобства Maven Project предоставляет обычный zip-файл, в котором содержится предварительно скомпилированная версия Maven. Установщика у него нет. Так что настройка необходимых предварительных условий и среды для запуска Maven остается за вами.
Установка Apache Maven – это довольно простой процесс. Вам нужно просто распаковать архив и настроить Maven так, чтобы исполняемый файл
mvn
был расположен по пути к классу ОС.
1.1. Предварительные условия
Maven написан на Java. Так что, для того, чтобы запустить Maven, нам потребуется система, в которой установлен и правильно настроен Java. Например, мы можем загрузить с сайта загрузки Oracle совместимую с ОС Java JDK. Рекомендуется устанавливать его по пути, где нет пробелов.
После того, как Java будет установлен, нам нужно убедиться, что команды из Java JDK находятся в переменной среды
PATH
.
Для этого нам нужно запустить следующую команду. Таким образом, мы получим информацию о текущей установленной версии.
java -version
2. Установка Maven в Windows
Для того, чтобы установить Maven в Windows, мы должны перейти на сайт Apache Maven и, выбрав zip-файл Maven, например,
apache-maven-3.8.4-bin.zip
, загрузить последнюю версию.
После чего мы должны разархивировать его в папку, где мы хотим, чтобы хранился Maven.
2.1. Добавление Maven в путь к среде
Используя свойства системы, мы добавляем переменные
M2_HOME
и
MAVEN_HOME
в среду Windows, а затем указываем на нашу папку Maven.
Далее, добавляя папку
bin
(%M2_HOME%\bin
), мы обновляет переменную
PATH
. Это необходимо для того, чтобы мы могли запускать команду Maven откуда угодно.
Чтобы проверить это, запускаем следующую команду:
mvn -version
Эта команда должна вывести версию Maven, версию Java и информацию об операционной системе. Вот и все, мы настроили Maven в нашей системе Windows.
3. Установка Maven в Linux
Для того, чтобы установить Maven в ОС Linux, мы должны скачать последнюю версию с сайта Apache Maven и выбрать двоичный файл
Maven
tar.gz
, например,
apache-maven-3.8.4-bin.tar.gz
.
Многие дистрибутивы Linux, в частности Redhat и Ubuntu, используют в качестве оболочки по умолчанию BASH. Так что дальше мы будем использовать команды bash.
Для начала давайте создадим место, где будет храниться Maven:
$ mkdir -p /usr/local/apache-maven/apache-maven-3.8.4
Затем, мы извлекаем туда содержимое архива:
$ tar -xvf apache-maven-3.8.4-bin.tar.gz -C /usr/local/apache-maven/apache-maven-3.8.4
3.1. Добавление Maven в путь в среде
Мы открываем командную строку/терминал и редактируем файл
.bashrc
с помощью следующей команды:
$ nano ~/.bashrc
Затем добавим в файл специальные строки для Maven:
export M2_HOME=/usr/local/apache-maven/apache-maven-3.8.4
export M2=$M2_HOME/bin
export MAVEN_OPTS=-Xms256m -Xmx512m
export PATH=$M2:$PATH
После того, как мы сохраним файл, мы можем перезагрузить конфигурацию среды без перезапуска:
$ source ~/.bashrc
И наконец, мы можем проверить, действительно ли мы добавили Maven:
$ mvn -version
Вывод должен быть примерно такой:
Apache Maven 3.8.4 (81a9f75f19aa7275152c262bcea1a77223b93445; 2021-01-07T15:30:30+01:29)
Maven home: /usr/local/apache-maven/apache-maven-3.8.4
Java version: 1.8.0_75, vendor: Oracle Corporation
Java home: /usr/local/java-current/jdk1.8.0_75/jre
Итак, мы успешно установили Maven в вашей системе Linux.
3.2. Установка Maven в Ubuntu
В терминале мы запускаем команду
apt-cache search maven
. Это нужно для того, чтобы получить список всех доступных пакетов Maven:
$ apt-cache search maven
....
libxmlbeans-maven-plugin-java-doc - Documentation for Maven XMLBeans Plugin
maven - Java software project management and comprehension tool
maven-debian-helper - Helper tools for building Debian packages with Maven
maven2 - Java software project management and comprehension tool
Пакет Maven всегда поставляется с последней версией Apache Maven.
И теперь, чтобы установить последнюю версию Maven, мы запускаем команду
sudo apt-get install maven
:
$ sudo apt-get install maven
Для загрузки потребуется несколько минут. Как только загрузка завершится, мы сможем запустить команду
mvn -version
и проверить, успешно ли была выполнена установка.
4. Установка Maven в Mac OS X
Для того, чтобы установить Maven в операционной системе Mac OS X, мы должны скачать последнюю версию с сайта Apache Maven и выбрать бинарный файл Maven
tar.gz
, например,
apache-maven-3.8.4-bin.tar.gz
.
Затем мы должны извлечь содержимое архива в необходимую папку.
4.1. Добавление Maven в путь к среде
Для начала откроем терминал и перейдем в каталог, куда были извлечены файлы, а затем войдем в систему как привилегированный пользователь.
Далее нам нужно удалить архив
tar.gz
:
rm Downloads/apache-maven*bin.tar.gz
После чего мы должны изменить права доступа и выбрать содержимое Maven:
chown -R root:wheel Downloads/apache-maven*
mv Downloads/apache-maven* /opt/apache-maven
Дальше давайте заархивируем сеанс администратора и добавим в путь двоичные файлы Maven:
exit
nano $HOME/.profile
export PATH=$PATH:/opt/apache-maven/bin
И наконец, мы нажимаем
Ctrl+x
для сохранения и выхода из
nano
.
Чтобы загрузить новую настройку, давайте запустим следующую команду:
bash
А теперь мы можем проверить, успешно ли был установлен Maven с помощью следующей команды:
mvn -version
Вот и все, Maven готов к использованию в Mac OS X.
4.2. Добавление Maven в путь к среде для macOS Catalina и выше
macOS отказалась от Bourne-Again Shell (
bash
) – интерпретатора команд для большинства дистрибутивов GNU/Linux, в пользу оболочки Z (
zsh
). Эту оболочку можно рассматривать как расширенную версию оболочки bash.
Zsh выделяется за счет своего продвинутого механизма выполнения команд, исправления опечаток и системы модулей, добавляющей функции.
Если мы говорим о macOS Catalina или более поздней версии, где оболочка по умолчанию – это zsh, то здесь мы должны добавлять все в другой файл:
nano ~/.zshenv
export PATH=$PATH:/opt/apache-maven/bin
Для того, чтобы перезагрузить среду, мы должны выполнить следующую команду:
source ~/.zshenv
Остальные действия аналогичны.
4.3. Совместимость с HighSierra
Если речь идет о HighSierra, то нам нужно добавить в путь двоичные файлы Maven, а также:
nano $HOME/.bashrc
export PATH=$PATH:/opt/apache-maven/bin
Чтобы сохранить файл и выйти из
nano
, нажмем
Ctrl+x
. После чего мы запускаем
bash
, чтобы загрузить новую настройку.
5. Заключение
В этой статье мы рассмотрели, как установить Maven для разработки в основных операционных системах.
