среда, 27 ноября 2013 г.

Первоначальная настройка Cisco Catalyst

Очень часто у новичков возникает вопрос:
«Что нужно настроить на Cisco Catalyst с нуля?»
или встречается запрос в google:
«Скачать дефолтовый конфиг для Cisco Catalyst»
или
«catalyst 2960 2950 3560 ip адрес по умолчанию»
или
«как настроить cisco catalyst «
Попробую немного помочь этим людям :)
  1. Дефолтовых конфигов не бывает, т.к. у каждого своя сеть и свои «правила»
  2. Нету у Cisco IP-адреса по умолчанию (это же не Dlink), все настраивается ручками и сначала через консоль.
Итак, попробуем разобраться в том, что желательно настроить на нулевом Cisco Catalyst ?
Например, часто встречающиеся:
  • Cisco Catalyst 2950
  • Cisco Catalyst 2960
  • Cisco Catalyst 3550
  • Cisco Catalyst 3560
  • Cisco Catalyst 3560G
Я использовал Cisco Catalyst 3560G
0. Подключаемся к cisco по консольному кабелю через com порт:
FreeBSD через com порт:
cu -l /dev/cuad0
FreeBSD через переходник USB->Com:
  • kldload uplcom.ko
  • kldstat | grep uplcom (убедиться что подгрузился)
  • подключить переходник к USB порту
  • cu -l /dev/cuaU0
