Настройка TDA-200 в связке с cisco 2821 (VoIP,E1)

От УКРНДИ поступила заявка на настройку телефонии на базе АТС KX-TDA-200 в связке с cisco 2821. Провайдером был выбран Астелит, который предоставил 42 телефонных номера по протоколу SIP с защитой в виде VPN-туннеля до провайдера. Решать данную задачу было решено так:

VPN-туннель строил маршрутизатор с поддержкой Е1 потока cisco 2821, далее по SIP протоколу мы получали телефонные номера и потоком Е1 они передавались на TDA-200.

Начнем с настройки cisco. Все настройки маршрутизатора выполняются в режиме конфигурации. Для входа используем команды:

enable - входим в привилегированный режим

configure terminal - входим в режим конфигурации

Операции копирования конфигурации, удаления выполняются в привилегированном режиме.
Очистка текущей конфигурации из NVRAM маршрутизатора (привилегированный режим)

erase startup-config - очищаем NVRAM
reload - перезагружаемся

Присвоение имени маршрутизатору (режим конфигурации)

hostname WORD

WORD — сетевое имя маршрутизатора

В качестве примера, называем наш маршрутизатор Router0

hostname Router0

Установка системного времени и даты (режим конфигурации)

clock set 20:58:00 01 January 2014

Шифрование всех паролей (режим конфигурации)

service password-encryption

Используем новую модель ААА и локальную базу пользователей

aaa new-model
aaa authentication login default local

Заводим пользователя с максимальными правами

username admin privilege 15 secret PASSWORD

Генерируем ключик для SSH

crypto key generate rsa modulus 1024

Тюнингуем SSH и разрешаем его на удаленной консоли

ip ssh time-out 60
ip ssh authentication-retries 2
ip ssh version 2
line vty 0 4
transport input telnet ssh
privilege level 15

Настройка времени

Временная зона GMT+2

clock timezone Ukraine 2
clock summer-time Ukraine recurring last Sun Mar 2:00 last Sun Oct 2:00

Обновление системных часов по NTP

ntp update-calendar

Ntp сервера лучше задавать по айпи, ибо если при перегрузке DNS-сервера не доступны то настройки по именам слетают…

ntp server NTP.SERVER.1.IP
ntp server NTP.SERVER.2.IP

Архивирование конфигов

Включаем архивирование всех изменений конфига, скрывая пароли в логах

archive
log config
logging enable
hidekeys

Историю изменения конфига можно посмотреть командой

show archive log config all

Настройка DNS

Включить разрешение имен

ip domain-lookup

Включаем внутренний DNS сервер

ip dns server

Прописываем DNS провайдера

ip name-server XXX.XXX.XXX.XXX

На всякий случай добавляем несколько публичных DNS серверов

ip name-server 4.2.2.2
ip name-server 208.67.222.222
ip name-server 208.67.220.220

Теперь настроим интерфейс на адрес выданный провайдером

conf t
interface gigabitEthernet 0/0
ip address 213.xxx.154.246 255.255.255.252

Теперь добавим запись в таблицу маршрутизации, что бы указать «шлюз по умолчанию»

ip route 0.0.0.0 0.0.0.0 213.xxx.154.246

Создаем isakmp-политику.

crypto isakmp policy 1
 encr 3des
 authentication pre-share
 group 2
crypto isakmp key Key12345 address 212.xxx.1x6.42
crypto isakmp keepalive 10 5

Создаем transform-set:

crypto ipsec transform-set MY_MAP esp-aes esp-sha-hmac

Создаем CryptoMap:

crypto map MY_MAP 1 ipsec-isakmp
 set peer 212.xxx.1x6.42
 set security-association lifetime seconds 28800
 set transform-set MY_MAP
 set pfs group2
 match address 150

Описываем «интересный» трафик, подлежащий шифрованию. В контексте crypto
ACL «permit» означает «шифровать», а «deny» — «не шифровать».

access-list 150 permit ip 172.30.xxx.4 0.0.0.3 212.xxx.1x6.44 0.0.0.3
access-list 150 permit ip 213.xxx.1x4.244 0.0.0.3 212.xxx.1x6.44 0.0.0.3

Ну, и привязываем CryptoMap к интерфейсу:

interface gigabitEthernet 0/0
crypto map MY_MAP

Прописываем маршруты для интересующего нас трафика:

ip route 172.30.xxx.4 255.255.255.252 212.xxx.1x6.46
ip route 212.xxx.1x6.44 255.255.255.252 212.xxx.1x6.42

После первого же пинга должна установиться фаза IKE1. Со стороны Cisco,
её состояние можно определить командой:

show crypto isakmp sa

Ожидаемый вывод:

