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

Debugging режим nslookup

В меморизз...
более подробный вывод nslookup'а:
Nslookup: set d2
 This topic has not yet been rated - Rate this topic

Turns exhaustive debugging mode on or off. All fields of every packet are printed.
Syntax

set [no]d2
Top of page
Parameters

nod2   : Turns off exhaustive debugging mode. The default syntax is nod2.
d2   : Turns on exhaustive debugging mode.
{ help | ? } : Displays a short summary of nslookup subcommands.

например, так:
nslookup
╤хЁтхЁ яю єьюыўрэш■:  UnKnown
Address:  192.168.41.20

> set d2
> ya.ru
╤хЁтхЁ:  UnKnown
Address:  192.168.41.20

------------
SendRequest(), len 37
    HEADER:
        opcode = QUERY, id = 2, rcode = NOERROR
        header flags:  query, want recursion
        questions = 1,  answers = 0,  authority records = 0,  additional = 0

    QUESTIONS:
        ya.ru.LANITNW.local, type = A, class = IN

------------
------------
Got answer (103 bytes):
    HEADER:
        opcode = QUERY, id = 2, rcode = NXDOMAIN
        header flags:  response, auth. answer, want recursion, recursion avail.
        questions = 1,  answers = 0,  authority records = 1,  additional = 0

    QUESTIONS:
        ya.ru.LANITNW.local, type = A, class = IN
    AUTHORITY RECORDS:
    ->  lanitnw.local
        type = SOA, class = IN, dlen = 41
        ttl = 3600 (1 hour)
        primary name server = alpha.lanitnw.local
        responsible mail addr = hostmaster.lanitnw.local
        serial  = 9243
        refresh = 900 (15 mins)
        retry   = 600 (10 mins)
        expire  = 86400 (1 day)
        default TTL = 3600 (1 hour)

------------
------------
SendRequest(), len 37
    HEADER:
        opcode = QUERY, id = 3, rcode = NOERROR
        header flags:  query, want recursion
        questions = 1,  answers = 0,  authority records = 0,  additional = 0

    QUESTIONS:
        ya.ru.LANITNW.local, type = AAAA, class = IN

------------
------------
Got answer (103 bytes):
    HEADER:
        opcode = QUERY, id = 3, rcode = NXDOMAIN
        header flags:  response, auth. answer, want recursion, recursion avail.
        questions = 1,  answers = 0,  authority records = 1,  additional = 0

    QUESTIONS:
        ya.ru.LANITNW.local, type = AAAA, class = IN
    AUTHORITY RECORDS:
    ->  lanitnw.local
        type = SOA, class = IN, dlen = 41
        ttl = 3600 (1 hour)
        primary name server = alpha.lanitnw.local
        responsible mail addr = hostmaster.lanitnw.local
        serial  = 9243
        refresh = 900 (15 mins)
        retry   = 600 (10 mins)
        expire  = 86400 (1 day)
        default TTL = 3600 (1 hour)

------------
------------
SendRequest(), len 23
    HEADER:
        opcode = QUERY, id = 4, rcode = NOERROR
        header flags:  query, want recursion
        questions = 1,  answers = 0,  authority records = 0,  additional = 0

    QUESTIONS:
        ya.ru, type = A, class = IN

------------
------------
Got answer (151 bytes):
    HEADER:
        opcode = QUERY, id = 4, rcode = NOERROR
        header flags:  response, want recursion, recursion avail.
        questions = 1,  answers = 8,  authority records = 0,  additional = 0

    QUESTIONS:
        ya.ru, type = A, class = IN
    ANSWERS:
    ->  ya.ru
        type = A, class = IN, dlen = 4
        internet address = 213.180.193.3
        ttl = 6188 (1 hour 43 mins 8 secs)
    ->  ya.ru
        type = A, class = IN, dlen = 4
        internet address = 213.180.204.3
        ttl = 6188 (1 hour 43 mins 8 secs)
    ->  ya.ru
        type = A, class = IN, dlen = 4
        internet address = 77.88.21.3
        ttl = 6188 (1 hour 43 mins 8 secs)
    ->  ya.ru
        type = A, class = IN, dlen = 4
        internet address = 87.250.250.3
        ttl = 6188 (1 hour 43 mins 8 secs)
    ->  ya.ru
        type = A, class = IN, dlen = 4
        internet address = 87.250.250.203
        ttl = 6188 (1 hour 43 mins 8 secs)
    ->  ya.ru
        type = A, class = IN, dlen = 4
        internet address = 87.250.251.3
        ttl = 6188 (1 hour 43 mins 8 secs)
    ->  ya.ru
        type = A, class = IN, dlen = 4
        internet address = 93.158.134.3
        ttl = 6188 (1 hour 43 mins 8 secs)
    ->  ya.ru
        type = A, class = IN, dlen = 4
        internet address = 93.158.134.203
        ttl = 6188 (1 hour 43 mins 8 secs)

------------
Не заслуживающий доверия ответ:
------------
SendRequest(), len 23
    HEADER:
        opcode = QUERY, id = 5, rcode = NOERROR
        header flags:  query, want recursion
        questions = 1,  answers = 0,  authority records = 0,  additional = 0

    QUESTIONS:
        ya.ru, type = AAAA, class = IN

------------
------------
Got answer (79 bytes):
    HEADER:
        opcode = QUERY, id = 5, rcode = NOERROR
        header flags:  response, want recursion, recursion avail.
        questions = 1,  answers = 0,  authority records = 1,  additional = 0

    QUESTIONS:
        ya.ru, type = AAAA, class = IN
    AUTHORITY RECORDS:
    ->  ya.ru
        type = SOA, class = IN, dlen = 44
        ttl = 900 (15 mins)
        primary name server = ns1.yandex.ru
        responsible mail addr = sysadmin.yandex.ru
        serial  = 2012121400
        refresh = 10800 (3 hours)
        retry   = 900 (15 mins)
        expire  = 2592000 (30 days)
        default TTL = 900 (15 mins)

------------
╚ь :     ya.ru
Addresses:  213.180.193.3
          213.180.204.3
          77.88.21.3
          87.250.250.3
          87.250.250.203
          87.250.251.3
          93.158.134.3
          93.158.134.203

четверг, 20 декабря 2012 г.

IBM IMM памятка по доступу

В мемориззз...
на примере сервера x3650M4 - интерфейсы IMM - на первом гигабитном и выделенный отдельный интерфейс (GE1 - IMM1 + IMM2).
Для доступа в BIOS - F1 при старте системы (там в настройках IMM можно посмотреть выданный по DHCP адрес).
Из описалова:
Open a web browser and in the Address or URL field, type the IP address or host name of the IMM to which you want to connect.
Note: If you are logging on to the IMM for the first time after installation, the IMM defaults to DHCP. If a DHCP host is not available, the IMM assigns a static IP address of 192.168.70.125.
On the Login page, type the user name and password. If you are using the IMM for the first time, obtain the user name and password from your system administrator. All login attempts are documented in the event log.
Note: The IMM is set initially with a user name of USERID and password of PASSW0RD (with a zero, not the letter O). You have read/write access. You must change this default password the first time you log on.
On the Welcome page, type a timeout value (in minutes) in the field that is provided. You are logged off the web interface if your browser is inactive for the number of minutes that you entered for the timeout value.
Click Continue to start the session. The System Status page provides a quick view of the server status.
например,
http://192.168.41.169/designs/imm/index-console.php#80
логин по умолчанию - USERID
пароль по умолчанию - PASSW0RD
(в пароле вместо буквы "О" - цифра "0" - ноль).
Также есть доступ по SSH:
login as: USERID
Using keyboard-interactive authentication.
Password:

MYIMM> ?
               ?  --  Display command list
       accseccfg  --  Account security configuration
        alertcfg  --  Display or change the IMM global remote alert parameters.
    alertentries  --  This command manages the recipients of alerts.
          backup  --  Creates a backup file containing the current system settings.
           batch  --  Executes CLI commands in a file.
        clearcfg  --  Resets the IMM to its default settings
        clearlog  --  Clear IMM event log
           clock  --  Display/set date, time, GMT offset, and dst setting
         console  --  Exit CLI, attach to serial console
        dhcpinfo  --  View DHCP server assigned settings
             dns  --  Displays the current DNS configuration of the IMM.
        ethtousb  --  Display and configure ethernet to ethernet over usb port mapping
            exit  --  Exit CLI (log off)
            fans  --  Displays the fan speed for all system fans
            ffdc  --  First Failure Data Capture (service data)
            help  --  Display command list
         history  --  Display history of last 8 commands
        identify  --  Control system locator LED
        ifconfig  --  Ethernet and PPP configuration
            info  --  Display and configure the information associated with the IMM
          keycfg  --  Display, add or delete activation keys
            ldap  --  LDAP configuration
             led  --  Display LED states.
             ntp  --  Displays and configures the Network Time Protocol
     passwordcfg  --  Password configuration
         portcfg  --  Serial port configuration.
           ports  --  Display and configure port numbers
           power  --  Control server power
         pxeboot  --  Enable or disable pxe next boot status
         readlog  --  Displays the IMM event log, five entries at a time
           reset  --  Reset server
         resetsp  --  Reset IMM
         restore  --  Restores the system settings using the input backup file.
 restoredefaults  --  Reset all IMM settings to factory defaults
             set  --  Set CLI environment variables and UEFI settings
            show  --  Display CLI environment variables and UEFI settings
            smtp  --  Display or set smtp server
            snmp  --  Enable or disable the SNMP agent
      snmpalerts  --  This command manages the recipients of snmp alerts
           srcfg  --  Serial redirection configuration
          sshcfg  --  Display and configures SSH parameters
             ssl  --  SSL configuration
          sslcfg  --  Displays and configures the status of the SSL Server and SSL Client
       syshealth  --  System Health
       telnetcfg  --  Display and configures Telnet parameters
           temps  --  Display system temperatures
         thermal  --  Display and configures the thermal mode policy of the host system.
        timeouts  --  Server timeouts configuration
          usbeth  --  Enable or disable the inband (Ethernet over USB) interface
           users  --  User profile configuration
           volts  --  Displays all the voltages and voltage thresholds
             vpd  --  Display VPD
Без дополнительной лицензии нет доступа к графической KVM консоли (+ аппаратный ключ).

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

Network Discovery (LLDP, OADP) на коммутационных модулях ALAXALA в Hitachi Blade CB2000

