четверг, 5 февраля 2009 г.

Не грузится Linux. Совсем.

Довелось мне однажды ставить Linux на относительно новое железо. Так как заказчику нужен был упор на стабильность и безопасность, и чтобы всё новое и свежее, я выбрал свой любимый на тот момент дистрибутив Gentoo. Плюсы очевидны только для меня как для установщика.
Ну.. в качестве показателя шустрости железа я приведу такой довод. Ядро (2.6.27) с нуля, сконфигуреное практически по дефолту (отключено только действительно ненужное, типа Wi-Fi..), собралось за 5 минут real. В общем это двуглавый Intel, 2G оперативы (под офисный сервак то!) и SATA-диск на интеловой матери. Стоит обратить внимание на последнее.
Итак, собрав прокси с ограничителями на пользователей, файл-сервер, DNS, апач, почтовик и симпотишную обёртку в виде фреймбуфера на основе fbcondecor (красоты ради) внутри VirtualBox, я таки заделал эдакую Stage4 для заказчика. И не с голыми руками, а с флешкой со всем добром отправился к админу заказчика претворять заказ в жизнь. Винт будущий подцепили к его компу, переразбивка, распаковка стадии.. всё по хэндбуку, который уже в памяти.. Загрузка была успешной; до такой степени, что пестрота разноцветной будущей серверной консоли повергла админа в восторг.

fdisk показывал примерно следующее:
office-server / # fdisk -l

Диск /dev/sda: 8589 МБ, 8589934592 байт
255 heads, 63 sectors/track, 1044 cylinders
Units = цилиндры of 16065 * 512 = 8225280 bytes
Disk identifier: 0xd8bdc080

Устр-во Загр Начало Конец Блоки Id Система
/dev/sda1 1 13 104391 83 Linux
/dev/sda2 14 75 498015 83 Linux
/dev/sda3 76 1044 7783492+ 83 Linux

И вот тут начинается интересное.. прибывает наконец остальное серверное железо, подставляется этот уже готовый винт.. и.. опа! Интеловая мать говорит, что загрузочных дисков не видит. Вообще.
Windows тут же загружается без проблем..
С десяток раз перепроверил grub.conf. Для полноты картины использовал даже menu.lst. Было решено отдать в жертву стопроцентно рабочий с этой мамкой винт (см. выше про Windows). Винт был переразбит, стадия распакована, загрузчик установлен.. и опять прежнее сообщение биоса об отсутствии загрузочных дисков. Тут я понял, зреть нужно в корень и не грешить на мать.

Сам fdisk мне подсказал:
office-server / # fdisk /dev/sda

Количество цилиндров для этого диска установлено в 1044.
...

Команда (m для справки): m
Действие команды
a переключение флага загрузки
b редактирование метки диска bsd
Собственно тут я вспомнил про активность разделов WIN95 (помните же когда Windows старенькие не грузились без этой опции). Раздел /boot был помечен как загрузочный:
Команда (m для справки): a
Номер раздела (1-4): 1

Команда (m для справки): p

Диск /dev/sda: 8589 МБ, 8589934592 байт
255 heads, 63 sectors/track, 1044 cylinders
Units = цилиндры of 16065 * 512 = 8225280 bytes
Disk identifier: 0xd8bdc080

Устр-во Загр Начало Конец Блоки Id Система
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 75 498015 83 Linux
/dev/sda3 76 1044 7783492+ 83 Linux

Команда (m для справки): w
Таблица разделов была изменена!

Вызывается ioctl() для перечитывания таблицы разделов.

Синхронизируются диски.
office-server / # reboot
И вуаля! Биос тутже сдался грабу.
Мораль сей сказки такова. Новое всё-таки есть хорошо забытое, запатченое, переработанное и заапдейченое старое. Так что если таковые грабли у вас заведутся - LiveCD вам с помощь!

воскресенье, 25 января 2009 г.

PPPoE клиент на dot1q саб-интерфейсе cisco

