6 июн. 2014 г.

SNR-S2950-24G. Boot раздел.

Просматривая help о том как сбросить пароль на SNR-S2950-24G, где-то на nag.ru столкнулся с такой интересной вещью, как удаление конфига из загрузчика.
Приступим.
Включаем наш девайс и в процессе его загрузки жмем ctrl+b, если все сделали правильно, то получим приглашение вида [Boot]:

Теперь разберем что нам доступно в этом режиме:
[Boot]: ?

 ?                                     - print this list
 h                                     - print this list
 setconfig                             - set bootrom configurations
 showconfig                            - show bootrom configurations
 saveconfig                            - save bootrom configurations
 clearconfig                           - set default bootrom configurations
 ping <x.x.x.x>                        - ping test
 load <filename>                       - load system image(binary format)
 write <filename>                      - write file to flash; file gotten by 'load'
 dir                                   - show files on flash
 delete <filename>                     - delete a file
 copy <src> <des>                      - copy file between flash and CF
 setbootpassword                       - set boot password(3-32)
 nobootpassword                        - cancle boot password
 boot img <filename> <primary|backup>  - set configurations of image start
 boot startup-config <filename>        - set path of system configuration file
 show boot-files                       - show configurations of system start
 baudrate <value>                      - set baudrate of console
 xmodem                                - load bootrom or img by xmodem
 reboot                                - reboot system

Первым делом посмотрим конфиг, с которым загрузились:
[Boot]: showconfig
Host IP Address:    10.1.1.1
Host IP Mask:       255.255.255.0
Server IP Address:  10.1.1.2
Server IP Mask:     255.255.255.0
Load Type:          FTP
FTP User Name:      guest
FTP User Password:  switch

Изменяем параметры при помощи setconfig (кстати, в диалоге), а сохраняем - saveconfig.

Наталкивает на мысль, что тут доступен ftp. Если верить производителю, то ftp нужен для обновления ПО и настройки файлов конфигурации.

Остальные параметры понятны на уровне перевода. Единственный пункт, который заслуживает внимания - setbootpassword.
Этим параметром устанавливается пароль на вход в сам режим boot, даже с установленный паролем устройство загрузится не запрашивая его, а вот если решите обновить ПО или изменить скорость на консольном порту, то придется вводить пароль. Если пароль забыт, то скорее всего придется "ковырять" устройство изнутри, при помощи программатора, но это уже другая история.

5 июн. 2014 г.

Cisco 2950. Ответы на запросы.

Итак, у нас накопилось 3 вопроса о cisco 2950:
1. как на cisco2950 сбросить пароль
2. сброс к заводским настройкам cisco
3. cisco 2950 питание

Думаю, что пункты 1 и 2 можно объединить в один. Ранее я писал как "снести" конфигурационный файл при забытом пароле. Посмотреть можно тут.

Если не пользоваться "волшебной кнопкой", то второй пункт можно решить командой erase:
Switch>enable 
Password: 
Switch#erase ?
  /all            Erase all files(in NVRAM)
  flash:          Filesystem to be erased
  nvram:          Filesystem to be erased
  startup-config  Erase contents of configuration memory

Теперь разберемся:
/all - удалит все файлы в nvram
flash: - стирает все из flash-памяти
nvram: - стирает все из nvram-памяти
startup-config - удалит конфиг с которым и загружается устройство.

Что следует помнить
1. Удаление данных из nvram удаляет 2 конфига: startup-config и private-config.
2. Очистка flash может послужить причиной того, что ваша cisco более не загрузится и данные придется заливать через виндовый z-modem из гипертерминала, под linux я не встречал подобных решений, может кому-то и повезло.
3. удаление startup-config удалит только startup-config и после перезагрузки система предложит настроить её при помощи диалога или отказаться от него.

Теперь касательно вопроса о питании
Устройство укомплектовано блоком питания 110-127 V - 1A / 200 - 240 - 0.5A (50-60 Hz)
Указан максимальный ампераж БП. В моей практике 0.5 А, она никогда не потребляла.  Максимум 0.2 А.

27 мая 2014 г.