в Windows можно использовать Hiper Terminal для подключения к com порту
1. Зададим пароль на enable режим
Switch> enable
Switch# configure terminal
Switch(config)# enable password my-secret-password
2. Установим пароль для входа по telnet
Switch(config)# line vty 0 15
Switch(config-line)#password my-telnet-password
3. Сразу разрешим вход по telnet
Switch(config-line)# login
Switch(config)# exit
4. Зашифруем пароли, чтобы по sh run они не показывались в открытом виде
Switch(config)# service password-encryption
5. Зададим имя девайсу, например будет c3560G
Switch(config)# hostname c3560G
6. повесим / присвоим IP-адрес нашему девайсу
c3560G(config)# interface vlan 1
c3560G(config-if)# ip address 192.168.1.2 255.255.255.0
c3560G(config-if)# exit
7. Если вы ошибетесь при наборе чего либо в консоле, то циска начнет пытаться это отрезолвить, чем заставляет вас ждать, выключим эту фичу
c3560G(config)# no ip domain-lookup
8. Зададим имя домена
c3560G(config)# ip domain-name my-domain.ru
9. Зададим IP-адрес DNS сервера
c3560G(config)# ip name-server 192.168.1.15
10. Зададим время
если у вас есть доступный NTP сервер
c3560G(config)# ntp server 192.168.1.1 version 2 source vlan 1
c3560G(config)# ntp clock-period 36029056
c3560G(config)# ntp max-associations 1
где 192.168.1.1 — это IP-адрес NTP сервера
а используя «добавку» source vlan вы можете четко задать номер vlan с IP которого будет отправляться NTP запрос
если нет NTP сервера, то можно задать время вручную, но для этого придется выйти из режима конфигурирования
c3560G(config)# exit
c3560G# clock set 20:00:50 23 Aug 2008
11. Зададим переход с зимнего на летнее время и наоборот
c3560G# configure terminal
c3560G(config)# clock timezone MSK 3
c3560G(config)# clock summer-time MSD recurring last Sun Mar 2:00 last Sun Oct 2:00
12. Сделаем так, чтобы по команде show logging отображалось нормальное время, а не кол-во дней и т.п.
c3560G(config)# service timestamps log datetime localtime
13. Зададим дефолтовые настройки сразу всем портам на девайсе (у меня catalyst 24 порта + 4 SFP)
c3560G(config)# interface range gi 0/1 — 28
c3560G(config-if-range)# description not_used
c3560G(config-if-range)# shutdown
c3560G(config-if-range)# no cdp enable
c3560G(config-if-range)# switchport nonegotiate
c3560G(config-if-range)# switchport mode access
c3560G(config-if-range)# exit
Рекомендую: все неиспользуемые порты держать выключенными, а ещё лучше создать влан (например 999) и все выключенные порты переместить в него:
c3560G(config)# vlan 999
c3560G(config-vlan)# name unused_ports
c3560G(config-vlan)# shutdown
c3560G(config-vlan)# exit
c3560G(config)# interface range gi 0/1 — 28
c3560G(config-if-range)# description not_used
c3560G(config-if-range)# shutdown
c3560G(config-if-range)# no cdp enable
c3560G(config-if-range)# switchport nonegotiate
c3560G(config-if-range)# switchport access vlan 999
c3560G(config-if-range)# switchport mode access
c3560G(config-if-range)# exit
14. Выключим web-интерфейс, командная строка рулит ;)
c3560G(config)# no ip http server
15. Зададим gateway по умолчанию (допустим это будет 192.168.1.1, т.к. мы присвоили девайсу IP 192.168.1.2/255.255.255.0)
c3560G(config)# ip default-gateway 192.168.1.1
16. Если этот свич будет моддерживать маршрутизацию (будет router`ом), то включим функцию маршрутизации (если это позволяет сам девайс и его прошивка)
3560G прекрасно справляется с функцией маршрутизации
c3560G(config)# ip routing
c3560G(config)# ip classless
c3560G(config)# ip subnet-zero
17. Если вы выолнили пункт 16-ть, то снова необходимо задать gateway по умолчанию, но уже другой командой
c3560G(config)# ip route 0.0.0.0 0.0.0.0 192.168.1.1
18. Настроим access-list для доступа к свичу только с определенных IP-адресов
c3560G(config)# ip access-list standard TELNET
c3560G(config-std-nacl)# permit 192.168.1.1
c3560G(config-std-nacl)# permit 192.168.1.15
c3560G(config-std-nacl)# exit
19. Применим этот access-list
c3560G(config)# line vty 0 15
c3560G(config-line)# access-class TELNET in
20. Зададим timeout неактивности telnet сессии, по истечении указанного времени, если вы в консольке ничего не вводили, то telnet соединение будет автоматически закрываться
c3560G(config-line)# exec-timeout 5 0
c3560G(config-line)# exit
21. Включим SNMP, но только read only (RO) и доступность только с хоста 192.168.1.1
c3560G(config)# snmp-server community RO-MY-COMPANY-NAME RO
c3560G(config)# snmp-server trap-source Vlan1
c3560G(config)# snmp-server source-interface informs Vlan1
c3560G(config)# snmp-server location SWITCH-LOCATION
c3560G(config)# snmp-server contact my-email@my-domain.ru
c3560G(config)# snmp-server host 192.168.1.1 RO-MY-COMPANY-NAME
c3560G(config)# exit
22. Ну и наконец сохраним свои труды
c3560G# copy running-config startup-config
или можно проще и короче :)
c3560G# wri
Море документации по catalyst`ам, и не только по ним, вы можете найти, ессно, на сайте производителя: www.cisco.com
23. Если хочется включить на девайсе ssh, чтобы подключаться к cisco по ssh (если это позволяет установленный IOS), то выполним следущее:
а) Обязательно указываем имя домена (необходимо для генерации ключа) см. пункт 8.
б) cisco(config)# crypto key generate rsa
в) cisco(config)# line vty 0 15
г) cisco(config)# transport preferred none
д) cisco(config)# transport input ssh
е) cisco(config)#transport output ssh
Подробнее по настройке ssh: Configuring Secure Shell on Routers and Switches Running Cisco IOS

Взято с: http://subnets.ru/blog/?p=333

Тегирование native vlan на Cisco Catalyst

Недавно столкнулись с тем, что на практике никто точно не знает как настроить тегирование native vlan на транковом интерфейсе. Логично полагалось, что подходящей командой из набора switchport trunk, но все оказалось немного не так.
Все дело в том, что, по умолчанию, все транковые интерфейсы уже настроены на тегирование native vlan трафика:

SW1#sh int gi5/48 switchport
Name: Gi5/48
Switchport: Enabled
Administrative Mode: trunk
Operational Mode: trunk (member of bundle Po3)
Administrative Trunking Encapsulation: dot1q
Operational Trunking Encapsulation: dot1q
Negotiation of Trunking: Off
Access Mode VLAN: 1 (default)
Trunking Native Mode VLAN: 1 (default)
Administrative Native VLAN tagging: enabled
Voice VLAN: none
Administrative private-vlan host-association: none
Administrative private-vlan mapping: none
Administrative private-vlan trunk native VLAN: none
...