Прежде всего я бы рекомендовал начать чтение с этой статьи, которая собственно ответит уже на многие вопросы. Здесь же мы будем немного расширять наш кругозор в построении сетей побольше. Например, когда у нас несколько провайдеров, к которым подключение производится через PPPoE. Допустим, у нас Cisco 871 (или аналогичная). Fa4 здесь можно поделить на сабинтерфейсы и таким образом разделить трафик на несколько провайдеров. Необходимым условием в данном случае будет наличие управляемого коммутатора, способного разделить dot1q-трафик по провайдерам.
И вот тут подключение к одному (и тем более нескольким) из них может происходить по PPPoE, что сразу же создать проблему. На сабинтерфейсе нельзя поднять клиента PPPoE.
Это ограничение, наложенное самой Cisco. Подробнее - на сайте Cisco: PPPoE Over IEEE 802.1Q VLANs -> Restrictions.
Однако у меня получилось сделать оную фичу на VLAN-интерфейсе.
Например, ту же 871-ю циску можно развернуть наоборот: Fa4 будет работать как LAN, Fa0-3 - Как WAN ;-)
И можно сделать нечто, вроде:

!
interface Vlan102
no ip address
pppoe enable
pppoe-client dial-pool-number 1
!
типа того..
Для этого потребуется, признаюсь конечно, не физический FastEthernet, а логический VLAN интерфейс, что возможно только на цисках со встроенным свичом (или соответствующим *ESW-модулем).
И ещё стоит обратить внимание, что не все модели позволят создать интерфейс interface VLAN 2:
850-я серия и ранее - не позволяют;
870-я серия - требует наличия IOS с набором возможностей Plus и выше (Plus Feature Set: Advanced IP Services/Advanced Enterprise Services).
(почему?)
Новые (2009):
860-я серия - максимум 2 VLAN;
880-я серия - максимум 2 VLAN или 4 при наличия лицензии Advanced IP Services (о этих новых моделях я расскажу в следующий раз).

Удачи!

четверг, 11 декабря 2008 г.

PPPoE сервер на cisco

Как сделать из циски клиента PPPoE я вкратце рассказывал в этом сообщении. Сегодня у нас задача создать PPPoE-концентратор на cisco, который будет терминировать сессии. Делать это будем через механизм bba-group по-новому, а не по-старому с использованием vpdn-group.
Разница состоит в том, что при новом механизме у нас есть возможность использовать несколько профилей PPPoE. Обычно хватает одного, но всё-же vpdn-group уже считается legacy. И в моем примере рассматривается простой случай. Поэтому профиль будет один для роутера (default).
Итак, пусть у нас есть некий роутер с, например, двумя интерфейсами:
FastEthernet0/0
ip address 72.14.205.100 255.255.255.252
!
FastEthernet0/1
ip address 10.10.10.1 255.255.255.0
!
Из них fa0/0 смотрит в одну сеть (например, внешнюю), а fa0/1 - в другую (внутреннюю). Мы хотим пускать клиентов, присоединившихся по PPPoE в первую сеть через NAT. Пусть у них будет сеть 10.10.100.0/24. Раздавать будем через механизм DHCP:
ip dhcp pool PPPoEpool
network 10.10.100.0 255.255.255.0
domain-name google.com
dns-server 216.239.32.10 216.239.34.10
default-router 10.10.100.1
!
Создаём для клиентов вот такой виртуальный интерфейс:
interface Virtual-Template1
ip address 10.10.100.1 255.255.255.0
ip nat inside
ip virtual-reassembly
peer default ip address dhcp-pool PPPoEpool
ppp authentication chap ms-chap # чтобы работало также с клиентами MS Windows
!

Включаем поддержку PPPoE на роутере (тут как раз пресловутое bba-group):
bba-group pppoe global
virtual-template 1 # (см.выше)
sessions max limit 100 # у меня в примере клиентов не больше сотни
sessions per-mac limit 1 # на всякий случай ;-)
sessions auto cleanup
!

Не забываем включить концентратор PPPoE на интерфейсе:
FastEthernet0/1
ip address 10.10.10.1 255.255.255.0
pppoe enable group global
!

А теперь лирическое отступление. Посмотрим, как аутентифицироваться и учитывать подключившихся. Вот пара вариантов для размышлений:

1) Локальная аутентификация. То есть пользователи хранятся в конфиге. Тут всё просто:
aaa new-model
!
aaa authentication ppp default local
aaa authorization network default local

...

username pppoeuser privilege 0 password 7 pppoepassword

