воскресенье, 15 декабря 2013 г.

Восстановление IOS на Catalyst 2960


Возникла необходимость восстановить IOS на Cisco Catalyst 2960. Кто то из ccna-щиков так хорошо подчистил после лабы флеш, что затер с него и IOS. Каталист грузился только в режиме роммон, и моргает лампочка "syst". Как оказалось подгрузить IOS по tftp как это делается в роутерах данный каталист не может. По этому пришлось заливать по консольному кабелю.
Порядок действий:
  • Заранее находим IOS (копирнул с другого каталиста).
  • Подключаемся через консольный кабель.
  • Запускаем HyperTerminal (kitty не умеет в нужном формате передавать файлы).
  • Появляется надпись: switch:
  • Дальше надо изменить скорость порта, со стандартной 9600 на что то побольше, иначе очень при очень долго будет передаваться, для этого пишем:
    switch: set BAUD 115200
  • После смены скорости придетс переподключить HyperTerminal с новой скоростью, иначе нормально работать с консолью будет невозможно.
  • Теперь на каталисте включаем копирование файла с xmodem:
    switch: copy xmodem: flash:
  • В меню HyperTerminal выбираем передачу файла (через xmodem) и указываем на файлик.
  • Ждем пока закачается IOS (мин 20ть). Затем меняем скорость консоли на обычную 9600.
  • Перезапускаем каталист.

Как правильно обновить IOS в формате tar на коммутаторах Cisco Catalyst


Итак, у вас есть файл с расширением tar, содержащий свежий IOS, который вы хотите использовать в своих коммутаторах. Процедура обновления не представляет никакой сложности, но хочется сразу предупредить о том, что восстановление коммутатора без рабочего IOS, при отсутствии надлежащего опыта, представляет собой более сложный и запутанный процесс, чем само обновление. Поэтому, нижеследующие действия производите на свой страх и риск.
Чтобы передать файл с IOS на коммутатор, вам понадобиться рабочий tftp-сервер, однако его настройка выходит за рамки данной статьи. Разместите tar-файл в рабочем каталоге сервера, после чего убедитесь, что файл имеет верную контрольную md5 сумму. Многие системные администраторы игнорируют сверку контрольных сумм по совершенно непонятным причинам. Эта процедура отнимает совсем немного времени, зато позволяет избежать больших проблем в будущем. И это время совершенно не сравнимо со временем восстановления коммутатора после заливки туда битого IOS-а.
Зайдите на коммутатор и выполните команду dir flash:, чтобы убедиться, что у вас имеется достаточно места на флеш-карте.
cisco #dir flash:
Directory of flash:/
    2  -rwx        9392   Dec 8 2010 21:22:46 +02:00  private-config.text
  547  -rwx        3096   Mar 1 1993 02:00:39 +02:00  multiple-fs
    4  -rwx        9148   Dec 8 2010 21:22:46 +02:00  config.text
    5  drwx         512   Mar 1 1993 02:09:03 +02:00  c2960-lanlitek9-mz.122-44.SE6
