Архив метки: FreeBSD

Установка DHCP сервера на FreeBSD

Установка ISC DHCP Server

Получаем доступные версии DHCP-сервера:

pkg search "isc-dhcp.*-server"

Устанавливаем самый свежий пакет:

pkg install isc-dhcp44-server-4.4.1_2

 Или установка ISC DHCP Server из коллекции портов

Если необходимо, DHCP-сервер можно собрать из портов.

Обновляем коллекцию портов:

portsnap fetch update

Если коллекция портов используется впервые, получаем ее актуальную версию:

portsnap fetch extract

Получаем доступные версии DHCP-сервера:

echo /usr/ports/net/isc-dhcp*-server

Устанавливаем:

cd /usr/ports/net/isc-dhcp44-server 

make install clear

Настройка ISC DHCP Server

Редактируем основной файл конфигурации:

mcedit /usr/local/etc/dhcpd.conf

В конфигурации сервера необходимо задать параметры, выделенные жирным шрифтом.

# DNS серверы

option domain-name-servers 192.168.100.1;



# Время в секундах, по истечению которого клиент должен запросить продление аренды

default-lease-time 1200;



# Время аренды IP адреса в секундах

# Клиент должен освободить IP-адрес, если в течение заданного времени аренду продлить не удалось

# Если аренда не продлена, сервер может выдать этот адрес другому клиенту

max-lease-time 72000;



# Выдавать клиенту новый адрес, если запрошенный клиентом адрес не входит в пул сервера

authoritative;



# Источник, который будет указан при отправке сообщений в Syslog

log-facility local7;



# Декларация подсети

subnet 192.168.100.0 netmask 255.255.255.0 {

  # Пул динамических адресов

  range 192.168.110.5 192.168.100.200;

  # Шлюз

  option routers 192.168.100.1;

}


Настройка логов для ISC DHCP Server

Редактируем syslog.conf:

mcedit /etc/syslog.conf

Сохраняем сообщения о присвоении адресов в dhcpd.log, предупреждения и ошибки дублируем в messages.

Добавляем следующие строки:

!dhcpd

*.info                                          -/var/log/dhcpd.log

!*


Задаем параметры ротации.

Проверяем, поддерживается ли вашей системой newsyslog.conf.d

ls /etc/newsyslog.conf.d && echo ok

Если в вашей системе отсутствует папка newsyslog.conf.d, редактируем newsyslog.conf:

mcedit /etc/newsyslog.conf

Если папка newsyslog.conf.d имеется, создаем папку с тем же именем в /usr/local/etc:

mkdir /usr/local/etc/newsyslog.conf.d

Создаем файл c правилами ротации логов:

mcedit /usr/local/etc/newsyslog.conf.d/isc-dhcp-server

Ежедневная ротация в полночь с сохранением логов за неделю:

/var/log/dhcpd.log                      600  7     *    @T00  JC

Создаем лог-файл:

touch /var/log/dhcpd.log

Перезагружаем конфигурацию syslogd:

service syslogd reload

Запуск ISC DHCP Server

Редактируем rc.conf:

mcedit /etc/rc.conf

Включаем запуск ISC DHCP Server, и задаем сетевые интерфейсы, обслуживаемые нашим сервером:

dhcpd_enable="YES"

dhcpd_ifaces="em1"


Запускаем dhcpd:

service isc-dhcpd start

В случае успешного запуска видим следующий текст:

Internet Systems Consortium DHCP Server 4.4.1

Copyright 2004-2018 Internet Systems Consortium.

All rights reserved.

For info, please visit https://www.isc.org/software/dhcp/

Wrote 1 leases to leases file.

Listening on BPF/em1/00:0c:29:09:b8:7a/192.168.100.0/24

Sending on   BPF/em1/00:0c:29:09:b8:7a/192.168.100.0/24

Sending on   Socket/fallback/fallback-net


Если ошибок при запуске не возникло, проверяем, раздаются ли IP-адреса.

 

Проверяем лог-файл:

cat /var/log/dhcpd.log

 



Использование SSD с FreeBSD