Всё о SNR-S2950-24G

По просьбам трудящихся и всех остальных кто google'ил и Яндекс'ил и случайно попадал на мою страницу в с вопросами "настройка ip snr-s2950-24g" и "snr-s2950-24g как узнать его ip", а таких немало.


Итак по порядку:
Настройка этого оборудования происходит через консольный порт, расположенный у нее на "морде" кабелем, который идет в комплекте, с одной стороны кабель RS-232, а с другой RJ-45. 


Теперь вопрос "как узнать его IP", ответ - по умолчанию ip 192.168.1.1 с маской 255.255.255.0, логин по умолчанию admin



Теперь о непосредственной настройке:

snr-s2950 - это управляемый коммутатор второго уровня. CLI (command line interface) визуально похож на CLI компании CISCO, но тем не менее им не является, т.к. CISCO написан на IOS, а snr, все же на linux, это мы можем узнать из логов загрузки, хотя в моем случае используется предыдущая модель:

System is booting, please wait...
Testing RAM...
0x04000000 RAM OK.
Attaching to file system ... done.

Loading flash:/nos.img ...

Starting at 0x10000...


Attaching to file system ... done.

Current time is Sun Jan 01 00:00:00 2006

SNR-S2950-24G Series Switch Operating System

Software Version 6.2.138.58
Compiled Oct 31 00:40:31 2011

26 Ethernet/IEEE 802.3 interface(s)

Mac Addr 00-03-0f-27-a4-e8

Loading factory config ...
%Jan 01 00:00:37 2006 %LINK-5-CHANGED: Interface Vlan1, changed state to UP
web server is on
%Jan 01 00:00:37 2006 %LINK-5-CHANGED: Interface Ethernet1/1, changed state to UP
%Jan 01 00:00:37 2006 %LINEPROTO-5-UPDOWN: Line protocol on Interface Ethernet1/1, changed state to DOWN
%Jan 01 00:00:37 2006 %LINK-5-CHANGED: Interface Ethernet1/2, changed state to UP
%Jan 01 00:00:37 2006 %LINEPROTO-5-UPDOWN: Line protocol on Interface Ethernet1/2, changed state to DOWN
...
%Jan 01 00:00:37 2006 %LINK-5-CHANGED: Interface Ethernet1/26, changed state to UP
%Jan 01 00:00:37 2006 %LINEPROTO-5-UPDOWN: Line protocol on Interface Ethernet1/26, changed state to DOWN
SNR-S2950-24G>

Итак "она" загрузилась.
Чтобы получить список доступных команд нужно набрать ? (знак вопроса), получим такой листинг:

SNR-S2950-24G>?
Exec commands:
  clear               Reset functions
  crypto              Ssh crypto key clear command 
  debug               Debugging functions
  disable             Turn off privileged mode command
  enable              Turn on privileged mode command
  exit                End current mode and down to previous mode
  help                Description of the interactive help system
  language            Set language
  no                  Negate a command or set its defaults
  ping                Send ipv4 echo messages
  ping6               Send ipv6 echo messages
  set                 Set
  show                Show running system information
  telnet              Connect remote computer
  traceroute          Trace route to destination
  traceroute6         Trace route to IPv6 destination
  virtual-cable-test  Start virtual cable test
  who                 Display who is on vty

Команды я переводить не стану, т.к. большая часть техники в нашу страну поставляется на английском языке и английский язык для админа - это, по сути, его хлеб. Теперь от лирики к делу.

SNR-S2950-24G>enable   - входим в меню настройки

В данном оборудовании предусмотрен мастер настройки, вызывается командой setup:

SNR-S2950-24G#setup

Получим следующее:


---System Configuration Dialog---



At any point you may enter a question mark '?' for help.

Default settings are in square brackets '[]', if you do
not change the default settings, you may input enter.

Continue with configuration dialog? [y/n]:

Решаемся на настройку, нажимая "y", система предложит выбрать язык:


Continue with configuration dialog? [y/n]:y

Please select language:

[0]: English

[1]: Chinese

Selection(0|1)[0]:

