Поиск по этому блогу

19.03.2010

IP-телефоны Cisco без CDP

В одной документации по коммутаторам juniper вычитал, что некоторые модели телефонов Cisco могут попадать в голосовой vlan посредством LLDP. Решил поэкспериментировать.

Сейчас телефон виден по CDP. Отключается cdp в порту, выключается/включается порт, чтобы перезагрузить PoE телефон, проверяется lldp.
switch#sh cdp neighbors 
Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge
S - Switch, H - Host, I - IGMP, r - Repeater, P - Phone,
D - Remote, C - CVTA, M - Two-port Mac Relay

Device ID Local Intrfce Holdtme Capability Platform Port ID
SEP002497AA6A9A Fas 1/0/9 152 H P M IP Phone Port 1

switch#sh run int Fas 1/0/9
Building configuration...

Current configuration : 237 bytes
!
interface FastEthernet1/0/9
switchport access vlan 100
switchport mode access
switchport voice vlan 110
macro description users_security
spanning-tree portfast
spanning-tree bpduguard enable
ip verify source port-security
end

switch#conf t
Enter configuration commands, one per line. End with CNTL/Z.
switch(config)#interface FastEthernet1/0/9
switch(config-if)#no cdp enable
switch(config-if)#sh
switch(config-if)#no sh
switch(config-if)#^Z

switch#sh lldp nei FastEthernet1/0/9 det
------------------------------------------------
Chassis id: [skip]
Port id: 002497AA6A9A:P1
Port Description: SW PORT
System Name: SEP002497AA6A9A

System Description:
Cisco IP Phone CP-7911G,V7, SCCP11.8-4-2S

Time remaining: 157 seconds
System Capabilities: B,T
Enabled Capabilities: B,T
Management Addresses:
IP: [skip]
Auto Negotiation - supported, enabled
Physical media capabilities:
1000baseT(HD)
1000baseX(FD)
Symm, Asym Pause(FD)
Symm Pause(FD)
Media Attachment Unit type: 16
Vlan ID: - not advertised

MED Information:

MED Codes:
(NP) Network Policy, (LI) Location Identification
(PS) Power Source Entity, (PD) Power Device
(IN) Inventory

H/W revision: 7
F/W revision: tnp11.3-0-1-32.bin
S/W revision: SCCP11.8-4-2S
Serial number: FCH1303AJZC
Manufacturer: Cisco Systems, Inc.
Model: CP-7911G
Capabilities: NP, PD, IN
Device type: Endpoint Class III
Network Policy(Voice): VLAN 203, tagged, Layer-2 priority: 5, DSCP: 46
Network Policy(Voice Signal): VLAN 110, tagged, Layer-2 priority: 0, DSCP: 0
PD device, Power source: Unknown, Power Priority: Unknown, Wattage: 5.0
Location - not advertised


Total entries displayed: 1

switch#

Буду изучать чем это чревато

Телефония на маршрутизаторе по-быстрому

Наконец-то начал описывать Call Manager Express (CME).

Для начала необходимо в 2800 или 3800 серию "залить" соответствующий IOS. Это может быть 12.4Т voice или advipservices. PVDM требуется только при подключении к телефонной станции потоком E1, либо при организации на cisco ip-телефонах hardware конференций, т.е. конференций, где участников больше чем 3.

Если маршрутизатор не подключается к телефонной станции, к нему планируются подключаться еще и телефонные SIP ip-шлюзы с FXS-портами, то необходимо разрешить устанавливать соединения между ними. Предполагается, что для локального использования будет достаточно трехзначной нумерации и со всеми другими маршрутизаторами передача голоса будет осуществляться по H323-протоколу



voice rtp send-recv
!
voice service voip
allow-connections h323 to h323
allow-connections h323 to sip
allow-connections sip to h323
allow-connections sip to sip
supplementary-service h450.12
fax protocol t38 nse ls-redundancy 0 hs-redundancy 0 fallback cisco
h323
sip

Отсутствие строк allow-connections ** to ** в конфигурационном файле означает, что взаимодействие voip-устройств возможно только через dial-peer pots.

Пусть имеем некий интерфейс:
interface FastEthernet0/1.100
description LAN
encapsulation dot1Q 100
ip address 10.10.9.254 255.255.255.0