SSD диски стали во многих случаях практичными заменами жестких дисков. Существуют важные отличия от обычных жестких дисков, и тщательная настройка будет окупаться в долгосрочной перспективе.

Эти инструкции написаны для FreeBSD 10.X и более поздних версий.





AHCIAdvanced Host Controller Interface – является стандартом для дисководов и контроллеров. Он предлагает расширенные функции, но для наших целей важной частью является то, что включение AHCI в BIOS обычно дает 5-15% увеличения производительности. Не все контроллеры предлагают AHCI; проверьте свой набор микросхем и BIOS.
TRIMБольшинство SSD поддерживают функцию TRIM. TRIM – это просто обновление статуса: когда файловая система удаляет блок, он также уведомляет устройство о том, что блок больше не используется. Затем прошивка SSD может выполнять выравнивание в фоновом режиме. Без TRIM он не сможет определить, все еще используется этот блок. TRIM не требует AHCI.

Предупреждения

Не включайте TRIM, если SSD не поддерживает его. Еще лучше, избегайте SSD, которые не поддерживают TRIM.

Включение AHCI в BIOS после установки операционной системы может изменить способ, которым операционная система или другие видят прикрепленные диски. Это особая проблема с FreeBSD, установленным в системе с несколькими загрузками. Включите AHCI перед установкой операционных систем или временно отключите его для обновления драйверов на тех, которые не видят диск при включенном AHCI.

Версия gpart (8), которая поставлялась с FreeBSD 9.0, не выполняла ожидаемого, когда использовались оба варианта -a и -b. Это было исправлено FreeBSD 9.1, но чтобы оставаться совместимым с 9.0, приведенные здесь команды используют тот или иной.

Используемые здесь функции были протестированы, но не с любой возможной конфигурацией FreeBSD. Включение аварийных дампов, но замена их в файле, вероятно, является ошибкой. Разделение MBR может потребоваться, когда несколько операционных систем загружаются с одного диска. Рассмотрите эти предложения и приспосабливайтесь к своему использованию.

Краткое резюме

Для удобства ознакомления, здесь описаны шаги разбиения и форматирования, которые описаны более подробно ниже.

# gpart create -s gpt ada0

# gpart add -t freebsd-boot -s 512k -a4k -l ssdboot ada0

# gpart bootcode -b /boot/pmbr -p /boot/gptboot -i1 ada0

# gpart add -t freebsd-ufs -l ssdrootfs -b 1m -s 2g ada0

# gpart add -t freebsd-ufs -l ssdvarfs -a 1m -s 2g ada0

# gpart add -t freebsd-ufs -l ssdusrfs -a 1m ada0

# newfs -U -t /dev/gpt/ssdrootfs

# newfs -U -t /dev/gpt/ssdvarfs

# newfs -U -t /dev/gpt/ssdusrfs

Разделение SSD

Первые шаги: создать схему разделов GPT, раздел для хранения загрузчика FreeBSD и установить код загрузки. Загрузочный раздел – 512 КБ, самый большой безопасный размер из-за ограничений кода в загрузчике. В то время как загрузочный код в настоящее время намного меньше 512K, нет никакой реальной причины уменьшить размер раздела. И если в будущем размер загрузочного кода будет больше, как и раньше, разделы не будут переупорядочены.

Раздел загрузки здесь 4K-выровненный, но это действительно не имеет значения. Загрузочный раздел редко читается или записывается редко, а код настолько мал, что выравнивание не требуется. Здесь он выравнивается в любом случае, просто для согласованности.

# gpart create -s gpt ada0

# gpart add -t freebsd-boot -s 512k -a4k -l ssdboot ada0

# gpart bootcode -b /boot/pmbr -p /boot/gptboot -i1 ada0

По моему опыту, корневой раздел 2G достаточно велик для хранения традиционной конфигурации и позволяет пространство для текущего ядра и kernel.olddirectory, созданного при создании нового ядра.

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

# gpart add -t freebsd-ufs -l ssdrootfs -b 1m -s 2g ada0