2) Внешняя аутентификация. В данном случае циска не знает пользователей в логин всегда сверяется с внешним сервером по протоколу TACACS или RADIUS (более распространено). Минусы очевидны: есть необходимость в дополнительной органицации и поддержке RADIUS-сервера, а при его недоступности доступ в сеть будет запрещён. Однако при масштабировании системы, добавлении новых серверов доcтупа или резервных серверов RADIUS..
Как поднять и настроить сервер с пользователями и паролями поговорим в следующий раз, на циске это делается следующим образом (используется дефолтный профиль):
aaa new-model
!
aaa authentication ppp default group radius
aaa authorization exec default local # чтообы на exec заходили только локальные пользователи
aaa authorization network default group radius
aaa accounting network default start-stop group radius # если предполагается учет трафика средствами RADIUS
...

ip radius source-interface FastEthernet0/1 # У меня RADIUS-сервер внутри сети
!
radius-server host 10.10.10.2 auth-port 1812 acct-port 1813 key 7 radiussecret

Раздавать определённые IP-адреса клиентам по логину можно также через RADIUS.

Ну вот и всё! Мой пример осталось завершить NAT-ом для клиентов PPPoE:
ip nat inside source list 1 interface FastEthernet0/0 overload
access-list 1 permit 10.10.100.0 0.0.0.255

среда, 19 ноября 2008 г.

Загрузить IOS через tftp из ROMMOM на cisco

Отформатировали флешку командой
format flash:
и перегрузились? Теперь не знаете что делать, видя rommon> ? При этом бэкап иоса лежит на TFTP-сервере? Ничего страшного, сейчас расскажу что необходимо сделать.

Способов несколько, я рассмотрю один из них, при котором мы скачаем образ IOS-а из ROMMON с tftp и положим его на флешку. Потом загрузимся в него.

Самое первое - это подключить циску к сети, если конечно ещё не подключили ;-).
Пусть для примера мы дадим ей IP 10.10.10.1/24, а tftp-сервер у нас будет 10.10.10.10/24.

Зададим IP следующими командами. Внимание, грабли! Все параметры необходимы (даже шлюз по умолчанию, который по логике не нужен)!

rommon 1 > set IP_ADDRESS=10.10.10.1
rommon 1 > set IP_SUBNET_MASK=255.255.255.0
rommon 1 > set DEFAULT_GATEWAY=10.10.10.10
rommon 1 > set TFTP_SERVER=10.10.10.10
rommon 1 > set TFTP_FILE=ios.bin
rommon 1 > sync

Дальше нужно собственно только скачать иос и положить его на флешку:

rommon 1 > tftpdnld

Загрузиться так:

rommon 1 > boot

У меня получилось ;-)

среда, 29 октября 2008 г.

PPPoE клиент на cisco

Рассмотрим как можно использовать cisco в качестве PPPoE клиента. Это бывает необходимо в некоторых случаях, самым распространённым на мой взгляд из которых является подключение к оператору связи по ADSL. Поэтому все это в большей степени относится к cisco 877, cisco 1801 (с ADSL портом) и других моделей с WIC-1ADSL (HWIC-1ADSL или других). Однако для других моделей с Ethernet-портами данное описание тоже подходит.
Первым делом нужно создать виртуальный Dialer-интерфейс, который собственно и будет поднимать PPPoE:
interface Dialer1
ip address negotiated
(ip выдаёт провайдер)
ip mtu 1492
(стандартныое значение MTU для PPPoE)
ip nat outside
(если используем NAT)
ip virtual-reassembly
encapsulation ppp
ip tcp adjust-mss 1432
(очень полезная строка в тех случаях, если пакеты большие 1492 отбразываются, вследствие чего многие популярные сайти типа odnoklassniki.ru или mail.ru не работают через cisco)
dialer pool 1
(этой строкой мы задаём номер pool для использования на физическом интерфейсе)
no cdp enable
ppp chap hostname логин
ppp chap password 7 пароль
(имя пользователя и пароль)

Теперь, чтобы использовать этот Dialer на интерфейсе нужно добавить только:

 pppoe-client dial-pool-number 1

подробнее как поднять ADSL с несколькими pvc на cisco я рассказываю тут..
С Ethernet-интерфейсами поступаем таким же образом:

interface FastEthernet4
no ip address
ip virtual-reassembly
duplex auto
speed auto
no cdp enable
pppoe-client dial-pool-number 1

Отметим кстати, что cisco не поддерживает опцию PPPoE-клиента с сабинтерфейсов Ethetnet, таким образом PPPoE-клиент с dot1q-интерфейсов на cisco поднять неудастся. Однако у меня получилось сделать несколько PPPoE-клиентов в разных dot1q VLAN-ах, используя cisco 870 серии, но об этом я расскажу в следующий раз.