interface FastEthernet0/1.110
description Voice LAN
encapsulation dot1Q 110
ip address 10.10.10.254 255.255.255.0
h323-gateway voip bind srcaddr 10.10.10.254

Отсутствие лубкека и наличие желания фиксировать адрес, с которого будет устанавливаться rtp-сессия с другими маршрутизаторами, подразумевает наличие строки h323-gateway voip bind srcaddr в интерфейсе.


Настраивается сервис телефонии для ip-телефонов Сisco.
telephony-service
ip source-address 10.10.10.254 port 2000
calling-number initiator
timeouts interdigit 3
system message MyCompany
cnf-file location flash:
time-zone 42
time-format 24
date-format dd-mm-yy
dialplan-pattern 1 ... extension-length 3
max-conferences 6 gain -6
call-forward pattern .T
call-forward system redirecting-expanded
transfer-system full-consult
transfer-pattern .T
В настройках указан часовой пояс, который никак не связан с настройками часового пояса в маршрутизаторе. Текущее время телефон получает только при загрузке конфигурации и самостоятельно никак не синхронизируется. Поэтому важно синхронизировать маршрутизатор и не забывать осуществлять руками в сервисе телефонии переход на летнее/зимнее время. Понятно, что смена часового пояса должна в итоге сопровождаться командой:
router(config)#telephony-service 
router(config-telephony)#reset all
Разные модели маршрутизаторов поддерживают разное количество телефонов. Почитать.
Не указанная в списке 72ая серия похоже поддерживает 500 телефонов.
Таким образом, в зависимости от модели, оперативной памяти и еще чего-нибудь, задается количество телефонов и DN (что-то вроде профиля для номера).
telephony-service
max-ephones 30
max-dn 100
Далее создаются телефонные номера. Например, хочу создать 10 номеров и чтобы все они раздались автоматически при подключении телефона.
ephone-dn  10  dual-line
number 210
!
!
ephone-dn 11 dual-line
number 211
!
!
ephone-dn 12 dual-line
number 212
!
!
ephone-dn 13 dual-line
number 213
!
!
ephone-dn 14 dual-line
number 214
!
!
ephone-dn 15 dual-line
number 215
!
!
ephone-dn 16 dual-line
number 216
!
!
ephone-dn 17 dual-line
number 217
!
!
ephone-dn 18 dual-line
number 218
!
!
ephone-dn 19 dual-line
number 219

telephony-service
auto assign 10 to 19

Настраиваются DHCP пулы, который будет раздавать адреса рабочим станциям и телефонам. Наличие опции 150 укажет им с какого адреса они будут скачивать конфигурационный файл в формате xml по протоколу tftp. В качестве tftp-сервера выступает сам маршрутизатор.
Часть адресов резервируется для голосовых шлюзов, которые должны иметь статические адреса.
ip dhcp excluded-address 10.10.10.1 10.10.10.50

ip dhcp pool LAN
network 10.10.9.0 255.255.255.0
default-router 10.10.9.254
dns-server 10.0.0.1 10.0.1.1
domain-name mycompany.com
netbios-node-type h-node

ip dhcp pool VoiceLAN
network 10.10.10.0 255.255.255.0
default-router 10.10.10.254
dns-server 10.0.0.1 10.0.1.1
option 150 ip 10.10.10.254

Предполагается, что использоваться будет только кодек G729, который поддерживается всеми телефонами Cisco, в том числе и софтфоном Cisco Communicator. Поэтому после регистрации телефонов в каждом ephone прописывается:
ephone  1
..
codec g729r8
..
Если будут использоваться различные сервисы на телефонах, например конференции, то необходимо включить sccp.
sccp local FastEthernet0/1.110
sccp

Вот и все по настройкам подключения телефонов Cisco на маршрутизаторе. Hardware'ные конференции пока описывать не буду. Для их работы в маршрутизаторе должны быть установлены PVDM.

Далее подключаются ip-шлюзы с двумя FXS-портами, для которых необходимо писать dial-peer'ы
dial-peer voice 220 voip
huntstop
destination-pattern 22[01]
session protocol sipv2
session target ipv4:10.10.10.1
session transport udp
no vad

dial-peer voice 222 voip
huntstop
destination-pattern 22[23]
session protocol sipv2
session target ipv4:10.10.10.1
session transport udp
no vad
На шлюзах настроено использовать g729 кодек, который dial-peer'ы используют по-умолчанию, если списка кодеков не указано.

