На дворе стоял 2016 год. Нанотехнологии, оптоволокно, 40Гбитные линки, запредельные скорости, беспроводные сети... Но нам вдруг потребовалось настроить ISDN. Да. В 2016 году. Именно так.
Каким-то чудом dial-up и ISDN обошли меня стороной вообще. У меня никогда не было опыта работа с этим. Все, что я знал о dial-up и ISDN ограничивалось знаниями из курса CCNA Exploration, да и то чисто теоретическими, потому что в классах мы никогда ничего такого не настраивали. В сети материалов с одной стороны много, но с другой... стыдно признаться, но ничего не понятно. Помощь коллег, работавших с этой технологией сводились к фразам типа "Ооооо, дааааа, настраивал как-то раз десять лет назад... Уже не помню."
Поэтому ниже пошаговое описание настройки на конкретном железе с конкретным модулем. Нужно не забыть, чтобы в следующий раз лет через 10 снова можно было бы повторить этот подвиг=)
Схема подключения выглядела следующим образом:
Влиять в этой схеме можно было только на настройки ПК (модем вынес на рисунке в отдельное устройство, т.к. изначально были перепробованы древнейшие 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
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
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
CHAP обязательно явно запрещать, я так понимаю, он всегда установлен в ином случае по умолчанию?
ОтветитьУдалитьКонфиг в конце - это переделка того, что делал ранее. Поэтому убираю CHAP, т.к. ранее его выставил.
Удалить