суббота, 18 октября 2008 г.

Dynamips - эмулятор cisco

Dynamips - это программный эмулятор аппаратной части маршрутизаторов сisco. Проект разрабатывался начиная с 2005 года как эмулятор cisco 7200 на обычном компьютере.
Впоследствие появилась поддержка других платформ. Сейчас (2008) список такой: Cisco 3600 series (3620, 3640 и 3660), 3700 series (3725, 3745) и 2600 series (по 2610 по 2650XM, 2691).
Заглянем глубже и попытаемся понять как он работает и что с ним можно делать.


Dynamips хорош в случаях, когда необходимо:
  • быстро проверить конфигурацию маршрутизатора для непосредственного её применения последствие на реальной железке;
  • получить лабораторный стенд малой кровью, однако достаточно мощный для обучения или демонстрации;
  • опробовать преимущества и возможности операционной системы Cisco IOS без необходимости покупки самого маршрутизатора.
Первая мысль которая может прийти в голову на этом месте: а не может ли эмулятор cisco заменить сам маршрутизатор? В какой то степени да, но лишь при очень малой нагрузке. Сам автор проекта указывает что производительность реального маршрутизатора выше приблизительно раз в 100 (производительность Dynamips около 1 килопакета в секунду в то время как даже самая ранняя модель NPE-100 даёт 100 килопакет/сек).
Помимо аппаратного обеспечения маршрутизаторов cisco существует возможность эмулировать сетевые устройства, такие как:
  • мост (используя который можно соединить эмулированный маршрутизатор с реальной сетью или другому виртуальному маршрутизатору);
  • Ethernet-коммутатор;
  • ATM-коммутатор;
  • ATM-мост (Ethernet <-> ATM);
  • коммутатор Frame-Relay.
Замечательной способностью Dynamips-а является то, что он может работать в режиме гипервизора. То есть одновременно есть возможность запускать не одну виртуальную циску, а целую сеть со всеми возможностями dynamips: коммутаторами, маршрутизаторами, мостами.. Таким образом появляется возможность выполнять лабы без реального оборудования. Или же демонстрационные стенды. Причём практически любой сложности. В таком управление гипервизором осуществляется по сети TCP/IP, а сам dynampis запускается примерно таким образом:

dynamips -H 7200

где 7200 - порт для связи с гипервизором.

Следует заметить, что запущенный по умолчанию, эмулятор сильно загружает компьютер. Даже на 100%. Чтобы снизить нагрузку создана опция "Idle PC". С её помощью можно снизить нагрузку на процессор и, таким образом, запустить второй, третий и более эмуляторов cisco одновременно без существенной нагрузки процессора. Значение IdlePC специфично для каждого образа IOS. Необходимое значение выбирается опытным путём. Непосредственно с Dynamips это делается следующим образом: после загрузки маршрутизатора желательно с пустой конфигурацией после приглашения Press RETURN to get started! Нужно секунд через 5 нажать "Ctrl-] + i". Начнёт собираться статистика загруженности процессора. По истечении этого процесса (порядка 10 секунд) будет выведено несколько значений, из которых потенциально лучшие будут помечены. Возможно, придётся попробовать несколько значений прежде чем нагрузка процессора спадёт со 100% до примерно 5% (на разных компьютерах по-разному).

Dynamips представляет из себя один исполняемый файл. Причём есть варианты под Linux, Mac OS и Windows. Но при запуске принимает множество аргументов, для задания особых параметров эмуляции. Подробнее об аргументах можно почитать тут на странице проекта xgu.ru.

Однако частенько требуется быстро развернуть виртуальную сеть, а использовать (изучать, набирать) dynamips со всеми необходимыми аргументами для запуска проблематично, если ещё и учесть необходимость создания конфигурационного файла, описывающего виртуальную сеть. Вот пример такого файла:

IF:E0:udp:10000:127.0.0.1:10001
IF:E1:udp:10002:127.0.0.1:10003
IF:E2:gen_eth:eth0

DOT1Q:E0:1
ACCESS:E1:4
DOT1Q:E2:1

..и это только конфиг, описывающий простой коммутатор. А если есть необходимость эмуляции магистралей Frame Relay или ATM?... В общем можете сами дорисовать картину и попробовать распланировать все свои необходимые действия для эмуляции сети cisco с использованием только голого dynamips.