Теперь необходимо хотя бы минимально настроить коммутатор:
interface FastEthernet1/0/1
description cisco ip-phone
switchport access vlan 100
switchport voice vlan 110
switchport mode access

interface FastEthernet1/0/2
description voip-adapter
switchport access vlan 110
switchport mode access

interface FastEthernet1/0/48
description Uplink
switchport trunk encapsulation dot1q
switchport mode trunk
На коммутаторе должен быть включен CDP или LLDP, чтобы цисковский телефон автоматически попал в голосовой vlan.

В заметке не описано куда же отправляется голосовой трафик. Вот к примеру так можно сделать:
dial-peer voice 1 voip
translation-profile outgoing AON
destination-pattern .T
session target ipv4:10.0.100.100
dtmf-relay rtp-nte
fax-relay ecm disable
fax rate 14400
fax nsf 000000
fax protocol t38 nse ls-redundancy 0 hs-redundancy 0 fallback cisco
no vad
Что касается dtmf-relay rtp-nte. Столкнулся однажды, что при звонках с cisco телефонов на какую-нибудь DISA невозможно было набрать добавочный номер в тоне. Пришлось экспериментировать с dtmf-relay.

Выше указывается профиль AON, который исправляет непонятные три номера на приемлемую для всех кашу. В конкретном случае АОН приводится к виду 7654321xxx.
voice translation-rule 76
rule 1 /^\(...\)$/ /7654321\1/
!
!
voice translation-profile AON
translate calling 76
Понятно, что обратную операцию надо сделать для входящих звонков. Можно написать аналогичный профиль и добавить его в dial-peer как incoming или можно сделать общее для всего маршрутизатора правило для номеров, начинающихся на двойку:
voip-incoming translation-rule called 1

translation-rule 1
Rule 0 ^76543212 2
Или так еще
router(config)#voip-incoming translation-profile ?
WORD Profile name

Про прошивки, сервисы, конференции напишу как-нибудь в другой раз.

18.03.2010

Условное HSRP

HSRP hello packets are sent to multicast address 224.0.0.2 with UDP port 1985
Таким образом, маршрутизатору не требуется подтверждения, что кем-то это сообщение было получено.
HRSP логично применять на WAN интерфейсах, когда он перестает работать если состояние протокола down. В Ethernet имеется рад особенностей. Пусть два маршрутизатора с hsrp включаются в один коммутатор. При каких условиях маршрутизаторы не будут анонсировать различными протоколами connected сети с hsrp на интерфейсах?
1. Маршрутизатор выключен.
2. Интерфейс отключен физически от коммутатора.

Случай, когда выключен коммутатор, сам по себе интересный, так как резервирования на этом уровне нет.

Во всех остальных случаях интерфейсы на маршрутизаторе всегда в активном состоянии. HSRP всегда рассылает свои сообщения, сети всегда анонсируются динамическими протоколами другим маршрутизаторам и в зависимости от топологии на этих интерфейсах всегда есть исходящий в сторону коммутатора трафик.

А теперь представим ситуацию, когда по какой-либо причине входящий трафик на интерфейс одного маршрутизатора отсутствует или имеются серьезные потери.
1. Второй маршрутизатор по-прежнему получает рассылаемые мультикастом hsrp-пакеты и переходит в режим ожидания.
2. На обоих маршрутизаторах на интерфейсах имеется исходящий трафик.
В результате ничего не работает.

Еще один интересный момент. Если в ospf есть защитный механизм в виде network, который устанавливает соединения только в пределах указанной подсети, то для HSRP ничего подобного нет.
Q. If there is no priority configured for a standby group, what determines which router is active?

A. The priority field is used to elect the active router and the standby router for the specific group. In the case of an equal priority, the router with the highest IP address for the respective group is elected as active. Furthermore, if there are more than two routers in the group, the second highest IP address determines the standby router and the other router/routers are in the listen state.

Note: If no priority is configured, it uses the default of 100.
Пусть имеются две пары маршрутизаторов
interface GigabitEthernet0/1
description Router A-1
ip address 10.0.0.2 255.255.255.0
standby 0 ip 10.0.0.1
standby 0 priority 110
standby 0 preempt

interface GigabitEthernet0/1
description Router A-2
ip address 10.0.0.3 255.255.255.0
standby 0 ip 10.0.0.1
standby 0 preempt


