пятница, 27 мая 2016 г.

Настройка ISDN Cisco с использованием HWIC-1CE1T1 и PVDM-xDM

   На дворе стоял 2016 год. Нанотехнологии, оптоволокно, 40Гбитные линки, запредельные скорости, беспроводные сети... Но нам вдруг потребовалось настроить ISDN. Да. В 2016 году. Именно так.
   Каким-то чудом dial-up и ISDN обошли меня стороной вообще. У меня никогда не было опыта работа с этим. Все, что я знал о dial-up и ISDN ограничивалось знаниями из курса CCNA Exploration, да и то чисто теоретическими, потому что в классах мы никогда ничего такого не настраивали. В сети материалов с одной стороны много, но с другой... стыдно признаться, но ничего не понятно. Помощь коллег, работавших с этой технологией сводились к фразам типа "Ооооо, дааааа, настраивал как-то раз десять лет назад... Уже не помню." 
   Поэтому ниже пошаговое описание настройки на конкретном железе с конкретным модулем. Нужно не забыть, чтобы в следующий раз лет через 10 снова можно было бы повторить этот подвиг=)
   Настройка осуществлялась на маршрутизаторе Cisco 3925 с установленным модулем HWIC-1CE1T1-PRI и PVDM-12DM (EoL\EoS в данный момент).
   Схема подключения выглядела следующим образом:

   Влиять в этой схеме можно было только на настройки ПК (модем вынес на рисунке в отдельное устройство, т.к. изначально были перепробованы древнейшие US Robotics и не менее древние Zyxel, а позже был найден ноутбук с модемным портом) и на маршрутизатор. Поэтому пришлось подстраиваться под все настройки промежуточной АТС.
   Ниже пошаговая настройка модуля HWIC с объяснением, что и для чего.

1) Активируем контроллер E1. Для этого в режиме EXEC необходимо ввести команду:
card type e1 0 2

После этого можно будет увидеть следующий вывод, свидетельствующий о том, что контроллер включен и готов к работе:
!
card type command needed for slot/vwic-slot 0/2
*Dec 14 06:27:32.132: %CONTROLLER-5-UPDOWN: Controller E1 0/2/0, changed state to up
!

2) Настраиваем интерфейс Loopback, который будет терминировать на себя все обращения через PSTN
interface Loopback0
 description -- PSTN_interf_loopback
 ip address 192.168.1.1 255.255.255.0


3) Указываем региональный компонент:
modem country v12 russia

4) Настройка группы модемов на прием звонков (dial-in): 
line 0/393 0/398
 modem InOut
 transport input all
!


5) Настройка группы модемов на осуществление вызовов (dial-out) - потребуется для настройки обратного дозвона.
line 0/387 0/392
 modem InOut
 rotary 1
 transport input telnet

!

6) Логично, что каждому подключившемуся клиенту необходимо будет выдать IP адрес. Поэтому задаем диапазон адресов, которые будут использоваться для этих целей. В данном примере диапазон задается из той же подсети, в которой находится настроенный ранее Loopback:
ip local pool modempool 192.168.1.2 192.168.1.254
!


7) Создаем интерфейс Group-Async, который позволит объединить в группу асинхронные интерфейсы и применить одновременно ко всем настройки протокола.

interface Group-Async1   //В режиме Global Config mode создается интерфейс
 ip unnumbered Loopback0 //Ассоциируем его с ранее созданным интерфейсом
 encapsulation ppp // Указываем инкапсуляцию ррр
 dialer in-band //включаем dial-on-demand routing
 peer default ip address pool modempool //Пул адресов, которые будут выделяться подключающимся
 async mode dedicated //Включаем ту инкапсуляцию, которую указали ранее, выключаем SLIP и PPP EXEC
 ppp ipcp dns 11.11.10.10 //Команда непосредственно к dial-up не относится. Позволяет передать настройку DNS подключающимся клиентам

 group-range 0/387 0/398 //Указываем диапазон асинхронных интерфейсов, которые будут входить в группу

8) Далее необходимо указать пул модемов, которые будут принимать входящие вызовы, присвоить им телефонный номер. В данном случае указан короткий внутренний номер 1212.
!
modem-pool modempool pool-range 0/393 0/398
 called-number 1212 max-conn 6
