Полный роутер для корбины на FreeBSD для Чайников.
Включая PPTP, L2TP и multicast routing для Corbina IPTV.
Полное пошаговое руководство для полных чайников.
Эти скрипты больше не развиваются
Я открыл тему, в которой выложил скрипт для полностью автоматического проделывания того, что тут описано - Скрипт полностью автоматического создания роутера для корбины на FreeBSD (Custler). Там сделаны много улучшений и дополнений.
Одна из главных задач, которые я хотел решить – избавиться от ручного прописывания шлюза и маршрутов в конфигурационных файлах, так как сейчас маршруты выдаёт корбиновский DHCP сервер. Задача - РЕШЕНА , за исключением нескольких маршрутов, которые корбина почему-то не выдаёт, но и они прописываются из dns имён этих серверов (например сервер точного времени - ntp.corbina.ru) . Также вручную прописаны адреса IPTV серверов в igmpproxy.conf. Всё остальное – на автомате. Так если у Вас изменится шлюз или корбина поменяет адреса vpn серверов или изменит ip локальных ресурсов, ничего править в конфигах не придётся. То есть, при переезде, просто переносите комп, включаете - работает. Или можно собрать у себя дома, а потом подарить другу , которому не надо ничего настраивать.
Итак, здесь решено:
Все используемые файлы конфигурации - в приложенном архиве, в конце этого поста - FreeBSD_config_files_[дата последнего изменения].zip .
У меня используются следующие имена интерфейсов
xl0 – для внешнего интерфейса, подключенного в сеть корбины
nve0 – для интерфейса домашней сети.
Там, где будет указано, эти имена Вам надо будет изменить на свои.
Для туннеля всегда будет имя ng0 , так как используется netgraf и mpd.
Чтобы определить какие у Вас интерфейсы есть по крайней мере два способа -
1) метод "тыка":
Так как предполагается, по умолчанию, что у нас два интерфейса, то один - внешний. Если не угадал - перетыкаешь провод корбины в другой и всё.
2) Включение мозга:
Если в компе вставлены две одинаковые сетевые карты, то они нумеруются xxx0, xxx1, причем нумерация происходит по слотам от процессора: ближняя - 0, следующая - 1. Однако я в этом не до конца уверен. Если кто знает лучше - поправте меня.
Если в компе разные сетевые карты, то, например в файле GENERIC, можно найти соответствие префикса устройства (два или три символа перед цифрой) и модели сетевой карты:
# PCI Ethernet NICs. device de # DEC/Intel DC21x4x (``Tulip"") device em # Intel PRO/1000 adapter Gigabit Ethernet Card device ixgb # Intel PRO/10GbE Ethernet Card device le # AMD Am7900 LANCE and Am79C9xx PCnet device txp # 3Com 3cR990 (``Typhoon"") device vx # 3Com 3c590, 3c595 (``Vortex"") # PCI Ethernet NICs that use the common MII bus controller code. # NOTE: Be sure to keep the "device miibus" line in order to use these NICs! device miibus # MII bus support device bce # Broadcom BCM5706/BCM5708 Gigabit Ethernet device bfe # Broadcom BCM440x 10/100 Ethernet device bge # Broadcom BCM570xx Gigabit Ethernet device dc # DEC/Intel 21143 and various workalikes device fxp # Intel EtherExpress PRO/100B (82557, 82558) device lge # Level 1 LXT1001 gigabit Ethernet device msk # Marvell/SysKonnect Yukon II Gigabit Ethernet device nge # NatSemi DP83820 gigabit Ethernet device nve # nVidia nForce MCP on-board Ethernet Networking device pcn # AMD Am79C97x PCI 10/100 (precedence over "le") device re # RealTek 8139C+/8169/8169S/8110S device rl # RealTek 8129/8139 device sf # Adaptec AIC-6915 (``Starfire"") device sis # Silicon Integrated Systems SiS 900/SiS 7016 device sk # SysKonnect SK-984x & SK-982x gigabit Ethernet device ste # Sundance ST201 (D-Link DFE-550TX) device ti # Alteon Networks Tigon I/II gigabit Ethernet device tl # Texas Instruments ThunderLAN device tx # SMC EtherPower II (83c170 ``EPIC"") device vge # VIA VT612x gigabit Ethernet device vr # VIA Rhine, Rhine II device wb # Winbond W89C840F device xl # 3Com 3c90x (``Boomerang"", ``Cyclone"") # ISA Ethernet NICs. pccard NICs included. device cs # Crystal Semiconductor CS89x0 NIC # "device ed" requires "device miibus" device ed # NE000, SMC Ultra, 3c503, DS8390 cards device ex # Intel EtherExpress Pro/10 and Pro/10+ device ep # Etherlink III based cards device fe # Fujitsu MB8696x based cards device sn # SMC"s 9000 series of Ethernet chips device xe # Xircom pccard Ethernet # Wireless NIC cards device wlan # 802.11 support device wlan_wep # 802.11 WEP support device wlan_ccmp # 802.11 CCMP support device wlan_tkip # 802.11 TKIP support device an # Aironet 4500/4800 802.11 wireless NICs. device ath # Atheros pci/cardbus NIC"s device ath_hal # Atheros HAL (Hardware Access Layer) device ath_rate_sample # SampleRate tx rate control for ath device awi # BayStack 660 and others device ral # Ralink Technology RT2500 wireless NICs. device wi # WaveLAN/Intersil/Symbol 802.11 wireless NICs.
Полный список сетевых карт и имена драйверов можно найти на оф. сайте - FreeBSD - Hardware - Ethernet
1. Установка FreeBSD 6.3.
Так как у меня был «лишний» системный блок на AMD Athlon XP 64 3200+ (2ГГц), все ссылки указаны для дистрибутивов amd64. Если у Вас система на процессоре Intel, то вместо amd64 в ссылках подставляйте i368.
1.1. Скачиваем образ установочного диска FreeBSD 6.3 6.3-RELEASE-amd64-disc1.iso
Но мне, как старому видузятнику очень нравится SecureCRT – она условно бесплатная (30 дней полнофункциональный триал – нам хватит) – в нём выберете terminal emulation – xterm и поставьте птицу ANSI Color. шрифт - Fixedsys 10pt
Это удобно при пользовании Midnight Commander’ом. В SecureCRT также встроен sftp клиент, которым очень удобно копировать командами put (скопировать в unix)и get (скопировать из unix), и когда я буду писать «скопировать», я буду иметь ввиду именно копирование с помощью sftp с виндовой машины.
3.1. Теперь нам нужно загрузить необходимые пакеты.
3.1.1. Первое, что нужно сделать – прописать default route (у меня его не было):
route add 0.0.0.0/0 GW
где GW - шлюз, который можно посмотреть командой netstat -rn
3.1.2. после этого проверяем связь с корбиновским FTP:
ping ftp.corbina.ru
3.1.3. Запускаем sysinstall и идём в Configure -> Packages
3.1.5. Делаем Install всего выбранного и перезагружаемся.
4. Сборка необходимой нам конфигурации ядра.
Теперь надо пересобрать ядро с нужной нам конфигурацией.
4.1. Для этого запускаем mc и переходим в
/usr/src/sys/amd64/conf/
4.2. Копируем файл GENERIC в файл MYROUTER и редактируем его, добавляя
(Если у Вас тоже amd64 - можно взять готовый файл из приложенного архива.)
# =================Enable Multicast Routing ================= options MROUTING # ================ Enable pf & altq ============== device pf device pflog device pfsync options ALTQ options ALTQ_CBQ options ALTQ_RED options ALTQ_RIO options ALTQ_HFSC options ALTQ_CDNR options ALTQ_PRIQ # ================== Enable NETGRAPH ======================= options NETGRAPH options NETGRAPH_ASYNC options NETGRAPH_BPF options NETGRAPH_BRIDGE options NETGRAPH_CISCO options NETGRAPH_ECHO options NETGRAPH_ETHER options NETGRAPH_FRAME_RELAY options NETGRAPH_GIF options NETGRAPH_GIF_DEMUX options NETGRAPH_HOLE options NETGRAPH_IFACE options NETGRAPH_IP_INPUT options NETGRAPH_KSOCKET options NETGRAPH_L2TP options NETGRAPH_LMI # MPPC Для MPPC компрессии требуются специальные лицензионные файлы, которые не прилагаются в ядро #=== options NETGRAPH_MPPC_COMPRESSION options NETGRAPH_MPPC_ENCRYPTION options NETGRAPH_ONE2MANY options NETGRAPH_PPP options NETGRAPH_PPTPGRE options NETGRAPH_RFC1490 options NETGRAPH_SOCKET options NETGRAPH_TCPMSS options NETGRAPH_TEE options NETGRAPH_TTY options NETGRAPH_UI options NETGRAPH_VJC #===================================================
4.3. Сохраняем файл MYROUTER и переходим в /usr/src/
4.4. Компилируем новое ядро:
Make buildkernel KERNCONF=MYROUTER
курим минут 10-20.
4.5. Устанавливаем новое ядро:
Make installkernel KERNCONF=MYROUTER
4.6. Перезагружаемся.
5. Настройка роутинга, пакетного фильтра (pf) и vpn клиента mpd4
5.1. Создаём директории:
в /etc директорию corbina - mkdir /etc/corbina
в /var/log директорию Corbina - mkdir /var/log/Corbina - сюда будут записываться логи соединений и маршрутов, выдаваемых по DHCP.
5.2. Копируем из приложенного архива в /etc/corbina файл
sftp> cd /etc/corbina
sftp> put corbina.local.nets
Файл corbina.local.nets будет использоваться в rc.local для предварительного прописывания маршрутов, которые почему-то пока не выдаёт корбиновский DHCP сервер. Если надо будет добавить маршруты, не выдаваемые по DHCP, то добавляем их именно в файл corbina.local.nets . В формате xxx.xxx.xxx.xxx/mm.
5.3. Копируем из приложенного архива в /etc/ файл rc.conf и редактируем его подставляя свои имена в hostname, ifconfig_nve0 , ifconfig_xl0
5.4. Копируем из приложенного архива в /etc/ файл pf.conf и редактируем его подставляя свои имена интерфейсов в
ext_if="xl0"
int_if="nve0"
В pf.conf уже сделаны пробросы портов для torrent"a и emul"a со следующими параметрами:
внутренний комп 192.168.1.3:
Torrent port - 25893
Emule port - 4662 - стандартный
внутренний комп 192.168.1.2:
Torrent port - 23789
5.5. Копируем из приложенного архива в /etc/ файлы:
- rc.local и даём ему права на выполнение chmod +x /etc/rc.local
- dhclient.conf и исправляем в нём СВОЁ имя внешнего интерфейса.
- dhclient-script и делаем chmod +x /etc/dhclient-script
- ntp.conf
В dhclient.conf можно добавить две строки после interface "xl0" {
Send host-name "client117.dialup.corbina.ru"; send dhcp-client-identifier mm:mm:mm:mm:mm:mm;
client117.dialup.corbina.ru - то же имя, что и в /etc/rc.conf, которое Вы себе придумали в самом начале;
mm:mm:mm:mm:mm:mm - MAC адрес карты, котороя смотрит во внешний мир.
В этом случае однажды выданный для этой карты локальный IP адрес (типа 10.x.x.x) будет закреплен за ней на 14 суток, и останется закрепленным, если будете включать компьютер хотябы раз в две недели То есть практически получится фиксированный локальный IP.
5.6. Копируем из приложенного архива в /usr/local/etc/mpd4/ файлы
- mpd.conf
- mpd.links
- io-up-l2tp.sh
- io-up-pptp.sh
- io-down-l2tp.sh
- io-down-pptp.sh
файлам io-.....sh надо дать права на запуск.chmod +x /usr/local/etc/mpd4/io*
5.7. Редактируем mpd.conf прописывая вместо ХХХ в строках
- set auth authname ХХХ
- set auth password ХХХ
Свои логин и пароль соответственно и одинаково в блоках для l2tp и pptp.
5.8. Выбирать используемый протокол (l2tp или pptp) можно редактируя в mpd.conf строку
load vpn-l2tp
Для pptp она будет выглядеть:
load vpn-pptp
5.9. После запуска mpd можно будет обращаться к веб-интерфейсу mpd по адресу http://192.168.1.1:5006 с логином me и паролем only. Изменить это можно в секции startup файла mpd.conf:
set web ip 192.168.1.1
set web port 5006
set web user me only
5.10. По желанию, можно включить запись протокола работы mpd в файл /var/log/Corbina/mpd.log
Для этого в /etc/syslog.conf надо вписать:
Mpd *.* /var/log/Corbina/mpd.log
и создать файл mpd.log
Touch /var/log/Corbina/mpd.log
Чтобы запустить лог немедленно надо дать сислогу команду перечитать конфиг:
Kill -HUP `cat /var/run/syslog.pid`
C этого момента начнётся логирование работы mpd, которое продолжится и после перезагрузки.
А чтобы увидеть детально весь лог работы mpd надо дать команду mpd4 -k и после рестарта mpd в интерактивном режиме дать ему команду log all .
6. Установка и настройка igmpproxy для IPTV.
6.1. Копируем из приложенного архива в /root файл igmpproxy_src_0.1.1_freebsd.tar.gz, за который отдельная и особая благодарность neo-man (aka Pavel Korshunov) за портирование этой проги из linux. Обсуждение igmpproxy в ветке multicast роутер на базе FreeBSD
6.2. Распаковываем его:
Tar -xvf igmpproxy_src_0.1.1_freebsd.tar.gz
6.3. Переходим в
cd /root/igmpproxy/src
6.4. Компилируем
6.5. Устанавливаем
make install
6.6. Редактируем конфиг /usr/local/etc/igmpproxy.conf , подставляя вместо моих xl0 и nve0 свои имена интерфейсов.
6.7. Так как Корбина сейчас перестраивает свою сеть вещания и начинает вещать из подсети 172.16.16.0/24, после строки
phyint xl0 upstream ratelimit 0 threshold 1
надо добавить строку
altnet 172.16.16.0/24
Строка для запуска igmpproxy (igmpproxy_enable="YES" ) уже прописана в rc.conf.
Перезагружаемся и наслаждаемся…
Теперь можно ходить в интернет, пользоваться локальными ресурсами и даже смотреть корбина IPTV на нескольких компьютерах ОДНОВРЕМЕННО!!!
Только имейте ввиду, что при использовании программ поиска каналов, надо ставить таймаут переключения секунд 20-30, иначе забивается стэк igmpproxy и весь роутер вешается напроч.
P.S. ChangeLog приложенного конфигурационного файла
10.02.08 - Добавлен автозапуск демона синхронизации времени с корбиновского сервера ntp.corbina.ru. Добавлено получение статических роутов от dhcp сервера. Теперь ВСЕ маршруты прописываются автоматом.
14.02.08 - Изменён конфиг ядра. Убрана поддержка ipv6, ipfw, pcmcia, cardbus, firewire.
21.02.08 - Добавлено options NETGRAPH_TCPMSS в конфигурацию ядра.
22.02.08 - Убрано непрерывное логирование igmpproxy в messages и debug.log. Необходимо перекомпилировать make igmpproxy из приложенного файла. И установить его - make install.
03.03.08 - Добавлен файл ntp.conf. История соединений и маршрутов пишется в /var/log/Corbina/. В mpd.links исправлено.ru на.net.
04.03.08 - Исправлена ошибка взятия адреса локального шлюза из /var/db/dhclient.leases.*. Раньше брался не последний а предпоследний сеанс. Хотя шлюз обычно не меняется - но не порядок. Теперь в файл /var/log/Corbina/vpn.log пишутся все получаемые айпишники: локальный шлюз, локальный адрес, впн шлюз, внешний (WAN) адрес.
Если даже это кажется слишком сложным, PC-BSD - полнофункциональная настольная система, созданная поверх FreeBSD с простым в использовании установщиком и опцией коммерческой поддержки.
Нет никаких жестких рамок для FreeBSD. Решения приняты людьми готовыми сделать работу. Если все же возникают споры, то они разрешаются группой разработчиков, которые избираются каждые два года. Обязательным критерием, по которому избираются разработчики, является обязательное исправление или доработка кода проекта в прошлых годах.
Ядро XNU, которое используется на OS X включает в себя несколько подсистем из более старых версий FreeBSD, но в основном считаются независимой реализацией. Но все же за счет своего сходства продукты реализованные на OS X значительно проще адаптировать под FreeBSD. Например libdispatch и libc ++ были записаны для OS X и работали на FreeBSD раньше, чем на любой другой ОС.
Вы можете установить pkgng из портов (ports-mgmt/pkg) на более старых версиях FreeBSD. Она включена по умолчанию на FreeBSD 9.1 и более поздние версии.
Это не означает, что FreeBSD отказалась от своих UNIX корней. Есть много причин, почему UNIX системы стали популярными. Они включают в себя свободно распространяемую систему, которую легко портировать на новые платформы, набор простых инструментов и ядро, которое хорошо зарекомендовало себя на различных платформах. FreeBSD поддерживает эти традиции.
Несмотря на преимущества ZFS, это по-прежнему относительно небольшая часть общей системы. ZFS и DTrace составляют менее чем 4% кода в ядре, которое равно почти 10% кода в основной системе. Если считать, что только 0.4% FreeBSD хороши, то система не приобрела бы такой популярности.
Поддержка аппаратных средств - это та часть реализации, которая требует постоянной доработки, потому что нельзя просто сказать производителям аппаратных средств, чтобы они подождали пару лет, пока разработчики ПО их догонят. Обеспечение поддержки новых устройства занимает время для настройки, хотя некоторые производители сами обеспечивают драйверы, например Nvidia обеспечивает драйверы для их GPU и Intel для новейших сетевых контроллеров. Другие производители обеспечивают помощь в разработке драйверов FreeBSD, включая Broadcom, JMicron, HP, Mellanox, Chelsio и Solarflare. Если Вы знаете устройства, которые не поддерживаются FreeBSD, лучше сообщить про это разработчикам и производителям устройств. Как правило, лучшим толчком для решения проблемы со стороны производителей - сообщение о том, что их клиенты не могут использовать их продукты.
Серия 5.x была болезненным уроком для проекта. В серии 6.x восстановили стабильность выпуска 4.x., а в серии 7.x восстановили производительность одного процессора. Во время выпуска серии 8.x можно было увидеть ряд опубликованных третьими лицами тестов, которые продемонстрировали лучшую масштабируемость FreeBSD на многопроцессорных системах, чем любая другая операционная система.
Все эти релизы имели значительное количество улучшений, такие как улучшенная звуковая подсистема, ZFS, DTrace, ведение журналов UFS и многое другое, но стабильность и производительность остались ключевыми задачами системы FreeBSD.
Большая часть программного обеспечения в наборе портов работает исходно на FreeBSD. Большая часть программного обеспечения с открытым исходным кодом - агностик относительно ОС и требует, чтобы минимальная модификация была скомпилирована и работала на FreeBSD. Есть исключения такие как Valgrind, которые требуют детального понимания системы. Проприетарное программное обеспечение может быть более серьезной проблемой. Некоторые разработчики, такие как Opera, обеспечивают FreeBSD своим исходным кодом.
Другое программное обеспечение должно работать в режиме эмуляции. Например, бинарные файлы Linux могут работать на уровне Linux ABI, где системные вызовы Linux переводятся на их эквиваленты FreeBSD. Единственный изъян - немного увеличенная нагрузка системных вызовов; обычно сложно измерить различие в производительности между выполнением программ Linux на Linux и на FreeBSD: в некоторых случаях программы работают быстрее на FreeBSD, чем на Linux из-за более эффективных реализаций базовых вызовов. Например, версия Linux Flash-плагина может работать, используя NSPluginWrapper на уровне Linux ABI с собственным веб-браузером.
Аналогичное решение существует для запуска Windows приложений.
FreeBSD также поддерживает VirtualBox и в качестве гостя и в качестве хоста. Вы можете найти гостевые дополнения VirtualBox, а затем и сам гипервизор в наборе портов. FreeBSD 10 также работает в качестве хоста операционной системы для гипервизора BSD, давая множество возможностей для запуска FreeBSD виртуальных машин на базе FreeBSD.
И наконец, если Вам не требуется полная виртуализация, то для выполнения изолированных пространств пользователя FreeBSD (или даже пространств пользователя Linux, используя уровни Linux ABI) на одном ядре FreeBSD Вы можете использовать подсистему контейнеров. Контейнеру можно даже предоставить их собственный независимый сетевой стек и т.д., и таким образом, одна машина может использоваться, чтобы эмулировать целый парк машин.
Пока разработчики кода FreeBSD не подадут на вас иск о нарушении авторских прав, Вы вольно можете его использовать. Но, если верить утверждениям самих разработчиков, такого не произойдет.
Некоторые компании, почти наверняка возьмут наш код, изменят его и никогда ничего не предоставят взамен.
Рассмотрим в качестве примера случай двух крупнейших интернет-компаний: Google и Yahoo! Прежде их внутренняя инфраструктура основывалась на операционной системе GPL, в то время как более поздние версии уже используют FreeBSD. Поскольку Google не распределяет их измененную операционную систему, они могут сохранить к примеру GoogleFS в частной собственности. В таких случаях как этот, где программное обеспечение разработано для внутреннего использования, по лицензионному соглашению компания не обязана раскрывать свои доработки для разработчиков FreeBSD.
Существуют, однако, некоторые проблемы с соединением: например, нельзя использовать библиотеку с лицензией GPL, если уже используется BSD.
На протяжении многих лет не мало компаний внесло значительный вклад в FreeBSD. И вызвано это не только чувством альтруизма, ведь поддержка любого проекта, который быстро развивается, очень дорогое удовольствие.
В сфере современного программного обеспечения с открытыми исходниками слово «Linux» практически превратилось в синоним понятия «операционная система», хотя мало кто знает о том, что в действительности же это далеко не единственная на сегодняшний день ОС типа Unix, исходные коды которой являются доступными для всех.
В соответствии с данными, полученными от IOSC, в 1999 году практически треть всех машин, которые были подключены к интернету, работали на основе Linux, в то время как практически 15% применяли операционную систему FreeBSD. Что это за система, и по сегодняшний день знают лишь немногие современные пользователи ПК, несмотря на все ее преимущества и широкое распространение в свое время. Стоит отметить тот факт, что многие мировые лидеры в сфере Web-услуг активно работают на данной системе. В частности, стоит отметить, что на сегодняшний день система Yahoo основана на FreeBSD. Что это дает пользователям, сами они вряд ли знают и даже задумываются, но владельцы системы уверены, что это правильное решение.
BSD расшифровывается как Berkeley Software Distribution. Именно так в своем время называлось программное обеспечение, которое в Беркли распространял в исходных кодах. При этом стоит отметить тот факт, что изначально дополнение к стандартной операционной системе UNIX - это единственное, что представляло собой FreeBSD. Что это было по сравнению с нынешней версией системы?
На основе версии 4.4 BSD-Lite создавалось несколько операционных систем, имеющих открытые исходные коды. В частности, состав этих систем включал в себя разработки других проектов, среди которых отдельного внимания заслуживает проект GNU.
Преимущества и особенности, которые имеет данная система, отличаются структурой FreeBSD. Что это за структура:
Стоит отметить, что сама по себе FreeBSD UNIX - операционная система всегда разная. И типы таких систем не являются клонами друг друга. Они представляют собой лишь потомков общего предка - традиционной операционной системы UNIX. Данный факт может несколько удивить, тем более если вспомнить, что разработчик этой операционной системы никогда не раскрывал широкой публике коды своих разработок.
И действительно, операционная система UNIX никогда не представляла собой программное обеспечение, имеющее открытый исходный код, в связи с чем BSD определенно нельзя будет назвать системой UNIX, хотя бы потому, что графический интерфейс операционных систем является разным. Однако в то же время компания, которая разрабатывала UNIX, активно пользовалась чужими разработками, и в частности это относится к программному обеспечению, которое разрабатывалось организацией CSRG.
Первоначально дистрибутивы BSD, а также графический интерфейс операционных систем представлял собой комплексы пользовательских программ, и такая ситуация продолжалась ровно до тех пор, пока компания не заключила контракт с DARPA, подчиненным Цель данного контракта - это обновление различных коммуникационных протоколов, на которых поддерживалась компьютерная сеть агентства.
В течение 80-х годов сформировалось несколько компаний, занимающихся производством рабочих станций, при этом стоит отметить, что многие из них приобретали лицензии на использование UNIX вместо того, чтобы пробовать разрабатывать с нуля собственное программное обеспечение. В частности, стоит выделить компанию Sun, которая поступила таким образом и решила на основе версии 4.2BSD в конечном итоге выпустить собственную операционку, которая называлась SunOSTM. Когда же компания AT&T, занимающаяся разработкой UNIX, в конечном итоге решила заняться коммерческой продаже собственной операционной системы, появилась довольно аскетичная реализация - System III, за которой с течением времени последовал также выход системы System V.
Есть некоторый ряд причин, по которым сегодня FreeBSD 10 пользуется не таким широким спросом:
На сегодняшний день чаще всего выбирают, устанавливая сервер Apache, FreeBSD вместо традиционного для большинства других систем Linux. Для среднего пользователя разница между этими системами является удивительно малой, так как оба продукта основываются на UNIX. Обе системы разрабатываются на некоммерческой основе.
Стоит отметить, что нет какого-то конкретного человека или же компании, который бы владел разработкой BSD. Разработка, а также последующее распространение данной системы осуществляется целой группой высококвалифицированных и при этом преданных проекту специалистов, собранных со всего мира. Определенные компоненты BSD представляют собой отдельные проекты, имеющие открытый код, который имеет свои законы и коллективы разработчиков.
Выбор между этими операционными системами является действительно достаточно сложным, поэтому можно выделить несколько советов, которые позволяют выбрать, какой вариант является оптимальным - Linux или FreeBSD. Команды в обоих случая являются довольно схожими, поэтому выбор чаще всего может строиться на основе следующего:
Обеспечивает техническую поддержку, а также обслуживает FreeBSD - порты и системы - компания FreeBSD Mall, Inc.
Министерство образования Республики Таджикистан
Таджикский Технический Университет им. ак. М. С. Осими
кафедра АСОИиУ
Курсовая работа
на тему: «Операционная система FreeBSD»
Душанбе 2009
Аннотация
Введение
Для чего нужна FreeBSD
FreeBSD в роли настольной ОС
FreeBSD в роли серверной ОС
FreeBSD и неродственные неродственные операционные системы
FreeBSD и другие разновидности UNIX
Программная среда
История разработки FreeBSD
Взаимодействие с другими компьютерами по сети
Сосуществование FreeBSD с другими ОС на одном компьютере
Аппаратная среда
Типы и производительность процессоров
Требования к оперативной памяти
Жёсткие диски
Диски SCSI и EIDE
Общие требования к объёму дискового пространства
Графическое оборудование
Сетевое оборудование
Принтеры
Вспомогательные устройства
Заключение
Список литературы
Аннотация
Эта курсовая работа может вполне послужить ознакомительным руководством по операционной системе FreeBSD. Но прежде чем начинать знакомство с системой, нужно ответить на ряд важных вопросов: зачем устанавливать FreeBSD, какое программное обеспечение в ней работает и какую аппаратную платформу лучше всего использовать? Об этом и пойдет речь в настоящей курсовой работе. Понимание особенностей операционной системы позволит избежать дорогостоящих ошибок, таких, например, как попытка эксплуатации системы на неадекватном оборудовании или в неподходящей среде.
На сегодняшний день существует много различных операционных систем, начиная от DOS-а и заканчивая Windows Vista. Может показаться бессмысленным разговор о операционной системе FreeBSD учитывая таких серьёзных конкурентов как Mac OS X и Windows Vista. Но в области вычислительной техники часто встречаются примеры простеньких операционных систем. Почему же так получается? Дело в том, что есть такие области вычислительной техники в которых применение таких «титанических» систем как Windows и Mac OS было бы просто не выгодно как в техническом так и в материальном плане. Поэтому и создаются такие системы как FreeBSD.
Вместе с этим FreeBSD является операционной системой с открытым программным кодом, т.е. операционную систему можно модернизировать и даже в некоторых случаях изменять в корне (кроме основного ядра системы). FreeBSD также является системой бесплатного распространения, т.е. вы можете её установить, не выплачивая денег за лицензию. Стоит также подчеркнуть, что FreeBSD является UNIX-подобной операционной системой (т.е. производной от UNIX).
Введение
Что же из себя представляет FreeBSD. В двух словах, FreeBSD - это UNIX-подобная операционная система для платформ i386, IA-64, PC-98, Alpha/AXP и UltraSPARC, разработанная на основе операционной системы ""4.4 BSD-Lite"" с некоторыми усовершенствованиями, взятыми из ""4.4 BSD-Lite 2"" Калифорнийского Университета (Беркли). Также она косвенно базируется на 386BSD (BSD Net/2, перенесённой на платформу i386 Вильямом Джолитцем (William Jolitz)), хотя от того первоначального кода осталось очень мало. FreeBSD используется компаниями, Интернет-провайдерами, научными работниками, профессионалами в вычислительной технике, студентами и рядовыми пользователями по всему миру для работы, образования и отдыха. Почему система называется именно FreeBSD? Ответ прост:
· Она может использоваться без всяческих выплат, даже для извлечения выгоды.
· Все исходные тексты операционной системы свободно доступны, на её использование в других разработках (как коммерческих, так и некоммерческих) и дальнейшее распространение наложены минимальные ограничения.
· Любой, у кого есть усовершенствования или исправления, может предоставить свой код и он будет (правда, с парой оговорок) добавлен в исходные тексты системы.
Следует отметить, что слово ""free"" используется здесь в двух смыслах, один означает ""бесплатно"", а другой ""вы можете делать всё, что хотите"". За исключением пары вещей, которые вы не можете делать с FreeBSD, например, претендовать на то, что являетесь её разработчиком, на самом деле можно делать с ней всё, что вам заблагорассудится.
Для чего нужна FreeBSD
В любом деле важно находить правильные средства для достижения поставленных целей, и выбор оптимальной операционной системы (ОС) - не исключение. FreeBSD - очень гибкая и эффективная система, имеющая множество возможных вариантов применения. Но, несмотря на это она не всегда оказывается наилучшим выбором. Вот почему нужно, прежде всего, проанализировать, в каких обстоятельствах следует инсталлировать именно FreeBSD.
FreeBSD устанавливают либо на рабочей станции, либо на сервере. Ниже рассматриваются достоинства и недостатки системы в каждом из этих случаев. Кроме того, FreeBSD - член семейства операционных систем, производных от (или смоделированных на основе) UNIX. Поэтому важно понимать, как FreeBSD (и UNIX в целом) соотносится с операционными системами других типов и какое место занимает FreeBSD в семействе UNIX-подобных систем.
FreeBSD в роли настольной ОС
В этой курсовой работе под термином рабочая станция понимается компьютер, за которым пользователь решает свои повседневные задачи: редактирует текст, программирует, занимается Web-дизайном (играет в игры...). Иногда термин употребляют в более узком смысле, подразумевая, что указанные выше функции выполняются на высокопроизводительных компьютерах или системах, постоянно подключенных к сети. В этом случае низкопроизводительные или изолированные системы называют настольными компьютерами. Впрочем, уровень вычислительных мощностей постоянно растет, соответственно меняется и оценка производительности. Что касается подключения к сети, то нужно учитывать огромную популярность коммутируемых сетевых соединений в системах нижнего сегмента рынка. Исходя из этого мы будем употреблять термин "рабочая станция" в отношении компьютеров конечных пользователей.
Способность компьютера играть роль рабочей станции зависит от двух основных факторов.
Удобный пользовательский интерфейс . Современные пользователи привыкли к наличию удобных средств работы с компьютером. Ключевое из них - пользовательский графический интерфейс. Во FreeBSD графический интерфейс представлен средой Х Window System (сокращенно - Х-среда). Ее ядро довольно примитивно в сравнении с другими аналогичными интерфейсами, поэтому к нему добавлен ряд надстроек, таких как диспетчер окон (управляет рамками окон) и набор элементов управления (упрощают программисту задачу отображения меню, диалоговых окон и т.д.). Подобный модульный подход делает Х-среду очень гибкой с точки зрения программирования интерфейса, но есть и обратная сторона медали: возникающая несогласованность между приложениями часто сбивает пользователей с толку.
Доступность прикладных программ . На рабочей станции выполняются пользовательские приложения: текстовые редакторы, программы обработки электронных таблиц, почтовые клиенты, компиляторы, графические редакторы и даже игры. Если операционная система не может предложить пользователю необходимый набор прикладных программ, то она не подходит для установки на рабочей станции. Список приложений, доступных во FreeBSD, велик, хотя и не настолько, как хотелось бы. В частности, популярный пакет Microsoft Office не перенесен во FreeBSD. Существуют его альтернативы, такие как пакет OpenOffice.org, но они не обеспечивают 100-процентную совместимость файлов. Если говорить в целом, то в одних категориях (например, игры) ощущается нехватка приложений для FreeBSD, а в других их более чем достаточно.
FreeBSD вполне подходит на роль операционной системы для рабочей станции, хотя в конкретной ситуации выбор зависит от специфических потребностей пользователя. К достоинствам FreeBSD относятся низкая стоимость, способность функционировать на старом оборудовании, стабильность, гибкий пользовательский интерфейс и близкое сходство с другими разновидностями UNIX. К недостаткам можно отнести менее согласованный, чем в Windows или Мас OS, пользовательский интерфейс, несколько непривычный для пользователей вышеуказанных систем. Что касается фактора доступности прикладных программ, то все зависит от обстоятельств. Если пользователь вынужден работать с приложениями вроде Microsoft Office, которые недоступны во FreeBSD, придется обратиться к другой операционной системе. Если же пользователь не привязан к конкретным форматам файлов, то можно сделать выбор в пользу FreeBSD.
Стоит подметить, что если на рабочей станции требуется установить UNIX-подобную операционную систему и при этом предполагается запускать Microsoft Office или другой прикладной пакет, недоступный во FreeBSD, то в качестве компромиссного варианта подойдет Мас OS Х. Эта система создана на основе микроядра Mach и целого ряда компонентов FreeBSD. Конечно, Мас OS Х - это не FreeBSD, но благодаря многочисленным "заимствованиям" из FreeBSD и других разновидностей UNIX она гораздо больше знакома администраторам UNIX, чем Windows-системы или более ранние версии Мас OS. В Мас OS Х поддерживаются многие прикладные пакеты, включая Microsoft Office.
Если предполагается, что в системе будет работать большое количество пользователей, то нужно уделить особое внимание вопросам конфигурирования графических оболочек. Эти оболочки значительно усовершенствовались с середины 90-х и по-прежнему регулярно обновляются.
FreeBSD в роли серверной ОС
Серверы - это компьютеры с сетевыми платами, обрабатывающие запросы других компьютеров. Именно серверы обеспечивают наиболее эффективное функционирование сетей. Ниже рассмотрены примеры серверов.
Файловый сервер позволяет другим компьютерам читать и записывать файлы серверной файловой системы. Эти серверы можно использовать для распространения свободно доступных файлов (например, компонентов FreeBSD), а также в качестве централизованного хранилища файлов локальной сети.
Web-сервер . В определенном смысле это разновидность файлового сервера. Обычно служит для доставки файлов Web-клиенту, называемому браузером.
10 октября 2016 года на официальном сайте был анонсирован релиз очередной (11-й) версии популярной unix системы. Я решил написать подробную инструкцию с видео по двум вариантам установки Freebsd 11 — на одиночный диск и raid1 в виде mirror пула zfs. Давно внимательно не смотрел на эту систему, решил подробно все описать и посмотреть, что в ней изменилось за последнее время.
Я рассмотрю 2 варианта установки:
Принципиальных изменений в установке, по сравнению с предыдущей 10-й версией я не увидел, поэтому не буду подробно разбирать все этапы, как я это делал в статье про . Постараюсь более кратко написать, акцентируя внимание только в ключевых местах. Тем не менее, это руководство по установке с нуля подойдет для новичков, или, как говорится, чайников. Все рассказано простым и доступным языком.
Перед установкой надо определиться, какой образ скачать. Я составил кратенькую таблицу с описанием всех типов образов Freebsd 11 для платформы x64, которые можно скачать. Ссылки привел на Y andex.Mirror , предпочитаю с него все качать, так как быстро и удобно.
Имя образа | Описание | Скачать образ |
---|---|---|
bootonly | Минимальный образ по размеру. Чтобы установить с него систему, необходимо подключение к интернету во время установки. | bootonly.iso 285M |
disc1 | Основная система и базовый набор программ есть на диске. Можно установить без подключения к сети. Я пользуюсь обычно этим образом. | disc1.iso 656M |
dvd1 | Максимальный образ. В него входят помимо системы, пакеты программ. Что за пакеты и какой их список я не знаю, никогда не пользовался этим образом. Все, что необходимо, после установки ставлю через интернет. | dvd1.iso 3G |
memstick | Стандартный образ для установки с флешки, аналог disc1. | memstick.img 700M |
В дальнейшем повествовании я буду использовать образ disc1 как наиболее удобный и универсальный.
Начнем с нуля установку Freebsd 11 на одиночный жесткий диск. Вставляем iso образ в автозагрузку и загружаемся с диска. Нас встречает традиционное окно приветствия с тремя вариантами продолжения:
Выбираем установку. На следующем этапе будет предложено выбрать раскладку. Чаще всего достаточно стандартной, так что ничего не меняем, а идем дальше со стандартной раскладкой.
Теперь выбираем компоненты, которые будут установлены. Я обычно ничего не ставлю, кроме lib32. Все, что нужно, можно потом установить последней версии из интернета.
На следующем этапе выбираем разбивку жесткого диска. Можно вручную указать все необходимые разделы, выбрать размер и т.д. Я обычно этого не делаю и все устанавливаю на одном корневом разделе. Давно уже так поступаю на всех системах и не вижу в этом никаких проблем. Наиболее частая рекомендация — вынести в отдельный раздел все логи, чтобы случайно заполнив все свободное место они не повесили сервер. На практике у меня такого ни разу не было, поэтому считаю лишним каждый раз возиться с разделами ради очень условного удобства. Правда есть нюанс — у меня на всех серверах всегда настроен мониторинг свободного места на жестком диске. Так что я успеваю оперативно среагировать на проблемы со свободным местом. Ну и слежу за ротацией логов само собой, не оставляю их расти до больших размеров.
Так что выбираем первый пункт — Auto (UFS). Установку freebsd 11 на zfs мы рассмотрим позже.
Проверяйте предложенную схему разбивки диска. Если все устраивает, то жмите Finish и согласитесь с применением изменений, начнется установка базовой системы.
Длится она буквально несколько минут. Чистая система ставится очень быстро. По ходу дела будет предложено указать пароль для root. Сделайте это. Далее нужно будет выбрать сетевой интерфейс для настройки.
Если у вас их несколько, то выберите тот, который вы хотите настроить для доступа к сети. После выбора интерфейса нужно будет согласиться с настройкой ip адреса на нем. Дальше я выбираю получить настройки по DHCP. Так проще всего. Если вам нужно вручную указать ip адрес, то откажитесь от dhcp и введите сетевые параметры вручную.
После этого нужно будет указать адрес dns сервера, предварительно отказавшись от ipv6. Если вы получили настройки по dhcp, то адрес уже будет заполнен, нужно будет только подтвердить его. Если настройки вручную указывали, введи сами dns сервер.
Теперь выбираем часовой пояс, дату и время. Ничего сложного нет, скриншоты приводить не буду. Если дата и время указаны верно, то просто выбирайте Skip , если есть расхождения, вручную укажите правильные. Это, кстати, нововведение в 11-й версии. Раньше такого календаря и часов не было.
Установка движется к завершению. Нужно указать, какие службы вы хотите запускать автоматически при загрузке системы. Обязательно укажите sshd , чтобы подключаться к серверу удаленно, еще ntpd не помешает. Остальное на ваше усмотрение, я больше ничего не указываю. dumped стоит по-умолчанию, пусть останется.
На следующем этапе нам предлагается выбрать некоторые параметры безопасности. Я не знаком подробно с этой темой, не разбирался, но по названиям вижу, что вещи весьма полезные. Можно и включить. Тут на ваше усмотрение. Хуже не будет, но и чего-то особенно тоже не ждите. Все эти настройки можно и позже сделать.
На заключительном этапе вам будет предложено добавить пользователей в систему. Если вы этого не сделаете, то не сможете подключиться по ssh к серверу. По-умолчанию в freebsd пользователю root запрещено подключаться по ssh. Это можно исправить только зайдя локально рутом и отредактировав настройки ssh. Так что создайте хотя бы одного пользователя и добавьте его в группу wheel, чтобы можно было подключиться по ssh и сделать su для получения root доступа.
Вы должны загрузиться в свежеустановленной системе Freebsd 11. На этом базовая установка закончена.
Выполним ту же самую установку, только на программный raid1 . У вас должен быть сервер с минимум 2-мя жесткими дисками. Доходим до пункта, где нужно выбрать разбивку диска и выбираем Auto (ZFS) .
В строке Pool Type/Disks выбираем mirror .
И указывайте оба ваших диска:
После завершения установки можно проверить как работает отказоустойчивость. Давайте посмотрим статус пула, когда все в порядке и работают оба диска:
# zpool status -v pool: zroot state: ONLINE scan: none requested config: NAME STATE READ WRITE CKSUM zroot ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 da0p3 ONLINE 0 0 0 da1p3 ONLINE 0 0 0 errors: No known data errors
Оба диска на месте. Теперь выключим сервер и вынем один из дисков. Посмотрим, как поведет себя сервер.
# zpool status -v pool: zroot state: DEGRADED status: One or more devices could not be opened. Sufficient replicas exist for the pool to continue functioning in a degraded state. action: Attach the missing device and online it using "zpool online". see: http://illumos.org/msg/ZFS-8000-2Q scan: none requested config: NAME STATE READ WRITE CKSUM zroot DEGRADED 0 0 0 mirror-0 DEGRADED 0 0 0 2081140553640658652 UNAVAIL 0 0 0 was /dev/da0p3 da0p3 ONLINE 0 0 0 errors: No known data errors
Как видно, диска нет, но система благополучно загрузилась и нормально работает. Если мы вернем этот же диск на место и перезагрузимся, то все станет в порядке, никаких лишних движений делать не надо. Но представим, что у нас диск вышел из строя и нам надо установить новый. Вставляем новый чистый диск в сервер и загружаемся. Новый диск получил то же название, что и вышедший из строя — /dev/da0 . Разделов на нем нет.
Первым делом отправляем сбойный диск в offline:
# zpool offline zroot da0p3
Пул теперь в таком состоянии:
# zpool status -v pool: zroot state: DEGRADED status: One or more devices has been taken offline by the administrator. Sufficient replicas exist for the pool to continue functioning in a degraded state. action: Online the device using "zpool online" or replace the device with "zpool replace". scan: none requested config: NAME STATE READ WRITE CKSUM zroot DEGRADED 0 0 0 mirror-0 DEGRADED 0 0 0 2081140553640658652 OFFLINE 0 0 0 was /dev/da0p3 da1p3 ONLINE 0 0 0 errors: No known data errors
Скопируем таблицу разделов с живого диска на новый. Посмотрим для начала на нее:
# gpart show => 40 20971440 da1 GPT (10G) 40 1024 1 freebsd-boot (512K) 1064 984 - free - (492K) 2048 4194304 2 freebsd-swap (2.0G) 4196352 16773120 3 freebsd-zfs (8.0G) 20969472 2008 - free - (1.0M)
Создаем такую же таблицу на новом диске, скопировав ее со старого:
# gpart backup da1 > /root/da1.backup # gpart restore da0 < /root/da1.backup
Смотрим, что получилось:
# gpart show => 40 20971440 da1 GPT (10G) 40 1024 1 freebsd-boot (512K) 1064 984 - free - (492K) 2048 4194304 2 freebsd-swap (2.0G) 4196352 16773120 3 freebsd-zfs (8.0G) 20969472 2008 - free - (1.0M) => 40 20971440 da0 GPT (10G) 40 1024 1 freebsd-boot (512K) 1064 984 - free - (492K) 2048 4194304 2 freebsd-swap (2.0G) 4196352 16773120 3 freebsd-zfs (8.0G) 20969472 2008 - free - (1.0M)
То, что надо. Запишем на новый диск загрузчик:
# gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 da0 partcode written to da0p1 bootcode written to da0
Говорим пулу, что мы меняем жесткий диск:
# zpool replace zroot /dev/da0p3 Make sure to wait until resilver is done before rebooting. If you boot from pool "zroot", you may need to update boot code on newly attached disk "/dev/da0p3". Assuming you use GPT partitioning and "da0" is your new boot disk you may use the following command: gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 da0
Умный zpool сам нам напомнил, чтобы мы не забыли про загрузчик. После замены диска быстро прошел resilver (синхронизация) и пул перешел в состояние ONLINE
# zpool status -v pool: zroot state: ONLINE scan: resilvered 532M in 0h0m with 0 errors on Sat Oct 15 01:29:49 2016 config: NAME STATE READ WRITE CKSUM zroot ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 da0p3 ONLINE 0 0 0 da1p3 ONLINE 0 0 0 errors: No known data errors
При желании можно теперь вынуть старый диск и убедиться, что с нового система нормально загружается. Я это сделал и убедился.
Закончили установку. Можно сделать . Вся информация в статье актуальна для 11-й версии.
Получилось не только про установку, но и про zfs немного, о том, как заменить сбойный диск в случае выхода из строя. Я всегда обращаю внимание на такие вещи, как отказоустойчивость на уровне дисков. Без этого систему не ставлю. Обязательно должен быть рейд либо программный, либо аппаратный. Я в своей работе постоянно сталкиваюсь с поломками жестких дисков, так что для меня это будни:) Даже бэкапа не достаточно в таком случае. Даже если есть бэкап, то работы по замене системы занимают слишком много времени, а если ты в основном работаешь удаленно, тебе еще и ехать придется, чтобы что-то заменить. Это не мой вариант.
Freebsd 11 понравилась простой и быстрой установкой на raid1. Думаю, эта возможность появилась раньше, я просто не проверял. Решил посмотреть на 11-й версии. В целом, все понравилась. В отличие от Debian, голая система ставится на глаз раз в 5-7 быстрее и раза в 3 быстрее CentOS. Надеюсь, что система и дальше будет развиваться и радовать нас новыми версиями и возможностями.