После пары часов попыток "подружить" discovery в L2 между модулем
обозначающемся в инвентори как:
Type          : 1G LANSW
Part/Model Number     : GV-BE2LSW1X1-Y
(это свич-модуль ALAXALA)
и Huawei, в частности, с использованием LLDP, решил таки покурить маны и нашел вот это:
...
(2) About compatibility with LLDPs uniquely supported by other vendors
The Link Layer Discovery Protocol (LLDP) supported by the Switch is not compatible with
LLDPs uniquely supported by other vendors#.
#
Cisco Systems: CDP (Cisco Discovery Protocol)
Extreme Networks: EDP (Extreme Discovery Protocol)
Foundry Networks: FDP (Foundry Discovery Protocol)
(3) About compatibility with the IEEE 802.1AB standard
The LLDP used by the Switch is based on IEEE 802.1AB Draft 6, but includes unique extensions.
It is therefore not compatible with the IEEE 802.1AB standard.
...
выделено жирным и подчеркнуто мной, кстати, своего "товарища" он увидел.
Также в мемориз: настройка и глобально и на портах:
(config)# lldp run
!(config)# do sh lldp
Status: Enabled  Chassis ID: Type=MAC       Info=0000.**
Interval Time: 30    Hold Count: 4  TTL: 120
Port Counts=0
!(config)# int range gi 0/1-4
!(config-if-range)# lldp ena
!(config-if-range)# exit
!(config)# do sh lldp
Status: Enabled  Chassis ID: Type=MAC       Info=0000.**
Interval Time: 30    Hold Count: 4  TTL: 120
Port Counts=4
  0/1            Link: Down Neighbor Counts:   0
  0/2            Link: Up   Neighbor Counts:   0
  0/3            Link: Down Neighbor Counts:   0
  0/4            Link: Up   Neighbor Counts:   0
когда появляется сосед запись примерно такая:
System Description: ALAXALA AX3640S GV-BE2LSW1N1 [GV-BE2LSW1N1] Switching software Ver. 10.7.F [OS-L3A]
Total Neighbor Counts=1

В OADP можно включить поддержку CDP, однако эффекта на линках с Cisco тоже замечено не было.
oadp run
oadp cdp-listener
interface range gigabitethernet 0/1-4
oadp enable