Обратите внимание, что раздел начинается с 1M. Зачем это? Расположение 1M выравнивается по 4K. Он также выровнен по 128К и 1М, что может быть важно для некоторых твердотельных накопителей. Начиная с Windows Vista, Microsoft запустила разделы данных на 1M. И некоторые RAID-контроллеры также используют размер полосы 1 М или меньше. Используя это местоположение, более вероятно, что работа над секцией диска без использования FreeBSD GPT или, по крайней мере, менее вероятно, приведет к уничтожению данных, которые находятся в том, что контроллер видит в качестве области метаданных.

Там действительно нет никаких недостатков. 492K  Впустую, в обмен на соблюдение де-факто стандарта.

Начальная точка и размер этого раздела уже выровнены. Поэтому нет необходимости использовать -a здесь, и, оставив его, избавляемся от  проблемы с более ранними версиями gpart (8), упомянутыми выше.

После корневого раздела находится раздел 2G для / var и остальная часть SSD для / usr. На самом деле, 1G / var часто достаточно велик. Они выровнены с шагом 1 М, снова четным кратным размеру блока 4 КБ.

# gpart add -t freebsd-ufs -l ssdrootfs -b 1m -s 2g ada0

# gpart add -t freebsd-ufs -l ssdvarfs -a 1m -s 2g ada0

# gpart add -t freebsd-ufs -l ssdusrfs -a 1m ada0

Здесь некоторые вещи отсутствуют. Нет разделов для swap или / tmp. Мы установим их немного, воспользовавшись функциями SSD.

Файловые системы и TRIM

Файловая система UFS FreeBSD поддерживает TRIM. Это будет включено с -t при форматировании файловых систем.

Также доступны soft обновления. Журналы с soft-обновлениями (SUJ) не используются по двум причинам: были проблемы с SUJ, которые предотвращают использование дампа (8) для резервного копирования файловых систем, а функция SUJ значительно снижается fsck (8) раз. Но SSD обеспечивают значительно уменьшенный fsck (8) раз в любом случае.

# newfs -U -t /dev/gpt/ssdrootfs

# newfs -U -t /dev/gpt/ssdvarfs

# newfs -U -t /dev/gpt/ssdusrfs

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




Если вы установите новую версию FreeBSD на SSD, это может быть newfs (8) файловыми системами без TRIM. Загрузитесь в однопользовательский режим и используйте tunefs (8) -t, чтобы включить его в каждую файловую систему.




Не используйте dd (1) или другие программы, которые непосредственно записывают блоки на SSD. Он копирует каждый блок, независимо от того, используются они или нет. С точки зрения SSD, каждый блок используется, а выравнивание износа становится медленным или невозможным. Тогда SSD становится медленным.

Процедура, показанная здесь, копирует данные с существующего системного диска на SSD.

# mount /dev/gpt/ssdusrfs /mnt

# dump -C16 -b64 -0aL -f - /usr | (cd /mnt && restore -rf -)

# umount /mnt

# mount /dev/gpt/ssdvarfs /mnt

# dump -C16 -b64 -0aL -f - /var | (cd /mnt && restore -rf -)

# umount /mnt

# mount /dev/gpt/ssdrootfs /mnt

# dump -C16 -b64 -0aL -f - /    | (cd /mnt && restore -rf -)

# umount /mnt

Редиктируем /etc/fstab and /tmp

/etc/fstab редактируется для обращения к SSD. В то же время будет добавлен недостающий / tmp.

# Device                Mountpoint      FStype  Options         Dump    Pass#

/dev/gpt/ssdrootfs      /               ufs     rw              1       1

/dev/gpt/ssdvarfs       /var            ufs     rw              2       2

tmpfs                   /tmp            tmpfs   rw,mode=01777   0       0

/dev/gpt/ssdusrfs       /usr            ufs     rw              2       2

tmpfs (5) используется для / tmp. Он использует систему виртуальной памяти для создания эффективной файловой системы памяти. Если система работает с низким объемом памяти, она будет перемещена для замены места. Этот пример не ограничивает объем свободного места в / tmp, но tmpfs (5) дает подробную информацию об этом.