,но так как эта опция, также по умолчанию, отключена глобально, то и толку от этой настройки интерфейса никакого. Что и показывает нам вывод команды show vlan dot1q tag native:

SW1#sh vlan dot1q tag native
dot1q native vlan tagging is disabled globally

Per Port Native Vlan Tagging State
----------------------------------

Port Operational    Native VLAN
         Mode      Tagging State
-------------------------------------------

Gi1/1   trunk        disabled
Gi1/2   trunk        disabled
Gi5/9   trunk        disabled
Gi5/48  trunk        disabled
...

Но и просто без оглядки включить глобально тегирование native vlan неразумно, т.к. все ваши транки тут же его подхватят (напомню, что они настроены это делать по умолчанию) и вы получите ошибки в работе например MST, LACP PDU, UDLD и пр. На тех транках которые привыкли, что native vlan идет без тега (а это все транки между оборудованием Cisco, да и любых других производителей, придерживающихся стандартов) необходимо сперва отключить подобное тегирование.
Поэтому порядок действий для безболезненного включения native vlan tagging такой:
 
  • на тех транках, где мы не хотим тегировать native vlan даем команду: no switchport trunk native vlan tag. Естественно, в режиме конфигурации интерфейса. Ее можно увидеть по show run:
SW1#sh run int gi5/48
Building configuration...

Current configuration : 301 bytes
!
interface GigabitEthernet5/48
description -= C12-12 Portchannel3-Intel-Center =-
switchport trunk encapsulation dot1q
no switchport trunk native vlan tag
switchport trunk allowed vlan 510,550
...

  • После того, как мы обезопасили те транки, которым такое тегирование не надо - даем глобальную команду: vlan dot1q native tag, включающую собственно тегирование глобально;
  • и потом проверяем show vlan dot1q native tag;

SW1#sh vlan dot1q tag native
dot1q native vlan tagging is enabled globally

Per Port Native Vlan Tagging State
----------------------------------

Port Operational     Native VLAN
        Mode         Tagging State
-------------------------------------------

Gi1/2  trunk          disabled
Gi4/46 trunk          disabled
Gi5/47 trunk          disabled
Gi5/48 trunk          disabled
Gi6/33 trunk           enabled
Gi6/34 trunk           enabled
Gi6/43 trunk          disabled
Gi6/44 trunk          disabled
...

где видно, какие транки тегируют native vlan, а какие - нет и что мы получили именно то, что хотели.

Взято с: http://i-ivanov.livejournal.com/15037.html

Как скопировать много файлов или директорию из флеш памяти коммутатора или маршрутизатора Cisco на tftp сервер?

Предположим, требуется скопировать директорию из флеш памяти коммутатора или маршрутизатора Cisco на tftp сервер. Предположим, директория содержит несколько сотен файлов и вложенных директорий с файлами. Как все это скопировать одним махом?
Ответ: использовать команду 'archive tar /create'.

test_switch#archive tar ?
  /create  create a tar file
  /table   List files in tar file
  /xtract  Extract files in tar file

Посмотрим, как это выглядит в деле на коммутаторе cisco WS-C2960-24TT-L.
Просматриваем содержание флеши:
test_switch#dir
Directory of flash:/

    2  -rwx        2456  Dec 23 2009 13:12:16 +01:00  vlan.dat
    3  -rwx          27  Mar 11 2010 14:49:27 +01:00  private-config.text
    5  -rwx        7647  Mar 11 2010 14:49:27 +01:00  config.text
    6  drwx         192   Mar 1 1993 01:06:26 +01:00  c2960-lanbase-mz.122-25.SEE2

32514048 bytes total (24794112 bytes free)
test_switch#

Мы хотим скопировать дирикторию html. Убедмися, что она действительно есть на флеши и содержит много вложенных папок и файлов.
test_switch#
test_switch#cd c2960-lanbase-mz.122-25.SEE2
test_switch#