interface GigabitEthernet0/1
description Router B-1
ip address 10.0.1.2 255.255.255.0
standby 0 ip 10.0.1.1
standby 0 priority 110
standby 0 preempt

interface GigabitEthernet0/1
description Router B-2
ip address 10.0.1.3 255.255.255.0
standby 0 ip 10.0.1.1
standby 0 preempt
Если каким-либо образом включить их в один vlan, то маршрутизаторы A перестанут анонсировать адрес 10.0.0.1
В таких нелепых случаях следует обезопасить сеть через standby 0 authentication A-net, к примеру.

The standby preempt interface configuration command allows the router to become the active router when its priority is higher than all other HSRP-configured routers in this Hot Standby group. The configurations of both routers include this command so that each router can be the standby router for the other router. The 1 indicates that this command applies to Hot Standby group 1. If you do not use the standby preempt command in the configuration for a router, that router cannot become the active router.
Такая условность...
C preempt
router#sh standby GigabitEthernet0/1
GigabitEthernet0/1 - Group 0
State is Active
5 state changes, last state change 00:00:04
Virtual IP address is 10.0.1.1
Active virtual MAC address is 0000.0c07.ac00
Local virtual MAC address is 0000.0c07.ac00 (v1 default)
Hello time 3 sec, hold time 10 sec
Next hello sent in 1.684 secs
Preemption enabled
Active router is local
Standby router is unknown
Priority 100 (default 100)
Group name is "hsrp-Gi0/1-0" (default)
router#sh standby GigabitEthernet0/1
GigabitEthernet0/1 - Group 0
State is Speak
5 state changes, last state change 00:00:23
Virtual IP address is 10.0.1.1
Active virtual MAC address is 0000.0c07.ac00
Local virtual MAC address is 0000.0c07.ac00 (v1 default)
Hello time 3 sec, hold time 10 sec
Next hello sent in 0.236 secs
Preemption enabled
Active router is 10.0.1.2, priority 110 (expires in 7.232 sec)
Standby router is unknown
Priority 100 (default 100)
Group name is "hsrp-Gi0/1-0" (default)
router#sh standby GigabitEthernet0/1
GigabitEthernet0/1 - Group 0
State is Standby
5 state changes, last state change 00:00:30
Virtual IP address is 10.0.1.1
Active virtual MAC address is 0000.0c07.ac00
Local virtual MAC address is 0000.0c07.ac00 (v1 default)
Hello time 3 sec, hold time 10 sec
Next hello sent in 0.244 secs
Preemption enabled
Active router is 10.0.1.2, priority 110 (expires in 9.240 sec)
Standby router is local
Priority 100 (default 100)
Group name is "hsrp-Gi0/1-0" (default)
И без него
router#sh standby GigabitEthernet0/1
GigabitEthernet0/1 - Group 0
State is Active
6 state changes, last state change 00:00:06
Virtual IP address is 10.0.1.1
Active virtual MAC address is 0000.0c07.ac00
Local virtual MAC address is 0000.0c07.ac00 (v1 default)
Hello time 3 sec, hold time 10 sec
Next hello sent in 2.900 secs
Preemption disabled
Active router is local
Standby router is unknown
Priority 100 (default 100)
Group name is "hsrp-Gi0/1-0" (default)
router#sh standby GigabitEthernet0/1
GigabitEthernet0/1 - Group 0
State is Speak
6 state changes, last state change 00:00:32
Virtual IP address is 10.0.1.1
Active virtual MAC address is 0000.0c07.ac00
Local virtual MAC address is 0000.0c07.ac00 (v1 default)
Hello time 3 sec, hold time 10 sec
Next hello sent in 0.612 secs
Preemption disabled
Active router is 10.0.1.2, priority 110 (expires in 7.608 sec)
Standby router is unknown
Priority 100 (default 100)
Group name is "hsrp-Gi0/1-0" (default)
router#sh standby GigabitEthernet0/1
GigabitEthernet0/1 - Group 0
State is Standby
6 state changes, last state change 00:00:36
Virtual IP address is 10.0.1.1
Active virtual MAC address is 0000.0c07.ac00
Local virtual MAC address is 0000.0c07.ac00 (v1 default)
Hello time 3 sec, hold time 10 sec
Next hello sent in 0.088 secs
Preemption disabled
Active router is 10.0.1.2, priority 110 (expires in 9.084 sec)
Standby router is local
Priority 100 (default 100)
Group name is "hsrp-Gi0/1-0" (default)
Или трудности перевода или еще что. Почему не может быть активным без preempt, если может?