Это  временная файловая система. Он будет очищен при перезапуске.

SWAP

Файл подкачки редко используется, но нужно его иметь. Выделение раздела постоянно связывает пространство подкачки, а данные, записанные для обмена, не будут использовать TRIM. Поэтому мы будем использовать файл подкачки. Поскольку данные передаются через файловую систему, TRIM будет использоваться, и файл подкачки может быть изменен без переделки SSD.

Создайте файл подкачки с помощью dd (1). В этом примере создается файл подкачки 4G. 2G достаточно часто и может быть более подходящим для небольшого SSD.

# mkdir /usr/swap

# dd if=/dev/zero of=/usr/swap/swap bs=128k count=32768

Измените файл /etc /fstab, чтобы использовать файл подкачки. Это использует новую поддержку файлов подкачки, добавленных во FreeBSD 10 и описанных в fstab (5).

# Device        Mountpoint      FStype  Options                         Dump    Pass#

md99            none            swap    sw,file=/usr/swap/swap,late     0       0

Установка/настройка удаленной системы с помощью FreeBSD Rescue

Что такое FreeBSD Rescue?

FreeBSD Rescue система основана на минимальном дистрибутиве FreeBSD, который загружается по сети. С помощью FreeBSD Rescue системы вы сможете починить вашу неверно сконфигурированную установленную FreeBSD систему или же установить FreeBSD на ваш выделенный сервер.

Установка и использование FreeBSD требует знаний по FreeBSD и поэтому предусмотрена, прежде всего, для опытных пользователей. Пожалуйста, примите во внимание, что Hetzner Online GmbH не оказывает услуг поддержки ПО и поэтому возникающие проблемы должны решаться вами самостоятельно.

Образы FreeBSD были созданы с использованием системы, разработанной Martin Matuska mfsBSD.

Какое поддерживается оборудование?

Работа FreeBSD была с успехом протестирована на следующих системах:

  • Все текущие EX и PX серверы:

  • Asus Z10PA-U8
  • MSI H87-G43
  • MSI B85M-G43
  • MSI X58 Pro-E
  • Intel S1200RP

Ранее доступные для заказа серверы PX, EX, EQ, DS и SB со следующими материнскими платами:

  • Asus P8H67-M Pro
  • Asus P8H77-M Pro
  • Asus P8BWS
  • Intel DX79TO
  • MSI X58 Pro-E
  • MSI K9AG Neo2 (MS-7368)
  • MSI K8T Neo2 – F (MS-7032)
  • MSI K8MM3-V (MS-7181)
  • MSI KA780G (MS-7551)
  • MSI K9NBPM2-FID (MS-7252)
  • Supermicro X9SRi

Вы можете проверить модель материнской платы в вашем сервере при помощи Linux Rescue системы командой “dmidecode” (в списке обратите внимание на строку “Product Name”):

root@rescue ~ # dmidecode | grep -A 3 "DMI type 1,"

Handle 0x0001, DMI type 1, 25 bytes

System Information

        Manufacturer: MSI

        Product Name: MS-7032

root@rescue ~ #


В BIOS обязательно должен быть активирован ACPI. В новых моделях серверов ACPI уже активирован.

Запуск Rescue системы:

Зарегистрируйтесь под своей учётной записью в панели Robot. В меню “Server” выберите нужный сервер и выберите вкладку “Rescue”. Затем активируйте FreeBSD Rescue систему и перезагрузите ваш сервер (например, через SSH или в случае недоступности сервера через вкладку “Reset”).

При активации Rescue системы вам будет показан пароль, который вы можете использовать для регистрации на вашем сервере по SSH под учетной записью “root”.

Как смонтировать файловую систему?

UFS:

Для этого используйте команду “mount”. Различные опции и точный синтаксис использования вы можете посмотреть в руководстве: mount(8).

ZFS:

Сначала просмотрите все доступные для монтирования пулы при помощи команды “zpool import“. Для монтирования пола “tank” в директорию /mnt используйте команду