В общем, не торт...(((

четверг, 13 декабря 2012 г.

MS Windows Server 2008R2 MPIO

В мемориз...
после подключения полки Hitachi HUS110 по всем 8ми путям в разделе Управление Дисками будут 8 одинаковых неразбитых диска, чтобы они стали полноценным одним, нужно настроить многопутевой ввод/вывод (есть встроенный в систему или с диска от вендора).
Штатный виндовый:
Устанавливаем компонент "Многопутевой ввод-вывод"
Администрирование - MPIO
    Обнаружение многопутевых устройств
    HITACHI DF600F     Добавить
    Перезагрузка
После перезагрузки в Хранилище / Управление дисками - обычным образом добавить Диск.

среда, 21 ноября 2012 г.

Skype 6.x сочетания клавиш для отправки сообщений.

Пичалька... "Умные" разрабы выкатили обновление Skype, где убрана возможность переназначить дефолтный шоткат для отправки сообщений в чате. Так что привычная многим комбинация Ctrl+Enter переводит строку, а просто Enter - отправляет сообщение. Перевернули все наоборот.
По этому поводу уже достаточно криков на форуме: http://community.skype.com/t5/Windows/send-msgs-via-Ctrl-Enter-in-new-Skype-v-6/td-p/1150298/page/2
Там же есть и некое костыльное решение - использование AutoHotkey:
...
Fortunately, I’m an AutoHotkey user. The solution is ready in 10 minutes:

#IfWinActive, ^Skype ahk_class ^tSkMainForm$
*^Enter::Send, {Enter}
*Enter::Send, ^{Enter}
#IfWinActive
...
 

пятница, 2 ноября 2012 г.

Piped Serial port: Доступ к COM порту в VBox для Windows и использование socat в Linux.

В меморизз:
http://www.reactos.org/wiki/VirtualBox#Redirect_to_virtual_serial_port_.28named_pipes.2C_Windows_host.2C_com0com_.29
http://technostuff.blogspot.ru/2008/10/piped-serial-port-on-virtualbox.html
Доступ к COM порту в VBox для Windows и использование socat в Linux.
Для Windows:
VBox: enable serial port / COM1 / port mode=host pipe / create pipe / file path=\\.\pipe\asa-pipe

Putty:
serial line=\\.\pipe\asa-pipe
speed=9600

---
Linux:
enable serial port / COM1 / port mode=host pipe / create pipe / file path=/tmp/asa-pipe

socat UNIX-CONNECT:/tmp/asa-pipe TCP-LISTEN:8042
telnet localhost:8042

пятница, 26 октября 2012 г.

Windows 7 RDP shutdown

Выключение Windows 7 из сессии RDP.
Раньше достаточно было ввести в cmd: shutdown /s /f /t 0
Теперь придется добавлять причину выключения:
shutdown /s /f /t 005 /d P:0:0 /c "Plan"

Параметры QEMU для запуска в GNS3 Cisco ASA v8.4

Взято, в основном, отсюда: http://www.xerunetworks.com/2012/02/cisco-asa-84-on-gns3/
После того, как из бинарника ASA  вытащены ядро (vmlinuz) и корневая файловая система (initrd), чтобы в GNS3'е все правильно включилось, нужно добавить в настройках строки:
в раздел Qemu Options:
-vnc none -vga none -m 1024 -icount auto -hdachs 980,16,32
в раздел Kernel cmd line:
-append ide_generic.probe_mask=0x01 ide_core.chs=0.0:980,16,32 auto nousb console=ttyS0,9600 bigphysarea=65536
В противном случае, в открывшемся окне QEMU примонтированные IDE устройства начнут "мерцать", а сама ASA перезагружаться с выводом дампа отладки.

Windows Server Core ввод ключа и активация.

Взято отсюда: http://blogs.msdn.com/b/richin/archive/2008/04/09/activating-changing-product-key-on-windows-server-core-2008-after-installation.aspx

ввод ключа:
slmgr -ipk xxxxx-xxxxx-xxxxx-xxxxx-xxxxx
активация:
slmgr -ato

В целом, полезный скрипт (просмотреть возможности - ввод slmgr без параметров или /?, но он ругнется...).

Windows 7 разрешить ICMP echo (ответы на ping'и)

По умолчанию встроенный файрол блокирует ответы сетевого интерфейса на пинги. Чтобы не отключать файр полностью, добавим некоторые (не все) типы ICMP:
1. из Панель управления\Система и безопасность\Брандмауэр Windows\Дополнительные параметры, добавим правило для входящих подключений,
2. Создать правило \ Настраиваемое \ Все программы \ Тип протокола = ICMPv4, Параметры протокола ICMP \ Настроить \ Определенные типы ICMP:
- Пакет слишком велик (очень важно для трафика на протоколе GRE, например, PPTP),
- Объект назначения не доступен,
- Эхо-запрос,
- Превышено время.
3. Определяем правило для Любых адресов \ Разрешаем подключения \ Применяем ко всем профилям
4. Сохраняем правило, например, под именем "ICMP-essentials"
Уф, все...

пятница, 14 сентября 2012 г.

Cisco Frame Relay switching Connect feature.

В процессе изучения Frame Relay технологии попробовал сэмулировать сеть с парой FR свичей и 4мя клиентами (3 спока завязываются на хаб). Ниже схема включения (использовался IOU v3 от flyxj.cn):
Шнурки между двумя Frame Relay Switch'ами (FRS1 / 2) объединены в Multilink Frame Relay интерфейс - MFR0. Рутер R01 - хаб.
Получилось примерно так:
FRS1
FRS1:
interface MFR0
 no ip address
 encapsulation frame-relay IETF
 no keepalive
 frame-relay lmi-type ansi
 frame-relay intf-type nni
!
interface Serial2/0
 no ip address
 encapsulation frame-relay MFR0
 serial restart-delay 0
 no arp frame-relay
!
interface Serial2/1
 no ip address
 encapsulation frame-relay MFR0
 serial restart-delay 0
 no arp frame-relay
!
interface Serial2/2
 no ip address
 encapsulation frame-relay IETF
 serial restart-delay 0
 frame-relay lmi-type ansi
 frame-relay intf-type dce
!
interface Serial2/3
 no ip address
 encapsulation frame-relay IETF
 serial restart-delay 0
 frame-relay lmi-type ansi
 frame-relay intf-type dce
!        
connect R01-CE1 Serial2/2 102 Serial2/3 203
connect R1-CE2 Serial2/2 108 MFR0 207
connect R1-R6 Serial2/2 106 MFR0 702
---
FRS2:
interface MFR0
 no ip address
 encapsulation frame-relay IETF
 no keepalive
 frame-relay lmi-type ansi
 frame-relay intf-type nni
!
interface Serial2/0
 no ip address
 encapsulation frame-relay MFR0
 serial restart-delay 0
 no arp frame-relay
!
interface Serial2/1
 no ip address
 encapsulation frame-relay MFR0
 serial restart-delay 0
 no arp frame-relay
!
interface Serial3/0
 no ip address
 encapsulation frame-relay IETF
 serial restart-delay 0
 frame-relay lmi-type ansi
 frame-relay intf-type dce
!
interface Serial3/2
 no ip address
 encapsulation frame-relay IETF
 serial restart-delay 0
 frame-relay lmi-type ansi
 frame-relay intf-type dce
!
connect CE2-R1 Serial3/2 708 MFR0 207
connect R6-R1 Serial3/0 607 MFR0 702
По уму, здесь нужно поменять serial интерфейсы к клиентам (которые inf-type dce) на субинтерфейсы и включить clock rate, ну да задача была разобраться в connect feature...

четверг, 13 сентября 2012 г.

JunOS Olive установка в Virtual Box, апгрейд.

На просторах Интернета полно статей по установке JunOS поверх фряхи.
Например, полезняшки здесь:
http://habrahabr.ru/post/111974/
здесь:
http://pauldotcom.com/2011/05/virtualizing-junos-on-vmware.html
здесь:
http://www.packetmischief.ca/2011/03/24/installing-olive-10-4r1-under-vmware/
и, конечно, здесь:
http://juniper.cluepon.net/index.php/Olive
В целом, алгоритм ясен:
- ставим фряху с большим разделом /var,
- достаем в "труднодоступных" местах jinstall-xxx.tgz,
- распаковываем и правим ряд параметров,
- пакуем с правками тарболл взад и,
- ставим во фре, как обычный пакет pkg_add.
В процессе изучения сабжа выяснилось несколько моментов:
- не каждая фряха одинаково полезна, наилучшие результаты достигались на версии 4.11 (это при живущей уже 9ке!),
- вопреки расхожему мнению, jinstall тарболл извлекается и из iso'шников,
- патчить / править тарбол можно на любой машине, где есть tar.
Начнем с подготовки виртуалки:
- выделяем 768Мб ОЗУ,
- выделяем IDE хард на 6Гб,
- отключаем звук, USB,
- создаем serial host pipe для COM1, пусть на /tmp/junos9com1
Собственно, скопипастенные действия для JunOS 9.6:
cd /var/tmp
mkdir jinst ; cd jinst ; tar xvzf ../jinstall-9.6R1.13-domestic-olive.tgz
# rm *.md5 *.sha1 *.sig
mkdir domestic ; cd domestic ; tar xvzf ../jbundle-9.6R1.13-domestic.tgz
rm *.md5 *.sha1 *.sig
mkdir pkgtools ; cd pkgtools ; tar xvzf ../pkgtools.tgz
cd pkg ; rm *.md5 *.sha1 *.sig ; cd ..
все распаковано и все контрольные суммы прибиты, теперь подменяем скрипт проверки (обращение будет возвращать код true)
cp /usr/bin/true bin/checkpic
пакуем все обратно, стирая созданные каталоги:
tar cvzf ../pkgtools.tgz *
cd .. ; rm -rf pkgtools
tar cvzf ../jbundle-9.6R1.13-domestic.tgz *
cd .. ; rm -rf domestic/
tar cvzf ../jinstall-9.6R1.13-domestic-no-checkpic.tgz *
cd .. ; rm -rf jinst/
В результате получаем тарболл jinstall-9.6R1.13-domestic-no-checkpic.tgz, который и будет установлен:
pkg_add jinstall-9.6R1.13-domestic-no-checkpic.tgz
перезагружаемся - reboot, параллельно можно открыть консольный вывод, чтобы видеть процесс установки JunOS, или, как рекомендуемый вариант, поправим запись:
chmod +w /boot/loader.conf
vi /boot/loader.conf
находим запись console="comconsole" и исправляем ее на
    console="vidconsole"
если этого параметра нет - просто дописываем в конец файла и сохраняем.
Да, консольный вывод (используя socat), мне нравится такой вариант:
screen sudo socat /tmp/junos9com1 -
После всех проделанных процедур, получаем виртуальный рутер с ПО для Juniper M / T / MX Series.
В данной серии оборудования функционал распределяется по аппаратным модулям, ОС же играет роль центра управления, так что огромное количество фич будет не доступно, например, для работы NAT необходим service-interface (sr-0/0/0.0). Без него настройки NAT просто не применятся, кстати, в данной серии девайсов настройка NAT осуществляется через edit services nat.
Пошарив по задворкам тырнета наткнулся на пару утверждений, что для Оливки самый правильный JunOS - тот, который для J-Series (JSR?) рутеров - типа там у них все софтово творится, так что на эмуляторе пойдет кучеряво.
Надыбал  junos-jsr-10.3R1.9-domestic.tgz, который сам по себе на фряху не ставится, но им можно проапгрейдить имеющийся 9.6 JunOS.
Правим тарбол практически аналогично, с добавками (для 10й и старших версий) - везде, где видим файлы +INSTALL и +REQUIRE находим в них строки проверки архитектуры и подменяем (в vi):
check_arch_compatibility()
{
    #re_name=`/sbin/sysctl -n hw.re.name 2>/dev/null`
    re_name='olive'
    if [ -z "$re_name" ]; then
        Error "hw.re.name sysctl not supported."
    fi
комментируем строку re_name... и создаем свою с именем "olive", сохраняем все правки и пакуем обратно.
Теперь процедура обновления, в моем случае, патченный тарболл находится на локальном ftp серваке, так из cli выполняем:
request system software add unlink no-copy ftp://_username_:_password_@_ip_ftp_server_/Software/Juniper/junos-jsr-10.3R1.9-domestic-patched.tgz
Дожидаемся примерно таких строк:
JUNOS 10.3R1.9 will become active at next reboot
cat: /packages/junos-10.3R1.9-domestic.sha1: No such file or directory
Saving state for rollback ...
Removing /var/tmp/junos-10.3R1.9.tgz
и перезагружаем виртулку:
request system reboot
Новый рутер начал определяться уже как J4300, однако при настройке NAT (эта проверка настоятельно рекомендуется тем, кто планирует использовать сабж, как пограничное устройство), опять постиг облом:
error: usp_ipc_client_open: failed to connect to the server after 1 retries
поиск по ошибке указал на то, что в девайсе не хватает модуля, что проверка шасси и подтвердила:
show chassis fpc             
                     Temp  CPU Utilization (%)   Memory    Utilization (%)
Slot State            (C)  Total  Interrupt      DRAM (MB) Heap     Buffer
  0  Empty          
  1  Empty          
  2  Empty          
  3  Empty          
  4  Empty          
  5  Empty          
  6  Empty          
Кстати, здесь NAT настраивается через edit security nat...

пятница, 7 сентября 2012 г.

Привилегированный доступ к машинам Virtual Box для подключения к среде GNS3

Для создания интерфейсов подключения GNS3 запускается с правами суперпользователя (параметры запуска предваряются вариантом sudo для графических приложений - gksudo /home/_username_/GNS3-0.8.2-BETA-src/gns3.pyw). Аналогично для подключения vbox хостов приложению Virtual Box также необходимо запускаться через gksudo, при этом, файл со списком настроенных виртуалок будет использовать путь /root/.VirtualBox/VirtualBox.xml, то есть при старте мы не увидим ни одной машины. Для исправления:
бэкапим существующий файл
sudo cp /root/.VirtualBox/VirtualBox.xml /root/.VirtualBox/VirtualBox.xml.backup
копируем не-sudo файл )из домашнего каталога
sudo cp /home/_username_/.VirtualBox/VirtualBox.xml /root/.VirtualBox/VirtualBox.xml
Теперь, машины, созданные не с использованием путей по-умолчанию, будут полностью доступны и работоспособны, а те, что создавались с дефолтными параметрами, будут ссылаться на конфиги и vHHD в каталогах
src="Machines/_виртуалка_", эти сокращенные пути по факту: /home/_username_/.VirtualBox/Machines/, так что это необходимо поправить в файле
sudo vim /root/.VirtualBox/VirtualBox.xml
в разделе MachineRegistry

Virtual Box ошибка выключения и запуск в среде GNS3

При использовании Oracle Virtual Box версии 4.1.8 было замечено два глюка:
1. при выключении питания, если в работе использовались виртуалки с vboxnetX адаптерами, это выключение замораживалось с ошибкой unregister_netdevice waiting for vboxnetX to become free
2. при тестировании подключения виртуальных машин Virtual Box в среде GNS3 выдавалась ошибка vboxapi module cannot be loaded
Обе эти проблемы решались сначала полным удалением существующего приложения (4.1.8) и новой установкой пакета версии 4.1.20, собранного конкретно под текущую версию ОС - не All distributions! В моем случае, это пакет для Ubuntu 12.04 LTS ("Precise Pangolin")  i386 (http://download.virtualbox.org/virtualbox/4.1.20/virtualbox-4.1_4.1.20-80170~Ubuntu~precise_i386.deb).
В результате 1й глюк успешно побеждается, 2й же немного видоизменяется - при тесте выдается ошибка failed to start xdotool, но это чинится установкой этих самых тулзов:
sudo apt-get install xdotool

вторник, 4 сентября 2012 г.

Применение патча 0029-Integrating-Dynamips-and-GNS3-UDP-tunnels-Patches.patch для QEMU 1.0 в Ubuntu 12.04

Без данного патча подключить в GNS3 (в моем случае это версия GNS3-0.8.2-BETA) такие полезняшки как Cisco ASA и JunOS (Olive) router можно, но сложно. На просторах Интернета куча статей и HowTo по данному вопросу, однако коротко и ясно все решение было изложено у коллеги: http://kaktyc.wordpress.com/2012/05/18/запуск-qemu-хоста-в-gns3/.
В процессе использования приведенных инструкций проявилась и парочка граблей. В целом, порядок действий такой:
- выделяем каталог под сборку пакета - mkdir gns3-qemu
- проверяем версию QEMU на нашей машине (грабли №1 - нужна версия 1.0)
стоит обратить внимание, что просто команды qemu (как было раньше) уже нет, варианты:
qemu [Tab]
qemu-ga             qemu-ifup           qemulator           qemu-system-i386   
qemu-i386           qemu-img            qemu-launcher       qemu-system-x86_64 
qemu-ifdown         qemu-io             qemu-nbd            qemu-x86_64
$ qemu-i386 -version
qemu-i386 version 1.0 (qemu-kvm-1.0), Copyright (c) 2003-2008 Fabrice Bellard
$ qemu-system-i386 -version
QEMU emulator version 1.0 (qemu-kvm-1.0), Copyright (c) 2003-2008 Fabrice Bellard
Если версия ниже - необходимо проапгрейдиться до 1.0, для "правильной" версии устанавливаем девелоперские инструменты и сорцы,
- sudo apt-get build-dep qemu-kvm ,
- apt-get source qemu-kvm ,
- благодаря ссылке коллеги kaktyc'а о том, что Gentoo'шный патч подходит, качаем его:
wget -c http://dev.gentoo.org/~lu_zero/distfiles/qemu-1.0-patches.tar.xz
там также есть патчи qemu-1.1.0-patches.tar.xz и qemu-1.1.0-r1-patches.tar.xz - более поздние, но они нам не подходят,
- распаковываем и применяем нужный патч на сорцы:
tar xvJf qemu-1.0-patches.tar.xz
 cd qemu-kvm-1.0+noroms/
 patch -p1 < ../patches/0029-Integrating-Dynamips-and-GNS3-UDP-tunnels-Patches.patch
- теперь создаем deb пакет с примененным патчем:
dpkg-buildpackage -b -uc -nc -j4
- в результате будут созданы два! deb пакета (в моем случае, архитектуры i386, у коллеги amd64):
qemu_1.0+noroms-0ubuntu14.1_i386.deb и qemu-kvm_1.0+noroms-0ubuntu14.1_i386.deb
Первый содержит:
dpkg --contents qemu_1.0+noroms-0ubuntu14.1_i386.deb
drwxr-xr-x root/root         0 2012-09-02 00:55 ./
drwxr-xr-x root/root         0 2012-09-02 00:55 ./usr/
drwxr-xr-x root/root         0 2012-09-02 00:55 ./usr/share/
drwxr-xr-x root/root         0 2012-09-02 00:55 ./usr/share/doc/
drwxr-xr-x root/root         0 2012-09-02 00:55 ./usr/share/doc/qemu/
-rw-r--r-- root/root     19020 2012-09-02 00:48 ./usr/share/doc/qemu/changelog.Debian.gz
-rw-r--r-- root/root      4079 2012-09-02 00:48 ./usr/share/doc/qemu/copyright
то есть только раздел doc, а вот второй:
dpkg --contents qemu-kvm_1.0+noroms-0ubuntu14.1_i386.deb
...
drwxr-xr-x root/root         0 2012-09-02 00:55 ./usr/bin/
-rwxr-xr-x root/root     13720 2011-12-04 14:38 ./usr/bin/kvm_stat
-rwxr-xr-x root/root    987712 2012-09-02 00:55 ./usr/bin/qemu-i386
-rwxr-xr-x root/root    416616 2012-09-02 00:55 ./usr/bin/qemu-io
-rwxr-xr-x root/root   1164148 2012-09-02 00:55 ./usr/bin/qemu-x86_64
-rwxr-xr-x root/root   3734788 2012-09-02 00:55 ./usr/bin/qemu-system-x86_64
-rwxr-xr-x root/root   3566468 2012-09-02 00:55 ./usr/bin/qemu-system-i386
-rwxr-xr-x root/root    124552 2012-09-02 00:55 ./usr/bin/qemu-ga
...
Его-то нам и нужно установить:
- sudo dpkg -i qemu-kvm_1.0+noroms-0ubuntu14.1_i386.deb
В результате патч применится.
Непосредственно в самом GNS3 для запуска QEMU в разделе Edit / Preferences / Qemu / General Settings / Path to Qemu указываем не просто qemu, а qemu-system-i386 (Грабли №2).
Теперь тест - Test Settings пройдет успешно.

Проброс портов через SSH Линукс клиентом и Putty

В мемориз.
В "родном" Linux ssh client делается так:
ssh -L 44433:192.168.75.2:443 -L 54433:192.168.75.200:443 -L 43389:192.168.75.4:3389 username@ssh_gateway -N
в данном случае это не только port-forward, но еще и port-trigger (позднее мы будем коннектиться на localhost по портам, первым в записях -L).
В Putty похожее также реализовано (например, здесь: http://www.virtuallifestyle.nl/2010/03/tunneling-a-vsphere-client-connection-over-ssh/ отличное описание проброса нужных портов для VMWare Client'а с учетом того, что конкретно VMWare клиенту не следует устанавливать переключение портов - port-trigger, так как ему нужны свои родные порты 443,902 и 903). В целом, для Putty действия такие:
- новая ssh сессия (Session) - указываем ssh хост (будет ssh gateway),
- в разделе Connection / SSH / Tunnels / Add new forwarded port: указываем Source Port как Local (можно также указать, что он IPv4 или оставить Auto), в Destination Указываем адрес и порт на которые нужно будет пробросить коннекшен вида ip_server:port,
- добавляем Add это в таблицу Forwarded Ports,
- можно вернувшись в раздел Session сохранить (поименовав) ее.

понедельник, 3 сентября 2012 г.

Создание ярлыков запуска (Launcher'ов) в Ubuntu 12.04 с Gnome Shell

В мемориз.
В Ubuntu 12.04 (даже с Gnome Shell'ом) создание Launcher'ов по контекстному меню больше не работает, на рабочем столе из него можно только создавать файлы/папки, да "копипастить" всякое. Теперь эта ланчеры создаются в приложении alacarte (sudo apt-get install alacarte) - оно же Applications / System Tools / Preferences / Main Menu
Там создаем новый item, а дальше все как на обычном Launcher'е.

воскресенье, 2 сентября 2012 г.

Установка и базовая настройка SliTaz 4.0

В 4й версии был убран установочный скрипт slitaz-installer, при этом способ установки сабжа из консоли стал не совсем понятен. После недолгих поисков, удалось частично понять новую идеологию дистрибутива. Итак,

Установка
tazinst new tazinst.conf
создается в текущем каталоге файл tazinst.conf с параметрами установки. Они описагы в доке:
http://hg.slitaz.org/slitaz-tools/raw-file/6e8c38a0aee3/doc/tazinst.en.html

...
 The setup file contains the following variables:

    The variables describing the installation source:
        *INST_TYPE: the type of media containing the SliTaz source files, either: cdrom (SliTaz LiveCD), usb (SliTaz LiveUSB), iso (ISO image of SliTaz), web (ISO image on the Web), weboot, ex: INST_TYPE=web
        SRC_FILE: the name of the source file containing SliTaz. It depends on the type of support:
            cdrom (SliTaz LiveCD): unused
            usb (SliTaz LiveUSB): name of the partition on the host USB device, ex: SRC_FILE=/dev/sdb1
            iso (ISO image of SliTaz): name of the ISO file, ex: SRC_FILE=~/slitaz.3.0.iso
            web (ISO image on the Web): name of the URL, ex: SRC_FILE=http://mirror.slitaz.org/iso/cooking/slitaz-cooking.iso. Note that 3 URLs are predefined: 'stable', 'cooking, 'rolling', ex: SRC_FILE=cooking downloads the latest cooking available from the web
            weboot: unused

    The variables describing the target partition:
        *TGT_PARTITION: the name of the target partition SliTaz will install to or update, ex: TGT_PARTITION=/dev/hda3
        TGT_FS: if this variable is entered, the target partition will be formatted in the file system specified, otherwise the partition will be cleaned and /home will be preserved, ex: TGT_FS=ext3
        TGT_HOME: this variable indicates if need be, the name of the partition to receive the /home directory, ex: TGT_HOME=/dev/hda5
        TGT_HOME_FS: if this variable is entered, the home partition will be formatted in the file system specified, ex: TGT_HOME_FS=ext2

    The system settings:
        TGT_HOSTNAME: name of the system, ex: TGT_HOSTNAME=hd-slitaz, by default TGT_HOSTNAME=slitaz
        TGT_ROOT_PWD: superuser password, ex: TGT_ROOT_PWD=toor, by default TGT_ROOT_PWD=root
        TGT_USER: user name, ex: TGT_USER=toto, by default TGT_USER=tux
        TGT_USER_PWD: user password, ex: TGT_USER_PWD=titi, by default TGT_USER_PWD=tux

    The boot loader (bootloader) configuration variables:
        TGT_GRUB: install the GRUB bootloader (yes or no), ex: TGT_GRUB=yes, by default TGT_GRUB=no
        TGT_WINBOOT: if this variable is entered, it indicates the partition containing Windows© to implement a dual-boot. It can also be set to 'auto', in this case the dual-boot will be on the first partition Windows© detects, ex: TGT_WINBOOT=auto

Note that only variables preceded by a asterisk are mandatory, others are optional. Thus a minimal setup file can be:

INST_TYPE=cdrom
TGT_PARTITION=/dev/hda3

This file will install SliTaz on /dev/hda3 formatting the partition from a LiveCD.
...

В моем случае хватило указать:
INST_TYPE=cdrom
TGT_PARTITION=/dev/sda1
TGT_FS=ext3
TGT_HOSTNAME=slitaz4-test
TGT_ROOT_PWD=***
TGT_USER=My
TGT_USER_PWD=***
TGT_GRUB=yes
Теперь запускаем установку
tazinst install tazinst.conf
после окончания убеждаемся, что Grub поставился и перезагружаемся reboot
--
Настройка сети - правка файла /etc/network.conf
INTERFACE="eth0"
DHCP="no"
STATIC="yes"
IP="172.17.17.20"
NETMASK="255.255.255.0"
GATEWAY="172.17.17.1"
DNS_SERVER="172.17.17.1"

После правки /etc/init.d/network.sh restart
--
Для активации ssh сервера (здесь это dropbear) дописываем его в автозапуск (под root'ом):
vi /etc/rcS.conf
 RUN_DAEMONS="...httpd dropbear"
:wq
запускаем сервис (ключи сгенерятся автоматом)
/etc/init.d/dropbear start
--
Установка пакетов (sudo, vim, screen...)
Помощь по системе управления пакетами: http://doc.slitaz.org/ru:handbook:packages
Help самой проги - tazpkg usage
# tazpkg recharge
# tazpkg get-install sudo
# visudo
для My
$ sudo tazpkg get-install screen vim fail2ban
--
Удаленное web управление - Tazpanel
для доступа извне правим конфиг:
sudo vim /etc/slitaz/httpd.conf (! не спутать с /etc/httpd.conf!)
добавляем после A:127.0.0.1
A:172.17.17. (разрешаем подсеть - точка в конце нужна!)
Сохраняем, перезагружаем панель
sudo /etc/init.d/tazpanel restart
теперю появится доступ для пользователя root на адресе хоста на порту 82:
http://172.17.17.20:82

суббота, 1 сентября 2012 г.

Software Ip KVM (KeyboardVideoMouse).

В процессе поиска аппаратного KVM'а также были замечены софтовые решения для управления несколькими компами (с уже установленными ОС) по сети с одной клавы / мыши, оставаясь при этом относительно прозрачными - явно не запускаются RDP / VNC клиенты.
Итак по порядку.

MaxiVista
http://www.maxivista.com/kvm-software.htm
Вкратце описалово:
... Simply move the mouse cursor to the monitor of the PC you would like to control with the mouse and keyboard of the Primary PC. No manual switching necessary. The keyboard and mouse input is transmitted using any Ethernet, Wireless, Firewire or USB network connection. ...
Проприетарная реализация за денежку (стандартная версия стоит 40 баксов), работает на MS Windows / Mac OS.

Synergy
http://linuxcritic.wordpress.com/2009/09/09/synergy-a-software-kvm-switch-without-the-v/
Есть в репозиториях большинства дистрибутивов (например, вывод поиска в репе Ubuntu 12.04:
apt-cache search synergy
quicksynergy - GUI for easy configuration of Synergy
synergy - Share mouse, keyboard and clipboard over the network
так что все есть).
По ссылке впечатления коллеги от сабжа.

x2x
http://archive09.linux.com/feature/148824.html
Аналогично предыдущей Синергии есть в репозиториях:
apt-cache search x2x
x2vnc - A dual-screen hack - link an MS-Windows and X display
x2x - Link two X displays together, simulating a multiheaded display

Также была открыта для себя мега фича от Intel, но о ней позднее, тут надо разбираться...))

В поисках портативного KVM (KeyboardVideoMouse).

Имея дело с серверами (пусть даже это пылящийся в углу старенький десктоп), зачастую приходится подключаться к ним на месте, что при отсутствии рядом с объектом монитора и клавиатуры может породить небольшую проблему. Надеяться на заказчика / клиента, что серверная у него оборудована всем необходимым, не стоит. Гораздо лучше придерживаться правила "все свое ношу с собой", и если в отношении консольных кабелей, адаптеров, патчкордов, "резиновой" USB клавиатуры, микромышки и портативного DVDшника, это правило не создает особых трудностей, то таскать с собой монитор, мягко говоря неудобно (особенно ЭЛТ))). Все же надежда теплилась и мысль превратить VGA выход на ноуте во вход (VGA grabber) софтовыми средствами преследовала чуть чаще, чем постоянно. Однако долгие поиски в корне обломали эту хрупкую надежду, представив, однако, пару вариантов.
Практически сразу на словосочетания "vga grabber" и "vga to usb kvm" Гугл выдал ссылки на мегаполезняшку, но за хорошие бабки:
http://www.epiphan.com/products/frame-grabbers/kvm2usb/?gclid=CLLoz4mL9rECFYOJDgodrHoAfg
Из описания: ... Epiphan Systems' KVM2USB™ product is a compact pocket sized portable device that conveys the VGA stream from any host computer to a laptop, while emulating the laptop's keyboard and mouse outputs. ...
С разными насадками-переходниками USB - PS/2 и портативными размерами, девайс практически приближается к идеалу, но вот ценничек... 400 баксов без учета доставки и VAT (что-то типа нашего НДСа).
Так что поиск продолжился.
Следующая остановка в гуглении произошла на, к сожалению, помершем проекте:
http://okvm.sourceforge.net/kvmoverip.html
OKVM - опенсорсный проект, подразумевавший создание как программной, так и аппаратной части для KVM'а с управлением по VNC, однако:
... The okvm project team in 2005 developed an open source okvm KVM Development Kit - so engineers could cost effectively roll their own integrated KVM over IP control appliances. ...
... A number of the KVM PCI cards were produced - sponsored by Opengear. However this project did not find traction in the developer community. So kits are no longer available and development in this branch of the project has stopped. Also Opengear now sells a proprietary KVM over IP solution! ...
Вот так, продолжайся этот проект с 2005 года по сие время и кроме PCI карточки, точно был бы и USB'шный девайс. Ну да и земля пухом...
Были мысли таскать с собой IP KVM (от D-Link, TP-Link) с поправкой, что им нужно будет свое питание, но тут опять на взлете срезал ценник - минимум 15000 рублев на price.ru и Яндекс-маркете.
Короче, пока задач с headless серверами не много, пусть оно будет как есть - с матом к инженеграм и админам заказчика, какого этого в серверной нет моника. При увеличении же подобных задач уже будет рентабельнее прикупить Epiphan VGA2USB (время дороже).

Показать скрытые каталоги / файлы (начинаются с "точки") в Gnome (Ubuntu).

В мемориз!
Если при выборе файлов / каталогов через стандартную форму Gnome не отображаются скрытые (с "точкой" в начале), а опций View данная форма не предоставляет, может помочь комбинация клавиш:
Ctrl + h

вторник, 21 августа 2012 г.

Увеличение размера виртуального диска в VMWare vSphere для машины под MS Windows Server 2008R2.

Останавливаем машину и во вкладке с ее свойствами добавляем нужное количество гигабайтов.
Стартуем виртуалку MS Windows Server 2008R2, в разделе Диспетчер Сервера / Хранилище / Управление дисками - видим недоразмеченное пространство диска, справа в разделе Действия, выбираем Дополниельные действия / Все задачи / Расширить раздел.
В Инете встречаются советы по использованию vmkfstools для работы с виртуальными дисками из CLI (http://www.vmware.com/support/developer/vcli/vcli41/doc/reference/vmkfstools.html/), а для расширения раздела использовать Dell ExtPart утилиту. Но тут все решилось штатными средствами.

понедельник, 20 августа 2012 г.

Отсутствие BGP маршрутов на CE (Customer / Client Edge) маршрутизаторах при стыке CE-PE по eBGP и одной AS для клиентских филиалов.

При использовании MPLS VPN, одним из наиболее эффективных стыков провайдерских роутеров с клиентскими, является использование протокола BGP. Так клиенту выдается частная автономка и он импортирует свои маршруты в выделенный ему VRF. Данный стык подразумевает поддержку протокола BGP на пограничном оборудовании клиента, что можно считать минусом, однако в плюсе - отсутствие редистрибуции (золотое правило сетевика гласит, что редистрибуции маршрутов следует избегать, особенно двусторонней) и "прозрачность" настройки и вероятного траблшутинга. Есть только одни грабли: протокол BGP для предотвращения петель маршрутизации не примет от eBGP пира апдейты со своим номером автономки, а это именно тот случай, когда филиалы с одинаковыми частными номерами AS взаимодействуют с провайдерской сетью с другим номером AS, то есть являются eBGP соседями. Для решения этой проблемы при настройке MP-BGP раздела VRF нужно использовать опцию as-override:
router bgp _AS_
...
address-family ipv4 vrf _CLIENT1_
...
neighbor _ip_addr_ as-override
---
Теперь номера AS в апдейтах на границах CE-PE будут перезаписываться PE маршрутизаторами и приниматься CE.
Описание этой фичи:
http://fengnet.com/book/ios_mpls/ch06lev1sec1.html
https://supportforums.cisco.com/docs/DOC-21837

Управление через SSH хостов виртуалок на VMWare vSphere 5>

Для получения нормального управления хостом виртуалок из консоли (SSH), делаем следующее:
из скачанного и установленного vSphere Client, заходим в Configuration / Software / Security Profile
жмем Properties и стартуем сервисы:
ESXShell
SSH
Direct Console UI
Теперь заходим под root'ом на менеджмент интерфейс.
Полезные команды:
esxcli
dcui
последняя дает доступ к интерфейсному меню, аналогичному тому, что выдается при локальном подключении (снова заходим по F2 под root'ом и меняем, что нужно).
P.S. Да, для старта сервисов в maintenance mode входить не нужно!

воскресенье, 19 августа 2012 г.

Полезняшка. SSH клиент в браузере - GateOne

По наводке продвинутых людей заценил эту штукенцию:
http://liftoff.github.com/GateOne/About/index.html
для скачивания: https://github.com/downloads/liftoff/GateOne/gateone_1.0-2_all.deb
Предварительно на Debian/Ubuntu нужно поставить пакет python-support, который подтянет необходимый фреймворк - python-tornado
sudo apt-get install python-support
проверяем версии зависимых пакетов:
python -V
python -c "import tornado; print(tornado.version)"
ставим сам gateone:
sudo dpkg -i gateone_1.0-2_all.deb
после установки запускаем (для теста стартовал без аутентификации):
sudo /opt/gateone/gateone.py
при старте будут созданы необходимые каталоги и файл конфигурации, доступ на клиента https://_адрес_хоста_
Из Opera не особо работает, а из Firefox и Chrome завелся.

Уже не новая нумерация BGP AS - автономных систем 32-битная

Документ: http://tools.ietf.org/html/rfc4893
Сейчас практически на всем новом оборудовании номера автономок 32-битные (вместо ранее использовавшихся 16-битных с приватными номерами от 64512 до 65535). Используется все это ажно с 2008 года.
О правилах передачи номеров в атрибутах апдейтов:
...
4.1. Interaction Between NEW BGP Speakers

A BGP speaker that supports 4-octet Autonomous System numbers SHOULD
advertise this to its peers using the BGP Capability Advertisements.
A BGP speaker that advertises such capability to a particular peer,
and receives from that peer the advertisement of such capability MUST
encode Autonomous System numbers as 4-octet entities in both the
AS_PATH and the AGGREGATOR attributes in the updates it sends to the
peer, and MUST assume that these attributes in the updates received
from the peer encode Autonomous System numbers as 4-octet entities.

The new attributes, AS4_PATH and AS4_AGGREGATOR SHOULD NOT be carried
in the UPDATE messages between NEW BGP peers. A NEW BGP speaker that
receives the AS4_PATH and AS4_AGGREGATOR path attributes in an UPDATE
message from a NEW BGP speaker SHOULD discard these path attributes
and continue processing the UPDATE message.

4.2. Interaction Between NEW and OLD BGP Speakers

4.2.1. BGP Peering

Note that peering between a NEW BGP speaker and an OLD one is
possible only if the NEW BGP speaker has a 2-octet AS number.
However, this document does not assume that an Autonomous System with
NEW speakers has to have a globally unique 2-octet AS number --
AS_TRANS could be used instead (even if a multiple Autonomous System
would use it).
...
Из настроек Циски:
hostname (config)#router bgp ?
<1-4294967295> Autonomous system number
<1.0-XX.YY> Autonomous system number
Про записи второго asdot вида рассказывают тут: http://tools.ietf.org/html/rfc5396

Полезняшка. SSH/Telnet клиент с табами и настройкой copy/paste как в виндовом Putty

Давно искал под Ubuntu SSH клиента с функционалом, близким к виндовому Putty Connection Manager. То есть интересовало наличие табов с возможностью сохранить конекшены и копирование выделением мышью и вставка правой клавишей. Такая прога нашлась (я только что о ней узнал...): gnome-connection-manager
http://kuthulu.com/gcm/gnome-connection-manager_1.1.0_all.deb
Затачивается под себя в лучшем виде!

Появление новых интерфейсов ethN при смене MAC адресов

При миграции или перемещении виртуальной машины (в моем случае под Virtual Box) при ее старте в логах присутствуют сообщения вида:
dmesg | grep network
udev[xxx]: renamed network interface eth0 to ethN
Это происходит по причине привязки MAC адреса виртуальной сетевухи к номеру интерфейса. Также, так как IP адреса назначены на "старые" интерфейсы (eth0, eth1...), то новосозданные eth2... без сетевых настроек.
Для решения этой проблемы редактируем файл
sudo vim /etc/udev/rules.d/70-persistent-net.rules
Исправляем мак-адреса интерфейсов для нужных eth0/eth1, пользуясь новыми записями (ниже в файле), а эти новые записи затираем:
...
# PCI device 0x1022:0x2000 (pcnet32)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:4a:90:da", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
...
# PCI device 0x8086:0x1004 (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:84:48:e3", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth2"
...
Жирным выделены МАСи, которые нужно "махнуть не глядя", а вторую запись потом удалить.

среда, 15 августа 2012 г.

Протокол ISIS на SVI интерфейсах - ошибка вида CLNS-3-BADPACKET: ISIS: LAN Ln hello, packet (xxxx) or wire (yyyy) length invalid from

При активации динамического протокола маршрутизации на SVI интерфейсах L3 коммутаторов (catalyst 3750 >), из-за разницы в MTU для адресации CLNS и IP, состояние смежности не устанавливается с появлением сообщения об ошибке вида:
CLNS-3-BADPACKET: ISIS: LAN Ln hello, packet (xxxx) or wire (yyyy) length invalid from _mac_addr_...(SVI)
Данное сообщение рассматривалось в багтраке Циско:
http://www.cisco.com/en/US/docs/ios/12_2sr/release/notes/122SRcavs2.html
с советом:
CSCtk47960
Symptoms: Large CLNP packets may be dropped when forwarded over SIP- 200/Flexwan2 module. Header Syntax errors may be recorded on receiving host.
Remote side will generate the following:
%CLNS-3-BADPACKET: ISIS: L1 LSP, packet (902) or wire (896) length invalid
Conditions: This symptom is seen on Cisco 7600 switch with SIP-200 line card that is running Cisco IOS 12.2(33)SRD3 and later releases.
Issue is seen when packets larger than 911 bytes are sent (Payload and Header).
Workaround: If CLNS is only used for ISIS neighborships "no isis hello padding" can be configured to establish ISIS neighborship. For the LSP packets, configure lns-mtu 903 under router isis on the Cisco 7600 to make this work.
По факту для решения: не отключаем
router isis
 hello padding
Проверим размер MTU для CLNS:
show clns int vlan N
обычно по-умолчанию используется размер пакета 1497, для IP MTU по-умолчанию 1500.
Чтобы не было проблем с установлением смежности (ISIS использует для этого настроенный NSAP адрес), выравниваем оба MTU и активируем протокол на SVI интерфейсе:
interface vlan 2
 clns mtu 1400
 ip mtu 1400
 ip router isis
В результате получаем новые записи в таблице маршрутов.


среда, 8 августа 2012 г.

Веб интерфейс для VirtualBox - phpvirtualbox

Для удаленного руления виртуалками на десктопе, без VNC и прочих Иксов, обнаружит тут этот самый веб интерфейс. В процессе установки вскрылась парочка граблей, к счастью, успешно преодоленных.
Итак десктоп Ubuntu 10.04 с беспроводкой (это важно, так как одни грабли заключаются именно в этой беспроводке), ставим на него веб сервер с соответствующими модулями (сам VirtualBox уже установлен).
sudo apt-get update
sudo apt-get install apache2 libapache2-mod-php5
cd /var/www
sudo mkdir vboxphp
cd vboxphp
качаем туда сабж:
sudo wget http://phpvirtualbox.googlecode.com/files/phpvirtualbox-4.1-7.zip
и распаковываем
unzip phpvirtualbox-4.1-7.zip
Теперь настроим конфиги, которыми веб-морда будет пользоваться:
sudo vim /etc/default/virtualbox
  VBOXWEB_USER=mik17
  VBOXWEB_HOST=172.17.17.101
в данном случае, указаны логин "хозяина" будущих и текущих виртуалок, а также адрес беспроводного интерфейса.
sudo cp /var/www/vboxphp/phpvirtualbox-4.1-7/config.php-example /var/www/vboxphp/phpvirtualbox-4.1-7/config.php
Копируем шаблон конфига и правим его:
sudo vim /var/www/vboxphp/phpvirtualbox-4.1-7/config.php
...
/* Username / Password for system user that runs VirtualBox */
var $username = 'mik17';
var $password = '***';

/* SOAP URL of vboxwebsrv (not phpVirtualBox's URL) */
var $location = 'http://172.17.17.101:18083/';
...
Проверяем статус сервиса Web VirtualBox (vboxweb-service):
sudo /etc/init.d/vboxweb-service status
несмотря на то, что статус сервиса running, в выводе netstat'а нет прослушиваемого порта 18083. В результате при обращении на страницу веб-морды после аутентификации будет выдаваться ошибка о невозможности соединиться с сервисом на этом порту. Причина в том, что беспроводной интерфейс получает сетевые параметры после аутентификации пользователя, так что для открытия порта на прослушивание нужно перезапустить сервис:
sudo /etc/init.d/vboxweb-service stop
sudo /etc/init.d/vboxweb-service start
Проверим порты:
netstat -a | grep LISTEN
tcp 0 0 *:ssh *:* LISTEN
tcp 0 0 localhost:ipp *:* LISTEN
tcp 0 0 mik17-note.local:18083 *:* LISTEN
Теперь, скорее всего веб интерфейс заведется, но может и выдать такую ошибку (это вторые грабли):
- error - "Error logging to vboxwebsrv".
Лечится данный недуг так:
VBoxManage setproperty websrvauthlibrary default
В результате получаем удаленное управление виртуалками на ноуте.

вторник, 7 августа 2012 г.

Разрешение доменных имен в Ubuntu 12.04 Desktop.

На рабочей станции под последней Убунтой после установки обновлений и перезагрузке перестали разрешаться доменные имена - косяк с DNS. В процессе поиска решения, заметил, что эта бага проявилась у достаточно большого количества народа. Часть решения нашел здесь:
http://hardc0l2e.wordpress.com/2012/05/09/ubuntu-12-04-etcresolv-conf-127-0-0-1-implementation-with-dnsmasq/
--
Ubuntu 12.04 /etc/resolv.conf 127.0.0.1 implementation with dnsmasq

Posted by hardc0l2e on May 9, 2012

On the current version of Ubuntu (12.04), you might notice that the current /etc/resolv.conf file always record a nameserver 127.0.0.1 which then resolv dns via dnsmasq, but most of the time after test few things, I found it more problematic. It always disregard my local DNS server, and goes directly to the DNS of my ISP.

If you’re having the same problem like mine, here’s a quickfix:

1. Modify the configuration /etc/NetworkManager/NetworkManager.conf
$> sudo gedit /etc/NetworkManager/NetworkManager.conf

2. Comment the line that contain “dns=dnsmasq“
[main]
...
#dns-masq

3. Then restart the network-manager
$> sudo service network-manager restart

4. Done
--
В моем случае, я дополнительно поправил /etc/network/interfaces (чисто по привычке) и создал файлик:
sudo vim /etc/resolv.conf
  nameserver 4.2.2.2
  nameserver 8.8.8.8
После рестарта сервиса sudo /etc/init.d/networking restart (да, пишут, что данный формат команд устарел), проблем с разрешением имен уже не возникло. С нетерпением жду следующего обновления, когда снова придется восстанавливать работоспособность напильником и матом.
В общем, после релиза 10.04 убунтовцы реально много косорезят...

четверг, 2 августа 2012 г.

Соответствие команд настройки Cisco - Vyatta.

Взято отсюда: http://www.openmaniak.com/vyatta_compare.php

Собственно, содержимое:

Here is a non-exhaustive list of some Vyatta commands compared to Cisco commands.
Vyatta Version used: VC2

----- VYATTA OPERATIONAL MODE COMMANDS -----
 
ping
traceroute
show arp
show ip ospf neighbor
show ip ospf database
show ip route
show ip route | include
show ip interfaces

show ip bgp neighbors
show ip bgp
show clock
show ntp associations
show ip dhcp binding
show ip dhcp server statistics
show vrrp all
show ip nat translations
show ip nat statistics
ping
traceroute
show arp
show ospf4 neighbor
show ospf4 database
show route
show route | match ...
show interfaces ethernet ... physical
show interfaces ethernet ... statistics
show bgp peers
show bgp routes
show host date
show ntp associations
show dhcp lease
show dhcp statistics
show vrrp
show nat rules
show nat statistics

----- VYATTA CONFIGURATION MODE COMMANDS -----
 
SAVE
copy run tftp
N/A
save tftp://ip/name
save /mnt/floppy/config/config.boot
SHOW
show show running-config
HELP
N/A help
SET SERVICE
ip server http
line vty 0 4
  password
crypto key generate rsa
(only on some IOS versions)
set service http
set service telnet

set service ssh
 

ip dhcp pool
  network
  default-router


ip dhcp excluded-address
set service dhcp-server name
edit service dhcp-server name
  set start ... stop
  set default-router
  set network-mask
  set interface
  set exclude
SET SYSTEM


ip domain-name
ip default-gateway
hostname
username � password
ntp server
ip name-server
terminal monitor
clock timezone
set system domain-name
set system gateway-address
set system host-name
set system login
set system ntp-server
set system name-server
set system syslog console
set system time-zone
logging
logging facility
logging trap
set system syslog host
set system syslog host ... facility
set system syslog host ... facility ... level
SET PROTOCOLS ...
INTERFACES
interface
  set description
  ip address
  duplex
  speed


  vrrp ... ip
  vrrp ... priority

edit interfaces
  set description
  set address ... prefix-length
  set duplex
  set speed

  set vrrp vrrp-group
  set vrrp ... virtual-address
  set vrrp priority
OSPF

router ospf 1
  router-id
  network ... area
  area ... stub|nssa

set protocols ospf4
edit protocols ospf4
  set router-id
  set area ... interface eth1 address
  set area ...area-type stub|nssa
STATIC
ip route

set protocols static route ...next-hop ...
BGP
 
router bgp
  bgp router-id
 
 
 
  neighbor ... remote-as

set protocols bgp
edit protocols bgp
  set bgp-ig
  set local-as
  set peer ...next-hop
  set peer ... local-ip
  set peer ... as
SNMP
snmp-server community ... ro|rw
snmp-server community ... ACL
snmp-server location
snmp-server contact
 
set protocols snmp community ... authorization ro|rw
set protocols snmp community ... client
set protocols snmp location
set protocols snmp contact

вторник, 24 июля 2012 г.

Ubuntu после аварийной перезагрузки GRUB без таймаута.

В версии 12.4 столкнулся с ситуацией, что если сервер перезагрузился в аварийном режиме, то загрузка стопорится на меню GRUB'а с ручным выбором ОС, что при отсутствии прямого доступа к железке, считаю недопустимым (висеть эта хрень может в меню бесконечно, пока на клавиатурке Enter не нажать).
Так что пришлось убирать "он-фейл" проверку:
sudo vim /etc/grub.d/00_header
комментируем условие (ближе к концу файла)
#if [ "\${recordfail}" = 1 ]; then
# set timeout=-1
#else
  # set timeout=${2}
#fi
апдейтим GRUB
sudo update-grub2
и можно проверить настройку, передернув шнурочки сервака...))

пятница, 18 мая 2012 г.

Скриптовая замена fail2ban для Mikrotik.

Взято отсюда: http://wiki.mikrotik.com/wiki/Bruteforce_login_prevention_(FTP_%26_SSH)

ip firewall filter

add chain=input protocol=tcp dst-port=22 src-address-list=ssh_blacklist action=drop \
comment="drop ssh brute forcers" disabled=no

add chain=input protocol=tcp dst-port=22 connection-state=new \
src-address-list=ssh_stage3 action=add-src-to-address-list address-list=ssh_blacklist \
address-list-timeout=1h comment="" disabled=no

add chain=input protocol=tcp dst-port=22 connection-state=new \
src-address-list=ssh_stage2 action=add-src-to-address-list address-list=ssh_stage3 \
address-list-timeout=20s comment="" disabled=no

add chain=input protocol=tcp dst-port=22 connection-state=new src-address-list=ssh_stage1 \
action=add-src-to-address-list address-list=ssh_stage2 address-list-timeout=20s comment="" disabled=no

add chain=input protocol=tcp dst-port=22 connection-state=new action=add-src-to-address-list \
address-list=ssh_stage1 address-list-timeout=20s comment="" disabled=no

Динамически банит IP на 1 час

Сброс к заводским настройкам Mikrotik (RB751).

Взято отсюда: http://sysadminblog.ru/mikrotik/2011/08/18/kak-sbrosit-nastroyki-mikrotik-750rb.html
нужно на выключенном Mikrotik удерживать reset, потом включить питание и продолжать удерживать reset пока не замигает act.

воскресенье, 22 апреля 2012 г.

Прошивка BIOS из Ubuntu (утилита flashrom)

Основной порядок действий взят отсюда: http://kubuntu.ru/node/3257

Предварительно получаем информацию о "железной" части материнки:
sudo biosdecode
sudo apt-get install hwinfo
sudo hwinfo --bios | less
sudo dmidecode --type bios
sudo lshw
Сохраняем настройки BIOS - они хранятся в NVRAM:
sudo modprobe nvram
sudo dd if=/dev/nvram of=/home/путь_к_каталогу_сохранения/BIOS_GA-MA78G-DS3H/bios_cfg.bin
Собираем или устанавливаем из репозитория flashrom.
Запускаем его для сбора информации о материнке:
sudo flashrom
Скачиваем с официального сайта обновленные прошивки (там exe файлы, но это просто архивы). В моем случае непосредственно файл прошивки назывался MA78GD3H.F8
Бэкапим старую прошивку:
sudo flashrom -r /home/путь_к_каталогу_сохранения/BIOS_GA-MA78G-DS3H/2012-04-16-1-oldBIOS.bin -c SST25VF080B
(-c SST25VF080B - код чипа, полученный при сборе информации flashrom'ом).
Записываем новый код BIOS:
sudo flashrom -Vw MA78GD3H.F8
После перезагрузки смотрим, все ли в порядке...

пятница, 30 марта 2012 г.

Подключение машин Virtual Box к виртуальному свичу VDE

После установки свича в систему (Ubuntu)
sudo apt-get install vde2
создаем конфигурационный файл для портов на свиче, например, такой:
vim vde_switch1.cfg

port/create 1
port/create 2
port/create 3
port/create 4
port/create 5
port/create 6
vlan/create 2
vlan/create 3
port/setvlan 1 2
port/setvlan 2 2
port/setvlan 3 2
port/setvlan 4 2
port/setvlan 5 3
port/setvlan 6 3

здесь создаются 6 портов, 2 VLAN'а и эти порты раскидыватся 4 порта на 2й ВЛАН и 2 порта на 3й
порты не тегированные (в терминах cisco - это switchport access vlan 2 ... vlan 3 порты).

Свич можно запустить, например, такой командой (не требует спец прав):
vde_switch -s /tmp/switch1 -f /home/mik17/VDE/vde_switch1.cfg
указанные в файле команды можно вводить в консоли свича (приглашение vde$)

На сетевых интерфейсах виртуальных машин Virtual Box настраиваем:
Attached to: Generic Driver
Name: VDE
Advanced
...
Generic Properties: network=/tmp/switch1[1]
где network=/tmp/switch1 путь к запущенному VDE свичу, а [1] - номер порта

!ВАЖНО! Перед стартом виртуальных машин необходимо создать ссылку на библиотеку подключения VDE, иначе будет выведена примерно такая ошибка:
rtldrNativeLoad: dlopen('libvdeplug.so', RTLD_NOW | RTLD_LOCAL) failed: libvdeplug.so: cannot open shared object file: No such file or directory
Исправляется так:
sudo ln -sf /usr/lib/libvdeplug.so.2 /usr/lib/libvdeplug.so

четверг, 29 марта 2012 г.

TinyCore SSH сервер

Устанавливаем из консоли штатной утилитой OpenSSH сервер:
ab openssh
в выборе (у меня он был единственный) указываем номер нужного пакета (1)
будет выведена информация о пакете (версия, описание и пр.), выходим из этого экрана - q
Предложение на установку - i
пакет будет скачан с настроенного зеркала, зависимости разрешаются автоматически.
После окончания установки снова попадем на приглашение к установке - из него выходим - q
Проверяем, что демон попадает в автозагрузку
cat /mnt/sda1/tce/onboot.lst (должна быть запись openssh.tcz)
Копируем из примера конфигурационный файл
sudo cp /usr/local/etc/ssh/sshd_config.example /usr/local/etc/ssh/sshd_config
Стартуем сервис, при этом будут сгенерированны ключи
sudo /usr/local/etc/init.d/openssh start
Чтобы при перезагрузке не затирались наши правки, добавим каталог с настройками SSH в файл
/opt/.filetool.lst
строка - /usr/local/etc/ssh
Для запуска сервиса при старте системы добавляем запись в
/opt/bootlocal.sh
строка - /usr/local/etc/init.d/openssh start
Бэкапим всю конфиграцию (для сохранения изменений при перезагрузке)
/usr/bin/filetool.sh -b

TinyCore добавление пользователей (sudoers)

Для добавления пользователей необходимо защитить от изменений файлы каталога /etc
в файл /opt/.filetool.lst добавляем строки
/etc/group
/etc/passwd
/etc/shadow
/etc/sudoers
Добавляем пользователя, которому позднее будут предоставлены права sudoer'а
sudo adduser -h /home/mik17 mik17
указываем для него пароль
Создадим пользователя, например, для запуска сервисов quagga
sudo adduser -D -H -s /bin/sh quagga
-D - не задается пароль
-H - не создается домашний каталог
-s - задается командная оболочка (login shell)
Наделяем пользователя mik17 большими правами
sudo visudo
добавляем строки
mik17 ALL=(ALL) ALL
сохраняем (стандартно для vi- Esc :wq)
Не забываем бэкапить все сделанные изменения
/usr/bin/filetool.sh -b

Удаление SSH сигнатуры (отпечатка) при строгой настройке проверки подлинности сесии.

При смене ключей или при миграциях сервисов, когда на адрес с имеющейся сигнатурой переезжает другой сервак с SSH доступом, возможно такое сообщение от клиента:
**:~$ ssh IP
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
***
Please contact your system administrator.
Add correct host key in */.ssh/known_hosts to get rid of this message.
Offending key in */.ssh/known_hosts:10
RSA host key for IP has changed and you have requested strict checking.
Host key verification failed.
Так как мы точно уверены, что никакой MITM атаки нет, нужно затереть ненужную строку (некоторые советуют вообще удалить файл known_hosts, но это не тот метод...).
Для удаления строки (в данном случае, это 10я запись в файле - */.ssh/known_hosts:10) достаточно:
sed -i "10 d" ~/.known_hosts
Позже при первом удачном входе, нужная сигнатура будет добавлена.

суббота, 17 марта 2012 г.

Самые базовые настройки Cisco CSS (11500).

В сети опубликовано достаточно много статей по настройке балансировщиков (контент свичей) Cisco серии 11500, однако практически все они относятся не к базовой настройке (менеждмент интерфейса). В принципе, ниже будет памятка для ленивых (типа меня), кто избегает RTFM'а.
Параметры доступа на консоль стандартные для Cisco - 9600N8N1 (Speed (baud) = 9600, Data bits = 8, Stop bits = 1, Parity = None, Flow control = None)
Заводские логин и пароль:
username admin
password system
для смены логина admin
conf t
username-offdm новый_логин password новый_пароль
для смены сетевых параметров менеджмент интерфейса:
conf t
boot
ip addr новый_адрес
subnet mask маска_сети
gateway address адрес_шлюза (ГРАБЛИ! как показала практика, эта настройка работает странно - просто не работает, лучше для доступа к менеджмент интерфейсу указывать статические маршруты для заранее известных подсетей)
ip management route подсеть /префикс шлюз (например, ip management route 172.27.59.0 /24 172.27.56.86)
Далее можно добавить параметры времени (отображаются в running-config):
- из раздела глобальной конфигурации настраивается временная зона clock timezone MSD hour 4 after-UTC (MSD – Moscow Daylight Timezone), что соответствует зоне UTC+4 часа,
- также отключается переход на летнее/зимнее время no clock summer-time
Сохранение настроек: wr mem
Просмотр настроек:
sh boot
sh clock
sh run (куда ж без него...).

четверг, 8 марта 2012 г.

Guru Plug Server Plus (GPS+) восстановление (unbrick) и заливка Debian'а

В процессе игр с сабжем были использованы материалы по ссылкам:

http://bzed.de/posts/2010/05/installing_debian_on_the_guruplug_server_plus/
http://www.cyrius.com/debian/kirkwood/sheevaplug/install.html
http://plugcomputer.org/plugforum/index.php?topic=1648
http://www.newit.co.uk/forum/index.php/topic,410.0.html

Для подключения к консоли использовался "родной" JTAG адаптер.
После подключения интерфейсов и включения GPS+ есть 3 секунды для остановки загрузки и попадания в uBoot. То есть перед включением сервака проверяем, на какой интерфейс сел адаптер:
dmesg | grep tty
в моем случае он приземлился на ttyUSB0
screen /dev/ttyUSB0 115200
(не забываем, что выйти из сессии можно по комбинации Ctrl+a нажать k, потом согласиться с выходом - y).
Запускаем screen и включаем сервак, жмем любой баттон для входа в загрузчик (для этого всего 3 секунды!).

При успехе, попадаем в строку приглашения: Marvell>>
сразу просматриваем переменные окружения и версию загрузчика:
>> version
U-Boot 2009.11-rc1-00602-g28a9c08-dirty (Feb 09 2010 - 18:15:21)

>> printenv
bootcmd=setenv ethact egiga0; ${x_bootcmd_ethernet}; setenv ethact egiga1; ${x_bootcmd_ethernet}; ${x_bootcmd_usb}; ${x_bootcmd_kernel}; setenv bootargs ${x_bootargs} ${x_bootargs_root}; bootm 0x6400000;
bootdelay=3
baudrate=115200
x_bootcmd_ethernet=ping 192.168.2.1
x_bootcmd_usb=usb start
x_bootcmd_kernel=nand read.e 0x6400000 0x100000 0x400000
x_bootargs=console=ttyS0,115200
x_bootargs_root=ubi.mtd=2 root=ubi0:rootfs rootfstype=ubifs
ethact=egiga0
ethaddr=***
eth1addr=***
stdin=serial
stdout=serial
stderr=serial
Environment size: 549/131068 bytes

по команде help выводятся доступные команды. В "моей" версии загрузчика не было части нужных команд, например, работы с устройствами с файловыми системами ext2-3-4. Так что загрузчик нужно обновить. Сделать это можно несколькими способами, в частности, с USB носителя (в FAT) или по сети с TFTP сервера.

Бинарник загрузчика использованный мной:
http://people.debian.org/~tbm/u-boot/2011.12-2/guruplug/u-boot.kwb
Выбор пал на сетевую загрузку, для чего были добавлены настройки:
setenv bootdelay 10
setenv ipaddr 172.17.18.248
setenv serverip 172.17.18.247
saveenv
tftpboot 0x0800000 u-boot.kwb
nand erase 0x0 0x60000
nand write 0x0800000 0x0 0x60000
reset
В результате получен девайс в новой версией загрузчика:
U-Boot 2011.12 (Jan 08 2012 - 21:46:50)

Теперь необходимо загрузить uImage и uInitrd, чтобы позднее начать сетевую загрузку и установку самой ОС. Это также можно сделать по сети (через TFTP) или с носителя.
Для разнообразия попробовал разобраться с носителем: в GPS+ есть слот для карт microSD, вот такую карточку на 8Гб и использовал (на нее же позднее ставится ОС).
Карта отформатирована в ext4 (через GParted).

!Помнить! После создания раздела и форматирования владельцем карты становится root, так что для возможности записи данных на карту нужно сменить владельца:
sudo chown mik17 /media/guruplug/

Нужные файлы доступны по ссылкам:
ftp://ftp.debian.org/debian/dists/stable/main/installer-armel/current/images/kirkwood/netboot/marvell/sheevaplug/uImage
и
ftp://ftp.debian.org/debian/dists/stable/main/installer-armel/current/images/kirkwood/netboot/marvell/sheevaplug/uInitrd

Записываем их в корень карточки и саму карту вставляем в GPS+.

На всякий случай повторно включаем поддержку USB устройств (заодно будет выполнен и поиск носителей):
>> usb start
(Re)start USB...
USB: Register 10011 NbrPorts 1
USB EHCI 1.00
scanning bus for devices... 3 USB Device(s) found
scanning bus for storage devices... Device NOT ready
Request Sense returned 02 3A 00
2 Storage Device(s) found

определяем, какой девайс - наша карта:
>> usb storage
Device 0: Vendor: Generic Rev: 9909 Prod: STORAGE DEVICE
Type: Removable Hard Disk
Capacity: not available
Device 1: Vendor: Generic Rev: 9909 Prod: STORAGE DEVICE
Type: Removable Hard Disk
Capacity: 7384.0 MB = 7.2 GB (15122432 x 512)

нас интересует Device 1, точнее его первый раздел.

Загружаем файлы с карточки:
>> ext2load usb 1:1 0x00800000 /uImage
Loading file "/uImage" from usb device 1:1 (usbdb1)
1435184 bytes read
>> ext2load usb 1:1 0x01100000 /uInitrd
Loading file "/uInitrd" from usb device 1:1 (usbdb1)
3172565 bytes read

Теперь добавляем в переменные окружения загрузку с карты памяти:
setenv bootargs_console console=ttyS0,115200
setenv bootcmd_usb 'usb start; ext2load usb 1:1 0x00800000 /uImage; ext2load usb 1:1 0x01100000 /uInitrd'
setenv bootcmd 'setenv bootargs $(bootargs_console); run bootcmd_usb; bootm 0x00800000 0x01100000'
saveenv
setenv bootargs console=ttyS0,115200n8 base-installer/initramfs-tools/driver-policy=most

Начинаем процесс установки !Важно! необходимо точно убедиться, что с сетевыми настройками нет проблем, так как сабж тянет установочные файлы из Инета.
bootm 0x00800000 0x01100000
В процессе установки задаются стандартные вопросы.

После установки "внезапно" выяснится, что имеющийся беспроводной интерфейс не видится, а в логах примерно такие сообщения:
can't load helper firmware
failed to load helper firmware

Для решения этой проблемы нужно загрузить файлы sd8688.bin и sd8688_helper.bin в /lib/firmware
Взять эти файлы можно по ссылкам:
http://git.infradead.org/users/dwmw2/linux-firmware.git/blob/8ad78631586495ca5738c78884c14bfaf29f633e:/libertas/sd8688.bin
и
http://git.infradead.org/users/dwmw2/linux-firmware.git/blob/8ad78631586495ca5738c78884c14bfaf29f633e:/libertas/sd8688_helper.bin
После перезагрузки беспроводной интерфейс появится.

четверг, 1 марта 2012 г.

TFTP сервер для Ubuntu (который можно вкл/выкл)

Для скачивания конфигов или заливки прошивок на сетевые девайсы полезно всегда иметь на разъездном буке ряд сервисов, в частности, TFTP сервер, но такой, чтобы он не весел постоянно запущенным (как atftpd). Для Windows очень долгое время я пользовался 3com_TFTP-Syslog-FTP-server'ом (как видно из названия, там же еще и FTP и Syslog). Долго искал аналогичную примочку по Линуха.
Понравился такой сервачок: http://code.google.com/p/tftpgui/ от Гугла, основанный на Python'е.
После скачивания и распаковки, на рабочем столе по правой кнопке мыши делаем Create Launcher / Type="Application in Terminal" / Name="TFTP_Server" / Command="sudo /~/Progs/tftpgui/tftpgui.py"
Конечно же в поле команды нужно будет указать путь распакованному файлу tftpgui.py (без кавычек).

понедельник, 27 февраля 2012 г.

Включение последовательного интерфейса в дистрибутивах на базе Дебиан с init (не upstart!).

В меморизз.
Взято отсюда: http://www.debuntu.org/how-to-set-up-a-serial-console-on-debian
How-To set up a serial console on Debian

This tutorial will go over the steps to go through in order to set up a serial console on Debian Linux.

Debian uses sysvinit to handle the booting process, amongst the different task, and as such, there is a few differences between most of the tutorial that you might find on the internet regarding how to set up a serial console.

A Serial Console becomes handy when running a headless server (i.e no keyboard and screen) or if you cannot connect a a server because of a network issue.

In this tutorial, we will set up a serial console on the server, the machine we want an access to. Setting up a serial console client will be covered in another article.
1. Checking the serial devices

In order to find which devices are available on a box, you can run:

$ dmesg | grep tty
serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
serial8250: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
00:09: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
00:0a: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A

From this output, we can guess that there is 2 serial interface2 (/dev/ttyS0 and /dev/ttyS1). This tutorial considers that you are using device 1 (ttyS0), if you use the second device, you will need to change ttyS0 by ttyS1.
2. Setting up the serial console on the server

On the server, we are going to set up:

A serial console on ttyS0
Have kernel booting messages output to the serial console
Make Grub outputs to the serial console

2.1. The serial console

To set up a serial console, We need to edit the file called /etc/inittab in order to spawn a getty on the serial device. getty will take care of prompting the user for a username and password.

Go and edit /etc/inittab and add:

s0:2345:respawn:/sbin/getty -L 115200 ttyS0 vt102

just below:

1:2345:respawn:/sbin/getty 38400 tty1
2:23:respawn:/sbin/getty 38400 tty2
3:23:respawn:/sbin/getty 38400 tty3
4:23:respawn:/sbin/getty 38400 tty4
5:23:respawn:/sbin/getty 38400 tty5
6:23:respawn:/sbin/getty 38400 tty6

Now, run:

# init q

In order to have sysvinit re-read its configuration and spawn a getty on /dev/ttyS0 .

To authorize root to log in through the serial console, you need to edit /etc/securetty and make sure you have:

ttyS0

2.2. Having grub outputting to ttyS0

grub can be configured to output on the serial console.Edit grub and add:

serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1
terminal --timeout=10 serial console

In the section before the different kernels. This will take care of having grub being displayed one the serial console so you can actually modify grub through the serial console or boot using another kernel.

If using ttyS1, then change it to --unit=1

Also, in order to get the booting messages outputted to the serial console, you can append to your kernel line the following:

console=ttyS0,115200n8 console=tty0

So, finally, the kernel line will look like:

kernel /boot/vmlinuz-2.6.18-6-686 root=/dev/sda1 ro console=ttyS0,115200n8 console=tty0

That's it, upon next reboot, you will be able to connect directly to your box using a serial console!.

По факту для быстрого включения консоли можно выполнить (работает и в Ubuntu):
sudo getty -L 115200 ttyS0 vt102 &

пятница, 17 февраля 2012 г.

Cisco ISR архивирование конфига (версионность).

В мемориз!
Взято отсюда:
https://supportforums.cisco.com/videos/2715
#
mkdir CONFIG_ARCHIVE
conf t
archive
path flash:CONFIG_ARCHIVE/RUN_CONFIG
! Путь к каталогу, где будут архивные копии конфигов (к ним автоматом будут добавляться номера)
write-memory
! Добавление конфига в архив происходит при каждом сохранении конфига в старт (wr mem)
maximum 10
! Сохраняется количество версий - 14 - максимально
!Здесь же в настройках есть опции rollback
!rollback retry timeout ?
! <0-1000> Timeout value in seconds
#
dir flash:/CONFIG_ARCHIVE/
more flash:/CONFIG_ARCHIVE/RUN_CONFIG-1
! просмотр сохраненного конфига
archive config
! явное указание бэкапа конфига
show archive
config replace flash:/CONFIG_ARCHIVE/RUN_CONFIG-1
! Процедура rollback'а - отката на указанный вариант конфига

вторник, 14 февраля 2012 г.

Передача файлов через консоль (xmodem, ymodem).

Не помню, где взял..., но в меморизз:

Uploading files with xmodem

PuTTy on Windows does not support zmodem, xmodem, etc. so I often used HyperTerminal, but the GUI of Hyperterminal annoys me.

So instead of switching between PuTTy and HyperTerminal all the time, I tried to use a different terminal emulator ‘TeraTerm Pro’. This seems fine, but for some reason it dumps a few random characters on the serial line after the file is transferred, falsely answering the multiple choice menu to decide between runtime, diag, multiple image or loader.

I am now using GNU Screen with lrzsz. It was a little struggle to figure out the correct syntax for this, because Screen has a google-incompatible name. Hopefully I’ve sprinkled enough relevant terms in this post to help somebody else with this issue.

I start screen with ‘screen /dev/ttyUSB0 115200′. Then when I start the Xmodem download on the bootrom side I execute CTRL-A “:exec !! sx -kb firmware.bix” in screen.

This works mostly fine. It eats the multiple choice menu after the transfer, but you can press to view it again. And FYI, the bootrom support Xmodem-1K giving a nice transferboost over regular Xmodem.

---

i have write my doc from youre.

*********************
Attention a etre raccordé sur le bon switch en cas de stack
*********************

screen /dev/ttyUSB0

enable
conf t
line con 0
speed 115200

CTRL A + k

screen /dev/ttyUSB0 115200

exit
exit

copy ymodem: flash:filename.bin

CTRL A puis :exec sz -kb filename.bin

Маршруты в HP-UX

Взято отсюда: http://www.cyberciti.biz/tips/hp-ux-how-do-i-configure-routing-or-add-route.html
HP-UX: How Do I configure routing or add route?

by LinuxTitli on October 29, 2005

You can use route command to configure routing. Syntax is as follows:
route add net {network-address} netmask {subnet} {router-address}

Let us assume your router address is 192.168.1.254 and network ID is 192.168.1.0/24, then you can type route command as follows:
# route add net 192.168.1.0 netmask 255.255.255.0 192.168.1.254

OR

To add a default route:
# route add default 192.168.1.254

Verify that (display) routing table is updated (display routing table):
# netstat -nr

Test it i.e. try to ping or send nslookup request:
# ping mycorp.com

To flush all routing entries use command [quite handy to clean your gordian knot ;)] :
# route -f

However if I reboot HPUX box then above routing entries gets removed. To pick up your setting upon each reboot your need to configure Routes in HPUX networking configuration file - /etc/rc.config.d/netconf. To add default router/gateway 192.168.1.254:
# vi /etc/rc.config.d/netconf

Add or modify following entries

ROUTE_DESTINATION[0]="default"
ROUTE_MASK[0]=""
ROUTE_GATEWAY[0]="192.168.1.254"
ROUTE_COUNT[0]="1"
ROUTE_ARGS[0]=""

Reboot HP-UX system/server to take effect
# shutdown -ry 0