17.03.2010

Опции без кавычек

В одной из заметок писал про проблему с кавычками в опциях dhcp пула на коммутаторах с 12.2(46)SE . В 12.2(53)SE кавычек нет вообще.
Еще обнаружил, что при настройке пула c опциями в маршрутизаторе с 12.4(24)T2, кавычки в конфигурационном файле отсутствуют. В 12.4(15)Т "" еще были.

Таким образом, для телефонии можно завести пул на коммутаторе с 12.2(53)SE спокойно.

16.03.2010

Обновление IOS через archive c /imageonly

До крайнего момента не заморачивался наличием кучи файлов в tar архиве с IOS'ом и пользовался удобствами archive. Попробовал опцию /imageonly
Switch#archive download-sw /allow-feature-upgrade /imageonly tftp://10.0.0.10/ios/c3750-ipservicesk9-tar.122-53.SE.tar 
Loading ios/c3750-ipservicesk9-tar.122-53.SE.tar from 10.0.0.10 (via Vlan10): !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
[OK - 15656960 bytes]

Loading ios/c3750-ipservicesk9-tar.122-53.SE.tar from 10.0.0.10 (via Vlan10): !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
examining image...
extracting info (109 bytes)
extracting c3750-ipservicesk9-mz.122-53.SE/info (695 bytes)
extracting info (109 bytes)

Stacking Version Number: 1.43

System Type: 0x00000000
Ios Image File Size: 0x00C17200
Total Image File Size: 0x00EEEA00
Minimum Dram required: 0x08000000
Image Suffix: ipservicesk9-122-53.SE
Image Directory: c3750-ipservicesk9-mz.122-53.SE
Image Name: c3750-ipservicesk9-mz.122-53.SE.bin
Image Feature: IP|LAYER_3|PLUS|SSH|3DES|MIN_DRAM_MEG=128

Old image for switch 1: flash:c3750-advipservicesk9-mz.122-46.SE
Old image will be deleted before download.

Deleting `flash:c3750-advipservicesk9-mz.122-46.SE' to create required space

extracting c3750-ipservicesk9-mz.122-53.SE/c3750-ipservicesk9-mz.122-53.SE.bin (12673801 bytes)
extracting c3750-ipservicesk9-mz.122-53.SE/info (695 bytes)
extracting info (109 bytes)
Installing (renaming): `flash:update/c3750-ipservicesk9-mz.122-53.SE' ->
`flash:/c3750-ipservicesk9-mz.122-53.SE'
New software image installed in flash:/c3750-ipservicesk9-mz.122-53.SE


All software images installed.
Switch#dir flash:
Directory of flash:/

2 -rwx 1098 Mar 15 2010 15:07:30 +07:00 private-config.text
3 -rwx 856 Mar 1 1993 07:00:35 +07:00 vlan.dat
4 -rwx 2072 Mar 15 2010 15:07:30 +07:00 multiple-fs
398 drwx 128 Mar 16 2010 11:53:25 +07:00 c3750-ipservicesk9-mz.122-53.SE
396 -rwx 3491 Mar 16 2010 11:41:13 +07:00 snoop
397 -rwx 9708 Mar 15 2010 15:07:30 +07:00 config.text

15998976 bytes total (3303936 bytes free)
Switch#dir flash:/c3750-ipservicesk9-mz.122-53.SE
Directory of flash:/c3750-ipservicesk9-mz.122-53.SE/

5 -rwx 12673801 Mar 16 2010 11:53:25 +07:00 c3750-ipservicesk9-mz.122-53.SE.bin
6 -rwx 695 Mar 16 2010 11:53:25 +07:00 info

15998976 bytes total (3303936 bytes free)
Switch#show boot
BOOT path-list : flash:/c3750-ipservicesk9-mz.122-53.SE/c3750-ipservicesk9-mz.122-53.SE.bin
Config file : flash:/config.text
Private Config file : flash:/private-config.text
Enable Break : no
Manual Boot : no
HELPER path-list :
Auto upgrade : yes
Auto upgrade path :
Timeout for Config
Download: 0 seconds
Config Download
via DHCP: disabled (next boot: disabled)