zpool import -o altroot=/mnt tank

Установка FreeBSD на Root сервере:

Запуск Rescue-системы

Установка FreeBSD производится через FreeBSD Rescue System. Запустив FreeBSD Rescue System, зайдите на сервер по ssh. Перед установкой убедитесь в том, что вы выполнили резервное копирование данных вашего сервера.

Автоматическая установка

Для начала установки выполните следующую команду:

# bsdinstallimage


Он предлагает в диалоговом режиме выбрать/указать версию, архитектуру и пакеты. Этот скрипт использует официальный «bsdinstall». Все данные для установки скачиваются с официального зеркала FreeBSD. После окончания установки следует перезагрузить сервер:

# reboot


Через несколько минут он должен быть доступен по ssh.

Ручная установка

Установку можно выполнить при помощи оригинального инсталлятора FreeBSD. Для этого используйте команду:

bsdinstall


Замечание для серверов CX: следующую строку следует добавить в /boot/loader.conf (в противном случае, FreeBSD не загрузится):

beastie_disable="YES"


Замечание для серверов EX41/EX51 и PX61: следующую строку следует добавить в /boot/loader.conf для отключения вывода в консоль отладочных сообщений ACPI:

debug.acpi.disabled="thermal"


Для избежания рассинхронизации часов на виртуальных серверах рекомендуется задать

kern.timecounter.hardware=i8254


в /etc/sysctl.conf

Настройки сети

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

IPv4

Специальные настройки маршрутизации можно задать в файле /etc/rc.conf:

gateway_if="re0"

gateway_ip="188.190.X.Y"

static_routes="gateway default"

route_gateway="-host $gateway_ip -interface $gateway_if"

route_default="default $gateway_ip"


Обратите внимание: не используйте ключевое слово «defaultrouter» при такой настройке!

IPv6

Шлюз по умолчанию для IPv6 (fe80::1) может быть задан в файле /etc/rc.conf:

ipv6_default_interface="re0"

ifconfig_re0_ipv6="4401:4a8:XX:YY::1:1/64"

# set a static local interface-route

ipv6_defaultrouter="fe80::1%re0"


Настройка дополнительных IP-адресов

Настройка дополнительных IP-адресов и подсетей в FreeBSD производится путём добавления алиасов к интерфейсам в файле /etc/rc.conf. Для каждой подсети (или если дополнительный IP-адрес находится в сети отличной от сети основного IP-адреса) следует указывать правильную маску для первого IP-адреса из сети. Остальные адреса сети указываются с маской /32 (255.255.255.255).

ifconfig_<interface>_alias0="inet <ip-адрес-1> netmask 255.255.255.248"

ifconfig_<interface>_alias1="inet <ip-адрес-2> netmask 255.255.255.255"

и так далее.

 



2018-03-15T11:27:42
FreeBSD

Обновление Freebsd 10.3 до 11.0

10-го октября состоялся релиз 11-й версии операционной системы Freebsd. Как обычно, выполним обновление предыдущей версии 10.3 до актуальной 11.0. Процедура не сложная, принципиально ничего не изменилось в этом плане в новой версии. Используем стандартное средство системы freebsd-update, которое входит в состав freebsd.

Читать

Пошаговая установка freebsd 11 для чайников

10 октября 2016 года на официальном сайте был анонсирован релиз очередной (11-й) версии популярной unix системы. Я решил написать подробную инструкцию с видео по двум вариантам установки Freebsd 11 — на одиночный диск и raid1 в виде mirror пула zfs. Давно внимательно не смотрел на эту систему, решил подробно все описать и посмотреть, что в ней изменилось за последнее время.

Читать

Установка Zabbix 3.0 на Freebsd 10

Обнаружил некоторое время назад, что на официальном сайте zabbix в документации нет инструкции по установке на Freebsd. Хотя я знаю, что zabbix отлично устанавливается и работает на freebsd. В разделе download тоже нет ничего для freebsd. Решил разобраться в этой теме и написать подробную инструкцию, так как это будет полезно для многих.

Читать