27998208 bytes total (18006528 bytes free)
Возможно, вам понадобиться удалить старый IOS, чтобы освободить место для нового. Сделать это можно так:
cisco#delete /force /recursive flash:c2960-lanlitek9-mz.122-44.SE6
Далее произведите загрузку и распаковку нового IOS-са на коммутатор:
cisco #archive tar /xtract tftp://c2960-lanlitek9-tar.122-52.SE.tar flash:
Loading c2960-lanlitek9-tar.122-52.SE.tar from 10.10.10.10 (via Vlan1): !
c2960-lanlitek9-mz.122-52.SE/ (directory)
c2960-lanlitek9-mz.122-52.SE/html/ (directory)
extracting c2960-lanlitek9-mz.122-52.SE/html/stylesheet.css (22059 bytes)
extracting c2960-lanlitek9-mz.122-52.SE/html/ajax.js (28348 bytes)
extracting c2960-lanlitek9-mz.122-52.SE/html/title.js (577 bytes)
extracting c2960-lanlitek9-mz.122-52.SE/html/sorttable.js (48234 bytes)
extracting c2960-lanlitek9-mz.122-52.SE/html/toolbar.js (6383 bytes)
extracting c2960-lanlitek9-mz.122-52.SE/html/ip.js (3500 bytes)
extracting c2960-lanlitek9-mz.122-52.SE/html/appsui.js (1749 bytes)
extracting c2960-lanlitek9-mz.122-52.SE/html/helpframework.js (865 bytes)
extracting c2960-lanlitek9-mz.122-52.SE/html/layers.js (1616 bytes)
extracting c2960-lanlitek9-mz.122-52.SE/html/sitewide.js (12467 bytes)
extracting c2960-lanlitek9-mz.122-52.SE/html/graph.js (39650 bytes)
extracting c2960-lanlitek9-mz.122-52.SE/html/framework.js (24955 bytes)
extracting c2960-lanlitek9-mz.122-52.SE/html/combo.js (9353 bytes)
extracting c2960-lanlitek9-mz.122-52.SE/html/forms.js (13756 bytes)
extracting c2960-lanlitek9-mz.122-52.SE/html/converter.js (4829 bytes)
extracting c2960-lanlitek9-mz.122-52.SE/html/fpv.js (41015 bytes)!
extracting c2960-lanlitek9-mz.122-52.SE/html/more.txt (62 bytes)
extracting c2960-lanlitek9-mz.122-52.SE/html/graph_dash.js (18865 bytes)
extracting c2960-lanlitek9-mz.122-52.SE/html/telnet.shtml (6642 bytes)
extracting c2960-lanlitek9-mz.122-52.SE/html/bottombanner.htm (4108 bytes)
…
extracting c2960-lanlitek9-mz.122-52.SE/c2960-lanlitek9-mz.122-52.SE.bin (7731596 bytes)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
extracting c2960-lanlitek9-mz.122-52.SE/info (423 bytes)
extracting info (106 bytes)
[OK - 11448320 bytes]
cisco#
Теперь необходимо произвести проверку загруженного образа, чтобы убедиться в его корректности:
cisco#verify /md5 flash:c2960-lanlitek9-mz.122-52.SE/c2960-lanlitek9-mz.122-52.SE.bin
.............................Done!
verify /md5 (flash:c2960-lanlitek9-mz.122-52.SE/c2960-lanlitek9-mz.122-52.SE.bin) = 4568ddfab7a957c62821e0011b3b4ed0
cisco#
Остался последний шаг: перезагрузить коммутатор и убедиться что все работает:
cisco#reload
Proceed with reload? [confirm]
Как вы видите, процедура обновления IOS довольно проста и незатейлива. Однако, хотелось бы ещё раз подчеркнуть, что она небезопасна, особенно, если вы удаляете старый IOS перед заливкой нового. Если вы работаете с удаленным коммутатором, то вы должны быть железно уверены, что канал связи будет работать стабильно на протяжении всей процедуры обновления. В противном случае вас ждет поездка и обучение восстановлению коммутаторов в полевых условиях.

среда, 11 декабря 2013 г.

Включение звуковой карты на VMware

Оригинал статьи: http://virtualization.blognotions.com/2011/07/27/virtual-hd-audio-hardware-in-vsphere-5/

Останавливаем машину, удалем ее из inventory, и  в файле *vmx, после floppy, добавить следующие строчки:
sound.present = “true”
sound.allowGuestConnectionControl = “false”
sound.virtualDev = “hdaudio”
sound.fileName = “-1″
sound.autodetect = “true”


Далее добавляем машину обратно, и проверяем.

понедельник, 9 декабря 2013 г.

VLAN'ов (номера, типы, и т.п.)

ВЗЯТО С: http://mcp1971.livejournal.com/1851.html