test_switch#dir
Directory of flash:/c2960-lanbase-mz.122-25.SEE2/

    7  drwx        4480   Mar 1 1993 01:05:01 +01:00  html
  619  -rwx     4670535   Mar 1 1993 01:06:26 +01:00  c2960-lanbase-mz.122-25.SEE2.bin
  620  -rwx         457   Mar 1 1993 01:06:26 +01:00  info

32514048 bytes total (24794112 bytes free)
test_switch#
test_switch#
test_switch#cd html
test_switch#dir
Directory of flash:/c2960-lanbase-mz.122-25.SEE2/html/

    8  -rwx         577   Mar 1 1993 01:04:29 +01:00  title.js
    9  -rwx          62   Mar 1 1993 01:04:29 +01:00  more.txt
 ……………………
 ……………………
   68  -rwx        8530   Mar 1 1993 01:04:39 +01:00  express-setup.htm
   69  drwx        1152   Mar 1 1993 01:04:40 +01:00  en
  104  drwx        1152   Mar 1 1993 01:04:43 +01:00  de
  139  drwx        1152   Mar 1 1993 01:04:46 +01:00  es
  174  drwx        1152   Mar 1 1993 01:04:49 +01:00  fr
  209  drwx        1152   Mar 1 1993 01:04:53 +01:00  it
  244  drwx        1152   Mar 1 1993 01:04:56 +01:00  ja
  280  drwx        1152   Mar 1 1993 01:04:59 +01:00  zh
  315  drwx         256   Mar 1 1993 01:05:01 +01:00  help
  320  drwx       19072   Mar 1 1993 01:05:31 +01:00  images

32514048 bytes total (24794112 bytes free)
test_switch#

С помощью команды 'archive tar /create' выполним копирование. Будем копировать на сервер с адресом 192.168.18.1, в файл html.tar .
test_switch#
test_switch# archive tar /create tftp://192.168.18.1/html.tar flash:/c2960-lanbase-mz.122-25.SEE2/html
!!
archiving title.js (577 bytes)
archiving more.txt (62 bytes)
   ……………………………
   ……………………………
   … и еще около шестисот строк …
   ……………
archiving images/gbic_t_green.gif (242 bytes)
archiving images/gbic_empty_amber.gif (179 bytes)
test_switch#


В итоге получаем файл html.tar на tftp сервере.
Таким образом, мы легко и быстро скопировали паку содержащую более 600 файлов.

P.S. Если необходимо просто скопировать файл, то copy [что копируете] [куда копируете].

Как удалить директорию с файлами из флеши коммутатора или маршрутизатора Cisco?

Иногда требуется удалить директорию с файлами из флеш памяти коммутатора или маршрутизатора Cisco. Например, нужно выполнить обновление ios. При этом не хотелось бы удалять старый ios не убедившись, что с новым все работает нормально. Но свободного места под новый ios на недостаточно. Надо как-то освободить флеш. Можно стереть html старого ios. Если просто выполнить команду ‘delete html', получим сообщение об ошибке. Вот как это выглядит:

Просматриваем содержание флеши.


test_switch#sh flash

Directory of flash:/
………………
    3  -rwx        2456   Mar 1 1993 02:46:21 +01:00  vlan.dat
    5  -rwx        4292   Feb 8 2010 05:56:22 +01:00  config.text
    6  drwx         192   Mar 1 1993 01:06:14 +01:00  old_image
……………
test_switch#

переходим в каталог old_image

test_switch#
test_switch#cd old_image
test_switch#
test_switch#dir
Directory of flash:/old_image/

    7  drwx        4480   Mar 1 1993 01:04:50 +01:00  html
  619  -rwx     4670535   Mar 1 1993 01:06:14 +01:00  old_image.bin
  620  -rwx         457   Mar 1 1993 01:06:14 +01:00  info
………………
test_switch#

Пытаемся удалить папку html

test_switch#
test_switch#
test_switch#delete html
Delete filename [/old_image/html]?
Delete flash:/old_image/html? [confirm]
%Error deleting flash:/old_image/html (Is a directory)
test_switch#

Таким образом, обычной командой 'delete удалить каталог не удается.
Надо использовать команду 'delete' с ключем '/recursive'. В этом случае дтректория будет удалена вместе со всеми вложенными поддиректориями и файлами. Для того, чтобы не подтверждать удаление каждого файла можно использовать ключ '/force'.