!

9) Следующая настройка необходима для согласования параметров с АТС. Для начала необходимо уточнить, какой параметр используется на АТС.
!
isdn switch-type primary-net5
!

10)  После обязательно указать настройки таймслотов, который так же должны быть согласованы с АТС.
!
controller E1 0/2/0 pri-group timeslots 1-31
!
11) Настраиваем D-канал, который представлен в настройках интерфейсом Serial x/x/x:15.
!
interface Serial0/2/0:15
 no ip address
 encapsulation ppp
 isdn incoming-voice modem
 no cdp enable
 no fair-queue
!

12)  Последняя настройка, необходимая для синхронизации принимающего интерфейса с АТС для полноценной работы E1.
!
network-clock-participate wic 2
network-clock-select 1 E1 0/2/0
!
После этого настройку можно считать завершенной. Необходимо проверить соединение на уровне сигналов, проверить дебагом установление PPP-соединения, проверить работу DHCP.

ОБРАТНЫЙ ДОЗВОН


Кроме основной настройки может потребоваться (зачем-то) обратный дозвон. Настроить его можно следующим образом.

1) Создаем скрипт из AT-команд, который позволяет перехватывать входящее соединение и посылать необходимые команды для обратного дозвона (mod), а второй скрипт - для того, чтобы модем мог положить трубку при звонке (offhook).

!
chat-script mod ABORT ERROR ABORT BUSY "" "ATZ" OK "ATDT \T" TIMEOUT 30 CONNECT \c
chat-script offhook "" "ATH1" OK
!

2) Создаем пользователя, для которого укажем пароль и номер, с которого этот пользователь звонит. Таким образом мы будем знать, на какой номер перезванивать. В нашем случае это так же внутренний номер 1010
 !
username test callback-dialstring 1010 password 0 test
!

3) Делаем изменение настройки группового интерфейса. Меняем режим на интерактивный, добавляем команды, разрешающие обратный дозвон и CHAP в качестве протокола.
!
interface Group-Async1
 async mode interactive
 ppp callback accept
 ppp authentication chap callin
!

4) Вешаем скрипты на асинхронные линии. Окончательная настройка будет выглядеть следующим образом:

line 0/387 0/392
 script modem-off-hook offhook
 script callback mod
 login local
 modem InOut
 modem dialout controller E1 0/2/0
 rotary 1
 transport input telnet
 autoselect during-login
 autoselect ppp
line 0/393 0/398
 script modem-off-hook offhook
 modem InOut
 transport input all

Работа с RADIUS

Дополнительно ко всему вышесказанному можно настроить авторизацию через RADIUS-сервер, при этом сохранив обратный дозвон. Удобнее держать список пользователей и их телефонов на сервере, нежели в локальной базе данных. Для этого понадобится внести дополнительные настройки в конфигурацию маршрутизатора и сделать дополнительные настройки в RADIUS для выдачи необходимых атрибутов.

I RADIUS-Сервер: дополнительные атрибуты

Создав пользователя необходимо добавить дополнительные атрибуты:
Callback-Number = 1010 (номер пользователя test, заданный ранее)
Framed-Protocol = PPP (или 1)
Service Type = Callback Framed (или 4)

II Дополнительные настройки на маршрутизаторе
 Необходимо удалить локальную авторизацию, включить AAA. Далее дополнить следующими командами настройки:
!
aaa new-model 
!
aaa group server radius SERVERS_RADIUS
*Здесь указать серверы RADIUS*
!
aaa authentication ppp PPPOE_AUTH group SERVERS_RADIUS
aaa authorization network PPPOE_AUTHORIZATION group SERVERS_RADIUS none
!
interface Group-Async1
 ppp callback accept
no ppp authentication chap callin
 ppp authentication ms-chap-v2 callin PPPOE_AUTH
 ppp authorization PPPOE_AUTHORIZATION

!
line 0/387 0/392
 no login local

2 комментария:

  1. CHAP обязательно явно запрещать, я так понимаю, он всегда установлен в ином случае по умолчанию?

    ОтветитьУдалить
    Ответы
    1. Конфиг в конце - это переделка того, что делал ранее. Поэтому убираю CHAP, т.к. ранее его выставил.

      Удалить