Так вот для облегчения работы было создано несколько инструментальных средств, облегчающих создание конфигурационных файлов и запуск dynamips с требуемыми параметрами. Они кстати ещё и более дружелюбные в плане интерфейса.

Dynagen (сайт проекта dynagen.org). Использует CLI-like (интерфейс командной строки) для управления dynamips, который запускается в режиме гипервизора. Необходимо всё-таки создать конфигурационный файл типа INI и dynagen через сеть (см. запуск гипервизора) будет управлять dynamips. Это говорит о том, что сам гипервизор может быть запущен за удалённом компьютере. Пример такого конфига:
[localhost]

[[7200]]
image = \Program Files\Dynamips\images\c7200-jk9o3s-mz.124-7a.image
# On Linux / Unix use forward slashes:
#image = /opt/7200-images/c7200-jk9o3s-mz.124-7a.image
npe = npe-400
ram = 160

[[ROUTER R1]]
s1/0 = F1 1

[[ROUTER R2]]
s1/0 = F1 2

[[ROUTER R3]]
s1/0 = F1 3

[[FRSW F1]]
1:102 = 2:201
1:103 = 3:301
2:203 = 3:302

Подсчитать значение Idle PC и уменьшить загрузку процессора в dynamips в можно с помощью команды idlepc. Список команд - ?.
Dynagen и dynamips можно скачать с сайта проекта dynagen.

Dynagui (dynagui.sourceforge.net). Продолжение развития dynagen. Использует библиотеку dyna-gen для взаимодействия с гипервизором dynamips.


Последняя версия вышла в 13.12.07. Многие вещи до сих пор находятся в TODO-листе. Можно поэтому сделать вывод, что проект развивается довольно медленно.

GNS3(gns3.net). Является графическим симулятором сетей cisco. На сегодняшний день на мой взгляд является наиболее удобным инструментом для эмуляции cisco. Работает под Windows, Linux и Mac OS. Её уже включают в репозитарии дистрибутивов Linux. Версия под Windows включает в себя и dinamips, так что дополнительно скачать придётся только образ IOS. Имеет интуитивно понятный интерфейс (к примеру подсчёт значения IdlePC можно запустить, нажав правой кнопкой на виртуальном маршрутизаторе и выбрав соответствующий пункт меню). Подробнее о GNS3 я рассказываю здесь. Скачать gns3 для любой ОС можно непосредственно с сайта.



Xenomips и Xentaur. Эти проекты пошли ещё дальше.
Xenomips
объединяет эмуляцию cisco и виртуализацию Xen. Таким образом, список виртуальных устройств dynamips расширяется возможностями Xen. И на одном физическом компьютере как хост-системе можно создать лабораторный стенд из виртуальных маршрутизаторов cisco, коммутаторов, Ethernet-мостов, магистралей Frame Relay и ATM, межсетевых экранов Cisco PIX (используя параллельный проект Pemu), серверов и рабочих станций Linux, FreeBSD, Windows, MacOS и так далее.
Цель проекта Xentaur — разработка инструментов и методов быстрого построения виртуальных сетей и исследования их работы. Сети могут быть не только чисто виртуальными, но и смешанными: наряду с виртуальными узлами в них могут работать и обычные компьютеры и сетевые устройства.
Подробнее про эти проекты можно почитать на сайте проекта xgu.ru: Xenomips, Xentaur.

Таким образом для эмуляции сетей cisco нам нужно выбрать, для каких целей нам это нужно. Для многих случаев достаточно GNS3. Если необходимо создать крупный проект и рассмотреть (или демонстрировать) взаимосвязи между виртуальными серверами, рабочими станциями и сетевыми устройствами, то стоит обратить внимание на Xenomips.

Удачи в изучении!

P.S. Остаётся порой задаться вот каким вопросом. Все описанные инструментальные средства распространяются по лицензии GPL и/или бесплатны и свободны для загрузки. Однако не сам образ ОС IOS. Так что вопрос, где скачать Cisco IOS остаётся открытым. Это ПО распространяется Сisco на коммерческой основе. Однако если задаться целью, то скачать IOS для учебных целей можно со поискать тут - можно найти легко. ;-)

понедельник, 29 сентября 2008 г.

Подружим Cisco IP Phone и Asterisk