Тут кому что удобно: 0 - для знатоков английского, 1 - для тех, кто по-китайски умеет, я выбираю 0, т.к. китайский для меня, пока, на уровне хардкора, хотя, если вы всё же случайно нажали 1, то всегда можно прервать выполнение комбинацией "ctrl + C".
Собственно, конфигурационное меню:

Configure menu
[0]: Config hostname
[1]: Config interface-Vlan1
[2]: Config telnet-server
[3]: Config web-server
[4]: Config SNMP
[5]: Exit setup configuration without saving
[6]: Exit setup configuration after saving

0 - позволит задать имя узла
1 - Задает IP адрес для vlan1 и в нем же настраивается возможность удаленной настройки через vlan1
2 и 3 - позволяют включить/отключить службу telnet и web соответственно, а так же задать имена пользователей и пароль к ним.
4 - выполняется настройка SNMP протокола.
5 и 6 - выход без сохранения конфига и с сохранением конфига соответственно.


Рассмотрим настройку оборудования на примере: нужно задать ip как 10.10.0.1 с маской 255.255.255.0, добавить vlan 2, сделать access порты для vlan 2 с 1 по 22, настроить combo-порты (25 и 26), как trunk-порты для 1 и 2 vlan. В виду проблемности самих SNR, а проблем у нее много, для изменения ip и объявления нового пользователя я использовал стандартную команду setup. О проблемах этого оборудования поговорим ниже, теперь к задаче.

SNR-S2950-24G>enable 
SNR-S2950-24G#config terminal
SNR-S2950-24G(config)#

Итак, мы в режиме конфигурации. Создаем vlan2:
SNR-S2950-24G(config)#vlan 2              
SNR-S2950-24G(config-vlan2)#

На этом создание vlan2 окончено. Можно, конечно, задать имя командой:
SNR-S2950-24G(config-vlan2)#name test

Теперь добавим access порты:
SNR-S2950-24G(config-vlan2)#exit
SNR-S2950-24G(config)#interface ethernet 1/1-22
SNR-S2950-24G(config-if-port-range)#switchport access vlan 2

Система ответит:
Set the port Ethernet1/1 access vlan 2 successfully
Set the port Ethernet1/2 access vlan 2 successfully
...
Set the port Ethernet1/22 access vlan 2 successfully

Что мы сделали? "Массово" сделали порты доступа для vlan2 с 1 по 22 порт включительно. Можно, конечно, и персонально задавать для каждого порта, для этого команда будет выглядеть так:
SNR-S2950-24G(config)#interface ethernet 1/1
SNR-S2950-24G(config-if-ethernet1/1)#switchport access vlan 2
...
SNR-S2950-24G(config-if-ethernet1/4)#interface ethernet 1/5
SNR-S2950-24G(config-if-ethernet1/5)#switchport access vlan 2

Теперь нужно сделать тегированными (trunk) портами 25 и 26:
SNR-S2950-24G(config-if-port-rp и объявления нового пользователя я использовал стандартную команду setup. О проблемах этого оборуange)#interface ethernet 1/25-26
SNR-S2950-24G(config-if-port-range)#switchport mode trunk
SNR-S2950-24G(config-if-port-range)#sw tr allowed vlan 1,2

Итак, порты тегированы. Остается только определить им скорость.
Т.к. я использую гигабитные SFP модули, но мне нужно чтобы они работали на скорости 100 мбит/с, я должен дать такую команду:
SNR-S2950-24G(config-if-port-range)#speed-duplex force100-full

На этом настройка закончена. Остается только сохранить настройки:
SNR-S2950-24G(config-if-port-range)#exit
SNR-S2950-24G(config)#exit
SNR-S2950-24G#write


