Объединение сетевых интерфейсов при помощи протокола LACP во FreeBSD 7


Собираем ядро с поддержкой LACP (Link aggregation control protocol):
device lagg
Объединяем интерфейсы em0 и em1:
ifconfig em0 up
ifconfig em1 up
ifconfig lagg0 create
ifconfig lagg0 up laggproto lacp laggport em0 laggport em1
ifconfig lagg0 10.10.10.18 netmask 255.255.255.0
route add -net 0.0.0.0 10.10.10.1 0.0.0.0
На Cisco и к каждому нужному интерфейсу прописываем:
interface GigabitEthernet2/2
....
channel-protocol lacp
channel-group 23 mode active
interface GigabitEthernet2/16
....
channel-protocol lacp
channel-group 23 mode active

Установка неподдерживаемой сетевой карты ASUS NX1001 во FreeBSD 6.2
При установке сетевой карточки Asus NX1001, я не смог обнаружить её при наборе команды ifconfig. А также в sysinstall->Configure->Networking.
Первое, что мне пришло в голову конфликт с ACPI, после отключения в БИОСе ACPI - результатов никаких не дало. Поэтому пришлось заняться поисками решения этой проблемы копаясь в интернете, особо на сайте freebsd.org. Найдя похожую проблему работы с сетевой картой Asus NX1001 в FreeBSD 6.2, вот что в итоге необходимо было сделать.
Набрав команду pciconf -lv и найдя среди результатов вывода
"Sundance ST201 10/100BaseTX".
Мне пришлось дописать в файлах:
/usr/src/sys/pci/if_ste.c
/usr/src/sys/pci/if_stereg.h
нижеследующее (строка AS_VENDORID...), в файле if_ste.c:
static struct ste_type ste_devs[]={
{ST_VENDORID, ST_DEVICEID_ST201,"Sundance ST201 10/100BaseTX"},
{AS_VENDORID, AS_DEVICEID_NX1001,"ASUS NX1001 10/100BaseTX"},
{DL_VENDORID, DL_DEVICEID_DL100050,"D-Link DL10050 10/100BaseTX"},
{0,0,NULL}
};
в файле if_stereg.h:
#define AS_VENDORID 0x13F0
#define AS_DEVICEID_NX1001 0x0200
После этого мы обязаны пересобрать наше старое ядро:
cd /usr/src/sys/i386/conf/
cp GENERIC GATEWAY
ee GATEWAY
config GATEWAY
cd ../compile/GATEWAY
make depend
make
make install
shutdown -r now
В итоге в нашем случае появляется сетевая карточка в устройствах как sto0.
Настройка управления FreeBSD сервера через COM порт
Что надо сделать на FreeBSD сервере:
1. Подключаем COM1 кабель
2. Заходим под root и пишем:
echo "-Dh" > /boot.config
3. В файле /etc/ttys заменяем строчку
ttyd0 "/usr/libexec/getty std.9600" dialup off secure
на
ttyd0 "/usr/libexec/getty std.9600" vt100 on secure
4. Перезагружаем FreeBSD.
Что надо сделать на Windows XP машине (клиент):
1. Start -> All Programs -> Accessories -> Communications -> HyperTerminal
2. В открывшемся окне New Connections в поле Name пишем что нить типа freebsd-serial
3. В окне Connect To выбираем номер ком-порта (к примеру COM1)
4. В окне COMx Properties на вкладке Port Settings надо выставить следующие значения:
Bits per second: 9600
Data bits: 8
Parity: None
Stop bits: 1
Flow control: Xon / Xoff
и на жать на кнопку ОК
5. Соединение установиться. Далее можно сохранить File -> Save.
6. Можно работать.
Что нужно сделать если в место Windows XP для управления используется соседняя FreeBSD машина: в зависимости от версии FreeBSD:
cu -s 9600 -l /dev/cuad0
cu -s 9600 -l /dev/cuaa0
где cuaaX/cuaaX устройства ком порта