Диапазоны номеров VLANов
Все VLANы доступа можно разбить на два диапазона:
Обычный диапазон VLANов
- используется в малых и средних сетях
- имеют номера от 1 до 1005
- номера с 1002 до 1005 зарезервированы для Token Ring and FDDI VLANов
- номера 1, 1002 и 1005 создаются автоматически и не могут быть удалены
- все данные о VLANах хранятся в файле vlan.dat, который располагается на флеш памяти (flash:vlan.dat)
- протокол VTP может изучать VLANы только обычного диапазрна и сохранять сведения о них в vlan.dat
Расширенный диапазон VLANов
- используются провайдерами или на очень больших сетях для расширения инфраструктуры VLANов
- имеют номера от 1006 до 4094
- поддерживают меньше возможностей, чем VLANы обычного диапазона
- все данные о VLANах хранятся в рабочей конфигурации
- нет поддержки VTP
Коммутатор Cisco Catalyst 2960 поддерживает до 255 VLANов обычного и расширенного диапазонов

Типы VLANов
Все VLANы можно отнести к конкретному типу:
1. Data VLAN (VLAN данных) - VLAN, в котором проходят данные, генерируемые пользователями. Но это не могут быть голосовые данные или управляющий трафик для коммутаторов.
2. Default VLAN (VLAN по умолчанию) - VLAN, в котором находятся все порты коммутатора перед началом конфигурирования. VLAN по умолчанию для коммутаторов Cisco - VLAN1. По умолчанию управляющий трафик 2-го уровня, такой как CDP и STP, ассоциируется с VLAN1.
3. Native VLAN (родной VLAN) - VLAN, через который на порту, сконфигурированном как транковый порт (802.1Q), и пропускающем с помощью 802.1Q тегированные фреймы, сможет подключиться рабочая станция и передавать нетегированные фреймы. Это реализовано для того, чтобы к транковому порту можно было подключить компьютер, который не может тегировать фреймы. Рекомендуется использовать родным VLANом VLAN, отличный от VLAN1.
4. Management VLAN (управляющий VLAN) - VLAN, через который происводится конфигурирование. Для этого VLANу надо назначить IP адрес и маску подсети.
5. Voice VLAN (голосовой VLAN) - VLAN, предназначенный для передачи голоса. Такой VLAN должен обеспечивать:
- гарантированную полосу пропускания для обеспечения качества передачи голоса
приоритет голосового трафика по сравнению с другими типами трафика
- возможность направлять трафик в обход загруженных районов в сети
- иметь задержку менее 150 миллисекунд в сети

Бывает, что компьютер подключается к коммутатору через IP телефон. Получается, что надо разграничить на порту голосовой трафик и трафик данных. Для этого телефон представляет собой трехпортовый коммутатор. Один порт подключен к коммутатору. Второй - внутренний порт для передачи голосового трафика. Третий порт - порт, к которому подключен компьютер. Трафик с внутреннего порта телефона тегируется номером голосового VLAN. Трафик с компьютера не тегируется. Поэтому коммутатор может определить трафик, которому надо предоставить приоритет. Точно также происходит разделение входящего трафика - тегированный номером голосового VLAN - на телефон, не тегированный - на компьютер. Соответственно на порту коммутатора настраивается и голосовой VLAN, и VLAN доступа.

Режимы работы портов коммутатора в VLANах
Каждый порт коммутатора может быть настроен для работы конкретного типа VLANа различными методами:
Статический VLAN - каждому порту вручную указывается VLAN, к которому он принадледит.
Динамический VLAN - каждому порту указывается VLAN, к которому он принадледит, с помощью Сервера политики членства в VLAN (VMPS - VLAN Membership Policy Server). С VMPS можно назначить VLAN портам коммутатора динамически, на основе МАС-адреса устройства, подключенного к порту.Это полезно, когда вы перемещаете устройство с порта одного коммутатор в сети к порту другого коммутатора в сети, коммутатор динамически назначает VLAN для этого устройства на новом порту.
Голосовой VLAN - порт настраивается и для передачи тегированного голосового трафика, и для передачи нетегированного трафика данных. Для настройки голосовой VLAN используются команды:
S1(config)#interface fastethernet 0/18
S1(config-if)#mls qos trust cos - определяем голосовй трафик, как приоритетный
S1(config-if)#switchport voice vlan 150 - определяем голосовой VLAN
S1(config-if)#switchport mode access - определяем, что этот порт для данных (порт доступа - нетегированный трафик)
S1(config-if)#switchport access vlan 20 - определяем VLAN для данных