test_switch#delete /force /recursive flash:/old_image/html
test_switch#
test_switch#dir
Directory of flash:/old_image/

  619  -rwx     4670535   Mar 1 1993 01:06:14 +01:00  old_image.bin
  620  -rwx         457   Mar 1 1993 01:06:14 +01:00  info
………………
test_switch#

В итоге папка html успешно удалена.


В примере использовалось железо cisco WS-C2960-24TC-L с Cisco IOS Software, C2960 Software (C2960-LANBASEK9-M), Version 12.2(52)SE, RELEASE SOFTWARE (fc3)

Мини-справочник по командам Cisco

show version
Показывает наименование модели циски, версию IOS, название и местоположение двоичного образа загрузки IOS (обычно во flash: сжатый файл с названием cMMMM-D-EE.NNN-O.F.bin, где MNO цифры, DEF буквы), распределение и размер ОЗУ, размер NVRAM, размер flash, содержимое конфигурационного регистра.

show startup-config
Показывает содержимое конфигурации, которая применяется при загрузке. Можно скопировать эти данные в буфер обмена и сохранить в файл в качестве бэкапа конфигурации. Этот файл потом можно просто вставить (с небольшими оговорками) из буфера обмена в экран консоли, дать команду wr mem, и этим восстановить конфигурацию (многие программы, автоматически сохраняющие и обновляющие конфигурацию, применяют как раз такой метод).

copy startup-config running-config
Отменяет все сделанные (если были) изменения в конфигурации. То же самое произойдет, если выключить/включить питание (перезагрузить устройство).

copy running-config startup-config
Сохраняет в энергонезависимой памяти все изменения, сделанные в конфигурации. Полный аналог команды write или write memory.

write
Сохраняет в энергонезависимой памяти все изменения, сделанные в конфигурации. Полный аналог команды write memory или copy running-config startup-config.

show flash
Показывает размер, свободное место и содержимое (в виде списка) энергонезависимой памяти, которая работает с точно так же, как диск. На этом диске хранятся файлы, с которых записана IOS и конфигурация циски (startup-config и другие). Файлами можно манипулировать командами IOS.

terminal monitor
Переключает вывод debug-информации с консольного порта (RS232) на консоль, подключенную через сетевой интерфейс.

(no) service password-encryption
Команда, которая показывает пароли enable в конфиге в (открытом)закрытом виде

(no) logging console
Команда, которая (выключает)включает вывод сообщений системного журнала на консоль (RS232)

logging console <0-7>
Команда, включает вывод сообщений системного журнала на консоль (RS232) определённого уровня (0 меньше всего сообщ. - emergencies System is unusable, 7 - больше всего сообщений - Debugging messages)

loggig buffered
Указание сохранять сообщения в ОЗУ для последующего ознакомления

show logging
Вывод сообщений из ОЗУ

show flash: all
Показывает статус flash - сколько занято, свободно, контрольные суммы, сколько банков и их параметры, тип микросхем памяти.

show interfaces
Одна из наиболее часто используемых команд, показывает количество, параметры, состояние интерфейсов и ещё много разной информации. См. “Расшифровка вывода команды show interfaces”.

show vlan
Показать существующие vlan и привязку к ним физических интерфейсов.

erase nvram
Очистка конфигурации (startup-config и другая информация), полный сброс энергонезависимой памяти.

configure <memory|network|overwrite-network|terminal>
Вход в один из разновидностей режима configure - изменение конфигурации. Наиболее часто используемый режим configure terminal (подключение как через консольный порт RS232, так и по сети через telnet или ssh).

end
Полный выход из режима configure. Тот же эффект дает Ctrl-Z.

exit
Шаг назад по дереву конфигурирования (например, выход из реж. конфигурирования одного из интерфейсов).

no vlan n
Удалить vlan n.

(no) shutdown
Административно (включить) выключить сетевой интерфейс.

show vtp status
Показать конфигурацию режима VTP.
vtp mode <server|client>
Включить требуемый режим работы VTP.

show debugging
Показать накопленную (в памяти) статистику отладки.

undebug all
Полностью выключить отладку.


traceroute aaa.bbb.ccc.ddd
Аналог tracert aaa.bbb.ccc.ddd - показать маршрут до указанного IP.