Теперь расскажу о недостатках выявленных в процессе работы, хоть эти недостатки и бывают редко, но у них имеется массовость (около 10 устройств из 100):
  1. Самый важный и существенный, на мой взгляд, недостаток - это условное "зависание" устройства. Почему условное - потому что, пока его не перезагрузишь, устройство не станет работать нормально. Проявляется это со стороны клиентов, подключенных к портам, номера vlan которых отличны от 1: клиент сообщает, что все работало, а тут резко перестало.
  2. Не менее важный баг заключается в "потере" SFP модуля, т.е. устройство просто теряет модуль. Перезагрузка не помогает. При этом замена модуля ситуация спасает на неопределенный срок, а иногда приходится вовсе отходить от иcпользования SFP и подключать медиаконвертор.
  3. Этот баг также связан не только с SFP модулем, но и обычными ethernet-интерфейсами. Суть проблемы заключена в том, что в процессе работы на порту появляется произвольный линк. Отключаем кабель, а линк остается. Разумеется, если из консоли отключить интерфейс, то проблема не уйдет.

19 мар. 2014 г.

Восстановление данных InnoDB Mysql.

Чем дольше в Google ищешь, тем больше результатов и мнений, но ни одного прямого решения.
Итак, как же восстановить покусанные данные.
У меня началось с этого:
/etc/init.d/mysql startRather than invoking init scripts through /etc/init.d, use the service(8)utility, e.g. service mysql startSince the script you are attempting to invoke has been converted to anUpstart job, you may also use the start(8) utility, e.g. start mysqlstart: Job failed to start

Лезу в /var/lib/mysql, проверяем есть ли там хоть что-то:
root@doki:~# ls /var/lib/mysql
ibdata1  ib_logfile0  ib_logfile1  mysql  performance_schema  test  tv

Как видно, данные есть. В директории tv лежат, так называемые "фреймы", а в ibdata1 лежат данные БД.

Т.к. у нас не запускается сервер, то нам его надо запустить в принудительном режиме:
root@doki:/var/lib/mysql# mysqld --console --innodb_force_recovery=6

После этого он у меня ругается строкой:
140319  9:42:33 [Warning] Using unique option prefix key_buffer instead of key_buffer_size is deprecated and will be removed in a future release. Please use the full name instead.

А теперь то, что не сказано ни в одном мануале - открываем новый терминал и подключаемся к БД:
root@doki:~# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 24
Server version: 5.5.35-0ubuntu0.12.04.2 (Ubuntu)

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


mysql>

Подключились.
Теперь делаем бекап нашей СУБД:


root@doki:~# mysqldump tv -u root -p > /home/tv.sql

Убиваем службу командой: killall mysqld

Далее переименуем /var/lib/mysql:
root@doki:~# mv /var/lib/mysql /var/lib/mysql_

Создадим новую директорию mysql и дадим ей права для службы mysql:
root@doki:~# mkdir /var/lib/mysql
root@doki:~# chmown -R mysql:mysql /var/lib/mysql
root@doki:~# chmod -R 700 /var/lib/mysql

Создадим новую базу mysql:
root@doki:~# mysql_install_db
Installing MySQL system tables...
140319 10:59:17 [Warning] Using unique option prefix key_buffer instead of key_buffer_size is deprecated and will be removed in a future release. Please use the full name instead.
OK
Filling help tables...
140319 10:59:18 [Warning] Using unique option prefix key_buffer instead of key_buffer_size is deprecated and will be removed in a future release. Please use the full name instead.
OK

To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:

/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h doki password 'new-password'

Alternatively you can run:
/usr/bin/mysql_secure_installation

which will also give you the option of removing the test
databases and anonymous user created by default.  This is
strongly recommended for production servers.

See the manual for more instructions.

You can start the MySQL daemon with:
cd /usr ; /usr/bin/mysqld_safe &

You can test the MySQL daemon with mysql-test-run.pl
cd /usr/mysql-test ; perl mysql-test-run.pl

Please report any problems with the /usr/scripts/mysqlbug script!

База создалась, добавим пользователя root:
root@doki:~# /usr/bin/mysqladmin -u root password 'new-password'

Добавился пользователь root с паролем new-password
Теперь логинимся в mysql под новым паролем и создаем базу данных tv:

root@doki:~# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 5.5.35-0ubuntu0.12.04.2 (Ubuntu)

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> create database tv;
Query OK, 1 row affected (0.00 sec)

mysql> exit
Bye

Внесем данные  базу:
root@doki:~# mysql tv < /home/tv.sql

Все готово.