Транки VLANов
Транк - это соединение типа точка-точка между сетевыми устройствами, которые передают данные более чем одного VLANа. Если бы не было транков, для каждого VLANа при соединении коммутаторов необходимо было бы выделять отдельный порт. При транке все VLANы проходят через один порт.
Для того, чтобы транковый порт знал, к какому VLANу принадлежит фрейм, передаваемый через порт, в заголовок фрейма вводится тег 802.1Q, в котором указывается номер VLANа, также приоритет передаваемого кадра.
Если на порт поступает нетегированный фрейм, коммутатор автоматически отправляет его в родной VLAN. По умолчанию родным VLANом является VLAN1. Но его можно изменить командой:
S1(config-if)#switchport mode trunk
S1(config-if)#switchport trunk native vlan vlan-id

Для проверки, на какой родной VLAN передается нетегированный фрейм, используется команда:
S1#show interfaces interface-id switchport

DTP
DTP - это проприеритарный протокол коспании Cisco, который позволяет автоматически настраивать транкинговые режимы работы портов коммутатора. Бывает три режима работы:
On (по умолчанию) - коммутатор периодически отправляет на удаленный порт DTP-фрейм, которым извещает, что он работает как транковый порт. Включается командой S1(config-if)#switchport mode trunk. Если удаленный порт работает как access-порт, локальный порт не рекомендуется использовать с этим режимом DTP.
Dynamic auto - коммутатор периодически отправляет на удаленный порт DTP-фрейм, которым извещает, что он готов работать как транковый порт, но не требует работать в транковом режиме. Порт включает транковый режим, если удаленный порт уже работает, как транковый или у него настроен режими Dynamic desirable, порты согласовуют работу в транковом режиме. Если удаленный порт настроен тоже как  Dynamic auto, согласование не проводится - порты работают как порты доступа. Если удаленный порт - access, локальный тоже access. Включается командой S1(config-if)#switchport mode dynamic auto.
Dynamic desirable - коммутатор периодически отправляет на удаленный порт DTP-фрейм, которым извещает, что он готов работать как транковый порт и просит работать в транковом режиме. Если удаленный порт работает в режиме Dynamic auto или Dynamic desirable, порты переходят работать в транковый режим. Если удаленный порт не поддерживает согласование, локальный порт работает в нетранковом режиме.
Отключить согласование режимов работы можно командой S1(config-if)#switchport nonegotiate.

Команды для настройка VLANов
1. S1(config)#vlan vlan id - добавление VLAN.
2. S1(config-vlan)#name vlan name - присвоение имени VLANу.
3. S1#show vlan brief - проверка наличия VLANа в база данных, access-портов, принадлежащих VLANу
4. S1(config-if)#switchport mode access - перевод порта в режим работы access-порта.
    S1(config-if)#switchport access vlan vlan id - назначение номера VLANа порту.
5. S1#show interfaces [interface-id  | vlan vlan-id] | switchport - проверка режима работы конкретного интерфейса
6. S1(config-if)#no switchport access vlan - исключение порта из VLANа с настроенным номером и перевод его в
VLAN по умолчанию
7. S1(config)#no vlan vlan id - удаление VLANа из базы данных. Перед этим обязательно надо удалить все порты из этого VLANа, иначе они будут недоступны.
8. S1#delete flash:vlan.dat - удаление всей базы VLANов. Останутся только VLANы по умолчанию.
9. S1(config-if)#switchport mode trunk - принудительный перевод режима работы порта в транковый.
10. S1(config-if)#switchport trunk native vlan vlan id - изменение родного VLANа для транкового порта.
11. S1(config-if)#switchport trunk allowed vlan id - назначение VLANов, которые могут проходить через порт. Без применения этой команды все VLANы могут проходить через порт.
12. S1(config-if)#no switchport trunk allowed vlan - сброс всех разрешенных VLANов на транковом порту.
13. S1(config-if)#no switchport trunk native vlan - возвращение VLAN1 как родного VLANа на транковом порту.

суббота, 7 декабря 2013 г.

Раздача IP адресов на Cisco Catalyst WS3550-24, на основе option 82

Имеем Cisco IOS Software, C3550 Software (C3550-IPSERVICESK9-M), Version 12.2(55)SE4.