Обзор небольших полезных утилит под FreeBSD
Пришла мысль упорядочить немного список утилиток из портов, которые облегчают жизнь админа FreeBSD.
arpwatch - для мониторинга изменений mac/ip-адресов;
port-maintenance-tools - набор утилит для работы с портами (portupgrade, portinstall и др.);
portaudit - позволяет автоматически проверить перед установкой какого-либо порта, не числится ли он в базе уязвимостей.
screen - для работы с виртуальными консолями
mbmon, healthd для мониторинга температуры, вольтажа и оборотов
arping- "пингует" компьютеры arp-запросами, позволяя определить, находится ли комп в локальной сети даже если у последнего установлен файервол.
fastest_cvsup - нахождение самого быстрого cvsup сервера для обновления портов и/или сырцов системы.
cvsup-without-gui - собственно, сам клиент для обновления.
nmap - сетевой сканер портов.
sudo - для настройки рутовых привилегий, выдаваемых другим пользователям без необходимости сообщать рутовый пароль.
vim (vim-lite) - редактор. Совмещает удобства vi и привычки с "обычных" редакторов
yawho - показывает, кто сидит, откуда и что запущено и т.п. Напоминает "w", но поудобнее.
whowatch - очень удобная утилитка для просмотра в реальном времени процессов других залогиненных пользователей и элементарных операций (посылка сигналов kill, разлогинивание и т.д.)
mtr - утилита, обьединяющая наподобии виндового "pathping" команды traceroute и ping. Весьма удобна для проверки сети.
lynx-ssl - браузер с поддержкой ssl, работающий в текстовом режиме. Удобен. Полезен при проверке корректности html кода.
elinks - продвинутая версия lynx. Встроенный менеджер закачек, готовность к работе на русском языке без дополнительных телодвижений
ipcalc - Сетевой калькулятор. Противопоказан людям, готовящимся к сдачи CCNA и рассчитывающим все сети вручную ;-)
apg - Удобный генератор случайных паролей.
pwgen2 - Ещё один удобный генератор.

Настройка эмуляции Linux во FreeBSD
Добавляем в /boot/loader.conf:
linux_load="YES"
linprocfs_load="YES"
В /etc/fstab:
linprocfs /compat/linux/proc linprocfs rw 0 0
/etc/rc.conf
linux_enable="YES"
/etc/sysctl.conf
kern.fallback_elf_brand=3

Как подключить USB Flash накопитель в FreeBSD
man umass
Конфигурация ядра (FreeBSD 4.8 можно не пересобирать):
device usb
device ohci (OR device uhci)
device umass
device scbus
device da
device pass
В логе смотрим подобное сообщение "da0 at umass-sim0 bus 0 target 0 lun 0"
Монтируем:
mount -t msdos /dev/da0s1 /mnt

Как примонтировать iso-образ CD диска в FreeBSD
В /boot/loader.conf добавляем vn_load="YES" или подгружаем руками kldload vn.ko
Монтируем:
vnconfig /dev/vn0c /home/user/cdrom.iso
mount -t cd9660 /dev/vn0c /mnt
Размонтируем:
umount /mnt
vnconfig -u /dev/vn0c

Как разрешить в FreeBSD монтировать CD-ROM обычным пользователям
/etc/sysctl.conf:
vfs.usermount=1
vfs.generic.usermount=1
mount -t cd9660 /dev/acd0c /home/user/cdrom
chmod 644 /dev/acd0c

Как примонтировать в FreeBSD CD-ROM с русифицированной FS, чтобы русские буквы не выглядели как вопросительные знаки.
cd /usr/ports/sysutils/cd9660_unicode
make && make install
грузить модуль через
kldload /lib/cd9660_unicode/cd9660_[unicode|koi8-r|iso-8859-5|cp866].ko