Самый попурярный канал Asterisk, используемый в качестве канала подключения для клиентов это, конечно, SIP. Существует масса недорогих программных и аппаратных SIP-телефонов, легко интегрируемых в Asterisk. Но что делать, если нам в наследство (или в подарок!) достался один из замечательных VoIP-телефонов производства Cisco Systems, который в большинстве своём работают по собственному протоколу SCCP?


У меня так в руках оказался Cisco 7902, но без CallManager-а. Вот и решил проверить работоспособность аппарата с помощью Asterisk.

В Asterisk изначально есть канал skinny, однако рекомендуется всё-таки использовать более совершенный chan-sccp-b. Сообщается, что поддерживаются также устройства:

  • 12 — Cisco IP Phone 12SP+
  • 30 — Cisco IP Phone 30VIP
  • 7902 — Cisco IP Phone 7902G
  • 7905 — Cisco IP Phone 7905G - Fully supported
  • 7910 — Cisco IP Phone 7910
  • 7912 — Cisco IP Phone 7912G
  • 7920 — Cisco IP Wireless Phone 7920 - All basic features
  • 7935 — Cisco IP Conference Station 7935
  • 7936 — Cisco IP Conference Station 7936 - Fully supported
  • 7940 — Cisco IP Phone 7940 - Fully supported
  • 7941 — Cisco IP Phone 7941 - Initial Support
  • 7960 — Cisco IP Phone 7960 - Fully supported
  • 7961 — Cisco IP Phone 7961 - Initial Support / Reported to work
  • 7970 — Cisco IP Phone 7970 - Fully supported
  • 7971 — Cisco IP Phone 7971 - Fully supported
  • 7961GE
  • 7941GE
  • 7911
  • 7980 — Cisco IP Communicator
  • 7985
  • 7914 — Cisco IP Phone 7960 with 1 or 2 7914 addons
  • ata — Cisco ATA
  • KIRK — Kirk is a wireless phone that uses sccp

Его и поставим.
Сходим на страницу проекта, скачаем последнюю версию (в моём случае это chan_sccp_20071213.tar.gz).
# wget "http://downloads.sourceforge.net/chan-sccp-b/chan_sccp_20071213.tar.gz?modtime=1197572506&big_mirror=0"
# tar xf chan_sccp_20071213.tar.gz


Соберём модуль:

# cd chan_sccp_20071213/
# make
sh ./create_config.sh "/usr/include"
Creating config file
====================
Checking Asterisk version...
* found asterisk 1.4
Build PARK functions (y/n)[n]?y
Build PICKUP functions (y/n)[n]?y
Use realtime functionality (y/n)[n]?y
* found 'struct ast_channel_tech'
* found 'ast_bridged_channel'
* found 'struct ast_callerid'

<...>
Now compiling .... sccp_softkeys.c 558 lines
Now compiling .... sccp_socket.c 394 lines
Now compiling .... sccp_indicate.c 329 lines
Linking chan_sccp.so

Последняя строка говорит нам о том, что модуль собрался и готов к использованию. а нам это и надо, устанавливаем его простым копированием (туда, где модули Астериска, у меня в примере - по умолчанию).

cp chan_sccp.so /usr/lib/asterisk/modules/

Установили, теперь нужно убедить Asterisk в использовании его вместо стандартного. Для этого в /etc/asterisk/modules.conf пишем:

noload => chan_skinny.so
load => chan_sccp.so
Теперь необходимо создать конфиг модуля по образу и подобию со страницы описания. Добпвляем телефоны (аппараты - по MAC-адресу) и линии (номера - по екстеншену). В extensions.conf корректируем диалплан чтобы приходили входящие вызовы.

Ну и осталось дело за малым. Но немаловажным! TFTP-сервер.
У меня дистрибутив Gentoo, поэтому установка свелась к следующему:
# emerge net-ftp/tftp-hpa
# mkdir /tftproot
# /etc/init.d/in.tftpd start
# rc-update add in.tftpd default

В /tftproot должен находиться хотя бы XmlDefault.cnf.xml содержанием:

<callManager>
<ports>
<ethernetPhonePort>2000</ethernetPhonePort>
</ports>
<processNodeName>IP Астериска</processNodeName>
</callManager>
</member>
</members>
</callManagerGroup>
</Default>

Также для каждого аппарата можно положить свой конфиг с именем типа SEP.cnf.xml. Необходимость - только если особое время/язык прошивки. Пример тут.

MAC-адрес написан на каждом телефоне на обратной стороне. Cisco IP Communicator использует MAC используемой сетевой карты.