1. В режиме глобальной конфигурации указываем необходимость добавления опций в dhcp-relay сообщение:  
ip dhcp relay information option



2. В режиме глобальной конфигурации активировать DHCP-snooping для всех наших vlan-ов:
    ip dhcp snooping vlan 1,10,20-24
    ip dhcp snooping

3. Для каждого пользователя необходимо создать запись ip dhcp class
    ip dhcp class GluvBuh
    remark C3550 port 4
    relay agent information
     relay-information hex 0106000400150003020800060011921b3a00
В классе достаточно указать только relay-information, но для удобства также рекомендуется использовать комментарий remark, в который можно записать, например, данные абонента.
Здесь самое важное — понять принцип формирования hex-строки. Это 18 байт, содержащиеся в option 82
Ее содержимое состоит из двух полей: circuit-id и remote-id
circuit-id содержит номер vlan и номер физического порта, с которого пришел dhcp запрос.
remote-id содержит mac-адрес коммутатора, который отправил этот запрос.
Данную строку можно извлечь анализатором wireshark, но делать это для каждого абонента неудобно, поэтому рассмотрим, как ее сгенерировать.





 








4. После создания dhcp-классов для абонентов, настроим пулы адресов для каждого влана:
    ip dhcp pool Buggalteria
    network 192.168.3.0 255.255.255.0
     ip dhcp class GluvBuh
     address range 192.168.3.5 192.168.3.5



Описаны только основные настройки, более расширенные можно найти в интернете.
Оригинал:http://habrahabr.ru/post/192136/

среда, 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 и подсказка по вводу ?.

понедельник, 1 июля 2013 г.

Создание зеркала обновления для Avira Personal

Сохраняем данный скрипт в файл *.sh:

#!/bin/bash 
#Avira mirrorer v0.01 
#Working for Avira Free Antivirus 13 
#GB03Db 2013 

MIRROR=/media/Share/Udpate 
SRV_PATH=http://personal.avira-update.com/update/ 
OTHER="idx/master.idx idx/wks_avira13-win32-ru-pecl.idx webloader/win32/int/classic/map-classic-13-ru.xml.gz" 
INFO="idx/vdf.info.gz idx/rdf-common-int.info.gz \ 
       idx/ave2-win32-int.info.gz idx/wks_avira13-win32-ru-pecl.info.gz \ 
       idx/wks_avira13-win32-ru-pecl-info.info.gz idx/peclkey-common-int.info.gz \ 
       idx/scanner13-win32-int.info.gz idx/localdecider-win32-int.info.gz" 
GET="$(which wget) --timestamping --tries=10 --retry-connrefused --no-cache" 
MD5=$(which md5sum) 
ZCAT=$(which zcat) 