Как на сервере обеспечить подключение PS/2 клавиатуры, без перезагрузки
Для того чтобы на загруженный без PS/2 клавиатуры сервер, можно было в любой момент подключить клавиатуру без перезагрузки, нужно в конфигурации ядра заменить строку:
device atkbd0 at atkbdc? irq 1 flags 0x1
на
device atkbd0 at atkbdc? irq 1
Т.е. убрать 'flags 0x1' и тем самым разрешить загружать драйвер клавиатуры
при отключенной в момент загрузки клавиатуре.

Как переключить сетевую карту в FreeBSD из full-duplex в half-duplex
Текущий режим работы сетевой карты можно посмотреть выполнив:
# ifconfig fxp0
Перевести сетевую карту в режим работы 10baseT/UTP half-duplex:
# ifconfig fxp0 media 10baseT/UTP mediaopt half-duplex
Автоматически выбрать режим:
# ifconfig fxp0 media autoselect
Подробнее: man 4 ed, man 4 rl, man 4 fxp

Как правильно прописать сменные накопители в /etc/fstab для FreeBSD.
/dev/acd0c /mnt/cdrom cd9660 ro,noauto,-W=koi2dos,
-L=ru_RU.KOI8-R 0 0
/dev/fd0 /mnt/flop msdos rw,noauto,-W=koi2dos,
-L=ru_RU.KOI8-R 0 0
/dev/ad0s2 /mnt/store msdos rw,-W=koi2dos,
-L=ru_RU.KOI8-R,noexec,nosuid,nosymfollow,
-u0,-g0,-m 660 0 0
Еще для удобства можно создать симлинки типа:
ln -sf /dev/acd0c /dev/cdrom
ln -sf /dev/acd1c /dev/cdrom1 (если есть второй cdrom)
ln -sf /dev/fd0 /dev/flop
прописать изменения в fstab,
и монтировать диски командой mount /dev/cdrom а не
mount /dev/acd0c =).

Как под FreeBSD создать файловую систему в памяти (ramdisk)
man mount_mfs
mount_mfs -s 614400 /dev/amrd0s1b /usr/obj
где /dev/amrd0s1b - swap раздел, 614400 - размер MFS диска N*1024*2 (614400 == 300mb)

Что изменить в настройках конфигурации ядра FreeBSD для нагруженного сервера.
maxusers 512
options NMBCLUSTERS=16786
options NBUF=2048
options CHILD_MAX=512
options OPEN_MAX=512
options "MAXDSIZ=(512*1024*1024)"
options "DFLDSIZ=(128*1024*1024)"
options IPFIREWALL
options IPFIREWALL_FORWARD
options IPFIREWALL_DEFAULT_TO_ACCEPT
options SOFTUPDATES

Как включить Soft-updates в FreeBSD для увеличения производительности
1. Перейти в single режим
2. Убедится, что раздел диска размонтирован.
3. tunefs -n enable раздел (например, tunefs -n enable /usr )

Как увеличить производительность дисковой подсистемы FreeBSD
По умолчанию запись на диски в FreeBSD производится в синхронном режиме, значительно увеличить скорость записи можно активировав асинхронный режим: В /etc/fstab в поле Options добавить async (например rw,async).
Или для примонтированного раздела: mount -u -o async /home
Для увеличения производительности IDE дисков, в файле конфигурации ядра можно указать для wdc устройств
flags 0xa0ffa0ff или 0x80ff80ff (подробнее man wd, man ad).
Для ad: sysctl hw.atamodes; sysctl hw.ata
Например: sysctl hw.atamodes=pio,pio,---,dma,pio,---,dma,---,
См. также man atacontrol
Третий вариант - активировать в настройках ядра SOFTUPDATES и запустить
tunefs -n enable /usr в single-user на размонтированном разделе.

Как запретить создание символических линков в /tmp
FreeBSD: В графе "Option" /etc/fstab для раздела /tmp нужно указать:
rw,noexec,nosuid,nodev,nosymfollow

