![image](https://habrastorage.org/getpro/habr/post_images/00f/e26/3ce/00fe263ce07f8608d4cbb23db566e3fb.jpg)
Как и во многих других областях связи, всеми нами любимая компания Cisco стремится закрепить свои лидирующие позиции на рынке VoIP. Именно под эгидой этой технологии прошла последняя выставка Cisco Expo. Cisco всячески поощряет и развивает это направление, а с учетом того, что VoIP специалисты на сегодняшний день – одни из самых дорогих сетевых инженеров, все больше и больше сетевиков обращают свои взоры на эту сферу.
В линейке сертификатов Cisco есть отдельная «концентрация» для VoIP специалистов, состоящая из трех сертификатов: CCNA Voice, CCNP Voice и CCIE Voice. Cisco выпускала и продолжает выпускать огромное количество учебных материалов для подготовки к этим сертификациям, но тут появляется камень преткновения для заинтересованных: где попрактиковаться?
Что же такое IP-телефония? IP-телефония — это технология, которая позволяет использовать любую сеть с пакетной коммутацией на базе протокола IP в качестве средства организации и ведения международных, междугородных и местных телефонных разговоров и передачи факсов в режиме реального времени. Иными словами, используя легкодоступные каналы Интернет, можно осуществлять звонки в любую точку мира, где имеется телефон или существует доступ в Интернет.
Прекрасно, если вы имеете практический опыт работы с VoIP и доступ к VoIP оборудованию Cisco. Но если и нет – это вовсе не беда. Для тех, кто хочет учиться, но не готов на сегодняшний момент потратить $1000 на оборудование, хочу рассказать, как сделать домашнюю Cisco VoIP лабораторию на основе всеми нами любимого эмулятора GNS3 и софтфонов Cisco IP Communicator (CIPC). Первая тулза бесплатная, ее можно скачать с официального сайта. IOSы для девайсов и CIPC с легкостью можно найти на торрентах.
Основа VoIP сети от Cisco – система Cisco Communication Manager. В своем «большом» варианте она запускается на отдельном сервере, а также существует ее версия для «малого и среднего бизнеса», как это определяет Cisco, которая встроена в IOS для Integrated Services Routers (ISR) и называется Cisco Communication Manager Express. Именно ее, в силу ее простоты, мы и будем эмулировать.
Наша цель – «склеить» нашу виртуальную сеть, в которой будет работать маршрутизатор Cisco с запущенным на нем Communication Manager Express, и реальную сеть.
1. Для начала создадим loopback интерфейс в Windows, на котором мы собираемся эмулировать маршрутизатор (для иллюстрации будем настраивать систему на Windows 7 Ultimate). Для этого идем в диалог установки нового оборудования, там выбираем установку сетевого адаптера производителя Microsoft под названием «Адаптер Microsoft замыкания на себя».
![image](https://habrastorage.org/getpro/habr/post_images/565/e87/67e/565e8767ec0c1610e93b0660a4cd73ad.jpg)
Созданный адаптер будет выступать «выходом» из виртуальной сети в сеть реальную.
2. Уже на этом этапе мы можем взаимодействовать с виртуальной сетью, но – только с одного компьютера. А наша цель – открыть доступ в нее со всех машин реальной сети.
Для этого идем в «Изменение параметров адаптеров», выделяем оба адаптера – реальный, при помощи которого мы выходим в реальную сеть, и виртуальный loopback, который мы создали только что – и нажимаем «Создать мост». В результате получаем соединение типа «мост», которое позволяет обменивать трафиком нашему виртуальному интерфейсу и реальному.
![image](https://habrastorage.org/getpro/habr/post_images/815/7e1/798/8157e17980f035f3a5767992250a35ee.jpg)
При создании моста система сама назначает ему IP адрес, и его нам надо знать. В этом нам поможет команда ipconfig. С ее помощью в моем случае я легко узнал, что Windows присвоил моему мосту адрес 192.168.1.100.
![image](https://habrastorage.org/getpro/habr/post_images/228/9fe/884/2289fe884371ca90b57e69b300aaa560.jpg)
3. Теперь начнем самое интересное: создание маршрутизатора в GNS3 и настройка Cisco Communication Manager Express (CME).
Для своего эксперимента я выбрал платформу 7200 и IOS c7200-adventerprisek9_sna-mz.150-1.M. С одной стороны, он включает в себя достаточно функциональный для меня CME, а с другой, это дефолтный IOS для этой платформы на моем эмуляторе. Но ничего не мешает вам выбрать, например, платформу 3600 и какой-то другой IOS – все дело только в ваших целях и ваших вкусах.
Создадим в эмуляторе маршрутизатор и Cloud. В Cloud необходимо указать в качестве NIO Ethernet наш loopback адаптер. Выглядеть это все должно приблизительно вот так:
![image](https://habrastorage.org/getpro/habr/post_images/f7e/8b8/188/f7e8b8188cf7495babc044f8aedc9108.jpg)
На этом настройка облака закончена.
В маршрутизатор для начала предстоит вставить карточку с одним или несколькими Ethernet портами, на ваш выбор. После чего мы сможем соединить порт этого маршрутизатора с портом Cloud – после наших манипуляция у объекта Cloud появился виртуальный порт, который соответствует нашему loopback интерфейсу.
Все, запускаем Циско.
![image](https://habrastorage.org/getpro/habr/post_images/923/89e/210/92389e2100327ba1a7f57d464a083ebf.jpg)
Не буду углубляться в теорию – оставлю ее изучение вам на самостоятельную работу, тем более, что ее очень много, и она, как это всегда бывает у Циско, чертовски интересная. В области VoIP, как и во многих других, Циско разработано и используется множество проприетарных стандартов. Не исключено, что они – завтрашние стандарты всей отрасли, ведь огромное количество широко используемых нынче технологий и стандартов, начиная с Power over Ethernet и заканчивая MPLS, были изначально разработаны именно Cisco Systems как проприетарные стандарты.
Но я отвлекся, вернемся к нашему маршрутизатору. Для начала нам нужно настроить его интерфейс, чтобы он мог общаться с сетью, а сеть – с ним. Интерфейсу нужно присвоить IP адрес, который входит в нашу сеть, но не используется другими устройствами, включая свежесозданный мост. В моем случае я остановился на адресе 192.168.1.50. Идем в режим конфигурации и вводим:
interface FastEthernet0/0
ip address 192.168.1.50 255.255.255.0
no shutdown
Теперь, внимание! Нам нужно проверить, все ли мы правильно сделали. Если сети рабочие, с виртуального маршрутизатора мы должны иметь возможность пинговать реальные машины в нашей сети, и наоборот.
![image](https://habrastorage.org/getpro/habr/post_images/a4c/197/432/a4c1974324a2c904c196c533a1f1510e.jpg)
Работает? Прекрасно! Снова идем к маршрутизатору.
Основные настройки CME спрятаны в роутере под командой telephony-service. Нам нужно будет произвести следующие манипуляции с ним:
telephony-service
max-ephones 10
max-dn 10
ip source-address 192.168.1.50 port 2000
auto assign 1 to 10
Команда max-ephones устанавливает максимальное количество IP телефонов, которые будет обслуживать данный маршрутизатор, а max-dn, соответственно, максимальное количество линий. Тут мы можем указать любое число вплоть до максимального, но стоит учитывать, что в зависимости от этих команд маршрутизатор выделяет под VoIP часть своих ресурсов, и лучше, чтобы эти значения были близки к реальным.
Каманда ip source-address указывает, с какого интерфейса CME должен принимать запросы на подключение к нему телефонов.
Командой auto assign 1 to 10 мы говорим роутеру, что хотим, чтобы он автоматически назначал подключенным телефонам линии с номерами от 1 до 10.
Теперь настроим линии (помним, что вся конфигурация маршрутизатора делается в конфигурационном режиме):
ephone-dn 1
number 101
ephone-dn 2
number 102
Командой ephone-dn мы создаем линию, а number присваивает этой линии телефонный номер. Ввод этих команд должен выглядеть где-то вот так:
![image](https://habrastorage.org/getpro/habr/post_images/dc2/4a2/75d/dc24a275d6f3834f7591c23b6228d5a3.jpg)
Системные сообщения, всплывающие в командной строке, помогут нам понять, что линии активированы и включены.
4. Следующий этап – установка и настройка Cisco IP Communicator. Проблем с установкой у вас возникнуть не должно, и после загрузки Java вы увидите на экране вот такой телефончик:
![image](https://habrastorage.org/getpro/habr/post_images/0fa/34f/cd2/0fa34fcd240f80eaf6dded34a2892353.jpg)
Кликнув по картинке правой кнопкой, выбираем Preferences. Там в настройках Network там нужно указать адаптер, через который наш компьютер выходит в сеть, и TFTP сервер. В качестве TFTP сервера нужно указать адрес нашего виртуального маршрутизатора. То есть, в нашем случае, 192.168.1.50.
После этого ваш телефончик перезагрузится, найдет CME, авторизируется там и будет выглядеть так:
![image](https://habrastorage.org/getpro/habr/post_images/19a/572/8c5/19a5728c5eb3b17a2864980bdbb11d56.jpg)
Произведя те же манипуляции на втором компьютере в вашей сети, вы получите второй телефон с соответствующим номером, и так далее.
Таким образом, наращивая виртуальную сеть, и поднимая все новые и новые софтфоны на компьютерах, мы можем создать достаточно сложную и нетривиальную инфраструктуру и натаскаться на ней достаточно, чтобы заслужить право называть себя сертифицированным специалистом Cisco по VoIP.
Существует мнение, что эмулятор Циски – первый шаг к резиновой женщине. Существовать оно, безусловно, имеет право. Однако никто не рождается CCIE, все проходят каждый из этапов до вершин самостоятельно, и GNS3 может сослужить хорошую службу тем, кто захочет разобраться в премудростях цисковского VoIP.
А там – кто знает, может, вам понравится настолько, что вы решите купить себе реальную лабораторию на eBay.
Удачи и – до встречи на экзаменах Cisco!