IPv4 Crypto ISAKMP SA
dst             src             state          conn-id status
213.xxx.154.246 212.xxx.1x6.42   QM_IDLE           1001 ACTIVE

IPv6 Crypto ISAKMP SA

Если фаза IKE1 установилась, проверяем состояние IPSec SA:

show crypto ipsec sa interface gigabitEthernet 0/0

Ожидаемый вывод:

interface: GigabitEthernet0/0
    Crypto map tag: MY_MAP, local addr 213.xxx.154.246

   protected vrf: (none)
   local  ident (addr/mask/prot/port): (172.xxx.128.4/255.255.255.252/0/0)
   remote ident (addr/mask/prot/port): (212.xxx.166.44/255.255.255.252/0/0)
   current_peer 212.xxx.1x6.42 port 500
     PERMIT, flags={origin_is_acl,}
    #pkts encaps: 1, #pkts encrypt: 1, #pkts digest: 1
    #pkts decaps: 1, #pkts decrypt: 1, #pkts verify: 1
    #pkts compressed: 0, #pkts decompressed: 0
    #pkts not compressed: 0, #pkts compr. failed: 0
    #pkts not decompressed: 0, #pkts decompress failed: 0
    #send errors 0, #recv errors 0

     local crypto endpt.: 213.xxx.154.246, remote crypto endpt.: 212.xxx.1x6.42
     path mtu 1500, ip mtu 1500, ip mtu idb GigabitEthernet0/0
     current outbound spi: 0xDE95583A(3734329402)
     PFS (Y/N): Y, DH group: group2

     inbound esp sas:
      spi: 0xD2596709(3529074441)
        transform: esp-3des esp-sha-hmac ,
        in use settings ={Tunnel, }
        conn id: 2001, flow_id: NETGX:1, sibling_flags 80000046, crypto map: MY_MAP
        sa timing: remaining key lifetime (k/sec): (4556924/28433)
        IV size: 8 bytes
        replay detection support: Y
        Status: ACTIVE

     inbound ah sas:

     inbound pcp sas:

     outbound esp sas:
      spi: 0xDE95583A(3734329402)
        transform: esp-3des esp-sha-hmac ,
        in use settings ={Tunnel, }
        conn id: 2002, flow_id: NETGX:2, sibling_flags 80000046, crypto map: MY_MAP
        sa timing: remaining key lifetime (k/sec): (4556924/28433)
        IV size: 8 bytes
        replay detection support: Y
        Status: ACTIVE

     outbound ah sas:

     outbound pcp sas:

   protected vrf: (none)
   local  ident (addr/mask/prot/port): (213.xxx.154.244/255.255.255.252/0/0)
   remote ident (addr/mask/prot/port): (212.xxx.1x6.44/255.255.255.252/0/0)
   current_peer 212.xxx.1x6.42 port 500
     PERMIT, flags={origin_is_acl,}
    #pkts encaps: 0, #pkts encrypt: 0, #pkts digest: 0
    #pkts decaps: 0, #pkts decrypt: 0, #pkts verify: 0
    #pkts compressed: 0, #pkts decompressed: 0
    #pkts not compressed: 0, #pkts compr. failed: 0
    #pkts not decompressed: 0, #pkts decompress failed: 0
    #send errors 0, #recv errors 0

     local crypto endpt.: 213.xxx.154.246, remote crypto endpt.: 212.xxx.1x6.42
     path mtu 1500, ip mtu 1500, ip mtu idb GigabitEthernet0/0
     current outbound spi: 0x0(0)
     PFS (Y/N): N, DH group: none

     inbound esp sas:

     inbound ah sas:

     inbound pcp sas:

     outbound esp sas:

     outbound ah sas:

     outbound pcp sas:

…откуда видно, что SA назначены, активны, и соответствуют ACL.

Далее настроим Е1 контролер.

(config)# controller e1 0/0/0
(config-controller)# framing NO-CRC4 – Для E1 можно настроить или запретить контроль четности.
(config-controller)# clock source line – источник синхронизации. По умолчанию, это линия. В данном случае источником на линии яляется PBX.
(config-controller)# pri-group timeslots 1-31 – Формируем ISDN PRI группу. Канал 0 используется для служебной информации.

После этого вводим команду:

show voice port summary

Ожидаемый вывод:

