Router cisco
совет
Вот ссылка на Guide to Harden Cisco IOS Devices. Там и vstack уже есть для коммутаторов.
aux
Наверное, в каждом маршрутизаторе cisco такой порт есть и он позволяет настраивать удаленно через консоль другое оборудование. Для этого нужен пачкодр обжатый с одной стороны в обратном порядке. Ну, в общем, rj45 коннектор перевернуть и обжать. Скорее всего можно было проще настроить, но вот столько команд в линии сейчас:
line aux 0
session-timeout 5
exec-timeout 5 0
absolute-timeout 60
modem InOut
no exec
transport preferred telnet
transport input all
sh line
. Напротив AUX будет номер и чаще это 1. Реже 65. Т.о. надо выполнить telnet на порт 2001 маршрутизатора.
Сброс линии clear line aux 0
aaa для tacacs
Для версии IOS 15.7
aaa new-model
!
!
aaa authentication login default group tacacs+ local
aaa authentication enable default group tacacs+ enable none
aaa authorization console
aaa authorization exec default group tacacs+ local
aaa accounting commands 15 default
action-type start-stop
group tacacs+
!
aaa accounting network default
action-type start-stop
group tacacs+
!
aaa accounting connection default
action-type start-stop
group tacacs+
!
aaa accounting system default
action-type start-stop
group tacacs+
tacacs-server host ...
, есть рекомендованный вариант с группами.
Для IOS XE все более привычно как было в 12 ветке ios.
aaa new-model
!
!
aaa authentication login default group tacacs+ local
aaa authentication enable default group tacacs+ enable none
aaa authorization console
aaa authorization exec default group tacacs+ local
aaa accounting commands 15 default start-stop group tacacs+
aaa accounting network default start-stop group tacacs+
aaa accounting connection default start-stop group tacacs+
aaa accounting system default start-stop group tacacs+
logging
Про aux писал выше. Если остался кабель, то в устройстве надо выключить логирование в консоль. В противном случае в логах такакса будет много чего почитать.
no logging console
line con 0
logging synchronous
line vty 0 4
logging synchronous
%SFF8472-5-THRESHOLD_VIOLATION: Te1/2: Temperature low alarm; Operating value: -127.2 C, Threshold value: -4.0 C.
%SFF8472-5-THRESHOLD_VIOLATION: Te1/2: Temperature high alarm; Operating value: 118.0 C, Threshold value: 74.0 C.
logging discriminator FIX mnemonics drops THRESHOLD_VIOLATION
logging buffered discriminator FIX
logging host 10.9.8.1 discriminator FIX
sh logging
можно увидеть активные дискриминаторы и счетчики дропов message lines dropped-by-MD
.
Время в логах:
service timestamps debug datetime msec localtime
service timestamps log datetime msec localtime
cisco 4321 throughput
После пробного периода использования throughput лицензии в 4321 (16.9.4), она становится Life time и RightToUse.
license accept end user agreement
platform hardware throughput level 100000
c4321#sh ver | in throughput
The current throughput level is 100000 kbps
c4321#sh lic | beg throughput
Index 9 Feature: throughput
Period left: Life time
License Type: RightToUse
License State: Active, In Use
License Count: Non-Counted
output service-policy
Приоритезировать трафик на сабинтерфейсы в рамках какой-то полосы
policy-map myservice
class Voip
priority 128
class class-default
fair-queue
router(config-subif)#service-policy output myservice
CBWFQ : Not supported on subinterfaces
policy-map 512k
class class-default
shape average 512000
service-policy myservice
router(config-subif)#service-policy output 512k
eem
Периодические проблемы с потоком Е1 на голосовом шлюзе Cisco. Cкрипт, выключающий ночью D-канал.
event manager session cli username "operator"
event manager applet restartd
event timer cron cron-entry "26 4 * * *" maxrun 120
action 1.0 syslog msg "restart d-channel"
action 2.0 cli command "enable"
action 3.0 cli command "conf t"
action 4.0 cli command "voice-port 0/0/0:15"
action 5.0 cli command "shutdown"
action 6.0 wait 30
action 7.0 cli command "no shutdown"
action 8.0 cli command "end"
kron
Периодическая перезагрузка по расписанию
kron occurrence reboot at 4:00 13 recurring
policy-list reboot
!
kron policy-list reboot
cli reload
tcp-mss
Описано в /network/tcp_mss/
ip tcp adjust-mss <значение>
frame-relay, rtp compression
В целом, протокол полезный:
- Frame-relay позволяет создавать виртуальные каналы в пределах одного физического интерфейса. Инкапсуляции HDLC, PPP такого не позволяют;
- Для каждого логического интерфейса можно выделить полосу, настроить QoS;
- Один из логических интерфейсов можно включить в bridge-группу с ethernet'ом, к примеру;
- Можно настроить frame-relay switching и так передавать данные между виртуальными каналами;
- У VoFR самое эффективное использование полосы при передаче голоса;
- MFR работает лучше Multilink PPP. Меньше rtt, субъективно стабильнее.
Раньше передача данных осуществлялась по очень дорогим спутниковым каналам или дорогим цифровым междугородним/международным каналам связи. Качество "голоса" и рациональное использование полосы за счет мультиплексирования виртуальных каналов позволяли операторам оказывать мультисервисные услуги связи. Компрессия заголовков работает только на WAN интерфейсах с PPP,HDLC,FR-инкапсуляцией. Пример:
interface Serial0/2/0:0.100 point-to-point
ip unnumbered Loopback0
frame-relay interface-dlci 100
frame-relay ip rtp header-compression
interface Serial0/1/0
ip unnumbered Loopback0
ip rtp header-compression
encapsulation ppp
Codec Bit Rate 8 kbps = (Codec Sample Size * 8) / (Codec Sample Interval)
Codec Sample Size 10 bytes size of each individual codec sample
Codec Sample Interval 10 msec the time it takes for a single sample
Codec: g729_All_Variants
Voice Payload Size: 20 bytes
Voice Protocol: VoIP
Compression: Not Applicable
Media Access: Ethernet
Tunnel/Security/Misc: None
Number of Calls: 1
Total Bandwidth (including Overhead) 32.76 kbps
Codec: g729_All_Variants
Voice Payload Size: 20 bytes
Voice Protocol: VoIP
Compression: off
Media Access: Frame-Relay
Tunnel/Security/Misc: None
Number of Calls: 1
Total Bandwidth (including Overhead) 28.14 kbps
Codec: g729_All_Variants
Voice Payload Size: 20 bytes
Voice Protocol: VoIP
Compression: on
Media Access: Frame-Relay
Tunnel/Security/Misc: None
Number of Calls: 1
Total Bandwidth (including Overhead) 12.18 kbps
Codec: g729_All_Variants
Voice Payload Size: 30 bytes
Voice Protocol: VoFR
Media Access: Not Applicable
Tunnel/Security/Misc: Not Applicable
Number of Calls: 1
Cisco IOS Total Bandwidth Needed for 1.0 Calls 10 kbps
acl
Было сохранено в качестве памятки откуда-то. Как раз для случаев, когда "permit ip any any" почему-то "не работает".
Here’s a handy list of ACL entries to allow your devices to speak routing protocols, availability protocols, and some other stuff. We’ll assume you have ACL 101 applied to your Ethernet inbound; your Ethernet has an IP of 192.168.0.1.
BGP : Runs on TCP/179 between the neighbors
access-list 101 permit tcp any host 192.168.0.1 eq 179
access-list 101 permit eigrp any host 224.0.0.10
access-list 101 permit ospf any host 224.0.0.5
access-list 101 permit ospf any host 224.0.0.6
access-list 101 permit udp any host 224.0.0.2
access-list 101 permit udp any host 224.0.0.9 eq 520
access-list 101 permit 112 any host 224.0.0.18
access-list 101 permit udp any host 224.0.0.102
access-list 101 permit udp any host 255.255.255.255 eq 67
session mib
Это вообще времен диалапа и прочего доступа, когда использовались cisco в качестве AS и BRAS. Так с сервера доступа Cisco AS5350 можно получить данные о состоянии цифровых модемов и тем самым судить о загрузке модемного пула:
cmSystemInstalledModem 1.3.6.1.4.1.9.9.47.1.1.1.0
cmSystemModemsInUse 1.3.6.1.4.1.9.9.47.1.1.6.0
cmSystemModemsAvailable 1.3.6.1.4.1.9.9.47.1.1.7.0
cmSystemModemsUnavailable 1.3.6.1.4.1.9.9.47.1.1.8.0
cmSystemModemsOffline 1.3.6.1.4.1.9.9.47.1.1.9.0
cmSystemModemsDead 1.3.6.1.4.1.9.9.47.1.1.10.0
cpmActiveLocalPhoneNumber 1.3.6.1.4.1.9.10.19.1.3.1.1.13
cPppoeSystemCurrSessions 1.3.6.1.4.1.9.9.194.1.1.1
cvpdnSystemSessionTotal 1.3.6.1.4.1.9.10.24.1.1.4.1.3
aaa session-mib disconnect
export MIBS=+CISCO-AAA-SESSION-MIB
#список активных пользователей
snmpwalk -v2c -c public $hostname casnUserId
snmpwalk -v2c -c public $hostname casnUserId.$session_id
# вывод .. = "login"
# сброс сессии. используется community на запись
snmpset -v2c -c private $hostname casnDisconnect.$session_id i 1
# вывод .. = INTEGER: true(1)
backup interface
Фича backup interface может пригодится в случае, когда ассиметрия недопустима, как например, при включении в маршрутизатор межсетевых экранов asa, где flow должен передаваться через один и тот же интерфейс в обе стороны. Писал об этом тут. Это был единственный раз когда данный функционал пригодился.
interface GigabitEthernet0/0
description asa1-eth1
ip address 10.1.1.97 255.255.255.252
!
interface GigabitEthernet0/1
description asa2-eth1
ip address 10.1.1.109 255.255.255.252
!
interface GigabitEthernet0/2
description r2-gi0/2
backup interface GigabitEthernet0/1
ip address 10.1.1.104 255.255.255.254
ip ospf network point-to-point
r1#sh int desc
Interface Status Protocol Description
Em0/0 admin down down
Gi0/0 up up asa1-eth1
Gi0/1 standby mode down asa2-eth1
Gi0/2 up up r2-gi0/2
object group
Можно использовать в acl, которые используются потом в PBR.
acl for default route
Стандартный лист
access-list 10 permit 0.0.0.0
access-list 100 permit ip host 0.0.0.0 host 0.0.0.0
ip prefix-list 1 permit 0.0.0.0/0
copp
Открытые порты, сессии:
show control-plane host open-ports
Была уязвимость на маршрутизаторах, рекомендовали настраивать copp. Политика с дропами, поэтому все указанное в acl как permit будет дропнуто. В deny указываются ipsec пиры, если такие имеются. Разрешается обращения из приватной сети 10/8 практически без ограничений.
access-list 198 deny tcp 10.0.0.0 0.255.255.255 any
access-list 198 permit tcp any any eq telnet
access-list 198 permit tcp any any eq bgp
access-list 198 permit tcp any any eq 161
access-list 199 permit udp any any eq 18999
access-list 199 deny udp 10.0.0.0 0.255.255.255 any
access-list 199 deny udp host ipsec-peer-ip any eq non500-isakmp
access-list 199 permit udp any any eq non500-isakmp
access-list 199 deny udp host host ipsec-peer-ip any eq isakmp
access-list 199 permit udp any any eq isakmp
access-list 199 permit udp any any eq ntp
access-list 199 permit udp any any eq snmp
class-map match-all undesirable-tcp
match access-group 198
class-map match-all undesirable-udp
match access-group 199
policy-map copp
class undesirable-udp
drop
class undesirable-tcp
drop
control-plane
service-policy input copp
high cpu usage
Для софтовых маршрутизаторов надо мониторить суммарный pps и сравнивать с графиком загрузки cpu.
При высокой загрузке надо смотреть sh proc cpu history
, где фиксирутся на псевдографиках максимальные значения загрузки cpu.
При появлении override и ignored ошибок на интерфейсах менять маршрутизатор на более производительный, если дальнейшая оптимизация конфигурации невозможна.
Если загрузка cpu выросла внезапно, то проверить включен ли cef. Он может автоматически выключиться, если закончилась память, например.
netflow для ios
ip flow-cache timeout active 5
ip flow-export source Loopback0
ip flow-export version 5
ip flow-export destination <ip> <port>
ip flow-top-talkers
top 50
sort-by bytes
ip flow ingress
. Проверить сбор данных:
show ip flow top-talkers
show ip cache flow
neflow для ios xe
flow exporter DOH
destination <ip>
source Loopback0
transport udp <port>
export-protocol netflow-v5
!
!
flow monitor DOH
exporter DOH
cache timeout active 60
record netflow-original
ip flow monitor DOH input
. Проверить сбор данных:
show flow monitor DOH statistics
show flow monitor DOH cache sort ipv4 tos format table