mkpath() { 
  [ -d $1 ] &&  return 0; 
  mkpath $(echo $1 | grep -E -o '.*/' | sed 's%/$%%') 
  [ $? -eq 0 ] && mkdir $1 
  return 0; 


get_with_path() { 
  ppwd=$(pwd) 
  npwd=$(echo $1 | grep -E -o '.*/' | sed 's%/$%%') 
  mkpath $npwd 
  cd $npwd 
  $GET ${SRV_PATH}${1} 
  cd $ppwd 


get_updates() { 
  get_with_path ${1} 
  [ -f ${1}.md5 ] && $MD5 -c ${1}.md5 --status 
  #Если индекс обновился или только появился то апдейтимся по нему: 
  [ $? -eq 0 ] || { 
    $MD5 ${1} > ${1}.md5 
    BIFS=$IFS 
    IFS=$'\n'; 
    for fname in $(${ZCAT} ${1} | grep '<NAME' | grep -E -o '".*\..*"' | sed 's%"%%g'); do 
      $(unset IFS && get_with_path ${fname}.gz) 
    done; 
    unset IFS 
  } 


[ -w $MIRROR ] || exit 3; 
#Иначе идем туда 
cd $MIRROR 

for str in ${OTHER}; do 
  get_with_path $str 
done 
#Качаем INFO-шки и базы из них 
for str in ${INFO}; do 
  get_updates $str 
done 

exit 0;

Где MIRROR= путь до папки с будущими обновлениями. Если выдает ошибки, проверяем: sh [пусть до скрипта].sh Ругает на некоторые строки, используем dos2unix, и пробуем выполнить скрипт снова. Скрипт скачает в папку "Update" (в данном примере) обновления.

Далее необходимо настроить антивирусы на обновления с определенной папки. Для начала в настройках антивируса, в разделе Безопасность, отключим самозащиту. В настройках обновления заранее выставим периодичность обновлений. Затем необходимо в файле AVWIN.INI (С:\User\AllUsers\ApplicationDats\Avira\AntiVirDesktop\CONFIG\) найти подраздел [UPDATE], и добавить следующие строки:


DownloadLocation=0

ShareDownloadUrl=\\Server\Share\Udpate

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



суббота, 29 июня 2013 г.

Настройка ротации логов

Logrotate - приложение, разработанное для облегчения управления лог-файлами. Особенно Logrotate полезен там, где создается большое количество лог-файлов. Утилита позволяет в автоматическом режиме архивировать, удалять, очищать и отправлять на e-mail лог-файлы. Этот процесс обычно называется ротацией лог файлов.
Logrotate может быть настроен на ежедневную, еженедельную или ежемесячную ротацию. Кроме того, можно задать размер файла, по достижении которого файл будет ротирован. Обычно logrotate выполняется в качестве каждодневного задания (cron).

Установка Logrotate

Установка обычна для Debian / Ubuntu-based дистрибутивов:
$ sudo aptitude install logrotate

Краткое описание файла настроек Logrotate

Описание того, каким образом Logrotate будет работать с тем или иным лог файлом находится в специальном конфигурационном файле. Как правило, они располагаются в директории /etc/logrotate.d/. Например, файл конфигурации для apache2 выглядит следующим образом:
$ more /etc/logrotate.d/apache2
/var/log/apache2/*.log {
        weekly              # ротация раз в неделю, возможна иная периодичность:  daily, monthly
        missingok           # отсутствие файла не является ошибкой
        rotate 52           # сохраняется последние 52 ротированных файла
        compress            # сжимать ротируемый файл
        delaycompress       # сжимать предыдущий файл при следующей ротации 
                            # (т.е. файл *.log.1 будет не сжат, а *.log.2 и далее сжатыми)
        notifempty          # не обрабатывать пустые файлы
        create 640 root adm # сразу после ротации создать пустой файл с заданными правами и пользователем
        sharedscripts       # крипты prerotate/postrotate будут выполнены только один раз
                            # не зависимо от количества журналов, подходящих под заданный шаблон
        postrotate          # скрипт будет выполнен сразу после ротации
                if [ -f "`. /etc/apache2/envvars ; echo ${APACHE_PID_FILE:-/var/run/apache2.pid}`" ]; then
                        /etc/init.d/apache2 reload > /dev/null
                fi
        endscript
}
При этом, первая строка /var/log/apache2/*.log есть ничто иное, как шаблон обрабатываемых лог-файлов. Он означает, что указанная конфигурация ротации будет использоваться для всех файлов, находящихся в директории /var/log/apache2/ и имеющих расширение "log".

Вместо
weekly
можно было указать
size 10M
тогда лог будет ротироваться вне зависимости от регулярности, но на основе своего размера: ротироваться будет лог по объему больший или равный 10 мегабайтам. Какой вариант более подходит вам — решайте сами. Но учтите, что при регулярной ротации, вам надо хотя бы примерно прикинуть максимальный размер лога, умножить его на количество сохраняых копий и убедится, что места у вас на диске хватит и останется (иначе вся ротация смысл теряет).
Допустимых директив в конфигурационном файле очень много (более 40). Поддробнее о них можно узнать из man logrotate.

Основные опции Logrotate

Как правило, после настройки конфигурационного файла появляется необходимость проверить работу logrotate для новых логов. Для этого есть возможность непосредственного запуска logrotate из командной строки. При этом допускаются следующие опции:
  • -d. Всключает режим отладки, а так же дублирует опциию -v. В режиме отладки никаких действий с логами не будет выполнено.
  • -f, --force. Заставляет logrotate выполнить ротацию логов. Бывает необходимо после добавления новых конфигурационных файлов или если старый лог файл был удалён вручную; таким образом будут созданы новые лог-файлы и журналирование будет корректно продолжено.
  • -m, --mail command. Указывает, какую команду использовать для отправки журналов по почте. Команда должна принимать 2 входных параметра:
    • заголовок письма
    • получателя письма
    После этого команда должна прочитать сообщение со стандартного входа (STDIN) и отправить его получателю. Командой по умолчанию является /usr/bin/mail -s
  • -s, --state statefile. Указывает на использование альтернативный файл состояния. Полезно в случаях, когда logrotate работает от имени разных пользователей для различных наборов лог-файлов. Дефолтный файл состояния: /var/lib/logrotate/status
  • --usage. Выводит краткую инструкцию по использованию утилиты.
  • -v, --verbose. Вывод диагностических сообщений во время ротации.

Пример настройки Logrotate

В качестве примера допустим, что в директории /home/site/debianworld.ru/logs/ располагаются лог-файлы таких веб серверов, как nginx и apache. Работают они в связке:nginx - фронтенд, apache2-бэкенд.
$ more /etc/logrotate.d/debianworld.ru
# Ротация логов nginx (front-end)
# Отдает статику, все остальное - проксирует на apache.
# Лог ведется более интенсивно. 
/home/dw/debianworld.ru/logs/nginx_*.log {
    daily                   # ежедневная ротация
    missingok               # отсутствие файла не является ошибкой
    rotate 45               # хранится история за 45 дней
    compress                # ротируемые файлы сжимаются
    delaycompress           # ротируемый файл не сжимается, остальные - сжимаются
    notifempty              # не обрабатывать пустые файлы
    create 640 dw www-data  # права, пользователь нового файла
    sharedscripts           # prerotate/postrotate выполняются только 1 раз
    prerotate               # Cбор статистики посещений для AWstats
            /usr/bin/perl /usr/lib/cgi-bin/awstats.pl -update -config=debianworld.ru -databasebreak=day
    endscript               
    postrotate              # Перезапуск nginx
            [ ! -f /var/run/nginx.pid ] || kill -USR1 `cat /var/run/nginx.pid`
    endscript
}

# Ротация логов apache2 (back-end)
# Лог ведется менее интенсивно.
/home/dw/debianworld.ru/logs/apache*.log {
    weekly                   # еженедельная ротация
    missingok                # отсутствие файла не является ошибкой
    rotate 4                 # хранится история за 4 недели
    compress                 # ротируемые файлы сжимаются
    nodelaycompress          # ротируемый файл так же сжимается
    notifempty               # не обрабатывать пустые файлы
    create 640 dw www-data   # права, пользователь нового файла
    sharedscripts            # postrotate выполняется только 1 раз
    postrotate               # Перезапуск apache2
            if [ -f /var/run/apache.pid ]; then
                /etc/init.d/apache2 restart > /dev/null
            fi
    endscript
}
Комментарии по ходу текста не должны оставить вопросов. Но в общем, схема такова, что отдельно ротируются логи nginx, отдельно логи apache2. При этом, так как nginx является front-end'ом и его лог наполняется интенсивнее, чем у apache, то он (лог nginx) ротируется в 7 раз чаще, чем лог apache2.
Кроме того, при каждой итерации ротирования логов nginx выполняется сбор статистики посещений AWstats (см. Установка и настройка AWstats и Настройка AWstats для генерации статистики по дням).
После того, как конфигурационный файл создан, необходимо убедиться, что все будет работать именно так, как и задумано. Для этого необходимо выполнить (при этом, реальных изменений никаких не будет, так как запуск будет выполнен в отладочном режиме):
$ sudo logrotate -d /etc/logrotate.d/debianworld.ru
После того, как по диагностическим сообщениям стало ясно, что все в порядке, необходимо непосредственно запустить ротацию:
$ sudo logrotate -v -f /etc/logrotate.d/debianworld.ru
В дальнейшем ротация будет выполняться автоматически с заданным в конфигурационном файле интервалом