PORT            CH   SIG-TYPE   ADMIN OPER STATUS   STATUS   EC
=============== == ============ ===== ==== ======== ======== ==
0/0/0:15        01  isdn-voice  up    dorm none     none     y
0/0/0:15        02  isdn-voice  up    dorm none     none     y
0/0/0:15        03  isdn-voice  up    dorm none     none     y
0/0/0:15        04  isdn-voice  up    dorm none     none     y
0/0/0:15        05  isdn-voice  up    dorm none     none     y
0/0/0:15        06  isdn-voice  up    dorm none     none     y
0/0/0:15        07  isdn-voice  up    dorm none     none     y
0/0/0:15        08  isdn-voice  up    dorm none     none     y
0/0/0:15        09  isdn-voice  up    dorm none     none     y
0/0/0:15        10  isdn-voice  up    dorm none     none     y
0/0/0:15        11  isdn-voice  up    dorm none     none     y
0/0/0:15        12  isdn-voice  up    dorm none     none     y
0/0/0:15        13  isdn-voice  up    dorm none     none     y
0/0/0:15        14  isdn-voice  up    dorm none     none     y
0/0/0:15        15  isdn-voice  up    dorm none     none     y
0/0/0:15        17  isdn-voice  up    dorm none     none     y
0/0/0:15        18  isdn-voice  up    dorm none     none     y
0/0/0:15        19  isdn-voice  up    dorm none     none     y
0/0/0:15        20  isdn-voice  up    dorm none     none     y
0/0/0:15        21  isdn-voice  up    dorm none     none     y
0/0/0:15        22  isdn-voice  up    dorm none     none     y
0/0/0:15        23  isdn-voice  up    dorm none     none     y
0/0/0:15        24  isdn-voice  up    dorm none     none     y
0/0/0:15        25  isdn-voice  up    dorm none     none     y
0/0/0:15        26  isdn-voice  up    dorm none     none     y
0/0/0:15        27  isdn-voice  up    dorm none     none     y
0/0/0:15        28  isdn-voice  up    dorm none     none     y
0/0/0:15        29  isdn-voice  up    dorm none     none     y
0/0/0:15        30  isdn-voice  up    dorm none     none     y
0/0/0:15        31  isdn-voice  up    dorm none     none     y
50/0/1          1      efxs     up    up   on-hook  idle     y
50/0/2          1      efxs     up    up   on-hook  idle     y

PWR FAILOVER PORT        PSTN FAILOVER PORT
=================        ==================

После этого Cisco формирует последовательный интерфейс Serial0/0/0:15.
Вводим:

sh isdn status

Мы должны увидеть вот это:

Global ISDN Switchtype = primary-net5
ISDN Serial0/0/0:15 interface
        ******* Network side configuration *******
        dsl 0, interface ISDN Switchtype = primary-net5
    Layer 1 Status:
        ACTIVE
    Layer 2 Status:
        TEI = 0, Ces = 1, SAPI = 0, State = MULTIPLE_FRAME_ESTABLISHED
    Layer 3 Status:
        0 Active Layer 3 Call(s)
    Active dsl 0 CCBs = 0
    The Free Channel Mask:  0xFFFF7FFF
    Number of L2 Discards = 0, L2 Session ID = 0
    Total Allocated ISDN CCBs = 0

Теперь сконфигурируем Serial0/0/0:15:

Router0# conf t
Router0(config)#interface Serial 0/0/0:15
Router0(config-if)#no ip address
Router0(config-if)#encapsulation hdlc
Router0(config-if)#isdn switch-type primary-net5
Router0(config-if)#isdn overlap-receiving
Router0(config-if)#isdn protocol-emulate network
Router0(config-if)#isdn incoming-voice voice
Router0(config-if)#fair-queue 64 256 0
Router0(config-if)#no cdp enable

Конфигурируем кодеки:

voice class codec 1
codec preference 1 g711alaw
codec preference 2 g711ulaw

Разрешаем SIP

Router0(config)#voice service voip
Router0(conf-voi-serv)#sip

Проверяем:

Router0#show sip service

SIP Service is up

Конфигурируем “Dial Peers”

Router0(config)# dial-peer voice 1000 voip – Конфигурация VoIP
Router0(config-dial-peer)# destination-pattern 1... – Указываем номер назначения
Router0(config-dial-peer)# session protocol sipv2
Router0(config-dial-peer)# session target ipv4:172.1.1.1 – Указываем SIP сервер назначения
Router0(config-dial-peer)# dtmf-relay rtp-nte
Router0(config-dial-peer)# no vad
Router0(config-dial-peer)# voice-class codec 1 - Кодеки, сконфигурированные  абзацем выше
Router0(config-dial-peer)# forward-digits all – Если не хотим чтобы Cisco отбрасывала первую «1» при совпадении с адреса назначения с шаблонов, указанном 
командой destination-pattern 
Router0(config)# dial-peer voice 2000 pots – Линия E1 конфигурируется как POTS
Router0(config-dial-peer)# destination-pattern 2...
Router0(config-dial-peer)# direct-inward-dial
Router0(config-dial-peer)# port 0/0/0:15 – Привязка диал-пира к физической линии