show process cpu
Показать статистику загрузки процессора (в том числе и каждой задачей).

show process cpu history
Показать статистику загрузки процессора с временнЫми графиками.

who
Показать сеансы администраторов, залогинившихся в терминал циски. Выводит примерно следующее:
   Line       User      Host(s)              Idle      Location
* 98 vty 0     ciadmin   idle                 00:00:00 10.50.9.152
  Interface    User              Mode         Idle    Peer Address

ssh -v 2 -l root a.b.c.d
Подсоединиться к Knopix по SSH версии 2.

no banner login
Удаляет из конфига все строки banner login (приветствие при логине).

show interfaces port-channel n
Показывает состояние канала портов под номером n, какие порты туда входят.

show ip eigrp neighbors
Показывает EIGRP-соседей, какими интерфейсами с ними контакт, номер EIGRP-процесса.

show ip eigrp interfaces
Показывает список интерфейсов, вовлеченных в EIGRP, номер EIGRP-процесса.

show ip eigrp traffic
show ip eigrp topology
Показывает статистику работы EIGRP, номер EIGRP-процесса.

snmp-server community <строка_пароль> <RW / RO> [номер access-листа]
Команда вводится в режиме глобального конфигурирования. Настраивает доступ к внутреннему snmp-серверу для специального ПО (например, чтобы CiscoWorks Device Fault Manager мог собирать статистику о состоянии оборудования). Параметр <строка_пароль> представляет собой community-string, который используется для аутентификации при подключении. Если указать RW, то будет разрешен полный доступ (чтение и запись) в SNMP базу данных устройства (можно не только считывать состояние, но и менять параметры устройства), если RO, то доступ будет только на чтение. Номер access-листа позволяет отфильтровать нежелательные подключения.

setup
Команда setup привилегированного режима запускает мастера первоначальной настройки.

terminal history size n
Команда, меняющая количество запоминаемых ранее введенных команд (n max 256).

telnet IP-адрес
Команда позволяет подключиться к другой циске. <Ctrl+Shift+6> <x> позволяет приостановить сеанс Telnet (не разрывая его) и вернуться к собственной командной строке устройства. Команда disconnect без параметров позволяет разорвать последнее приостановленное соединение, а resume без параметров возобновляет последнее приостановленное соединение.

show diag [номер слота]
Команда показывает подробную информацию о материнской плате устройства Cisco и/или об установленных в слоты адаптерах.

show environment
Команда на некоторых устройствах (чаще дорогих и продвинутых) показывает состояние вентиляторов и температуру устройства, иногда значение питающих напряжений.

show ip interface
Команда показывает подробную информацию об интерфейсах в контексте протокола IP.

show ip sockets
Команда показывает открытые порты и активные соединения устройства Cisco.

show ip traffic
Команда показывает подробную инфо по трафику протоколов IP (много всего, в том числе количество пакетов broadcast и multicast), ICMP, TCP, BGP, IP-EIGRP, PIMv2, IGMP, UDP, OSPF, ARP и об ошибках.

show line
Команда показывает инфо о линиях - интерфейсах специального типа, предназначенных для администрирования. Обычно это последовательная консоль (CTY, console 0 или линия 0), AUX (обычно линия 1) и консоли Telnet (например, VTY 0-181 или линии 18-199).

show line summary
Команда показывает быструю сводку о статистике использования всех линий.

show sessions
Команда показывает информацию приостановленных сессиях Telnet.

show snmp
Команда показывает статистику протокола SNMP (полезно при настройке и проверке работы протокола).

show tcp
Команда показывает подробную статистику о всех открытых соединениях с устройством Cisco

send *
Команда позволяет отсылать сообщение в консоль всех залогиненных пользователей на устройстве. 

verify flash:имя_файла_IOS
Команда позволяет проверить целостность файла (проверяются контрольные суммы). Полезно выполнить после копирования IOS во флеш (например, при обновлении IOS-а). 

clear ip nat translation *
Очистка таблицы NAT, обычно применяемая при смене правил NAT.

(config)# do команда
Очень полезная команда режима конфигурирования, которая позволяет вводить команды обычного режима (например, do show running-config). Правда, в команде do уже не работает автозавершение команды клавишей Tab и подсказка по вводу ?.