Как в FreeBSD включить Blowfish шифрование паролей вместо DES и MD5
В /etc/login.conf:
:passwd_format=blf:
cap_mkdb /etc/login.conf

Обновление портов во FreeBSD
Прежде чем что-либо делать с портами в FreeBSD их необходимо обновить:
# cat >> /etc/make.conf
SUP_UPDATE=yes
SUP=/usr/local/bin/cvsup
SUPFLAGS=-g -L 2
SUPHOST=cvsup.uk.FreeBSD.org
SUPFILE=/usr/share/examples/cvsup/standard-supfile
PORTSSUPFILE=/usr/share/examples/cvsup/ports-supfile
DOCSUPFILE=/usr/share/examples/cvsup/doc-supfile
Ctrl + D

# cd /usr/ports
# make update
Найти в портах (/usr/ports) порт portupgrade (/usr/ports/ports-mgmt/portupgrade), установить его
cd /usr/ports/ports-mgmt/portupgrade
make && make install
После этого можно с помощью утилиты portupgrade уже возможно обновлять установленные порты (ключ -R говорит о том, что нужно обновить не только порт, но и все его зависимости)
portupgrade -R имя_порта
Чтобы узнать список портов, нуждающихся в обновлении, существует команда
pkg_version -v
Для наведения порядка (удаление неиспользуемых портов, дубликатов версий) в реестре установленных портов (/var/db/pkg) можно воспользоваться командой
pkgdb –F

Очистка /usr/ports/distfiles от файлов со старыми версиями
По ссылке можно найти скрипт, который просматривает список установленных портов и их зависимостей, очищает distfiles от старых версий, оставшихся после обновления портов и запуска portupgrade.
Комментарий к заметке: В portupgrade есть специальная утилита для чистки мусора – portsclean

Установка программ через Ports в FreeBSD
Апргейд коллекции портов:
Редактируем /usr/share/examples/cvsup/ports-supfile и запускаем:
cvsup -g -L 2 ports-supfile
Поиск:
make search key="строка" - поиск пакета по ключевому слову.
make search name="строка" - поиск пакета по названию пакета.
Установка портов:
cd /usr/ports/порт; make; make install
Другие команды:
make deinstall - деинсталлировать приложение.
make fetch - скачать приложение из сети.
make checksum - проверить контрольные суммы.
make depends - перестроить зависимости.
make extract - разархивировать исходные тексты в work директорию.
make patch - применить патчи к приложению.
make build - собрать приложение из исходных тестов.
make clean - "почистить" исходники после сборки.
make reinstall - переустановить приложение после удаления.
make package - построить из порта package.

Как правильно проабгрейдить установленные FreeBSD ports
pkg_version -c >/tmp/uplist.sh
sh -x /tmp/uplist.sh > /tmp/upgrade.output
cd /usr/ports/devel/ctags; portupgrade ctags

Как автоматизировать процесс установки FreeBSD на несколько машин
Для автоматической установки достаточно создать профайл инсталляции install.cfg, скопировать его на дискету, а в sysinstall при установке
выбрать пункт меню "Load Config".
Пример install.cfg можно найти в /usr/src/release/sysinstall/install.cfg

Как проабгрейдить FreeBSD с помощью cvsup
1. cd /usr/src/; cvsup -g -L2 /etc/cvsupfile # cvsupfile составляем опираясь на /usr/share/examples/cvsup/stable-supfile
2. make buildworld
3. make buildkernel KERNCONF=имя_конфига_ядра
4. make installkernel KERNCONF=имя_конфига_ядра
5. make installworld
6. mergemaster
Для пересборки ядра после make installworld: config MYKERNEL; make depend; make; make install

Как обновить код загрузчика в FreeBSD
Ставим boot-менеджер в MBR:
boot0cfg /dev/ad0
или fdisk -B -b /boot/boot0 /dev/ad0
Обновляем boot-loader (boot1 и boot2):
disklabel -B ad0s1

Обновлено: 12.03.2015